From d661ee88bc2c77f5f13babd9a8601f820f873d96 Mon Sep 17 00:00:00 2001 From: Felipe M Date: Thu, 25 Jul 2024 22:27:21 +0200 Subject: [PATCH] vault backup: 2024-07-25 22:27:21 --- .obsidian/.DS_Store | Bin 0 -> 8196 bytes .obsidian/app.json | 3 + .obsidian/appearance.json | 8 + .obsidian/community-plugins.json | 9 + .obsidian/core-plugins-migration.json | 30 + .obsidian/core-plugins.json | 19 + .obsidian/graph.json | 22 + .../plugins/obsidian-5e-statblocks/data.json | 46 + .../plugins/obsidian-5e-statblocks/main.js | 887 + .../obsidian-5e-statblocks/manifest.json | 11 + .../plugins/obsidian-5e-statblocks/styles.css | 116 + .obsidian/plugins/obsidian-git/data.json | 58 + .obsidian/plugins/obsidian-git/main.js | 44901 ++++++++++++++++ .obsidian/plugins/obsidian-git/manifest.json | 10 + .obsidian/plugins/obsidian-git/styles.css | 562 + .../plugins/obsidian-icon-folder/data.json | 38 + .../plugins/obsidian-icon-folder/main.js | 7046 +++ .../obsidian-icon-folder/manifest.json | 10 + .../plugins/obsidian-icon-folder/styles.css | 119 + .../plugins/obsidian-leaflet-plugin/data.json | 67 + .../plugins/obsidian-leaflet-plugin/main.js | 2 + .../obsidian-leaflet-plugin/manifest.json | 10 + .../obsidian-leaflet-plugin/styles.css | 1314 + .../plugins/obsidian-style-settings/data.json | 3 + .../plugins/obsidian-style-settings/main.js | 9858 ++++ .../obsidian-style-settings/manifest.json | 10 + .../obsidian-style-settings/styles.css | 243 + .obsidian/plugins/pf2-action-icons/main.js | 6 + .../plugins/pf2-action-icons/manifest.json | 10 + .obsidian/plugins/pf2-action-icons/styles.css | 1 + .obsidian/plugins/pf2e-statblocks/main.js | 12 + .../plugins/pf2e-statblocks/manifest.json | 10 + .obsidian/plugins/pf2e-statblocks/styles.css | 336 + .obsidian/snippets/S - Encoded Fonts.css | 142 + .obsidian/snippets/clean-embeds.css | 123 + .obsidian/themes/ITS Theme/manifest.json | 7 + .obsidian/themes/ITS Theme/theme.css | 14206 +++++ .obsidian/types.json | 8 + .obsidian/workspace.json | 196 + .obsidian/workspaces.json | 1 + .../Nymh/Campañas/1. Amenaza bajo Otari.md | 48 + .../Nymh/Conocimiento/Monstruos/Esqueleto.md | 5 + Personajes/Nymh/Ficha.md | 127 + Personajes/Nymh/Historia.md | 43 + Wiki/Clases/Druida.md | 0 Wiki/Lugares/Aelindor.md | 8 + Wiki/Lugares/Bosque de Fierani.md | 0 Wiki/Lugares/Iadara.md | 0 Wiki/Monstruos/Esqueleto.md | 15 + Wiki/Razas/Elfo.md | 0 _/Temp/Pathfinder plugins.md | 44 + _/attachments/Skeleton Warrior.jpeg | Bin 0 -> 47975 bytes _/embeds/Contenido ficticio.md | 3 + 53 files changed, 80753 insertions(+) create mode 100644 .obsidian/.DS_Store create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/community-plugins.json create mode 100644 .obsidian/core-plugins-migration.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/graph.json create mode 100644 .obsidian/plugins/obsidian-5e-statblocks/data.json create mode 100644 .obsidian/plugins/obsidian-5e-statblocks/main.js create mode 100644 .obsidian/plugins/obsidian-5e-statblocks/manifest.json create mode 100644 .obsidian/plugins/obsidian-5e-statblocks/styles.css create mode 100644 .obsidian/plugins/obsidian-git/data.json create mode 100644 .obsidian/plugins/obsidian-git/main.js create mode 100644 .obsidian/plugins/obsidian-git/manifest.json create mode 100644 .obsidian/plugins/obsidian-git/styles.css create mode 100644 .obsidian/plugins/obsidian-icon-folder/data.json create mode 100644 .obsidian/plugins/obsidian-icon-folder/main.js create mode 100644 .obsidian/plugins/obsidian-icon-folder/manifest.json create mode 100644 .obsidian/plugins/obsidian-icon-folder/styles.css create mode 100644 .obsidian/plugins/obsidian-leaflet-plugin/data.json create mode 100644 .obsidian/plugins/obsidian-leaflet-plugin/main.js create mode 100644 .obsidian/plugins/obsidian-leaflet-plugin/manifest.json create mode 100644 .obsidian/plugins/obsidian-leaflet-plugin/styles.css create mode 100644 .obsidian/plugins/obsidian-style-settings/data.json create mode 100644 .obsidian/plugins/obsidian-style-settings/main.js create mode 100644 .obsidian/plugins/obsidian-style-settings/manifest.json create mode 100644 .obsidian/plugins/obsidian-style-settings/styles.css create mode 100644 .obsidian/plugins/pf2-action-icons/main.js create mode 100644 .obsidian/plugins/pf2-action-icons/manifest.json create mode 100644 .obsidian/plugins/pf2-action-icons/styles.css create mode 100644 .obsidian/plugins/pf2e-statblocks/main.js create mode 100644 .obsidian/plugins/pf2e-statblocks/manifest.json create mode 100644 .obsidian/plugins/pf2e-statblocks/styles.css create mode 100644 .obsidian/snippets/S - Encoded Fonts.css create mode 100644 .obsidian/snippets/clean-embeds.css create mode 100644 .obsidian/themes/ITS Theme/manifest.json create mode 100644 .obsidian/themes/ITS Theme/theme.css create mode 100644 .obsidian/types.json create mode 100644 .obsidian/workspace.json create mode 100644 .obsidian/workspaces.json create mode 100644 Personajes/Nymh/Campañas/1. Amenaza bajo Otari.md create mode 100644 Personajes/Nymh/Conocimiento/Monstruos/Esqueleto.md create mode 100644 Personajes/Nymh/Ficha.md create mode 100644 Personajes/Nymh/Historia.md create mode 100644 Wiki/Clases/Druida.md create mode 100644 Wiki/Lugares/Aelindor.md create mode 100644 Wiki/Lugares/Bosque de Fierani.md create mode 100644 Wiki/Lugares/Iadara.md create mode 100644 Wiki/Monstruos/Esqueleto.md create mode 100644 Wiki/Razas/Elfo.md create mode 100644 _/Temp/Pathfinder plugins.md create mode 100644 _/attachments/Skeleton Warrior.jpeg create mode 100644 _/embeds/Contenido ficticio.md diff --git a/.obsidian/.DS_Store b/.obsidian/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1ce858084f26920396a6bb09bf9149182feed7bb GIT binary patch literal 8196 zcmeHMU2GIp6h3EK>|CL8%U?UoPgbgcu;P|lDm22BC<0Lgq6qvKB0y)hX!=dgeI<>?C<0LgZp#RW{UJ_W&{Rk#6_r~D4YC9v zDoOy^=$h&PX%i1=Dx{N&N>jS0sva;j#jwOcWlr+AP$!xS>7=5{98j49hAU%Op`cuy z?BY@#Fr{cTMiGc2Ff#%oeRS}_1)Hk(8|wGGAVZP|tevnLFMy;-X&K(U6tYL1$ zW0_H}nhA12+3(Jk4hpW{^PGI`I+s6STh%OI)Z@89&UUSmG_XyJR1OW=uIW{~y|Qci z(l(<6jOi@Pjq&l$&W=R9y}e^15g%`BdytsU4atcKrY~-NpsO!?)ERTV=anxQ?g!8~ z&9{@YIp+A49_3hFtmfF)p<_B@bB)2F;gKxoW#8(voLpd6taL80{4AgElaIR!p1Z$f zRmiu&g6EXST#_^ua!#R4%GNf=$=D|>e<-ky2jXhP_ew#JR2;I&R?KDj0%5vDRvaUbjV$q}9BlwyLdXZ=U%oigsLnKssL3^=*G z%lD|sF7~i7RPe^e$VHzuVM0x(jBev`vGOB1KiF5aT=7)rl&sg- zVT|~rxstW7O0d%Tc{RVA=H*)=i7@Lm?Z7M1Gs}>~js3blEN;2YG%fQ|V{^-rzKlT@ z+;%HA0hwNc!ZW|9>w0Tyt%8$`ZEGs2xJA=2CJrqF60ilf!w3{8iK=iCUVu~ZI=l^M z;bS-l7vKx{5-!45@Eu%%pWs*c4St6|5b;iI#ukj>QoIL~*oGUh3sbladoYcAu@5si zfCn&(79Pe?w6TOIa2zM_DSQrJ!k6(?d=1~g_wY2H!L#@geukgpdAxuZ@e2NcKjKyV z8Gpe)wR){tGqjktR9mLqtF6`Al^0qqa}G}RN=p+zV@sgSDXPrTj?I=ivF$r{?)q0U z=bL#lR~9T>w0K49n)^3w>`Gn3lmcN5cQ>M0LU;=BC4}Yso`yXEAtT0?Ew5$O^?XwK zH9*+6j_U%zydl)Sd!deU^KbNp|B?3?fooPiJEQ-bVe_!hp0s{~UZm~vbqp}G{8 z<0@Q@Yj7g#Dfc5E2x|e in i?na(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var kr=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),eg=(i,e)=>{for(var t in e)na(i,t,{get:e[t],enumerable:!0})},_c=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Ym(e))!Km.call(i,a)&&a!==t&&na(i,a,{get:()=>e[a],enumerable:!(n=Vm(e,a))||n.enumerable});return i};var It=(i,e,t)=>(t=i!=null?Um(Gm(i)):{},_c(e||!i||!i.__esModule?na(t,"default",{value:i,enumerable:!0}):t,i)),tg=i=>_c(na({},"__esModule",{value:!0}),i);var $e=(i,e,t)=>(Jm(i,typeof e!="symbol"?e+"":e,t),t),wr=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)};var te=(i,e,t)=>(wr(i,e,"read from private field"),t?t.call(i):e.get(i)),Ee=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)},ei=(i,e,t,n)=>(wr(i,e,"write to private field"),n?n.call(i,t):e.set(i,t),t);var Qe=(i,e,t)=>(wr(i,e,"access private method"),t);var Sc=kr((Oc,_r)=>{(function(i){"use strict";var e=_(),t=O(),n=E(),a=S(),s={imagePlaceholder:void 0,cacheBust:!1},r={toSvg:o,toPng:c,toJpeg:d,toBlob:h,toPixelData:l,impl:{fontFaces:n,images:a,util:e,inliner:t,options:{}}};typeof _r<"u"?_r.exports=r:i.domtoimage=r;function o(v,x){return x=x||{},u(x),Promise.resolve(v).then(function(I){return m(I,x.filter,!0)}).then(p).then(y).then(P).then(function(I){return w(I,x.width||e.width(v),x.height||e.height(v))});function P(I){return x.bgcolor&&(I.style.backgroundColor=x.bgcolor),x.width&&(I.style.width=x.width+"px"),x.height&&(I.style.height=x.height+"px"),x.style&&Object.keys(x.style).forEach(function(R){I.style[R]=x.style[R]}),I}}function l(v,x){return f(v,x||{}).then(function(P){return P.getContext("2d").getImageData(0,0,e.width(v),e.height(v)).data})}function c(v,x){return f(v,x||{}).then(function(P){return P.toDataURL()})}function d(v,x){return x=x||{},f(v,x).then(function(P){return P.toDataURL("image/jpeg",x.quality||1)})}function h(v,x){return f(v,x||{}).then(e.canvasToBlob)}function u(v){typeof v.imagePlaceholder>"u"?r.impl.options.imagePlaceholder=s.imagePlaceholder:r.impl.options.imagePlaceholder=v.imagePlaceholder,typeof v.cacheBust>"u"?r.impl.options.cacheBust=s.cacheBust:r.impl.options.cacheBust=v.cacheBust}function f(v,x){return o(v,x).then(e.makeImage).then(e.delay(100)).then(function(I){var R=P(v);return R.getContext("2d").drawImage(I,0,0),R});function P(I){var R=document.createElement("canvas");if(R.width=x.width||e.width(I),R.height=x.height||e.height(I),x.bgcolor){var T=R.getContext("2d");T.fillStyle=x.bgcolor,T.fillRect(0,0,R.width,R.height)}return R}}function m(v,x,P){if(!P&&x&&!x(v))return Promise.resolve();return Promise.resolve(v).then(I).then(function($){return R(v,$,x)}).then(function($){return T(v,$)});function I($){return $ instanceof HTMLCanvasElement?e.makeImage($.toDataURL()):$.cloneNode(!1)}function R($,K,Z){var F=$.childNodes;if(F.length===0)return Promise.resolve(K);return V(K,e.asArray(F),Z).then(function(){return K});function V(B,Y,L){var ae=Promise.resolve();return Y.forEach(function(J){ae=ae.then(function(){return m(J,L)}).then(function(ue){ue&&B.appendChild(ue)})}),ae}}function T($,K){if(!(K instanceof Element))return K;return Promise.resolve().then(Z).then(F).then(V).then(B).then(function(){return K});function Z(){Y(window.getComputedStyle($),K.style);function Y(L,ae){L.cssText?ae.cssText=L.cssText:J(L,ae);function J(ue,X){e.asArray(ue).forEach(function(z){X.setProperty(z,ue.getPropertyValue(z),ue.getPropertyPriority(z))})}}}function F(){[":before",":after"].forEach(function(L){Y(L)});function Y(L){var ae=window.getComputedStyle($,L),J=ae.getPropertyValue("content");if(J===""||J==="none")return;var ue=e.uid();K.className=K.className+" "+ue;var X=document.createElement("style");X.appendChild(z(ue,L,ae)),K.appendChild(X);function z(ge,xe,Me){var et="."+ge+":"+xe,St=Me.cssText?kn(Me):wn(Me);return document.createTextNode(et+"{"+St+"}");function kn(Et){var Qt=Et.getPropertyValue("content");return Et.cssText+" content: "+Qt+";"}function wn(Et){return e.asArray(Et).map(Qt).join("; ")+";";function Qt(ft){return ft+": "+Et.getPropertyValue(ft)+(Et.getPropertyPriority(ft)?" !important":"")}}}}}function V(){$ instanceof HTMLTextAreaElement&&(K.innerHTML=$.value),$ instanceof HTMLInputElement&&K.setAttribute("value",$.value)}function B(){K instanceof SVGElement&&(K.setAttribute("xmlns","http://www.w3.org/2000/svg"),K instanceof SVGRectElement&&["width","height"].forEach(function(Y){var L=K.getAttribute(Y);L&&K.style.setProperty(Y,L)}))}}}function p(v){return n.resolveAll().then(function(x){var P=document.createElement("style");return v.appendChild(P),P.appendChild(document.createTextNode(x)),v})}function y(v){return a.inlineAll(v).then(function(){return v})}function w(v,x,P){return Promise.resolve(v).then(function(I){return I.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),new XMLSerializer().serializeToString(I)}).then(e.escapeXhtml).then(function(I){return''+I+""}).then(function(I){return''+I+""}).then(function(I){return"data:image/svg+xml;charset=utf-8,"+I})}function _(){return{escape:B,parseExtension:x,mimeType:P,dataAsUrl:V,isDataUrl:I,canvasToBlob:T,resolveUrl:$,getAndEncode:F,uid:K(),delay:Y,asArray:L,escapeXhtml:ae,makeImage:Z,width:J,height:ue};function v(){var z="application/font-woff",ge="image/jpeg";return{woff:z,woff2:z,ttf:"application/font-truetype",eot:"application/vnd.ms-fontobject",png:"image/png",jpg:ge,jpeg:ge,gif:"image/gif",tiff:"image/tiff",svg:"image/svg+xml"}}function x(z){var ge=/\.([^\.\/]*?)$/g.exec(z);return ge?ge[1]:""}function P(z){var ge=x(z).toLowerCase();return v()[ge]||""}function I(z){return z.search(/^(data:)/)!==-1}function R(z){return new Promise(function(ge){for(var xe=window.atob(z.toDataURL().split(",")[1]),Me=xe.length,et=new Uint8Array(Me),St=0;St{(function(i,e){typeof Or=="object"&&typeof Sr<"u"?Sr.exports=e():typeof define=="function"&&define.amd?define(e):(i=typeof globalThis<"u"?globalThis:i||self,i["fast-copy"]=e())})(Or,function(){"use strict";var i=Function.prototype.toString,e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols,r=Object.getPrototypeOf,o=Object.prototype,l=o.hasOwnProperty,c=o.propertyIsEnumerable,d=typeof s=="function",h=typeof WeakMap=="function",u=function(){if(h)return function(){return new WeakMap};var S=function(){function v(){this._keys=[],this._values=[]}return v.prototype.has=function(x){return!!~this._keys.indexOf(x)},v.prototype.get=function(x){return this._values[this._keys.indexOf(x)]},v.prototype.set=function(x,P){this._keys.push(x),this._values.push(P)},v}();return function(){return new S}}(),f=function(S,v){var x=S.__proto__||r(S);if(!x)return e(null);var P=x.constructor;if(P===v.Object)return x===v.Object.prototype?{}:e(x);if(~i.call(P).indexOf("[native code]"))try{return new P}catch{}return e(x)},m=function(S,v,x,P){var I=f(S,v);P.set(S,I);for(var R in S)l.call(S,R)&&(I[R]=x(S[R],P));if(d)for(var T=s(S),$=0,K=T.length,Z=void 0;${"use strict";var cl=Object.defineProperty,h0=Object.getOwnPropertyDescriptor,d0=Object.getOwnPropertyNames,u0=Object.prototype.hasOwnProperty,f0=(i,e)=>{for(var t in e)cl(i,t,{get:e[t],enumerable:!0})},m0=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of d0(e))!u0.call(i,a)&&a!==t&&cl(i,a,{get:()=>e[a],enumerable:!(n=h0(e,a))||n.enumerable});return i},g0=i=>m0(cl({},"__esModule",{value:!0}),i),vu={};f0(vu,{FileInputSuggest:()=>b0,FolderInputSuggest:()=>p0,FuzzyInputSuggest:()=>hl,setNodeIcon:()=>k0});ku.exports=g0(vu);var ll=require("obsidian"),hl=class extends ll.AbstractInputSuggest{constructor(i,e,t){super(i,e.inputEl),this.items=t}getSuggestions(i){let e=(0,ll.prepareSimpleSearch)(i),t=[];for(let n of this.items){let a=e(this.getItemText(n));a&&t.push({item:n,match:a})}return t}renderSuggestion(i,e){e.addClass("mod-complex");let t=e.createDiv({cls:"suggestion-content"});if(!i?.item){t.setText("No match found"),t.parentElement?.addClass("is-selected");return}let n=t.createDiv("suggestion-title");this.renderTitle(n,i);let a=t.createDiv("suggestion-note");this.renderNote(a,i)}renderMatches(i,e,t,n){(0,ll.renderMatches)(i,e,t,n)}},bu=require("obsidian"),p0=class extends hl{getItemText(i){return i.path}renderNote(i,e){let{item:t,match:n}=e;(0,bu.renderMatches)(i,t.path,n.matches)}renderTitle(i,e){let{item:t,match:n}=e;(0,bu.renderMatches)(i,t.name,n.matches,t.path.length-t.name.length)}},yu=require("obsidian"),b0=class extends hl{getItemText(i){return i.path}renderNote(i,e){let{item:t,match:n}=e;(0,yu.renderMatches)(i,t.path,n.matches)}renderTitle(i,e){let{item:t,match:n}=e;(0,yu.renderMatches)(i,t.name,n.matches,t.path.length-t.name.length)}},y0=require("obsidian"),v0={"has-node-icon":"helpers_has-node-icon","x-small":"helpers_x-small",small:"helpers_small",medium:"helpers_medium",large:"helpers_large","x-large":"helpers_x-large"};function k0(i,e){i.addClass(v0["has-node-icon"]),(0,y0.setIcon)(i,e)}});var Rv={};eg(Rv,{DICE_ROLLER_SOURCE:()=>yn,default:()=>hr});module.exports=tg(Rv);var Zi=require("obsidian"),em=It(Sc());var wt=require("obsidian");var Kc=require("@codemirror/state"),Jc=require("@codemirror/view"),eh=It(mi());var Cn=require("@codemirror/commands");var Je=require("@lezer/common"),Cr=class i{constructor(e,t,n,a,s,r,o,l,c,d=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=a,this.pos=s,this.score=r,this.buffer=o,this.bufferBase=l,this.curContext=c,this.lookAhead=d,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let a=e.parser.context;return new i(e,[],t,n,n,0,[],0,a?new Ka(a,a.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,a=e&65535,{parser:s}=this.p,r=s.dynamicPrecedence(a);if(r&&(this.score+=r),n==0){this.pushState(s.getGoto(this.state,a,!0),this.reducePos),a=2e3&&!(!((t=this.p.parser.nodeSet.types[a])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSizeo;)this.stack.pop();this.reduceContext(a,l)}storeNode(e,t,n,a=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&r.buffer[o-4]==0&&r.buffer[o-1]>-1){if(t==n)return;if(r.buffer[o-2]>=t){r.buffer[o-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,a);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0)for(;r>0&&this.buffer[r-2]>n;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,a>4&&(a-=4);this.buffer[r]=e,this.buffer[r+1]=t,this.buffer[r+2]=n,this.buffer[r+3]=a}}shift(e,t,n,a){if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=a,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,a,4);else{let s=e,{parser:r}=this.p;(a>this.pos||t<=r.maxNode)&&(this.pos=a,r.stateFlag(s,1)||(this.reducePos=a)),this.pushState(s,n),this.shiftContext(t,n),t<=r.maxNode&&this.buffer.push(t,n,a,4)}}apply(e,t,n,a){e&65536?this.reduce(e):this.shift(e,t,n,a)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let a=this.pos;this.reducePos=this.pos=a+e.length,this.pushState(t,a),this.buffer.push(n,a,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),a=e.bufferBase+t;for(;e&&a==e.bufferBase;)e=e.parent;return new i(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,a,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Ar(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let a=[];for(let s=0,r;sl&1&&o==r)||a.push(t[s],r)}t=a}let n=[];for(let a=0;a>19,a=t&65535,s=this.stack.length-n*3;if(s<0||e.getGoto(this.stack[s],a,!1)<0){let r=this.findForcedReduction();if(r==null)return!1;t=r}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(a,s)=>{if(!t.includes(a))return t.push(a),e.allActions(a,r=>{if(!(r&393216))if(r&65536){let o=(r>>19)-s;if(o>1){let l=r&65535,c=this.stack.length-o*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return o<<19|65536|l}}else{let o=n(r,s+1);if(o!=null)return o}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;tthis.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Ka=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ar=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let a=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=a}},Dr=class i{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new i(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new i(this.stack,this.pos,this.index)}};function aa(i,e=Uint16Array){if(typeof i!="string")return i;let t=null;for(let n=0,a=0;n=92&&r--,r>=34&&r--;let l=r-32;if(l>=46&&(l-=46,o=!0),s+=l,o)break;s*=46}t?t[a++]=s:t=new e(s)}return t}var Sn=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},xc=new Sn,Pr=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=xc,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,a=this.rangeIndex,s=this.pos+e;for(;sn.to:s>=n.to;){if(a==this.ranges.length-1)return null;let r=this.ranges[++a];s+=r.from-n.to,n=r}return s}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,a;if(t>=0&&t=this.chunk2Pos&&no.to&&(this.chunk2=this.chunk2.slice(0,o.to-n)),a=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),a}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=xc,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let a of this.ranges){if(a.from>=t)break;a.to>e&&(n+=this.input.read(Math.max(a.from,e),Math.min(a.to,t)))}return n}},Ai=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Pc(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Ai.prototype.contextual=Ai.prototype.fallback=Ai.prototype.extend=!1;var xn=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?aa(e):e}token(e,t){let n=e.pos,a=0;for(;;){let s=e.next<0,r=e.resolveOffset(1,1);if(Pc(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||a++,r==null)break;e.reset(r,e.token)}a&&(e.reset(n,e.token),e.acceptToken(this.elseToken,a))}};xn.prototype.contextual=Ai.prototype.fallback=Ai.prototype.extend=!1;var Tn=class{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}};function Pc(i,e,t,n,a,s){let r=0,o=1<0){let m=i[f];if(l.allows(m)&&(e.token.value==-1||e.token.value==m||ig(m,e.token.value,a,s))){e.acceptToken(m);break}}let d=e.next,h=0,u=i[r+2];if(e.next<0&&u>h&&i[c+u*3-3]==65535){r=i[c+u*3-1];continue e}for(;h>1,m=c+f+(f<<1),p=i[m],y=i[m+1]||65536;if(d=y)h=f+1;else{r=i[m+2],e.advance();continue e}}break}}function Tc(i,e,t){for(let n=e,a;(a=i[n])!=65535;n++)if(a==t)return n-e;return-1}function ig(i,e,t,n){let a=Tc(t,n,e);return a<0||Tc(t,n,i)e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(i.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:i.length}}var Mr=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Cc(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Cc(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(ee)return this.nextStart=r,null;if(s instanceof Je.Tree){if(r==e){if(r=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(r),this.index.push(0))}else this.index[t]++,this.nextStart=r+s.length}}},Er=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new Sn)}getActions(e){let t=0,n=null,{parser:a}=e.p,{tokenizers:s}=a,r=a.stateSlot(e.state,3),o=e.curContext?e.curContext.hash:0,l=0;for(let c=0;ch.end+25&&(l=Math.max(h.lookAhead,l)),h.value!=0)){let u=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!d.extend&&(n=h,t>u))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new Sn,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Sn,{pos:n,p:a}=e;return t.start=n,t.end=Math.min(n+1,a.stream.end),t.value=n==a.stream.end?a.parser.eofTerm:0,t}updateCachedToken(e,t,n){let a=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(a,e),n),e.value>-1){let{parser:s}=n.p;for(let r=0;r=0&&n.p.parser.dialect.allows(o>>1)){o&1?e.extended=o>>1:e.value=o>>1;break}}}else e.value=0,e.end=this.stream.clipPos(a+1)}putAction(e,t,n,a){for(let s=0;se.bufferLength*4?new Mr(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],a,s;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;rt)n.push(o);else{if(this.advanceStack(o,n,e))continue;{a||(a=[],s=[]),a.push(o);let l=this.tokens.getMainToken(o);s.push(l.value,l.end)}}break}}if(!n.length){let r=a&&ng(a);if(r)return xt&&console.log("Finish with "+this.stackID(r)),this.stackToTree(r);if(this.parser.strict)throw xt&&a&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&a){let r=this.stoppedAt!=null&&a[0].pos>this.stoppedAt?a[0]:this.runRecovery(a,s,n);if(r)return xt&&console.log("Force-finish "+this.stackID(r)),this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(n.length>r)for(n.sort((o,l)=>l.score-o.score);n.length>r;)n.pop();n.some(o=>o.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let r=0;r500&&c.buffer.length>500)if((o.score-c.score||o.buffer.length-c.buffer.length)>0)n.splice(l--,1);else{n.splice(r--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let r=1;r ":"";if(this.stoppedAt!=null&&a>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,d=c?e.curContext.hash:0;for(let h=this.fragments.nodeAt(a);h;){let u=this.parser.nodeSet.types[h.type.id]==h.type?s.getGoto(e.state,h.type.id):-1;if(u>-1&&h.length&&(!c||(h.prop(Je.NodeProp.contextHash)||0)==d))return e.useNode(h,u),xt&&console.log(r+this.stackID(e)+` (via reuse of ${s.getName(h.type.id)})`),!0;if(!(h instanceof Je.Tree)||h.children.length==0||h.positions[0]>0)break;let f=h.children[0];if(f instanceof Je.Tree&&h.positions[0]==0)h=f;else break}}let o=s.stateSlot(e.state,4);if(o>0)return e.reduce(o),xt&&console.log(r+this.stackID(e)+` (via always-reduce ${s.getName(o&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;ca?t.push(m):n.push(m)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return Ac(e,t),!0}}runRecovery(e,t,n){let a=null,s=!1;for(let r=0;r ":"";if(o.deadEnd&&(s||(s=!0,o.restart(),xt&&console.log(d+this.stackID(o)+" (restarted)"),this.advanceFully(o,n))))continue;let h=o.split(),u=d;for(let f=0;h.forceReduce()&&f<10&&(xt&&console.log(u+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));f++)xt&&(u=this.stackID(h)+" -> ");for(let f of o.recoverByInsert(l))xt&&console.log(d+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,n);this.stream.end>o.pos?(c==o.pos&&(c++,l=0),o.recoverByDelete(l,c),xt&&console.log(d+this.stackID(o)+` (via recover-delete ${this.parser.getName(l)})`),Ac(o,n)):(!a||a.scorei,Ja=class{constructor(e){this.start=e.start,this.shift=e.shift||Tr,this.reduce=e.reduce||Tr,this.reuse=e.reuse||Tr,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}},es=class i extends Je.Parser{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let o=0;oe.topRules[o][1]),a=[];for(let o=0;o=0)s(d,l,o[c++]);else{let h=o[c+-d];for(let u=-d;u>0;u--)s(o[c++],l,h);c++}}}this.nodeSet=new Je.NodeSet(t.map((o,l)=>Je.NodeType.define({name:l>=this.minRepeatTerm?void 0:o,id:l,props:a[l],top:n.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=Je.DefaultBufferLength;let r=aa(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let o=0;otypeof o=="number"?new Ai(r,o):o),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let a=new Qr(this,e,t,n);for(let s of this.wrappers)a=s(a,e,t,n);return a}getGoto(e,t,n=!1){let a=this.goto;if(t>=a[0])return-1;for(let s=a[t+1];;){let r=a[s++],o=r&1,l=a[s++];if(o&&n)return l;for(let c=s+(r>>1);s0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),a=n?t(n):void 0;for(let s=this.stateSlot(e,1);a==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=gi(this.data,s+2);else break;a=t(gi(this.data,s+1))}return a}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=gi(this.data,n+2);else break;if(!(this.data[n+2]&1)){let a=this.data[n+1];t.some((s,r)=>r&1&&s==a)||t.push(this.data[n],a)}}return t}configure(e){let t=Object.assign(Object.create(i.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let a=e.tokenizers.find(s=>s.from==n);return a?a.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,a)=>{let s=e.specializers.find(o=>o.from==n.external);if(!s)return n;let r=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[a]=Dc(r),r})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let r=t.indexOf(s);r>=0&&(n[r]=!0)}let a=null;for(let s=0;sn)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.scorei.external(t,n)<<1|e}return i.get}var le=require("@lezer/highlight"),Mc=302,Ec=1,ag=2,Qc=303,sg=305,rg=306,og=3,lg=4,cg=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],Rc=125,hg=59,Ic=47,dg=42,ug=43,fg=45,mg=new Ja({start:!1,shift(i,e){return e==og||e==lg||e==sg?i:e==rg},strict:!1}),gg=new Tn((i,e)=>{let{next:t}=i;(t==Rc||t==-1||e.context)&&e.canShift(Qc)&&i.acceptToken(Qc)},{contextual:!0,fallback:!0}),pg=new Tn((i,e)=>{let{next:t}=i,n;cg.indexOf(t)>-1||t==Ic&&((n=i.peek(1))==Ic||n==dg)||t!=Rc&&t!=hg&&t!=-1&&!e.context&&e.canShift(Mc)&&i.acceptToken(Mc)},{contextual:!0}),bg=new Tn((i,e)=>{let{next:t}=i;if((t==ug||t==fg)&&(i.advance(),t==i.next)){i.advance();let n=!e.context&&e.canShift(Ec);i.acceptToken(n?Ec:ag)}},{contextual:!0}),yg=(0,le.styleTags)({"get set async static":le.tags.modifier,"for while do if else switch try catch finally return throw break continue default case":le.tags.controlKeyword,"in of await yield void typeof delete instanceof":le.tags.operatorKeyword,"let var const function class extends":le.tags.definitionKeyword,"import export from":le.tags.moduleKeyword,"with debugger as new":le.tags.keyword,TemplateString:le.tags.special(le.tags.string),super:le.tags.atom,BooleanLiteral:le.tags.bool,this:le.tags.self,null:le.tags.null,Star:le.tags.modifier,VariableName:le.tags.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":le.tags.function(le.tags.variableName),VariableDefinition:le.tags.definition(le.tags.variableName),Label:le.tags.labelName,PropertyName:le.tags.propertyName,PrivatePropertyName:le.tags.special(le.tags.propertyName),"CallExpression/MemberExpression/PropertyName":le.tags.function(le.tags.propertyName),"FunctionDeclaration/VariableDefinition":le.tags.function(le.tags.definition(le.tags.variableName)),"ClassDeclaration/VariableDefinition":le.tags.definition(le.tags.className),PropertyDefinition:le.tags.definition(le.tags.propertyName),PrivatePropertyDefinition:le.tags.definition(le.tags.special(le.tags.propertyName)),UpdateOp:le.tags.updateOperator,LineComment:le.tags.lineComment,BlockComment:le.tags.blockComment,Number:le.tags.number,String:le.tags.string,Escape:le.tags.escape,ArithOp:le.tags.arithmeticOperator,LogicOp:le.tags.logicOperator,BitOp:le.tags.bitwiseOperator,CompareOp:le.tags.compareOperator,RegExp:le.tags.regexp,Equals:le.tags.definitionOperator,Arrow:le.tags.function(le.tags.punctuation),": Spread":le.tags.punctuation,"( )":le.tags.paren,"[ ]":le.tags.squareBracket,"{ }":le.tags.brace,"InterpolationStart InterpolationEnd":le.tags.special(le.tags.brace),".":le.tags.derefOperator,", ;":le.tags.separator,"@":le.tags.meta,TypeName:le.tags.typeName,TypeDefinition:le.tags.definition(le.tags.typeName),"type enum interface implements namespace module declare":le.tags.definitionKeyword,"abstract global Privacy readonly override":le.tags.modifier,"is keyof unique infer":le.tags.operatorKeyword,JSXAttributeValue:le.tags.attributeValue,JSXText:le.tags.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":le.tags.angleBracket,"JSXIdentifier JSXNameSpacedName":le.tags.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":le.tags.attributeName,"JSXBuiltin/JSXIdentifier":le.tags.standard(le.tags.tagName)}),vg={__proto__:null,export:14,as:19,from:27,default:30,async:35,function:36,extends:46,this:50,true:58,false:58,null:70,void:74,typeof:78,super:96,new:130,delete:146,yield:155,await:159,class:164,public:221,private:221,protected:221,readonly:223,instanceof:242,satisfies:245,in:246,const:248,import:280,keyof:335,unique:339,infer:345,is:381,abstract:401,implements:403,type:405,let:408,var:410,interface:417,enum:421,namespace:427,module:429,declare:433,global:437,for:458,of:467,while:470,with:474,do:478,if:482,else:484,switch:488,case:494,try:500,catch:504,finally:508,return:512,throw:516,break:520,continue:524,debugger:528},kg={__proto__:null,async:117,get:119,set:121,declare:181,public:183,private:183,protected:183,static:185,abstract:187,override:189,readonly:195,accessor:197,new:385},wg={__proto__:null,"<":137},Wc=es.deserialize({version:14,states:"$EnO`QUOOO%QQUOOO'TQWOOP(bOSOOO*pQ(CjO'#CfO*wOpO'#CgO+VO!bO'#CgO+eO07`O'#DZO-vQUO'#DaO.WQUO'#DlO%QQUO'#DvO0_QUO'#EOOOQ(CY'#EW'#EWO0uQSO'#ETOOQO'#I`'#I`O0}QSO'#GkOOQO'#Ei'#EiO1YQSO'#EhO1_QSO'#EhO3aQ(CjO'#JcO6QQ(CjO'#JdO6nQSO'#FWO6sQ#tO'#FoOOQ(CY'#F`'#F`O7OO&jO'#F`O7^Q,UO'#FvO8tQSO'#FuOOQ(CY'#Jd'#JdOOQ(CW'#Jc'#JcOOQQ'#J}'#J}O8yQSO'#IPO9OQ(C[O'#IQOOQQ'#JP'#JPOOQQ'#IU'#IUQ`QUOOO%QQUO'#DnO9WQUO'#DzO%QQUO'#D|O9_QSO'#GkO9dQ,UO'#ClO9rQSO'#EgO9}QSO'#ErO:SQ,UO'#F_O:qQSO'#GkO:vQSO'#GoO;RQSO'#GoO;aQSO'#GrO;aQSO'#GsO;aQSO'#GuO9_QSO'#GxOQQSO'#HoO>VQ(C]O'#HuO%QQUO'#HwO>bQ(C]O'#HyO>mQ(C]O'#H{O9OQ(C[O'#H}O>xQ(CjO'#CfO?zQWO'#DfQOQSOOO@bQSO'#EPO9dQ,UO'#EgO@mQSO'#EgO@xQ`O'#F_OOQQ'#Cd'#CdOOQ(CW'#Dk'#DkOOQ(CW'#Jg'#JgO%QQUO'#JgOBUQWO'#E`OOQ(CW'#E_'#E_OB`Q(C`O'#E`OBzQWO'#ESOOQO'#Jj'#JjOC`QWO'#ESOCmQWO'#E`ODTQWO'#EfODWQWO'#E`ODqQWO'#E`OAQQWO'#E`OBzQWO'#E`PEbO?MpO'#C`POOO)CDn)CDnOOOO'#IV'#IVOEmOpO,59ROOQ(CY,59R,59ROOOO'#IW'#IWOE{O!bO,59RO%QQUO'#D]OOOO'#IY'#IYOFZO07`O,59uOOQ(CY,59u,59uOFiQUO'#IZOF|QSO'#JeOIOQbO'#JeO+sQUO'#JeOIVQSO,59{OImQSO'#EiOIzQSO'#JrOJVQSO'#JqOJVQSO'#JqOJ_QSO,5;VOJdQSO'#JpOOQ(CY,5:W,5:WOJkQUO,5:WOLlQ(CjO,5:bOM]QSO,5:jOMbQSO'#JnON[Q(C[O'#JoO:vQSO'#JnONcQSO'#JnONkQSO,5;UONpQSO'#JnOOQ(CY'#Cf'#CfO%QQUO'#EOO! dQ`O,5:oOOQO'#Jk'#JkOOQO-E<^-E<^O9_QSO,5=VO! zQSO,5=VO!!PQUO,5;SO!$SQ,UO'#EdO!%gQSO,5;SO!'PQ,UO'#DpO!'WQUO'#DuO!'bQWO,5;]O!'jQWO,5;]O%QQUO,5;]OOQQ'#FO'#FOOOQQ'#FQ'#FQO%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^O%QQUO,5;^OOQQ'#FU'#FUO!'xQUO,5;oOOQ(CY,5;t,5;tOOQ(CY,5;u,5;uO!){QSO,5;uOOQ(CY,5;v,5;vO%QQUO'#IfO!*TQ(C[O,5kOOQQ'#JX'#JXOOQQ,5>l,5>lOOQQ-EQQWO,5;yO!>VQSO,5=rO!>[QSO,5=rO!>aQSO,5=rO9OQ(C[O,5=rO!>oQSO'#EkO!?iQWO'#ElOOQ(CW'#Jp'#JpO!?pQ(C[O'#KOO9OQ(C[O,5=ZO;aQSO,5=aOOQO'#Cr'#CrO!?{QWO,5=^O!@TQ,UO,5=_O!@`QSO,5=aO!@eQ`O,5=dO>QQSO'#G}O9_QSO'#HPO!@mQSO'#HPO9dQ,UO'#HSO!@rQSO'#HSOOQQ,5=g,5=gO!@wQSO'#HTO!APQSO'#ClO!AUQSO,58|O!A`QSO,58|O!ChQUO,58|OOQQ,58|,58|O!CuQ(C[O,58|O%QQUO,58|O!DQQUO'#H[OOQQ'#H]'#H]OOQQ'#H^'#H^O`QUO,5=tO!DbQSO,5=tO`QUO,5=zO`QUO,5=|O!DgQSO,5>OO`QUO,5>QO!DlQSO,5>TO!DqQUO,5>ZOOQQ,5>a,5>aO%QQUO,5>aO9OQ(C[O,5>cOOQQ,5>e,5>eO!HxQSO,5>eOOQQ,5>g,5>gO!HxQSO,5>gOOQQ,5>i,5>iO!H}QWO'#DXO%QQUO'#JgO!IlQWO'#JgO!JZQWO'#DgO!JlQWO'#DgO!L}QUO'#DgO!MUQSO'#JfO!M^QSO,5:QO!McQSO'#EmO!MqQSO'#JsO!MyQSO,5;WO!NOQWO'#DgO!N]QWO'#EROOQ(CY,5:k,5:kO%QQUO,5:kO!NdQSO,5:kO>QQSO,5;RO!uO+sQUO,5>uOOQO,5>{,5>{O#&oQUO'#IZOOQO-EUQ(CjO1G0xO#AUQ$IUO'#CfO#CSQ$IUO1G1ZO#EQQ$IUO'#JdO!*OQSO1G1aO#EeQ(CjO,5?QOOQ(CW-EQQSO'#HsOOQQ1G3u1G3uO$0}QUO1G3uO9OQ(C[O1G3{OOQQ1G3}1G3}OOQ(CW'#GW'#GWO9OQ(C[O1G4PO9OQ(C[O1G4RO$5RQSO,5@RO!'xQUO,5;XO:vQSO,5;XO>QQSO,5:RO!'xQUO,5:RO!QQSO1G0mO!uO$:qQSO1G5kO$:yQSO1G5wO$;RQbO1G5xO:vQSO,5>{O$;]QSO1G5tO$;]QSO1G5tO:vQSO1G5tO$;eQ(CjO1G5uO%QQUO1G5uO$;uQ(C[O1G5uO$}O:vQSO,5>}OOQO,5>},5>}O$}OOQO-EQQWO,59pO%QQUO,59pO% mQSO1G2SO!%lQ,UO1G2ZO% rQ(CjO7+'gOOQ(CY7+'g7+'gO!!PQUO7+'gOOQ(CY7+%`7+%`O%!fQ`O'#J|O!NgQSO7+(]O%!pQbO7+(]O$<}QSO7+(]O%!wQ(ChO'#CfO%#[Q(ChO,5<{O%#|QSO,5<{OOQ(CW1G5`1G5`OOQQ7+$^7+$^O!VOOQQ,5>V,5>VO%QQUO'#HlO%)^QSO'#HnOOQQ,5>],5>]O:vQSO,5>]OOQQ,5>_,5>_OOQQ7+)a7+)aOOQQ7+)g7+)gOOQQ7+)k7+)kOOQQ7+)m7+)mO%)cQWO1G5mO%)wQ$IUO1G0sO%*RQSO1G0sOOQO1G/m1G/mO%*^Q$IUO1G/mO>QQSO1G/mO!'xQUO'#DgOOQO,5>v,5>vOOQO-E|,5>|OOQO-E<`-E<`O!QQSO7+&XO!wOOQO-ExO%QQUO,5>xOOQO-E<[-E<[O%5iQSO1G5oOOQ(CY<}Q$IUO1G0xO%?UQ$IUO1G0xO%AYQ$IUO1G0xO%AaQ$IUO1G0xO%CXQ$IUO1G0xO%ClQ(CjO<WOOQQ,5>Y,5>YO&&aQSO1G3wO:vQSO7+&_O!'xQUO7+&_OOQO7+%X7+%XO&&fQ$IUO1G5xO>QQSO7+%XOOQ(CY<QQSO<[QWO,5=mO&>mQWO,5:zOOQQ<QQSO7+)cO&@ZQSO<zAN>zO%QQUOAN?WO!zO&@pQ(C[OAN?WO!zO&@{Q(C[OAN?WOBzQWOAN>zO&AZQ(C[OAN?WO&AoQ(C`OAN?WO&AyQWOAN>zOBzQWOAN?WOOQO<ROy)uO|)vO(h)xO(i)zO~O#d#Wa^#Wa#X#Wa'k#Wa!V#Wa!g#Wa!X#Wa!S#Wa~P#*rO#d(QXP(QXX(QX^(QXk(QXz(QX!e(QX!h(QX!l(QX#g(QX#h(QX#i(QX#j(QX#k(QX#l(QX#m(QX#n(QX#o(QX#q(QX#s(QX#u(QX#v(QX'k(QX(R(QX(a(QX!g(QX!S(QX'i(QXo(QX!X(QX%a(QX!a(QX~P!1}O!V.bOd([X~P!.aOd.dO~O!V.eO!g(]X~P!4aO!g.hO~O!S.jO~OP$ZOy#wOz#xO|#yO!f#uO!h#vO!l$ZO(RVOX#fi^#fik#fi!V#fi!e#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(a#fi(h#fi(i#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O#g#fi~P#.nO#g#|O~P#.nOP$ZOy#wOz#xO|#yO!f#uO!h#vO!l$ZO#g#|O#h#}O#i#}O#j#}O(RVOX#fi^#fi!V#fi!e#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi'k#fi(a#fi(h#fi(i#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~Ok#fi~P#1`Ok$OO~P#1`OP$ZOk$OOy#wOz#xO|#yO!f#uO!h#vO!l$ZO#g#|O#h#}O#i#}O#j#}O#k$PO(RVO^#fi!V#fi#q#fi#s#fi#u#fi#v#fi'k#fi(a#fi(h#fi(i#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~OX#fi!e#fi#l#fi#m#fi#n#fi#o#fi~P#4QOX$bO!e$QO#l$QO#m$QO#n$aO#o$QO~P#4QOP$ZOX$bOk$OOy#wOz#xO|#yO!e$QO!f#uO!h#vO!l$ZO#g#|O#h#}O#i#}O#j#}O#k$PO#l$QO#m$QO#n$aO#o$QO#q$RO(RVO^#fi!V#fi#s#fi#u#fi#v#fi'k#fi(a#fi(i#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O(h#fi~P#7RO(h#zO~P#7ROP$ZOX$bOk$OOy#wOz#xO|#yO!e$QO!f#uO!h#vO!l$ZO#g#|O#h#}O#i#}O#j#}O#k$PO#l$QO#m$QO#n$aO#o$QO#q$RO#s$TO(RVO(h#zO^#fi!V#fi#u#fi#v#fi'k#fi(a#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~O(i#fi~P#9sO(i#{O~P#9sOP$ZOX$bOk$OOy#wOz#xO|#yO!e$QO!f#uO!h#vO!l$ZO#g#|O#h#}O#i#}O#j#}O#k$PO#l$QO#m$QO#n$aO#o$QO#q$RO#s$TO#u$VO(RVO(h#zO(i#{O~O^#fi!V#fi#v#fi'k#fi(a#fi'i#fi!S#fi!g#fio#fi!X#fi%a#fi!a#fi~P#SOy)uO|)vO(h)xO(i)zO~OP#fiX#fik#fiz#fi!e#fi!f#fi!h#fi!l#fi#g#fi#h#fi#i#fi#j#fi#k#fi#l#fi#m#fi#n#fi#o#fi#q#fi#s#fi#u#fi#v#fi#y#fi(R#fi(a#fi!V#fi!W#fi~P%D`O!f#uOP(QXX(QXg(QXk(QXy(QXz(QX|(QX!e(QX!h(QX!l(QX#g(QX#h(QX#i(QX#j(QX#k(QX#l(QX#m(QX#n(QX#o(QX#q(QX#s(QX#u(QX#v(QX#y(QX(R(QX(a(QX(h(QX(i(QX!V(QX!W(QX~O#y#zi!V#zi!W#zi~P#A]O#y!ni!W!ni~P$$jO!W6|O~O!V'Ya!W'Ya~P#A]O!a#sO(a'fO!V'Za!g'Za~O!V/YO!g(ni~O!V/YO!a#sO!g(ni~Od$uq!V$uq#X$uq#y$uq~P!.aO!S']a!V']a~P#*rO!a7TO~O!V/bO!S(oi~P#*rO!V/bO!S(oi~O!S7XO~O!a#sO#o7^O~Ok7_O!a#sO(a'fO~O!S7aO~Od$wq!V$wq#X$wq#y$wq~P!.aO^$iy!V$iy'k$iy'i$iy!S$iy!g$iyo$iy!X$iy%a$iy!a$iy~P!4aO!V4aO!X(pa~O^#[y!V#[y'k#[y'i#[y!S#[y!g#[yo#[y!X#[y%a#[y!a#[y~P!4aOX7fO~O!V0bO!W(vi~O]7lO~O!a6PO~O(U(sO!V'bX!W'bX~O!V4xO!W(sa~O!h%[O'}%PO^(ZX!a(ZX!l(ZX#X(ZX'k(ZX(a(ZX~O't7uO~P._O!xg#>v#>|#?`#?f#?l#?z#@a#Aq#BP#BV#B]#Bc#Bi#Bs#By#CP#CZ#Cm#CsPPPPPPPPPP#CyPPPPPPP#Dm#I^P#J}#KU#K^PPPP$ h$$^$+P$+S$+V$-g$-j$-m$-tPP$-z$.O$.w$/w$/{$0aPP$0e$0k$0oP$0r$0v$0y$1o$2V$2[$2_$2b$2h$2k$2o$2sR!zRmpOXr!X#b%^&e&g&h&j,`,e1j1mU!pQ'R-QQ%dtQ%lwQ%szQ&]!TS&y!c,xQ'X!f^'^!m!r!s!t!u!v!wS*^$z*cQ+W%mQ+e%uQ,P&VQ-O'QQ-Y'YY-b'_'`'a'b'cQ/s*eQ1X,QW2e-d-f-g-hS5R0}5UU6a2h2j2kU8R5Y5Z5]S8x6d6fS9u8S8TQ:c8{Q:z9xRO>R>SQ%vzQ&w!cS&}%x,{Q+]%oS/Q)v/SQ0O*rQ0g+^Q0l+dQ1`,VQ1a,WQ4i0bQ4r0nQ5l1[Q5m1_Q7h4jQ7k4oQ8b5oQ9j7lR:R8_pmOXr!T!X#b%^&[&e&g&h&j,`,e1j1mR,T&^&z`OPXYrstux!X!^!g!l#Q#b#l#r#v#y#|#}$O$P$Q$R$S$T$U$V$W$Y$_$c$k%^%d%q&^&a&b&e&g&h&j&n&v'T'h'z(Q([(m(q(u)i)t*v+O+j,[,`,e,q,t-U-^-r-{.X.e.l.t/}0S0a1Q1b1c1d1f1j1m1o2O2`2o2y3R3h4z4}5b5t5v5w6Q6Z6p8O8Y8g8s9k:Y:^;V;m;zO!d%iw!f!o%k%l%m&x'W'X'Y']'k*]+V+W,u-X-Y-a-c/k0`2T2[2c2g4U6_6c8v8z:a;YQ+P%gQ+p&OQ+s&PQ+}&VQ.Y(fQ1R+zU1V,O,P,QQ2z.ZQ5c1SS5g1W1XS7t4|5QQ8^5hU9s7z8P8QU:x9t9v9wQ;e:yQ;u;f!z=y#s$a$b$v$y)p)|*Z*}+Q+o+r.W/b/d0t0w1P2x3z4S4a4c5a6m7T7^8V9P9{:g:};^R>Sg=zO>R>ST)q$s)rV*o%TPR>O>Q'QkOPWXYZrstu!X!^!l#Q#U#X#b#l#r#v#y#|#}$O$P$Q$R$S$T$U$V$W$Y$_$c$k%^%d%q&^&a&b&e&g&h&j&n&v&z'T'h'x'z(Q([(m(q(u)i)t*v+O+j,[,`,e,q,t-U-^-r-{.X.e.l.t/}0S0a1Q1b1c1d1f1j1m1o2O2`2o2y3R3h4z4}5b5t5v5w6Q6Z6p8O8Y8g8s9k:Y:^;V;m;zO!z(l#s$a$b$v$y)p)|*Z*}+Q+o+r.W/b/d0t0w1P2x3z4S4a4c5a6m7T7^8V9P9{:g:};^R>SQ*s%XQ/P)ug3eOQ*V$xS*`$z*cQ*t%YQ/o*a!z=h#s$a$b$v$y)p)|*Z*}+Q+o+r.W/b/d0t0w1P2x3z4S4a4c5a6m7T7^8V9P9{:g:};^R>Sf=iO!z(l#s$a$b$v$y)p)|*Z*}+Q+o+r.W/b/d0t0w1P2x3z4S4a4c5a6m7T7^8V9P9{:g:};^R>Sg3eO>R>SQ+q&PQ0v+sQ4v0uR7o4wT*b$z*cS*b$z*cT5T0}5US/m*_4}T4W/u8OQ+R%hQ/n*`Q0]+SQ1T+|Q5e1UQ8[5fQ9n7sQ:O8]Q:t9oQ;P:PQ;c:wQ;s;dQP>Q]=P3d6x9U:i:j;|p){$t(n*u/U/`/w/x3O3w4^6}7`:k=g=s=t!Y=Q(j)Z*P*X._.{/W/e0U0s0u2{2}3x3|4u4w6q6r7U7Y7b7d9`9d;_>P>Q_=R3d6x9U9V:i:j;|pmOXr!T!X#b%^&[&e&g&h&j,`,e1j1mQ&X!SR,[&bpmOXr!T!X#b%^&[&e&g&h&j,`,e1j1mR&X!SQ+u&QR0r+nqmOXr!T!X#b%^&[&e&g&h&j,`,e1j1mQ1O+zS5`1R1SU8U5^5_5cS9z8W8XS:{9y9|Q;g:|R;v;hQ&`!TR,U&[R5l1[S%pz%uR0h+_Q&e!UR,`&fR,f&kT1k,e1mR,j&lQ,i&lR1t,jQ'o!yR-l'oQrOQ#bXT%ar#bQ!|TR'q!|Q#PUR's#PQ)r$sR.|)rQ#SVR'u#SQ#VWU'{#V'|-sQ'|#WR-s'}Q,y&{R2Q,yQ.c(nR3P.cQ.f(pS3S.f3TR3T.gQ-Q'RR2U-Qr_OXr!T!X#b%^&[&^&e&g&h&j,`,e1j1mU!mQ'R-QS#eZ%[Y#o_!m#e-}5OQ-}(_T5O0}5US#]W%wU(S#](T-tQ(T#^R-t(OQ,|'OR2S,|Q(`#hQ-w(XW.R(`-w2l6gQ2l-xR6g2mQ)d$iR.u)dQ$mhR)j$mQ$`cU)Y$`-oP>QQ/c*XU3{/c3}7VQ3}/eR7V3|Q*c$zR/q*cQ*l%OR/z*lQ4b0UR7c4bQ+l%zR0q+lQ4y0xS7q4y9lR9l7rQ+w&RR0{+wQ5U0}R7|5UQ1Z,RS5j1Z8`R8`5lQ0c+ZW4k0c4m7i9hQ4m0fQ7i4lR9h7jQ+`%pR0i+`Q1m,eR5z1mWqOXr#bQ&i!XQ*x%^Q,_&eQ,a&gQ,b&hQ,d&jQ1h,`S1k,e1mR5y1jQ%`oQ&m!]Q&p!_Q&r!`Q&t!aU'g!o5P5QQ+T%jQ+g%vQ+m%{Q,T&`Q,l&oY-]']'i'j'm8QQ-j'eQ/p*bQ0^+US1^,U,XQ1u,kQ1v,nQ1w,oQ2]-[[2_-_-`-c-i-k9wQ4d0_Q4p0lQ4t0sQ5d1TQ5n1`Q5x1iY6X2^2a2d2f2gQ6[2bQ7e4eQ7m4rQ7n4uQ7{5TQ8Z5eQ8a5mY8p6Y6^6`6b6cQ8r6]Q9i7kQ9m7sQ9}8[Q:S8bY:Z8q8u8w8y8zQ:]8tQ:q9jS:s9n9oQ;O:OW;S:[:`:b:dQ;U:_S;a:t:wQ;i;PU;j;T;X;ZQ;l;WS;r;c;dS;w;k;oQ;y;nS;};s;tQOQ>P>RR>Q>SloOXr!X#b%^&e&g&h&j,`,e1j1mQ!dPS#dZ#lQ&o!^U'Z!l4}8OQ't#QQ(w#yQ)h$kS,X&^&aQ,]&bQ,k&nQ,p&vQ-S'TQ.i(uQ.y)iQ0X+OQ0o+jQ1e,[Q2X-UQ2v.XQ3k.tQ4[/}Q5_1QQ5p1bQ5q1cQ5s1dQ5u1fQ5|1oQ6l2yQ6{3hQ8X5bQ8f5tQ8h5vQ8i5wQ9R6pQ9|8YR:U8g#UcOPXZr!X!^!l#b#l#y%^&^&a&b&e&g&h&j&n&v'T(u+O+j,[,`,e-U.X/}1Q1b1c1d1f1j1m1o2y4}5b5t5v5w6p8O8Y8gQ#WWQ#cYQ%bsQ%ctQ%euS'w#U'zQ'}#XQ(i#rQ(p#vQ(x#|Q(y#}Q(z$OQ({$PQ(|$QQ(}$RQ)O$SQ)P$TQ)Q$UQ)R$VQ)S$WQ)U$YQ)X$_Q)]$cW)g$k)i.t3hQ*{%dQ+a%qS,v&z2OQ-k'hS-p'x-rQ-u(QQ-z([Q.a(mQ.g(qQ.k TypeParamList TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . ?. PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewExpression new TypeArgList CompareOp < ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies in const CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXStartTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast ArrowFunction TypeParamList SequenceExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody MethodDeclaration AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:363,context:mg,nodeProps:[["group",-26,6,14,16,62,199,203,206,207,209,212,215,226,228,234,236,238,240,243,249,255,257,259,261,263,265,266,"Statement",-32,10,11,25,28,29,35,45,48,49,51,56,64,72,76,78,80,81,103,104,113,114,131,134,136,137,138,139,141,142,162,163,165,"Expression",-23,24,26,30,34,36,38,166,168,170,171,173,174,175,177,178,179,181,182,183,193,195,197,198,"Type",-3,84,96,102,"ClassItem"],["openedBy",31,"InterpolationStart",50,"[",54,"{",69,"(",143,"JSXStartTag",155,"JSXStartTag JSXStartCloseTag"],["closedBy",33,"InterpolationEnd",44,"]",55,"}",70,")",144,"JSXSelfCloseEndTag JSXEndTag",160,"JSXEndTag"]],propSources:[yg],skippedNodes:[0,3,4,269],repeatNodeCount:32,tokenData:"$>y(CSR!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tu>PuvBavwDxwxGgxyMvyz! Qz{!![{|!%O|}!&]}!O!%O!O!P!'g!P!Q!1w!Q!R#0t!R![#3T![!]#@T!]!^#Aa!^!_#Bk!_!`#GS!`!a#In!a!b#N{!b!c$$z!c!}>P!}#O$&U#O#P$'`#P#Q$,w#Q#R$.R#R#S>P#S#T$/`#T#o$0j#o#p$4z#p#q$5p#q#r$7Q#r#s$8^#s$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$I|>P$I|$I}$P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(n%d_$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$d&j'z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU'z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$d&j'wpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU'wpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX'wp'z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z(CS+rq$d&j'wp'z!b'm(;dOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z(CS.ST'x#S$d&j'n(;dO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c(CS.n_$d&j'wp'z!b'n(;dOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`/x`$d&j!l$Ip'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S1V`#q$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#S2d_#q$Id$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$2b3l_'v$(n$d&j'z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k*r4r_$d&j'z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k)`5vX$d&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q)`6jT$_#t$d&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#t6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y#t7bO$_#t#t7eP;=`<%l6y)`7kP;=`<%l5q*r7w]$_#t$d&j'z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}%W8uZ'z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p%W9oU$_#t'z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}%W:UP;=`<%l8p*r:[P;=`<%l4k#%|:hg$d&j'wp'z!bOY%ZYZ&cZr%Zrs&}st%Ztu`k$d&j'wp'z!b(U!LY't&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P+d@`k$d&j'wp'z!b$W#tOY%ZYZ&cZr%Zrs&}st%Ztu@Tuw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![@T![!^%Z!^!_*g!_!c%Z!c!}@T!}#O%Z#O#P&c#P#R%Z#R#S@T#S#T%Z#T#o@T#o#p*g#p$g%Z$g;'S@T;'S;=`BT<%lO@T+dBWP;=`<%l@T(CSB^P;=`<%l>P%#SBl`$d&j'wp'z!b#i$IdOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Cn!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#SCy_$d&j#{$Id'wp'z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%DfETa(i%Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z$/l#>fi$d&j'wp'z!bl$'|OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#>Z![!^%Z!^!_*g!_!c%Z!c!i#>Z!i#O%Z#O#P&c#P#R%Z#R#S#>Z#S#T%Z#T#Z#>Z#Z#b%Z#b#c#5T#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%Gh#@b_!a$b$d&j#y%Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$f%Z$f$g+g$g#BY>P#BY#BZ$9h#BZ$IS>P$IS$I_$9h$I_$JT>P$JT$JU$9h$JU$KV>P$KV$KW$9h$KW&FU>P&FU&FV$9h&FV;'S>P;'S;=`BZ<%l?HT>P?HT?HU$9h?HUO>P(CS$=Uk$d&j'wp'z!b'n(;d(U!LY't&;d$W#tOY%ZYZ&cZr%Zrs&}st%Ztu>Puw%Zwx(rx}%Z}!O@T!O!Q%Z!Q![>P![!^%Z!^!_*g!_!c%Z!c!}>P!}#O%Z#O#P&c#P#R%Z#R#S>P#S#T%Z#T#o>P#o#p*g#p$g%Z$g;'S>P;'S;=`BZ<%lO>P",tokenizers:[pg,bg,2,3,4,5,6,7,8,9,10,11,12,13,gg,new xn("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOq~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!O~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(T~~",141,326),new xn("j~RQYZXz{^~^O'q~~aP!P!Qd~iO'r~~",25,308)],topRules:{Script:[0,5],SingleExpression:[1,267],SingleClassItem:[2,268]},dialects:{jsx:13525,ts:13527},dynamicPrecedences:{76:1,78:1,163:1,191:1},specialized:[{term:312,get:i=>vg[i]||-1},{term:328,get:i=>kg[i]||-1},{term:67,get:i=>wg[i]||-1}],tokenPrec:13551});var Ue=require("@codemirror/language"),_g=require("@codemirror/state"),Og=require("@codemirror/view"),Rr=require("@codemirror/autocomplete"),Nc=require("@lezer/common");var Lc=Ue.LRLanguage.define({name:"javascript",parser:Wc.configure({props:[Ue.indentNodeProp.add({IfStatement:(0,Ue.continuedIndent)({except:/^\s*({|else\b)/}),TryStatement:(0,Ue.continuedIndent)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:Ue.flatIndent,SwitchBody:i=>{let e=i.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return i.baseIndent+(t?0:n?1:2)*i.unit},Block:(0,Ue.delimitedIndent)({closing:"}"}),ArrowFunction:i=>i.baseIndent+i.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,Ue.continuedIndent)({except:/^{/}),JSXElement(i){let e=/^\s*<\//.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},JSXEscape(i){let e=/\s*\}/.test(i.textAfter);return i.lineIndent(i.node.from)+(e?0:i.unit)},"JSXOpenTag JSXSelfClosingTag"(i){return i.column(i.node.from)+i.unit}}),Ue.foldNodeProp.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Ue.foldInside,BlockComment(i){return{from:i.from+2,to:i.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}});var zv=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent);var Rt=require("@codemirror/language"),ti=require("@codemirror/view"),Di=require("@codemirror/autocomplete"),ts=require("@codemirror/search"),$c=require("@codemirror/lint"),Bc=()=>[Lc,(0,Rt.foldGutter)(),(0,ti.drawSelection)(),(0,ti.dropCursor)(),(0,Rt.indentOnInput)(),(0,Rt.syntaxHighlighting)(Rt.defaultHighlightStyle,{fallback:!0}),ti.EditorView.lineWrapping,(0,Rt.bracketMatching)(),(0,Di.closeBrackets)(),(0,Di.autocompletion)(),(0,ti.rectangularSelection)(),(0,ts.highlightSelectionMatches)(),ti.keymap.of([...Di.closeBracketsKeymap,...Cn.defaultKeymap,...ts.searchKeymap,...Cn.historyKeymap,Cn.indentWithTab,...Rt.foldKeymap,...Di.completionKeymap,...$c.lintKeymap])].filter(i=>i);var Hc=require("@codemirror/view"),Xv=require("@codemirror/state"),is=require("@codemirror/language"),He=require("@lezer/highlight"),Sg="#abb2bf",xg="#7d8799",Tg="#ffffff",Cg="#21252b",Wr="rgba(0, 0, 0, 0.5)",Ag="#292d3e",Nr="#353a42",Dg="rgba(128, 203, 196, 0.2)",zc="#ffcc00",Pg=Hc.EditorView.theme({"&":{color:"#ffffff",backgroundColor:Ag},".cm-content":{caretColor:zc},"&.cm-focused .cm-cursor":{borderLeftColor:zc},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Dg},".cm-panels":{backgroundColor:Cg,color:"#ffffff"},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:Wr},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{background:"#292d3e",color:"#676e95",border:"none"},".cm-activeLineGutter":{backgroundColor:Wr},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Nr},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Nr,borderBottomColor:Nr},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Wr,color:Sg}}},{dark:!0}),Mg=is.HighlightStyle.define([{tag:He.tags.keyword,color:"#c792ea"},{tag:He.tags.operator,color:"#89ddff"},{tag:He.tags.special(He.tags.variableName),color:"#eeffff"},{tag:He.tags.typeName,color:"#f07178"},{tag:He.tags.atom,color:"#f78c6c"},{tag:He.tags.number,color:"#ff5370"},{tag:He.tags.definition(He.tags.variableName),color:"#82aaff"},{tag:He.tags.string,color:"#c3e88d"},{tag:He.tags.special(He.tags.string),color:"#f07178"},{tag:He.tags.comment,color:xg},{tag:He.tags.variableName,color:"#f07178"},{tag:He.tags.tagName,color:"#ff5370"},{tag:He.tags.bracket,color:"#a2a1a4"},{tag:He.tags.meta,color:"#ffcb6b"},{tag:He.tags.attributeName,color:"#c792ea"},{tag:He.tags.propertyName,color:"#c792ea"},{tag:He.tags.className,color:"#decb6b"},{tag:He.tags.invalid,color:Tg}]),Fc=[Pg,(0,is.syntaxHighlighting)(Mg)];var Gc=require("@codemirror/view"),Vv=require("@codemirror/state"),as=require("@codemirror/language"),fe=require("@lezer/highlight"),jc="#2e3440",Fr="#3b4252",Zc="#434c5e",ns="#4c566a";var Xc="#e5e9f0",Hr="#eceff4",Lr="#8fbcbb",qc="#88c0d0",Eg="#81a1c1",zt="#5e81ac",Qg="#bf616a",An="#d08770",$r="#ebcb8b",Uc="#a3be8c",Ig="#b48ead",Vc="#d30102",jr=Hr,Br=jr,Rg="#ffffff",zr=Fr,Wg=jr,Yc=Fr,Zr=Gc.EditorView.theme({"&":{color:jc,backgroundColor:Rg},".cm-content":{caretColor:Yc},".cm-cursor, .cm-dropCursor":{borderLeftColor:Yc},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Wg},".cm-panels":{backgroundColor:jr,color:ns},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:`1px solid ${ns}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:Xc},".cm-activeLine":{backgroundColor:Br},".cm-selectionMatch":{backgroundColor:Xc},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{outline:`1px solid ${ns}`},"&.cm-focused .cm-matchingBracket":{backgroundColor:Hr},".cm-gutters":{backgroundColor:Hr,color:jc,border:"none"},".cm-activeLineGutter":{backgroundColor:Br},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:zr},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:zr,borderBottomColor:zr},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Br,color:ns}}},{dark:!1}),Ng=as.HighlightStyle.define([{tag:fe.tags.keyword,color:zt},{tag:[fe.tags.name,fe.tags.deleted,fe.tags.character,fe.tags.propertyName,fe.tags.macroName],color:An},{tag:[fe.tags.variableName],color:An},{tag:[fe.tags.function(fe.tags.variableName)],color:zt},{tag:[fe.tags.labelName],color:Eg},{tag:[fe.tags.color,fe.tags.constant(fe.tags.name),fe.tags.standard(fe.tags.name)],color:zt},{tag:[fe.tags.definition(fe.tags.name),fe.tags.separator],color:Uc},{tag:[fe.tags.brace],color:Lr},{tag:[fe.tags.annotation],color:Vc},{tag:[fe.tags.number,fe.tags.changed,fe.tags.annotation,fe.tags.modifier,fe.tags.self,fe.tags.namespace],color:qc},{tag:[fe.tags.typeName,fe.tags.className],color:$r},{tag:[fe.tags.operator,fe.tags.operatorKeyword],color:Uc},{tag:[fe.tags.tagName],color:Ig},{tag:[fe.tags.squareBracket],color:Qg},{tag:[fe.tags.angleBracket],color:An},{tag:[fe.tags.attributeName],color:$r},{tag:[fe.tags.regexp],color:zt},{tag:[fe.tags.quote],color:Fr},{tag:[fe.tags.string],color:An},{tag:fe.tags.link,color:Lr,textDecoration:"underline",textUnderlinePosition:"under"},{tag:[fe.tags.url,fe.tags.escape,fe.tags.special(fe.tags.string)],color:An},{tag:[fe.tags.meta],color:qc},{tag:[fe.tags.comment],color:Zc,fontStyle:"italic"},{tag:fe.tags.strong,fontWeight:"bold",color:zt},{tag:fe.tags.emphasis,fontStyle:"italic",color:zt},{tag:fe.tags.strikethrough,textDecoration:"line-through"},{tag:fe.tags.heading,fontWeight:"bold",color:zt},{tag:fe.tags.special(fe.tags.heading1),fontWeight:"bold",color:zt},{tag:fe.tags.heading1,fontWeight:"bold",color:zt},{tag:[fe.tags.heading2,fe.tags.heading3,fe.tags.heading4],fontWeight:"bold",color:zt},{tag:[fe.tags.heading5,fe.tags.heading6],color:zt},{tag:[fe.tags.atom,fe.tags.bool,fe.tags.special(fe.tags.variableName)],color:An},{tag:[fe.tags.processingInstruction,fe.tags.inserted],color:Lr},{tag:[fe.tags.contentSeparator],color:$r},{tag:fe.tags.invalid,color:Zc,borderBottom:`1px dotted ${Vc}`}]),Gv=[Zr,(0,as.syntaxHighlighting)(Ng)];function Ht(i,e,t="js"){let n=Bc();document.body.hasClass("theme-dark")?n.push(Fc):n.push(Zr);let a=[...n];e&&a.push(e);let s=new Jc.EditorView({state:Kc.EditorState.create({doc:i.value,extensions:a})});return i.parentNode.appendChild(s.dom),i.style.display="none",i.form&&i.form.addEventListener("submit",()=>{i.value=s.state.doc.toString()}),s}function ii(i){return i?i.toLowerCase().replace(/[^A-Za-z0-9\s_-]/g,"").replace(/\s+/g,"-"):""}function sa(i){return i[0].toUpperCase()+i.slice(1).toLowerCase()}function q(){return"xyxyxyxyxyxy".replace(/[xy]/g,function(i){let e=Math.random()*16|0;return(i=="x"?e:e&3|8).toString(16)})}function ye(i,e=0,t=" ",n=!0){let a=[];if(e==5||i==null)return"";if(typeof i=="string")return i;if(typeof i=="number")return`${i}`;if(Array.isArray(i))a.push(`${n?"(":""}${i.map(s=>ye(s,e++)).join(t)}${n?")":""}`);else if(typeof i=="object")for(let s of Object.values(i))a.push(ye(s,e++));return a.join(" ")}function Xr(i,e){if(!Array.isArray(i)&&typeof i!="string"||!Array.isArray(e)&&typeof e!="string")return e;let t=(0,eh.default)(i);if(Array.isArray(t)){if(Array.isArray(e))return[...t,...e];if(typeof e=="string")return t.push(e),t}else if(typeof t=="string")return`${t} ${ye(e)}`;return e}var Lg=[{type:"inline",id:q(),properties:[],hasRule:!0,nested:[{type:"group",id:q(),properties:["name","size","type","subtype","alignment"],nested:[{type:"inline",id:q(),properties:[],hasRule:!1,nested:[{type:"heading",id:q(),properties:["name"],conditioned:!0,size:1},{type:"inline",id:q(),properties:[],hasRule:!1,nested:[{type:"action",id:q(),icon:"sword",callback:"try { InitiativeTracker.newEncounter({roll: true, creatures: [monster]}); } catch(e) {}"},{type:"action",id:q(),icon:"plus-with-circle",callback:"try { InitiativeTracker.addCreatures([monster]); } catch(e) {}"}]}]},{type:"subheading",id:q(),properties:["size","type","subtype","alignment"],conditioned:!0,separator:", "}],conditioned:!0},{type:"image",id:q(),properties:["image"]}]},{type:"group",id:q(),properties:["ac","hp","speed"],nested:[{type:"property",id:q(),properties:["ac"],display:"Armor Class",conditioned:!0,callback:'const ac = [monster.ac];if ("ac_class" in monster) {ac.push(`(${monster.ac_class})`);}return ac.join(" ");'},{type:"property",id:q(),properties:["hp"],display:"Hit Points",dice:!0,diceProperty:"hit_dice",diceCallback:`if ("hit_dice" in monster) { + return [{ text: monster["hit_dice"] }]; +} else { + return property; +}`,callback:`let str = [monster.hp]; +if (monster.hit_dice?.length) { + str.push(\`(\${monster.hit_dice})\`); +} +return str.join(" ");`,conditioned:!0},{type:"property",id:q(),display:"Speed",properties:["speed"],conditioned:!0}],hasRule:!0,conditioned:!0},{type:"table",id:q(),properties:["stats"],headers:["Str","Dex","Con","Int","Wis","Cha"],calculate:!0,hasRule:!0,conditioned:!0},{type:"table",id:q(),properties:["fage_stats"],headers:["Accuracy","Communication","Constitution","Dexterity","Fighting","Intelligence","Perception","Strength","Willpower"],calculate:!1,hasRule:!0,conditioned:!0},{type:"group",id:q(),properties:["saves","skillsaves","damage_immunities","damage_resistances","damage_vulnerabilities","condition_immunities","cr","languages","senses"],nested:[{type:"saves",id:q(),display:"Saves",properties:["saves"],conditioned:!0},{type:"saves",id:q(),display:"Skills",properties:["skillsaves"],conditioned:!0},{type:"property",id:q(),display:"Damage Resistances",properties:["damage_resistances"],conditioned:!0},{type:"property",id:q(),display:"Damage Immunities",properties:["damage_immunities"],conditioned:!0},{type:"property",id:q(),display:"Condition Immunities",properties:["condition_immunities"],conditioned:!0},{type:"property",id:q(),display:"Damage Vulnerabilities",properties:["damage_vulnerabilities"],conditioned:!0},{type:"property",id:q(),display:"Senses",properties:["senses"],conditioned:!0},{type:"property",id:q(),display:"Languages",properties:["languages"],fallback:"-"},{type:"inline",id:q(),properties:[],conditioned:!0,nested:[{type:"property",id:q(),display:"Challenge",properties:["cr"],callback:`const CR = { + "0": { + cr: "0", + value: 0, + xp: 10 + }, + "1/8": { + cr: "1/8", + value: 0.125, + xp: 25 + }, + "1/4": { + cr: "1/4", + + value: 0.25, + xp: 50 + }, + "1/2": { + cr: "1/2", + value: 0.5, + xp: 100 + }, + "0.125": { + cr: "1/8", + value: 0.125, + xp: 25 + }, + "0.25": { + cr: "1/4", + + value: 0.25, + xp: 50 + }, + "0.5": { + cr: "1/2", + value: 0.5, + xp: 100 + }, + "1": { + cr: "1", + value: 1, + xp: 200 + }, + "2": { + cr: "2", + value: 2, + xp: 450 + }, + "3": { + cr: "3", + value: 3, + xp: 700 + }, + "4": { + cr: "4", + value: 4, + xp: 1100 + }, + "5": { + cr: "5", + value: 5, + xp: 1800 + }, + "6": { + cr: "6", + value: 6, + xp: 2300 + }, + "7": { + cr: "7", + value: 7, + xp: 2900 + }, + "8": { + cr: "8", + value: 8, + xp: 3900 + }, + "9": { + cr: "9", + value: 9, + xp: 5000 + }, + "10": { + cr: "10", + value: 10, + xp: 5900 + }, + "11": { + cr: "11", + value: 11, + xp: 7200 + }, + "12": { + cr: "12", + value: 12, + xp: 8400 + }, + "13": { + cr: "13", + value: 13, + xp: 10000 + }, + "14": { + cr: "14", + value: 14, + xp: 11500 + }, + "15": { + cr: "15", + value: 15, + xp: 13000 + }, + "16": { + cr: "16", + value: 16, + xp: 15000 + }, + "17": { + cr: "17", + value: 17, + xp: 18000 + }, + "18": { + cr: "18", + value: 18, + xp: 20000 + }, + "19": { + cr: "19", + value: 19, + xp: 22000 + }, + "20": { + cr: "20", + value: 20, + xp: 25000 + }, + "21": { + cr: "21", + value: 21, + xp: 33000 + }, + "22": { + cr: "22", + value: 22, + xp: 41000 + }, + "23": { + cr: "23", + value: 23, + xp: 50000 + }, + "24": { + cr: "24", + value: 24, + xp: 62000 + }, + "25": { + cr: "25", + value: 25, + xp: 75000 + }, + "26": { + cr: "26", + value: 26, + xp: 90000 + }, + "27": { + cr: "27", + value: 27, + xp: 105000 + }, + "28": { + cr: "28", + value: 28, + xp: 120000 + }, + "29": { + cr: "29", + value: 29, + xp: 135000 + }, + "30": { + cr: "30", + value: 30, + xp: 155000 + } +}; +if ("cr" in monster && monster.cr in CR) { + return \`\${CR[ + monster.cr + ].cr} (\${CR[ + monster.cr + ].xp.toLocaleString()} XP)\`; +} +return "";`},{type:"property",id:q(),display:"Proficiency Bonus",properties:["cr"],callback:`const CR = { + "0": { + cr: "0", + value: 0, + xp: 0 + }, + "1/8": { + cr: "1/8", + value: 0.125, + xp: 25 + }, + "1/4": { + cr: "1/4", + + value: 0.25, + xp: 50 + }, + "1/2": { + cr: "1/2", + value: 0.5, + xp: 100 + }, + "0.125": { + cr: "1/8", + value: 0.125, + xp: 25 + }, + "0.25": { + cr: "1/4", + + value: 0.25, + xp: 50 + }, + "0.5": { + cr: "1/2", + value: 0.5, + xp: 100 + }, + "1": { + cr: "1", + value: 1, + xp: 200 + }, + "2": { + cr: "2", + value: 2, + xp: 450 + }, + "3": { + cr: "3", + value: 3, + xp: 700 + }, + "4": { + cr: "4", + value: 4, + xp: 1100 + }, + "5": { + cr: "5", + value: 5, + xp: 1800 + }, + "6": { + cr: "6", + value: 6, + xp: 2300 + }, + "7": { + cr: "7", + value: 7, + xp: 2900 + }, + "8": { + cr: "8", + value: 8, + xp: 3900 + }, + "9": { + cr: "9", + value: 9, + xp: 5000 + }, + "10": { + cr: "10", + value: 10, + xp: 5900 + }, + "11": { + cr: "11", + value: 11, + xp: 7200 + }, + "12": { + cr: "12", + value: 12, + xp: 8400 + }, + "13": { + cr: "13", + value: 13, + xp: 10000 + }, + "14": { + cr: "14", + value: 14, + xp: 11500 + }, + "15": { + cr: "15", + value: 15, + xp: 13000 + }, + "16": { + cr: "16", + value: 16, + xp: 15000 + }, + "17": { + cr: "17", + value: 17, + xp: 18000 + }, + "18": { + cr: "18", + value: 18, + xp: 20000 + }, + "19": { + cr: "19", + value: 19, + xp: 22000 + }, + "20": { + cr: "20", + value: 20, + xp: 25000 + }, + "21": { + cr: "21", + value: 21, + xp: 33000 + }, + "22": { + cr: "22", + value: 22, + xp: 41000 + }, + "23": { + cr: "23", + value: 23, + xp: 50000 + }, + "24": { + cr: "24", + value: 24, + xp: 62000 + }, + "25": { + cr: "25", + value: 25, + xp: 75000 + }, + "26": { + cr: "26", + value: 26, + xp: 90000 + }, + "27": { + cr: "27", + value: 27, + xp: 105000 + }, + "28": { + cr: "28", + value: 28, + xp: 120000 + }, + "29": { + cr: "29", + value: 29, + xp: 135000 + }, + "30": { + cr: "30", + value: 30, + xp: 155000 + } +}; +if ("cr" in monster && monster.cr in CR) { + return \`+\${Math.max( + Math.floor(2 + ((CR[monster.cr]?.value ?? 0) - 1) / 4), + 2 + )}\`; +} +return "";`}]}],conditioned:!0,hasRule:!0},{type:"traits",id:q(),properties:["traits"],conditioned:!0,dice:!0},{type:"spells",id:q(),properties:["spells"],conditioned:!0,dice:!0},{type:"text",id:q(),properties:["spellsNotes"],conditioned:!0,text:null},{type:"traits",id:q(),properties:["actions"],heading:"Actions",conditioned:!0,dice:!0},{type:"traits",id:q(),properties:["bonus_actions"],heading:"Bonus Actions",conditioned:!0,dice:!0},{type:"group",id:q(),properties:["legendary_description","legendary_actions"],heading:"Legendary Actions",nested:[{type:"text",id:q(),properties:["legendary_description"],conditioned:!0,text:null},{type:"traits",id:q(),properties:["legendary_actions"],conditioned:!0,dice:!0}],conditioned:!0},{type:"group",id:q(),properties:["mythic_description","mythic_actions"],heading:"Mythic Actions",nested:[{type:"text",id:q(),properties:["mythic_description"],conditioned:!0,text:null},{type:"traits",id:q(),properties:["mythic_actions"],conditioned:!0,dice:!0}],conditioned:!0},{type:"traits",id:q(),properties:["reactions"],heading:"Reactions",conditioned:!0,dice:!0},{type:"traits",id:q(),properties:["lair_actions"],heading:"Lair Actions",conditioned:!0,dice:!0},{type:"traits",id:q(),properties:["regional_effects"],heading:"Regional Effects",conditioned:!0,dice:!0}],ni={blocks:Lg,id:"basic-5e-layout",name:"Basic 5e Layout",edited:!1,version:9};var ld=require("obsidian");function N(){}var ai=i=>i;function at(i,e){for(let t in e)i[t]=e[t];return i}function th(i){return!!i&&(typeof i=="object"||typeof i=="function")&&typeof i.then=="function"}function qr(i){return i()}function rs(){return Object.create(null)}function ce(i){i.forEach(qr)}function Ie(i){return typeof i=="function"}function j(i,e){return i!=i?e==e:i!==e||i&&typeof i=="object"||typeof i=="function"}var ss;function ih(i,e){return i===e?!0:(ss||(ss=document.createElement("a")),ss.href=e,i===ss.href)}function nh(i){return Object.keys(i).length===0}function Tt(i,...e){if(i==null){for(let n of e)n(void 0);return N}let t=i.subscribe(...e);return t.unsubscribe?()=>t.unsubscribe():t}function Se(i,e,t){i.$$.on_destroy.push(Tt(e,t))}function st(i,e,t,n){if(i){let a=ah(i,e,t,n);return i[0](a)}}function ah(i,e,t,n){return i[1]&&n?at(t.ctx.slice(),i[1](n(e))):t.ctx}function rt(i,e,t,n){if(i[2]&&n){let a=i[2](n(t));if(e.dirty===void 0)return a;if(typeof a=="object"){let s=[],r=Math.max(e.dirty.length,a.length);for(let o=0;o32){let e=[],t=i.ctx.length/32;for(let n=0;nwindow.performance.now():()=>Date.now(),ra=sh?i=>requestAnimationFrame(i):N;var Dn=new Set;function rh(i){Dn.forEach(e=>{e.c(i)||(Dn.delete(e),e.f())}),Dn.size!==0&&ra(rh)}function Vi(i){let e;return Dn.size===0&&ra(rh),{promise:new Promise(t=>{Dn.add(e={c:i,f:t})}),abort(){Dn.delete(e)}}}var oa=typeof window<"u"?window:typeof globalThis<"u"?globalThis:global;var os=class i{constructor(e){$e(this,"_listeners","WeakMap"in oa?new WeakMap:void 0);$e(this,"_observer");$e(this,"options");this.options=e}observe(e,t){return this._listeners.set(e,t),this._getObserver().observe(e,this.options),()=>{this._listeners.delete(e),this._observer.unobserve(e)}}_getObserver(){return this._observer??(this._observer=new ResizeObserver(e=>{for(let t of e)i.entries.set(t.target,t),this._listeners.get(t.target)?.(t)}))}};os.entries="WeakMap"in oa?new WeakMap:void 0;var oh=!1;function lh(){oh=!0}function ch(){oh=!1}function b(i,e){i.appendChild(e)}function re(i,e,t){let n=ls(i);if(!n.getElementById(e)){let a=k("style");a.id=e,a.textContent=t,dh(n,a)}}function ls(i){if(!i)return document;let e=i.getRootNode?i.getRootNode():i.ownerDocument;return e&&e.host?e:i.ownerDocument}function hh(i){let e=k("style");return e.textContent="/* empty */",dh(ls(i),e),e.sheet}function dh(i,e){return b(i.head||i,e),e.sheet}function D(i,e,t){i.insertBefore(e,t||null)}function A(i){i.parentNode&&i.parentNode.removeChild(i)}function Xe(i,e){for(let t=0;ti.removeEventListener(e,t,n)}function Ur(i){return function(e){return e.preventDefault(),i.call(this,e)}}function si(i){return function(e){return e.stopPropagation(),i.call(this,e)}}function uh(i){return function(e){e.target===this&&i.call(this,e)}}function g(i,e,t){t==null?i.removeAttribute(e):i.getAttribute(e)!==t&&i.setAttribute(e,t)}function ri(i,e){for(let t in e)g(i,t,e[t])}function Yi(i){return i===""?null:+i}function fh(i){return Array.from(i.childNodes)}function we(i,e){e=""+e,i.data!==e&&(i.data=e)}function kt(i,e){i.value=e??""}function Be(i,e,t,n){t==null?i.style.removeProperty(e):i.style.setProperty(e,t,n?"important":"")}function oe(i,e,t){i.classList.toggle(e,!!t)}function la(i,e,{bubbles:t=!1,cancelable:n=!1}={}){return new CustomEvent(i,{detail:e,bubbles:t,cancelable:n})}var pi=class{constructor(e=!1){$e(this,"is_svg",!1);$e(this,"e");$e(this,"n");$e(this,"t");$e(this,"a");this.is_svg=e,this.e=this.n=null}c(e){this.h(e)}m(e,t,n=null){this.e||(this.is_svg?this.e=jt(t.nodeName):this.e=k(t.nodeType===11?"TEMPLATE":t.nodeName),this.t=t.tagName!=="TEMPLATE"?t:t.content,this.c(e)),this.i(n)}h(e){this.e.innerHTML=e,this.n=Array.from(this.e.nodeName==="TEMPLATE"?this.e.content.childNodes:this.e.childNodes)}i(e){for(let t=0;t{e[t.slot||"default"]=!0}),e}function Vr(i,e){return new i(e)}var cs=new Map,hs=0;function Bg(i){let e=5381,t=i.length;for(;t--;)e=(e<<5)-e^i.charCodeAt(t);return e>>>0}function zg(i,e){let t={stylesheet:hh(e),rules:{}};return cs.set(i,t),t}function ca(i,e,t,n,a,s,r,o=0){let l=16.666/n,c=`{ +`;for(let y=0;y<=1;y+=l){let w=e+(t-e)*s(y);c+=y*100+`%{${r(w,1-w)}} +`}let d=c+`100% {${r(t,1-t)}} +}`,h=`__svelte_${Bg(d)}_${o}`,u=ls(i),{stylesheet:f,rules:m}=cs.get(u)||zg(u,i);m[h]||(m[h]=!0,f.insertRule(`@keyframes ${h} ${d}`,f.cssRules.length));let p=i.style.animation||"";return i.style.animation=`${p?`${p}, `:""}${h} ${n}ms linear ${a}ms 1 both`,hs+=1,h}function ds(i,e){let t=(i.style.animation||"").split(", "),n=t.filter(e?s=>s.indexOf(e)<0:s=>s.indexOf("__svelte")===-1),a=t.length-n.length;a&&(i.style.animation=n.join(", "),hs-=a,hs||Hg())}function Hg(){ra(()=>{hs||(cs.forEach(i=>{let{ownerNode:e}=i.stylesheet;e&&A(e)}),cs.clear())})}function Ei(i,e,t,n){if(!e)return N;let a=i.getBoundingClientRect();if(e.left===a.left&&e.right===a.right&&e.top===a.top&&e.bottom===a.bottom)return N;let{delay:s=0,duration:r=300,easing:o=ai,start:l=Mi()+s,end:c=l+r,tick:d=N,css:h}=t(i,{from:e,to:a},n),u=!0,f=!1,m;function p(){h&&(m=ca(i,0,1,r,s,o,h)),s||(f=!0)}function y(){h&&ds(i,m),u=!1}return Vi(w=>{if(!f&&w>=l&&(f=!0),f&&w>=c&&(d(1,0),y()),!u)return!1;if(f){let _=w-l,O=0+1*o(_/r);d(O,1-O)}return!0}),p(),d(0,1),y}function Qi(i){let e=getComputedStyle(i);if(e.position!=="absolute"&&e.position!=="fixed"){let{width:t,height:n}=e,a=i.getBoundingClientRect();i.style.position="absolute",i.style.width=t,i.style.height=n,Fg(i,a)}}function Fg(i,e){let t=i.getBoundingClientRect();if(e.left!==t.left||e.top!==t.top){let n=getComputedStyle(i),a=n.transform==="none"?"":n.transform;i.style.transform=`${a} translate(${e.left-t.left}px, ${e.top-t.top}px)`}}var Ii;function Ct(i){Ii=i}function Ri(){if(!Ii)throw new Error("Function called outside component initialization");return Ii}function bi(i){Ri().$$.on_mount.push(i)}function yi(i){Ri().$$.on_destroy.push(i)}function Pe(){let i=Ri();return(e,t,{cancelable:n=!1}={})=>{let a=i.$$.callbacks[e];if(a){let s=la(e,t,{cancelable:n});return a.slice().forEach(r=>{r.call(i,s)}),!s.defaultPrevented}return!0}}function At(i,e){return Ri().$$.context.set(i,e),e}function Fe(i){return Ri().$$.context.get(i)}function Yr(){return Ri().$$.context}function je(i,e){let t=i.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}var Gi=[];var Re=[],Mn=[],Kr=[],gh=Promise.resolve(),Jr=!1;function eo(){Jr||(Jr=!0,gh.then(ha))}function us(){return eo(),gh}function Dt(i){Mn.push(i)}function Wt(i){Kr.push(i)}var Gr=new Set,Pn=0;function ha(){if(Pn!==0)return;let i=Ii;do{try{for(;Pni.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),Mn=e}var da;function Zg(){return da||(da=Promise.resolve(),da.then(()=>{da=null})),da}function to(i,e,t){i.dispatchEvent(la(`${e?"intro":"outro"}${t}`))}var fs=new Set,vi;function he(){vi={r:0,c:[],p:vi}}function de(){vi.r||ce(vi.c),vi=vi.p}function M(i,e){i&&i.i&&(fs.delete(i),i.i(e))}function Q(i,e,t,n){if(i&&i.o){if(fs.has(i))return;fs.add(i),vi.c.push(()=>{fs.delete(i),n&&(t&&i.d(1),n())}),i.o(e)}else n&&n()}var Xg={duration:0};function Ki(i,e,t,n){let s=e(i,t,{direction:"both"}),r=n?0:1,o=null,l=null,c=null,d;function h(){c&&ds(i,c)}function u(m,p){let y=m.b-r;return p*=Math.abs(y),{a:r,b:m.b,d:y,duration:p,start:m.start,end:m.start+p,group:m.group}}function f(m){let{delay:p=0,duration:y=300,easing:w=ai,tick:_=N,css:O}=s||Xg,E={start:Mi()+p,b:m};m||(E.group=vi,vi.r+=1),"inert"in i&&(m?d!==void 0&&(i.inert=d):(d=i.inert,i.inert=!0)),o||l?l=E:(O&&(h(),c=ca(i,r,m,y,p,w,O)),m&&_(0,1),o=u(E,y),Dt(()=>to(i,m,"start")),Vi(S=>{if(l&&S>l.start&&(o=u(l,y),l=null,to(i,o.b,"start"),O&&(h(),c=ca(i,r,o.b,o.duration,0,w,s.css))),o){if(S>=o.end)_(r=o.b,1-r),to(i,o.b,"end"),l||(o.b?h():--o.group.r||ce(o.group.c)),o=null;else if(S>=o.start){let v=S-o.start;r=o.a+o.d*w(v/o.duration),_(r,1-r)}}return!!(o||l)}))}return{run(m){Ie(s)?Zg().then(()=>{s=s({direction:m?"in":"out"}),f(m)}):f(m)},end(){h(),o=l=null}}}function bh(i,e){let t=e.token={};function n(a,s,r,o){if(e.token!==t)return;e.resolved=o;let l=e.ctx;r!==void 0&&(l=l.slice(),l[r]=o);let c=a&&(e.current=a)(l),d=!1;e.block&&(e.blocks?e.blocks.forEach((h,u)=>{u!==s&&h&&(he(),Q(h,1,1,()=>{e.blocks[u]===h&&(e.blocks[u]=null)}),de())}):e.block.d(1),c.c(),M(c,1),c.m(e.mount(),e.anchor),d=!0),e.block=c,e.blocks&&(e.blocks[s]=c),d&&ha()}if(th(i)){let a=Ri();if(i.then(s=>{Ct(a),n(e.then,1,e.value,s),Ct(null)},s=>{if(Ct(a),n(e.catch,2,e.error,s),Ct(null),!e.hasCatch)throw s}),e.current!==e.pending)return n(e.pending,0),!0}else{if(e.current!==e.then)return n(e.then,1,e.value,i),!0;e.resolved=i}}function yh(i,e,t){let n=e.slice(),{resolved:a}=i;i.current===i.then&&(n[i.value]=a),i.current===i.catch&&(n[i.error]=a),i.block.p(n,t)}function io(i,e){i.d(1),e.delete(i.key)}function Ji(i,e){Q(i,1,1,()=>{e.delete(i.key)})}function vh(i,e){i.f(),io(i,e)}function En(i,e){i.f(),Ji(i,e)}function gt(i,e,t,n,a,s,r,o,l,c,d,h){let u=i.length,f=s.length,m=u,p={};for(;m--;)p[i[m].key]=m;let y=[],w=new Map,_=new Map,O=[];for(m=f;m--;){let x=h(a,s,m),P=t(x),I=r.get(P);I?n&&O.push(()=>I.p(x,e)):(I=c(P,x),I.c()),w.set(P,y[m]=I),P in p&&_.set(P,Math.abs(m-p[P]))}let E=new Set,S=new Set;function v(x){M(x,1),x.m(o,d),r.set(x.key,x),d=x.first,f--}for(;u&&f;){let x=y[f-1],P=i[u-1],I=x.key,R=P.key;x===P?(d=x.first,u--,f--):w.has(R)?!r.has(I)||E.has(I)?v(x):S.has(R)?u--:_.get(I)>_.get(R)?(S.add(I),v(x)):(E.add(R),u--):(l(P,r),u--)}for(;u--;){let x=i[u];w.has(x.key)||l(x,r)}for(;f;)v(y[f-1]);return ce(O),y}function Wi(i,e){let t={},n={},a={$$scope:1},s=i.length;for(;s--;){let r=i[s],o=e[s];if(o){for(let l in r)l in o||(n[l]=1);for(let l in o)a[l]||(t[l]=o[l],a[l]=1);i[s]=o}else for(let l in r)a[l]=1}for(let r in n)r in t||(t[r]=void 0);return t}var qg=["allowfullscreen","allowpaymentrequest","async","autofocus","autoplay","checked","controls","default","defer","disabled","formnovalidate","hidden","inert","ismap","loop","multiple","muted","nomodule","novalidate","open","playsinline","readonly","required","reversed","selected"],Ug=new Set([...qg]);function Nt(i,e,t){let n=i.$$.props[e];n!==void 0&&(i.$$.bound[n]=t,t(i.$$.ctx[n]))}function se(i){i&&i.c()}function ie(i,e,t){let{fragment:n,after_update:a}=i.$$;n&&n.m(e,t),Dt(()=>{let s=i.$$.on_mount.map(qr).filter(Ie);i.$$.on_destroy?i.$$.on_destroy.push(...s):ce(s),i.$$.on_mount=[]}),a.forEach(Dt)}function ne(i,e){let t=i.$$;t.fragment!==null&&(ph(t.after_update),ce(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function Gg(i,e){i.$$.dirty[0]===-1&&(Gi.push(i),eo(),i.$$.dirty.fill(0)),i.$$.dirty[e/31|0]|=1<{let m=f.length?f[0]:u;return c.ctx&&a(c.ctx[h],c.ctx[h]=m)&&(!c.skip_bound&&c.bound[h]&&c.bound[h](m),d&&Gg(i,h)),u}):[],c.update(),d=!0,ce(c.before_update),c.fragment=n?n(c.ctx):!1,e.target){if(e.hydrate){lh();let h=fh(e.target);c.fragment&&c.fragment.l(h),h.forEach(A)}else c.fragment&&c.fragment.c();e.intro&&M(i.$$.fragment),ie(i,e.target,e.anchor),ch(),ha()}Ct(l)}var Kg;typeof HTMLElement=="function"&&(Kg=class extends HTMLElement{constructor(e,t,n){super();$e(this,"$$ctor");$e(this,"$$s");$e(this,"$$c");$e(this,"$$cn",!1);$e(this,"$$d",{});$e(this,"$$r",!1);$e(this,"$$p_d",{});$e(this,"$$l",{});$e(this,"$$l_u",new Map);this.$$ctor=e,this.$$s=t,n&&this.attachShadow({mode:"open"})}addEventListener(e,t,n){if(this.$$l[e]=this.$$l[e]||[],this.$$l[e].push(t),this.$$c){let a=this.$$c.$on(e,t);this.$$l_u.set(t,a)}super.addEventListener(e,t,n)}removeEventListener(e,t,n){if(super.removeEventListener(e,t,n),this.$$c){let a=this.$$l_u.get(t);a&&(a(),this.$$l_u.delete(t))}}async connectedCallback(){if(this.$$cn=!0,!this.$$c){let e=function(s){return()=>{let r;return{c:function(){r=k("slot"),s!=="default"&&g(r,"name",s)},m:function(c,d){D(c,r,d)},d:function(c){c&&A(r)}}}};if(await Promise.resolve(),!this.$$cn||this.$$c)return;let t={},n=mh(this);for(let s of this.$$s)s in n&&(t[s]=[e(s)]);for(let s of this.attributes){let r=this.$$g_p(s.name);r in this.$$d||(this.$$d[r]=no(r,s.value,this.$$p_d,"toProp"))}for(let s in this.$$p_d)!(s in this.$$d)&&this[s]!==void 0&&(this.$$d[s]=this[s],delete this[s]);this.$$c=new this.$$ctor({target:this.shadowRoot||this,props:{...this.$$d,$$slots:t,$$scope:{ctx:[]}}});let a=()=>{this.$$r=!0;for(let s in this.$$p_d)if(this.$$d[s]=this.$$c.$$.ctx[this.$$c.$$.props[s]],this.$$p_d[s].reflect){let r=no(s,this.$$d[s],this.$$p_d,"toAttribute");r==null?this.removeAttribute(this.$$p_d[s].attribute||s):this.setAttribute(this.$$p_d[s].attribute||s,r)}this.$$r=!1};this.$$c.$$.after_update.push(a),a();for(let s in this.$$l)for(let r of this.$$l[s]){let o=this.$$c.$on(s,r);this.$$l_u.set(r,o)}this.$$l={}}}attributeChangedCallback(e,t,n){this.$$r||(e=this.$$g_p(e),this.$$d[e]=no(e,n,this.$$p_d,"toProp"),this.$$c?.$set({[e]:this.$$d[e]}))}disconnectedCallback(){this.$$cn=!1,Promise.resolve().then(()=>{this.$$cn||(this.$$c.$destroy(),this.$$c=void 0)})}$$g_p(e){return Object.keys(this.$$p_d).find(t=>this.$$p_d[t].attribute===e||!this.$$p_d[t].attribute&&t.toLowerCase()===e)||e}});function no(i,e,t,n){let a=t[i]?.type;if(e=a==="Boolean"&&typeof e!="boolean"?e!=null:e,!n||!t[i])return e;if(n==="toAttribute")switch(a){case"Object":case"Array":return e==null?null:JSON.stringify(e);case"Boolean":return e?"":null;case"Number":return e??null;default:return e}else switch(a){case"Object":case"Array":return e&&JSON.parse(e);case"Boolean":return e;case"Number":return e!=null?+e:e;default:return e}}var U=class{constructor(){$e(this,"$$");$e(this,"$$set")}$destroy(){ne(this,1),this.$destroy=N}$on(e,t){if(!Ie(t))return N;let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{let a=n.indexOf(t);a!==-1&&n.splice(a,1)}}$set(e){this.$$set&&!nh(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}};var Xt=require("obsidian");var Qn=[];function Jg(i,e){return{subscribe:Ne(i,e).subscribe}}function Ne(i,e=N){let t,n=new Set;function a(o){if(j(i,o)&&(i=o,t)){let l=!Qn.length;for(let c of n)c[1](),Qn.push(c,i);if(l){for(let c=0;c{n.delete(c),n.size===0&&t&&(t(),t=null)}}return{set:a,update:s,subscribe:r}}function pt(i,e,t){let n=!Array.isArray(i),a=n?[i]:i;if(!a.every(Boolean))throw new Error("derived() expects stores as input, got a falsy value");let s=e.length<2;return Jg(t,(r,o)=>{let l=!1,c=[],d=0,h=N,u=()=>{if(d)return;h();let m=e(n?c[0]:c,r,o);s?r(m):h=Ie(m)?m:N},f=a.map((m,p)=>Tt(m,y=>{c[p]=y,d&=~(1<{d|=1<([\\s\\S]+?)<${ms}>`),gs="STATBLOCK-MARKDOWN-LINK",bs=new RegExp(`<${gs}>([\\s\\S]+?)(?:\\|([\\s\\S]+?))?<${gs}>`),ro=/([\s\S]+?)/,oi=class i{static isStatblockLink(e){return ro.test(e)}static replaceWikiLink(e){return`<${ms}>${e}<${ms}>`}static replaceMarkdownLink(e,t){return`<${gs}>${e}${t?"|"+t:""}<${gs}>`}static transformSource(e){return e.replace(/\[\[([\s\S]+?)\]\]/g,(t,n)=>i.replaceWikiLink(n)).replace(/\[([\s\S]*?)\]\(([\s\S]+?)\)/g,(t,n,a)=>i.replaceMarkdownLink(a,n))}static transformYamlSource(e){return i.transformSource(e)}static stringifyLinks(e){return e.replace(new RegExp(ps,"g"),(t,n)=>`[[${n}]]`).replace(new RegExp(bs,"g"),(t,n,a)=>`[${a||""}](${n})`)}};var ki,ua,lo,oo=class extends In.Component{constructor(){super(...arguments);Ee(this,ua);Ee(this,ki,new Map)}buildCache(){setTimeout(()=>{let t=this.metadataCache.getLinkSuggestions();for(let{alias:n,file:a}of t)n&&Qe(this,ua,lo).call(this,[n],a)},0)}getResolvedFile(t,n){t=t.trim();let a=te(this,ki).get(t)??te(this,ki).get(t.toLowerCase())??t;return{alias:te(this,ki).has(t)||te(this,ki).has(t.toLowerCase())?t:null,file:app.metadataCache.getFirstLinkpathDest(a,n)}}initialize(t){if(this.load(),this.metadataCache=t,t.initialized)this.buildCache();else{let n=app.metadataCache.on("resolved",()=>{this.buildCache(),this.metadataCache.offref(n)});this.registerEvent(n)}this.registerEvent(this.metadataCache.on("changed",n=>{let{frontmatter:a}=app.metadataCache.getFileCache(n)??{};if(!a)return;let s=(0,In.parseFrontMatterAliases)(a)??[];Qe(this,ua,lo).call(this,s,n)}))}linkify(t,n=""){let a=t.trim(),{file:s,alias:r}=this.getResolvedFile(a,n);return s!=null?t.replace(a,oi.replaceWikiLink(`${s.basename}${r?"|"+r:""}`)):t}linkifySpells(t,n=""){return t.replace(/(.+?)(\*?,|\*?$)/g,(a,s,r)=>`${this.linkify(s,n)}${r}`)}transformSource(t){return oi.transformSource(t)}transformYamlSource(t){return oi.transformYamlSource(t)}stringifyLinks(t){return oi.stringifyLinks(t)}splitByLinks(t,n,a){return ye(t).split(ro).filter(s=>s&&s.length).map(s=>{if(ps.test(s)){let r=s.match(ps)[1];return{isLink:a,text:`[[${(0,In.normalizePath)(r)}]]`}}if(bs.test(s)){let[r,o,l]=s.match(bs);return{isLink:a,text:`[${l||""}](${o})`}}return{isLink:!1,text:s}})}};ki=new WeakMap,ua=new WeakSet,lo=function(t,n){for(let a of t)te(this,ki).set(a,n.name),te(this,ki).set(a.toLowerCase(),n.name)};var ct=new oo;function kh(i,e,t){let n=new Map,a=new Map,s=i.diceParsing??ys();for(let o of s){n.set(o.id,new RegExp(o.regex));let l=` +let anon = (original, matches, monster) => { + ${o.parser}; +} +let result; +try { + result = anon(original, matches, monster); +} catch(e) { + console.error(e); + result = original; +} finally { + return result; +} + `,c=new Function("original","matches","monster",l);a.set(o.id,c)}for(let{id:o}of s){let l=n.get(o);e=e.replaceAll(new RegExp(l,"g"),c=>`${o}${c}`)}let r=[];for(let o of e.split(/(.+?)/)){if(!/.+?/.test(o)){r.push(o);continue}let[,l,c]=o.match(/(.+?)(.+)/)??[];if(!l||!c){r.push(o);continue}let d=n.get(l),h=a.get(l),u=c.match(d),f=h.call(void 0,c,u,t);!f||Array.isArray(f)&&!f.every(m=>typeof m=="string"||m?.text?.length)||!Array.isArray(f)&&typeof f=="object"&&!f.text?.length?r.push(c):Array.isArray(f)?r.push(...f):r.push(f)}return r}function ys(){return[{regex:/([\+\-])(\d+) to hit/.source,parser:`let [, sign, number] = matches; +let mult = 1; +if (sign === "-") { + mult = -1; +} +if (!isNaN(Number(number))) { + return { + text: \`1d20+\${mult * Number(number)}\`, + original + } +}`,id:q(),desc:"+10 to hit"},{regex:/(\d+)\s\((\d+d\d+(?:\s*[+\-]\s*\d+)?)\)/.source,parser:`let [, base, dice] = matches; +let text; +if (!isNaN(Number(base)) && dice) { + text = dice; +} +return { text, original: dice ?? original };`,id:q(),desc:"4 (1d6 + 1)"},{regex:/(.+) ([\+\-])(\d+)/.source,parser:`let [, save, sign, number] = matches; +let mult = 1; +if (sign === "-") { + mult = -1; +} +let text; +if (!isNaN(Number(number))) { + text = \`1d20+\${mult * Number(number)}\`; + original = \`\${save} \${sign}\${number}\`; +} +return { text, original };`,id:q(),desc:"+5"}]}function ip(i){re(i,"svelte-1c3hzq4",".statblock-markdown.svelte-1c3hzq4{display:inline}.statblock-markdown.svelte-1c3hzq4 p{display:inline}.statblock-markdown.svelte-1c3hzq4 p ~ p{display:inline-block}")}function np(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","statblock-markdown svelte-1c3hzq4")},m(s,r){D(s,e,r),n||(a=ee(t=i[1].call(null,e)),n=!0)},p:N,i:N,o:N,d(s){s&&A(e),n=!1,a()}}}function ap(i,e,t){let n,{property:a}=e;a=typeof a=="string"?ct.stringifyLinks(a):a;let s=Fe("context"),r=Fe("renderer"),o=Fe("item"),l=Fe("dice"),c=o.dice,d=Fe("monster");Se(i,d,y=>t(5,n=y));let h=n;d.subscribe(y=>h=y);let u=Fe("plugin"),f=Fe("layout"),m=[a];if(l&&c)if(o.diceProperty&&o.diceProperty in h&&typeof h[o.diceProperty]=="string")m=[{text:h[o.diceProperty]}];else{let y=kh(f,a,h);Array.isArray(y)?m=y:m=[y]}if(l&&o.diceCallback)try{let y=document.body.createEl("iframe"),w=y.contentWindow.Function,O=new w("monster","property",o.diceCallback).call(void 0,h,a)??a;document.body.removeChild(y),Array.isArray(O)?m=O:m=[O]}catch(y){new vs.Notice(`There was an error executing the provided dice callback for [${o.properties.join(", ")}] + +${y.message}`),console.error(y)}a="";for(let y of m)if(l&&typeof y!="string"){let w,_=u.getRollerString(y.text);y.original?w=`${y.original} (\`dice: ${_}\`)`:w=`\`dice: ${_}\``,a+=w}else a+=y;let p=y=>{a==="-"&&t(2,a="\\-"),vs.MarkdownRenderer.render(u.app,a,y,s,r)};return i.$$set=y=>{"property"in y&&t(2,a=y.property)},[d,p,a]}var co=class extends U{constructor(e){super(),G(this,e,ap,np,j,{property:2},ip)}},wh=co;function sp(i){let e,t;return e=new wh({props:{property:i[0]}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,[a]){let s={};a&1&&(s.property=n[0]),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function rp(i,e,t){let{property:n=""}=e;return i.$$set=a=>{"property"in a&&t(0,n=a.property)},[n]}var ho=class extends U{constructor(e){super(),G(this,e,rp,sp,j,{property:0})}},bt=ho;var Th=require("obsidian");function op(i){re(i,"svelte-1d2gp4n",".trait.svelte-1d2gp4n{font-family:var(--active-traits-font);color:var(--active-traits-font-color);font-size:var(--active-traits-font-size);font-weight:var(--active-traits-font-weight);font-style:var(--active-traits-font-style)}.trait-name.svelte-1d2gp4n{font-family:var(--active-traits-name-font);color:var(--active-traits-name-font-color);font-size:var(--active-traits-name-font-size);font-weight:var(--active-traits-name-font-weight);font-style:var(--active-traits-name-font-style)}.property-name.svelte-1d2gp4n{margin:0;margin-right:0.25em;display:inline}.statblock-nested-traits.svelte-1d2gp4n{margin-left:1rem}")}function _h(i,e,t){let n=i.slice();return n[7]=e[t],n}function Oh(i){let e,t,n;return t=new bt({props:{property:i[2]}}),{c(){e=k("div"),se(t.$$.fragment),g(e,"class","property-name trait-name svelte-1d2gp4n")},m(a,s){D(a,e,s),ie(t,e,null),n=!0},p(a,s){let r={};s&4&&(r.property=a[2]),t.$set(r)},i(a){n||(M(t.$$.fragment,a),n=!0)},o(a){Q(t.$$.fragment,a),n=!1},d(a){a&&A(e),ne(t)}}}function Sh(i){let e,t,n=i[1].traits,a=[];for(let r=0;rQ(a[r],1,1,()=>{a[r]=null});return{c(){e=k("div");for(let r=0;r{o=null}),de());let h={};d&1&&(h.property=c[0]),n.$set(h),c[1]?.traits?l?(l.p(c,d),d&2&&M(l,1)):(l=Sh(c),l.c(),M(l,1),l.m(e,null)):l&&(he(),Q(l,1,1,()=>{l=null}),de()),(!r||d&32&&s!==(s="property "+c[5]+" trait svelte-1d2gp4n"))&&g(e,"class",s)},i(c){r||(M(o),M(n.$$.fragment,c),M(l),r=!0)},o(c){Q(o),Q(n.$$.fragment,c),Q(l),r=!1},d(c){c&&A(e),o&&o.d(),ne(n),l&&l.d()}}}function cp(i,e,t){let n,{trait:a}=e,{name:s}=e,{desc:r}=e,{property:o=""}=e,{item:l}=e,{monster:c}=e;if(l.callback)try{let d=document.body.createEl("iframe"),h=d.contentWindow.Function;r=new h("monster","property",l.callback).call(void 0,c,a)??r,document.body.removeChild(d)}catch(d){new Th.Notice(`There was an error executing the provided callback for [${l.properties.join(", ")}] + +${d.message}`),console.error(d)}return i.$$set=d=>{"trait"in d&&t(1,a=d.trait),"name"in d&&t(2,s=d.name),"desc"in d&&t(0,r=d.desc),"property"in d&&t(3,o=d.property),"item"in d&&t(4,l=d.item),"monster"in d&&t(6,c=d.monster)},i.$$.update=()=>{i.$$.dirty&28&&t(5,n=l.doNotAddClass?[]:[ii(s),ii(o)].join(" "))},[r,a,s,o,l,n,c]}var ks=class extends U{constructor(e){super(),G(this,e,cp,lp,j,{trait:1,name:2,desc:0,property:3,item:4,monster:6},op)}},fa=ks;var ws=require("obsidian");function hp(i){re(i,"svelte-1lnliuc",".inline.svelte-1lnliuc{display:inline}")}function Ch(i,e,t){let n=i.slice();return n[6]=e[t],n}function dp(i){let e=i[6].text+"",t;return{c(){t=me(e)},m(n,a){D(n,t,a)},p:N,d(n){n&&A(t)}}}function up(i){let e,t,n={ctx:i,current:null,token:null,hasCatch:!1,pending:gp,then:mp,catch:fp,value:9};return bh(t=i[1](i[6].text),n),{c(){e=Oe(),n.block.c()},m(a,s){D(a,e,s),n.block.m(a,n.anchor=s),n.mount=()=>e.parentNode,n.anchor=e},p(a,s){i=a,yh(n,i,s)},d(a){a&&A(e),n.block.d(a),n.token=null,n=null}}}function fp(i){return{c:N,m:N,p:N,d:N}}function mp(i){let e,t=i[9]+"",n;return{c(){e=new pi(!1),n=Oe(),e.a=n},m(a,s){e.m(t,a,s),D(a,n,s)},p:N,d(a){a&&A(n),a&&e.d()}}}function gp(i){return{c:N,m:N,p:N,d:N}}function Ah(i){let e;function t(s,r){return s[6].isLink?up:dp}let a=t(i,-1)(i);return{c(){a.c(),e=Oe()},m(s,r){a.m(s,r),D(s,e,r)},p(s,r){a.p(s,r)},d(s){a.d(s),s&&A(e)}}}function pp(i){let e,t=i[0],n=[];for(let a=0;a{let d=createDiv();return await ws.MarkdownRenderer.render(app,c,d,s,r),d.querySelector("a").outerHTML};return i.$$set=c=>{"textToRender"in c&&t(2,n=c.textToRender)},[o,l,n]}var uo=class extends U{constructor(e){super(),G(this,e,bp,pp,j,{textToRender:2},hp)}},Zt=uo;function yp(i){re(i,"svelte-14k5qsm",".flex-container.svelte-14k5qsm{display:flex;justify-content:space-between;align-items:center}.heading.svelte-14k5qsm{font-family:var(--active-heading-font);color:var(--active-heading-font-color);font-weight:var(--active-heading-font-weight);font-variant:var(--active-heading-font-variant);font-size:var(--active-heading-font-size);line-height:var(--active-heading-line-height);margin:0px;letter-spacing:1px;display:flex;justify-content:space-between;align-items:center}")}function Dh(i,e,t){let n=i.slice();return n[2]=e[t],n}function Ph(i){let e,t,n,a,s=[Sp,Op,_p,wp,kp,vp],r=[];function o(l,c){return!l[1].size||l[1].size==1?0:l[1].size==2?1:l[1].size==3?2:l[1].size==4?3:l[1].size==5?4:5}return e=o(i,-1),t=r[e]=s[e](i),{c(){t.c(),n=Oe()},m(l,c){r[e].m(l,c),D(l,n,c),a=!0},p(l,c){let d=e;e=o(l,c),e===d?r[e].p(l,c):(he(),Q(r[d],1,1,()=>{r[d]=null}),de(),t=r[e],t?t.p(l,c):(t=r[e]=s[e](l),t.c()),M(t,1),t.m(n.parentNode,n))},i(l){a||(M(t),a=!0)},o(l){Q(t),a=!1},d(l){r[e].d(l),l&&A(n)}}}function vp(i){let e,t,n,a,s;return t=new Zt({props:{textToRender:ye(i[0][i[2]])}}),{c(){e=k("h6"),se(t.$$.fragment),n=W(),g(e,"class",a="heading statblock-heading "+ye(i[2])+" svelte-14k5qsm")},m(r,o){D(r,e,o),ie(t,e,null),b(e,n),s=!0},p(r,o){let l={};o&3&&(l.textToRender=ye(r[0][r[2]])),t.$set(l),(!s||o&2&&a!==(a="heading statblock-heading "+ye(r[2])+" svelte-14k5qsm"))&&g(e,"class",a)},i(r){s||(M(t.$$.fragment,r),s=!0)},o(r){Q(t.$$.fragment,r),s=!1},d(r){r&&A(e),ne(t)}}}function kp(i){let e,t,n,a,s;return t=new Zt({props:{textToRender:ye(i[0][i[2]])}}),{c(){e=k("h5"),se(t.$$.fragment),n=W(),g(e,"class",a="heading statblock-heading "+ye(i[2])+" svelte-14k5qsm")},m(r,o){D(r,e,o),ie(t,e,null),b(e,n),s=!0},p(r,o){let l={};o&3&&(l.textToRender=ye(r[0][r[2]])),t.$set(l),(!s||o&2&&a!==(a="heading statblock-heading "+ye(r[2])+" svelte-14k5qsm"))&&g(e,"class",a)},i(r){s||(M(t.$$.fragment,r),s=!0)},o(r){Q(t.$$.fragment,r),s=!1},d(r){r&&A(e),ne(t)}}}function wp(i){let e,t,n,a,s;return t=new Zt({props:{textToRender:ye(i[0][i[2]])}}),{c(){e=k("h4"),se(t.$$.fragment),n=W(),g(e,"class",a="heading statblock-heading "+ye(i[2])+" svelte-14k5qsm")},m(r,o){D(r,e,o),ie(t,e,null),b(e,n),s=!0},p(r,o){let l={};o&3&&(l.textToRender=ye(r[0][r[2]])),t.$set(l),(!s||o&2&&a!==(a="heading statblock-heading "+ye(r[2])+" svelte-14k5qsm"))&&g(e,"class",a)},i(r){s||(M(t.$$.fragment,r),s=!0)},o(r){Q(t.$$.fragment,r),s=!1},d(r){r&&A(e),ne(t)}}}function _p(i){let e,t,n,a,s;return t=new Zt({props:{textToRender:ye(i[0][i[2]])}}),{c(){e=k("h3"),se(t.$$.fragment),n=W(),g(e,"class",a="heading statblock-heading "+ye(i[2])+" svelte-14k5qsm")},m(r,o){D(r,e,o),ie(t,e,null),b(e,n),s=!0},p(r,o){let l={};o&3&&(l.textToRender=ye(r[0][r[2]])),t.$set(l),(!s||o&2&&a!==(a="heading statblock-heading "+ye(r[2])+" svelte-14k5qsm"))&&g(e,"class",a)},i(r){s||(M(t.$$.fragment,r),s=!0)},o(r){Q(t.$$.fragment,r),s=!1},d(r){r&&A(e),ne(t)}}}function Op(i){let e,t,n,a,s;return t=new Zt({props:{textToRender:ye(i[0][i[2]])}}),{c(){e=k("h2"),se(t.$$.fragment),n=W(),g(e,"class",a="heading statblock-heading "+ye(i[2])+" svelte-14k5qsm")},m(r,o){D(r,e,o),ie(t,e,null),b(e,n),s=!0},p(r,o){let l={};o&3&&(l.textToRender=ye(r[0][r[2]])),t.$set(l),(!s||o&2&&a!==(a="heading statblock-heading "+ye(r[2])+" svelte-14k5qsm"))&&g(e,"class",a)},i(r){s||(M(t.$$.fragment,r),s=!0)},o(r){Q(t.$$.fragment,r),s=!1},d(r){r&&A(e),ne(t)}}}function Sp(i){let e,t,n,a,s;return t=new Zt({props:{textToRender:ye(i[0][i[2]])}}),{c(){e=k("h1"),se(t.$$.fragment),n=W(),g(e,"class",a="heading statblock-heading "+ye(i[2])+" svelte-14k5qsm")},m(r,o){D(r,e,o),ie(t,e,null),b(e,n),s=!0},p(r,o){let l={};o&3&&(l.textToRender=ye(r[0][r[2]])),t.$set(l),(!s||o&2&&a!==(a="heading statblock-heading "+ye(r[2])+" svelte-14k5qsm"))&&g(e,"class",a)},i(r){s||(M(t.$$.fragment,r),s=!0)},o(r){Q(t.$$.fragment,r),s=!1},d(r){r&&A(e),ne(t)}}}function Mh(i){let e,t,n=i[2]in i[0]&&Ph(i);return{c(){n&&n.c(),e=Oe()},m(a,s){n&&n.m(a,s),D(a,e,s),t=!0},p(a,s){a[2]in a[0]?n?(n.p(a,s),s&3&&M(n,1)):(n=Ph(a),n.c(),M(n,1),n.m(e.parentNode,e)):n&&(he(),Q(n,1,1,()=>{n=null}),de())},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){n&&n.d(a),a&&A(e)}}}function xp(i){let e,t,n=i[1].properties,a=[];for(let r=0;rQ(a[r],1,1,()=>{a[r]=null});return{c(){e=k("div");for(let r=0;r{"monster"in s&&t(0,n=s.monster),"item"in s&&t(1,a=s.item)},[n,a]}var fo=class extends U{constructor(e){super(),G(this,e,Tp,xp,j,{monster:0,item:1},yp)}},Eh=fo;var Ih=require("obsidian");function Cp(i){re(i,"svelte-1rketb6",".line.svelte-1rketb6{line-height:var(--active-property-line-height);display:block;font-family:var(--active-property-font);color:var(--active-property-font-color);font-variant:var(--active-property-font-variant);font-size:var(--active-property-font-size);font-weight:var(--active-property-font-weight)}.property-name.svelte-1rketb6{margin:0;margin-right:0.25em;display:inline;font-family:var(--active-property-name-font);color:var(--active-property-name-font-color);font-variant:var(--active-property-name-font-variant);font-size:var(--active-property-name-font-size);font-weight:var(--active-property-name-font-weight)}")}function Qh(i){let e,t,n,a,s,r;return a=new bt({props:{property:i[1]}}),{c(){e=k("div"),t=k("span"),t.textContent=`${i[3]}`,n=W(),se(a.$$.fragment),g(t,"class","property-name svelte-1rketb6"),g(e,"class",s="line "+i[2]+" svelte-1rketb6")},m(o,l){D(o,e,l),b(e,t),b(e,n),ie(a,e,null),r=!0},p(o,l){let c={};l&2&&(c.property=o[1]),a.$set(c),(!r||l&4&&s!==(s="line "+o[2]+" svelte-1rketb6"))&&g(e,"class",s)},i(o){r||(M(a.$$.fragment,o),r=!0)},o(o){Q(a.$$.fragment,o),r=!1},d(o){o&&A(e),ne(a)}}}function Ap(i){let e,t,n=(!i[0].conditioned||i[0].conditioned&&`${i[1]}`.length)&&Qh(i);return{c(){n&&n.c(),e=Oe()},m(a,s){n&&n.m(a,s),D(a,e,s),t=!0},p(a,[s]){!a[0].conditioned||a[0].conditioned&&`${a[1]}`.length?n?(n.p(a,s),s&3&&M(n,1)):(n=Qh(a),n.c(),M(n,1),n.m(e.parentNode,e)):n&&(he(),Q(n,1,1,()=>{n=null}),de())},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){n&&n.d(a),a&&A(e)}}}function Dp(i,e,t){let n,{monster:a}=e,{item:s}=e,r=ye(a[s.properties[0]]),o=s.display??s.properties[0];if(s.callback)try{let l=document.body.createEl("iframe"),c=l.contentWindow.Function;r=new c("monster",s.callback).call(void 0,a)??r,document.body.removeChild(l)}catch(l){new Ih.Notice(`There was an error executing the provided callback for [${s.properties.join(", ")}] + +${l.message}`),console.error(l)}return!s.conditioned&&!`${r}`.length&&(r=s.fallback??"-"),i.$$set=l=>{"monster"in l&&t(4,a=l.monster),"item"in l&&t(0,s=l.item)},i.$$.update=()=>{i.$$.dirty&1&&t(2,n=s.doNotAddClass?"":ii(s.properties[0]))},[s,r,n,o,a]}var mo=class extends U{constructor(e){super(),G(this,e,Dp,Ap,j,{monster:4,item:0},Cp)}},Rh=mo;function Pp(i){re(i,"svelte-k72li0",`.tapered-rule.svelte-k72li0{width:auto;margin:0.5em 0;height:5px;background:-webkit-linear-gradient( + 0deg, + var(--active-rule-color) 0%, + var(--active-rule-color) 50%, + var(--active-background-color) 95%, + var(--active-background-color) 100% + );clip-path:polygon(0 0, 0 100%, 95% 50%);-webkit-clip-path:polygon(0 0, 0 100%, 95% 50%)}`)}function Mp(i){let e;return{c(){e=k("div"),g(e,"class","tapered-rule svelte-k72li0")},m(t,n){D(t,e,n)},p:N,i:N,o:N,d(t){t&&A(e)}}}var go=class extends U{constructor(e){super(),G(this,e,null,Mp,j,{},Pp)}},_s=go;function Ep(i){re(i,"svelte-r9sicd",".line.svelte-r9sicd{line-height:var(--active-saves-line-height);display:block;color:var(--active-font-color)}.property-name.svelte-r9sicd{color:var(--active-property-name-font-color);margin:0;margin-right:0.25em;display:inline;font-weight:bold}.property-text.svelte-r9sicd{display:inline;margin:0}")}function Qp(i){let e,t,n,a=(i[0].display??sa(i[0].properties[0]))+"",s,r,o,l,c;return l=new bt({props:{render:i[0].markdown,property:i[1]}}),{c(){e=k("div"),t=k("div"),n=k("span"),s=me(a),r=W(),o=k("div"),se(l.$$.fragment),g(n,"class","property-name svelte-r9sicd"),g(o,"class","property-text svelte-r9sicd"),g(t,"class","line svelte-r9sicd"),g(e,"class","info")},m(d,h){D(d,e,h),b(e,t),b(t,n),b(n,s),b(t,r),b(t,o),ie(l,o,null),c=!0},p(d,[h]){(!c||h&1)&&a!==(a=(d[0].display??sa(d[0].properties[0]))+"")&&we(s,a);let u={};h&1&&(u.render=d[0].markdown),l.$set(u)},i(d){c||(M(l.$$.fragment,d),c=!0)},o(d){Q(l.$$.fragment,d),c=!1},d(d){d&&A(e),ne(l)}}}function Ip(i){return`${i>0?"+":""}${i}`}function Rp(i,e,t){let{monster:n}=e,{item:a}=e,s=n[a.properties[0]];Array.isArray(s)||(s=[]);let r=s.map(o=>{if(typeof o!="object"||o==null)return null;let l=Object.keys(o)[0];if(!l)return null;let c=Object.values(o)[0];return typeof c=="string"&&isNaN(Number(c))?`${sa(l)} ${c}`:!c||isNaN(Number(c))?null:`${sa(l)} ${Ip(c)}`}).filter(o=>o).join(", ");return i.$$set=o=>{"monster"in o&&t(2,n=o.monster),"item"in o&&t(0,a=o.item)},[a,r,n]}var po=class extends U{constructor(e){super(),G(this,e,Rp,Qp,j,{monster:2,item:0},Ep)}},Wh=po;function Wp(i){re(i,"svelte-1ascaxr",`.section-header.svelte-1ascaxr{border-bottom:var(--active-section-heading-border-size) solid + var(--active-section-heading-border-color);color:var(--active-section-heading-font-color);font-size:var(--active-section-heading-font-size);font-variant:var(--active-section-heading-font-variant);font-weight:var(--active-section-heading-font-weight);font-family:var(--active-section-heading-font);letter-spacing:1px;margin:0;margin-bottom:0.3em;break-inside:avoid-column;break-after:avoid-column}`)}function Nh(i){let e,t,n,a;return t=new Zt({props:{textToRender:i[0]}}),{c(){e=k("h3"),se(t.$$.fragment),g(e,"class",n="section-header "+i[1](i[0])+" svelte-1ascaxr")},m(s,r){D(s,e,r),ie(t,e,null),a=!0},p(s,r){let o={};r&1&&(o.textToRender=s[0]),t.$set(o),(!a||r&1&&n!==(n="section-header "+s[1](s[0])+" svelte-1ascaxr"))&&g(e,"class",n)},i(s){a||(M(t.$$.fragment,s),a=!0)},o(s){Q(t.$$.fragment,s),a=!1},d(s){s&&A(e),ne(t)}}}function Np(i){let e,t,n=i[0]&&i[0].length&&Nh(i);return{c(){n&&n.c(),e=Oe()},m(a,s){n&&n.m(a,s),D(a,e,s),t=!0},p(a,[s]){a[0]&&a[0].length?n?(n.p(a,s),s&1&&M(n,1)):(n=Nh(a),n.c(),M(n,1),n.m(e.parentNode,e)):n&&(he(),Q(n,1,1,()=>{n=null}),de())},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){n&&n.d(a),a&&A(e)}}}function Lp(i,e,t){let{monster:n}=e,{item:a}=e,s;if(a.headingProp){if(a.heading in n){let o=ye(n[a.heading]);o.length&&(s=o)}}else a.heading?.length&&(s=a.heading);let r=o=>o.toLowerCase().replace(/[^A-Za-z0-9\s]/g,"").replace(/\s+/g,"-");return i.$$set=o=>{"monster"in o&&t(2,n=o.monster),"item"in o&&t(3,a=o.item)},[s,r,n,a]}var bo=class extends U{constructor(e){super(),G(this,e,Lp,Np,j,{monster:2,item:3},Wp)}},Rn=bo;function $p(i){re(i,"svelte-1fyuyh",".subheading.svelte-1fyuyh{font-weight:var(--active-subheading-font-weight);font-style:var(--active-subheading-font-style);font-size:var(--active-subheading-font-size);font-family:var(--active-subheading-font-family);color:var(--active-subheading-font-color);margin:0}")}function Bp(i){let e,t,n;return t=new Zt({props:{textToRender:i[1].join(i[0].separator)}}),{c(){e=k("div"),se(t.$$.fragment),g(e,"class","subheading svelte-1fyuyh")},m(a,s){D(a,e,s),ie(t,e,null),n=!0},p(a,s){let r={};s&1&&(r.textToRender=a[1].join(a[0].separator)),t.$set(r)},i(a){n||(M(t.$$.fragment,a),n=!0)},o(a){Q(t.$$.fragment,a),n=!1},d(a){a&&A(e),ne(t)}}}function zp(i){let e,t,n=i[1].length&&Bp(i);return{c(){n&&n.c(),e=Oe()},m(a,s){n&&n.m(a,s),D(a,e,s),t=!0},p(a,[s]){a[1].length&&n.p(a,s)},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){n&&n.d(a),a&&A(e)}}}function Hp(i,e,t){let{monster:n}=e,{item:a}=e,s=[];for(let r of a.properties)r in n&&s.push(`${ye(n[r])}`);return i.$$set=r=>{"monster"in r&&t(2,n=r.monster),"item"in r&&t(0,a=r.item)},[a,s,n]}var yo=class extends U{constructor(e){super(),G(this,e,Hp,zp,j,{monster:2,item:0},$p)}},Lh=yo;function Fp(i){re(i,"svelte-gjlmp0",".statblock-table-header.svelte-gjlmp0{font-weight:var(--active-table-header-font-weight)}.statblock-table.svelte-gjlmp0{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.table-item.svelte-gjlmp0{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}")}function $h(i,e,t){let n=i.slice();return n[6]=e[t][0],n[1]=e[t][1],n}function Bh(i,e,t){let n=i.slice();return n[9]=e[t],n}function zh(i){let e,t=i[2](i[9])+"",n;return{c(){e=k("span"),n=me(t)},m(a,s){D(a,e,s),b(e,n)},p:N,d(a){a&&A(e)}}}function Hh(i){let e,t,n,a;t=new bt({props:{property:ye(i[9])}});let s=i[0].calculate&&zh(i);return{c(){e=k("span"),se(t.$$.fragment),n=W(),s&&s.c()},m(r,o){D(r,e,o),ie(t,e,null),b(e,n),s&&s.m(e,null),a=!0},p(r,o){r[0].calculate?s?s.p(r,o):(s=zh(r),s.c(),s.m(e,null)):s&&(s.d(1),s=null)},i(r){a||(M(t.$$.fragment,r),a=!0)},o(r){Q(t.$$.fragment,r),a=!1},d(r){r&&A(e),ne(t),s&&s.d()}}}function Fh(i){let e,t,n=i[4][i[6]]+"",a,s,r,o,l=i[1],c=[];for(let h=0;hQ(c[h],1,1,()=>{c[h]=null});return{c(){e=k("div"),t=k("span"),a=me(n),s=W();for(let h=0;hQ(a[r],1,1,()=>{a[r]=null});return{c(){e=k("div");for(let r=0;r=0?"+":"-"}${Math.abs(d)})`}let r=n[a.properties[0]];Array.isArray(r)||(r=[]);let o=new Map;for(let c=0;c0?r.length:1).keys()];return i.$$set=c=>{"monster"in c&&t(5,n=c.monster),"item"in c&&t(0,a=c.item)},[a,r,s,o,l,n]}var vo=class extends U{constructor(e){super(),G(this,e,Zp,jp,j,{monster:5,item:0},Fp)}},jh=vo;function Zh(i){let e,t,n,a,s=i[1].heading&&Xh(i);return n=new bt({props:{render:i[1].markdown,property:i[2]}}),{c(){s&&s.c(),e=W(),t=k("div"),se(n.$$.fragment),g(t,"class","line")},m(r,o){s&&s.m(r,o),D(r,e,o),D(r,t,o),ie(n,t,null),a=!0},p(r,o){r[1].heading?s?(s.p(r,o),o&2&&M(s,1)):(s=Xh(r),s.c(),M(s,1),s.m(e.parentNode,e)):s&&(he(),Q(s,1,1,()=>{s=null}),de());let l={};o&2&&(l.render=r[1].markdown),o&4&&(l.property=r[2]),n.$set(l)},i(r){a||(M(s),M(n.$$.fragment,r),a=!0)},o(r){Q(s),Q(n.$$.fragment,r),a=!1},d(r){s&&s.d(r),r&&A(e),r&&A(t),ne(n)}}}function Xh(i){let e,t;return e=new Rn({props:{item:i[1],monster:i[0]}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,a){let s={};a&2&&(s.item=n[1]),a&1&&(s.monster=n[0]),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function Xp(i){let e,t,n=(!i[1].conditioned||i[1].conditioned&&`${i[2]}`.length)&&Zh(i);return{c(){n&&n.c(),e=Oe()},m(a,s){n&&n.m(a,s),D(a,e,s),t=!0},p(a,[s]){!a[1].conditioned||a[1].conditioned&&`${a[2]}`.length?n?(n.p(a,s),s&6&&M(n,1)):(n=Zh(a),n.c(),M(n,1),n.m(e.parentNode,e)):n&&(he(),Q(n,1,1,()=>{n=null}),de())},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){n&&n.d(a),a&&A(e)}}}function qp(i,e,t){let{monster:n}=e,{item:a}=e,s=a.text&&a.text.length?a.text:ye(n[a.properties[0]]);return!a.conditioned&&!`${s}`.length&&(s=a.fallback??"-"),i.$$set=r=>{"monster"in r&&t(0,n=r.monster),"item"in r&&t(1,a=r.item)},[n,a,s]}var ko=class extends U{constructor(e){super(),G(this,e,qp,Xp,j,{monster:0,item:1})}},qh=ko;var Uh=require("obsidian");function Up(i){re(i,"svelte-q1pj66",`.image.svelte-q1pj66{width:var(--active-image-width);height:var(--active-image-height)}.image.pointer.svelte-q1pj66{cursor:pointer}img.svelte-q1pj66{object-fit:cover;width:100%;height:100%;border-radius:100%;border:var(--active-image-border-size) solid + var(--active-image-border-color);object-position:center}`)}function Vp(i){let e,t,n,a,s,r;return{c(){e=k("div"),t=k("img"),ih(t.src,n=i[2])||g(t,"src",n),g(t,"alt",a=i[0].name),g(t,"class","svelte-q1pj66"),g(e,"class","image svelte-q1pj66"),oe(e,"pointer",i[1]!=null)},m(o,l){D(o,e,l),b(e,t),s||(r=[H(e,"click",i[6]),H(e,"mouseenter",i[7])],s=!0)},p(o,l){l&1&&a!==(a=o[0].name)&&g(t,"alt",a),l&2&&oe(e,"pointer",o[1]!=null)},d(o){o&&A(e),s=!1,ce(r)}}}function Yp(i){let e,t=i[2]&&Vp(i);return{c(){t&&t.c(),e=Oe()},m(n,a){t&&t.m(n,a),D(n,e,a)},p(n,[a]){n[2]&&t.p(n,a)},i:N,o:N,d(n){t&&t.d(n),n&&A(e)}}}function Gp(i,e,t){let{monster:n}=e,{item:a}=e,s=Fe("plugin"),r=Fe("context"),o;function l(y){y=decodeURIComponent(y);let w;try{if(/https?:/.test(y)){let[_]=ct.stringifyLinks(y).split("|");w=_}else{let[_]=ct.stringifyLinks(y).replace(/(^\[\[|\]\]$)/g,"").split("|");if(t(1,o=s.app.metadataCache.getFirstLinkpathDest(_,r)),!o)throw new Error;w=s.app.vault.getResourcePath(o)}}catch{console.warn("No image could be loaded")}return w}let d=(()=>{if(a.properties.length&&a.properties.some(y=>y in n&&typeof n[y]=="string")){let y=a.properties.filter(_=>_ in n&&typeof n[_]=="string");y.length>1&&console.log("Fantasy Statblocks: Multiple image properties provided, using first.");let w=n[y[0]];return l(w)}})(),h=Uh.Platform.isMacOS?"Meta":"Control";function u(y){if(!o)return;s.app.workspace.getLeaf(y.getModifierState(h)?"window":"split").openFile(o)}function f(y){o&&s.app.workspace.trigger("hover-link",{event:y,source:s.manifest.id,hoverParent:s.app.workspace.getMostRecentLeaf(),targetEl:y.currentTarget,linktext:o.path})}let m=y=>u(y),p=y=>f(y);return i.$$set=y=>{"monster"in y&&t(0,n=y.monster),"item"in y&&t(5,a=y.item)},[n,o,d,u,f,a,m,p]}var wo=class extends U{constructor(e){super(),G(this,e,Gp,Yp,j,{monster:0,item:5},Up)}},Vh=wo;function Kp(i){re(i,"svelte-1674zvq",`details.svelte-1674zvq>summary.svelte-1674zvq.svelte-1674zvq.svelte-1674zvq{outline:none;display:block !important;list-style:none !important;list-style-type:none !important;min-height:1rem;border-top-left-radius:0.1rem;border-top-right-radius:0.1rem;cursor:pointer;position:relative;margin-bottom:1rem}details.svelte-1674zvq>summary.svelte-1674zvq.svelte-1674zvq.svelte-1674zvq::-webkit-details-marker,details.svelte-1674zvq>summary.svelte-1674zvq.svelte-1674zvq.svelte-1674zvq::marker{display:none !important}details.svelte-1674zvq>summary.svelte-1674zvq>.collapser.svelte-1674zvq.svelte-1674zvq{position:absolute;top:50%;right:8px;transform:translateY(-50%);content:""}details.svelte-1674zvq>summary.svelte-1674zvq>.collapser.svelte-1674zvq>.handle.svelte-1674zvq{transform:rotate(0deg);transition:transform 0.25s;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,");mask-image:url("data:image/svg+xml;charset=utf-8,");width:20px;height:20px}details[open].svelte-1674zvq>summary.svelte-1674zvq>.collapser.svelte-1674zvq>.handle.svelte-1674zvq{transform:rotate(90deg)}`)}function Jp(i){let e,t,n=(i[0].heading??"")+"",a,s,r,o,l;return{c(){e=k("details"),t=k("summary"),a=me(n),s=W(),r=k("div"),r.innerHTML='
',g(r,"class","collapser svelte-1674zvq"),g(t,"class","svelte-1674zvq"),g(e,"class","svelte-1674zvq")},m(c,d){D(c,e,d),b(e,t),b(t,a),b(t,s),b(t,r),i[3](e),e.open=i[0].open,o||(l=H(e,"toggle",i[4]),o=!0)},p(c,[d]){d&1&&n!==(n=(c[0].heading??"")+"")&&we(a,n),d&1&&(e.open=c[0].open)},i:N,o:N,d(c){c&&A(e),i[3](null),o=!1,l()}}}function e1(i,e,t){let{block:n}=e,{elements:a}=e,s;bi(()=>{for(let l of a)s.append(l)});function r(l){Re[l?"unshift":"push"](()=>{s=l,t(1,s)})}function o(){n.open=this.open,t(0,n)}return i.$$set=l=>{"block"in l&&t(0,n=l.block),"elements"in l&&t(2,a=l.elements)},[n,s,a,r,o]}var _o=class extends U{constructor(e){super(),G(this,e,e1,Jp,j,{block:0,elements:2},Kp)}},Yh=_o;var lO=require("obsidian");function t1(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","statblock-javascript")},m(s,r){D(s,e,r),n||(a=ee(t=i[1].call(null,e)),n=!0)},p:N,i:N,o:N,d(s){s&&A(e),n=!1,a()}}}function i1(i,e,t){let n,{block:a}=e,s=Fe("monster");Se(i,s,c=>t(4,n=c));let r=n;s.subscribe(c=>r=c);let o=Fe("plugin"),l=c=>{if(a.code)try{let h=new Function("monster","property",a.code).call(void 0,r,o);h instanceof HTMLElement&&c.appendChild(h)}catch(d){console.error(d)}};return i.$$set=c=>{"block"in c&&t(2,a=c.block)},[s,l,a]}var Oo=class extends U{constructor(e){super(),G(this,e,i1,t1,j,{block:2})}},Gh=Oo;function n1(i){re(i,"svelte-420xq",`.statblock-content.svelte-420xq{font-family:var(--active-content-font);font-size:var(--active-content-font-size);color:var(--active-font-color);background-color:var(--active-background-color);padding:0.5em;border:var(--active-border-size) var(--active-border-color) solid;box-shadow:var(--active-box-shadow-x-offset) + var(--active-box-shadow-y-offset) var(--active-box-shadow-blur) + var(--active-box-shadow-color);margin-left:2px;margin-right:2px;display:flex;gap:1rem}.statblock-content.svelte-420xq>.column{width:var(--statblock-column-width)}@media screen and (max-width: 400px){.statblock-content.svelte-420xq>.column{width:75vw}}`)}function a1(i){let e,t;return{c(){e=k("div"),t=k("div"),g(t,"class","statblock-content svelte-420xq"),g(e,"class","statblock-content-container"),Be(e,"--statblock-column-width",i[0])},m(n,a){D(n,e,a),b(e,t),i[7](t)},p(n,[a]){a&1&&Be(e,"--statblock-column-width",n[0])},i:N,o:N,d(n){n&&A(e),i[7](null)}}}function s1(i,e,t){let n=Pe(),{columns:a=1}=e,{targets:s}=e,{columnWidth:r="400px"}=e,{heights:o=[]}=e,{split:l=1/0}=e,{classes:c}=e,d=l,h=m=>{m.empty();let p=[],y=document.body.createDiv({cls:"statblock-detached markdown-preview-view",attr:{style:`width: ${r}`}}),_=y.createDiv({cls:["statblock-detached","obsidian-statblock-plugin","statblock",...c]}).createDiv({cls:"statblock-content-container",attr:{style:`width: ${r}`}}).createDiv("statblock-content"),O=_.createDiv("column");p.push(O);for(let E=0;Ex+P,0);p.lengthd&&vd&&(a<=2||p.length>1||v/((a-p.length-1)*O.scrollHeight)<1.5)&&(d=Math.max(d,O.scrollHeight),_.empty(),O=_.createDiv("column"),p.push(O))}for(let E of p)m.appendChild(E),E.querySelectorAll(".statblock-item-container:empty").forEach(S=>S.detach());y.detach()},u;bi(()=>{n("mounted"),u&&(h(u),n("built"))});function f(m){Re[m?"unshift":"push"](()=>{u=m,t(1,u)})}return i.$$set=m=>{"columns"in m&&t(2,a=m.columns),"targets"in m&&t(3,s=m.targets),"columnWidth"in m&&t(0,r=m.columnWidth),"heights"in m&&t(4,o=m.heights),"split"in m&&t(5,l=m.split),"classes"in m&&t(6,c=m.classes)},[r,u,a,s,o,l,c,f]}var So=class extends U{constructor(e){super(),G(this,e,s1,a1,j,{columns:2,targets:3,columnWidth:0,heights:4,split:5,classes:6},n1)}},xo=So;function r1(i){re(i,"svelte-1suaf4g","ul.spell-item.svelte-1suaf4g{margin:0}ul.spell-item.first.svelte-1suaf4g{margin-top:revert}ul.spell-item.last.svelte-1suaf4g{margin-bottom:revert}.spells.svelte-1suaf4g{font-style:italic}")}function o1(i){let e,t,n,a,s,r,o;return n=new bt({props:{property:`${i[0].level}:`}}),r=new bt({props:{property:i[0].spells}}),{c(){e=k("li"),t=k("span"),se(n.$$.fragment),a=W(),s=k("span"),se(r.$$.fragment),g(t,"class","spell-level"),g(s,"class","spells svelte-1suaf4g"),g(e,"class","spell-line")},m(l,c){D(l,e,c),b(e,t),ie(n,t,null),b(e,a),b(e,s),ie(r,s,null),o=!0},p(l,c){let d={};c&1&&(d.property=`${l[0].level}:`),n.$set(d);let h={};c&1&&(h.property=l[0].spells),r.$set(h)},i(l){o||(M(n.$$.fragment,l),M(r.$$.fragment,l),o=!0)},o(l){Q(n.$$.fragment,l),Q(r.$$.fragment,l),o=!1},d(l){l&&A(e),ne(n),ne(r)}}}function l1(i){let e,t,n;return t=new bt({props:{property:i[0].spells}}),{c(){e=k("span"),se(t.$$.fragment),g(e,"class","spell-line")},m(a,s){D(a,e,s),ie(t,e,null),n=!0},p(a,s){let r={};s&1&&(r.property=a[0].spells),t.$set(r)},i(a){n||(M(t.$$.fragment,a),n=!0)},o(a){Q(t.$$.fragment,a),n=!1},d(a){a&&A(e),ne(t)}}}function c1(i){let e,t,n,a,s=[l1,o1],r=[];function o(l,c){return l[0].level?1:0}return t=o(i,-1),n=r[t]=s[t](i),{c(){e=k("ul"),n.c(),g(e,"class","spell-item svelte-1suaf4g"),oe(e,"first",i[1]),oe(e,"last",i[2])},m(l,c){D(l,e,c),r[t].m(e,null),a=!0},p(l,[c]){let d=t;t=o(l,c),t===d?r[t].p(l,c):(he(),Q(r[d],1,1,()=>{r[d]=null}),de(),n=r[t],n?n.p(l,c):(n=r[t]=s[t](l),n.c()),M(n,1),n.m(e,null)),(!a||c&2)&&oe(e,"first",l[1]),(!a||c&4)&&oe(e,"last",l[2])},i(l){a||(M(n),a=!0)},o(l){Q(n),a=!1},d(l){l&&A(e),r[t].d()}}}function h1(i,e,t){let{spell:n}=e,{first:a=!1}=e,{last:s=!1}=e;return i.$$set=r=>{"spell"in r&&t(0,n=r.spell),"first"in r&&t(1,a=r.first),"last"in r&&t(2,s=r.last)},[n,a,s]}var To=class extends U{constructor(e){super(),G(this,e,h1,c1,j,{spell:0,first:1,last:2},r1)}},Kh=To;var ma=require("obsidian");function d1(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","action")},m(s,r){D(s,e,r),n||(a=ee(t=i[0].call(null,e)),n=!0)},p:N,i:N,o:N,d(s){s&&A(e),n=!1,a()}}}function u1(i,e,t){let{block:n}=e,{monster:a}=e,s=r=>{new ma.ExtraButtonComponent(r).setIcon(n.icon).onClick(()=>{if(n.callback?.trim()?.length)try{new Function("monster",n.callback).call(void 0,a)}catch(o){new ma.Notice(`There was an error executing the provided callback for the action block. + +${o.message}`),console.error(o)}else if(n.action)try{app.commands.executeCommandById(n.action)}catch(o){new ma.Notice(`There was an error executing the command for the action block. + +${o.message}`),console.error(o)}})};return i.$$set=r=>{"block"in r&&t(1,n=r.block),"monster"in r&&t(2,a=r.monster)},[s,n,a]}var Co=class extends U{constructor(e){super(),G(this,e,u1,d1,j,{block:1,monster:2})}},Jh=Co;function ed(i){let e,t;return e=new xo({props:{heights:i[7],targets:i[2],columns:i[1],columnWidth:i[3],split:i[5],classes:i[0]}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,a){let s={};a&2&&(s.columns=n[1]),a&8&&(s.columnWidth=n[3]),a&32&&(s.split=n[5]),a&1&&(s.classes=n[0]),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function f1(i){let e,t,n=i[4]&&ed(i);return{c(){n&&n.c(),e=Oe()},m(a,s){n&&n.m(a,s),D(a,e,s),t=!0},p(a,[s]){a[4]?n?(n.p(a,s),s&16&&M(n,1)):(n=ed(a),n.c(),M(n,1),n.m(e.parentNode,e)):n&&(he(),Q(n,1,1,()=>{n=null}),de())},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){n&&n.d(a),a&&A(e)}}}function m1(i,e,t){let n,a,s=Pe(),{statblock:r}=e,{ready:o}=e,{classes:l}=e,{layout:c}=e,{columns:d}=e,h=d,u=!1,f=[],{plugin:m}=e,p=Fe("monster");Se(i,p,T=>t(16,a=T));let y=a;p.subscribe(T=>t(14,y=T));let w=T=>/[^a-zA-Z0-9]$/.test(T)?T:`${T}:`,_=T=>T.conditioned==null||!T.conditioned?!0:"nested"in T?T.nested.some($=>_($)):T.type=="ifelse"||T.type=="javascript"||T.type=="layout"||!("properties"in T)||!T.properties.length?!0:T.properties.some($=>!!($ in y&&(Array.isArray(y[$])&&y[$].length||typeof y[$]=="string"&&y[$].length||typeof y[$]=="number"))),O=Yr(),E=(T,$={})=>$.container?$.container.createDiv(`statblock-item-container ${ii(T.type)}-container ${($.classes??[]).join(" ")}`):createDiv(`statblock-item-container ${ii(T.type)}-container ${($.classes??[]).join(" ")}`),S=(T,$={})=>{if(!_(T))return[];let{container:K,classes:Z}=$,F=[],V=E(T,{container:K,classes:Z});switch(O.set("item",T),F.push(V),T.type){case"group":{T.heading&&new Rn({target:V,props:{monster:y,item:T},context:O});for(let B of T.nested??[]){let Y=S(B,{container:V,classes:T.cls?[...Z??[],T.cls]:Z??[]});F.push(...Y)}break}case"action":{new Jh({target:V,props:{block:T,monster:y}});break}case"javascript":{new Gh({target:V,props:{block:T}});break}case"collapse":{let B=[];for(let Y of T.nested){let L=S(Y);B.push(...L)}new Yh({target:V,props:{block:T,elements:B}});break}case"heading":{let B=new Eh({target:V,props:{monster:y,item:T},context:O});B.$on("save",Y=>s("save",Y.detail)),B.$on("export",Y=>s("export",Y.detail));break}case"ifelse":{for(let B=0;B{if(typeof ae=="string"&&(ae.charAt(ae.length-1)==":"||!ae.includes(":"))){let X={header:w(ae),spells:[]};return L.push(X),L}let J=L[L.length-1],ue;if(typeof ae=="string")ue={spells:ct.linkifySpells(ae,O.get("context"))};else try{ue={level:Object.keys(ae).shift(),spells:ct.linkifySpells(ye(Object.values(ae).shift()),O.get("context"))}}catch{return L}if(J)J.spells.push(ue);else{let X={header:`${y.name} knows the following spells:`,spells:[ue]};L.push(X)}return L},[]);for(let L=0;L0){new fa({target:Y.createDiv("statblock-item-container statblock-trait-prop"),props:{name:B[0].name,desc:B[0].desc,property:T.properties[0],item:T,monster:y,trait:B[0]},context:O});for(let L=1;LB.hasChildNodes())};if(!f.length)for(let T of r){let $=S(T);$?.length&&f.push(...$)}let v="400px";y.columnWidth?(typeof y.columnWidth=="number"&&(v=`${y.columnWidth}px`),typeof y.columnWidth=="string"&&(v=y.columnWidth)):c.columnWidth&&(v=`${c.columnWidth}px`);let x=!1,P=[],I,R=()=>{let T=document.body.createDiv({cls:"statblock-detached markdown-preview-view",attr:{style:`width: ${v}`}});new xo({target:T.createDiv({cls:["obsidian-statblock-plugin","statblock",...l]}),props:{heights:P,targets:f,columns:1,columnWidth:v,classes:l}}).$on("built",()=>{let K=T.querySelector(".column");for(let Z of f)P.push(Z.scrollHeight);y.forceColumns?t(5,I=K.scrollHeight/h):y.columns&&y.columns>0?t(5,I=Math.max(K.scrollHeight/y.columns,K.scrollHeight/d)):t(5,I=Math.max(600,Math.min(K.scrollHeight/d,n))),T.empty(),T.detach(),t(4,x=!0)})};return i.$$set=T=>{"statblock"in T&&t(8,r=T.statblock),"ready"in T&&t(9,o=T.ready),"classes"in T&&t(0,l=T.classes),"layout"in T&&t(10,c=T.layout),"columns"in T&&t(1,d=T.columns),"plugin"in T&&t(13,m=T.plugin)},i.$$.update=()=>{i.$$.dirty&16384&&(n=!isNaN(Number(y.columnHeight))&&y.columnHeight>0?y.columnHeight:1/0),i.$$.dirty&512&&o&&R()},[l,d,f,v,x,I,p,P,r,o,c,h,u,m,y]}var Ao=class extends U{constructor(e){super(),G(this,e,m1,f1,j,{statblock:8,ready:9,classes:0,layout:10,columns:1,maxColumns:11,detached:12,targets:2,plugin:13})}get maxColumns(){return this.$$.ctx[11]}get detached(){return this.$$.ctx[12]}get targets(){return this.$$.ctx[2]}},td=Ao;function g1(i){re(i,"svelte-1unaafm",`.statblock.svelte-1unaafm{--active-primary-color:var(--statblock-primary-color);--active-rule-color:var(--statblock-rule-color);--active-background-color:var(--statblock-background-color);--active-bar-color:var(--statblock-bar-color);--active-bar-border-size:var(--statblock-bar-border-size);--active-bar-border-color:var(--statblock-bar-border-color);--active-image-width:var(--statblock-image-width);--active-image-height:var(--statblock-image-height);--active-image-border-size:var(--statblock-image-border-size);--active-image-border-color:var( + --statblock-image-border-color, + --active-primary-color + );--active-border-size:var(--statblock-border-size);--active-border-color:var(--statblock-border-color);--active-box-shadow-color:var(--statblock-box-shadow-color);--active-box-shadow-x-offset:var(--statblock-box-shadow-x-offset);--active-box-shadow-y-offset:var(--statblock-box-shadow-y-offset);--active-box-shadow-blur:var(--statblock-box-shadow-blur);--active-font-color:var( + --statblock-font-color, + --active-primary-color + );--active-font-weight:var(--statblock-font-weight);--active-content-font:var(--statblock-content-font);--active-content-font-size:var(--statblock-content-font-size);--active-heading-font:var(--statblock-heading-font);--active-heading-font-color:var(--statblock-heading-font-color);--active-heading-font-size:var(--statblock-heading-font-size);--active-heading-font-variant:var(--statblock-heading-font-variant);--active-heading-font-weight:var(--statblock-heading-font-weight);--active-heading-line-height:var(--statblock-heading-line-height);--active-property-line-height:var(--statblock-property-line-height);--active-property-font:var(--statblock-property-font);--active-property-font-color:var(--statblock-property-font-color);--active-property-font-variant:var(--statblock-property-font-variant);--active-property-font-size:var(--statblock-property-font-size);--active-property-font-weight:var(--statblock-property-font-weight);--active-property-name-font:var(--statblock-property-name-font);--active-property-name-font-color:var( + --statblock-property-name-font-color + );--active-property-name-font-variant:var( + --statblock-property-name-font-variant + );--active-property-name-font-size:var( + --statblock-property-name-font-size + );--active-property-name-font-weight:var( + --statblock-property-name-font-weight + );--active-section-heading-border-size:var( + --statblock-section-heading-border-size + );--active-section-heading-border-color:var( + --statblock-section-heading-border-color + );--active-section-heading-font:var(--statblock-section-heading-font);--active-section-heading-font-color:var( + --statblock-section-heading-font-color + );--active-section-heading-font-size:var( + --statblock-section-heading-font-size + );--active-section-heading-font-variant:var( + --statblock-section-heading-font-variant + );--active-section-heading-font-weight:var( + --statblock-section-heading-font-weight + );--active-saves-line-height:var(--statblock-saves-line-height);--active-spells-font-style:var(--statblock-spells-font-style);--active-subheading-font:var(--statblock-subheading-font);--active-subheading-font-color:var(--statblock-subheading-font-color);--active-subheading-font-size:var(--statblock-subheading-font-size);--active-subheading-font-style:var(--statblock-subheading-font-style);--active-subheading-font-weight:var( + --statblock-subheading-font-weight + );--active-table-header-font-weight:var( + --statblock-table-header-font-weight + );--active-traits-font:var(--statblock-traits-font);--active-traits-font-color:var(--statblock-traits-font-color);--active-traits-font-size:var(--statblock-traits-font-size);--active-traits-font-weight:var(--statblock-traits-font-weight);--active-traits-font-style:var(--statblock-traits-font-style);--active-traits-name-font:var(--statblock-traits-name-font);--active-traits-name-font-color:var( + --statblock-traits-name-font-color + );--active-traits-name-font-size:var(--statblock-traits-name-font-size);--active-traits-name-font-weight:var( + --statblock-traits-name-font-weight + );--active-traits-name-font-style:var( + --statblock-traits-name-font-style + );--active-link-style:var(--statblock-link-style)}.statblock.svelte-1unaafm a{font-style:var(--statblock-link-style)}.container.svelte-1unaafm{display:flex;position:relative;width:100%;margin:0.25rem 0}.statblock.svelte-1unaafm{margin:0 auto;position:relative}.icons.svelte-1unaafm{position:absolute;left:var(--size-2-2)}`)}function id(i){let e,t=i[8],n,a,s,r,o=ad(i),l=i[3]&&sd(i);return{c(){e=k("div"),o.c(),a=W(),l&&l.c(),s=Oe(),g(e,"class",n=Pi(i[5].join(" "))+" svelte-1unaafm"),oe(e,"obsidian-statblock-plugin",!0),oe(e,"statblock",!0)},m(c,d){D(c,e,d),o.m(e,null),D(c,a,d),l&&l.m(c,d),D(c,s,d),r=!0},p(c,d){d[0]&256&&j(t,t=c[8])?(he(),Q(o,1,1,N),de(),o=ad(c),o.c(),M(o,1),o.m(e,null)):o.p(c,d),(!r||d[0]&32&&n!==(n=Pi(c[5].join(" "))+" svelte-1unaafm"))&&g(e,"class",n),(!r||d[0]&32)&&oe(e,"obsidian-statblock-plugin",!0),(!r||d[0]&32)&&oe(e,"statblock",!0),c[3]?l?l.p(c,d):(l=sd(c),l.c(),l.m(s.parentNode,s)):l&&(l.d(1),l=null)},i(c){r||(M(o),r=!0)},o(c){Q(o),r=!1},d(c){c&&A(e),o.d(c),c&&A(a),l&&l.d(c),c&&A(s)}}}function p1(i){let e;return{c(){e=k("span"),e.textContent="Invalid monster."},m(t,n){D(t,e,n)},p:N,i:N,o:N,d(t){t&&A(e)}}}function b1(i){let e,t,n=i[7],a,s,r;e=new so({});let o=nd(i);return s=new so({}),{c(){se(e.$$.fragment),t=W(),o.c(),a=W(),se(s.$$.fragment)},m(l,c){ie(e,l,c),D(l,t,c),o.m(l,c),D(l,a,c),ie(s,l,c),r=!0},p(l,c){c[0]&128&&j(n,n=l[7])?(he(),Q(o,1,1,N),de(),o=nd(l),o.c(),M(o,1),o.m(a.parentNode,a)):o.p(l,c)},i(l){r||(M(e.$$.fragment,l),M(o),M(s.$$.fragment,l),r=!0)},o(l){Q(e.$$.fragment,l),Q(o),Q(s.$$.fragment,l),r=!1},d(l){ne(e,l),l&&A(t),o.d(l),l&&A(a),ne(s,l)}}}function nd(i){let e,t;return e=new td({props:{columns:i[7],maxColumns:i[10],statblock:i[1],ready:i[6],classes:i[5],layout:i[2],plugin:i[0]}}),e.$on("save",i[19]),e.$on("export",i[20]),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,a){let s={};a[0]&128&&(s.columns=n[7]),a[0]&2&&(s.statblock=n[1]),a[0]&64&&(s.ready=n[6]),a[0]&32&&(s.classes=n[5]),a[0]&4&&(s.layout=n[2]),a[0]&1&&(s.plugin=n[0]),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function ad(i){let e,t,n,a,s=[b1,p1],r=[];function o(l,c){return l[8]?0:1}return e=o(i,[-1,-1]),t=r[e]=s[e](i),{c(){t.c(),n=Oe()},m(l,c){r[e].m(l,c),D(l,n,c),a=!0},p(l,c){let d=e;e=o(l,c),e===d?r[e].p(l,c):(he(),Q(r[d],1,1,()=>{r[d]=null}),de(),t=r[e],t?t.p(l,c):(t=r[e]=s[e](l),t.c()),M(t,1),t.m(n.parentNode,n))},i(l){a||(M(t),a=!0)},o(l){Q(t),a=!1},d(l){r[e].d(l),l&&A(n)}}}function sd(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","icons svelte-1unaafm")},m(s,r){D(s,e,r),n||(a=[ee(t=i[11].call(null,e)),H(e,"click",i[12])],n=!0)},p:N,d(s){s&&A(e),n=!1,ce(a)}}}function y1(i){let e,t,n=i[6]&&id(i);return{c(){e=k("div"),n&&n.c(),g(e,"class","container svelte-1unaafm")},m(a,s){D(a,e,s),n&&n.m(e,null),i[21](e),t=!0},p(a,s){a[6]?n?(n.p(a,s),s[0]&64&&M(n,1)):(n=id(a),n.c(),M(n,1),n.m(e,null)):n&&(he(),Q(n,1,1,()=>{n=null}),de())},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){a&&A(e),n&&n.d(),i[21](null)}}}function v1(i,e,t){let n,a,s,r,o,l,c=Pe(),{monster:d}=e,{context:h}=e,{plugin:u}=e,{statblock:f}=e,{renderer:m}=e,{layout:p}=e,{canSave:y=!0}=e,{icons:w=!0}=e,_=Ne();Se(i,_,J=>t(8,l=J));let O=!isNaN(Number(d.columns??p.columns))&&Number(d.columns??p.columns)>0?Number(d.columns??p.columns):2,E=Number(`${d.columnWidth}`.replace(/\D/g,"")),S=!isNaN(E??p.columnWidth)&&(E??p.columnWidth)>0?E:400,v=u.canUseDiceRoller&&(d.dice??u.settings.useDice),x=d.render??u.settings.renderDice;At("plugin",u),At("tryToRenderLinks",u.settings.tryToRenderLinks),At("context",h),At("monster",_),At("dice",v),At("render",x),At("renderer",m),At("layout",p);let P=Ne(!1);At("reset",P);let I,R=()=>{if(d.forceColumns??p.forceColumns){t(7,n=O),$.disconnect();return}let J=I.clientWidth;t(7,n=Math.min(Math.max(Math.floor(J/S),1),O))},T=(0,Xt.debounce)(()=>{R(),a||t(6,a=!0)},100,!1),$=new ResizeObserver(T);bi(()=>{T(),$.observe(I)}),yi(()=>{$.disconnect()});let K=J=>{new Xt.ExtraButtonComponent(J).setIcon("vertical-three-dots")},Z=new Xt.Menu;Z.addItem(J=>J.setIcon("save").setTitle("Save to Bestiary").setDisabled(!y).onClick(()=>c("save"))),Z.addItem(J=>{J.setTitle("Copy YAML").setIcon("code").onClick(async()=>{try{await navigator.clipboard.writeText((0,Xt.stringifyYaml)(d)),new Xt.Notice("Creature YAML copied to clipboard")}catch(ue){new Xt.Notice(`There was an issue copying the yaml: + +${ue.message}`)}})}),Z.addItem(J=>J.setIcon("image-down").setTitle("Export as PNG").onClick(()=>c("export"))),v&&Z.addItem(J=>J.setIcon("reset").setTitle("Reset Dice").onClick(()=>{P.set(!0),P.set(!1)}));let F=J=>{Z.showAtMouseEvent(J)},V=(J,ue="")=>J?.toLowerCase().replace(/\s+/g,"-")??ue,B=J=>{let ue=[];for(let X of J){if(X.type=="layout"){let z=u.manager.getAllLayouts().find(ge=>ge.id==X.layout);ue.push(V(z?.name))}"nested"in X&&ue.push(...B(X.nested))}return ue};function Y(J){je.call(this,i,J)}function L(J){je.call(this,i,J)}function ae(J){Re[J?"unshift":"push"](()=>{I=J,t(4,I)})}return i.$$set=J=>{"monster"in J&&t(13,d=J.monster),"context"in J&&t(14,h=J.context),"plugin"in J&&t(0,u=J.plugin),"statblock"in J&&t(1,f=J.statblock),"renderer"in J&&t(15,m=J.renderer),"layout"in J&&t(2,p=J.layout),"canSave"in J&&t(16,y=J.canSave),"icons"in J&&t(3,w=J.icons)},i.$$.update=()=>{i.$$.dirty[0]&8192&&Te(_,l=d,l),i.$$.dirty[0]&8192&&t(18,s=V(d.name,"no-name")),i.$$.dirty[0]&4&&t(17,r=V(p.name,"no-layout")),i.$$.dirty[0]&393218&&t(5,o=[s,r,...B(f)].filter(J=>J?.length))},t(7,n=O),t(6,a=!1),[u,f,p,w,I,o,a,n,l,_,O,K,F,d,h,m,y,r,s,Y,L,ae]}var Do=class extends U{constructor(e){super(),G(this,e,v1,y1,j,{monster:13,context:14,plugin:0,statblock:1,renderer:15,layout:2,canSave:16,icons:3},g1,[-1,-1])}},rd=Do;var Ro=It(mi());var od=It(mi());var yt=require("obsidian");function ga(i){let e=new Blob([i],{type:"text/javascript"}),t=URL.createObjectURL(e),n=new Worker(t,{name:"Fantasy Statblocks Creature Parser"});return URL.revokeObjectURL(t),n}function Po(){return ga('var If=Object.create;var vs=Object.defineProperty,Rf=Object.defineProperties,Ff=Object.getOwnPropertyDescriptor,$f=Object.getOwnPropertyDescriptors,Vf=Object.getOwnPropertyNames,yl=Object.getOwnPropertySymbols,Hf=Object.getPrototypeOf,wl=Object.prototype.hasOwnProperty,_f=Object.prototype.propertyIsEnumerable;var ir=(s,e)=>(e=Symbol[s])?e:Symbol.for("Symbol."+s);var bl=(s,e,t)=>e in s?vs(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t,kl=(s,e)=>{for(var t in e||(e={}))wl.call(e,t)&&bl(s,t,e[t]);if(yl)for(var t of yl(e))_f.call(e,t)&&bl(s,t,e[t]);return s},Sl=(s,e)=>Rf(s,$f(e));var Wf=(s,e)=>()=>(e||s((e={exports:{}}).exports,e),e.exports),vl=(s,e)=>{for(var t in e)vs(s,t,{get:e[t],enumerable:!0})},Kf=(s,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Vf(e))!wl.call(s,n)&&n!==t&&vs(s,n,{get:()=>e[n],enumerable:!(i=Ff(e,n))||i.enumerable});return s};var xl=(s,e,t)=>(t=s!=null?If(Hf(s)):{},Kf(e||!s||!s.__esModule?vs(t,"default",{value:s,enumerable:!0}):t,s));var qf=function(s,e){this[0]=s,this[1]=e};var k=s=>{var e=s[ir("asyncIterator")],t=!1,i,n={};return e==null?(e=s[ir("iterator")](),i=r=>n[r]=o=>e[r](o)):(e=e.call(s),i=r=>n[r]=o=>{if(t){if(t=!1,r==="throw")throw o;return o}return t=!0,{done:!1,value:new qf(new Promise(l=>{var a=e[r](o);if(!(a instanceof Object))throw TypeError("Object expected");l(a)}),1)}}),n[ir("iterator")]=()=>n,i("next"),"throw"in e?i("throw"):n.throw=r=>{throw r},"return"in e&&i("return"),n};var rr=Wf((sr,nr)=>{(function(s,e){typeof sr=="object"&&typeof nr!="undefined"?nr.exports=e():typeof define=="function"&&define.amd?define(e):(s=typeof globalThis!="undefined"?globalThis:s||self,s["fast-copy"]=e())})(sr,function(){"use strict";var s=Function.prototype.toString,e=Object.create,t=Object.defineProperty,i=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.getOwnPropertySymbols,o=Object.getPrototypeOf,l=Object.prototype,a=l.hasOwnProperty,h=l.propertyIsEnumerable,f=typeof r=="function",c=typeof WeakMap=="function",u=function(){if(c)return function(){return new WeakMap};var S=function(){function w(){this._keys=[],this._values=[]}return w.prototype.has=function(A){return!!~this._keys.indexOf(A)},w.prototype.get=function(A){return this._values[this._keys.indexOf(A)]},w.prototype.set=function(A,O){this._keys.push(A),this._values.push(O)},w}();return function(){return new S}}(),d=function(S,w){var A=S.__proto__||o(S);if(!A)return e(null);var O=A.constructor;if(O===w.Object)return A===w.Object.prototype?{}:e(A);if(~s.call(O).indexOf("[native code]"))try{return new O}catch(L){}return e(A)},p=function(S,w,A,O){var L=d(S,w);O.set(S,L);for(var N in S)a.call(S,N)&&(L[N]=A(S[N],O));if(f)for(var x=r(S),D=0,I=x.length,E=void 0;Dthis.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){let n=[];return this.decompose(0,e,n,2),i.length&&i.decompose(0,i.length,n,3),this.decompose(t,this.length,n,1),Qt.from(n,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let i=[];return this.decompose(e,t,i,0),Qt.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),n=new It(this),r=new It(e);for(let o=t,l=t;;){if(n.next(o),r.next(o),o=0,n.lineBreak!=r.lineBreak||n.done!=r.done||n.value!=r.value)return!1;if(l+=n.value.length,n.done||l>=i)return!0}}iter(e=1){return new It(this,e)}iterRange(e,t=this.length){return new Os(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let n=this.line(e).from;i=this.iterRange(n,Math.max(n,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new Ts(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?s.empty:e.length<=32?new ge(e):Qt.from(ge.split(e,[]))}},ge=class s extends q{constructor(e,t=jf(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,n){for(let r=0;;r++){let o=this.text[r],l=n+o.length;if((t?i:l)>=e)return new lr(n,l,i,o);n=l+1,i++}}decompose(e,t,i,n){let r=e<=0&&t>=this.length?this:new s(Al(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(n&1){let o=i.pop(),l=Cs(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new s(l,o.length+r.length));else{let a=l.length>>1;i.push(new s(l.slice(0,a)),new s(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof s))return super.replace(e,t,i);let n=Cs(this.text,Cs(i.text,Al(this.text,0,e)),t),r=this.length+i.length-(t-e);return n.length<=32?new s(n,r):Qt.from(s.split(n,[]),r)}sliceString(e,t=this.length,i=`\n`){let n="";for(let r=0,o=0;r<=t&&oe&&o&&(n+=i),er&&(n+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return n}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],n=-1;for(let r of e)i.push(r),n+=r.length+1,i.length==32&&(t.push(new s(i,n)),i=[],n=-1);return n>-1&&t.push(new s(i,n)),t}},Qt=class s extends q{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,n){for(let r=0;;r++){let o=this.children[r],l=n+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,n);n=l+1,i=a+1}}decompose(e,t,i,n){for(let r=0,o=0;o<=t&&r=o){let h=n&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if(i.lines=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>h>>6){let f=this.children.slice();return f[n]=a,new s(f,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=`\n`){let n="";for(let r=0,o=0;re&&r&&(n+=i),eo&&(n+=l.sliceString(e-o,t-o,i)),o=a+1}return n}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof s))return 0;let i=0,[n,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;n+=t,r+=t){if(n==o||r==l)return i;let a=this.children[n],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,n)=>i+n.length+1,-1)){let i=0;for(let d of e)i+=d.lines;if(i<32){let d=[];for(let p of e)p.flatten(d);return new ge(d,t)}let n=Math.max(32,i>>5),r=n<<1,o=n>>1,l=[],a=0,h=-1,f=[];function c(d){let p;if(d.lines>r&&d instanceof s)for(let m of d.children)c(m);else d.lines>o&&(a>o||!a)?(u(),l.push(d)):d instanceof ge&&a&&(p=f[f.length-1])instanceof ge&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,f[f.length-1]=new ge(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>n&&u(),a+=d.lines,h+=d.length+1,f.push(d))}function u(){a!=0&&(l.push(f.length==1?f[0]:s.from(f,h)),h=-1,a=f.length=0)}for(let d of e)c(d);return u(),l.length==1?l[0]:new s(l,t)}};q.empty=new ge([""],0);function jf(s){let e=-1;for(let t of s)e+=t.length+1;return e}function Cs(s,e,t=0,i=1e9){for(let n=0,r=0,o=!0;r=t&&(a>i&&(l=l.slice(0,i-n)),n0?1:(e instanceof ge?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,n=this.nodes[i],r=this.offsets[i],o=r>>1,l=n instanceof ge?n.text.length:n.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=`\n`,this;e--}else if(n instanceof ge){let a=n.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=n.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof ge?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Os=class{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new It(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:n}=this.cursor.next(e);return this.pos+=(n.length+e)*t,this.value=n.length<=i?n:t<0?n.slice(n.length-i):n.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},Ts=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:n}=this.inner.next(e);return t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=n,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(q.prototype[Symbol.iterator]=function(){return this.iter()},It.prototype[Symbol.iterator]=Os.prototype[Symbol.iterator]=Ts.prototype[Symbol.iterator]=function(){return this});var lr=class{constructor(e,t,i,n){this.from=e,this.to=t,this.number=i,this.text=n}get length(){return this.to-this.from}},Zt="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(s=>s?parseInt(s,36):1);for(let s=1;ss)return Zt[e-1]<=s;return!1}function Cl(s){return s>=127462&&s<=127487}var Ml=8205;function nt(s,e,t=!0,i=!0){return(t?Ll:Uf)(s,e,i)}function Ll(s,e,t){if(e==s.length)return e;e&&Pl(s.charCodeAt(e))&&Bl(s.charCodeAt(e-1))&&e--;let i=Ms(s,e);for(e+=ar(i);e=0&&Cl(Ms(s,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function Uf(s,e,t){for(;e>0;){let i=Ll(s,e-2,t);if(i=56320&&s<57344}function Bl(s){return s>=55296&&s<56320}function Ms(s,e){let t=s.charCodeAt(e);if(!Bl(t)||e+1==s.length)return t;let i=s.charCodeAt(e+1);return Pl(i)?(t-55296<<10)+(i-56320)+65536:t}function ar(s){return s<65536?1:2}var hr=/\\r\\n?|\\n/,de=function(s){return s[s.Simple=0]="Simple",s[s.TrackDel=1]="TrackDel",s[s.TrackBefore=2]="TrackBefore",s[s.TrackAfter=3]="TrackAfter",s}(de||(de={})),Rt=class s{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;te)return r+(e-n);r+=l}else{if(i!=de.Simple&&h>=e&&(i==de.TrackDel&&ne||i==de.TrackBefore&&ne))return null;if(h>e||h==e&&t<0&&!l)return e==n||t<0?r:r+a;r+=a}n=h}if(e>n)throw new RangeError(`Position ${e} is out of range for changeset of length ${n}`);return r}touchesRange(e,t=e){for(let i=0,n=0;i=0&&n<=t&&l>=e)return nt?"cover":!0;n=l}return!1}toString(){let e="";for(let t=0;t=0?":"+n:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new s(e)}static create(e){return new s(e)}},ye=class s extends Rt{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return fr(this,(t,i,n,r,o)=>e=e.replace(n,n+(i-t),o),!1),e}mapDesc(e,t=!1){return cr(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let n=0,r=0;n=0){t[n]=l,t[n+1]=o;let a=n>>1;for(;i.length0&&yt(i,t,r.text),r.forward(f),l+=f}let h=e[o++];for(;l>1].toJSON()))}return e}static of(e,t,i){let n=[],r=[],o=0,l=null;function a(f=!1){if(!f&&!n.length)return;ou||c<0||u>t)throw new RangeError(`Invalid change range ${c} to ${u} (in doc of length ${t})`);let p=d?typeof d=="string"?q.of(d.split(i||hr)):d:q.empty,m=p.length;if(c==u&&m==0)return;co&&le(n,c-o,-1),le(n,u-c,m),yt(r,n,p),o=u}}return h(e),a(!l),l}static empty(e){return new s(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let n=0;nl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length=0&&t<=0&&t==s[n+1]?s[n]+=e:e==0&&s[n]==0?s[n+1]+=t:i?(s[n]+=e,s[n+1]+=t):s.push(e,t)}function yt(s,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i>1])),!(t||o==s.sections.length||s.sections[o+1]<0);)l=s.sections[o++],a=s.sections[o++];e(n,h,r,f,c),n=h,r=f}}}function cr(s,e,t,i=!1){let n=[],r=i?[]:null,o=new Ft(s),l=new Ft(e);for(let a=-1;;)if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);le(n,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let h=0,f=o.len;for(;f;)if(l.ins==-1){let c=Math.min(f,l.len);h+=c,f-=c,l.forward(c)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}var Ft=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?q.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?q.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Xt=class s{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,t=-1){let i,n;return this.empty?i=n=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),i==this.from&&n==this.to?this:new s(i,n,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return R.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return R.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return R.range(e.anchor,e.head)}static create(e,t,i){return new s(e,t,i)}},R=class s{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:s.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;te.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new s(e.ranges.map(t=>Xt.fromJSON(t)),e.main)}static single(e,t=e){return new s([s.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,n=0;ne?4:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((n,r)=>n.from-r.from),t=e.indexOf(i);for(let n=1;nr.head?s.range(a,l):s.range(l,a))}}return new s(e,t)}};function Rl(s,e){for(let t of s.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var kr=0,V=class s{constructor(e,t,i,n,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=n,this.id=kr++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}static define(e={}){return new s(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:Sr),!!e.static,e.enables)}of(e){return new ei([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can\'t compute a static facet");return new ei(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can\'t compute a static facet");return new ei(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}};function Sr(s,e){return s==e||s.length==e.length&&s.every((t,i)=>t===e[i])}var ei=class{constructor(e,t,i,n){this.dependencies=e,this.facet=t,this.type=i,this.value=n,this.id=kr++}dynamicSlot(e){var t;let i=this.value,n=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,f=[];for(let c of this.dependencies)c=="doc"?a=!0:c=="selection"?h=!0:((t=e[c.id])!==null&&t!==void 0?t:1)&1||f.push(e[c.id]);return{create(c){return c.values[o]=i(c),1},update(c,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||ur(c,f)){let d=i(c);if(l?!Ol(d,c.values[o],n):!n(d,c.values[o]))return c.values[o]=d,1}return 0},reconfigure:(c,u)=>{let d,p=u.config.address[r];if(p!=null){let m=Ls(u,p);if(this.dependencies.every(g=>g instanceof V?u.facet(g)===c.facet(g):g instanceof rt?u.field(g,!1)==c.field(g,!1):!0)||(l?Ol(d=i(c),m,n):n(d=i(c),m)))return c.values[o]=m,0}else d=i(c);return c.values[o]=d,1}}}};function Ol(s,e,t){if(s.length!=e.length)return!1;for(let i=0;is[a.id]),n=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=s[e.id]>>1;function l(a){let h=[];for(let f=0;fi===n),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Tl).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,n)=>{let r=i.values[t],o=this.updateF(r,n);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,n)=>n.config.address[this.id]!=null?(i.values[t]=n.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,Tl.of({field:this,create:e})]}get extension(){return this}},Pt={lowest:4,low:3,default:2,high:1,highest:0};function Ei(s){return e=>new Ns(e,s)}var Bs={highest:Ei(Pt.highest),high:Ei(Pt.high),default:Ei(Pt.default),low:Ei(Pt.low),lowest:Ei(Pt.lowest)},Ns=class{constructor(e,t){this.inner=e,this.prec=t}},Es=class s{of(e){return new Li(this,e)}reconfigure(e){return s.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},Li=class{constructor(e,t){this.compartment=e,this.inner=t}},Ds=class s{constructor(e,t,i,n,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=n,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,i){let n=[],r=Object.create(null),o=new Map;for(let u of Jf(e,t,o))u instanceof rt?n.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of n)l[u.id]=h.length<<1,h.push(d=>u.slot(d));let f=i==null?void 0:i.config.facets;for(let u in r){let d=r[u],p=d[0].facet,m=f&&f[u]||[];if(d.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,Sr(m,d))a.push(i.facet(p));else{let g=p.combine(d.map(b=>b.value));a.push(i&&p.compare(g,i.facet(p))?i.facet(p):g)}else{for(let g of d)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=h.length<<1,h.push(b=>g.dynamicSlot(b)));l[p.id]=h.length<<1,h.push(g=>Gf(g,p,d))}}let c=h.map(u=>u(l));return new s(e,o,c,l,a,r)}};function Jf(s,e,t){let i=[[],[],[],[],[]],n=new Map;function r(o,l){let a=n.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof Li&&t.delete(o.compartment)}if(n.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof Li){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof Ns)r(o.inner,o.prec);else if(o instanceof rt)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof ei)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,Pt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(s,Pt.default),i.reduce((o,l)=>o.concat(l))}function Di(s,e){if(e&1)return 2;let t=e>>1,i=s.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;s.status[t]=4;let n=s.computeSlot(s,s.config.dynamicSlots[t]);return s.status[t]=2|n}function Ls(s,e){return e&1?s.config.staticValues[e>>1]:s.values[e>>1]}var Fl=V.define(),$l=V.define({combine:s=>s.some(e=>e),static:!0}),Vl=V.define({combine:s=>s.length?s[0]:void 0,static:!0}),Hl=V.define(),_l=V.define(),Wl=V.define(),Kl=V.define({combine:s=>s.length?s[0]:!1}),ot=class{constructor(e,t){this.type=e,this.value=t}static define(){return new dr}},dr=class{of(e){return new ot(this,e)}},pr=class{constructor(e){this.map=e}of(e){return new Z(this,e)}},Z=class s{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new s(this.type,t)}is(e){return this.type==e}static define(e={}){return new pr(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let n of e){let r=n.map(t);r&&i.push(r)}return i}};Z.reconfigure=Z.define();Z.appendConfig=Z.define();var pe=class s{constructor(e,t,i,n,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=n,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&Rl(i,t.newLength),r.some(l=>l.type==s.time)||(this.annotations=r.concat(s.time.of(Date.now())))}static create(e,t,i,n,r,o){return new s(e,t,i,n,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(s.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};pe.time=ot.define();pe.userEvent=ot.define();pe.addToHistory=ot.define();pe.remote=ot.define();function Yf(s,e){let t=[];for(let i=0,n=0;;){let r,o;if(i=s[i]))r=s[i++],o=s[i++];else if(n=0;n--){let r=i[n](s);r instanceof pe?s=r:Array.isArray(r)&&r.length==1&&r[0]instanceof pe?s=r[0]:s=jl(e,ti(r),!1)}return s}function Qf(s){let e=s.startState,t=e.facet(Wl),i=s;for(let n=t.length-1;n>=0;n--){let r=t[n](s);r&&Object.keys(r).length&&(i=ql(i,mr(e,r,s.changes.newLength),!0))}return i==s?s:pe.create(e,s.changes,s.selection,i.effects,i.annotations,i.scrollIntoView)}var Zf=[];function ti(s){return s==null?Zf:Array.isArray(s)?s:[s]}var Ke=function(s){return s[s.Word=0]="Word",s[s.Space=1]="Space",s[s.Other=2]="Other",s}(Ke||(Ke={})),ec=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/,gr;try{gr=new RegExp("[\\\\p{Alphabetic}\\\\p{Number}_]","u")}catch(s){}function tc(s){if(gr)return gr.test(s);for(let e=0;e"\\x80"&&(t.toUpperCase()!=t.toLowerCase()||ec.test(t)))return!0}return!1}function ic(s){return e=>{if(!/\\S/.test(e))return Ke.Space;if(tc(e))return Ke.Word;for(let t=0;t-1)return Ke.Word;return Ke.Other}}var Q=class s{constructor(e,t,i,n,r,o){this.config=e,this.doc=t,this.selection=i,this.values=n,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;ln.set(a,l)),t=null),n.set(o.value.compartment,o.value.extension)):o.is(Z.reconfigure)?(t=null,i=o.value):o.is(Z.appendConfig)&&(t=null,i=ti(i).concat(o.value));let r;t?r=e.startState.values.slice():(t=Ds.resolve(i,n,this),r=new s(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,a)=>a.reconfigure(l,this),null).values),new s(t,e.newDoc,e.newSelection,r,(o,l)=>l.update(o,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:R.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),n=this.changes(i.changes),r=[i.range],o=ti(i.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return s.create({doc:e.doc,selection:R.fromJSON(e.selection),extensions:t.extensions?n.concat([t.extensions]):n})}static create(e={}){let t=Ds.resolve(e.extensions||[],new Map),i=e.doc instanceof q?e.doc:q.of((e.doc||"").split(t.staticFacet(s.lineSeparator)||hr)),n=e.selection?e.selection instanceof R?e.selection:R.single(e.selection.anchor,e.selection.head):R.single(0);return Rl(n,i.length),t.staticFacet($l)||(n=n.asSingle()),new s(t,i,n,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(s.tabSize)}get lineBreak(){return this.facet(s.lineSeparator)||`\n`}get readOnly(){return this.facet(Kl)}phrase(e,...t){for(let i of this.facet(s.phrases))if(Object.prototype.hasOwnProperty.call(i,e)){e=i[e];break}return t.length&&(e=e.replace(/\\$(\\$|\\d*)/g,(i,n)=>{if(n=="$")return"$";let r=+(n||1);return!r||r>t.length?i:t[r-1]})),e}languageDataAt(e,t,i=-1){let n=[];for(let r of this.facet(Fl))for(let o of r(this,t,i))Object.prototype.hasOwnProperty.call(o,e)&&n.push(o[e]);return n}charCategorizer(e){return ic(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:i,length:n}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-i,l=e-i;for(;o>0;){let a=nt(t,o,!1);if(r(t.slice(a,o))!=Ke.Word)break;o=a}for(;ls.length?s[0]:4});Q.lineSeparator=Vl;Q.readOnly=Kl;Q.phrases=V.define({compare(s,e){let t=Object.keys(s),i=Object.keys(e);return t.length==i.length&&t.every(n=>s[n]==e[n])}});Q.languageData=Fl;Q.changeFilter=Hl;Q.transactionFilter=_l;Q.transactionExtender=Wl;Es.reconfigure=Z.define();var lt=class{eq(e){return this==e}range(e,t=e){return Pi.create(e,t,this)}};lt.prototype.startSide=lt.prototype.endSide=0;lt.prototype.point=!1;lt.prototype.mapMode=de.TrackDel;var Pi=class s{constructor(e,t,i){this.from=e,this.to=t,this.value=i}static create(e,t,i){return new s(e,t,i)}};function yr(s,e){return s.from-e.from||s.value.startSide-e.value.startSide}var br=class s{constructor(e,t,i,n){this.from=e,this.to=t,this.value=i,this.maxPoint=n}get length(){return this.to[this.to.length-1]}findIndex(e,t,i,n=0){let r=i?this.to:this.from;for(let o=n,l=r.length;;){if(o==l)return o;let a=o+l>>1,h=r[a]-e||(i?this.value[a].endSide:this.value[a].startSide)-t;if(a==o)return h>=0?o:l;h>=0?l=a:o=a+1}}between(e,t,i,n){for(let r=this.findIndex(t,-1e9,!0),o=this.findIndex(i,1e9,!1,r);rd||u==d&&h.startSide>0&&h.endSide<=0)continue;(d-u||h.endSide-h.startSide)<0||(o<0&&(o=u),h.point&&(l=Math.max(l,d-u)),i.push(h),n.push(u-o),r.push(d-o))}return{mapped:i.length?new s(n,r,i,l):null,pos:o}}},ne=class s{constructor(e,t,i,n){this.chunkPos=e,this.chunk=t,this.nextLayer=i,this.maxPoint=n}static create(e,t,i,n){return new s(e,t,i,n)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:i=!1,filterFrom:n=0,filterTo:r=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(i&&(t=t.slice().sort(yr)),this.isEmpty)return t.length?s.of(t):this;let l=new Ps(this,null,-1).goto(0),a=0,h=[],f=new $t;for(;l.value||a=0){let c=t[a++];f.addInner(c.from,c.to,c.value)||h.push(c)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||rl.to||r=r&&e<=r+o.length&&o.between(r,e-r,t-r,i)===!1)return}this.nextLayer.between(e,t,i)}}iter(e=0){return Bi.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return Bi.from(e).goto(t)}static compare(e,t,i,n,r=-1){let o=e.filter(c=>c.maxPoint>0||!c.isEmpty&&c.maxPoint>=r),l=t.filter(c=>c.maxPoint>0||!c.isEmpty&&c.maxPoint>=r),a=Nl(o,l,i),h=new Bt(o,a,r),f=new Bt(l,a,r);i.iterGaps((c,u,d)=>El(h,c,f,u,d,n)),i.empty&&i.length==0&&El(h,0,f,0,0,n)}static eq(e,t,i=0,n){n==null&&(n=999999999);let r=e.filter(f=>!f.isEmpty&&t.indexOf(f)<0),o=t.filter(f=>!f.isEmpty&&e.indexOf(f)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let l=Nl(r,o),a=new Bt(r,l,0).goto(i),h=new Bt(o,l,0).goto(i);for(;;){if(a.to!=h.to||!wr(a.active,h.active)||a.point&&(!h.point||!a.point.eq(h.point)))return!1;if(a.to>n)return!0;a.next(),h.next()}}static spans(e,t,i,n,r=-1){let o=new Bt(e,null,r).goto(t),l=t,a=o.openStart;for(;;){let h=Math.min(o.to,i);if(o.point){let f=o.activeForPoint(o.to),c=o.pointFroml&&(n.span(l,h,o.active,a),a=o.openEnd(h));if(o.to>i)return a+(o.point&&o.to>i?1:0);l=o.to,o.next()}}static of(e,t=!1){let i=new $t;for(let n of e instanceof Pi?[e]:t?sc(e):e)i.add(n.from,n.to,n.value);return i.finish()}};ne.empty=new ne([],[],null,-1);function sc(s){if(s.length>1)for(let e=s[0],t=1;t0)return s.slice().sort(yr);e=i}return s}ne.empty.nextLayer=ne.empty;var $t=class s{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(e){this.chunks.push(new br(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}add(e,t,i){this.addInner(e,t,i)||(this.nextLayer||(this.nextLayer=new s)).add(e,t,i)}addInner(e,t,i){let n=e-this.lastTo||i.startSide-this.last.endSide;if(n<=0&&(e-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return n<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=i,this.lastFrom=e,this.lastTo=t,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let i=t.value.length-1;return this.last=t.value[i],this.lastFrom=t.from[i]+e,this.lastTo=t.to[i]+e,!0}finish(){return this.finishInner(ne.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=ne.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function Nl(s,e,t){let i=new Map;for(let r of s)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&n.push(new Ps(o,t,i,r));return n.length==1?n[0]:new s(n)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let i of this.heap)i.goto(e,t);for(let i=this.heap.length>>1;i>=0;i--)or(this.heap,i);return this.next(),this}forward(e,t){for(let i of this.heap)i.forward(e,t);for(let i=this.heap.length>>1;i>=0;i--)or(this.heap,i);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),or(this.heap,0)}}};function or(s,e){for(let t=s[e];;){let i=(e<<1)+1;if(i>=s.length)break;let n=s[i];if(i+1=0&&(n=s[i+1],i++),t.compare(n)<0)break;s[i]=t,s[e]=n,e=i}}var Bt=class{constructor(e,t,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Bi.from(e,t,i)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){xs(this.active,e),xs(this.activeTo,e),xs(this.activeRank,e),this.minActive=Dl(this.active,this.activeTo)}addActive(e){let t=0,{value:i,to:n,rank:r}=this.cursor;for(;t-1&&(this.activeTo[n]-this.cursor.from||this.active[n].endSide-this.cursor.startSide)<0){if(this.activeTo[n]>e){this.to=this.activeTo[n],this.endSide=this.active[n].endSide;break}this.removeActive(n),i&&xs(i,n)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let r=this.cursor.value;if(!r.point)this.addActive(i),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from=0&&i[n]=0&&!(this.activeRank[i]e||this.activeTo[i]==e&&this.active[i].endSide>=this.point.endSide)&&t.push(this.active[i]);return t.reverse()}openEnd(e){let t=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>e;i--)t++;return t}};function El(s,e,t,i,n,r){s.goto(e),t.goto(i);let o=i+n,l=i,a=i-e;for(;;){let h=s.to+a-t.to||s.endSide-t.endSide,f=h<0?s.to+a:t.to,c=Math.min(f,o);if(s.point||t.point?s.point&&t.point&&(s.point==t.point||s.point.eq(t.point))&&wr(s.activeForPoint(s.to+a),t.activeForPoint(t.to))||r.comparePoint(l,c,s.point,t.point):c>l&&!wr(s.active,t.active)&&r.compareRange(l,c,s.active,t.active),f>o)break;l=f,h<=0&&s.next(),h>=0&&t.next()}}function wr(s,e){if(s.length!=e.length)return!1;for(let t=0;t=e;i--)s[i+1]=s[i];s[e]=t}function Dl(s,e){let t=-1,i=1e9;for(let n=0;n=e)return n;if(n==s.length)break;r+=s.charCodeAt(n)==9?t-r%t:1,n=nt(s,n)}return i===!0?-1:s.length}var vr="\\u037C",Ul=typeof Symbol=="undefined"?"__"+vr:Symbol.for(vr),xr=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Gl=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},Ce=class{constructor(e,t){this.rules=[];let{finish:i}=t||{};function n(o){return/^@/.test(o)?[o]:o.split(/,\\s*/)}function r(o,l,a,h){let f=[],c=/^@(\\w+)\\b/.exec(o[0]),u=c&&c[1]=="keyframes";if(c&&l==null)return a.push(o[0]+";");for(let d in l){let p=l[d];if(/&/.test(d))r(d.split(/,\\s*/).map(m=>o.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,a);else if(p&&typeof p=="object"){if(!c)throw new RangeError("The value of a property ("+d+") should be a primitive value.");r(n(d),p,f,u)}else p!=null&&f.push(d.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(f.length||u)&&a.push((i&&!c&&!h?o.map(i):o).join(", ")+" {"+f.join(" ")+"}")}for(let o in e)r(n(o),e[o],this.rules)}getRules(){return this.rules.join(`\n`)}static newName(){let e=Gl[Ul]||1;return Gl[Ul]=e+1,vr+e.toString(36)}static mount(e,t,i){let n=e[xr],r=i&&i.nonce;n?r&&n.setNonce(r):n=new Ar(e,r),n.mount(Array.isArray(t)?t:[t])}},Jl=new Map,Ar=class{constructor(e,t){this.root=e;let i=e.ownerDocument||e,n=i.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let r=Jl.get(i);if(r)return e[xr]=r;this.sheet=new n.CSSStyleSheet,Jl.set(i,this)}else this.styleTag=i.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[xr]=this}mount(e){let t=this.sheet,i=0,n=0;for(let r=0;r-1&&(this.modules.splice(l,1),n--,l=-1),l==-1){if(this.modules.splice(n++,0,o),t)for(let a=0;a",191:"?",192:"~",219:"{",220:"|",221:"}",222:\'"\'},Nd=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),Ed=typeof navigator!="undefined"&&/MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);for(ee=0;ee<10;ee++)Vt[48+ee]=Vt[96+ee]=String(ee);var ee;for(ee=1;ee<=24;ee++)Vt[ee+111]="F"+ee;var ee;for(ee=65;ee<=90;ee++)Vt[ee]=String.fromCharCode(ee+32),Rs[ee]=String.fromCharCode(ee);var ee;for(Is in Vt)Rs.hasOwnProperty(Is)||(Rs[Is]=Vt[Is]);var Is;function js(s){let e;return s.nodeType==11?e=s.getSelection?s:s.ownerDocument:e=s,e.getSelection()}function ri(s,e){return e?s==e||s.contains(e.nodeType!=1?e.parentNode:e):!1}function oc(s){let e=s.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function Ks(s,e){if(!e.anchorNode)return!1;try{return ri(s,e.anchorNode)}catch(t){return!1}}function Hi(s){return s.nodeType==3?oi(s,0,s.nodeValue.length).getClientRects():s.nodeType==1?s.getClientRects():[]}function zs(s,e,t,i){return t?Yl(s,e,t,i,-1)||Yl(s,e,t,i,1):!1}function Us(s){for(var e=0;;e++)if(s=s.previousSibling,!s)return e}function Yl(s,e,t,i,n){for(;;){if(s==t&&e==i)return!0;if(e==(n<0?0:_i(s))){if(s.nodeName=="DIV")return!1;let r=s.parentNode;if(!r||r.nodeType!=1)return!1;e=Us(s)+(n<0?0:1),s=r}else if(s.nodeType==1){if(s=s.childNodes[e+(n<0?-1:0)],s.nodeType==1&&s.contentEditable=="false")return!1;e=n<0?_i(s):0}else return!1}}function _i(s){return s.nodeType==3?s.nodeValue.length:s.childNodes.length}var xa={left:0,right:0,top:0,bottom:0};function lo(s,e){let t=e?s.left:s.right;return{left:t,right:t,top:s.top,bottom:s.bottom}}function lc(s){return{left:0,right:s.innerWidth,top:0,bottom:s.innerHeight}}function ac(s,e,t,i,n,r,o,l){let a=s.ownerDocument,h=a.defaultView||window;for(let f=s;f;)if(f.nodeType==1){let c,u=f==a.body;if(u)c=lc(h);else{if(f.scrollHeight<=f.clientHeight&&f.scrollWidth<=f.clientWidth){f=f.assignedSlot||f.parentNode;continue}let m=f.getBoundingClientRect();c={left:m.left,right:m.left+f.clientWidth,top:m.top,bottom:m.top+f.clientHeight}}let d=0,p=0;if(n=="nearest")e.top0&&e.bottom>c.bottom+p&&(p=e.bottom-c.bottom+p+o)):e.bottom>c.bottom&&(p=e.bottom-c.bottom+o,t<0&&e.top-p0&&e.right>c.right+d&&(d=e.right-c.right+d+r)):e.right>c.right&&(d=e.right-c.right+r,t<0&&e.leftt.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else if(t.nodeType==11)t=t.host;else break;return null}var Nr=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){this.set(e.anchorNode,e.anchorOffset,e.focusNode,e.focusOffset)}set(e,t,i,n){this.anchorNode=e,this.anchorOffset=t,this.focusNode=i,this.focusOffset=n}},ii=null;function Aa(s){if(s.setActive)return s.setActive();if(ii)return s.focus(ii);let e=[];for(let t=s;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(s.focus(ii==null?{get preventScroll(){return ii={preventScroll:!0},!0}}:void 0),!ii){ii=!1;for(let t=0;tt)return c.domBoundsAround(e,t,h);if(u>=e&&n==-1&&(n=a,r=h),h>t&&c.dom.parentNode==this.dom){o=a,l=f;break}f=u,h=u+c.breakAfter}return{from:r,to:l<0?i+this.length:l,startDOM:(n?this.children[n-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(e=!1){this.dirty|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.dirty|=2),t.dirty&1)return;t.dirty|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.dirty&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,i=ao){this.markDirty();for(let n=e;nthis.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function Ma(s,e,t,i,n,r,o,l,a){let{children:h}=s,f=h.length?h[e]:null,c=r.length?r[r.length-1]:null,u=c?c.breakAfter:o;if(!(e==i&&f&&!o&&!u&&r.length<2&&f.merge(t,n,r.length?c:null,t==0,l,a))){if(i0&&(!o&&r.length&&f.merge(t,f.length,r[0],!1,l,0)?f.breakAfter=r.shift().breakAfter:(t2),B={mac:ta||/Mac/.test(be.platform),windows:/Win/.test(be.platform),linux:/Linux|X11/.test(be.platform),ie:an,ie_version:Ta?Er.documentMode||6:Lr?+Lr[1]:Dr?+Dr[1]:0,gecko:Zl,gecko_version:Zl?+(/Firefox\\/(\\d+)/.exec(be.userAgent)||[0,0])[1]:0,chrome:!!Cr,chrome_version:Cr?+Cr[1]:0,ios:ta,android:/Android\\b/.test(be.userAgent),webkit:ea,safari:Na,webkit_version:ea?+(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:Er.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},uc=256,Ht=class s extends U{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,i){return i&&(!(i instanceof s)||this.length-(t-e)+i.length>uc)?!1:(this.text=this.text.slice(0,e)+(i?i.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new s(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new ae(this.dom,e)}domBoundsAround(e,t,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return Pr(this.dom,e,t)}},ft=class s extends U{constructor(e,t=[],i=0){super(),this.mark=e,this.children=t,this.length=i;for(let n of t)n.setParent(this)}setAttrs(e){if(Ca(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.dirty|=6)}sync(e,t){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,i,n,r,o){return i&&(!(i instanceof s&&i.mark.eq(this.mark))||e&&r<=0||te&&t.push(i=e&&(n=r),i=a,r++}let o=this.length-e;return this.length=e,n>-1&&(this.children.length=n,this.markDirty()),new s(this.mark,t,o)}domAtPos(e){return Pa(this,e)}coordsAt(e,t){return Ia(this,e,t)}};function Pr(s,e,t){let i=s.nodeValue.length;e>i&&(e=i);let n=e,r=e,o=0;e==0&&t<0||e==i&&t>=0?B.chrome||B.gecko||(e?(n--,o=1):r=0)?0:l.length-1];return B.safari&&!o&&a.width==0&&(a=Array.prototype.find.call(l,h=>h.width)||a),o?lo(a,o<0):a||null}var Wi=class s extends U{constructor(e,t,i){super(),this.widget=e,this.length=t,this.side=i,this.prevWidget=null}static create(e,t,i){return new(e.customView||s)(e,t,i)}split(e){let t=s.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,i,n,r,o){return i&&(!(i instanceof s)||!this.widget.compare(i.widget)||e>0&&r<=0||t0)?ae.before(this.dom):ae.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let i=this.dom.getClientRects(),n=null;if(!i.length)return xa;for(let r=e>0?i.length-1:0;n=i[r],!(e>0?r==0:r==i.length-1||n.top0?-1:1);return this.length?n:lo(n,this.side>0)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},Js=class extends Wi{domAtPos(e){let{topView:t,text:i}=this.widget;return t?Br(e,0,t,i,this.length-t.length,(n,r)=>n.domAtPos(r),(n,r)=>new ae(n,Math.min(r,n.nodeValue.length))):new ae(i,Math.min(e,i.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(e,t){let{topView:i,text:n}=this.widget;return i?Da(e,t,i,n,this.length-i.length):Math.min(t,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(e,t){let{topView:i,text:n}=this.widget;return i?Br(e,t,i,n,this.length-i.length,(r,o,l)=>r.coordsAt(o,l),(r,o,l)=>Pr(r,o,l)):Pr(n,e,t)}destroy(){var e;super.destroy(),(e=this.widget.topView)===null||e===void 0||e.destroy()}get isEditable(){return!0}canReuseDOM(){return!0}};function Br(s,e,t,i,n,r,o){if(t instanceof ft){for(let l=t.dom.firstChild;l;l=l.nextSibling){let a=U.get(l);if(a){let h=ri(l,i),f=a.length+(h?n:0);if(s0?ae.before(this.dom):ae.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){let t=this.dom.getBoundingClientRect(),i=dc(this,this.side>0?-1:1);return i&&i.topt.top?{left:t.left,right:t.right,top:i.top,bottom:i.bottom}:t}get overrideDOMText(){return q.empty}get isHidden(){return!0}};Ht.prototype.children=Wi.prototype.children=li.prototype.children=ao;function dc(s,e){let t=s.parent,i=t?t.children.indexOf(s):-1;for(;t&&i>=0;)if(e<0?i>0:ir&&e0;r--){let o=i[r-1];if(o.dom.parentNode==t)return o.domAtPos(o.length)}for(let r=n;r0&&e instanceof ft&&n.length&&(i=n[n.length-1])instanceof ft&&i.mark.eq(e.mark)?Ba(i,e.children[0],t-1):(n.push(e),e.setParent(s)),s.length+=e.length}function Ia(s,e,t){let i=null,n=-1,r=null,o=-1;function l(h,f){for(let c=0,u=0;c=f&&(d.children.length?l(d,f-u):(!r||r instanceof li&&t>0)&&(p>f||u==p&&d.getSide()>0)?(r=d,o=f-u):(u0?3e8:-4e8:t>0?1e8:-1e8,new Wt(e,t,t,i,e.widget||null,!1)}static replace(e){let t=!!e.block,i,n;if(e.isBlockGap)i=-5e8,n=4e8;else{let{start:r,end:o}=Ra(e,t);i=(r?t?-3e8:-1:5e8)-1,n=(o?t?2e8:1:-6e8)+1}return new Wt(e,i,n,t,e.widget||null,!0)}static line(e){return new Ki(e)}static set(e,t=!1){return ne.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};Y.none=ne.empty;var Ys=class s extends Y{constructor(e){let{start:t,end:i}=Ra(e);super(t?-1:5e8,i?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){return this==e||e instanceof s&&this.tagName==e.tagName&&this.class==e.class&&ho(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};Ys.prototype.point=!1;var Ki=class s extends Y{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof s&&this.spec.class==e.spec.class&&ho(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};Ki.prototype.mapMode=de.TrackBefore;Ki.prototype.point=!0;var Wt=class s extends Y{constructor(e,t,i,n,r,o){super(t,i,r,e),this.block=n,this.isReplace=o,this.mapMode=n?t<=0?de.TrackBefore:de.TrackAfter:de.TrackDel}get type(){return this.startSide=5}eq(e){return e instanceof s&&mc(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};Wt.prototype.point=!0;function Ra(s,e=!1){let{inclusiveStart:t,inclusiveEnd:i}=s;return t==null&&(t=s.inclusive),i==null&&(i=s.inclusive),{start:t!=null?t:e,end:i!=null?i:e}}function mc(s,e){return s==e||!!(s&&e&&s.compare(e))}function Fr(s,e,t,i=0){let n=t.length-1;n>=0&&t[n]+i>=s?t[n]=Math.max(t[n],e):t.push(s,e)}var we=class s extends U{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,i,n,r,o){if(i){if(!(i instanceof s))return!1;this.dom||i.transferDOM(this)}return n&&this.setDeco(i?i.attrs:null),Oa(this,e,t,i?i.children:[],r,o),!0}split(e){let t=new s;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i,off:n}=this.childPos(e);n&&(t.append(this.children[i].split(n),0),this.children[i].merge(n,this.children[i].length,null,!1,0,0),i++);for(let r=i;r0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){ho(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){Ba(this,e,t)}addLineDeco(e){let t=e.spec.attributes,i=e.spec.class;t&&(this.attrs=Ir(t,this.attrs||{})),i&&(this.attrs=Ir({class:i},this.attrs||{}))}domAtPos(e){return Pa(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.dirty|=6)}sync(e,t){var i;this.dom?this.dirty&4&&(Ca(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(Rr(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let n=this.dom.lastChild;for(;n&&U.get(n)instanceof ft;)n=n.lastChild;if(!n||!this.length||n.nodeName!="BR"&&((i=U.get(n))===null||i===void 0?void 0:i.isEditable)==!1&&(!B.ios||!this.children.some(r=>r instanceof Ht))){let r=document.createElement("BR");r.cmIgnore=!0,this.dom.appendChild(r)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let i of this.children){if(!(i instanceof Ht)||/[^ -~]/.test(i.text))return null;let n=Hi(i.dom);if(n.length!=1)return null;e+=n[0].width,t=n[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let i=Ia(this,e,t);if(!this.children.length&&i&&this.parent){let{heightOracle:n}=this.parent.view.viewState,r=i.bottom-i.top;if(Math.abs(r-n.lineHeight)<2&&n.textHeight=t){if(r instanceof s)return r;if(o>t)break}n=o+r.breakAfter}return null}},qi=class s extends U{constructor(e,t,i){super(),this.widget=e,this.length=t,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(e,t,i,n,r,o){return i&&(!(i instanceof s)||!this.widget.compare(i.widget)||e>0&&r<=0||t0;){if(this.textOff==this.text.length){let{value:r,lineBreak:o,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=r,this.textOff=0}let n=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-i)),this.getLine().append(Fs(new Ht(this.text.slice(this.textOff,this.textOff+n)),t),i),this.atCursorPos=!0,this.textOff+=n,e-=n,i=0}}span(e,t,i,n){this.buildText(t-e,i,n),this.pos=t,this.openStart<0&&(this.openStart=n)}point(e,t,i,n,r,o){if(this.disallowBlockEffectsFor[o]&&i instanceof Wt){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=t-e;if(i instanceof Wt)if(i.block){let{type:a}=i;a==te.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new qi(i.widget||new Xs("div"),l,a))}else{let a=Wi.create(i.widget||new Xs("span"),l,l?0:i.startSide),h=this.atCursorPos&&!a.isEditable&&r<=n.length&&(e0),f=!a.isEditable&&(en.length||i.startSide<=0),c=this.getLine();this.pendingBuffer==2&&!h&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(n),h&&(c.append(Fs(new li(1),n),r),r=n.length+Math.max(0,r-n.length)),c.append(Fs(a,n),r),this.atCursorPos=f,this.pendingBuffer=f?en.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=n.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=r)}static build(e,t,i,n,r){let o=new s(e,t,i,r);return o.openEnd=ne.spans(n,t,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}};function Fs(s,e){for(let t of e)s=new ft(t,[s],s.length);return s}var Xs=class extends _t{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}},Fa=V.define(),$a=V.define(),Va=V.define(),Ha=V.define(),Vr=V.define(),_a=V.define(),Wa=V.define(),Ka=V.define({combine:s=>s.some(e=>e)}),gc=V.define({combine:s=>s.some(e=>e)}),Qs=class s{constructor(e,t="nearest",i="nearest",n=5,r=5){this.range=e,this.y=t,this.x=i,this.yMargin=n,this.xMargin=r}map(e){return e.empty?this:new s(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}},ia=Z.define({map:(s,e)=>s.map(e)});function ht(s,e,t){let i=s.facet(Ha);i.length?i[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}var hn=V.define({combine:s=>s.length?s[0]:!0}),yc=0,Ii=V.define(),ai=class s{constructor(e,t,i,n){this.id=e,this.create=t,this.domEventHandlers=i,this.extension=n(this)}static define(e,t){let{eventHandlers:i,provide:n,decorations:r}=t||{};return new s(yc++,e,i,o=>{let l=[Ii.of(o)];return r&&l.push(ji.of(a=>{let h=a.plugin(o);return h?r(h):Y.none})),n&&l.push(n(o)),l})}static fromClass(e,t){return s.define(i=>new e(i),t)}},$i=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(i){if(ht(t.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(n){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){ht(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(i){ht(e.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},qa=V.define(),fo=V.define(),ji=V.define(),ja=V.define(),za=V.define(),Ri=V.define(),wt=class s{constructor(e,t,i,n){this.fromA=e,this.toA=t,this.fromB=i,this.toB=n}join(e){return new s(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,i=this;for(;t>0;t--){let n=e[t-1];if(!(n.fromA>i.toA)){if(n.toAf)break;r+=2}if(!a)return i;new s(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),o=a.toA,l=a.toB}}},Zs=class s{constructor(e,t,i){this.view=e,this.state=t,this.transactions=i,this.flags=0,this.startState=e.state,this.changes=ye.empty(this.startState.doc.length);for(let r of i)this.changes=this.changes.compose(r.changes);let n=[];this.changes.iterChangedRanges((r,o,l,a)=>n.push(new wt(r,o,l,a))),this.changedRanges=n}static create(e,t,i){return new s(e,t,i)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},ce=function(s){return s[s.LTR=0]="LTR",s[s.RTL=1]="RTL",s}(ce||(ce={})),Hr=ce.LTR,bc=ce.RTL;function Ua(s){let e=[];for(let t=0;t=t){if(l.level==i)return o;(r<0||(n!=0?n<0?l.fromt:e[r].level>l.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}},G=[];function xc(s,e){let t=s.length,i=e==Hr?1:2,n=e==Hr?2:1;if(!s||i==1&&!vc.test(s))return Ga(t);for(let o=0,l=i,a=i;o=0;u-=3)if(qe[u+1]==-f){let d=qe[u+2],p=d&2?i:d&4?d&1?n:i:0;p&&(G[o]=G[qe[u]]=p),l=u;break}}else{if(qe.length==189)break;qe[l++]=o,qe[l++]=h,qe[l++]=a}else if((c=G[o])==2||c==1){let u=c==i;a=u?0:1;for(let d=l-3;d>=0;d-=3){let p=qe[d+2];if(p&2)break;if(u)qe[d+2]|=2;else{if(p&4)break;qe[d+2]|=4}}}for(let o=0;ol;){let f=h,c=G[--h]!=2;for(;h>l&&c==(G[h-1]!=2);)h--;r.push(new kt(h,f,c?2:1))}else r.push(new kt(l,o,0))}else for(let o=0;o1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=o-1);i=r+o}}readNode(e){if(e.cmIgnore)return;let t=U.get(e),i=t&&t.overrideDOMText;if(i!=null){this.findPointInside(e,i.length);for(let n=i.iter();!n.next().done;)n.lineBreak?this.lineBreak():this.append(n.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let i of this.points)i.node==e&&e.childNodes[i.offset]==t&&(i.pos=this.text.length)}findPointInside(e,t){for(let i of this.points)(e.nodeType==3?i.node==e:e.contains(i.node))&&(i.pos=this.text.length+Math.min(t,i.offset))}};function sa(s){return s.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\\d|SECTION|PRE)$/.test(s.nodeName)}var tn=class{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}},sn=class extends U{constructor(e){super(),this.view=e,this.compositionDeco=Y.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new we],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new wt(0,0,0,e.state.doc.length)],0)}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:o,toA:l})=>lthis.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=Y.none:(e.transactions.length||this.dirty)&&(this.compositionDeco=Mc(this.view,e.changes)),(B.ie||B.chrome)&&!this.compositionDeco.size&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let i=this.decorations,n=this.updateDeco(),r=Tc(i,n,e.changes);return t=wt.extendWithRanges(t,r),this.dirty==0&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t);let{observer:i}=this.view;i.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let r=B.chrome||B.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,r),this.dirty=0,r&&(r.written||i.selectionRange.focusNode!=r.node)&&(this.forceSelection=!0),this.dom.style.height=""});let n=[];if(this.view.viewport.from||this.view.viewport.to=0?e[n]:null;if(!r)break;let{fromA:o,toA:l,fromB:a,toB:h}=r,{content:f,breakAtStart:c,openStart:u,openEnd:d}=$r.build(this.view.state.doc,a,h,this.decorations,this.dynamicDecorationMap),{i:p,off:m}=i.findPos(l,1),{i:g,off:b}=i.findPos(o,-1);Ma(this,g,b,p,m,f,c,u,d)}}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,n=i==this.dom,r=!n&&Ks(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(n||t||r))return;let o=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,a=this.domAtPos(l.anchor),h=l.empty?a:this.domAtPos(l.head);if(B.gecko&&l.empty&&!this.compositionDeco.size&&Cc(a)){let c=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(c,a.node.childNodes[a.offset]||null)),a=h=new ae(c,0),o=!0}let f=this.view.observer.selectionRange;(o||!f.focusNode||!zs(a.node,a.offset,f.anchorNode,f.anchorOffset)||!zs(h.node,h.offset,f.focusNode,f.focusOffset))&&(this.view.observer.ignore(()=>{B.android&&B.chrome&&this.dom.contains(f.focusNode)&&Nc(f.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let c=js(this.view.root);if(c)if(l.empty){if(B.gecko){let u=Oc(a.node,a.offset);if(u&&u!=3){let d=Xa(a.node,a.offset,u==1?1:-1);d&&(a=new ae(d,u==1?0:d.nodeValue.length))}}c.collapse(a.node,a.offset),l.bidiLevel!=null&&f.cursorBidiLevel!=null&&(f.cursorBidiLevel=l.bidiLevel)}else if(c.extend){c.collapse(a.node,a.offset);try{c.extend(h.node,h.offset)}catch(u){}}else{let u=document.createRange();l.anchor>l.head&&([a,h]=[h,a]),u.setEnd(h.node,h.offset),u.setStart(a.node,a.offset),c.removeAllRanges(),c.addRange(u)}r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,h)),this.impreciseAnchor=a.precise?null:new ae(f.anchorNode,f.anchorOffset),this.impreciseHead=h.precise?null:new ae(f.focusNode,f.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view:e}=this,t=e.state.selection.main,i=js(e.root),{anchorNode:n,anchorOffset:r}=e.observer.selectionRange;if(!i||!t.empty||!t.assoc||!i.modify)return;let o=we.find(this,t.head);if(!o)return;let l=o.posAtStart;if(t.head==l||t.head==l+o.length)return;let a=this.coordsAt(t.head,-1),h=this.coordsAt(t.head,1);if(!a||!h||a.bottom>h.top)return;let f=this.domAtPos(t.head+t.assoc);i.collapse(f.node,f.offset),i.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let c=e.observer.selectionRange;e.docView.posFromDOM(c.anchorNode,c.anchorOffset)!=t.from&&i.collapse(n,r)}nearest(e){for(let t=e;t;){let i=U.get(t);if(i&&i.rootView==this)return i;t=t.parentNode}return null}posFromDOM(e,t){let i=this.nearest(e);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(e,t)+i.posAtStart}domAtPos(e){let{i:t,off:i}=this.childCursor().findPos(e,-1);for(;to||e==o&&r.type!=te.WidgetBefore&&r.type!=te.WidgetAfter&&(!n||t==2||this.children[n-1].breakAfter||this.children[n-1].type==te.WidgetBefore&&t>-2))return r.coordsAt(e-o,t);i=o}}measureVisibleLineHeights(e){let t=[],{from:i,to:n}=e,r=this.view.contentDOM.clientWidth,o=r>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==ce.LTR;for(let h=0,f=0;fn)break;if(h>=i){let d=c.dom.getBoundingClientRect();if(t.push(d.height),o){let p=c.dom.lastChild,m=p?Hi(p):[];if(m.length){let g=m[m.length-1],b=a?g.right-d.left:d.right-g.left;b>l&&(l=b,this.minWidth=r,this.minWidthFrom=h,this.minWidthTo=u)}}}h=u+c.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?ce.RTL:ce.LTR}measureTextSize(){for(let r of this.children)if(r instanceof we){let o=r.measureTextSize();if(o)return o}let e=document.createElement("div"),t,i,n;return e.className="cm-line",e.style.width="99999px",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let r=Hi(e.firstChild)[0];t=e.getBoundingClientRect().height,i=r?r.width/27:7,n=r?r.height:t,e.remove()}),{lineHeight:t,charWidth:i,textHeight:n}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Gs(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let i=0,n=0;;n++){let r=n==t.viewports.length?null:t.viewports[n],o=r?r.from-1:this.length;if(o>i){let l=t.lineBlockAt(o).bottom-t.lineBlockAt(i).top;e.push(Y.replace({widget:new nn(l),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!r)break;i=r.to+1}return Y.set(e)}updateDeco(){let e=this.view.state.facet(ji).map((t,i)=>(this.dynamicDecorationMap[i]=typeof t=="function")?t(this.view):t);for(let t=e.length;tt.anchor?-1:1),n;if(!i)return;!t.empty&&(n=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(i={left:Math.min(i.left,n.left),top:Math.min(i.top,n.top),right:Math.max(i.right,n.right),bottom:Math.max(i.bottom,n.bottom)});let r=0,o=0,l=0,a=0;for(let f of this.view.state.facet(za).map(c=>c(this.view)))if(f){let{left:c,right:u,top:d,bottom:p}=f;c!=null&&(r=Math.max(r,c)),u!=null&&(o=Math.max(o,u)),d!=null&&(l=Math.max(l,d)),p!=null&&(a=Math.max(a,p))}let h={left:i.left-r,top:i.top-l,right:i.right+o,bottom:i.bottom+a};ac(this.view.scrollDOM,h,t.head0)i=i.childNodes[n-1],n=_i(i);else break}if(t>=0)for(let i=s,n=e;;){if(i.nodeType==3)return i;if(i.nodeType==1&&n=0)i=i.childNodes[n],n=0;else break}return null}function Oc(s,e){return s.nodeType!=1?0:(e&&s.childNodes[e-1].contentEditable=="false"?1:0)|(e0;){let h=nt(n.text,o,!1);if(i(n.text.slice(h,o))!=a)break;o=h}for(;ls?e.left-s:Math.max(0,s-e.right)}function Lc(s,e){return e.top>s?e.top-s:Math.max(0,s-e.bottom)}function Mr(s,e){return s.tope.top+1}function na(s,e){return es.bottom?{top:s.top,left:s.left,right:s.right,bottom:e}:s}function qr(s,e,t){let i,n,r,o,l=!1,a,h,f,c;for(let p=s.firstChild;p;p=p.nextSibling){let m=Hi(p);for(let g=0;gC||o==C&&r>v){i=p,n=b,r=v,o=C;let M=C?t0?g0)}v==0?t>b.bottom&&(!f||f.bottomb.top)&&(h=p,c=b):f&&Mr(f,b)?f=ra(f,b.bottom):c&&Mr(c,b)&&(c=na(c,b.top))}}if(f&&f.bottom>=t?(i=a,n=f):c&&c.top<=t&&(i=h,n=c),!i)return{node:s,offset:0};let u=Math.max(n.left,Math.min(n.right,e));if(i.nodeType==3)return oa(i,u,t);if(l&&i.contentEditable!="false")return qr(i,u,t);let d=Array.prototype.indexOf.call(s.childNodes,i)+(e>=(n.left+n.right)/2?1:0);return{node:s,offset:d}}function oa(s,e,t){let i=s.nodeValue.length,n=-1,r=1e9,o=0;for(let l=0;lt?f.top-t:t-f.bottom)-1;if(f.left-1<=e&&f.right+1>=e&&c=(f.left+f.right)/2,d=u;if((B.chrome||B.gecko)&&oi(s,l).getBoundingClientRect().left==f.right&&(d=!u),c<=0)return{node:s,offset:l+(d?1:0)};n=l+(d?1:0),r=c}}}return{node:s,offset:n>-1?n:o>0?s.nodeValue.length:0}}function Qa(s,e,t,i=-1){var n,r;let o=s.contentDOM.getBoundingClientRect(),l=o.top+s.viewState.paddingTop,a,{docHeight:h}=s.viewState,{x:f,y:c}=e,u=c-l;if(u<0)return 0;if(u>h)return s.state.doc.length;for(let M=s.defaultLineHeight/2,S=!1;a=s.elementAtHeight(u),a.type!=te.Text;)for(;u=i>0?a.bottom+M:a.top-M,!(u>=0&&u<=h);){if(S)return t?null:0;S=!0,i=-i}c=l+u;let d=a.from;if(ds.viewport.to)return s.viewport.to==s.state.doc.length?s.state.doc.length:t?null:la(s,o,a,f,c);let p=s.dom.ownerDocument,m=s.root.elementFromPoint?s.root:p,g=m.elementFromPoint(f,c);g&&!s.contentDOM.contains(g)&&(g=null),g||(f=Math.max(o.left+1,Math.min(o.right-1,f)),g=m.elementFromPoint(f,c),g&&!s.contentDOM.contains(g)&&(g=null));let b,v=-1;if(g&&((n=s.docView.nearest(g))===null||n===void 0?void 0:n.isEditable)!=!1){if(p.caretPositionFromPoint){let M=p.caretPositionFromPoint(f,c);M&&({offsetNode:b,offset:v}=M)}else if(p.caretRangeFromPoint){let M=p.caretRangeFromPoint(f,c);M&&({startContainer:b,startOffset:v}=M,(!s.contentDOM.contains(b)||B.safari&&Pc(b,v,f)||B.chrome&&Bc(b,v,f))&&(b=void 0))}}if(!b||!s.docView.dom.contains(b)){let M=we.find(s.docView,d);if(!M)return u>a.top+a.height/2?a.to:a.from;({node:b,offset:v}=qr(M.dom,f,c))}let C=s.docView.nearest(b);if(!C)return null;if(C.isWidget&&((r=C.dom)===null||r===void 0?void 0:r.nodeType)==1){let M=C.dom.getBoundingClientRect();return e.ys.defaultLineHeight*1.5){let l=Math.floor((n-t.top)/s.defaultLineHeight);r+=l*s.viewState.heightOracle.lineLength}let o=s.state.sliceDoc(t.from,t.to);return t.from+zl(o,r,s.state.tabSize)}function Pc(s,e,t){let i;if(s.nodeType!=3||e!=(i=s.nodeValue.length))return!1;for(let n=s.nextSibling;n;n=n.nextSibling)if(n.nodeType!=1||n.nodeName!="BR")return!1;return oi(s,i-1,i).getBoundingClientRect().left>t}function Bc(s,e,t){if(e!=0)return!1;for(let n=s;;){let r=n.parentNode;if(!r||r.nodeType!=1||r.firstChild!=n)return!1;if(r.classList.contains("cm-line"))break;n=r}let i=s.nodeType==1?s.getBoundingClientRect():oi(s,0,Math.max(s.nodeValue.length,1)).getBoundingClientRect();return t-i.left>5}function Ic(s,e,t,i){let n=s.state.doc.lineAt(e.head),r=!i||!s.lineWrapping?null:s.coordsAtPos(e.assoc<0&&e.head>n.from?e.head-1:e.head);if(r){let a=s.dom.getBoundingClientRect(),h=s.textDirectionAt(n.from),f=s.posAtCoords({x:t==(h==ce.LTR)?a.right-1:a.left+1,y:(r.top+r.bottom)/2});if(f!=null)return R.cursor(f,t?-1:1)}let o=we.find(s.docView,e.head),l=o?t?o.posAtEnd:o.posAtStart:t?n.to:n.from;return R.cursor(l,t?-1:1)}function aa(s,e,t,i){let n=s.state.doc.lineAt(e.head),r=s.bidiSpans(n),o=s.textDirectionAt(n.from);for(let l=e,a=null;;){let h=Ac(n,r,o,l,t),f=Ja;if(!h){if(n.number==(t?s.state.doc.lines:1))return l;f=`\n`,n=s.state.doc.line(n.number+(t?1:-1)),r=s.bidiSpans(n),h=R.cursor(t?n.from:n.to)}if(a){if(!a(f))return l}else{if(!i)return h;a=i(f)}l=h}}function Rc(s,e,t){let i=s.state.charCategorizer(e),n=i(t);return r=>{let o=i(r);return n==Ke.Space&&(n=o),n==o}}function Fc(s,e,t,i){let n=e.head,r=t?1:-1;if(n==(t?s.state.doc.length:0))return R.cursor(n,e.assoc);let o=e.goalColumn,l,a=s.contentDOM.getBoundingClientRect(),h=s.coordsAtPos(n),f=s.documentTop;if(h)o==null&&(o=h.left-a.left),l=r<0?h.top:h.bottom;else{let d=s.viewState.lineBlockAt(n);o==null&&(o=Math.min(a.right-a.left,s.defaultCharacterWidth*(n-d.from))),l=(r<0?d.top:d.bottom)+f}let c=a.left+o,u=i!=null?i:s.defaultLineHeight>>1;for(let d=0;;d+=10){let p=l+(u+d)*r,m=Qa(s,{x:c,y:p},!1,r);if(pa.bottom||(r<0?mn))return R.cursor(m,e.assoc,void 0,o)}}function Or(s,e,t){let i=s.state.facet(ja).map(n=>n(s));for(;;){let n=!1;for(let r of i)r.between(t.from-1,t.from+1,(o,l,a)=>{t.from>o&&t.fromt.from?R.cursor(o,1):R.cursor(l,-1),n=!0)});if(!n)return t}}var jr=class{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null;let t=(i,n)=>{this.ignoreDuringComposition(n)||n.type=="keydown"&&this.keydown(e,n)||(this.mustFlushObserver(n)&&e.observer.forceFlush(),this.runCustomHandlers(n.type,e,n)?n.preventDefault():i(e,n))};for(let i in ie){let n=ie[i];e.contentDOM.addEventListener(i,r=>{ha(e,r)&&t(n,r)},Ur[i]),this.registeredEvents.push(i)}e.scrollDOM.addEventListener("mousedown",i=>{if(i.target==e.scrollDOM&&i.clientY>e.contentDOM.getBoundingClientRect().bottom&&(t(ie.mousedown,i),!i.defaultPrevented&&i.button==2)){let n=e.contentDOM.style.minHeight;e.contentDOM.style.minHeight="100%",setTimeout(()=>e.contentDOM.style.minHeight=n,200)}}),B.chrome&&B.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,B.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var i;let n;this.customHandlers=[];for(let r of t)if(n=(i=r.update(e).spec)===null||i===void 0?void 0:i.domEventHandlers){this.customHandlers.push({plugin:r.value,handlers:n});for(let o in n)this.registeredEvents.indexOf(o)<0&&o!="scroll"&&(this.registeredEvents.push(o),e.contentDOM.addEventListener(o,l=>{ha(e,l)&&this.runCustomHandlers(o,e,l)&&l.preventDefault()}))}}runCustomHandlers(e,t,i){for(let n of this.customHandlers){let r=n.handlers[e];if(r)try{if(r.call(n.plugin,i,t)||i.defaultPrevented)return!0}catch(o){ht(t.state,o)}}return!1}runScrollHandlers(e,t){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let i of this.customHandlers){let n=i.handlers.scroll;if(n)try{n.call(i.plugin,t,e)}catch(r){ht(e.state,r)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()n.keyCode==t.keyCode))&&!t.ctrlKey||$c.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=i||t,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,ni(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:B.safari&&!B.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}},Za=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],$c="dthko",Vc=[16,17,18,20,91,92,224,225],$s=6;function Vs(s){return Math.max(0,s)*.7+8}var zr=class{constructor(e,t,i,n){this.view=e,this.style=i,this.mustSelect=n,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=hc(e.contentDOM);let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(Q.allowMultipleSelections)&&Hc(e,t),this.dragMove=_c(e,t),this.dragging=Wc(e,t)&&sh(t)==1?null:!1}start(e){this.dragging===!1&&(e.preventDefault(),this.select(e))}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging!==!1)return;this.select(this.lastEvent=e);let i=0,n=0,r=((t=this.scrollParent)===null||t===void 0?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight};e.clientX<=r.left+$s?i=-Vs(r.left-e.clientX):e.clientX>=r.right-$s&&(i=Vs(e.clientX-r.right)),e.clientY<=r.top+$s?n=-Vs(r.top-e.clientY):e.clientY>=r.bottom-$s&&(n=Vs(e.clientY-r.bottom)),this.setScrollSpeed(i,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}select(e){let t=this.style.get(e,this.extend,this.multiple);(this.mustSelect||!t.eq(this.view.state.selection)||t.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:t,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function Hc(s,e){let t=s.state.facet(Fa);return t.length?t[0](e):B.mac?e.metaKey:e.ctrlKey}function _c(s,e){let t=s.state.facet($a);return t.length?t[0](e):B.mac?!e.altKey:!e.ctrlKey}function Wc(s,e){let{main:t}=s.state.selection;if(t.empty)return!1;let i=js(s.root);if(!i||i.rangeCount==0)return!0;let n=i.getRangeAt(0).getClientRects();for(let r=0;r=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function ha(s,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,i;t!=s.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(i=U.get(t))&&i.ignoreEvent(e))return!1;return!0}var ie=Object.create(null),Ur=Object.create(null),eh=B.ie&&B.ie_version<15||B.ios&&B.webkit_version<604;function Kc(s){let e=s.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{s.focus(),t.remove(),th(s,t.value)},50)}function th(s,e){let{state:t}=s,i,n=1,r=t.toText(e),o=r.lines==t.selection.ranges.length;if(Gr!=null&&t.selection.ranges.every(a=>a.empty)&&Gr==r.toString()){let a=-1;i=t.changeByRange(h=>{let f=t.doc.lineAt(h.from);if(f.from==a)return{range:h};a=f.from;let c=t.toText((o?r.line(n++).text:e)+t.lineBreak);return{changes:{from:f.from,insert:c},range:R.cursor(h.from+c.length)}})}else o?i=t.changeByRange(a=>{let h=r.line(n++);return{changes:{from:a.from,to:a.to,insert:h.text},range:R.cursor(a.from+h.length)}}):i=t.replaceSelection(r);s.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}ie.keydown=(s,e)=>{s.inputState.setSelectionOrigin("select"),e.keyCode==27?s.inputState.lastEscPress=Date.now():Vc.indexOf(e.keyCode)<0&&(s.inputState.lastEscPress=0)};ie.touchstart=(s,e)=>{s.inputState.lastTouchTime=Date.now(),s.inputState.setSelectionOrigin("select.pointer")};ie.touchmove=s=>{s.inputState.setSelectionOrigin("select.pointer")};Ur.touchstart=Ur.touchmove={passive:!0};ie.mousedown=(s,e)=>{if(s.observer.flush(),s.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let i of s.state.facet(Va))if(t=i(s,e),t)break;if(!t&&e.button==0&&(t=zc(s,e)),t){let i=s.root.activeElement!=s.contentDOM;s.inputState.startMouseSelection(new zr(s,e,t,i)),i&&s.observer.ignore(()=>Aa(s.contentDOM)),s.inputState.mouseSelection&&s.inputState.mouseSelection.start(e)}};function fa(s,e,t,i){if(i==1)return R.cursor(e,t);if(i==2)return Ec(s.state,e,t);{let n=we.find(s.docView,e),r=s.state.doc.lineAt(n?n.posAtEnd:e),o=n?n.posAtStart:r.from,l=n?n.posAtEnd:r.to;return ls>=e.top&&s<=e.bottom,ca=(s,e,t)=>ih(e,t)&&s>=t.left&&s<=t.right;function qc(s,e,t,i){let n=we.find(s.docView,e);if(!n)return 1;let r=e-n.posAtStart;if(r==0)return 1;if(r==n.length)return-1;let o=n.coordsAt(r,-1);if(o&&ca(t,i,o))return-1;let l=n.coordsAt(r,1);return l&&ca(t,i,l)?1:o&&ih(i,o)?-1:1}function ua(s,e){let t=s.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:qc(s,t,e.clientX,e.clientY)}}var jc=B.ie&&B.ie_version<=11,da=null,pa=0,ma=0;function sh(s){if(!jc)return s.detail;let e=da,t=ma;return da=s,ma=Date.now(),pa=!e||t>Date.now()-400&&Math.abs(e.clientX-s.clientX)<2&&Math.abs(e.clientY-s.clientY)<2?(pa+1)%3:1}function zc(s,e){let t=ua(s,e),i=sh(e),n=s.state.selection;return{update(r){r.docChanged&&(t.pos=r.changes.mapPos(t.pos),n=n.map(r.changes))},get(r,o,l){let a=ua(s,r),h,f=fa(s,a.pos,a.bias,i);if(t.pos!=a.pos&&!o){let c=fa(s,t.pos,t.bias,i),u=Math.min(c.from,f.from),d=Math.max(c.to,f.to);f=u1&&(h=Uc(n,a.pos))?h:l?n.addRange(f):R.create([f])}}}function Uc(s,e){for(let t=0;t=e)return R.create(s.ranges.slice(0,t).concat(s.ranges.slice(t+1)),s.mainIndex==t?0:s.mainIndex-(s.mainIndex>t?1:0))}return null}ie.dragstart=(s,e)=>{let{selection:{main:t}}=s.state,{mouseSelection:i}=s.inputState;i&&(i.dragging=t),e.dataTransfer&&(e.dataTransfer.setData("Text",s.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove")};function ga(s,e,t,i){if(!t)return;let n=s.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:r}=s.inputState,o=i&&r&&r.dragging&&r.dragMove?{from:r.dragging.from,to:r.dragging.to}:null,l={from:n,insert:t},a=s.state.changes(o?[o,l]:l);s.focus(),s.dispatch({changes:a,selection:{anchor:a.mapPos(n,-1),head:a.mapPos(n,1)},userEvent:o?"move.drop":"input.drop"})}ie.drop=(s,e)=>{if(!e.dataTransfer)return;if(s.state.readOnly)return e.preventDefault();let t=e.dataTransfer.files;if(t&&t.length){e.preventDefault();let i=Array(t.length),n=0,r=()=>{++n==t.length&&ga(s,e,i.filter(o=>o!=null).join(s.state.lineBreak),!1)};for(let o=0;o{/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(l.result)||(i[o]=l.result),r()},l.readAsText(t[o])}}else ga(s,e,e.dataTransfer.getData("Text"),!0)};ie.paste=(s,e)=>{if(s.state.readOnly)return e.preventDefault();s.observer.flush();let t=eh?null:e.clipboardData;t?(th(s,t.getData("text/plain")||t.getData("text/uri-text")),e.preventDefault()):Kc(s)};function Gc(s,e){let t=s.dom.parentNode;if(!t)return;let i=t.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=e,i.focus(),i.selectionEnd=e.length,i.selectionStart=0,setTimeout(()=>{i.remove(),s.focus()},50)}function Jc(s){let e=[],t=[],i=!1;for(let n of s.selection.ranges)n.empty||(e.push(s.sliceDoc(n.from,n.to)),t.push(n));if(!e.length){let n=-1;for(let{from:r}of s.selection.ranges){let o=s.doc.lineAt(r);o.number>n&&(e.push(o.text),t.push({from:o.from,to:Math.min(s.doc.length,o.to+1)})),n=o.number}i=!0}return{text:e.join(s.lineBreak),ranges:t,linewise:i}}var Gr=null;ie.copy=ie.cut=(s,e)=>{let{text:t,ranges:i,linewise:n}=Jc(s.state);if(!t&&!n)return;Gr=n?t:null;let r=eh?null:e.clipboardData;r?(e.preventDefault(),r.clearData(),r.setData("text/plain",t)):Gc(s,t),e.type=="cut"&&!s.state.readOnly&&s.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"})};var nh=ot.define();function rh(s,e){let t=[];for(let i of s.facet(Wa)){let n=i(s,e);n&&t.push(n)}return t?s.update({effects:t,annotations:nh.of(!0)}):null}function oh(s){setTimeout(()=>{let e=s.hasFocus;if(e!=s.inputState.notifiedFocused){let t=rh(s.state,e);t?s.dispatch(t):s.update([])}},10)}ie.focus=s=>{s.inputState.lastFocusTime=Date.now(),!s.scrollDOM.scrollTop&&(s.inputState.lastScrollTop||s.inputState.lastScrollLeft)&&(s.scrollDOM.scrollTop=s.inputState.lastScrollTop,s.scrollDOM.scrollLeft=s.inputState.lastScrollLeft),oh(s)};ie.blur=s=>{s.observer.clearSelectionRange(),oh(s)};ie.compositionstart=ie.compositionupdate=s=>{s.inputState.compositionFirstChange==null&&(s.inputState.compositionFirstChange=!0),s.inputState.composing<0&&(s.inputState.composing=0)};ie.compositionend=s=>{s.inputState.composing=-1,s.inputState.compositionEndedAt=Date.now(),s.inputState.compositionPendingKey=!0,s.inputState.compositionPendingChange=s.observer.pendingRecords().length>0,s.inputState.compositionFirstChange=null,B.chrome&&B.android&&s.observer.flushSoon(),setTimeout(()=>{s.inputState.composing<0&&s.docView.compositionDeco.size&&s.update([])},50)};ie.contextmenu=s=>{s.inputState.lastContextMenu=Date.now()};ie.beforeinput=(s,e)=>{var t;let i;if(B.chrome&&B.android&&(i=Za.find(n=>n.inputType==e.inputType))&&(s.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let n=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var r;(((r=window.visualViewport)===null||r===void 0?void 0:r.height)||0)>n+10&&s.hasFocus&&(s.contentDOM.blur(),s.focus())},100)}};var ya=["pre-wrap","normal","pre-line","break-spaces"],Jr=class{constructor(e){this.lineWrapping=e,this.doc=q.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let i=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((t-e-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return ya.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let i=0;i-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=t,this.charWidth=i,this.textHeight=n,this.lineLength=r,a){this.heightSamples={};for(let h=0;h0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>qs&&(e.heightChanged=!0),this.height=t)}replace(e,t,i){return s.of(i)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,i,n){let r=this,o=i.doc;for(let l=n.length-1;l>=0;l--){let{fromA:a,toA:h,fromB:f,toB:c}=n[l],u=r.lineAt(a,z.ByPosNoHeight,i.setDoc(t),0,0),d=u.to>=h?u:r.lineAt(h,z.ByPosNoHeight,i,0,0);for(c+=d.to-h,h=d.to;l>0&&u.from<=n[l-1].toA;)a=n[l-1].fromA,f=n[l-1].fromB,l--,ar*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),i+=1+l.break,n-=l.size}else if(r>n*2){let l=e[i];l.break?e.splice(i,1,l.left,null,l.right):e.splice(i,1,l.left,l.right),i+=2+l.break,r-=l.size}else break;else if(n=r&&o(this.blockAt(0,i,n,r))}updateHeight(e,t=0,i=!1,n){return n&&n.from<=t&&n.more&&this.setHeight(e,n.heights[n.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},Me=class s extends rn{constructor(e,t){super(e,t,te.Text),this.collapsed=0,this.widgetHeight=0}replace(e,t,i){let n=i[0];return i.length==1&&(n instanceof s||n instanceof St&&n.flags&4)&&Math.abs(this.length-n.length)<10?(n instanceof St?n=new s(n.length,this.height):n.height=this.height,this.outdated||(n.outdated=!1),n):ke.of(i)}updateHeight(e,t=0,i=!1,n){return n&&n.from<=t&&n.more?this.setHeight(e,n.heights[n.index++]):(i||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},St=class s extends ke{constructor(e){super(e,0)}heightMetrics(e,t){let i=e.doc.lineAt(t).number,n=e.doc.lineAt(t+this.length).number,r=n-i+1,o,l=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*r);o=a/r,this.length>r+1&&(l=(this.height-a)/(this.length-r-1))}else o=this.height/r;return{firstLine:i,lastLine:n,perLine:o,perChar:l}}blockAt(e,t,i,n){let{firstLine:r,lastLine:o,perLine:l,perChar:a}=this.heightMetrics(t,n);if(t.lineWrapping){let h=n+Math.round(Math.max(0,Math.min(1,(e-i)/this.height))*this.length),f=t.doc.lineAt(h),c=l+f.length*a,u=Math.max(i,e-c/2);return new at(f.from,f.length,u,c,te.Text)}else{let h=Math.max(0,Math.min(o-r,Math.floor((e-i)/l))),{from:f,length:c}=t.doc.line(r+h);return new at(f,c,i+l*h,l,te.Text)}}lineAt(e,t,i,n,r){if(t==z.ByHeight)return this.blockAt(e,i,n,r);if(t==z.ByPosNoHeight){let{from:d,to:p}=i.doc.lineAt(e);return new at(d,p-d,0,0,te.Text)}let{firstLine:o,perLine:l,perChar:a}=this.heightMetrics(i,r),h=i.doc.lineAt(e),f=l+h.length*a,c=h.number-o,u=n+l*c+a*(h.from-r-c);return new at(h.from,h.length,Math.max(n,Math.min(u,n+this.height-f)),f,te.Text)}forEachLine(e,t,i,n,r,o){e=Math.max(e,r),t=Math.min(t,r+this.length);let{firstLine:l,perLine:a,perChar:h}=this.heightMetrics(i,r);for(let f=e,c=n;f<=t;){let u=i.doc.lineAt(f);if(f==e){let p=u.number-l;c+=a*p+h*(e-r-p)}let d=a+h*u.length;o(new at(u.from,u.length,c,d,te.Text)),c+=d,f=u.to+1}}replace(e,t,i){let n=this.length-t;if(n>0){let r=i[i.length-1];r instanceof s?i[i.length-1]=new s(r.length+n):i.push(null,new s(n-1))}if(e>0){let r=i[0];r instanceof s?i[0]=new s(e+r.length):i.unshift(new s(e-1),null)}return ke.of(i)}decomposeLeft(e,t){t.push(new s(e-1),null)}decomposeRight(e,t){t.push(null,new s(this.length-e-1))}updateHeight(e,t=0,i=!1,n){let r=t+this.length;if(n&&n.from<=t+this.length&&n.more){let o=[],l=Math.max(t,n.from),a=-1;for(n.from>t&&o.push(new s(n.from-t-1).updateHeight(e,t));l<=r&&n.more;){let f=e.doc.lineAt(l).length;o.length&&o.push(null);let c=n.heights[n.index++];a==-1?a=c:Math.abs(c-a)>=qs&&(a=-2);let u=new Me(f,c);u.outdated=!1,o.push(u),l+=f+1}l<=r&&o.push(null,new s(r-l).updateHeight(e,l));let h=ke.of(o);return(a<0||Math.abs(h.height-this.height)>=qs||Math.abs(a-this.heightMetrics(e,t).perLine)>=qs)&&(e.heightChanged=!0),h}else(i||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},Xr=class extends ke{constructor(e,t,i){super(e.length+t+i.length,e.height+i.height,t|(e.outdated||i.outdated?2:0)),this.left=e,this.right=i,this.size=e.size+i.size}get break(){return this.flags&1}blockAt(e,t,i,n){let r=i+this.left.height;return el))return h;let f=t==z.ByPosNoHeight?z.ByPosNoHeight:z.ByPos;return a?h.join(this.right.lineAt(l,f,i,o,l)):this.left.lineAt(l,f,i,n,r).join(h)}forEachLine(e,t,i,n,r,o){let l=n+this.left.height,a=r+this.left.length+this.break;if(this.break)e=a&&this.right.forEachLine(e,t,i,l,a,o);else{let h=this.lineAt(a,z.ByPos,i,n,r);e=e&&h.from<=t&&o(h),t>h.to&&this.right.forEachLine(h.to+1,t,i,l,a,o)}}replace(e,t,i){let n=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-n,t-n,i));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let l of i)r.push(l);if(e>0&&ba(r,o-1),t=i&&t.push(null)),e>i&&this.right.decomposeLeft(e-i,t)}decomposeRight(e,t){let i=this.left.length,n=i+this.break;if(e>=n)return this.right.decomposeRight(e-n,t);e2*t.size||t.size>2*e.size?ke.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,i=!1,n){let{left:r,right:o}=this,l=t+r.length+this.break,a=null;return n&&n.from<=t+r.length&&n.more?a=r=r.updateHeight(e,t,i,n):r.updateHeight(e,t,i),n&&n.from<=l+o.length&&n.more?a=o=o.updateHeight(e,l,i,n):o.updateHeight(e,l,i),a?this.balanced(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function ba(s,e){let t,i;s[e]==null&&(t=s[e-1])instanceof St&&(i=s[e+1])instanceof St&&s.splice(e-1,3,new St(t.length+1+i.length))}var Yc=5,Qr=class s{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let i=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof Me?n.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Me(i-this.pos,-1)),this.writtenTo=i,t>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,i){if(e=Yc)&&this.addLineDeco(n,r)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new Me(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let i=new St(t-e);return this.oracle.doc.lineAt(e).to==t&&(i.flags|=4),i}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Me)return e;let t=new Me(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine(),e.type==te.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,e.type!=te.WidgetBefore&&(this.covering=e)}addLineDeco(e,t){let i=this.ensureLine();i.length+=t,i.collapsed+=t,i.widgetHeight=Math.max(i.widgetHeight,e),this.writtenTo=this.pos=this.pos+t}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof Me)&&!this.isCovered?this.nodes.push(new Me(0,-1)):(this.writtenTof.clientHeight||f.scrollWidth>f.clientWidth)&&c.overflow!="visible"){let u=f.getBoundingClientRect();r=Math.max(r,u.left),o=Math.min(o,u.right),l=Math.max(l,u.top),a=h==s.parentNode?u.bottom:Math.min(a,u.bottom)}h=c.position=="absolute"||c.position=="fixed"?f.offsetParent:f.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:r-t.left,right:Math.max(r,o)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function Zc(s,e){let t=s.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var Vi=class{constructor(e,t,i){this.from=e,this.to=t,this.size=i}static same(e,t){if(e.length!=t.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new Jr(t),this.stateDeco=e.facet(ji).filter(i=>typeof i!="function"),this.heightMap=ke.empty().applyChanges(this.stateDeco,q.empty,this.heightOracle.setDoc(e.doc),[new wt(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Y.set(this.lineGaps.map(i=>i.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let i=0;i<=1;i++){let n=i?t.head:t.anchor;if(!e.some(({from:r,to:o})=>n>=r&&n<=o)){let{from:r,to:o}=this.lineBlockAt(n);e.push(new si(r,o))}}this.viewports=e.sort((i,n)=>i.from-n.from),this.scaler=this.heightMap.height<=7e6?wa:new to(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:Fi(e,this.scaler))})}update(e,t=null){this.state=e.state;let i=this.stateDeco;this.stateDeco=this.state.facet(ji).filter(h=>typeof h!="function");let n=e.changedRanges,r=wt.extendWithRanges(n,Xc(i,this.stateDeco,e?e.changes:ye.empty(this.state.doc.length))),o=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),this.heightMap.height!=o&&(e.flags|=2);let l=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let a=!e.changes.empty||e.flags&2||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(gc)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,i=window.getComputedStyle(t),n=this.heightOracle,r=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?ce.RTL:ce.LTR;let o=this.heightOracle.mustRefreshForWrapping(r),l=t.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let h=0,f=0,c=parseInt(i.paddingTop)||0,u=parseInt(i.paddingBottom)||0;(this.paddingTop!=c||this.paddingBottom!=u)&&(this.paddingTop=c,this.paddingBottom=u,h|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(n.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=8);let d=(this.printing?Zc:Qc)(t,this.paddingTop),p=d.top-this.pixelViewport.top,m=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let b=l.width;if((this.contentDOMWidth!=b||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,h|=8),a){let C=e.docView.measureVisibleLineHeights(this.viewport);if(n.mustRefreshForHeights(C)&&(o=!0),o||n.lineWrapping&&Math.abs(b-this.contentDOMWidth)>n.charWidth){let{lineHeight:M,charWidth:S,textHeight:w}=e.docView.measureTextSize();o=M>0&&n.refresh(r,M,S,w,b/S,C),o&&(e.docView.minWidth=0,h|=8)}p>0&&m>0?f=Math.max(p,m):p<0&&m<0&&(f=Math.min(p,m)),n.heightChanged=!1;for(let M of this.viewports){let S=M.from==this.viewport.from?C:e.docView.measureVisibleLineHeights(M);this.heightMap=(o?ke.empty().applyChanges(this.stateDeco,q.empty,this.heightOracle,[new wt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(n,0,o,new Yr(M.from,S))}n.heightChanged&&(h|=2)}let v=!this.viewportIsAppropriate(this.viewport,f)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return v&&(this.viewport=this.getViewport(f,this.scrollTarget)),this.updateForViewport(),(h&2||v)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let i=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),n=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,a=new si(n.lineAt(o-i*1e3,z.ByHeight,r,0,0).from,n.lineAt(l+(1-i)*1e3,z.ByHeight,r,0,0).to);if(t){let{head:h}=t.range;if(ha.to){let f=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),c=n.lineAt(h,z.ByPos,r,0,0),u;t.y=="center"?u=(c.top+c.bottom)/2-f/2:t.y=="start"||t.y=="nearest"&&h=l+Math.max(10,Math.min(i,250)))&&n>o-2*1e3&&r>1,o=n<<1;if(this.defaultTextDirection!=ce.LTR&&!i)return[];let l=[],a=(h,f,c,u)=>{if(f-hh&&gg.from>=c.from&&g.to<=c.to&&Math.abs(g.from-h)g.fromb));if(!m){if(fg.from<=f&&g.to>=f)){let g=t.moveToLineBoundary(R.cursor(f),!1,!0).head;g>h&&(f=g)}m=new Vi(h,f,this.gapSize(c,h,f,u))}l.push(m)};for(let h of this.viewportLines){if(h.lengthh.from&&a(h.from,u,h,f),dt.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];ne.spans(e,this.viewport.from,this.viewport.to,{span(n,r){t.push({from:n,to:r})},point(){}},20);let i=t.length!=this.visibleRanges.length||this.visibleRanges.some((n,r)=>n.from!=t[r].from||n.to!=t[r].to);return this.visibleRanges=t,i?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Fi(this.heightMap.lineAt(e,z.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return Fi(this.heightMap.lineAt(this.scaler.fromDOM(e),z.ByHeight,this.heightOracle,0,0),this.scaler)}elementAtHeight(e){return Fi(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},si=class{constructor(e,t){this.from=e,this.to=t}};function eu(s,e,t){let i=[],n=s,r=0;return ne.spans(t,s,e,{span(){},point(o,l){o>n&&(i.push({from:n,to:o}),r+=o-n),n=l}},20),n=1)return e[e.length-1].to;let i=Math.floor(s*t);for(let n=0;;n++){let{from:r,to:o}=e[n],l=o-r;if(i<=l)return r+i;i-=l}}function _s(s,e){let t=0;for(let{from:i,to:n}of s.ranges){if(e<=n){t+=e-i;break}t+=n-i}return t/s.total}function tu(s,e){for(let t of s)if(e(t))return t}var wa={toDOM(s){return s},fromDOM(s){return s},scale:1},to=class{constructor(e,t,i){let n=0,r=0,o=0;this.viewports=i.map(({from:l,to:a})=>{let h=t.lineAt(l,z.ByPos,e,0,0).top,f=t.lineAt(a,z.ByPos,e,0,0).bottom;return n+=f-h,{from:l,to:a,top:h,bottom:f,domTop:0,domBottom:0}}),this.scale=(7e6-n)/(t.height-n);for(let l of this.viewports)l.domTop=o+(l.top-r)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),r=l.bottom}toDOM(e){for(let t=0,i=0,n=0;;t++){let r=tFi(n,e)):s.type)}var Ws=V.define({combine:s=>s.join(" ")}),io=V.define({combine:s=>s.indexOf(!0)>-1}),so=Ce.newName(),lh=Ce.newName(),ah=Ce.newName(),hh={"&light":"."+lh,"&dark":"."+ah};function no(s,e,t){return new Ce(e,{finish(i){return/&/.test(i)?i.replace(/&\\w*/,n=>{if(n=="&")return s;if(!t||!t[n])throw new RangeError(`Unsupported selector: ${n}`);return t[n]}):s+" "+i}})}var iu=no("."+so,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url(\'data:image/svg+xml,\')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},hh),ro=class{constructor(e,t,i,n){this.typeOver=n,this.bounds=null,this.text="";let{impreciseHead:r,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,i,0))){let l=r||o?[]:nu(e),a=new en(l,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=ru(l,this.bounds.from)}else{let l=e.observer.selectionRange,a=r&&r.node==l.focusNode&&r.offset==l.focusOffset||!ri(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),h=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!ri(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset);this.newSel=R.single(h,a)}}};function fh(s,e){let t,{newSel:i}=e,n=s.state.selection.main;if(e.bounds){let{from:r,to:o}=e.bounds,l=n.from,a=null;(s.inputState.lastKeyCode===8&&s.inputState.lastKeyTime>Date.now()-100||B.android&&e.text.length=n.from&&t.to<=n.to&&(t.from!=n.from||t.to!=n.to)&&n.to-n.from-(t.to-t.from)<=4?t={from:n.from,to:n.to,insert:s.state.doc.slice(n.from,t.from).append(t.insert).append(s.state.doc.slice(t.to,n.to))}:(B.mac||B.android)&&t&&t.from==t.to&&t.from==n.head-1&&/^\\. ?$/.test(t.insert.toString())&&s.contentDOM.getAttribute("autocorrect")=="off"?(i&&t.insert.length==2&&(i=R.single(i.main.anchor-1,i.main.head-1)),t={from:n.from,to:n.to,insert:q.of([" "])}):B.chrome&&t&&t.from==t.to&&t.from==n.head&&t.insert.toString()==`\n `&&s.lineWrapping&&(i&&(i=R.single(i.main.anchor-1,i.main.head-1)),t={from:n.from,to:n.to,insert:q.of([" "])}),t){let r=s.state;if(B.ios&&s.inputState.flushIOSKey(s)||B.android&&(t.from==n.from&&t.to==n.to&&t.insert.length==1&&t.insert.lines==2&&ni(s.contentDOM,"Enter",13)||t.from==n.from-1&&t.to==n.to&&t.insert.length==0&&ni(s.contentDOM,"Backspace",8)||t.from==n.from&&t.to==n.to+1&&t.insert.length==0&&ni(s.contentDOM,"Delete",46)))return!0;let o=t.insert.toString();if(s.state.facet(_a).some(h=>h(s,t.from,t.to,o)))return!0;s.inputState.composing>=0&&s.inputState.composing++;let l;if(t.from>=n.from&&t.to<=n.to&&t.to-t.from>=(n.to-n.from)/3&&(!i||i.main.empty&&i.main.from==t.from+t.insert.length)&&s.inputState.composing<0){let h=n.fromt.to?r.sliceDoc(t.to,n.to):"";l=r.replaceSelection(s.state.toText(h+t.insert.sliceString(0,void 0,s.state.lineBreak)+f))}else{let h=r.changes(t),f=i&&i.main.to<=h.newLength?i.main:void 0;if(r.selection.ranges.length>1&&s.inputState.composing>=0&&t.to<=n.to&&t.to>=n.to-10){let c=s.state.sliceDoc(t.from,t.to),u=Ya(s)||s.state.doc.lineAt(n.head),d=n.to-t.to,p=n.to-n.from;l=r.changeByRange(m=>{if(m.from==n.from&&m.to==n.to)return{changes:h,range:f||m.map(h)};let g=m.to-d,b=g-c.length;if(m.to-m.from!=p||s.state.sliceDoc(b,g)!=c||u&&m.to>=u.from&&m.from<=u.to)return{range:m};let v=r.changes({from:b,to:g,insert:t.insert}),C=m.to-n.to;return{changes:v,range:f?R.range(Math.max(0,f.anchor+C),Math.max(0,f.head+C)):m.map(v)}})}else l={changes:h,selection:f&&r.selection.replaceRange(f)}}let a="input.type";return(s.composing||s.inputState.compositionPendingChange&&s.inputState.compositionEndedAt>Date.now()-50)&&(s.inputState.compositionPendingChange=!1,a+=".compose",s.inputState.compositionFirstChange&&(a+=".start",s.inputState.compositionFirstChange=!1)),s.dispatch(l,{scrollIntoView:!0,userEvent:a}),!0}else if(i&&!i.main.eq(n)){let r=!1,o="select";return s.inputState.lastSelectionTime>Date.now()-50&&(s.inputState.lastSelectionOrigin=="select"&&(r=!0),o=s.inputState.lastSelectionOrigin),s.dispatch({selection:i,scrollIntoView:r,userEvent:o}),!0}else return!1}function su(s,e,t,i){let n=Math.min(s.length,e.length),r=0;for(;r0&&l>0&&s.charCodeAt(o-1)==e.charCodeAt(l-1);)o--,l--;if(i=="end"){let a=Math.max(0,r-Math.min(o,l));t-=o+a-r}if(o=o?r-t:0;r-=a,l=r+(l-o),o=r}else if(l=l?r-t:0;r-=a,o=r+(o-l),l=r}return{from:r,toA:o,toB:l}}function nu(s){let e=[];if(s.root.activeElement!=s.contentDOM)return e;let{anchorNode:t,anchorOffset:i,focusNode:n,focusOffset:r}=s.observer.selectionRange;return t&&(e.push(new tn(t,i)),(n!=t||r!=i)&&e.push(new tn(n,r))),e}function ru(s,e){if(s.length==0)return null;let t=s[0].pos,i=s.length==2?s[1].pos:t;return t>-1&&i>-1?R.single(t+e,i+e):null}var ou={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Tr=B.ie&&B.ie_version<=11,oo=class{constructor(e){this.view=e,this.active=!1,this.selectionRange=new Nr,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let i of t)this.queue.push(i);(B.ie&&B.ie_version<=11||B.ios&&e.composing)&&t.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Tr&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,i)=>t!=e[i]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,n=this.selectionRange;if(i.state.facet(hn)?i.root.activeElement!=this.dom:!Ks(i.dom,n))return;let r=n.anchorNode&&i.docView.nearest(n.anchorNode);if(r&&r.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(B.ie&&B.ie_version<=11||B.android&&B.chrome)&&!i.state.selection.main.empty&&n.focusNode&&zs(n.focusNode,n.focusOffset,n.anchorNode,n.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=B.safari&&e.root.nodeType==11&&oc(this.dom.ownerDocument)==this.dom&&lu(this.view)||js(e.root);if(!t||this.selectionRange.eq(t))return!1;let i=Ks(this.dom,t);return i&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),!this.flush()&&r.force&&ni(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(n)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,i=-1,n=!1;for(let r of e){let o=this.readMutation(r);o&&(o.typeOver&&(n=!0),t==-1?{from:t,to:i}=o:(t=Math.min(o.from,t),i=Math.max(o.to,i)))}return{from:t,to:i,typeOver:n}}readChange(){let{from:e,to:t,typeOver:i}=this.processRecords(),n=this.selectionChanged&&Ks(this.dom,this.selectionRange);return e<0&&!n?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new ro(this.view,e,t,i))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let i=this.view.state,n=fh(this.view,t);return this.view.state==i&&this.view.update([]),n}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.dirty|=4),e.type=="childList"){let i=ka(t,e.previousSibling||e.target.previousSibling,-1),n=ka(t,e.nextSibling||e.target.nextSibling,1);return{from:i?t.posAfter(i):t.posAtStart,to:n?t.posBefore(n):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,i,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect(),(n=this.resizeContent)===null||n===void 0||n.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}};function ka(s,e,t){for(;e;){let i=U.get(e);if(i&&i.parent==s)return i;let n=e.parentNode;e=n!=s.dom?n:t>0?e.nextSibling:e.previousSibling}return null}function lu(s){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(s.contentDOM.addEventListener("beforeinput",t,!0),s.dom.ownerDocument.execCommand("indent"),s.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let i=e.startContainer,n=e.startOffset,r=e.endContainer,o=e.endOffset,l=s.docView.domAtPos(s.state.selection.main.anchor);return zs(l.node,l.offset,r,o)&&([i,n,r,o]=[r,o,i,n]),{anchorNode:i,anchorOffset:n,focusNode:r,focusOffset:o}}var K=class s{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||fc(e.parent)||document,this.viewState=new on(e.state||Q.create(e)),this.plugins=this.state.facet(Ii).map(t=>new $i(t));for(let t of this.plugins)t.update(this);this.observer=new oo(this),this.inputState=new jr(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new sn(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){this._dispatch(e.length==1&&e[0]instanceof pe?e[0]:this.state.update(...e))}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,i=!1,n,r=this.state;for(let u of e){if(u.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn\'t start from the previous state.");r=u.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,l=0,a=null;e.some(u=>u.annotation(nh))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=rh(r,o),a||(l=1));let h=this.observer.delayedAndroidKey,f=null;if(h?(this.observer.clearDelayedAndroidKey(),f=this.observer.readChange(),(f&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(f=null)):this.observer.clear(),r.facet(Q.phrases)!=this.state.facet(Q.phrases))return this.setState(r);n=Zs.create(this,r,e),n.flags|=l;let c=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(c&&(c=c.map(u.changes)),u.scrollIntoView){let{main:d}=u.state.selection;c=new Qs(d.empty?d:R.cursor(d.head,d.head>d.anchor?-1:1))}for(let d of u.effects)d.is(ia)&&(c=d.value)}this.viewState.update(n,c),this.bidiCache=ln.update(this.bidiCache,n.changes),n.empty||(this.updatePlugins(n),this.inputState.update(n)),t=this.docView.update(n),this.state.facet(Ri)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(n.startState.facet(Ws)!=n.state.facet(Ws)&&(this.viewState.mustMeasureContent=!0),(t||i||c||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!n.empty)for(let u of this.state.facet(Vr))u(n);(a||f)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),f&&!fh(this,f)&&h.force&&ni(this.contentDOM,h.key,h.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new on(e),this.plugins=e.facet(Ii).map(i=>new $i(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView=new sn(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Ii),i=e.state.facet(Ii);if(t!=i){let n=[];for(let r of i){let o=t.indexOf(r);if(o<0)n.push(new $i(r));else{let l=this.plugins[o];l.mustUpdate=e,n.push(l)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=n,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let n of this.plugins)n.mustUpdate=e;for(let n=0;n-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,{scrollHeight:i,scrollTop:n,clientHeight:r}=this.scrollDOM,o=n>i-r-4?i:n;try{for(let l=0;;l++){this.updateState=1;let a=this.viewport,h=this.viewState.lineBlockAtHeight(o),f=this.viewState.measure(this);if(!f&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];f&4||([this.measureRequests,c]=[c,this.measureRequests]);let u=c.map(g=>{try{return g.read(this)}catch(b){return ht(this.state,b),Sa}}),d=Zs.create(this,this.state,[]),p=!1,m=!1;d.flags|=f,t?t.flags|=f:t=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),p=this.docView.update(d));for(let g=0;g1||g<-1)&&(this.scrollDOM.scrollTop+=g,m=!0)}if(p&&this.docView.updateSelection(!0),this.viewport.from==a.from&&this.viewport.to==a.to&&!m&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(Vr))l(t)}get themeClasses(){return so+" "+(this.state.facet(io)?ah:lh)+" "+this.state.facet(Ws)}updateAttrs(){let e=va(this,qa,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(hn)?"true":"false",class:"cm-content",style:`${B.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),va(this,fo,t);let i=this.observer.ignore(()=>{let n=Rr(this.contentDOM,this.contentAttrs,t),r=Rr(this.dom,this.editorAttrs,e);return n||r});return this.editorAttrs=e,this.contentAttrs=t,i}showAnnouncements(e){let t=!0;for(let i of e)for(let n of i.effects)if(n.is(s.announce)){t&&(this.announceDOM.textContent=""),t=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=n.value}}mountStyles(){this.styleModules=this.state.facet(Ri),Ce.mount(this.root,this.styleModules.concat(iu).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn\'t allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;ti.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,i){return Or(this,e,aa(this,e,t,i))}moveByGroup(e,t){return Or(this,e,aa(this,e,t,i=>Rc(this,e.head,i)))}moveToLineBoundary(e,t,i=!0){return Ic(this,e,t,i)}moveVertically(e,t,i){return Or(this,e,Fc(this,e,t,i))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),Qa(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let i=this.docView.coordsAt(e,t);if(!i||i.left==i.right)return i;let n=this.state.doc.lineAt(e),r=this.bidiSpans(n),o=r[kt.find(r,e-n.from,-1,t)];return lo(i,o.dir==ce.LTR==t>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Ka)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>au)return Ga(e.length);let t=this.textDirectionAt(e.from);for(let n of this.bidiCache)if(n.from==e.from&&n.dir==t)return n.order;let i=xc(e.text,t);return this.bidiCache.push(new ln(e.from,e.to,t,i)),i}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||B.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Aa(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return ia.of(new Qs(typeof e=="number"?R.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return ai.define(()=>({}),{eventHandlers:e})}static theme(e,t){let i=Ce.newName(),n=[Ws.of(i),Ri.of(no(`.${i}`,e))];return t&&t.dark&&n.push(io.of(!0)),n}static baseTheme(e){return Bs.lowest(Ri.of(no("."+so,e,hh)))}static findFromDOM(e){var t;let i=e.querySelector(".cm-content"),n=i&&U.get(i)||U.get(e);return((t=n==null?void 0:n.rootView)===null||t===void 0?void 0:t.view)||null}};K.styleModule=Ri;K.inputHandler=_a;K.focusChangeEffect=Wa;K.perLineTextDirection=Ka;K.exceptionSink=Ha;K.updateListener=Vr;K.editable=hn;K.mouseSelectionStyle=Va;K.dragMovesSelection=$a;K.clickAddsSelectionRange=Fa;K.decorations=ji;K.atomicRanges=ja;K.scrollMargins=za;K.darkTheme=io;K.contentAttributes=fo;K.editorAttributes=qa;K.lineWrapping=K.contentAttributes.of({class:"cm-lineWrapping"});K.announce=Z.define();var au=4096,Sa={},ln=class s{constructor(e,t,i,n){this.from=e,this.to=t,this.dir=i,this.order=n}static update(e,t){if(t.empty)return e;let i=[],n=e.length?e[e.length-1].dir:ce.LTR;for(let r=Math.max(0,e.length-10);r=0;n--){let r=i[n],o=typeof r=="function"?r(s):r;o&&Ir(o,t)}return t}var Rd=B.mac?"mac":B.windows?"win":B.linux?"linux":"key";var hu=!B.ios;var fu={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};hu&&(fu[".cm-line"].caretColor="transparent !important");var Fd=/x/.unicode!=null?"gu":"g";var $d=K.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"\'\'",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}});var ct=class extends lt{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};ct.prototype.elementClass="";ct.prototype.toDOM=void 0;ct.prototype.mapMode=de.TrackBefore;ct.prototype.startSide=ct.prototype.endSide=-1;ct.prototype.point=!0;var Wu=xl(rr());var cu=0,zi=class{constructor(e,t){this.from=e,this.to=t}},j=class{constructor(e={}){this.id=cu++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn\'t define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can\'t add per-node props to node types");return typeof e!="function"&&(e=Se.match(e)),t=>{let i=e(t);return i===void 0?null:[this,i]}}};j.closedBy=new j({deserialize:s=>s.split(" ")});j.openedBy=new j({deserialize:s=>s.split(" ")});j.group=new j({deserialize:s=>s.split(" ")});j.isolate=new j({deserialize:s=>{if(s&&s!="rtl"&&s!="ltr"&&s!="auto")throw new RangeError("Invalid value for isolate: "+s);return s||"auto"}});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var hi=class{constructor(e,t,i){this.tree=e,this.overlay=t,this.parser=i}static get(e){return e&&e.props&&e.props[j.mounted.id]}},uu=Object.create(null),Se=class s{constructor(e,t,i,n=0){this.name=e,this.props=t,this.id=i,this.flags=n}static define(e){let t=e.props&&e.props.length?Object.create(null):uu,i=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),n=new s(e.name||"",t,e.id,i);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(n)),r){if(r[0].perNode)throw new RangeError("Can\'t store a per-node prop on a node type");t[r[0].id]=r[1]}}return n}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(j.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let i in e)for(let n of i.split(" "))t[n]=e[i];return i=>{for(let n=i.prop(j.group),r=-1;r<(n?n.length:0);r++){let o=t[r<0?i.name:n[r]];if(o)return o}}}};Se.none=new Se("",Object.create(null),0,8);var fn=new WeakMap,ch=new WeakMap,re;(function(s){s[s.ExcludeBuffers=1]="ExcludeBuffers",s[s.IncludeAnonymous=2]="IncludeAnonymous",s[s.IgnoreMounts=4]="IgnoreMounts",s[s.IgnoreOverlays=8]="IgnoreOverlays"})(re||(re={}));var he=class s{constructor(e,t,i,n,r){if(this.type=e,this.children=t,this.positions=i,this.length=n,this.props=null,r&&r.length){this.props=Object.create(null);for(let[o,l]of r)this.props[typeof o=="number"?o:o.id]=l}}toString(){let e=hi.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let i of this.children){let n=i.toString();n&&(t&&(t+=","),t+=n)}return this.type.name?(/\\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Ji(this.topNode,e)}cursorAt(e,t=0,i=0){let n=fn.get(this)||this.topNode,r=new Ji(n);return r.moveTo(e,t),fn.set(this,r._tree),r}get topNode(){return new je(this,0,0,null)}resolve(e,t=0){let i=Ui(fn.get(this)||this.topNode,e,t,!1);return fn.set(this,i),i}resolveInner(e,t=0){let i=Ui(ch.get(this)||this.topNode,e,t,!0);return ch.set(this,i),i}resolveStack(e,t=0){return du(this,e,t)}iterate(e){let{enter:t,leave:i,from:n=0,to:r=this.length}=e,o=e.mode||0,l=(o&re.IncludeAnonymous)>0;for(let a=this.cursor(o|re.IncludeAnonymous);;){let h=!1;if(a.from<=r&&a.to>=n&&(!l&&a.type.isAnonymous||t(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&i&&(l||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:bo(Se.none,this.children,this.positions,0,this.children.length,0,this.length,(t,i,n)=>new s(this.type,t,i,n,this.propValues),e.makeTree||((t,i,n)=>new s(Se.none,t,i,n)))}static build(e){return pu(e)}};he.empty=new he(Se.none,[],[],0);var co=class s{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new s(this.buffer,this.index)}},vt=class s{constructor(e,t,i){this.buffer=e,this.length=t,this.set=i}get type(){return Se.none}toString(){let e=[];for(let t=0;t0));a=o[a+3]);return l}slice(e,t,i){let n=this.buffer,r=new Uint16Array(t-e),o=0;for(let l=e,a=0;l=e&&te;case 1:return t<=e&&i>e;case 2:return i>e;case 4:return!0}}function Ui(s,e,t,i){for(var n;s.from==s.to||(t<1?s.from>=e:s.from>e)||(t>-1?s.to<=e:s.to0?l.length:-1;e!=h;e+=t){let f=l[e],c=a[e]+o.from;if(ph(n,i,c,c+f.length)){if(f instanceof vt){if(r&re.ExcludeBuffers)continue;let u=f.findChild(0,f.buffer.length,t,i-c,n);if(u>-1)return new Gi(new po(o,f,e,c),null,u)}else if(r&re.IncludeAnonymous||!f.type.isAnonymous||yo(f)){let u;if(!(r&re.IgnoreMounts)&&(u=hi.get(f))&&!u.overlay)return new s(u.tree,c,e,o);let d=new s(f,c,e,o);return r&re.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?f.children.length-1:0,t,i,n)}}}if(r&re.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,i=0){let n;if(!(i&re.IgnoreOverlays)&&(n=hi.get(this._tree))&&n.overlay){let r=e-this.from;for(let{from:o,to:l}of n.overlay)if((t>0?o<=r:o=r:l>r))return new s(n.tree,n.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,i)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function uh(s,e,t,i){let n=s.cursor(),r=[];if(!n.firstChild())return r;if(t!=null){for(let o=!1;!o;)if(o=n.type.is(t),!n.nextSibling())return r}for(;;){if(i!=null&&n.type.is(i))return r;if(n.type.is(e)&&r.push(n.node),!n.nextSibling())return i==null?r:[]}}function uo(s,e,t=e.length-1){for(let i=s.parent;t>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(e[t]&&e[t]!=i.name)return!1;t--}}return!0}var po=class{constructor(e,t,i,n){this.parent=e,this.buffer=t,this.index=i,this.start=n}},Gi=class s extends un{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,i){super(),this.context=e,this._parent=t,this.index=i,this.type=e.buffer.set.types[e.buffer.buffer[i]]}child(e,t,i){let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.context.start,i);return r<0?null:new s(this.context,this,r)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,i=0){if(i&re.ExcludeBuffers)return null;let{buffer:n}=this.context,r=n.findChild(this.index+4,n.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return r<0?null:new s(this.context,this,r)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new s(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new s(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:i}=this.context,n=this.index+4,r=i.buffer[this.index+3];if(r>n){let o=i.buffer[this.index+1];e.push(i.slice(n,r,o)),t.push(0)}return new he(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function mh(s){if(!s.length)return null;let e=0,t=s[0];for(let r=1;rt.from||o.to=e){let l=new je(o.tree,o.overlay[0].from+r.from,-1,r);(n||(n=[i])).push(Ui(l,e,t,!1))}}return n?mh(n):i}var Ji=class{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof je)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let i=e._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:i,buffer:n}=this.buffer;return this.type=t||n.set.types[n.buffer[e]],this.from=i+n.buffer[e+1],this.to=i+n.buffer[e+2],!0}yield(e){return e?e instanceof je?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,i){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,i,this.mode));let{buffer:n}=this.buffer,r=n.findChild(this.index+4,n.buffer[this.index+3],e,t-this.buffer.start,i);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,i=this.mode){return this.buffer?i&re.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&re.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&re.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,i=this.stack.length-1;if(e<0){let n=i<0?0:this.stack[i]+4;if(this.index!=n)return this.yieldBuf(t.findChild(n,this.index,-1,0,4))}else{let n=t.buffer[this.index+3];if(n<(i<0?t.buffer.length:t.buffer[this.stack[i]+3]))return this.yieldBuf(n)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,i,{buffer:n}=this;if(n){if(e>0){if(this.index-1)for(let r=t+e,o=e<0?-1:i._tree.children.length;r!=o;r+=e){let l=i._tree.children[r];if(this.mode&re.IncludeAnonymous||l instanceof vt||!l.type.isAnonymous||yo(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==n){if(n==this.index)return o;t=o,i=r+1;break e}n=this.stack[--r]}for(let n=i;n=0;r--){if(r<0)return uo(this.node,e,n);let o=i[t.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[n]&&e[n]!=o.name)return!1;n--}}return!0}};function yo(s){return s.children.some(e=>e instanceof vt||!e.type.isAnonymous||yo(e))}function pu(s){var e;let{buffer:t,nodeSet:i,maxBufferLength:n=1024,reused:r=[],minRepeatType:o=i.types.length}=s,l=Array.isArray(t)?new co(t,t.length):t,a=i.types,h=0,f=0;function c(S,w,A,O,L,N){let{id:x,start:D,end:I,size:E}=l,F=f;for(;E<0;)if(l.next(),E==-1){let st=r[x];A.push(st),O.push(D-S);return}else if(E==-3){h=x;return}else if(E==-4){f=x;return}else throw new RangeError(`Unrecognized record size: ${E}`);let xe=a[x],gt,Ie,ks=D-S;if(I-D<=n&&(Ie=g(l.pos-w,L))){let st=new Uint16Array(Ie.size-Ie.skip),Ae=l.pos-Ie.size,We=st.length;for(;l.pos>Ae;)We=b(Ie.start,st,We);gt=new vt(st,I-Ie.start,i),ks=Ie.start-S}else{let st=l.pos-E;l.next();let Ae=[],We=[],Lt=x>=o?x:-1,Yt=0,Ss=I;for(;l.pos>st;)Lt>=0&&l.id==Lt&&l.size>=0?(l.end<=Ss-n&&(p(Ae,We,D,Yt,l.end,Ss,Lt,F),Yt=Ae.length,Ss=l.end),l.next()):N>2500?u(D,st,Ae,We):c(D,st,Ae,We,Lt,N+1);if(Lt>=0&&Yt>0&&Yt-1&&Yt>0){let gl=d(xe);gt=bo(xe,Ae,We,0,Ae.length,0,I-D,gl,gl)}else gt=m(xe,Ae,We,I-D,F-I)}A.push(gt),O.push(ks)}function u(S,w,A,O){let L=[],N=0,x=-1;for(;l.pos>w;){let{id:D,start:I,end:E,size:F}=l;if(F>4)l.next();else{if(x>-1&&I=0;E-=3)D[F++]=L[E],D[F++]=L[E+1]-I,D[F++]=L[E+2]-I,D[F++]=F;A.push(new vt(D,L[2]-I,i)),O.push(I-S)}}function d(S){return(w,A,O)=>{let L=0,N=w.length-1,x,D;if(N>=0&&(x=w[N])instanceof he){if(!N&&x.type==S&&x.length==O)return x;(D=x.prop(j.lookAhead))&&(L=A[N]+x.length+D)}return m(S,w,A,O,L)}}function p(S,w,A,O,L,N,x,D){let I=[],E=[];for(;S.length>O;)I.push(S.pop()),E.push(w.pop()+A-L);S.push(m(i.types[x],I,E,N-L,D-N)),w.push(L-A)}function m(S,w,A,O,L=0,N){if(h){let x=[j.contextHash,h];N=N?[x].concat(N):[x]}if(L>25){let x=[j.lookAhead,L];N=N?[x].concat(N):[x]}return new he(S,w,A,O,N)}function g(S,w){let A=l.fork(),O=0,L=0,N=0,x=A.end-n,D={size:0,start:0,skip:0};e:for(let I=A.pos-S;A.pos>I;){let E=A.size;if(A.id==w&&E>=0){D.size=O,D.start=L,D.skip=N,N+=4,O+=4,A.next();continue}let F=A.pos-E;if(E<0||F=o?4:0,gt=A.start;for(A.next();A.pos>F;){if(A.size<0)if(A.size==-3)xe+=4;else break e;else A.id>=o&&(xe+=4);A.next()}L=gt,O+=E,N+=xe}return(w<0||O==S)&&(D.size=O,D.start=L,D.skip=N),D.size>4?D:void 0}function b(S,w,A){let{id:O,start:L,end:N,size:x}=l;if(l.next(),x>=0&&O4){let I=l.pos-(x-4);for(;l.pos>I;)A=b(S,w,A)}w[--A]=D,w[--A]=N-S,w[--A]=L-S,w[--A]=O}else x==-3?h=O:x==-4&&(f=O);return A}let v=[],C=[];for(;l.pos>0;)c(s.start||0,s.bufferStart||0,v,C,-1,0);let M=(e=s.length)!==null&&e!==void 0?e:v.length?C[0]+v[0].length:0;return new he(a[s.topID],v.reverse(),C.reverse(),M)}var dh=new WeakMap;function cn(s,e){if(!s.isAnonymous||e instanceof vt||e.type!=s)return 1;let t=dh.get(e);if(t==null){t=1;for(let i of e.children){if(i.type!=s||!(i instanceof he)){t=1;break}t+=cn(s,i)}dh.set(e,t)}return t}function bo(s,e,t,i,n,r,o,l,a){let h=0;for(let p=i;p=f)break;w+=A}if(C==M+1){if(w>f){let A=p[M];d(A.children,A.positions,0,A.children.length,m[M]+v);continue}c.push(p[M])}else{let A=m[C-1]+p[C-1].length-S;c.push(bo(s,p,m,M,C,S,A,null,a))}u.push(S+v-r)}}return d(e,t,i,n,0),(l||a)(c,u,o)}var Kt=class s{constructor(e,t,i,n,r=!1,o=!1){this.from=e,this.to=t,this.tree=i,this.offset=n,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],i=!1){let n=[new s(0,e.length,e,0,!1,i)];for(let r of t)r.to>e.length&&n.push(r);return n}static applyChanges(e,t,i=128){if(!t.length)return e;let n=[],r=1,o=e.length?e[0]:null;for(let l=0,a=0,h=0;;l++){let f=l=i)for(;o&&o.from=u.from||c<=u.to||h){let d=Math.max(u.from,a)-h,p=Math.min(u.to,c)-h;u=d>=p?null:new s(d,p,u.tree,u.offset+h,l>0,!!f)}if(u&&n.push(u),o.to>c)break;o=rnew zi(n.from,n.to)):[new zi(0,0)]:[new zi(0,e.length)],this.createParse(e,t||[],i)}parse(e,t,i){let n=this.startParse(e,t,i);for(;;){let r=n.advance();if(r)return r}}},go=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var Hd=new j({perNode:!0});var mu=0,Je=class s{constructor(e,t,i){this.set=e,this.base=t,this.modified=i,this.id=mu++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new s([],null,[]);if(t.set.push(t),e)for(let i of e.set)t.set.push(i);return t}static defineModifier(){let e=new yn;return t=>t.modified.indexOf(e)>-1?t:yn.get(t.base||t,t.modified.concat(e).sort((i,n)=>i.id-n.id))}},gu=0,yn=class s{constructor(){this.instances=[],this.id=gu++}static get(e,t){if(!t.length)return e;let i=t[0].instances.find(l=>l.base==e&&yu(t,l.modified));if(i)return i;let n=[],r=new Je(n,e,t);for(let l of t)l.instances.push(r);let o=bu(t);for(let l of e.set)if(!l.modified.length)for(let a of o)n.push(s.get(l,a));return r}};function yu(s,e){return s.length==e.length&&s.every((t,i)=>t==e[i])}function bu(s){let e=[[]];for(let t=0;ti.length-t.length)}function bh(s){let e=Object.create(null);for(let t in s){let i=s[t];Array.isArray(i)||(i=[i]);for(let n of t.split(" "))if(n){let r=[],o=2,l=n;for(let c=0;;){if(l=="..."&&c>0&&c+3==n.length){o=1;break}let u=/^"(?:[^"\\\\]|\\\\.)*?"|[^\\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+n);if(r.push(u[0]=="*"?"":u[0][0]==\'"\'?JSON.parse(u[0]):u[0]),c+=u[0].length,c==n.length)break;let d=n[c++];if(c==n.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+n);l=n.slice(c)}let a=r.length-1,h=r[a];if(!h)throw new RangeError("Invalid path: "+n);let f=new fi(i,o,a>0?r.slice(0,a):null);e[h]=f.sort(e[h])}}return wh.add(e)}var wh=new j,fi=class{constructor(e,t,i,n){this.tags=e,this.mode=t,this.context=i,this.next=n}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=n;for(let l of r)for(let a of l.set){let h=t[a.id];if(h){o=o?o+" "+h:h;break}}return o},scope:i}}function wu(s,e){let t=null;for(let i of s){let n=i.style(e);n&&(t=t?t+" "+n:n)}return t}function kh(s,e,t,i=0,n=s.length){let r=new ko(i,Array.isArray(e)?e:[e],t);r.highlightRange(s.cursor(),i,n,"",r.highlighters),r.flush(n)}var ko=class{constructor(e,t,i){this.at=e,this.highlighters=t,this.span=i,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,i,n,r){let{type:o,from:l,to:a}=e;if(l>=i||a<=t)return;o.isTop&&(r=this.highlighters.filter(d=>!d.scope||d.scope(o)));let h=n,f=ku(e)||fi.empty,c=wu(r,f.tags);if(c&&(h&&(h+=" "),h+=c,f.mode==1&&(n+=(n?" ":"")+c)),this.startSpan(e.from,h),f.opaque)return;let u=e.tree&&e.tree.prop(j.mounted);if(u&&u.overlay){let d=e.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(g=>!g.scope||g.scope(u.tree.type)),m=e.firstChild();for(let g=0,b=l;;g++){let v=g=C||!e.nextSibling())););if(!v||C>i)break;b=v.to+l,b>t&&(this.highlightRange(d.cursor(),Math.max(t,v.from+l),Math.min(i,b),n,p),this.startSpan(b,h))}m&&e.parent()}else if(e.firstChild()){do if(!(e.to<=t)){if(e.from>=i)break;this.highlightRange(e,t,i,n,r),this.startSpan(Math.min(i,e.to),h)}while(e.nextSibling());e.parent()}}};function ku(s){let e=s.type.prop(wh);for(;e&&e.context&&!s.matchContext(e.context);)e=e.next;return e||null}var T=Je.define,pn=T(),xt=T(),gh=T(xt),yh=T(xt),At=T(),mn=T(At),wo=T(At),Ge=T(),qt=T(Ge),ze=T(),Ue=T(),So=T(),Yi=T(So),gn=T(),y={comment:pn,lineComment:T(pn),blockComment:T(pn),docComment:T(pn),name:xt,variableName:T(xt),typeName:gh,tagName:T(gh),propertyName:yh,attributeName:T(yh),className:T(xt),labelName:T(xt),namespace:T(xt),macroName:T(xt),literal:At,string:mn,docString:T(mn),character:T(mn),attributeValue:T(mn),number:wo,integer:T(wo),float:T(wo),bool:T(At),regexp:T(At),escape:T(At),color:T(At),url:T(At),keyword:ze,self:T(ze),null:T(ze),atom:T(ze),unit:T(ze),modifier:T(ze),operatorKeyword:T(ze),controlKeyword:T(ze),definitionKeyword:T(ze),moduleKeyword:T(ze),operator:Ue,derefOperator:T(Ue),arithmeticOperator:T(Ue),logicOperator:T(Ue),bitwiseOperator:T(Ue),compareOperator:T(Ue),updateOperator:T(Ue),definitionOperator:T(Ue),typeOperator:T(Ue),controlOperator:T(Ue),punctuation:So,separator:T(So),bracket:Yi,angleBracket:T(Yi),squareBracket:T(Yi),paren:T(Yi),brace:T(Yi),content:Ge,heading:qt,heading1:T(qt),heading2:T(qt),heading3:T(qt),heading4:T(qt),heading5:T(qt),heading6:T(qt),contentSeparator:T(Ge),list:T(Ge),quote:T(Ge),emphasis:T(Ge),strong:T(Ge),link:T(Ge),monospace:T(Ge),strikethrough:T(Ge),inserted:T(),deleted:T(),changed:T(),invalid:T(),meta:gn,documentMeta:T(gn),annotation:T(gn),processingInstruction:T(gn),definition:Je.defineModifier(),constant:Je.defineModifier(),function:Je.defineModifier(),standard:Je.defineModifier(),local:Je.defineModifier(),special:Je.defineModifier()},Kd=vo([{tag:y.link,class:"tok-link"},{tag:y.heading,class:"tok-heading"},{tag:y.emphasis,class:"tok-emphasis"},{tag:y.strong,class:"tok-strong"},{tag:y.keyword,class:"tok-keyword"},{tag:y.atom,class:"tok-atom"},{tag:y.bool,class:"tok-bool"},{tag:y.url,class:"tok-url"},{tag:y.labelName,class:"tok-labelName"},{tag:y.inserted,class:"tok-inserted"},{tag:y.deleted,class:"tok-deleted"},{tag:y.literal,class:"tok-literal"},{tag:y.string,class:"tok-string"},{tag:y.number,class:"tok-number"},{tag:[y.regexp,y.escape,y.special(y.string)],class:"tok-string2"},{tag:y.variableName,class:"tok-variableName"},{tag:y.local(y.variableName),class:"tok-variableName tok-local"},{tag:y.definition(y.variableName),class:"tok-variableName tok-definition"},{tag:y.special(y.variableName),class:"tok-variableName2"},{tag:y.definition(y.propertyName),class:"tok-propertyName tok-definition"},{tag:y.typeName,class:"tok-typeName"},{tag:y.namespace,class:"tok-namespace"},{tag:y.className,class:"tok-className"},{tag:y.macroName,class:"tok-macroName"},{tag:y.propertyName,class:"tok-propertyName"},{tag:y.operator,class:"tok-operator"},{tag:y.comment,class:"tok-comment"},{tag:y.meta,class:"tok-meta"},{tag:y.invalid,class:"tok-invalid"},{tag:y.punctuation,class:"tok-punctuation"}]);var xo,Qi=new j;var Su=new j,Oe=class{constructor(e,t,i=[],n=""){this.data=e,this.name=n,Q.prototype.hasOwnProperty("tree")||Object.defineProperty(Q.prototype,"tree",{get(){return Zi(this)}}),this.parser=t,this.extension=[ci.of(this),Q.languageData.of((r,o,l)=>{let a=Sh(r,o,l),h=a.type.prop(Qi);if(!h)return[];let f=r.facet(h),c=a.type.prop(Su);if(c){let u=a.resolve(o-a.from,l);for(let d of c)if(d.test(u,r)){let p=r.facet(d.facet);return d.type=="replace"?p:p.concat(f)}}return f})].concat(i)}isActiveAt(e,t,i=-1){return Sh(e,t,i).type.prop(Qi)==this.data}findRegions(e){let t=e.facet(ci);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let i=[],n=(r,o)=>{if(r.prop(Qi)==this.data){i.push({from:o,to:o+r.length});return}let l=r.prop(j.mounted);if(l){if(l.tree.prop(Qi)==this.data){if(l.overlay)for(let a of l.overlay)i.push({from:a.from+o,to:a.to+o});else i.push({from:o,to:o+r.length});return}else if(l.overlay){let a=i.length;if(n(l.tree,l.overlay[0].from+o),i.length>a)return}}for(let a=0;a=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-i,t-i)}},Xi=null,To=class s{constructor(e,t,i=[],n,r,o,l,a){this.parser=e,this.state=t,this.fragments=i,this.tree=n,this.treeLen=r,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,i){return new s(e,t,[],he.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Oo(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=he.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof e=="number"){let n=Date.now()+e;e=()=>Date.now()>n}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(Kt.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Xi;Xi=this;try{return e()}finally{Xi=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=vh(e,t.from,t.to);return e}changes(e,t){let{fragments:i,tree:n,treeLen:r,viewport:o,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((h,f,c,u)=>a.push({fromA:h,toA:f,fromB:c,toB:u})),i=Kt.applyChanges(i,a),n=he.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){l=[];for(let h of this.skipped){let f=e.mapPos(h.from,1),c=e.mapPos(h.to,-1);fe.from&&(this.fragments=vh(this.fragments,n,r),this.skipped.splice(i--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends dn{createParse(t,i,n){let r=n[0].from,o=n[n.length-1].to;return{parsedPos:r,advance(){let a=Xi;if(a){for(let h of n)a.tempSkipped.push(h);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=o,new he(Se.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Xi}};function vh(s,e,t){return Kt.applyChanges(s,[{fromA:e,toA:t,fromB:e,toB:t}])}var es=class s{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),i=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,i)||t.takeTree(),new s(t)}static init(e){let t=Math.min(3e3,e.doc.length),i=To.create(e.facet(ci).parser,e,{from:0,to:t});return i.work(20,t)||i.takeTree(),new s(i)}};Oe.state=rt.define({create:es.init,update(s,e){for(let t of e.effects)if(t.is(Oe.setState))return t.value;return e.startState.facet(ci)!=e.state.facet(ci)?es.init(e.state):s.apply(e)}});var Ch=s=>{let e=setTimeout(()=>s(),500);return()=>clearTimeout(e)};typeof requestIdleCallback!="undefined"&&(Ch=s=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(s,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var Ao=typeof navigator!="undefined"&&(!((xo=navigator.scheduling)===null||xo===void 0)&&xo.isInputPending)?()=>navigator.scheduling.isInputPending():null,vu=ai.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(Oe.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(Oe.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Ch(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndn+1e3,a=r.context.work(()=>Ao&&Ao()||Date.now()>o,n+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Oe.setState.of(new es(r.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>ht(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),ci=V.define({combine(s){return s.length?s[0]:null},enables:s=>[Oe.state,vu,K.contentAttributes.compute([s],e=>{let t=e.facet(s);return t&&t.name?{"data-language":t.name}:{}})]});var Ct=class s{constructor(e,t){this.specs=e;let i;function n(l){let a=Ce.newName();return(i||(i=Object.create(null)))["."+a]=l,a}let r=typeof t.all=="string"?t.all:t.all?n(t.all):void 0,o=t.scope;this.scope=o instanceof Oe?l=>l.prop(Qi)==o.data:o?l=>l==o:void 0,this.style=vo(e.map(l=>({tag:l.tag,class:l.class||n(Object.assign({},l,{tag:null}))})),{all:r}).style,this.module=i?new Ce(i):null,this.themeType=t.themeType}static define(e,t){return new s(e,t||{})}},No=V.define(),Mh=V.define({combine(s){return s.length?[s[0]]:null}});function Co(s){let e=s.facet(No);return e.length?e:s.facet(Mh)}function bn(s,e){let t=[xu],i;return s instanceof Ct&&(s.module&&t.push(K.styleModule.of(s.module)),i=s.themeType),e!=null&&e.fallback?t.push(Mh.of(s)):i?t.push(No.computeN([K.darkTheme],n=>n.facet(K.darkTheme)==(i=="dark")?[s]:[])):t.push(No.of(s)),t}var Eo=class{constructor(e){this.markCache=Object.create(null),this.tree=Zi(e.state),this.decorations=this.buildDeco(e,Co(e.state))}update(e){let t=Zi(e.state),i=Co(e.state),n=i!=Co(e.startState);t.length{i.add(o,l,this.markCache[a]||(this.markCache[a]=Y.mark({class:a})))},n,r);return i.finish()}},xu=Bs.high(ai.fromClass(Eo,{decorations:s=>s.decorations})),Zd=Ct.define([{tag:y.meta,color:"#404740"},{tag:y.link,textDecoration:"underline"},{tag:y.heading,textDecoration:"underline",fontWeight:"bold"},{tag:y.emphasis,fontStyle:"italic"},{tag:y.strong,fontWeight:"bold"},{tag:y.strikethrough,textDecoration:"line-through"},{tag:y.keyword,color:"#708"},{tag:[y.atom,y.bool,y.url,y.contentSeparator,y.labelName],color:"#219"},{tag:[y.literal,y.inserted],color:"#164"},{tag:[y.string,y.deleted],color:"#a11"},{tag:[y.regexp,y.escape,y.special(y.string)],color:"#e40"},{tag:y.definition(y.variableName),color:"#00f"},{tag:y.local(y.variableName),color:"#30a"},{tag:[y.typeName,y.namespace],color:"#085"},{tag:y.className,color:"#167"},{tag:[y.special(y.variableName),y.macroName],color:"#256"},{tag:y.definition(y.propertyName),color:"#00c"},{tag:y.comment,color:"#940"},{tag:y.invalid,color:"#f00"}]);var Au=Object.create(null),xh=[Se.none];var Ah=[],Cu=Object.create(null);for(let[s,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Cu[s]=Mu(Au,e);function Mo(s,e){Ah.indexOf(s)>-1||(Ah.push(s),console.warn(e))}function Mu(s,e){let t=null;for(let r of e.split(".")){let o=s[r]||y[r];o?typeof o=="function"?t?t=o(t):Mo(r,`Modifier ${r} used at start of tag`):t?Mo(r,`Tag ${r} used as modifier`):t=o:Mo(r,`Unknown highlighting tag ${r}`)}if(!t)return 0;let i=e.replace(/ /g,"_"),n=Se.define({id:xh.length,name:i,props:[bh({[i]:t})]});return xh.push(n),n.id}var Ou="#abb2bf",Tu="#7d8799",Nu="#ffffff",Eu="#21252b",Do="rgba(0, 0, 0, 0.5)",Du="#292d3e",Lo="#353a42",Lu="rgba(128, 203, 196, 0.2)",Oh="#ffcc00",Pu=K.theme({"&":{color:"#ffffff",backgroundColor:Du},".cm-content":{caretColor:Oh},"&.cm-focused .cm-cursor":{borderLeftColor:Oh},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Lu},".cm-panels":{backgroundColor:Eu,color:"#ffffff"},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:Do},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{background:"#292d3e",color:"#676e95",border:"none"},".cm-activeLineGutter":{backgroundColor:Do},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Lo},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Lo,borderBottomColor:Lo},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Do,color:Ou}}},{dark:!0}),Bu=Ct.define([{tag:y.keyword,color:"#c792ea"},{tag:y.operator,color:"#89ddff"},{tag:y.special(y.variableName),color:"#eeffff"},{tag:y.typeName,color:"#f07178"},{tag:y.atom,color:"#f78c6c"},{tag:y.number,color:"#ff5370"},{tag:y.definition(y.variableName),color:"#82aaff"},{tag:y.string,color:"#c3e88d"},{tag:y.special(y.string),color:"#f07178"},{tag:y.comment,color:Tu},{tag:y.variableName,color:"#f07178"},{tag:y.tagName,color:"#ff5370"},{tag:y.bracket,color:"#a2a1a4"},{tag:y.meta,color:"#ffcb6b"},{tag:y.attributeName,color:"#c792ea"},{tag:y.propertyName,color:"#c792ea"},{tag:y.className,color:"#decb6b"},{tag:y.invalid,color:Nu}]),Iu=[Pu,bn(Bu)];var Th="#2e3440",$o="#3b4252",Nh="#434c5e",wn="#4c566a";var Eh="#e5e9f0",Fo="#eceff4",Po="#8fbcbb",Dh="#88c0d0",Ru="#81a1c1",Re="#5e81ac",Fu="#bf616a",ui="#d08770",Bo="#ebcb8b",Lh="#a3be8c",$u="#b48ead",Ph="#d30102",Vo=Fo,Io=Vo,Vu="#ffffff",Ro=$o,Hu=Vo,Bh=$o,Ih=K.theme({"&":{color:Th,backgroundColor:Vu},".cm-content":{caretColor:Bh},".cm-cursor, .cm-dropCursor":{borderLeftColor:Bh},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Hu},".cm-panels":{backgroundColor:Vo,color:wn},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:`1px solid ${wn}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:Eh},".cm-activeLine":{backgroundColor:Io},".cm-selectionMatch":{backgroundColor:Eh},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{outline:`1px solid ${wn}`},"&.cm-focused .cm-matchingBracket":{backgroundColor:Fo},".cm-gutters":{backgroundColor:Fo,color:Th,border:"none"},".cm-activeLineGutter":{backgroundColor:Io},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Ro},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Ro,borderBottomColor:Ro},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Io,color:wn}}},{dark:!1}),_u=Ct.define([{tag:y.keyword,color:Re},{tag:[y.name,y.deleted,y.character,y.propertyName,y.macroName],color:ui},{tag:[y.variableName],color:ui},{tag:[y.function(y.variableName)],color:Re},{tag:[y.labelName],color:Ru},{tag:[y.color,y.constant(y.name),y.standard(y.name)],color:Re},{tag:[y.definition(y.name),y.separator],color:Lh},{tag:[y.brace],color:Po},{tag:[y.annotation],color:Ph},{tag:[y.number,y.changed,y.annotation,y.modifier,y.self,y.namespace],color:Dh},{tag:[y.typeName,y.className],color:Bo},{tag:[y.operator,y.operatorKeyword],color:Lh},{tag:[y.tagName],color:$u},{tag:[y.squareBracket],color:Fu},{tag:[y.angleBracket],color:ui},{tag:[y.attributeName],color:Bo},{tag:[y.regexp],color:Re},{tag:[y.quote],color:$o},{tag:[y.string],color:ui},{tag:y.link,color:Po,textDecoration:"underline",textUnderlinePosition:"under"},{tag:[y.url,y.escape,y.special(y.string)],color:ui},{tag:[y.meta],color:Dh},{tag:[y.comment],color:Nh,fontStyle:"italic"},{tag:y.strong,fontWeight:"bold",color:Re},{tag:y.emphasis,fontStyle:"italic",color:Re},{tag:y.strikethrough,textDecoration:"line-through"},{tag:y.heading,fontWeight:"bold",color:Re},{tag:y.special(y.heading1),fontWeight:"bold",color:Re},{tag:y.heading1,fontWeight:"bold",color:Re},{tag:[y.heading2,y.heading3,y.heading4],fontWeight:"bold",color:Re},{tag:[y.heading5,y.heading6],color:Re},{tag:[y.atom,y.bool,y.special(y.variableName)],color:ui},{tag:[y.processingInstruction,y.inserted],color:Po},{tag:[y.contentSeparator],color:Bo},{tag:y.invalid,color:Nh,borderBottom:`1px dotted ${Ph}`}]),fp=[Ih,bn(_u)];var ts=(s,e=0)=>{let t=[];if(e==5||!s||s==null)return"";if(typeof s=="string")return s;if(typeof s=="number")return`${s}`;if(Array.isArray(s))t.push(`${s.map(i=>ts(i,e++)).join(" ")}`);else if(typeof s=="object")for(let[i,n]of Object.entries(s))t.push(ts(i,e++),ts(n,e++));return t.join(" ")};function di(s=[],e=[]){s||(s=[]),Array.isArray(s)||(s=[s]),e||(e=[]),Array.isArray(e)||(e=[e]);for(let t of e!=null?e:[])if(t)if(Array.isArray(t)){let i=ts(t.slice(1));s=s.filter(n=>n.name!=t[0]&&n.desc!=i),s.push({name:t[0],desc:i})}else typeof t=="object"&&("name"in t||"desc"in t)&&(s=s.filter(i=>{var n;return(!((n=i.name)!=null&&n.length)||i.name!=t.name)&&i.desc!=t.desc}),s.push(Sl(kl({},t),{name:t.name,desc:ts(t.desc)})));return s}var dl={};vl(dl,{Alias:()=>Ze,CST:()=>hl,Composer:()=>Ut,Document:()=>et,Lexer:()=>Oi,LineCounter:()=>Ti,Pair:()=>J,Parser:()=>Gt,Scalar:()=>P,Schema:()=>vi,YAMLError:()=>Ai,YAMLMap:()=>X,YAMLParseError:()=>ve,YAMLSeq:()=>oe,YAMLWarning:()=>Ci,isAlias:()=>Ne,isCollection:()=>W,isDocument:()=>Ye,isMap:()=>Ee,isNode:()=>_,isPair:()=>H,isScalar:()=>$,isSeq:()=>De,parse:()=>Lf,parseAllDocuments:()=>Df,parseDocument:()=>ul,stringify:()=>Pf,visit:()=>Le,visitAsync:()=>is});var kn=Symbol.for("yaml.alias"),Sn=Symbol.for("yaml.document"),Fe=Symbol.for("yaml.map"),Ho=Symbol.for("yaml.pair"),Te=Symbol.for("yaml.scalar"),ut=Symbol.for("yaml.seq"),ue=Symbol.for("yaml.node.type"),Ne=s=>!!s&&typeof s=="object"&&s[ue]===kn,Ye=s=>!!s&&typeof s=="object"&&s[ue]===Sn,Ee=s=>!!s&&typeof s=="object"&&s[ue]===Fe,H=s=>!!s&&typeof s=="object"&&s[ue]===Ho,$=s=>!!s&&typeof s=="object"&&s[ue]===Te,De=s=>!!s&&typeof s=="object"&&s[ue]===ut;function W(s){if(s&&typeof s=="object")switch(s[ue]){case Fe:case ut:return!0}return!1}function _(s){if(s&&typeof s=="object")switch(s[ue]){case kn:case Fe:case Te:case ut:return!0}return!1}var Rh=s=>($(s)||W(s))&&!!s.anchor;var me=Symbol("break visit"),Fh=Symbol("skip children"),Xe=Symbol("remove node");function Le(s,e){let t=$h(e);Ye(s)?pi(null,s.contents,t,Object.freeze([s]))===Xe&&(s.contents=null):pi(null,s,t,Object.freeze([]))}Le.BREAK=me;Le.SKIP=Fh;Le.REMOVE=Xe;function pi(s,e,t,i){let n=Vh(s,e,t,i);if(_(n)||H(n))return Hh(s,i,n),pi(s,n,t,i);if(typeof n!="symbol"){if(W(e)){i=Object.freeze(i.concat(e));for(let r=0;rs.replace(/[!,[\\]{}]/g,e=>Ku[e]),Qe=class s{constructor(e,t){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},s.defaultYaml,e),this.tags=Object.assign({},s.defaultTags,t)}clone(){let e=new s(this.yaml,this.tags);return e.docStart=this.docStart,e}atDocument(){let e=new s(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:s.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},s.defaultTags);break}return e}add(e,t){this.atNextDocument&&(this.yaml={explicit:s.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},s.defaultTags),this.atNextDocument=!1);let i=e.trim().split(/[ \\t]+/),n=i.shift();switch(n){case"%TAG":{if(i.length!==2&&(t(0,"%TAG directive should contain exactly two parts"),i.length<2))return!1;let[r,o]=i;return this.tags[r]=o,!0}case"%YAML":{if(this.yaml.explicit=!0,i.length!==1)return t(0,"%YAML directive should contain exactly one part"),!1;let[r]=i;if(r==="1.1"||r==="1.2")return this.yaml.version=r,!0;{let o=/^\\d+\\.\\d+$/.test(r);return t(6,`Unsupported YAML version ${r}`,o),!1}}default:return t(0,`Unknown directive ${n}`,!0),!1}}tagName(e,t){if(e==="!")return"!";if(e[0]!=="!")return t(`Not a valid tag: ${e}`),null;if(e[1]==="<"){let o=e.slice(2,-1);return o==="!"||o==="!!"?(t(`Verbatim tags aren\'t resolved, so ${e} is invalid.`),null):(e[e.length-1]!==">"&&t("Verbatim tags must end with a >"),o)}let[,i,n]=e.match(new RegExp("^(.*!)([^!]*)$","s"));n||t(`The ${e} tag has no suffix`);let r=this.tags[i];if(r)try{return r+decodeURIComponent(n)}catch(o){return t(String(o)),null}return i==="!"?e:(t(`Could not resolve tag: ${e}`),null)}tagString(e){for(let[t,i]of Object.entries(this.tags))if(e.startsWith(i))return t+qu(e.substring(i.length));return e[0]==="!"?e:`!<${e}>`}toString(e){let t=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],i=Object.entries(this.tags),n;if(e&&i.length>0&&_(e.contents)){let r={};Le(e.contents,(o,l)=>{_(l)&&l.tag&&(r[l.tag]=!0)}),n=Object.keys(r)}else n=[];for(let[r,o]of i)r==="!!"&&o==="tag:yaml.org,2002:"||(!e||n.some(l=>l.startsWith(o)))&&t.push(`%TAG ${r} ${o}`);return t.join(`\n`)}};Qe.defaultYaml={explicit:!1,version:"1.2"};Qe.defaultTags={"!!":"tag:yaml.org,2002:"};function vn(s){if(/[\\x00-\\x19\\s,[\\]{}]/.test(s)){let t=`Anchor must not contain whitespace or control characters: ${JSON.stringify(s)}`;throw new Error(t)}return!0}function _o(s){let e=new Set;return Le(s,{Value(t,i){i.anchor&&e.add(i.anchor)}}),e}function Wo(s,e){for(let t=1;;++t){let i=`${s}${t}`;if(!e.has(i))return i}}function _h(s,e){let t=[],i=new Map,n=null;return{onAnchor:r=>{t.push(r),n||(n=_o(s));let o=Wo(e,n);return n.add(o),o},setAnchors:()=>{for(let r of t){let o=i.get(r);if(typeof o=="object"&&o.anchor&&($(o.node)||W(o.node)))o.node.anchor=o.anchor;else{let l=new Error("Failed to resolve repeated object (this should not happen)");throw l.source=r,l}}},sourceObjects:i}}function Mt(s,e,t,i){if(i&&typeof i=="object")if(Array.isArray(i))for(let n=0,r=i.length;nse(i,String(n),t));if(s&&typeof s.toJSON=="function"){if(!t||!Rh(s))return s.toJSON(e,t);let i={aliasCount:0,count:1,res:void 0};t.anchors.set(s,i),t.onCreate=r=>{i.res=r,delete t.onCreate};let n=s.toJSON(e,t);return t.onCreate&&t.onCreate(n),n}return typeof s=="bigint"&&!(t!=null&&t.keep)?Number(s):s}var Ot=class{constructor(e){Object.defineProperty(this,ue,{value:e})}clone(){let e=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return this.range&&(e.range=this.range.slice()),e}toJS(e,{mapAsMap:t,maxAliasCount:i,onAnchor:n,reviver:r}={}){if(!Ye(e))throw new TypeError("A document argument is required");let o={anchors:new Map,doc:e,keep:!0,mapAsMap:t===!0,mapKeyWarned:!1,maxAliasCount:typeof i=="number"?i:100},l=se(this,"",o);if(typeof n=="function")for(let{count:a,res:h}of o.anchors.values())n(h,a);return typeof r=="function"?Mt(r,{"":l},"",l):l}};var Ze=class extends Ot{constructor(e){super(kn),this.source=e,Object.defineProperty(this,"tag",{set(){throw new Error("Alias nodes cannot have tags")}})}resolve(e){let t;return Le(e,{Node:(i,n)=>{if(n===this)return Le.BREAK;n.anchor===this.source&&(t=n)}}),t}toJSON(e,t){if(!t)return{source:this.source};let{anchors:i,doc:n,maxAliasCount:r}=t,o=this.resolve(n);if(!o){let a=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new ReferenceError(a)}let l=i.get(o);if(l||(se(o,null,t),l=i.get(o)),!l||l.res===void 0){let a="This should not happen: Alias anchor was not resolved?";throw new ReferenceError(a)}if(r>=0&&(l.count+=1,l.aliasCount===0&&(l.aliasCount=xn(n,o,i)),l.count*l.aliasCount>r)){let a="Excessive alias count indicates a resource exhaustion attack";throw new ReferenceError(a)}return l.res}toString(e,t,i){let n=`*${this.source}`;if(e){if(vn(this.source),e.options.verifyAliasOrder&&!e.anchors.has(this.source)){let r=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw new Error(r)}if(e.implicitKey)return`${n} `}return n}};function xn(s,e,t){if(Ne(e)){let i=e.resolve(s),n=t&&i&&t.get(i);return n?n.count*n.aliasCount:0}else if(W(e)){let i=0;for(let n of e.items){let r=xn(s,n,t);r>i&&(i=r)}return i}else if(H(e)){let i=xn(s,e.key,t),n=xn(s,e.value,t);return Math.max(i,n)}return 1}var An=s=>!s||typeof s!="function"&&typeof s!="object",P=class extends Ot{constructor(e){super(Te),this.value=e}toJSON(e,t){return t!=null&&t.keep?this.value:se(this.value,e,t)}toString(){return String(this.value)}};P.BLOCK_FOLDED="BLOCK_FOLDED";P.BLOCK_LITERAL="BLOCK_LITERAL";P.PLAIN="PLAIN";P.QUOTE_DOUBLE="QUOTE_DOUBLE";P.QUOTE_SINGLE="QUOTE_SINGLE";var ju="tag:yaml.org,2002:";function zu(s,e,t){var i;if(e){let n=t.filter(o=>o.tag===e),r=(i=n.find(o=>!o.format))!=null?i:n[0];if(!r)throw new Error(`Tag ${e} not found`);return r}return t.find(n=>{var r;return((r=n.identify)==null?void 0:r.call(n,s))&&!n.format})}function dt(s,e,t){var c,u,d;if(Ye(s)&&(s=s.contents),_(s))return s;if(H(s)){let p=(u=(c=t.schema[Fe]).createNode)==null?void 0:u.call(c,t.schema,null,t);return p.items.push(s),p}(s instanceof String||s instanceof Number||s instanceof Boolean||typeof BigInt!="undefined"&&s instanceof BigInt)&&(s=s.valueOf());let{aliasDuplicateObjects:i,onAnchor:n,onTagObj:r,schema:o,sourceObjects:l}=t,a;if(i&&s&&typeof s=="object"){if(a=l.get(s),a)return a.anchor||(a.anchor=n(s)),new Ze(a.anchor);a={anchor:null,node:null},l.set(s,a)}e!=null&&e.startsWith("!!")&&(e=ju+e.slice(2));let h=zu(s,e,o.tags);if(!h){if(s&&typeof s.toJSON=="function"&&(s=s.toJSON()),!s||typeof s!="object"){let p=new P(s);return a&&(a.node=p),p}h=s instanceof Map?o[Fe]:Symbol.iterator in Object(s)?o[ut]:o[Fe]}r&&(r(h),delete t.onTagObj);let f=h!=null&&h.createNode?h.createNode(t.schema,s,t):typeof((d=h==null?void 0:h.nodeClass)==null?void 0:d.from)=="function"?h.nodeClass.from(t.schema,s,t):new P(s);return e?f.tag=e:h.default||(f.tag=h.tag),a&&(a.node=f),f}function ss(s,e,t){let i=t;for(let n=e.length-1;n>=0;--n){let r=e[n];if(typeof r=="number"&&Number.isInteger(r)&&r>=0){let o=[];o[r]=i,i=o}else i=new Map([[r,i]])}return dt(i,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw new Error("This should not happen, please report a bug.")},schema:s,sourceObjects:new Map})}var gi=s=>s==null||typeof s=="object"&&!!s[Symbol.iterator]().next().done,jt=class extends Ot{constructor(e,t){super(e),Object.defineProperty(this,"schema",{value:t,configurable:!0,enumerable:!1,writable:!0})}clone(e){let t=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));return e&&(t.schema=e),t.items=t.items.map(i=>_(i)||H(i)?i.clone(e):i),this.range&&(t.range=this.range.slice()),t}addIn(e,t){if(gi(e))this.add(t);else{let[i,...n]=e,r=this.get(i,!0);if(W(r))r.addIn(n,t);else if(r===void 0&&this.schema)this.set(i,ss(this.schema,n,t));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${n}`)}}deleteIn(e){let[t,...i]=e;if(i.length===0)return this.delete(t);let n=this.get(t,!0);if(W(n))return n.deleteIn(i);throw new Error(`Expected YAML collection at ${t}. Remaining path: ${i}`)}getIn(e,t){let[i,...n]=e,r=this.get(i,!0);return n.length===0?!t&&$(r)?r.value:r:W(r)?r.getIn(n,t):void 0}hasAllNullValues(e){return this.items.every(t=>{if(!H(t))return!1;let i=t.value;return i==null||e&&$(i)&&i.value==null&&!i.commentBefore&&!i.comment&&!i.tag})}hasIn(e){let[t,...i]=e;if(i.length===0)return this.has(t);let n=this.get(t,!0);return W(n)?n.hasIn(i):!1}setIn(e,t){let[i,...n]=e;if(n.length===0)this.set(i,t);else{let r=this.get(i,!0);if(W(r))r.setIn(n,t);else if(r===void 0&&this.schema)this.set(i,ss(this.schema,n,t));else throw new Error(`Expected YAML collection at ${i}. Remaining path: ${n}`)}}};jt.maxFlowStringSingleLineLength=60;var Wh=s=>s.replace(/^(?!$)(?: $)?/gm,"#");function Pe(s,e){return/^\\n+$/.test(s)?s.substring(1):e?s.replace(/^(?! *$)/gm,e):s}var $e=(s,e,t)=>s.endsWith(`\n`)?Pe(t,e):t.includes(`\n`)?`\n`+Pe(t,e):(s.endsWith(" ")?"":" ")+t;var Ko="flow",Cn="block",ns="quoted";function rs(s,e,t="flow",{indentAtStart:i,lineWidth:n=80,minContentWidth:r=20,onFold:o,onOverflow:l}={}){if(!n||n<0)return s;let a=Math.max(1+r,1+n-e.length);if(s.length<=a)return s;let h=[],f={},c=n-e.length;typeof i=="number"&&(i>n-Math.max(2,r)?h.push(0):c=n-i);let u,d,p=!1,m=-1,g=-1,b=-1;t===Cn&&(m=Kh(s,m),m!==-1&&(c=m+a));for(let C;C=s[m+=1];){if(t===ns&&C==="\\\\"){switch(g=m,s[m+1]){case"x":m+=3;break;case"u":m+=5;break;case"U":m+=9;break;default:m+=1}b=m}if(C===`\n`)t===Cn&&(m=Kh(s,m)),c=m+a,u=void 0;else{if(C===" "&&d&&d!==" "&&d!==`\n`&&d!==" "){let M=s[m+1];M&&M!==" "&&M!==`\n`&&M!==" "&&(u=m)}if(m>=c)if(u)h.push(u),c=u+a,u=void 0;else if(t===ns){for(;d===" "||d===" ";)d=C,C=s[m+=1],p=!0;let M=m>b+1?m-2:g-1;if(f[M])return s;h.push(M),f[M]=!0,c=M+a,u=void 0}else p=!0}d=C}if(p&&l&&l(),h.length===0)return s;o&&o();let v=s.slice(0,h[0]);for(let C=0;C({indentAtStart:e?s.indent.length:s.indentAtStart,lineWidth:s.options.lineWidth,minContentWidth:s.options.minContentWidth}),Tn=s=>/^(%|---|\\.\\.\\.)/m.test(s);function Uu(s,e,t){if(!e||e<0)return!1;let i=e-t,n=s.length;if(n<=i)return!1;for(let r=0,o=0;ri)return!0;if(o=r+1,n-o<=i)return!1}return!0}function os(s,e){let t=JSON.stringify(s);if(e.options.doubleQuotedAsJSON)return t;let{implicitKey:i}=e,n=e.options.doubleQuotedMinMultiLineLength,r=e.indent||(Tn(s)?" ":""),o="",l=0;for(let a=0,h=t[a];h;h=t[++a])if(h===" "&&t[a+1]==="\\\\"&&t[a+2]==="n"&&(o+=t.slice(l,a)+"\\\\ ",a+=1,l=a,h="\\\\"),h==="\\\\")switch(t[a+1]){case"u":{o+=t.slice(l,a);let f=t.substr(a+2,4);switch(f){case"0000":o+="\\\\0";break;case"0007":o+="\\\\a";break;case"000b":o+="\\\\v";break;case"001b":o+="\\\\e";break;case"0085":o+="\\\\N";break;case"00a0":o+="\\\\_";break;case"2028":o+="\\\\L";break;case"2029":o+="\\\\P";break;default:f.substr(0,2)==="00"?o+="\\\\x"+f.substr(2):o+=t.substr(a,6)}a+=5,l=a+1}break;case"n":if(i||t[a+2]===\'"\'||t.length\n`;let c,u;for(u=t.length;u>0;--u){let w=t[u-1];if(w!==`\n`&&w!==" "&&w!==" ")break}let d=t.substring(u),p=d.indexOf(`\n`);p===-1?c="-":t===d||p!==d.length-1?(c="+",r&&r()):c="",d&&(t=t.slice(0,-d.length),d[d.length-1]===`\n`&&(d=d.slice(0,-1)),d=d.replace(jo,`$&${h}`));let m=!1,g,b=-1;for(g=0;g")+(m?h?"2":"1":"")+c;if(s&&(M+=" "+l(s.replace(/ ?[\\r\\n]+/g," ")),n&&n()),f)return t=t.replace(/\\n+/g,`$&${h}`),`${M}\n${h}${v}${t}${d}`;t=t.replace(/\\n+/g,`\n$&`).replace(/(?:^|\\n)([\\t ].*)(?:([\\n\\t ]*)\\n(?![\\n\\t ]))?/g,"$1$2").replace(/\\n+/g,`$&${h}`);let S=rs(`${v}${t}${d}`,h,Cn,On(i,!0));return`${M}\n${h}${S}`}function Gu(s,e,t,i){let{type:n,value:r}=s,{actualString:o,implicitKey:l,indent:a,indentStep:h,inFlow:f}=e;if(l&&r.includes(`\n`)||f&&/[[\\]{},]/.test(r))return yi(r,e);if(!r||/^[\\n\\t ,[\\]{}#&*!|>\'"%@`]|^[?-]$|^[?-][ \\t]|[\\n:][ \\t]|[ \\t]\\n|[\\n\\t ]#|[\\n\\t :]$/.test(r))return l||f||!r.includes(`\n`)?yi(r,e):Mn(s,e,t,i);if(!l&&!f&&n!==P.PLAIN&&r.includes(`\n`))return Mn(s,e,t,i);if(Tn(r)){if(a==="")return e.forceBlockIndent=!0,Mn(s,e,t,i);if(l&&a===h)return yi(r,e)}let c=r.replace(/\\n+/g,`$&\n${a}`);if(o){let u=m=>{var g;return m.default&&m.tag!=="tag:yaml.org,2002:str"&&((g=m.test)==null?void 0:g.test(c))},{compat:d,tags:p}=e.doc.schema;if(p.some(u)||d!=null&&d.some(u))return yi(r,e)}return l?c:rs(c,a,Ko,On(e,!1))}function pt(s,e,t,i){let{implicitKey:n,inFlow:r}=e,o=typeof s.value=="string"?s:Object.assign({},s,{value:String(s.value)}),{type:l}=s;l!==P.QUOTE_DOUBLE&&/[\\x00-\\x08\\x0b-\\x1f\\x7f-\\x9f\\u{D800}-\\u{DFFF}]/u.test(o.value)&&(l=P.QUOTE_DOUBLE);let a=f=>{switch(f){case P.BLOCK_FOLDED:case P.BLOCK_LITERAL:return n||r?yi(o.value,e):Mn(o,e,t,i);case P.QUOTE_DOUBLE:return os(o.value,e);case P.QUOTE_SINGLE:return qo(o.value,e);case P.PLAIN:return Gu(o,e,t,i);default:return null}},h=a(l);if(h===null){let{defaultKeyType:f,defaultStringType:c}=e.options,u=n&&f||c;if(h=a(u),h===null)throw new Error(`Unsupported default string type ${u}`)}return h}function Nn(s,e){let t=Object.assign({blockQuote:!0,commentString:Wh,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},s.schema.toStringOptions,e),i;switch(t.collectionStyle){case"block":i=!1;break;case"flow":i=!0;break;default:i=null}return{anchors:new Set,doc:s,flowCollectionPadding:t.flowCollectionPadding?" ":"",indent:"",indentStep:typeof t.indent=="number"?" ".repeat(t.indent):" ",inFlow:i,options:t}}function Ju(s,e){var n,r,o,l;if(e.tag){let a=s.filter(h=>h.tag===e.tag);if(a.length>0)return(n=a.find(h=>h.format===e.format))!=null?n:a[0]}let t,i;if($(e)){i=e.value;let a=s.filter(h=>{var f;return(f=h.identify)==null?void 0:f.call(h,i)});t=(r=a.find(h=>h.format===e.format))!=null?r:a.find(h=>!h.format)}else i=e,t=s.find(a=>a.nodeClass&&i instanceof a.nodeClass);if(!t){let a=(l=(o=i==null?void 0:i.constructor)==null?void 0:o.name)!=null?l:typeof i;throw new Error(`Tag not resolved for ${a} value`)}return t}function Yu(s,e,{anchors:t,doc:i}){if(!i.directives)return"";let n=[],r=($(s)||W(s))&&s.anchor;r&&vn(r)&&(t.add(r),n.push(`&${r}`));let o=s.tag?s.tag:e.default?null:e.tag;return o&&n.push(i.directives.tagString(o)),n.join(" ")}function mt(s,e,t,i){var a,h;if(H(s))return s.toString(e,t,i);if(Ne(s)){if(e.doc.directives)return s.toString(e);if((a=e.resolvedAliases)!=null&&a.has(s))throw new TypeError("Cannot stringify circular structure without alias nodes");e.resolvedAliases?e.resolvedAliases.add(s):e.resolvedAliases=new Set([s]),s=s.resolve(e.doc)}let n,r=_(s)?s:e.doc.createNode(s,{onTagObj:f=>n=f});n||(n=Ju(e.doc.schema.tags,r));let o=Yu(r,n,e);o.length>0&&(e.indentAtStart=((h=e.indentAtStart)!=null?h:0)+o.length+1);let l=typeof n.stringify=="function"?n.stringify(r,e,t,i):$(r)?pt(r,e,t,i):r.toString(e,t,i);return o?$(r)||l[0]==="{"||l[0]==="["?`${o} ${l}`:`${o}\n${e.indent}${l}`:l}function qh({key:s,value:e},t,i,n){var A,O;let{allNullValues:r,doc:o,indent:l,indentStep:a,options:{commentString:h,indentSeq:f,simpleKeys:c}}=t,u=_(s)&&s.comment||null;if(c){if(u)throw new Error("With simple keys, key nodes cannot have comments");if(W(s)){let L="With simple keys, collection cannot be used as a key value";throw new Error(L)}}let d=!c&&(!s||u&&e==null&&!t.inFlow||W(s)||($(s)?s.type===P.BLOCK_FOLDED||s.type===P.BLOCK_LITERAL:typeof s=="object"));t=Object.assign({},t,{allNullValues:!1,implicitKey:!d&&(c||!r),indent:l+a});let p=!1,m=!1,g=mt(s,t,()=>p=!0,()=>m=!0);if(!d&&!t.inFlow&&g.length>1024){if(c)throw new Error("With simple keys, single line scalar must not span more than 1024 characters");d=!0}if(t.inFlow){if(r||e==null)return p&&i&&i(),g===""?"?":d?`? ${g}`:g}else if(r&&!c||e==null&&d)return g=`? ${g}`,u&&!p?g+=$e(g,t.indent,h(u)):m&&n&&n(),g;p&&(u=null),d?(u&&(g+=$e(g,t.indent,h(u))),g=`? ${g}\n${l}:`):(g=`${g}:`,u&&(g+=$e(g,t.indent,h(u))));let b,v,C;_(e)?(b=!!e.spaceBefore,v=e.commentBefore,C=e.comment):(b=!1,v=null,C=null,e&&typeof e=="object"&&(e=o.createNode(e))),t.implicitKey=!1,!d&&!u&&$(e)&&(t.indentAtStart=g.length+1),m=!1,!f&&a.length>=2&&!t.inFlow&&!d&&De(e)&&!e.flow&&!e.tag&&!e.anchor&&(t.indent=t.indent.substring(2));let M=!1,S=mt(e,t,()=>M=!0,()=>m=!0),w=" ";if(u||b||v){if(w=b?`\n`:"",v){let L=h(v);w+=`\n${Pe(L,t.indent)}`}S===""&&!t.inFlow?w===`\n`&&(w=`\n\n`):w+=`\n${t.indent}`}else if(!d&&W(e)){let L=S[0],N=S.indexOf(`\n`),x=N!==-1,D=(O=(A=t.inFlow)!=null?A:e.flow)!=null?O:e.items.length===0;if(x||!D){let I=!1;if(x&&(L==="&"||L==="!")){let E=S.indexOf(" ");L==="&"&&E!==-1&&Es===jh||$(s)&&s.value===jh&&(!s.type||s.type===P.PLAIN);function zo(s,e,t){let i=s&&Ne(t)?t.resolve(s.doc):t;if(!Ee(i))throw new Error("Merge sources must be maps or map aliases");let n=i.toJSON(null,s,Map);for(let[r,o]of n)e instanceof Map?e.has(r)||e.set(r,o):e instanceof Set?e.add(r):Object.prototype.hasOwnProperty.call(e,r)||Object.defineProperty(e,r,{value:o,writable:!0,enumerable:!0,configurable:!0});return e}function Qu(s,e,t){if(e===null)return"";if(typeof e!="object")return String(e);if(_(s)&&(t!=null&&t.doc)){let i=Nn(t.doc,{});i.anchors=new Set;for(let r of t.anchors.keys())i.anchors.add(r.anchor);i.inFlow=!0,i.inStringifyKey=!0;let n=s.toString(i);if(!t.mapKeyWarned){let r=JSON.stringify(n);r.length>40&&(r=r.substring(0,36)+\'..."\'),En(t.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${r}. Set mapAsMap: true to use object keys.`),t.mapKeyWarned=!0}return n}return JSON.stringify(e)}function bi(s,e,t){let i=dt(s,void 0,t),n=dt(e,void 0,t);return new J(i,n)}var J=class s{constructor(e,t=null){Object.defineProperty(this,ue,{value:Ho}),this.key=e,this.value=t}clone(e){let{key:t,value:i}=this;return _(t)&&(t=t.clone(e)),_(i)&&(i=i.clone(e)),new s(t,i)}toJSON(e,t){let i=t!=null&&t.mapAsMap?new Map:{};return Dn(t,i,this)}toString(e,t,i){return e!=null&&e.doc?qh(this,e,t,i):JSON.stringify(this)}};function Pn(s,e,t){var r;return(((r=e.inFlow)!=null?r:s.flow)?ed:Zu)(s,e,t)}function Zu({comment:s,items:e},t,{blockItemPrefix:i,flowChars:n,itemIndent:r,onChompKeep:o,onComment:l}){let{indent:a,options:{commentString:h}}=t,f=Object.assign({},t,{indent:r,type:null}),c=!1,u=[];for(let p=0;pg=null,()=>c=!0);g&&(b+=$e(b,r,h(g))),c&&g&&(c=!1),u.push(i+b)}let d;if(u.length===0)d=n.start+n.end;else{d=u[0];for(let p=1;pC=null);bu||M.includes(`\n`))&&(c=!0),d.push(M),u=d.length}let p,{start:m,end:g}=i;if(d.length===0)p=m+g;else{if(!c){let b=d.reduce((v,C)=>v+C.length+2,2);c=t.options.lineWidth>0&&b>t.options.lineWidth}if(c){p=m;for(let b of d)p+=b?`\n${l}${o}${b}`:`\n`;p+=`\n${o}${g}`}else p=`${m}${a}${d.join(" ")}${a}${g}`}return s&&(p+=$e(p,o,h(s)),r&&r()),p}function Ln({indent:s,options:{commentString:e}},t,i,n){if(i&&n&&(i=i.replace(/^\\n+/,"")),i){let r=Pe(e(i),s);t.push(r.trimStart())}}function Tt(s,e){let t=$(e)?e.value:e;for(let i of s)if(H(i)&&(i.key===e||i.key===t||$(i.key)&&i.key.value===t))return i}var X=class extends jt{static get tagName(){return"tag:yaml.org,2002:map"}constructor(e){super(Fe,e),this.items=[]}static from(e,t,i){let{keepUndefined:n,replacer:r}=i,o=new this(e),l=(a,h)=>{if(typeof r=="function")h=r.call(t,a,h);else if(Array.isArray(r)&&!r.includes(a))return;(h!==void 0||n)&&o.items.push(bi(a,h,i))};if(t instanceof Map)for(let[a,h]of t)l(a,h);else if(t&&typeof t=="object")for(let a of Object.keys(t))l(a,t[a]);return typeof e.sortMapEntries=="function"&&o.items.sort(e.sortMapEntries),o}add(e,t){var o;let i;H(e)?i=e:!e||typeof e!="object"||!("key"in e)?i=new J(e,e==null?void 0:e.value):i=new J(e.key,e.value);let n=Tt(this.items,i.key),r=(o=this.schema)==null?void 0:o.sortMapEntries;if(n){if(!t)throw new Error(`Key ${i.key} already set`);$(n.value)&&An(i.value)?n.value.value=i.value:n.value=i.value}else if(r){let l=this.items.findIndex(a=>r(i,a)<0);l===-1?this.items.push(i):this.items.splice(l,0,i)}else this.items.push(i)}delete(e){let t=Tt(this.items,e);return t?this.items.splice(this.items.indexOf(t),1).length>0:!1}get(e,t){var r;let i=Tt(this.items,e),n=i==null?void 0:i.value;return(r=!t&&$(n)?n.value:n)!=null?r:void 0}has(e){return!!Tt(this.items,e)}set(e,t){this.add(new J(e,t),!0)}toJSON(e,t,i){let n=i?new i:t!=null&&t.mapAsMap?new Map:{};t!=null&&t.onCreate&&t.onCreate(n);for(let r of this.items)Dn(t,n,r);return n}toString(e,t,i){if(!e)return JSON.stringify(this);for(let n of this.items)if(!H(n))throw new Error(`Map items must all be pairs; found ${JSON.stringify(n)} instead`);return!e.allNullValues&&this.hasAllNullValues(!1)&&(e=Object.assign({},e,{allNullValues:!0})),Pn(this,e,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:e.indent||"",onChompKeep:i,onComment:t})}};var Ve={collection:"map",default:!0,nodeClass:X,tag:"tag:yaml.org,2002:map",resolve(s,e){return Ee(s)||e("Expected a mapping for this tag"),s},createNode:(s,e,t)=>X.from(s,e,t)};var oe=class extends jt{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(e){super(ut,e),this.items=[]}add(e){this.items.push(e)}delete(e){let t=Bn(e);return typeof t!="number"?!1:this.items.splice(t,1).length>0}get(e,t){let i=Bn(e);if(typeof i!="number")return;let n=this.items[i];return!t&&$(n)?n.value:n}has(e){let t=Bn(e);return typeof t=="number"&&t=0?e:null}var He={collection:"seq",default:!0,nodeClass:oe,tag:"tag:yaml.org,2002:seq",resolve(s,e){return De(s)||e("Expected a sequence for this tag"),s},createNode:(s,e,t)=>oe.from(s,e,t)};var Nt={identify:s=>typeof s=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:s=>s,stringify(s,e,t,i){return e=Object.assign({actualString:!0},e),pt(s,e,t,i)}};var zt={identify:s=>s==null,createNode:()=>new P(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new P(null),stringify:({source:s},e)=>typeof s=="string"&&zt.test.test(s)?s:e.options.nullStr};var ls={identify:s=>typeof s=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:s=>new P(s[0]==="t"||s[0]==="T"),stringify({source:s,value:e},t){if(s&&ls.test.test(s)){let i=s[0]==="t"||s[0]==="T";if(e===i)return s}return e?t.options.trueStr:t.options.falseStr}};function fe({format:s,minFractionDigits:e,tag:t,value:i}){if(typeof i=="bigint")return String(i);let n=typeof i=="number"?i:Number(i);if(!isFinite(n))return isNaN(n)?".nan":n<0?"-.inf":".inf";let r=JSON.stringify(i);if(!s&&e&&(!t||t==="tag:yaml.org,2002:float")&&/^\\d/.test(r)){let o=r.indexOf(".");o<0&&(o=r.length,r+=".");let l=e-(r.length-o-1);for(;l-- >0;)r+="0"}return r}var In={identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\\.(?:inf|Inf|INF|nan|NaN|NAN))$/,resolve:s=>s.slice(-3).toLowerCase()==="nan"?NaN:s[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:fe},Rn={identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\\.[0-9]+|[0-9]+(?:\\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:s=>parseFloat(s),stringify(s){let e=Number(s.value);return isFinite(e)?e.toExponential():fe(s)}},Fn={identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\\.[0-9]+|[0-9]+\\.[0-9]*)$/,resolve(s){let e=new P(parseFloat(s)),t=s.indexOf(".");return t!==-1&&s[s.length-1]==="0"&&(e.minFractionDigits=s.length-t-1),e},stringify:fe};var $n=s=>typeof s=="bigint"||Number.isInteger(s),Uo=(s,e,t,{intAsBigInt:i})=>i?BigInt(s):parseInt(s.substring(e),t);function zh(s,e,t){let{value:i}=s;return $n(i)&&i>=0?t+i.toString(e):fe(s)}var Vn={identify:s=>$n(s)&&s>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(s,e,t)=>Uo(s,2,8,t),stringify:s=>zh(s,8,"0o")},Hn={identify:$n,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(s,e,t)=>Uo(s,0,10,t),stringify:fe},_n={identify:s=>$n(s)&&s>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(s,e,t)=>Uo(s,2,16,t),stringify:s=>zh(s,16,"0x")};var Uh=[Ve,He,Nt,zt,ls,Vn,Hn,_n,In,Rn,Fn];function Gh(s){return typeof s=="bigint"||Number.isInteger(s)}var Wn=({value:s})=>JSON.stringify(s),td=[{identify:s=>typeof s=="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:s=>s,stringify:Wn},{identify:s=>s==null,createNode:()=>new P(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Wn},{identify:s=>typeof s=="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true|false$/,resolve:s=>s==="true",stringify:Wn},{identify:Gh,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(s,e,{intAsBigInt:t})=>t?BigInt(s):parseInt(s,10),stringify:({value:s})=>Gh(s)?s.toString():JSON.stringify(s)},{identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:s=>parseFloat(s),stringify:Wn}],id={default:!0,tag:"",test:/^/,resolve(s,e){return e(`Unresolved plain scalar ${JSON.stringify(s)}`),s}},Jh=[Ve,He].concat(td,id);var as={identify:s=>s instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(s,e){if(typeof Buffer=="function")return Buffer.from(s,"base64");if(typeof atob=="function"){let t=atob(s.replace(/[\\n\\r]/g,"")),i=new Uint8Array(t.length);for(let n=0;n1&&e("Each pair must have its own sequence indicator");let r=n.items[0]||new J(new P(null));if(n.commentBefore&&(r.key.commentBefore=r.key.commentBefore?`${n.commentBefore}\n${r.key.commentBefore}`:n.commentBefore),n.comment){let o=(t=r.value)!=null?t:r.key;o.comment=o.comment?`${n.comment}\n${o.comment}`:n.comment}n=r}s.items[i]=H(n)?n:new J(n)}}else e("Expected a sequence for this tag");return s}function Jo(s,e,t){let{replacer:i}=t,n=new oe(s);n.tag="tag:yaml.org,2002:pairs";let r=0;if(e&&Symbol.iterator in Object(e))for(let o of e){typeof i=="function"&&(o=i.call(e,String(r++),o));let l,a;if(Array.isArray(o))if(o.length===2)l=o[0],a=o[1];else throw new TypeError(`Expected [key, value] tuple: ${o}`);else if(o&&o instanceof Object){let h=Object.keys(o);if(h.length===1)l=h[0],a=o[l];else throw new TypeError(`Expected tuple with one key, not ${h.length} keys`)}else l=o;n.items.push(bi(l,a,t))}return n}var hs={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:Go,createNode:Jo};var wi=class s extends oe{constructor(){super(),this.add=X.prototype.add.bind(this),this.delete=X.prototype.delete.bind(this),this.get=X.prototype.get.bind(this),this.has=X.prototype.has.bind(this),this.set=X.prototype.set.bind(this),this.tag=s.tag}toJSON(e,t){if(!t)return super.toJSON(e);let i=new Map;t!=null&&t.onCreate&&t.onCreate(i);for(let n of this.items){let r,o;if(H(n)?(r=se(n.key,"",t),o=se(n.value,r,t)):r=se(n,"",t),i.has(r))throw new Error("Ordered maps must not include duplicate keys");i.set(r,o)}return i}static from(e,t,i){let n=Jo(e,t,i),r=new this;return r.items=n.items,r}};wi.tag="tag:yaml.org,2002:omap";var fs={collection:"seq",identify:s=>s instanceof Map,nodeClass:wi,default:!1,tag:"tag:yaml.org,2002:omap",resolve(s,e){let t=Go(s,e),i=[];for(let{key:n}of t.items)$(n)&&(i.includes(n.value)?e(`Ordered maps must not include duplicate keys: ${n.value}`):i.push(n.value));return Object.assign(new wi,t)},createNode:(s,e,t)=>wi.from(s,e,t)};function Yh({value:s,source:e},t){return e&&(s?Yo:Xo).test.test(e)?e:s?t.options.trueStr:t.options.falseStr}var Yo={identify:s=>s===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new P(!0),stringify:Yh},Xo={identify:s=>s===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/i,resolve:()=>new P(!1),stringify:Yh};var Xh={identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?\\.(?:inf|Inf|INF|nan|NaN|NAN)$/,resolve:s=>s.slice(-3).toLowerCase()==="nan"?NaN:s[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:fe},Qh={identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:s=>parseFloat(s.replace(/_/g,"")),stringify(s){let e=Number(s.value);return isFinite(e)?e.toExponential():fe(s)}},Zh={identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\\.[0-9_]*$/,resolve(s){let e=new P(parseFloat(s.replace(/_/g,""))),t=s.indexOf(".");if(t!==-1){let i=s.substring(t+1).replace(/_/g,"");i[i.length-1]==="0"&&(e.minFractionDigits=i.length)}return e},stringify:fe};var cs=s=>typeof s=="bigint"||Number.isInteger(s);function Kn(s,e,t,{intAsBigInt:i}){let n=s[0];if((n==="-"||n==="+")&&(e+=1),s=s.substring(e).replace(/_/g,""),i){switch(t){case 2:s=`0b${s}`;break;case 8:s=`0o${s}`;break;case 16:s=`0x${s}`;break}let o=BigInt(s);return n==="-"?BigInt(-1)*o:o}let r=parseInt(s,t);return n==="-"?-1*r:r}function Qo(s,e,t){let{value:i}=s;if(cs(i)){let n=i.toString(e);return i<0?"-"+t+n.substr(1):t+n}return fe(s)}var ef={identify:cs,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(s,e,t)=>Kn(s,2,2,t),stringify:s=>Qo(s,2,"0b")},tf={identify:cs,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(s,e,t)=>Kn(s,1,8,t),stringify:s=>Qo(s,8,"0")},sf={identify:cs,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(s,e,t)=>Kn(s,0,10,t),stringify:fe},nf={identify:cs,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(s,e,t)=>Kn(s,2,16,t),stringify:s=>Qo(s,16,"0x")};var ki=class s extends X{constructor(e){super(e),this.tag=s.tag}add(e){let t;H(e)?t=e:e&&typeof e=="object"&&"key"in e&&"value"in e&&e.value===null?t=new J(e.key,null):t=new J(e,null),Tt(this.items,t.key)||this.items.push(t)}get(e,t){let i=Tt(this.items,e);return!t&&H(i)?$(i.key)?i.key.value:i.key:i}set(e,t){if(typeof t!="boolean")throw new Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof t}`);let i=Tt(this.items,e);i&&!t?this.items.splice(this.items.indexOf(i),1):!i&&t&&this.items.push(new J(e))}toJSON(e,t){return super.toJSON(e,t,Set)}toString(e,t,i){if(!e)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},e,{allNullValues:!0}),t,i);throw new Error("Set items must all have null values")}static from(e,t,i){let{replacer:n}=i,r=new this(e);if(t&&Symbol.iterator in Object(t))for(let o of t)typeof n=="function"&&(o=n.call(t,o,o)),r.items.push(bi(o,null,i));return r}};ki.tag="tag:yaml.org,2002:set";var us={collection:"map",identify:s=>s instanceof Set,nodeClass:ki,default:!1,tag:"tag:yaml.org,2002:set",createNode:(s,e,t)=>ki.from(s,e,t),resolve(s,e){if(Ee(s)){if(s.hasAllNullValues(!0))return Object.assign(new ki,s);e("Set items must all have null values")}else e("Expected a mapping for this tag");return s}};function Zo(s,e){let t=s[0],i=t==="-"||t==="+"?s.substring(1):s,n=o=>e?BigInt(o):Number(o),r=i.replace(/_/g,"").split(":").reduce((o,l)=>o*n(60)+n(l),n(0));return t==="-"?n(-1)*r:r}function rf(s){let{value:e}=s,t=o=>o;if(typeof e=="bigint")t=o=>BigInt(o);else if(isNaN(e)||!isFinite(e))return fe(s);let i="";e<0&&(i="-",e*=t(-1));let n=t(60),r=[e%n];return e<60?r.unshift(0):(e=(e-r[0])/n,r.unshift(e%n),e>=60&&(e=(e-r[0])/n,r.unshift(e))),i+r.map(o=>String(o).padStart(2,"0")).join(":").replace(/000000\\d*$/,"")}var qn={identify:s=>typeof s=="bigint"||Number.isInteger(s),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(s,e,{intAsBigInt:t})=>Zo(s,t),stringify:rf},jn={identify:s=>typeof s=="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*$/,resolve:s=>Zo(s,!1),stringify:rf},Si={identify:s=>s instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\\\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\\\.[0-9]+)?)(?:[ \\\\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(s){let e=s.match(Si.test);if(!e)throw new Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,t,i,n,r,o,l]=e.map(Number),a=e[7]?Number((e[7]+"00").substr(1,3)):0,h=Date.UTC(t,i-1,n,r||0,o||0,l||0,a),f=e[8];if(f&&f!=="Z"){let c=Zo(f,!1);Math.abs(c)<30&&(c*=60),h-=6e4*c}return new Date(h)},stringify:({value:s})=>s.toISOString().replace(/((T00:00)?:00)?\\.000Z$/,"")};var el=[Ve,He,Nt,zt,Yo,Xo,ef,tf,sf,nf,Xh,Qh,Zh,as,fs,hs,us,qn,jn,Si];var of=new Map([["core",Uh],["failsafe",[Ve,He,Nt]],["json",Jh],["yaml11",el],["yaml-1.1",el]]),lf={binary:as,bool:ls,float:Fn,floatExp:Rn,floatNaN:In,floatTime:jn,int:Hn,intHex:_n,intOct:Vn,intTime:qn,map:Ve,null:zt,omap:fs,pairs:hs,seq:He,set:us,timestamp:Si},af={"tag:yaml.org,2002:binary":as,"tag:yaml.org,2002:omap":fs,"tag:yaml.org,2002:pairs":hs,"tag:yaml.org,2002:set":us,"tag:yaml.org,2002:timestamp":Si};function zn(s,e){let t=of.get(e);if(!t)if(Array.isArray(s))t=[];else{let i=Array.from(of.keys()).filter(n=>n!=="yaml11").map(n=>JSON.stringify(n)).join(", ");throw new Error(`Unknown schema "${e}"; use one of ${i} or define customTags array`)}if(Array.isArray(s))for(let i of s)t=t.concat(i);else typeof s=="function"&&(t=s(t.slice()));return t.map(i=>{if(typeof i!="string")return i;let n=lf[i];if(n)return n;let r=Object.keys(lf).map(o=>JSON.stringify(o)).join(", ");throw new Error(`Unknown custom tag "${i}"; use one of ${r}`)})}var sd=(s,e)=>s.keye.key?1:0,vi=class s{constructor({compat:e,customTags:t,merge:i,resolveKnownTags:n,schema:r,sortMapEntries:o,toStringDefaults:l}){this.compat=Array.isArray(e)?zn(e,"compat"):e?zn(null,e):null,this.merge=!!i,this.name=typeof r=="string"&&r||"core",this.knownTags=n?af:{},this.tags=zn(t,this.name),this.toStringOptions=l!=null?l:null,Object.defineProperty(this,Fe,{value:Ve}),Object.defineProperty(this,Te,{value:Nt}),Object.defineProperty(this,ut,{value:He}),this.sortMapEntries=typeof o=="function"?o:o===!0?sd:null}clone(){let e=Object.create(s.prototype,Object.getOwnPropertyDescriptors(this));return e.tags=this.tags.slice(),e}};function hf(s,e){var a;let t=[],i=e.directives===!0;if(e.directives!==!1&&s.directives){let h=s.directives.toString(s);h?(t.push(h),i=!0):s.directives.docStart&&(i=!0)}i&&t.push("---");let n=Nn(s,e),{commentString:r}=n.options;if(s.commentBefore){t.length!==1&&t.unshift("");let h=r(s.commentBefore);t.unshift(Pe(h,""))}let o=!1,l=null;if(s.contents){if(_(s.contents)){if(s.contents.spaceBefore&&i&&t.push(""),s.contents.commentBefore){let c=r(s.contents.commentBefore);t.push(Pe(c,""))}n.forceBlockIndent=!!s.comment,l=s.contents.comment}let h=l?void 0:()=>o=!0,f=mt(s.contents,n,()=>l=null,h);l&&(f+=$e(f,"",r(l))),(f[0]==="|"||f[0]===">")&&t[t.length-1]==="---"?t[t.length-1]=`--- ${f}`:t.push(f)}else t.push(mt(s.contents,n));if((a=s.directives)!=null&&a.docEnd)if(s.comment){let h=r(s.comment);h.includes(`\n`)?(t.push("..."),t.push(Pe(h,""))):t.push(`... ${h}`)}else t.push("...");else{let h=s.comment;h&&o&&(h=h.replace(/^\\n+/,"")),h&&((!o||l)&&t[t.length-1]!==""&&t.push(""),t.push(Pe(r(h),"")))}return t.join(`\n`)+`\n`}var et=class s{constructor(e,t,i){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,ue,{value:Sn});let n=null;typeof t=="function"||Array.isArray(t)?n=t:i===void 0&&t&&(i=t,t=void 0);let r=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,uniqueKeys:!0,version:"1.2"},i);this.options=r;let{version:o}=r;i!=null&&i._directives?(this.directives=i._directives.atDocument(),this.directives.yaml.explicit&&(o=this.directives.yaml.version)):this.directives=new Qe({version:o}),this.setSchema(o,i),this.contents=e===void 0?null:this.createNode(e,n,i)}clone(){let e=Object.create(s.prototype,{[ue]:{value:Sn}});return e.commentBefore=this.commentBefore,e.comment=this.comment,e.errors=this.errors.slice(),e.warnings=this.warnings.slice(),e.options=Object.assign({},this.options),this.directives&&(e.directives=this.directives.clone()),e.schema=this.schema.clone(),e.contents=_(this.contents)?this.contents.clone(e.schema):this.contents,this.range&&(e.range=this.range.slice()),e}add(e){xi(this.contents)&&this.contents.add(e)}addIn(e,t){xi(this.contents)&&this.contents.addIn(e,t)}createAlias(e,t){if(!e.anchor){let i=_o(this);e.anchor=!t||i.has(t)?Wo(t||"a",i):t}return new Ze(e.anchor)}createNode(e,t,i){let n;if(typeof t=="function")e=t.call({"":e},"",e),n=t;else if(Array.isArray(t)){let g=v=>typeof v=="number"||v instanceof String||v instanceof Number,b=t.filter(g).map(String);b.length>0&&(t=t.concat(b)),n=t}else i===void 0&&t&&(i=t,t=void 0);let{aliasDuplicateObjects:r,anchorPrefix:o,flow:l,keepUndefined:a,onTagObj:h,tag:f}=i!=null?i:{},{onAnchor:c,setAnchors:u,sourceObjects:d}=_h(this,o||"a"),p={aliasDuplicateObjects:r!=null?r:!0,keepUndefined:a!=null?a:!1,onAnchor:c,onTagObj:h,replacer:n,schema:this.schema,sourceObjects:d},m=dt(e,f,p);return l&&W(m)&&(m.flow=!0),u(),m}createPair(e,t,i={}){let n=this.createNode(e,null,i),r=this.createNode(t,null,i);return new J(n,r)}delete(e){return xi(this.contents)?this.contents.delete(e):!1}deleteIn(e){return gi(e)?this.contents==null?!1:(this.contents=null,!0):xi(this.contents)?this.contents.deleteIn(e):!1}get(e,t){return W(this.contents)?this.contents.get(e,t):void 0}getIn(e,t){return gi(e)?!t&&$(this.contents)?this.contents.value:this.contents:W(this.contents)?this.contents.getIn(e,t):void 0}has(e){return W(this.contents)?this.contents.has(e):!1}hasIn(e){return gi(e)?this.contents!==void 0:W(this.contents)?this.contents.hasIn(e):!1}set(e,t){this.contents==null?this.contents=ss(this.schema,[e],t):xi(this.contents)&&this.contents.set(e,t)}setIn(e,t){gi(e)?this.contents=t:this.contents==null?this.contents=ss(this.schema,Array.from(e),t):xi(this.contents)&&this.contents.setIn(e,t)}setSchema(e,t={}){typeof e=="number"&&(e=String(e));let i;switch(e){case"1.1":this.directives?this.directives.yaml.version="1.1":this.directives=new Qe({version:"1.1"}),i={merge:!0,resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":this.directives?this.directives.yaml.version=e:this.directives=new Qe({version:e}),i={merge:!1,resolveKnownTags:!0,schema:"core"};break;case null:this.directives&&delete this.directives,i=null;break;default:{let n=JSON.stringify(e);throw new Error(`Expected \'1.1\', \'1.2\' or null as first argument, but found: ${n}`)}}if(t.schema instanceof Object)this.schema=t.schema;else if(i)this.schema=new vi(Object.assign(i,t));else throw new Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:e,jsonArg:t,mapAsMap:i,maxAliasCount:n,onAnchor:r,reviver:o}={}){let l={anchors:new Map,doc:this,keep:!e,mapAsMap:i===!0,mapKeyWarned:!1,maxAliasCount:typeof n=="number"?n:100},a=se(this.contents,t!=null?t:"",l);if(typeof r=="function")for(let{count:h,res:f}of l.anchors.values())r(f,h);return typeof o=="function"?Mt(o,{"":a},"",a):a}toJSON(e,t){return this.toJS({json:!0,jsonArg:e,mapAsMap:!1,onAnchor:t})}toString(e={}){if(this.errors.length>0)throw new Error("Document with errors cannot be stringified");if("indent"in e&&(!Number.isInteger(e.indent)||Number(e.indent)<=0)){let t=JSON.stringify(e.indent);throw new Error(`"indent" option must be a positive integer, not ${t}`)}return hf(this,e)}};function xi(s){if(W(s))return!0;throw new Error("Expected a YAML collection as document contents")}var Ai=class extends Error{constructor(e,t,i,n){super(),this.name=e,this.code=i,this.message=n,this.pos=t}},ve=class extends Ai{constructor(e,t,i){super("YAMLParseError",e,t,i)}},Ci=class extends Ai{constructor(e,t,i){super("YAMLWarning",e,t,i)}},ds=(s,e)=>t=>{if(t.pos[0]===-1)return;t.linePos=t.pos.map(l=>e.linePos(l));let{line:i,col:n}=t.linePos[0];t.message+=` at line ${i}, column ${n}`;let r=n-1,o=s.substring(e.lineStarts[i-1],e.lineStarts[i]).replace(/[\\n\\r]+$/,"");if(r>=60&&o.length>80){let l=Math.min(r-39,o.length-79);o="\\u2026"+o.substring(l),r-=l-1}if(o.length>80&&(o=o.substring(0,79)+"\\u2026"),i>1&&/^ *$/.test(o.substring(0,r))){let l=s.substring(e.lineStarts[i-2],e.lineStarts[i-1]);l.length>80&&(l=l.substring(0,79)+`\\u2026\n`),o=l+o}if(/[^ ]/.test(o)){let l=1,a=t.linePos[1];a&&a.line===i&&a.col>n&&(l=Math.max(1,Math.min(a.col-n,80-r)));let h=" ".repeat(r)+"^".repeat(l);t.message+=`:\n\n${o}\n${h}\n`}};function tt(s,{flow:e,indicator:t,next:i,offset:n,onError:r,startOnNewline:o}){let l=!1,a=o,h=o,f="",c="",u=!1,d=!1,p=!1,m=null,g=null,b=null,v=null,C=null;for(let w of s)switch(p&&(w.type!=="space"&&w.type!=="newline"&&w.type!=="comma"&&r(w.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),p=!1),w.type){case"space":!e&&a&&t!=="doc-start"&&w.source[0]===" "&&r(w,"TAB_AS_INDENT","Tabs are not allowed as indentation"),h=!0;break;case"comment":{h||r(w,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let A=w.source.substring(1)||" ";f?f+=c+A:f=A,c="",a=!1;break}case"newline":a?f?f+=w.source:l=!0:c+=w.source,a=!0,u=!0,(m||g)&&(d=!0),h=!0;break;case"anchor":m&&r(w,"MULTIPLE_ANCHORS","A node can have at most one anchor"),w.source.endsWith(":")&&r(w.offset+w.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0),m=w,C===null&&(C=w.offset),a=!1,h=!1,p=!0;break;case"tag":{g&&r(w,"MULTIPLE_TAGS","A node can have at most one tag"),g=w,C===null&&(C=w.offset),a=!1,h=!1,p=!0;break}case t:(m||g)&&r(w,"BAD_PROP_ORDER",`Anchors and tags must be after the ${w.source} indicator`),v&&r(w,"UNEXPECTED_TOKEN",`Unexpected ${w.source} in ${e!=null?e:"collection"}`),v=w,a=!1,h=!1;break;case"comma":if(e){b&&r(w,"UNEXPECTED_TOKEN",`Unexpected , in ${e}`),b=w,a=!1,h=!1;break}default:r(w,"UNEXPECTED_TOKEN",`Unexpected ${w.type} token`),a=!1,h=!1}let M=s[s.length-1],S=M?M.offset+M.source.length:n;return p&&i&&i.type!=="space"&&i.type!=="newline"&&i.type!=="comma"&&(i.type!=="scalar"||i.source!=="")&&r(i.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space"),{comma:b,found:v,spaceBefore:l,comment:f,hasNewline:u,hasNewlineAfterProp:d,anchor:m,tag:g,end:S,start:C!=null?C:S}}function Et(s){if(!s)return null;switch(s.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(s.source.includes(`\n`))return!0;if(s.end){for(let e of s.end)if(e.type==="newline")return!0}return!1;case"flow-collection":for(let e of s.items){for(let t of e.start)if(t.type==="newline")return!0;if(e.sep){for(let t of e.sep)if(t.type==="newline")return!0}if(Et(e.key)||Et(e.value))return!0}return!1;default:return!0}}function ps(s,e,t){if((e==null?void 0:e.type)==="flow-collection"){let i=e.end[0];i.indent===s&&(i.source==="]"||i.source==="}")&&Et(e)&&t(i,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}function Un(s,e,t){let{uniqueKeys:i}=s.options;if(i===!1)return!1;let n=typeof i=="function"?i:(r,o)=>r===o||$(r)&&$(o)&&r.value===o.value&&!(r.value==="<<"&&s.schema.merge);return e.some(r=>n(r.key,t))}var ff="All mapping items must start at the same column";function cf({composeNode:s,composeEmptyNode:e},t,i,n,r){var f,c;let o=(f=r==null?void 0:r.nodeClass)!=null?f:X,l=new o(t.schema);t.atRoot&&(t.atRoot=!1);let a=i.offset,h=null;for(let u of i.items){let{start:d,key:p,sep:m,value:g}=u,b=tt(d,{indicator:"explicit-key-ind",next:p!=null?p:m==null?void 0:m[0],offset:a,onError:n,startOnNewline:!0}),v=!b.found;if(v){if(p&&(p.type==="block-seq"?n(a,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key"):"indent"in p&&p.indent!==i.indent&&n(a,"BAD_INDENT",ff)),!b.anchor&&!b.tag&&!m){h=b.end,b.comment&&(l.comment?l.comment+=`\n`+b.comment:l.comment=b.comment);continue}(b.hasNewlineAfterProp||Et(p))&&n(p!=null?p:d[d.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else((c=b.found)==null?void 0:c.indent)!==i.indent&&n(a,"BAD_INDENT",ff);let C=b.end,M=p?s(t,p,b,n):e(t,C,d,null,b,n);t.schema.compat&&ps(i.indent,p,n),Un(t,l.items,M)&&n(C,"DUPLICATE_KEY","Map keys must be unique");let S=tt(m!=null?m:[],{indicator:"map-value-ind",next:g,offset:M.range[2],onError:n,startOnNewline:!p||p.type==="block-scalar"});if(a=S.end,S.found){v&&((g==null?void 0:g.type)==="block-map"&&!S.hasNewline&&n(a,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings"),t.options.strict&&b.starts&&(s.type==="block-map"||s.type==="block-seq");function df({composeNode:s,composeEmptyNode:e},t,i,n,r){var g,b;let o=i.start.source==="{",l=o?"flow map":"flow sequence",a=(g=r==null?void 0:r.nodeClass)!=null?g:o?X:oe,h=new a(t.schema);h.flow=!0;let f=t.atRoot;f&&(t.atRoot=!1);let c=i.offset+i.start.source.length;for(let v=0;v0){let v=it(p,m,t.options.strict,n);v.comment&&(h.comment?h.comment+=`\n`+v.comment:h.comment=v.comment),h.range=[i.offset,m,v.offset]}else h.range=[i.offset,m,m];return h}function sl(s,e,t,i,n,r){let o=t.type==="block-map"?cf(s,e,t,i,r):t.type==="block-seq"?uf(s,e,t,i,r):df(s,e,t,i,r),l=o.constructor;return n==="!"||n===l.tagName?(o.tag=l.tagName,o):(n&&(o.tag=n),o)}function pf(s,e,t,i,n){var c,u;let r=i?e.directives.tagName(i.source,d=>n(i,"TAG_RESOLVE_FAILED",d)):null,o=t.type==="block-map"?"map":t.type==="block-seq"?"seq":t.start.source==="{"?"map":"seq";if(!i||!r||r==="!"||r===X.tagName&&o==="map"||r===oe.tagName&&o==="seq"||!o)return sl(s,e,t,n,r);let l=e.schema.tags.find(d=>d.tag===r&&d.collection===o);if(!l){let d=e.schema.knownTags[r];if(d&&d.collection===o)e.schema.tags.push(Object.assign({},d,{default:!1})),l=d;else return d!=null&&d.collection?n(i,"BAD_COLLECTION_TYPE",`${d.tag} used for ${o} collection, but expects ${d.collection}`,!0):n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${r}`,!0),sl(s,e,t,n,r)}let a=sl(s,e,t,n,r,l),h=(u=(c=l.resolve)==null?void 0:c.call(l,a,d=>n(i,"TAG_RESOLVE_FAILED",d),e.options))!=null?u:a,f=_(h)?h:new P(h);return f.range=a.range,f.tag=r,l!=null&&l.format&&(f.format=l.format),f}function Gn(s,e,t){let i=s.offset,n=nd(s,e,t);if(!n)return{value:"",type:null,comment:"",range:[i,i,i]};let r=n.mode===">"?P.BLOCK_FOLDED:P.BLOCK_LITERAL,o=s.source?rd(s.source):[],l=o.length;for(let m=o.length-1;m>=0;--m){let g=o[m][1];if(g===""||g==="\\r")l=m;else break}if(l===0){let m=n.chomp==="+"&&o.length>0?`\n`.repeat(Math.max(1,o.length-1)):"",g=i+n.length;return s.source&&(g+=s.source.length),{value:m,type:r,comment:n.comment,range:[i,g,g]}}let a=s.indent+n.indent,h=s.offset+n.length,f=0;for(let m=0;ma&&(a=g.length);else{g.length=l;--m)o[m][0].length>a&&(l=m+1);let c="",u="",d=!1;for(let m=0;ma||b[0]===" "?(u===" "?u=`\n`:!d&&u===`\n`&&(u=`\n\n`),c+=u+g.slice(a)+b,u=`\n`,d=!0):b===""?u===`\n`?c+=`\n`:u=`\n`:(c+=u+b,u=" ",d=!1)}switch(n.chomp){case"-":break;case"+":for(let m=l;mt(i+u,d,p);switch(n){case"scalar":l=P.PLAIN,a=od(r,h);break;case"single-quoted-scalar":l=P.QUOTE_SINGLE,a=ld(r,h);break;case"double-quoted-scalar":l=P.QUOTE_DOUBLE,a=ad(r,h);break;default:return t(s,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${n}`),{value:"",type:null,comment:"",range:[i,i+r.length,i+r.length]}}let f=i+r.length,c=it(o,f,e,t);return{value:a,type:l,comment:c.comment,range:[i,f,c.offset]}}function od(s,e){let t="";switch(s[0]){case" ":t="a tab character";break;case",":t="flow indicator character ,";break;case"%":t="directive indicator character %";break;case"|":case">":{t=`block scalar indicator ${s[0]}`;break}case"@":case"`":{t=`reserved character ${s[0]}`;break}}return t&&e(0,"BAD_SCALAR_START",`Plain value cannot start with ${t}`),mf(s)}function ld(s,e){return(s[s.length-1]!=="\'"||s.length===1)&&e(s.length,"MISSING_CHAR","Missing closing \'quote"),mf(s.slice(1,-1)).replace(/\'\'/g,"\'")}function mf(s){var a;let e,t;try{e=new RegExp(`(.*?)(?r?s.slice(r,i+1):n)}else t+=n}return(s[s.length-1]!==\'"\'||s.length===1)&&e(s.length,"MISSING_CHAR",\'Missing closing "quote\'),t}function hd(s,e){let t="",i=s[e+1];for(;(i===" "||i===" "||i===`\n`||i==="\\r")&&!(i==="\\r"&&s[e+2]!==`\n`);)i===`\n`&&(t+=`\n`),e+=1,i=s[e+1];return t||(t=" "),{fold:t,offset:e}}var fd={0:"\\0",a:"\\x07",b:"\\b",e:"\\x1B",f:"\\f",n:`\n`,r:"\\r",t:" ",v:"\\v",N:"\\x85",_:"\\xA0",L:"\\u2028",P:"\\u2029"," ":" ",\'"\':\'"\',"/":"/","\\\\":"\\\\"," ":" "};function cd(s,e,t,i){let n=s.substr(e,t),o=n.length===t&&/^[0-9a-fA-F]+$/.test(n)?parseInt(n,16):NaN;if(isNaN(o)){let l=s.substr(e-2,t+2);return i(e-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${l}`),l}return String.fromCodePoint(o)}function nl(s,e,t,i){let{value:n,type:r,comment:o,range:l}=e.type==="block-scalar"?Gn(e,s.options.strict,i):Jn(e,s.options.strict,i),a=t?s.directives.tagName(t.source,c=>i(t,"TAG_RESOLVE_FAILED",c)):null,h=t&&a?ud(s.schema,n,a,t,i):e.type==="scalar"?dd(s,n,e,i):s.schema[Te],f;try{let c=h.resolve(n,u=>i(t!=null?t:e,"TAG_RESOLVE_FAILED",u),s.options);f=$(c)?c:new P(c)}catch(c){let u=c instanceof Error?c.message:String(c);i(t!=null?t:e,"TAG_RESOLVE_FAILED",u),f=new P(n)}return f.range=l,f.source=n,r&&(f.type=r),a&&(f.tag=a),h.format&&(f.format=h.format),o&&(f.comment=o),f}function ud(s,e,t,i,n){var l;if(t==="!")return s[Te];let r=[];for(let a of s.tags)if(!a.collection&&a.tag===t)if(a.default&&a.test)r.push(a);else return a;for(let a of r)if((l=a.test)!=null&&l.test(e))return a;let o=s.knownTags[t];return o&&!o.collection?(s.tags.push(Object.assign({},o,{default:!1,test:void 0})),o):(n(i,"TAG_RESOLVE_FAILED",`Unresolved tag: ${t}`,t!=="tag:yaml.org,2002:str"),s[Te])}function dd({directives:s,schema:e},t,i,n){var o;let r=e.tags.find(l=>{var a;return l.default&&((a=l.test)==null?void 0:a.test(t))})||e[Te];if(e.compat){let l=(o=e.compat.find(a=>{var h;return a.default&&((h=a.test)==null?void 0:h.test(t))}))!=null?o:e[Te];if(r.tag!==l.tag){let a=s.tagString(r.tag),h=s.tagString(l.tag),f=`Value may be parsed as either ${a} or ${h}`;n(i,"TAG_RESOLVE_FAILED",f,!0)}}return r}function gf(s,e,t){if(e){t===null&&(t=e.length);for(let i=t-1;i>=0;--i){let n=e[i];switch(n.type){case"space":case"comment":case"newline":s-=n.source.length;continue}for(n=e[++i];(n==null?void 0:n.type)==="space";)s+=n.source.length,n=e[++i];break}}return s}var pd={composeNode:rl,composeEmptyNode:Yn};function rl(s,e,t,i){let{spaceBefore:n,comment:r,anchor:o,tag:l}=t,a,h=!0;switch(e.type){case"alias":a=md(s,e,i),(o||l)&&i(e,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":a=nl(s,e,l,i),o&&(a.anchor=o.source.substring(1));break;case"block-map":case"block-seq":case"flow-collection":a=pf(pd,s,e,l,i),o&&(a.anchor=o.source.substring(1));break;default:{let f=e.type==="error"?e.message:`Unsupported token (type: ${e.type})`;i(e,"UNEXPECTED_TOKEN",f),a=Yn(s,e.offset,void 0,null,t,i),h=!1}}return o&&a.anchor===""&&i(o,"BAD_ALIAS","Anchor cannot be an empty string"),n&&(a.spaceBefore=!0),r&&(e.type==="scalar"&&e.source===""?a.comment=r:a.commentBefore=r),s.options.keepSourceTokens&&h&&(a.srcToken=e),a}function Yn(s,e,t,i,{spaceBefore:n,comment:r,anchor:o,tag:l,end:a},h){let f={type:"scalar",offset:gf(e,t,i),indent:-1,source:""},c=nl(s,f,l,h);return o&&(c.anchor=o.source.substring(1),c.anchor===""&&h(o,"BAD_ALIAS","Anchor cannot be an empty string")),n&&(c.spaceBefore=!0),r&&(c.comment=r,c.range[2]=a),c}function md({options:s},{offset:e,source:t,end:i},n){let r=new Ze(t.substring(1));r.source===""&&n(e,"BAD_ALIAS","Alias cannot be an empty string"),r.source.endsWith(":")&&n(e+t.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let o=e+t.length,l=it(i,o,s.strict,n);return r.range=[e,o,l.offset],l.comment&&(r.comment=l.comment),r}function yf(s,e,{offset:t,start:i,value:n,end:r},o){let l=Object.assign({_directives:e},s),a=new et(void 0,l),h={atRoot:!0,directives:a.directives,options:a.options,schema:a.schema},f=tt(i,{indicator:"doc-start",next:n!=null?n:r==null?void 0:r[0],offset:t,onError:o,startOnNewline:!0});f.found&&(a.directives.docStart=!0,n&&(n.type==="block-map"||n.type==="block-seq")&&!f.hasNewline&&o(f.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")),a.contents=n?rl(h,n,f,o):Yn(h,f.end,i,null,f,o);let c=a.contents.range[2],u=it(r,c,!1,o);return u.comment&&(a.comment=u.comment),a.range=[t,c,u.offset],a}function ms(s){if(typeof s=="number")return[s,s+1];if(Array.isArray(s))return s.length===2?s:[s[0],s[1]];let{offset:e,source:t}=s;return[e,e+(typeof t=="string"?t.length:1)]}function bf(s){var n;let e="",t=!1,i=!1;for(let r=0;r{let o=ms(t);r?this.warnings.push(new Ci(o,i,n)):this.errors.push(new ve(o,i,n))},this.directives=new Qe({version:e.version||"1.2"}),this.options=e}decorate(e,t){let{comment:i,afterEmptyLine:n}=bf(this.prelude);if(i){let r=e.contents;if(t)e.comment=e.comment?`${e.comment}\n${i}`:i;else if(n||e.directives.docStart||!r)e.commentBefore=i;else if(W(r)&&!r.flow&&r.items.length>0){let o=r.items[0];H(o)&&(o=o.key);let l=o.commentBefore;o.commentBefore=l?`${i}\n${l}`:i}else{let o=r.commentBefore;r.commentBefore=o?`${i}\n${o}`:i}}t?(Array.prototype.push.apply(e.errors,this.errors),Array.prototype.push.apply(e.warnings,this.warnings)):(e.errors=this.errors,e.warnings=this.warnings),this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:bf(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(e,t=!1,i=-1){for(let n of e)yield*k(this.next(n));yield*k(this.end(t,i))}*next(e){switch(e.type){case"directive":this.directives.add(e.source,(t,i,n)=>{let r=ms(e);r[0]+=t,this.onError(r,"BAD_DIRECTIVE",i,n)}),this.prelude.push(e.source),this.atDirectives=!0;break;case"document":{let t=yf(this.options,this.directives,e,this.onError);this.atDirectives&&!t.directives.docStart&&this.onError(e,"MISSING_CHAR","Missing directives-end/doc-start indicator line"),this.decorate(t,!1),this.doc&&(yield this.doc),this.doc=t,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(e.source);break;case"error":{let t=e.source?`${e.message}: ${JSON.stringify(e.source)}`:e.message,i=new ve(ms(e),"UNEXPECTED_TOKEN",t);this.atDirectives||!this.doc?this.errors.push(i):this.doc.errors.push(i);break}case"doc-end":{if(!this.doc){let i="Unexpected doc-end without preceding document";this.errors.push(new ve(ms(e),"UNEXPECTED_TOKEN",i));break}this.doc.directives.docEnd=!0;let t=it(e.end,e.offset+e.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),t.comment){let i=this.doc.comment;this.doc.comment=i?`${i}\n${t.comment}`:t.comment}this.doc.range[2]=t.offset;break}default:this.errors.push(new ve(ms(e),"UNEXPECTED_TOKEN",`Unsupported token ${e.type}`))}}*end(e=!1,t=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(e){let i=Object.assign({_directives:this.directives},this.options),n=new et(void 0,i);this.atDirectives&&this.onError(t,"MISSING_CHAR","Missing directives-end indicator line"),n.range=[0,t,t],this.decorate(n,!1),yield n}}};var hl={};vl(hl,{BOM:()=>gs,DOCUMENT:()=>ys,FLOW_END:()=>bs,SCALAR:()=>Mi,createScalarToken:()=>kf,isCollection:()=>bd,isScalar:()=>wd,prettyToken:()=>kd,resolveAsScalar:()=>wf,setScalarValue:()=>Sf,stringify:()=>xf,tokenType:()=>al,visit:()=>Dt});function wf(s,e=!0,t){if(s){let i=(n,r,o)=>{let l=typeof n=="number"?n:Array.isArray(n)?n[0]:n.offset;if(t)t(l,r,o);else throw new ve([l,l+1],r,o)};switch(s.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return Jn(s,e,i);case"block-scalar":return Gn(s,e,i)}}return null}function kf(s,e){var h;let{implicitKey:t=!1,indent:i,inFlow:n=!1,offset:r=-1,type:o="PLAIN"}=e,l=pt({type:o,value:s},{implicitKey:t,indent:i>0?" ".repeat(i):"",inFlow:n,options:{blockQuote:!0,lineWidth:-1}}),a=(h=e.end)!=null?h:[{type:"newline",offset:-1,indent:i,source:`\n`}];switch(l[0]){case"|":case">":{let f=l.indexOf(`\n`),c=l.substring(0,f),u=l.substring(f+1)+`\n`,d=[{type:"block-scalar-header",offset:r,indent:i,source:c}];return vf(d,a)||d.push({type:"newline",offset:-1,indent:i,source:`\n`}),{type:"block-scalar",offset:r,indent:i,props:d,source:u}}case\'"\':return{type:"double-quoted-scalar",offset:r,indent:i,source:l,end:a};case"\'":return{type:"single-quoted-scalar",offset:r,indent:i,source:l,end:a};default:return{type:"scalar",offset:r,indent:i,source:l,end:a}}}function Sf(s,e,t={}){let{afterKey:i=!1,implicitKey:n=!1,inFlow:r=!1,type:o}=t,l="indent"in s?s.indent:null;if(i&&typeof l=="number"&&(l+=2),!o)switch(s.type){case"single-quoted-scalar":o="QUOTE_SINGLE";break;case"double-quoted-scalar":o="QUOTE_DOUBLE";break;case"block-scalar":{let h=s.props[0];if(h.type!=="block-scalar-header")throw new Error("Invalid block scalar header");o=h.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:o="PLAIN"}let a=pt({type:o,value:e},{implicitKey:n||l===null,indent:l!==null&&l>0?" ".repeat(l):"",inFlow:r,options:{blockQuote:!0,lineWidth:-1}});switch(a[0]){case"|":case">":gd(s,a);break;case\'"\':ol(s,a,"double-quoted-scalar");break;case"\'":ol(s,a,"single-quoted-scalar");break;default:ol(s,a,"scalar")}}function gd(s,e){let t=e.indexOf(`\n`),i=e.substring(0,t),n=e.substring(t+1)+`\n`;if(s.type==="block-scalar"){let r=s.props[0];if(r.type!=="block-scalar-header")throw new Error("Invalid block scalar header");r.source=i,s.source=n}else{let{offset:r}=s,o="indent"in s?s.indent:-1,l=[{type:"block-scalar-header",offset:r,indent:o,source:i}];vf(l,"end"in s?s.end:void 0)||l.push({type:"newline",offset:-1,indent:o,source:`\n`});for(let a of Object.keys(s))a!=="type"&&a!=="offset"&&delete s[a];Object.assign(s,{type:"block-scalar",indent:o,props:l,source:n})}}function vf(s,e){if(e)for(let t of e)switch(t.type){case"space":case"comment":s.push(t);break;case"newline":return s.push(t),!0}return!1}function ol(s,e,t){switch(s.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":s.type=t,s.source=e;break;case"block-scalar":{let i=s.props.slice(1),n=e.length;s.props[0].type==="block-scalar-header"&&(n-=s.props[0].source.length);for(let r of i)r.offset+=n;delete s.props,Object.assign(s,{type:t,source:e,end:i});break}case"block-map":case"block-seq":{let n={type:"newline",offset:s.offset+e.length,indent:s.indent,source:`\n`};delete s.items,Object.assign(s,{type:t,source:e,end:[n]});break}default:{let i="indent"in s?s.indent:-1,n="end"in s&&Array.isArray(s.end)?s.end.filter(r=>r.type==="space"||r.type==="comment"||r.type==="newline"):[];for(let r of Object.keys(s))r!=="type"&&r!=="offset"&&delete s[r];Object.assign(s,{type:t,indent:i,source:e,end:n})}}}var xf=s=>"type"in s?Qn(s):Xn(s);function Qn(s){switch(s.type){case"block-scalar":{let e="";for(let t of s.props)e+=Qn(t);return e+s.source}case"block-map":case"block-seq":{let e="";for(let t of s.items)e+=Xn(t);return e}case"flow-collection":{let e=s.start.source;for(let t of s.items)e+=Xn(t);for(let t of s.end)e+=t.source;return e}case"document":{let e=Xn(s);if(s.end)for(let t of s.end)e+=t.source;return e}default:{let e=s.source;if("end"in s&&s.end)for(let t of s.end)e+=t.source;return e}}}function Xn({start:s,key:e,sep:t,value:i}){let n="";for(let r of s)n+=r.source;if(e&&(n+=Qn(e)),t)for(let r of t)n+=r.source;return i&&(n+=Qn(i)),n}var ll=Symbol("break visit"),yd=Symbol("skip children"),Af=Symbol("remove item");function Dt(s,e){"type"in s&&s.type==="document"&&(s={start:s.start,value:s.value}),Cf(Object.freeze([]),s,e)}Dt.BREAK=ll;Dt.SKIP=yd;Dt.REMOVE=Af;Dt.itemAtPath=(s,e)=>{let t=s;for(let[i,n]of e){let r=t==null?void 0:t[i];if(r&&"items"in r)t=r.items[n];else return}return t};Dt.parentCollection=(s,e)=>{let t=Dt.itemAtPath(s,e.slice(0,-1)),i=e[e.length-1][0],n=t==null?void 0:t[i];if(n&&"items"in n)return n;throw new Error("Parent collection not found")};function Cf(s,e,t){let i=t(e,s);if(typeof i=="symbol")return i;for(let n of["key","value"]){let r=e[n];if(r&&"items"in r){for(let o=0;o!!s&&"items"in s,wd=s=>!!s&&(s.type==="scalar"||s.type==="single-quoted-scalar"||s.type==="double-quoted-scalar"||s.type==="block-scalar");function kd(s){switch(s){case gs:return"";case ys:return"";case bs:return"";case Mi:return"";default:return JSON.stringify(s)}}function al(s){switch(s){case gs:return"byte-order-mark";case ys:return"doc-mode";case bs:return"flow-error-end";case Mi:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`\n`:case`\\r\n`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(s[0]){case" ":case" ":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"\'":return"single-quoted-scalar";case\'"\':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}function Be(s){switch(s){case void 0:case" ":case`\n`:case"\\r":case" ":return!0;default:return!1}}var Mf="0123456789ABCDEFabcdef".split(""),Sd="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*\'()".split(""),fl=",[]{}".split(""),vd=` ,[]{}\n\\r `.split(""),cl=s=>!s||vd.includes(s),Oi=class{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(e,t=!1){var n;e&&(this.buffer=this.buffer?this.buffer+e:e,this.lineEndPos=null),this.atEnd=!t;let i=(n=this.next)!=null?n:"stream";for(;i&&(t||this.hasChars(1));)i=yield*k(this.parseNext(i))}atLineEnd(){let e=this.pos,t=this.buffer[e];for(;t===" "||t===" ";)t=this.buffer[++e];return!t||t==="#"||t===`\n`?!0:t==="\\r"?this.buffer[e+1]===`\n`:!1}charAt(e){return this.buffer[this.pos+e]}continueScalar(e){let t=this.buffer[e];if(this.indentNext>0){let i=0;for(;t===" ";)t=this.buffer[++i+e];if(t==="\\r"){let n=this.buffer[i+e+1];if(n===`\n`||!n&&!this.atEnd)return e+i+1}return t===`\n`||i>=this.indentNext||!t&&!this.atEnd?e+i:-1}if(t==="-"||t==="."){let i=this.buffer.substr(e,3);if((i==="---"||i==="...")&&Be(this.buffer[e+3]))return-1}return e}getLine(){let e=this.lineEndPos;return(typeof e!="number"||e!==-1&&ethis.indentValue&&!Be(this.charAt(1))&&(this.indentNext=this.indentValue),yield*k(this.parseBlockStart())}*parseBlockStart(){let[e,t]=this.peek(2);if(!t&&!this.atEnd)return this.setNext("block-start");if((e==="-"||e==="?"||e===":")&&Be(t)){let i=(yield*k(this.pushCount(1)))+(yield*k(this.pushSpaces(!0)));return this.indentNext=this.indentValue+1,this.indentValue+=i,yield*k(this.parseBlockStart())}return"doc"}*parseDocument(){yield*k(this.pushSpaces(!0));let e=this.getLine();if(e===null)return this.setNext("doc");let t=yield*k(this.pushIndicators());switch(e[t]){case"#":yield*k(this.pushCount(e.length-t));case void 0:return yield*k(this.pushNewline()),yield*k(this.parseLineStart());case"{":case"[":return yield*k(this.pushCount(1)),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*k(this.pushCount(1)),"doc";case"*":return yield*k(this.pushUntil(cl)),"doc";case\'"\':case"\'":return yield*k(this.parseQuotedScalar());case"|":case">":return t+=yield*k(this.parseBlockScalarHeader()),t+=yield*k(this.pushSpaces(!0)),yield*k(this.pushCount(e.length-t)),yield*k(this.pushNewline()),yield*k(this.parseBlockScalar());default:return yield*k(this.parsePlainScalar())}}*parseFlowCollection(){let e,t,i=-1;do e=yield*k(this.pushNewline()),e>0?(t=yield*k(this.pushSpaces(!1)),this.indentValue=i=t):t=0,t+=yield*k(this.pushSpaces(!0));while(e+t>0);let n=this.getLine();if(n===null)return this.setNext("flow");if((i!==-1&&i"0"&&t<="9")this.blockScalarIndent=Number(t)-1;else if(t!=="-")break}return yield*k(this.pushUntil(t=>Be(t)||t==="#"))}*parseBlockScalar(){let e=this.pos-1,t=0,i;e:for(let n=this.pos;i=this.buffer[n];++n)switch(i){case" ":t+=1;break;case`\n`:e=n,t=0;break;case"\\r":{let r=this.buffer[n+1];if(!r&&!this.atEnd)return this.setNext("block-scalar");if(r===`\n`)break}default:break e}if(!i&&!this.atEnd)return this.setNext("block-scalar");if(t>=this.indentNext){this.blockScalarIndent===-1?this.indentNext=t:this.indentNext+=this.blockScalarIndent;do{let n=this.continueScalar(e+1);if(n===-1)break;e=this.buffer.indexOf(`\n`,n)}while(e!==-1);if(e===-1){if(!this.atEnd)return this.setNext("block-scalar");e=this.buffer.length}}if(!this.blockScalarKeep)do{let n=e-1,r=this.buffer[n];r==="\\r"&&(r=this.buffer[--n]);let o=n;for(;r===" "||r===" ";)r=this.buffer[--n];if(r===`\n`&&n>=this.pos&&n+1+t>o)e=n;else break}while(!0);return yield Mi,yield*k(this.pushToIndex(e+1,!0)),yield*k(this.parseLineStart())}*parsePlainScalar(){let e=this.flowLevel>0,t=this.pos-1,i=this.pos-1,n;for(;n=this.buffer[++i];)if(n===":"){let r=this.buffer[i+1];if(Be(r)||e&&r===",")break;t=i}else if(Be(n)){let r=this.buffer[i+1];if(n==="\\r"&&(r===`\n`?(i+=1,n=`\n`,r=this.buffer[i+1]):t=i),r==="#"||e&&fl.includes(r))break;if(n===`\n`){let o=this.continueScalar(i+1);if(o===-1)break;i=Math.max(i,o-2)}}else{if(e&&fl.includes(n))break;t=i}return!n&&!this.atEnd?this.setNext("plain-scalar"):(yield Mi,yield*k(this.pushToIndex(t+1,!0)),e?"flow":"doc")}*pushCount(e){return e>0?(yield this.buffer.substr(this.pos,e),this.pos+=e,e):0}*pushToIndex(e,t){let i=this.buffer.slice(this.pos,e);return i?(yield i,this.pos+=i.length,i.length):(t&&(yield""),0)}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*k(this.pushTag()))+(yield*k(this.pushSpaces(!0)))+(yield*k(this.pushIndicators()));case"&":return(yield*k(this.pushUntil(cl)))+(yield*k(this.pushSpaces(!0)))+(yield*k(this.pushIndicators()));case"-":case"?":case":":{let e=this.flowLevel>0,t=this.charAt(1);if(Be(t)||e&&fl.includes(t))return e?this.flowKey&&(this.flowKey=!1):this.indentNext=this.indentValue+1,(yield*k(this.pushCount(1)))+(yield*k(this.pushSpaces(!0)))+(yield*k(this.pushIndicators()))}}return 0}*pushTag(){if(this.charAt(1)==="<"){let e=this.pos+2,t=this.buffer[e];for(;!Be(t)&&t!==">";)t=this.buffer[++e];return yield*k(this.pushToIndex(t===">"?e+1:e,!1))}else{let e=this.pos+1,t=this.buffer[e];for(;t;)if(Sd.includes(t))t=this.buffer[++e];else if(t==="%"&&Mf.includes(this.buffer[e+1])&&Mf.includes(this.buffer[e+2]))t=this.buffer[e+=3];else break;return yield*k(this.pushToIndex(e,!1))}}*pushNewline(){let e=this.buffer[this.pos];return e===`\n`?yield*k(this.pushCount(1)):e==="\\r"&&this.charAt(1)===`\n`?yield*k(this.pushCount(2)):0}*pushSpaces(e){let t=this.pos-1,i;do i=this.buffer[++t];while(i===" "||e&&i===" ");let n=t-this.pos;return n>0&&(yield this.buffer.substr(this.pos,n),this.pos=t),n}*pushUntil(e){let t=this.pos,i=this.buffer[t];for(;!e(i);)i=this.buffer[++t];return yield*k(this.pushToIndex(t,!1))}};var Ti=class{constructor(){this.lineStarts=[],this.addNewLine=e=>this.lineStarts.push(e),this.linePos=e=>{let t=0,i=this.lineStarts.length;for(;t>1;this.lineStarts[r]=0;)switch(s[e].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break e}for(;((t=s[++e])==null?void 0:t.type)==="space";);return s.splice(e,s.length)}function Tf(s){if(s.start.type==="flow-seq-start")for(let e of s.items)e.sep&&!e.value&&!_e(e.start,"explicit-key-ind")&&!_e(e.sep,"map-value-ind")&&(e.key&&(e.value=e.key),delete e.key,Nf(e.value)?e.value.end?Array.prototype.push.apply(e.value.end,e.sep):e.value.end=e.sep:Array.prototype.push.apply(e.start,e.sep),delete e.sep)}var Gt=class{constructor(e){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new Oi,this.onNewLine=e}*parse(e,t=!1){this.onNewLine&&this.offset===0&&this.onNewLine(0);for(let i of this.lexer.lex(e,t))yield*k(this.next(i));t||(yield*k(this.end()))}*next(e){if(this.source=e,this.atScalar){this.atScalar=!1,yield*k(this.step()),this.offset+=e.length;return}let t=al(e);if(t)if(t==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=t,yield*k(this.step()),t){case"newline":this.atNewLine=!0,this.indent=0,this.onNewLine&&this.onNewLine(this.offset+e.length);break;case"space":this.atNewLine&&e[0]===" "&&(this.indent+=e.length);break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":this.atNewLine&&(this.indent+=e.length);break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=e.length}else{let i=`Not a YAML token: ${e}`;yield*k(this.pop({type:"error",offset:this.offset,message:i,source:e})),this.offset+=e.length}}*end(){for(;this.stack.length>0;)yield*k(this.pop())}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let e=this.peek(1);if(this.type==="doc-end"&&(!e||e.type!=="doc-end")){for(;this.stack.length>0;)yield*k(this.pop());this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!e)return yield*k(this.stream());switch(e.type){case"document":return yield*k(this.document(e));case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*k(this.scalar(e));case"block-scalar":return yield*k(this.blockScalar(e));case"block-map":return yield*k(this.blockMap(e));case"block-seq":return yield*k(this.blockSequence(e));case"flow-collection":return yield*k(this.flowCollection(e));case"doc-end":return yield*k(this.documentEnd(e))}yield*k(this.pop())}peek(e){return this.stack[this.stack.length-e]}*pop(e){let t=e!=null?e:this.stack.pop();if(!t)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield t;else{let i=this.peek(1);switch(t.type==="block-scalar"?t.indent="indent"in i?i.indent:0:t.type==="flow-collection"&&i.type==="document"&&(t.indent=0),t.type==="flow-collection"&&Tf(t),i.type){case"document":i.value=t;break;case"block-scalar":i.props.push(t);break;case"block-map":{let n=i.items[i.items.length-1];if(n.value){i.items.push({start:[],key:t,sep:[]}),this.onKeyLine=!0;return}else if(n.sep)n.value=t;else{Object.assign(n,{key:t,sep:[]}),this.onKeyLine=!_e(n.start,"explicit-key-ind");return}break}case"block-seq":{let n=i.items[i.items.length-1];n.value?i.items.push({start:[],value:t}):n.value=t;break}case"flow-collection":{let n=i.items[i.items.length-1];!n||n.value?i.items.push({start:[],key:t,sep:[]}):n.sep?n.value=t:Object.assign(n,{key:t,sep:[]});return}default:yield*k(this.pop()),yield*k(this.pop(t))}if((i.type==="document"||i.type==="block-map"||i.type==="block-seq")&&(t.type==="block-map"||t.type==="block-seq")){let n=t.items[t.items.length-1];n&&!n.sep&&!n.value&&n.start.length>0&&Of(n.start)===-1&&(t.indent===0||n.start.every(r=>r.type!=="comment"||r.indent=e.indent){let n=!this.onKeyLine&&this.indent===e.indent&&t.sep,r=[];if(n&&t.sep&&!t.value){let o=[];for(let l=0;le.indent&&(o.length=0);break;default:o.length=0}}o.length>=2&&(r=t.sep.splice(o[1]))}switch(this.type){case"anchor":case"tag":n||t.value?(r.push(this.sourceToken),e.items.push({start:r}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"explicit-key-ind":!t.sep&&!_e(t.start,"explicit-key-ind")?t.start.push(this.sourceToken):n||t.value?(r.push(this.sourceToken),e.items.push({start:r})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]}),this.onKeyLine=!0;return;case"map-value-ind":if(_e(t.start,"explicit-key-ind"))if(t.sep)if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(_e(t.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:r,key:null,sep:[this.sourceToken]}]});else if(Nf(t.key)&&!_e(t.sep,"newline")){let o=Ni(t.start),l=t.key,a=t.sep;a.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:l,sep:a}]})}else r.length>0?t.sep=t.sep.concat(r,this.sourceToken):t.sep.push(this.sourceToken);else if(_e(t.start,"newline"))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let o=Ni(t.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]})}else t.sep?t.value||n?e.items.push({start:r,key:null,sep:[this.sourceToken]}):_e(t.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let o=this.flowScalar(this.type);n||t.value?(e.items.push({start:r,key:o,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(o):(Object.assign(t,{key:o,sep:[]}),this.onKeyLine=!0);return}default:{let o=this.startBlockValue(e);if(o){n&&o.type!=="block-seq"&&_e(t.start,"explicit-key-ind")&&e.items.push({start:r}),this.stack.push(o);return}}}}yield*k(this.pop()),yield*k(this.step())}*blockSequence(e){var i;let t=e.items[e.items.length-1];switch(this.type){case"newline":if(t.value){let n="end"in t.value?t.value.end:void 0,r=Array.isArray(n)?n[n.length-1]:void 0;(r==null?void 0:r.type)==="comment"?n==null||n.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case"space":case"comment":if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){let n=e.items[e.items.length-2],r=(i=n==null?void 0:n.value)==null?void 0:i.end;if(Array.isArray(r)){Array.prototype.push.apply(r,t.start),r.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case"anchor":case"tag":if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==e.indent)break;t.value||_e(t.start,"seq-item-ind")?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let n=this.startBlockValue(e);if(n){this.stack.push(n);return}}yield*k(this.pop()),yield*k(this.step())}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type==="flow-error-end"){let i;do yield*k(this.pop()),i=this.peek(1);while(i&&i.type==="flow-collection")}else if(e.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case"map-value-ind":!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case"flow-map-end":case"flow-seq-end":e.end.push(this.sourceToken);return}let i=this.startBlockValue(e);i?this.stack.push(i):(yield*k(this.pop()),yield*k(this.step()))}else{let i=this.peek(2);if(i.type==="block-map"&&(this.type==="map-value-ind"&&i.indent===e.indent||this.type==="newline"&&!i.items[i.items.length-1].sep))yield*k(this.pop()),yield*k(this.step());else if(this.type==="map-value-ind"&&i.type!=="flow-collection"){let n=Zn(i),r=Ni(n);Tf(e);let o=e.end.splice(1,e.end.length);o.push(this.sourceToken);let l={type:"block-map",offset:e.offset,indent:e.indent,items:[{start:r,key:e,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=l}else yield*k(this.lineEnd(e))}}flowScalar(e){if(this.onNewLine){let t=this.source.indexOf(`\n`)+1;for(;t!==0;)this.onNewLine(this.offset+t),t=this.source.indexOf(`\n`,t)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let t=Zn(e),i=Ni(t);return i.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i}]}}case"map-value-ind":{this.onKeyLine=!0;let t=Zn(e),i=Ni(t);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!=="comment"||this.indent<=t?!1:e.every(i=>i.type==="newline"||i.type==="space")}*documentEnd(e){this.type!=="doc-mode"&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*k(this.pop())))}*lineEnd(e){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*k(this.pop()),yield*k(this.step());break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type==="newline"&&(yield*k(this.pop()))}}};function Ef(s){let e=s.prettyErrors!==!1;return{lineCounter:s.lineCounter||e&&new Ti||null,prettyErrors:e}}function Df(s,e={}){let{lineCounter:t,prettyErrors:i}=Ef(e),n=new Gt(t==null?void 0:t.addNewLine),r=new Ut(e),o=Array.from(r.compose(n.parse(s)));if(i&&t)for(let l of o)l.errors.forEach(ds(s,t)),l.warnings.forEach(ds(s,t));return o.length>0?o:Object.assign([],{empty:!0},r.streamInfo())}function ul(s,e={}){let{lineCounter:t,prettyErrors:i}=Ef(e),n=new Gt(t==null?void 0:t.addNewLine),r=new Ut(e),o=null;for(let l of r.compose(n.parse(s),!0,s.length))if(!o)o=l;else if(o.options.logLevel!=="silent"){o.errors.push(new ve(l.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return i&&t&&(o.errors.forEach(ds(s,t)),o.warnings.forEach(ds(s,t))),o}function Lf(s,e,t){let i;typeof e=="function"?i=e:t===void 0&&e&&typeof e=="object"&&(t=e);let n=ul(s,t);if(!n)return null;if(n.warnings.forEach(r=>En(n.options.logLevel,r)),n.errors.length>0){if(n.options.logLevel!=="silent")throw n.errors[0];n.errors=[]}return n.toJS(Object.assign({reviver:i},t))}function Pf(s,e,t){var n;let i=null;if(typeof e=="function"||Array.isArray(e)?i=e:t===void 0&&e&&(t=e),typeof t=="string"&&(t=t.length),typeof t=="number"){let r=Math.round(t);t=r<1?void 0:r>8?{indent:8}:{indent:r}}if(s===void 0){let{keepUndefined:r}=(n=t!=null?t:e)!=null?n:{};if(!r)return}return new et(s,i,t).toString(t)}var pl=dl;var er="STATBLOCK-WIKI-LINK",xd=new RegExp(`<${er}>([\\\\s\\\\S]+?)<${er}>`),tr="STATBLOCK-MARKDOWN-LINK",Ad=new RegExp(`<${tr}>([\\\\s\\\\S]+?)(?:\\\\|([\\\\s\\\\S]+?))?<${tr}>`),Cd=/([\\s\\S]+?)/,ws=class s{static isStatblockLink(e){return Cd.test(e)}static replaceWikiLink(e){return`<${er}>${e}<${er}>`}static replaceMarkdownLink(e,t){return`<${tr}>${e}${t?"|"+t:""}<${tr}>`}static transformSource(e){return e.replace(/\\[\\[([\\s\\S]+?)\\]\\]/g,(t,i)=>s.replaceWikiLink(i)).replace(/\\[([\\s\\S]*?)\\]\\(([\\s\\S]+?)\\)/g,(t,i,n)=>s.replaceMarkdownLink(n,i))}static transformYamlSource(e){return s.transformSource(e)}static stringifyLinks(e){return e.replace(new RegExp(xd,"g"),(t,i)=>`[[${i}]]`).replace(new RegExp(Ad,"g"),(t,i,n)=>`[${n||""}](${i})`)}};var Jt=self,ml=class{constructor(){this.queue=[];this.parsing=!1;Jt.addEventListener("message",e=>{e.data.type=="queue"&&(this.add(...e.data.data),this.debug&&console.debug(`Fantasy Statblocks: Received queue message for ${e.data.data.length} paths`))}),Jt.addEventListener("message",e=>{e.data.type=="debug"&&(this.debug=e.data.data)})}add(...e){this.debug&&console.debug(`Fantasy Statblocks: Adding ${e.length} paths to queue`),this.queue.push(...e),this.parsing||this.parse()}processContent(e,t){this.debug&&console.debug(`Fantasy Statblocks: Process Content: ${t.path}`);let i=this.findFirstStatBlock(e);if(i){this.debug&&console.debug(`Fantasy Statblocks: found Statblock: ${JSON.stringify(i)}`);let n=ws.transformSource(i),r=Object.assign({},pl.parse(n),{mtime:t.mtime});this.debug&&console.debug(`Fantasy Statblocks: ${JSON.stringify(r)}`),this.processMonster(r,t)}}findFirstStatBlock(e){let t=e.match(/^```[^\\S\\r\\n]*statblock\\s?\\n([\\s\\S]+?)^```/m);return t?t[1]:null}async parse(){for(this.parsing=!0;this.queue.length;){let e=this.queue.shift();this.debug&&console.debug(`Fantasy Statblocks: Parsing ${e} for statblocks (${this.queue.length} to go)`);let t=await this.getFileData(e);if(!e.endsWith(".md")||!t.data)continue;let{file:i,statblock:n}=t.data;try{n==="inline"?this.processContent(t.data.content,i):this.parseFrontmatter(t.data.info,i)}catch(r){console.error(`There was an error parsing the Statblock in ${e}: \n\n${r.message}`)}Jt.postMessage({type:"done",data:e})}this.parsing=!1,Jt.postMessage({type:"save",data:null})}async getFileData(e){return new Promise(t=>{Jt.addEventListener("message",i=>{i.data.type=="file"&&t(i.data)}),Jt.postMessage({data:e,type:"get"})})}parseFrontmatter(e,t){if(!e.exists)return;let i=ws.transformYamlSource(e.frontmatter),n=this.validate(Object.assign({},(0,Bf.default)(pl.parse(i)),{mtime:t.mtime}));n.traits&&(n.traits=di([],n.traits)),this.processMonster(n,t)}processMonster(e,t){e.actions&&(e.actions=di([],e.actions)),e.bonus_actions&&(e.bonus_actions=di([],e.bonus_actions)),e.reactions&&(e.reactions=di([],e.reactions)),e.legendary_actions&&(e.legendary_actions=di([],e.legendary_actions)),e["statblock-link"]&&e["statblock-link"].startsWith("#")&&(e["statblock-link"]=`[${e.name}](${t.path}${e["statblock-link"]})`),this.debug&&console.debug(`Fantasy Statblocks: Adding ${e.name} to bestiary from ${t.basename}`),Jt.postMessage({type:"update",data:{monster:e,path:t.path}})}validate(e){return e}};new ml;\n')}var Mo=class extends yt.Component{constructor(){super(...arguments);this.watchPaths=new Map;this.workers=[];this.index=0;this.queue=new Set}get metadataCache(){return this.plugin.app.metadataCache}get vault(){return this.plugin.app.vault}setDebug(){for(let t of this.workers)t.postMessage({type:"debug",data:this.plugin.settings.debug})}initialize(t){return this.plugin=t,this}onload(){this.setDebug(),this.registerEvent(this.metadataCache.on("changed",async n=>{if(!this.plugin.settings.autoParse)return;let{frontmatter:a}=this.metadataCache.getFileCache(n)??{};if(!a||!a.statblock){this.watchPaths.has(n.path)&&this.delete(n.path);return}this.plugin.settings.debug&&console.debug(`Fantasy Statblocks: Reparsing ${n.name}`),this.parsePath(n)})),this.registerEvent(this.vault.on("rename",async(n,a)=>{this.plugin.settings.autoParse&&n instanceof yt.TFile&&this.watchPaths.has(a)&&(this.plugin.settings.debug&&console.debug(`Fantasy Statblocks: Handling rename of ${a} to ${n.path}`),await this.delete(a),this.parsePath(n))})),this.registerEvent(this.vault.on("delete",n=>{this.plugin.settings.autoParse&&n instanceof yt.TFile&&this.watchPaths.has(n.path)&&this.delete(n.path)}));let t=yt.Platform.isIosApp?2:Math.max(Math.ceil(navigator.hardwareConcurrency/2),2);for(let n=0;n{if(s.data.type=="get"){let r=s.data.data,o=this.plugin.app.vault.getAbstractFileByPath(r);if(this.queue.delete(r),o instanceof yt.TFile){let l=await this.getFileInformation(o);a.postMessage(l??{type:"file"})}else a.postMessage({type:"file"}),this.parsePath(o)}}),a.addEventListener("message",async s=>{if(s.data.type=="update"){let{monster:r,path:o}=s.data.data,l=ve.hasCreature(r.name);r.path=o,ve.addEphemeralCreature(r),this.watchPaths.set(o,r.name),this.plugin.settings.debug&&console.debug(`Fantasy Statblocks: ${l?"Updated":"Added"} ${r.name}`)}}),a.addEventListener("message",async s=>{s.data.type=="save"&&await this.save()})}this.plugin.app.workspace.onLayoutReady(()=>{if(!this.plugin.settings.autoParse){ve.setResolved(!0);return}this.start(!0)})}async save(){this.queue.size||(this.startTime&&(console.info(`Fantasy Statblocks: Frontmatter Parsing Complete in ${((Date.now()-this.startTime)/1e3).toLocaleString()} seconds.`),this.startTime=0),this.announce&&(new yt.Notice("Fantasy Statblocks: Frontmatter Parsing complete."),this.announce=!1),ve.setResolved(!0))}async delete(t){ve.removeEphemeralCreature(this.watchPaths.get(t)),this.watchPaths.delete(t),this.plugin.settings.debug&&console.debug(`Fantasy Statblocks: Removing '${t}' from bestiary`)}start(t=!1){ve.setResolved(!1),this.announce=t,this.startTime=Date.now(),console.info("Fantasy Statblocks: Starting Frontmatter Parsing."),this.plugin.settings.paths?.length||(this.plugin.settings.paths=["/"]);let n=!1;for(let a of this.plugin.settings.paths){let s=this.vault.getAbstractFileByPath(a);s&&(n=!0,this.parsePath(s))}n||this.save()}pathContainsFile(t){if(!this.plugin.settings.paths.length||this.plugin.settings.paths.contains("/"))return!0;for(let n of this.plugin.settings.paths)if(t.path.startsWith(n))return!0;return!1}parsePath(t){if(!this.pathContainsFile(t))return;let n=new Set;for(let a of this.getFiles(t))n.add(a);this.startParsing([...n])}startParsing(t){if(t.length){for(let n of t)this.queue.add(n);this.workers[this.index].postMessage({type:"queue",data:t}),this.index=(this.index+1)%this.workers.length}}async getFileInformation(t){if(this.watchPaths.has(t.path)&&ve.get(this.watchPaths.get(t.path))?.mtime==t.stat.mtime)return null;let n=this.plugin.app.metadataCache.getFileCache(t);if(!n?.frontmatter?.statblock||n?.frontmatter?.statblock!==!0&&n?.frontmatter?.statblock!=="true"&&n?.frontmatter?.statblock!=="inline")return null;let a=await this.plugin.app.vault.cachedRead(t),s=(0,yt.getFrontMatterInfo)(a);return{type:"file",data:{statblock:n.frontmatter.statblock=="inline"?"inline":"frontmatter",content:a,info:s,file:{path:t.path,basename:t.basename,mtime:t.stat.mtime}}}}getFiles(t){let n=[];if(t instanceof yt.TFolder)for(let a of t.children)n.push(a.path);return t instanceof yt.TFile&&t.extension==="md"&&n.push(t.path),n}async reparseVault(){this.start(!1)}onunload(){for(let t of this.workers)t.terminate();this.workers=[]}},wi=new Mo;var k1=[{name:"Aboleth",source:"5e SRD",size:"Large",type:"aberration",subtype:"",alignment:"lawful evil",ac:17,hp:135,hit_dice:"18d10 + 36",speed:"10 ft., swim 40 ft.",stats:[21,9,15,18,15,18],saves:[{constitution:6},{intelligence:8},{wisdom:6}],skillsaves:[{history:12},{perception:10}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 20",languages:"Deep Speech, telepathy 120 ft.",cr:"10",bestiary:!0,traits:[{name:"Amphibious",desc:"The aboleth can breathe air and water.",attack_bonus:0},{name:"Mucous Cloud",desc:"While underwater, the aboleth is surrounded by transformative mucus. A creature that touches the aboleth or that hits it with a melee attack while within 5 ft. of it must make a DC 14 Constitution saving throw. On a failure, the creature is diseased for 1d4 hours. The diseased creature can breathe only underwater.",attack_bonus:0},{name:"Probing Telepathy",desc:"If a creature communicates telepathically with the aboleth, the aboleth learns the creature's greatest desires if the aboleth can see the creature.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The aboleth makes three tentacle attacks.",attack_bonus:0},{name:"Tentacle",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft., one target. Hit: 12 (2d6 + 5) bludgeoning damage. If the target is a creature, it must succeed on a DC 14 Constitution saving throw or become diseased. The disease has no effect for 1 minute and can be removed by any magic that cures disease. After 1 minute, the diseased creature's skin becomes translucent and slimy, the creature can't regain hit points unless it is underwater, and the disease can be removed only by heal or another disease-curing spell of 6th level or higher. When the creature is outside a body of water, it takes 6 (1d12) acid damage every 10 minutes unless moisture is applied to the skin before 10 minutes have passed.",attack_bonus:9,damage_dice:"2d6",damage_bonus:5},{name:"Tail",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft. one target. Hit: 15 (3d6 + 5) bludgeoning damage.",attack_bonus:9,damage_dice:"3d6",damage_bonus:5},{name:"Enslave (3/day)",desc:`The aboleth targets one creature it can see within 30 ft. of it. The target must succeed on a DC 14 Wisdom saving throw or be magically charmed by the aboleth until the aboleth dies or until it is on a different plane of existence from the target. The charmed target is under the aboleth's control and can't take reactions, and the aboleth and the target can communicate telepathically with each other over any distance. +Whenever the charmed target takes damage, the target can repeat the saving throw. On a success, the effect ends. No more than once every 24 hours, the target can also repeat the saving throw when it is at least 1 mile away from the aboleth.`,attack_bonus:0}],legendary_actions:[{name:"Detect",desc:"The aboleth makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Swipe",desc:"The aboleth makes one tail attack.",attack_bonus:0},{name:"Psychic Drain (Costs 2 Actions)",desc:"One creature charmed by the aboleth takes 10 (3d6) psychic damage, and the aboleth regains hit points equal to the damage the creature takes.",attack_bonus:0}]},{name:"Acolyte",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:10,hp:9,hit_dice:"2d8",speed:"30 ft.",stats:[10,10,10,10,14,11],skillsaves:[{medicine:4},{religion:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"any one language (usually Common)",cr:"1/4",bestiary:!0,traits:[],actions:[{name:"Club",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 2 (1d4) bludgeoning damage.",attack_bonus:2,damage_dice:"1d4"}],spells:["The acolyte is a 1st-level spellcaster. Its spellcasting ability is Wisdom (spell save DC 12, +4 to hit with spell attacks). The acolyte has following cleric spells prepared:",{"Cantrips (at will)":"light, sacred flame, thaumaturgy"},{"1st level (3 slots)":"bless, cure wounds, sanctuary"}]},{name:"Adult Black Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"chaotic evil",ac:19,hp:195,hit_dice:"17d12 + 84",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[23,14,21,14,13,17],saves:[{dexterity:7},{constitution:10},{wisdom:6},{charisma:8}],skillsaves:[null,{perception:11},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 21",languages:"Common, Draconic",cr:"14",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +11 to hit, reach 10 ft., one target. Hit: 17 (2d10 + 6) piercing damage plus 4 (1d8) acid damage.",attack_bonus:11,damage_dice:"2d10 + 1d8",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +11 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:11,damage_dice:"2d6",damage_bonus:6},{name:"Tail",desc:"Melee Weapon Attack: +11 to hit, reach 15 ft., one target. Hit: 15 (2d8 + 6) bludgeoning damage.",attack_bonus:11,damage_dice:"2d8",damage_bonus:6},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 16 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Acid Breath (Recharge 5-6)",desc:"The dragon exhales acid in a 60-foot line that is 5 feet wide. Each creature in that line must make a DC 18 Dexterity saving throw, taking 54 (12d8) acid damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"12d8"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 19 Dexterity saving throw or take 13 (2d6 + 6) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Blue Dracolich",source:"5e SRD",size:"Huge",type:"undead",subtype:"",alignment:"lawful evil",ac:19,hp:225,hit_dice:"18d12 + 108",speed:"40 ft., burrow 30 ft., fly 80 ft.",stats:[25,10,23,16,15,19],skillsaves:[{perception:12}],damage_vulnerabilities:"",damage_resistances:"necrotic",damage_immunities:"lightning, poison",condition_immunities:"charmed, exhaustion, frightened, paralyzed, poisoned",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 22",languages:"Common, Draconic",cr:"17",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dracolich fails a saving throw, it can choose to succeed instead.",attack_bonus:0},{name:"Magic Resistance",desc:"The dracolich has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dracolich can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +12 to hit, reach 10 ft., one target. Hit: 18 (2d10 + 7) piercing damage plus 5 (1d10) lightning damage.",attack_bonus:12,damage_dice:"2d10 + 1d10",damage_bonus:7},{name:"Claw",desc:"Melee Weapon Attack: +12 to hit, reach 5 ft., one target. Hit: 14 (2d6 + 7) slashing damage.",attack_bonus:12,damage_dice:"2d6",damage_bonus:7},{name:"Tail",desc:"Melee Weapon Attack: +12 to hit, reach 15 ft., one target. Hit: 16 (2d8 + 7) bludgeoning damage.",attack_bonus:12,damage_dice:"2d8",damage_bonus:7},{name:"Frightful Presence",desc:"Each creature of the dracolich's choice that is within 120 feet of the dracolich and aware of it must succeed on a DC 18 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dracolich's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Lightning Breath (Recharge 5-6)",desc:"The dracolich exhales lightning in a 90-foot line that is 5 feet wide. Each creature in that line must make a DC 20 Dexterity saving throw, taking 66 (12d10) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"12d10"}],legendary_actions:[{name:"Detect",desc:"The dracolich makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dracolich makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dracolich beats its tattered wings. Each creature within 10 ft. of the dracolich must succeed on a DC 21 Dexterity saving throw or take 14 (2d6 + 7) bludgeoning damage and be knocked prone. After beating its wings this way, the dracolich can fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Blue Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"lawful evil",ac:19,hp:225,hit_dice:"18d12 + 108",speed:"40 ft., burrow 30 ft., fly 80 ft.",stats:[25,10,23,16,15,19],saves:[{dexterity:5},{constitution:11},{wisdom:7},{charisma:9}],skillsaves:[null,{perception:12},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 22",languages:"Common, Draconic",cr:"16",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +12 to hit, reach 10 ft., one target. Hit: 18 (2d10 + 7) piercing damage plus 5 (1d10) lightning damage.",attack_bonus:12,damage_dice:"2d10 + 1d10",damage_bonus:7},{name:"Claw",desc:"Melee Weapon Attack: +12 to hit, reach 5 ft., one target. Hit: 14 (2d6 + 7) slashing damage.",attack_bonus:12,damage_dice:"2d6",damage_bonus:7},{name:"Tail",desc:"Melee Weapon Attack: +12 to hit, reach 15 ft., one target. Hit: 16 (2d8 + 7) bludgeoning damage.",attack_bonus:12,damage_dice:"2d8",damage_bonus:7},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 ft. of the dragon and aware of it must succeed on a DC 17 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Lightning Breath (Recharge 5-6)",desc:"The dragon exhales lightning in a 90-foot line that is 5 ft. wide. Each creature in that line must make a DC 19 Dexterity saving throw, taking 66 (12d10) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"12d10"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 20 Dexterity saving throw or take 14 (2d6 + 7) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Brass Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"chaotic good",ac:18,hp:172,hit_dice:"15d12 + 74",speed:"40 ft., burrow 40 ft., fly 80 ft.",stats:[23,10,21,14,13,17],saves:[{dexterity:5},{constitution:10},{wisdom:6},{charisma:8}],skillsaves:[null,{history:7},{persuasion:8},{perception:11},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 21",languages:"Common, Draconic",cr:"13",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +11 to hit, reach,.0 ft., one target. Hit: 17 (2d10 + 6) piercing damage.",attack_bonus:11,damage_dice:"2d10",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +11 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:11,damage_dice:"2d6",damage_bonus:6},{name:"Tail",desc:"Melee Weapon Attack: +11 to hit, reach 15 ft., one target. Hit: 15 (2d8 + 6) bludgeoning damage.",attack_bonus:11,damage_dice:"2d8",damage_bonus:6},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 16 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Fire Breath. The dragon exhales fire in an 60-foot line that is 5 feet wide. Each creature in that line must make a DC 18 Dexterity saving throw, taking 45 (13d6) fire damage on a failed save, or half as much damage on a successful one. +Sleep Breath. The dragon exhales sleep gas in a 60-foot cone. Each creature in that area must succeed on a DC 18 Constitution saving throw or fall unconscious for 10 minutes. This effect ends for a creature if the creature takes damage or someone uses an action to wake it.`,attack_bonus:0,damage_dice:"13d6"}]},{name:"Adult Bronze Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"lawful good",ac:19,hp:212,hit_dice:"17d12 + 101",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[25,10,23,16,15,19],saves:[{dexterity:5},{constitution:11},{wisdom:7},{charisma:9}],skillsaves:[{insight:7},{perception:12},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 22",languages:"Common, Draconic",cr:"15",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +12 to hit, reach 10 ft., one target. Hit: 18 (2d10 + 7) piercing damage.",attack_bonus:12,damage_dice:"2d10",damage_bonus:7},{name:"Claw",desc:"Melee Weapon Attack: +12 to hit, reach 5 ft., one target. Hit: 14 (2d6 + 7) slashing damage.",attack_bonus:12,damage_dice:"2d6",damage_bonus:7},{name:"Tail",desc:"Melee Weapon Attack: +12 to hit, reach 15 ft., one target. Hit: 16 (2d8 + 7) bludgeoning damage.",attack_bonus:12,damage_dice:"2d8",damage_bonus:7},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 17 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Lightning Breath. The dragon exhales lightning in a 90-foot line that is 5 feet wide. Each creature in that line must make a DC 19 Dexterity saving throw, taking 66 (12d10) lightning damage on a failed save, or half as much damage on a successful one. +Repulsion Breath. The dragon exhales repulsion energy in a 30-foot cone. Each creature in that area must succeed on a DC 19 Strength saving throw. On a failed save, the creature is pushed 60 feet away from the dragon.`,attack_bonus:0,damage_dice:"12d10"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 20 Dexterity saving throw or take 14 (2d6 + 7) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Copper Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"chaotic good",ac:18,hp:184,hit_dice:"16d12 + 80",speed:"40 ft., climb 40 ft., fly 80 ft.",stats:[23,12,21,18,15,17],saves:[{dexterity:6},{constitution:10},{wisdom:7},{charisma:8}],skillsaves:[{deception:8},{perception:12},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 22",languages:"Common, Draconic",cr:"14",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +11 to hit, reach 10 ft., one target. Hit: 17 (2d10 + 6) piercing damage.",attack_bonus:11,damage_dice:"2d10",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +11 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:11,damage_dice:"2d6",damage_bonus:6},{name:"Tail",desc:"Melee Weapon Attack: +11 to hit, reach 15 ft., one target. Hit: 15 (2d8 + 6) bludgeoning damage.",attack_bonus:11,damage_dice:"2d8",damage_bonus:6},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 16 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Acid Breath. The dragon exhales acid in an 60-foot line that is 5 feet wide. Each creature in that line must make a DC 18 Dexterity saving throw, taking 54 (12d8) acid damage on a failed save, or half as much damage on a successful one. +Slowing Breath. The dragon exhales gas in a 60-foot cone. Each creature in that area must succeed on a DC 18 Constitution saving throw. On a failed save, the creature can't use reactions, its speed is halved, and it can't make more than one attack on its turn. In addition, the creature can use either an action or a bonus action on its turn, but not both. These effects last for 1 minute. The creature can repeat the saving throw at the end of each of its turns, ending the effect on itself with a successful save.`,attack_bonus:0,damage_dice:"12d8"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 19 Dexterity saving throw or take 13 (2d6 + 6) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Gold Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"lawful good",ac:19,hp:256,hit_dice:"19d12 + 132",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[27,14,25,16,15,24],saves:[{dexterity:8},{constitution:13},{wisdom:8},{charisma:13}],skillsaves:[{insight:8},{persuasion:13},{perception:14},{stealth:8}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 24",languages:"Common, Draconic",cr:"17",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +14 to hit, reach 10 ft., one target. Hit: 19 (2d10 + 8) piercing damage.",attack_bonus:14,damage_dice:"2d10",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +14 to hit, reach 5 ft., one target. Hit: 15 (2d6 + 8) slashing damage.",attack_bonus:14,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +14 to hit, reach 15 ft., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:14,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 21 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Fire Breath. The dragon exhales fire in a 60-foot cone. Each creature in that area must make a DC 21 Dexterity saving throw, taking 66 (12d10) fire damage on a failed save, or half as much damage on a successful one. +Weakening Breath. The dragon exhales gas in a 60-foot cone. Each creature in that area must succeed on a DC 21 Strength saving throw or have disadvantage on Strength-based attack rolls, Strength checks, and Strength saving throws for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"12d10"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 22 Dexterity saving throw or take 15 (2d6 + 8) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Green Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"lawful evil",ac:19,hp:207,hit_dice:"18d12 + 90",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[23,12,21,18,15,17],saves:[{dexterity:6},{constitution:10},{wisdom:7},{charisma:8}],skillsaves:[{deception:8},{insight:7},{persuasion:8},{perception:12},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"poisoned",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 22",languages:"Common, Draconic",cr:"15",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +11 to hit, reach 10 ft., one target. Hit: 17 (2d10 + 6) piercing damage plus 7 (2d6) poison damage.",attack_bonus:11,damage_dice:"2d10 + 2d6",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +11 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:11,damage_dice:"2d6",damage_bonus:6},{name:"Tail",desc:"Melee Weapon Attack: +11 to hit, reach 15 ft., one target. Hit: 15 (2d8 + 6) bludgeoning damage.",attack_bonus:11,damage_dice:"2d8",damage_bonus:6},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 16 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours .",attack_bonus:0},{name:"Poison Breath (Recharge 5-6)",desc:"The dragon exhales poisonous gas in a 60-foot cone. Each creature in that area must make a DC 18 Constitution saving throw, taking 56 (16d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"16d6"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 19 Dexterity saving throw or take 13 (2d6 + 6) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Red Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"chaotic evil",ac:19,hp:256,hit_dice:"19d12 + 132",speed:"40 ft., climb 40 ft., fly 80 ft.",stats:[27,10,25,16,13,21],saves:[{dexterity:6},{constitution:13},{wisdom:7},{charisma:11}],skillsaves:[{perception:13},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 23",languages:"Common, Draconic",cr:"17",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +14 to hit, reach 10 ft., one target. Hit: 19 (2d10 + 8) piercing damage plus 7 (2d6) fire damage.",attack_bonus:14,damage_dice:"2d10 + 2d6",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +14 to hit, reach 5 ft., one target. Hit: 15 (2d6 + 8) slashing damage.",attack_bonus:14,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +14 to hit, reach 15 ft., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:14,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 ft. of the dragon and aware of it must succeed on a DC 19 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Fire Breath (Recharge 5-6)",desc:"The dragon exhales fire in a 60-foot cone. Each creature in that area must make a DC 21 Dexterity saving throw, taking 63 (18d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"18d6"},{name:"Lair Actions",desc:`On initiative count 20 (losing initiative ties), the dragon takes a lair action to cause one of the following effects: the dragon can't use the same effect two rounds in a row: +\u2022 Magma erupts from a point on the ground the dragon can see within 120 feet of it, creating a 20-foot-high, 5-foot-radius geyser. Each creature in the geyser's area must make a DC 15 Dexterity saving throw, taking 21 (6d6) fire damage on a failed save, or half as much damage on a successful one. +\u2022 A tremor shakes the lair in a 60-foot-radius around the dragon. Each creature other than the dragon on the ground in that area must succeed on a DC 15 Dexterity saving throw or be knocked prone. +\u2022 Volcanic gases form a cloud in a 20-foot-radius sphere centered on a point the dragon can see within 120 feet of it. The sphere spreads around corners, and its area is lightly obscured. It lasts until initiative count 20 on the next round. Each creature that starts its turn in the cloud must succeed on a DC 13 Constitution saving throw or be poisoned until the end of its turn. While poisoned in this way, a creature is incapacitated.`,attack_bonus:0,damage_dice:"6d6"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 22 Dexterity saving throw or take 15 (2d6 + 8) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult Silver Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"lawful good",ac:19,hp:243,hit_dice:"18d12 + 126",speed:"40 ft., fly 80 ft.",stats:[27,10,25,16,13,21],saves:[{dexterity:5},{constitution:12},{wisdom:6},{charisma:10}],skillsaves:[{arcana:8},{history:8},{perception:11},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 21",languages:"Common, Draconic",cr:"16",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +13 to hit, reach 10 ft., one target. Hit: 19 (2d10 + 8) piercing damage.",attack_bonus:13,damage_dice:"2d10",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +13 to hit, reach 5 ft., one target. Hit: 15 (2d6 + 8) slashing damage.",attack_bonus:13,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +13 to hit, reach 15 ft., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:13,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 18 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Cold Breath. The dragon exhales an icy blast in a 60-foot cone. Each creature in that area must make a DC 20 Constitution saving throw, taking 58 (13d8) cold damage on a failed save, or half as much damage on a successful one. +Paralyzing Breath. The dragon exhales paralyzing gas in a 60-foot cone. Each creature in that area must succeed on a DC 20 Constitution saving throw or be paralyzed for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"13d8"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 22 Dexterity saving throw or take 15 (2d6 + 8) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Adult White Dragon",source:"5e SRD",size:"Huge",type:"dragon",subtype:"",alignment:"chaotic evil",ac:18,hp:200,hit_dice:"16d12 + 96",speed:"40 ft., burrow 30 ft., fly 80 ft., swim 40 ft.",stats:[22,10,22,8,12,12],saves:[{dexterity:5},{constitution:11},{wisdom:6},{charisma:6}],skillsaves:[{perception:11},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 21",languages:"Common, Draconic",cr:"13",bestiary:!0,traits:[{name:"Ice Walk",desc:"The dragon can move across and climb icy surfaces without needing to make an ability check. Additionally, difficult terrain composed of ice or snow doesn't cost it extra moment.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +11 to hit, reach 10 ft., one target. Hit: 17 (2d10 + 6) piercing damage plus 4 (1d8) cold damage.",attack_bonus:11,damage_dice:"2d10 + 1d8",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +11 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:11,damage_dice:"2d6",damage_bonus:6},{name:"Tail",desc:"Melee Weapon Attack: +11 to hit, reach 15 ft., one target. Hit: 15 (2d8 + 6) bludgeoning damage.",attack_bonus:11,damage_dice:"2d8",damage_bonus:6},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 ft. of the dragon and aware of it must succeed on a DC 14 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Cold Breath (Recharge 5-6)",desc:"The dragon exhales an icy blast in a 60-foot cone. Each creature in that area must make a DC 19 Constitution saving throw, taking 54 (12d8) cold damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"12d8"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 10 ft. of the dragon must succeed on a DC 19 Dexterity saving throw or take 13 (2d6 + 6) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Air Elemental",source:"5e SRD",size:"Large",type:"elemental",subtype:"",alignment:"neutral",ac:15,hp:90,hit_dice:"12d10 + 24",speed:"fly 90 ft. (hover)",stats:[14,20,14,6,10,6],damage_vulnerabilities:"",damage_resistances:"lightning; thunder; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"exhaustion, grappled, paralyzed, petrified, poisoned, prone, restrained, unconscious",senses:"darkvision 60 ft., passive Perception 10",languages:"Auran",cr:"5",bestiary:!0,traits:[{name:"Air Form",desc:"The elemental can enter a hostile creature's space and stop there. It can move through a space as narrow as 1 inch wide without squeezing.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The elemental makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 14 (2d8 + 5) bludgeoning damage.",attack_bonus:8,damage_dice:"2d8",damage_bonus:5},{name:"Whirlwind (Recharge 4-6)",desc:`Each creature in the elemental's space must make a DC 13 Strength saving throw. On a failure, a target takes 15 (3d8 + 2) bludgeoning damage and is flung up 20 feet away from the elemental in a random direction and knocked prone. If a thrown target strikes an object, such as a wall or floor, the target takes 3 (1d6) bludgeoning damage for every 10 feet it was thrown. If the target is thrown at another creature, that creature must succeed on a DC 13 Dexterity saving throw or take the same damage and be knocked prone. +If the saving throw is successful, the target takes half the bludgeoning damage and isn't flung away or knocked prone.`,attack_bonus:0}]},{name:"Ancient Black Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"chaotic evil",ac:22,hp:367,hit_dice:"21d20 + 146",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[27,14,25,16,15,19],saves:[{dexterity:9},{constitution:14},{wisdom:9},{charisma:11}],skillsaves:[{perception:16},{stealth:9}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 26",languages:"Common, Draconic",cr:"21",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack:+ 15 to hit, reach 15 ft., one target. Hit: 19 (2d10 + 8) piercing damage plus 9 (2d8) acid damage.",attack_bonus:15,damage_dice:"2d10 + 2d8",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +15 to hit, reach 10 ft., one target. Hit: 15 (2d6 + 8) slashing damage.",attack_bonus:15,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +15 to hit, reach 20 ft ., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:15,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 19 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Acid Breath (Recharge 5-6)",desc:"The dragon exhales acid in a 90-foot line that is 10 feet wide. Each creature in that line must make a DC 22 Dexterity saving throw, taking 67 (15d8) acid damage on a failed save, or half as much damage on a successful one.",attack_bonus:0}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 23 Dexterity saving throw or take 15 (2d6 + 8) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Blue Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"lawful evil",ac:22,hp:481,hit_dice:"26d20 + 208",speed:"40 ft., burrow 40 ft., fly 80 ft.",stats:[29,10,27,18,17,21],saves:[{dexterity:7},{constitution:15},{wisdom:10},{charisma:12}],skillsaves:[{perception:17},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 27",languages:"Common, Draconic",cr:"23",bestiary:!0,actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +16 to hit, reach 15 ft., one target. Hit: 20 (2d10 + 9) piercing damage plus 11 (2d10) lightning damage.",attack_bonus:16,damage_dice:"2d10 + 2d10",damage_bonus:9},{name:"Claw",desc:"Melee Weapon Attack: +16 to hit, reach 10 ft., one target. Hit: 16 (2d6 + 9) slashing damage.",attack_bonus:16,damage_dice:"2d6",damage_bonus:9},{name:"Tail",desc:"Melee Weapon Attack: +16 to hit, reach 20 ft., one target. Hit: 18 (2d8 + 9) bludgeoning damage.",attack_bonus:16,damage_dice:"2d8",damage_bonus:9},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 20 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Lightning Breath (Recharge 5-6)",desc:"The dragon exhales lightning in a 120-foot line that is 10 feet wide. Each creature in that line must make a DC 23 Dexterity saving throw, taking 88 (16d10) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"16d10"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 24 Dexterity saving throw or take 16 (2d6 + 9) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Brass Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"chaotic good",ac:20,hp:297,hit_dice:"17d20 + 118",speed:"40 ft., burrow 40 ft., fly 80 ft.",stats:[27,10,25,16,15,19],saves:[{dexterity:6},{constitution:13},{wisdom:8},{charisma:10}],skillsaves:[{history:9},{persuasion:10},{perception:14},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 24",languages:"Common, Draconic",cr:"20",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +14 to hit, reach 15 ft., one target. Hit: 19 (2d10 + 8) piercing damage.",attack_bonus:14,damage_dice:"2d10",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +14 to hit, reach 10 ft., one target. Hit: 15 (2d6 + 8) slashing damage.",attack_bonus:14,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +14 to hit, reach 20 ft., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:14,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 18 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons: +Fire Breath. The dragon exhales fire in an 90-foot line that is 10 feet wide. Each creature in that line must make a DC 21 Dexterity saving throw, taking 56 (16d6) fire damage on a failed save, or half as much damage on a successful one. +Sleep Breath. The dragon exhales sleep gas in a 90-foot cone. Each creature in that area must succeed on a DC 21 Constitution saving throw or fall unconscious for 10 minutes. This effect ends for a creature if the creature takes damage or someone uses an action to wake it.`,attack_bonus:0,damage_dice:"16d6"},{name:"Change Shape",desc:`The dragon magically polymorphs into a humanoid or beast that has a challenge rating no higher than its own, or back into its true form. It reverts to its true form if it dies. Any equipment it is wearing or carrying is absorbed or borne by the new form (the dragon's choice). +In a new form, the dragon retains its alignment, hit points, Hit Dice, ability to speak, proficiencies, Legendary Resistance, lair actions, and Intelligence, Wisdom, and Charisma scores, as well as this action. Its statistics and capabilities are otherwise replaced by those of the new form, except any class features or legendary actions of that form.`,attack_bonus:0}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 22 Dexterity saving throw or take 15 (2d6 + 8) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Bronze Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"lawful good",ac:22,hp:444,hit_dice:"24d20 + 192",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[29,10,27,18,17,21],saves:[{dexterity:7},{constitution:15},{wisdom:10},{charisma:12}],skillsaves:[{insight:10},{perception:17},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 27",languages:"Common, Draconic",cr:"22",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +16 to hit, reach 15 ft., one target. Hit: 20 (2d10 + 9) piercing damage.",attack_bonus:16,damage_dice:"2d10",damage_bonus:9},{name:"Claw",desc:"Melee Weapon Attack: +16 to hit, reach 10 ft., one target. Hit: 16 (2d6 + 9) slashing damage.",attack_bonus:16,damage_dice:"1d6",damage_bonus:9},{name:"Tail",desc:"Melee Weapon Attack: +16 to hit, reach 20 ft., one target. Hit: 18 (2d8 + 9) bludgeoning damage.",attack_bonus:0,damage_dice:"2d8",damage_bonus:9},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 20 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Lightning Breath. The dragon exhales lightning in a 120-foot line that is 10 feet wide. Each creature in that line must make a DC 23 Dexterity saving throw, taking 88 (16d10) lightning damage on a failed save, or half as much damage on a successful one. +Repulsion Breath. The dragon exhales repulsion energy in a 30-foot cone. Each creature in that area must succeed on a DC 23 Strength saving throw. On a failed save, the creature is pushed 60 feet away from the dragon.`,attack_bonus:0,damage_dice:"16d10"},{name:"Change Shape",desc:`The dragon magically polymorphs into a humanoid or beast that has a challenge rating no higher than its own, or back into its true form. It reverts to its true form if it dies. Any equipment it is wearing or carrying is absorbed or borne by the new form (the dragon's choice). +In a new form, the dragon retains its alignment, hit points, Hit Dice, ability to speak, proficiencies, Legendary Resistance, lair actions, and Intelligence, Wisdom, and Charisma scores, as well as this action. Its statistics and capabilities are otherwise replaced by those of the new form, except any class features or legendary actions of that form.`,attack_bonus:0}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 24 Dexterity saving throw or take 16 (2d6 + 9) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Copper Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"chaotic good",ac:21,hp:350,hit_dice:"20d20 + 140",speed:"40 ft., climb 40 ft., fly 80 ft.",stats:[27,12,25,20,17,19],saves:[{dexterity:8},{constitution:14},{wisdom:10},{charisma:11}],skillsaves:[{stealth:8},{perception:17},{deception:11}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 27",languages:"Common, Draconic",cr:"21",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +15 to hit, reach 15 ft., one target. Hit: 19 (2d10 + 8) piercing damage.",attack_bonus:15,damage_dice:"2d10",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +15 to hit, reach 10 ft., one target. Hit: 15 (2d6 + 8) slashing damage.",attack_bonus:15,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +15 to hit, reach 20 ft., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:15,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 19 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Acid Breath. The dragon exhales acid in an 90-foot line that is 10 feet wide. Each creature in that line must make a DC 22 Dexterity saving throw, taking 63 (14d8) acid damage on a failed save, or half as much damage on a successful one. +Slowing Breath. The dragon exhales gas in a 90-foot cone. Each creature in that area must succeed on a DC 22 Constitution saving throw. On a failed save, the creature can't use reactions, its speed is halved, and it can't make more than one attack on its turn. In addition, the creature can use either an action or a bonus action on its turn, but not both. These effects last for 1 minute. The creature can repeat the saving throw at the end of each of its turns, ending the effect on itself with a successful save.`,attack_bonus:0,damage_dice:"14d8"},{name:"Change Shape",desc:`The dragon magically polymorphs into a humanoid or beast that has a challenge rating no higher than its own, or back into its true form. It reverts to its true form if it dies. Any equipment it is wearing or carrying is absorbed or borne by the new form (the dragon's choice). +In a new form, the dragon retains its alignment, hit points, Hit Dice, ability to speak, proficiencies, Legendary Resistance, lair actions, and Intelligence, Wisdom, and Charisma scores, as well as this action. Its statistics and capabilities are otherwise replaced by those of the new form, except any class features or legendary actions of that form.`,attack_bonus:0}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 23 Dexterity saving throw or take 15 (2d6 + 8) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Gold Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"lawful good",ac:22,hp:546,hit_dice:"28d20 + 252",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[30,14,29,18,17,28],saves:[{dexterity:9},{constitution:16},{wisdom:10},{charisma:16}],skillsaves:[{persuasion:16},{stealth:9},{perception:17},{insight:10}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 27",languages:"Common, Draconic",cr:"24",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +17 to hit, reach 15 ft., one target. Hit: 21 (2d10 + 10) piercing damage.",attack_bonus:17,damage_dice:"2d10",damage_bonus:10},{name:"Claw",desc:"Melee Weapon Attack: +17 to hit, reach 10 ft., one target. Hit: 17 (2d6 + 10) slashing damage.",attack_bonus:17,damage_dice:"2d6",damage_bonus:10},{name:"Tail",desc:"Melee Weapon Attack: +17 to hit, reach 20 ft., one target. Hit: 19 (2d8 + 10) bludgeoning damage.",attack_bonus:17,damage_dice:"2d8",damage_bonus:10},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 24 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Fire Breath. The dragon exhales fire in a 90-foot cone. Each creature in that area must make a DC 24 Dexterity saving throw, taking 71 (13d10) fire damage on a failed save, or half as much damage on a successful one. +Weakening Breath. The dragon exhales gas in a 90-foot cone. Each creature in that area must succeed on a DC 24 Strength saving throw or have disadvantage on Strength-based attack rolls, Strength checks, and Strength saving throws for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"13d10"},{name:"Change Shape",desc:`The dragon magically polymorphs into a humanoid or beast that has a challenge rating no higher than its own, or back into its true form. It reverts to its true form if it dies. Any equipment it is wearing or carrying is absorbed or borne by the new form (the dragon's choice). +In a new form, the dragon retains its alignment, hit points, Hit Dice, ability to speak, proficiencies, Legendary Resistance, lair actions, and Intelligence, Wisdom, and Charisma scores, as well as this action. Its statistics and capabilities are otherwise replaced by those of the new form, except any class features or legendary actions of that form.`,attack_bonus:0}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 25 Dexterity saving throw or take 17 (2d6 + 10) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Green Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"lawful evil",ac:21,hp:385,hit_dice:"22d20 + 154",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[27,12,25,20,17,19],saves:[{dexterity:8},{constitution:14},{wisdom:10},{charisma:11}],skillsaves:[{deception:11},{insight:10},{perception:17},{persuasion:11},{stealth:8}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"poisoned",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 27",languages:"Common, Draconic",cr:"22",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +15 to hit, reach 15 ft., one target. Hit: 19 (2d10 + 8) piercing damage plus 10 (3d6) poison damage.",attack_bonus:15,damage_dice:"2d10 + 3d6",damage_bonus:9},{name:"Claw",desc:"Melee Weapon Attack: +15 to hit, reach 10 ft., one target. Hit: 22 (4d6 + 8) slashing damage.",attack_bonus:15,damage_dice:"4d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +15 to hit, reach 20 ft., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:16,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 19 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Poison Breath (Recharge 5-6)",desc:"The dragon exhales poisonous gas in a 90-foot cone. Each creature in that area must make a DC 22 Constitution saving throw, taking 77 (22d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"22d6"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 23 Dexterity saving throw or take 15 (2d6 + 8) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Red Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"chaotic evil",ac:22,hp:546,hit_dice:"28d20 + 252",speed:"40 ft., climb 40 ft., fly 80 ft.",stats:[30,10,29,18,15,23],saves:[{dexterity:7},{constitution:16},{wisdom:9},{charisma:13}],skillsaves:[{perception:16},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 26",languages:"Common, Draconic",cr:"24",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +17 to hit, reach 15 ft., one target. Hit: 21 (2d10 + 10) piercing damage plus 14 (4d6) fire damage.",attack_bonus:17,damage_dice:"2d10 + 4d6",damage_bonus:10},{name:"Claw",desc:"Melee Weapon Attack: +17 to hit, reach 10 ft., one target. Hit: 17 (2d6 + 10) slashing damage.",attack_bonus:17,damage_dice:"2d6",damage_bonus:10},{name:"Tail",desc:"Melee Weapon Attack: +17 to hit, reach 20 ft., one target. Hit: 19 (2d8 + 10) bludgeoning damage.",attack_bonus:17,damage_dice:"2d8",damage_bonus:10},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 21 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Fire Breath (Recharge 5-6)",desc:"The dragon exhales fire in a 90-foot cone. Each creature in that area must make a DC 24 Dexterity saving throw, taking 91 (26d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"26d6"}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 25 Dexterity saving throw or take 17 (2d6 + 10) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient Silver Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"lawful good",ac:22,hp:487,hit_dice:"25d20 + 224",speed:"40 ft., fly 80 ft.",stats:[30,10,29,18,15,23],saves:[{dexterity:7},{constitution:16},{wisdom:9},{charisma:13}],skillsaves:[{arcana:11},{perception:16},{history:11},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 26",languages:"Common, Draconic",cr:"23",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +17 to hit, reach 15 ft., one target. Hit: 21 (2d10 + 10) piercing damage.",attack_bonus:17,damage_dice:"2d10",damage_bonus:10},{name:"Claw",desc:"Melee Weapon Attack: +17 to hit, reach 10 ft., one target. Hit: 17 (2d6 + 10) slashing damage.",attack_bonus:17,damage_dice:"2d6",damage_bonus:10},{name:"Tail",desc:"Melee Weapon Attack: +17 to hit, reach 20 ft., one target. Hit: 19 (2d8 + 10) bludgeoning damage.",attack_bonus:17,damage_dice:"2d8",damage_bonus:10},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 21 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Cold Breath. The dragon exhales an icy blast in a 90-foot cone. Each creature in that area must make a DC 24 Constitution saving throw, taking 67 (15d8) cold damage on a failed save, or half as much damage on a successful one. +Paralyzing Breath. The dragon exhales paralyzing gas in a 90- foot cone. Each creature in that area must succeed on a DC 24 Constitution saving throw or be paralyzed for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"15d8"},{name:"Change Shape",desc:`The dragon magically polymorphs into a humanoid or beast that has a challenge rating no higher than its own, or back into its true form. It reverts to its true form if it dies. Any equipment it is wearing or carrying is absorbed or borne by the new form (the dragon's choice). +In a new form, the dragon retains its alignment, hit points, Hit Dice, ability to speak, proficiencies, Legendary Resistance, lair actions, and Intelligence, Wisdom, and Charisma scores, as well as this action. Its statistics and capabilities are otherwise replaced by those of the new form, except any class features or legendary actions of that form.`,attack_bonus:0}],legendary_actions:[{name:"Detect",desc:"The dragon makes a Wisdom (Perception) check.",attack_bonus:0},{name:"Tail Attack",desc:"The dragon makes a tail attack.",attack_bonus:0},{name:"Wing Attack (Costs 2 Actions)",desc:"The dragon beats its wings. Each creature within 15 ft. of the dragon must succeed on a DC 25 Dexterity saving throw or take 17 (2d6 + 10) bludgeoning damage and be knocked prone. The dragon can then fly up to half its flying speed.",attack_bonus:0}]},{name:"Ancient White Dragon",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"chaotic evil",ac:20,hp:333,hit_dice:"18d20 + 144",speed:"40 ft., burrow 40 ft., fly 80 ft., swim 40 ft.",stats:[26,10,26,10,13,14],saves:[{dexterity:6},{constitution:14},{wisdom:7},{charisma:8}],skillsaves:[{perception:13},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 23",languages:"Common, Draconic",cr:"20",bestiary:!0,traits:[{name:"Ice Walk",desc:"The dragon can move across and climb icy surfaces without needing to make an ability check. Additionally, difficult terrain composed of ice or snow doesn't cost it extra moment.",attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the dragon fails a saving throw, it can choose to succeed instead.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon can use its Frightful Presence. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +14 to hit, reach 15 ft., one target. Hit: 19 (2d10 + 8) piercing damage plus 9 (2d8) cold damage.",attack_bonus:14,damage_dice:"2d10 + 2d8",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +14 to hit, reach 10 ft., one target. Hit: 15 (2d6 + 8) slashing damage.",attack_bonus:14,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +14 to hit, reach 20 ft., one target. Hit: 17 (2d8 + 8) bludgeoning damage.",attack_bonus:14,damage_dice:"2d8",damage_bonus:8},{name:"Frightful Presence",desc:"Each creature of the dragon's choice that is within 120 feet of the dragon and aware of it must succeed on a DC 16 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the dragon's Frightful Presence for the next 24 hours .",attack_bonus:0},{name:"Cold Breath (Recharge 5-6)",desc:"The dragon exhales an icy blast in a 90-foot cone. Each creature in that area must make a DC 22 Constitution saving throw, taking 72 (l6d8) cold damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"16d8"}]},{name:"Androsphinx",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"lawful neutral",ac:17,hp:199,hit_dice:"19d10 + 94",speed:"40 ft., fly 60 ft.",stats:[22,10,20,16,18,23],saves:[{dexterity:6},{constitution:11},{intelligence:9},{wisdom:10}],skillsaves:[{religion:15},{perception:10},{arcana:9}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"psychic; bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"charmed, frightened",senses:"truesight 120 ft., passive Perception 20",languages:"Common, Sphinx",cr:"17",bestiary:!0,traits:[{name:"Inscrutable",desc:"The sphinx is immune to any effect that would sense its emotions or read its thoughts, as well as any divination spell that it refuses. Wisdom (Insight) checks made to ascertain the sphinx's intentions or sincerity have disadvantage.",attack_bonus:0},{name:"Magic Weapons",desc:"The sphinx's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The sphinx makes two claw attacks.",attack_bonus:0},{name:"Claw",desc:"Melee Weapon Attack: +12 to hit, reach 5 ft., one target. Hit: 17 (2d10 + 6) slashing damage.",attack_bonus:12,damage_dice:"2d10",damage_bonus:6},{name:"Roar (3/Day)",desc:`The sphinx emits a magical roar. Each time it roars before finishing a long rest, the roar is louder and the effect is different, as detailed below. Each creature within 500 feet of the sphinx and able to hear the roar must make a saving throw. + +First Roar. Each creature that fails a DC 18 Wisdom saving throw is frightened for 1 minute. A frightened creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. + +Second Roar. Each creature that fails a DC 18 Wisdom saving throw is deafened and frightened for 1 minute. A frightened creature is paralyzed and can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. + +Third Roar. Each creature makes a DC 18 Constitution saving throw. On a failed save, a creature takes 44 (8d10) thunder damage and is knocked prone. On a successful save, the creature takes half as much damage and isn't knocked prone.`,attack_bonus:0}],legendary_actions:[{name:"Claw Attack",desc:"The sphinx makes one claw attack.",attack_bonus:0},{name:"Teleport (Costs 2 Actions)",desc:"The sphinx magically teleports, along with any equipment it is wearing or carrying, up to 120 feet to an unoccupied space it can see.",attack_bonus:0},{name:"Cast a Spell (Costs 3 Actions)",desc:"The sphinx casts a spell from its list of prepared spells, using a spell slot as normal.",attack_bonus:0}],spells:["The sphinx is a 12th-level spellcaster. Its spellcasting ability is Wisdom (spell save DC 18, +10 to hit with spell attacks). It requires no material components to cast its spells. The sphinx has the following cleric spells prepared:",{"Cantrips (at will)":"sacred flame, spare the dying, thaumaturgy"},{"1st level (4 slots)":"command, detect evil and good, detect magic"},{"2nd level (3 slots)":"lesser restoration, zone of truth"},{"3rd level (3 slots)":"dispel magic, tongues"},{"4th level (3 slots)":"banishment, freedom of movement"},{"5th level (2 slots)":"flame strike, greater restoration"},{"6th level (1 slot)":"heroes' feast"}]},{name:"Animated Armor",source:"5e SRD",size:"Medium",type:"construct",subtype:"",alignment:"unaligned",ac:18,hp:33,hit_dice:"6d8 + 6",speed:"25 ft.",stats:[14,11,13,1,3,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison, psychic",condition_immunities:"blinded, charmed, deafened, exhaustion, frightened, paralyzed, petrified, poisoned",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 6",languages:"",cr:"1",bestiary:!0,traits:[{name:"Antimagic Susceptibility",desc:"The armor is incapacitated while in the area of an antimagic field. If targeted by dispel magic, the armor must succeed on a Constitution saving throw against the caster's spell save DC or fall unconscious for 1 minute.",attack_bonus:0},{name:"False Appearance",desc:"While the armor remains motionless, it is indistinguishable from a normal suit of armor.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The armor makes two melee attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) bludgeoning damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Ankheg",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:14,hp:39,hit_dice:"6d10 + 6",speed:"30 ft., burrow 10 ft.",stats:[17,11,13,1,13,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., tremorsense 60 ft., passive Perception 11",languages:"",cr:"2",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage plus 3 (1d6) acid damage. If the target is a Large or smaller creature, it is grappled (escape DC 13). Until this grapple ends, the ankheg can bite only the grappled creature and has advantage on attack rolls to do so.",attack_bonus:5,damage_dice:"2d6 + 1d6",damage_bonus:3},{name:"Acid Spray (Recharge 6)",desc:"The ankheg spits acid in a line that is 30 ft. long and 5 ft. wide, provided that it has no creature grappled. Each creature in that line must make a DC 13 Dexterity saving throw, taking 10 (3d6) acid damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"3d6"}]},{name:"Ape",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:19,hit_dice:"3d8 + 5",speed:"30 ft., climb 30 ft.",stats:[16,14,14,6,12,7],skillsaves:[{athletics:5},{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1/2",bestiary:!0,actions:[{name:"Multiattack",desc:"The ape makes two fist attacks.",attack_bonus:0},{name:"Fist",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) bludgeoning damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Rock",desc:"Ranged Weapon Attack: +5 to hit, range 25/50 ft., one target. Hit: 6 (1d6 + 3) bludgeoning damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3}]},{name:"Archmage",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:12,hp:99,hit_dice:"18d8 + 18",speed:"30 ft.",stats:[10,14,12,20,15,16],saves:[{intelligence:9},{wisdom:6}],skillsaves:[{arcana:13},{history:13}],damage_vulnerabilities:"",damage_resistances:"damage from spells; non magical bludgeoning, piercing, and slashing (from stoneskin)",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"any six languages",cr:"12",bestiary:!0,traits:[{name:"Magic Resistance",desc:"The archmage has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Dagger",desc:"Melee or Ranged Weapon Attack: +6 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:6,damage_dice:"1d4",damage_bonus:2}],spells:["The archmage is an 18th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 17, +9 to hit with spell attacks). The archmage can cast disguise self and invisibility at will and has the following wizard spells prepared:",{"Cantrips (at will)":"fire bolt, light, mage hand, prestidigitation, shocking grasp"},{"1st level (4 slots)":"detect magic, identify, mage armor*, magic missile"},{"2nd level (3 slots)":"detect thoughts, mirror image, misty step"},{"3rd level (3 slots)":"counterspell,fly, lightning bolt"},{"4th level (3 slots)":"banishment, fire shield, stoneskin*"},{"5th level (3 slots)":"cone of cold, scrying, wall of force"},{"6th level (1 slot)":"globe of invulnerability"},{"7th level (1 slot)":"teleport"},{"8th level (1 slot)":"mind blank*"},{"9th level (1 slot)":"time stop"},"* The archmage casts these spells on itself before combat."]},{name:"Assassin",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any non-good alignment",ac:15,hp:78,hit_dice:"12d8 + 24",speed:"30 ft.",stats:[11,16,14,13,11,10],saves:[{dexterity:6},{intelligence:4}],skillsaves:[{acrobatics:6},{deception:3},{perception:3},{stealth:9}],damage_vulnerabilities:"",damage_resistances:"poison",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"Thieves' cant plus any two languages",cr:"8",bestiary:!0,traits:[{name:"Assassinate",desc:"During its first turn, the assassin has advantage on attack rolls against any creature that hasn't taken a turn. Any hit the assassin scores against a surprised creature is a critical hit.",attack_bonus:0},{name:"Evasion",desc:"If the assassin is subjected to an effect that allows it to make a Dexterity saving throw to take only half damage, the assassin instead takes no damage if it succeeds on the saving throw, and only half damage if it fails.",attack_bonus:0},{name:"Sneak Attack (1/Turn)",desc:"The assassin deals an extra 13 (4d6) damage when it hits a target with a weapon attack and has advantage on the attack roll, or when the target is within 5 ft. of an ally of the assassin that isn't incapacitated and the assassin doesn't have disadvantage on the attack roll.",attack_bonus:0,damage_dice:"4d6"}],actions:[{name:"Multiattack",desc:"The assassin makes two shortsword attacks.",attack_bonus:0},{name:"Shortsword",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) piercing damage, and the target must make a DC 15 Constitution saving throw, taking 24 (7d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:6,damage_dice:"1d6",damage_bonus:3},{name:"Light Crossbow",desc:"Ranged Weapon Attack: +6 to hit, range 80/320 ft., one target. Hit: 7 (1d8 + 3) piercing damage, and the target must make a DC 15 Constitution saving throw, taking 24 (7d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:6,damage_dice:"1d8",damage_bonus:3}]},{name:"Awakened Shrub",source:"5e SRD",size:"Small",type:"plant",subtype:"",alignment:"unaligned",ac:9,hp:10,hit_dice:"3d6 + -1",speed:"20 ft.",stats:[3,8,11,10,10,6],damage_vulnerabilities:"fire",damage_resistances:"piercing",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"one language known by its creator",cr:"0",bestiary:!0,traits:[{name:"False Appearance",desc:"While the shrub remains motionless, it is indistinguishable from a normal shrub.",attack_bonus:0}],actions:[{name:"Rake",desc:"Melee Weapon Attack: +1 to hit, reach 5 ft., one target. Hit: 1 (1d4 \u2014 1) slashing damage.",attack_bonus:1,damage_dice:"1d4",damage_bonus:-1}]},{name:"Awakened Tree",source:"5e SRD",size:"Huge",type:"plant",subtype:"",alignment:"unaligned",ac:13,hp:59,hit_dice:"7d12 + 13",speed:"20 ft.",stats:[19,6,15,10,10,7],damage_vulnerabilities:"fire",damage_resistances:"bludgeoning, piercing",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"one language known by its creator",cr:"2",bestiary:!0,traits:[{name:"False Appearance",desc:"While the tree remains motionless, it is indistinguishable from a normal tree.",attack_bonus:0}],actions:[{name:"Slam",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one target. Hit: 14 (3d6 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"3d6",damage_bonus:4}]},{name:"Axe Beak",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:19,hit_dice:"3d10 + 2",speed:"50 ft.",stats:[14,12,12,2,10,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/4",bestiary:!0,actions:[{name:"Beak",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) slashing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Azer",source:"5e SRD",size:"Medium",type:"elemental",subtype:"",alignment:"lawful neutral",ac:17,hp:39,hit_dice:"6d8 + 12",speed:"30 ft.",stats:[17,12,15,12,13,10],saves:[{constitution:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"passive Perception 11",languages:"Ignan",cr:"2",bestiary:!0,traits:[{name:"Heated Body",desc:"A creature that touches the azer or hits it with a melee attack while within 5 ft. of it takes 5 (1d10) fire damage.",attack_bonus:0,damage_dice:"1d10"},{name:"Heated Weapons",desc:"When the azer hits with a metal melee weapon, it deals an extra 3 (1d6) fire damage (included in the attack).",attack_bonus:0},{name:"Illumination",desc:"The azer sheds bright light in a 10-foot radius and dim light for an additional 10 ft..",attack_bonus:0}],actions:[{name:"Warhammer",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) bludgeoning damage, or 8 (1d10 + 3) bludgeoning damage if used with two hands to make a melee attack, plus 3 (1d6) fire damage.",attack_bonus:5,damage_dice:"1d8 + 1d6",damage_bonus:3}]},{name:"Baboon",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:3,hit_dice:"1d6 + -1",speed:"30 ft., climb 30 ft.",stats:[8,14,11,4,12,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"",cr:"0",bestiary:!0,traits:[{name:"Pack Tactics",desc:"The baboon has advantage on an attack roll against a creature if at least one of the baboon's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +1 to hit, reach 5 ft., one target. Hit: 1 (1d4 \u2014 1) piercing damage.",attack_bonus:1,damage_dice:"1d4",damage_bonus:-1}]},{name:"Badger",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:3,hit_dice:"1d4",speed:"20 ft., burrow 5 ft.",stats:[4,11,12,2,12,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 11",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Smell",desc:"The badger has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 1 piercing damage.",attack_bonus:2,damage_bonus:1}]},{name:"Balor",source:"5e SRD",size:"Huge",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:19,hp:262,hit_dice:"21d12 + 125",speed:"40 ft., fly 80 ft.",stats:[26,15,22,20,16,22],saves:[{strength:14},{constitution:12},{wisdom:9},{charisma:12}],damage_vulnerabilities:"",damage_resistances:"cold, lightning; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"truesight 120 ft., passive Perception 13",languages:"Abyssal, telepathy 120 ft.",cr:"19",bestiary:!0,traits:[{name:"Death Throes",desc:"When the balor dies, it explodes, and each creature within 30 feet of it must make a DC 20 Dexterity saving throw, taking 70 (20d6) fire damage on a failed save, or half as much damage on a successful one. The explosion ignites flammable objects in that area that aren't being worn or carried, and it destroys the balor's weapons.",attack_bonus:0,damage_dice:"20d6"},{name:"Fire Aura",desc:"At the start of each of the balor's turns, each creature within 5 feet of it takes 10 (3d6) fire damage, and flammable objects in the aura that aren't being worn or carried ignite. A creature that touches the balor or hits it with a melee attack while within 5 feet of it takes 10 (3d6) fire damage.",attack_bonus:0,damage_dice:"3d6"},{name:"Magic Resistance",desc:"The balor has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The balor's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The balor makes two attacks: one with its longsword and one with its whip.",attack_bonus:0},{name:"Longsword",desc:"Melee Weapon Attack: +14 to hit, reach 10 ft., one target. Hit: 21 (3d8 + 8) slashing damage plus 13 (3d8) lightning damage. If the balor scores a critical hit, it rolls damage dice three times, instead of twice.",attack_bonus:14,damage_dice:"3d8 + 3d8",damage_bonus:8},{name:"Whip",desc:"Melee Weapon Attack: +14 to hit, reach 30 ft., one target. Hit: 15 (2d6 + 8) slashing damage plus 10 (3d6) fire damage, and the target must succeed on a DC 20 Strength saving throw or be pulled up to 25 feet toward the balor.",attack_bonus:14,damage_dice:"2d6 + 3d6",damage_bonus:8},{name:"Teleport",desc:"The balor magically teleports, along with any equipment it is wearing or carrying, up to 120 feet to an unoccupied space it can see.",attack_bonus:0},{name:"Variant: Summon Demon (1/Day)",desc:`The demon chooses what to summon and attempts a magical summoning. +A balor has a 50 percent chance of summoning 1d8 vrocks, 1d6 hezrous, 1d4 glabrezus, 1d3 nalfeshnees, 1d2 mariliths, or one goristro. +A summoned demon appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other demons. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.`,attack_bonus:0}]},{name:"Bandit",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any non-lawful alignment",ac:12,hp:11,hit_dice:"2d8 + 2",speed:"30 ft.",stats:[11,12,12,10,10,10],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any one language (usually Common)",cr:"1/8",bestiary:!0,actions:[{name:"Scimitar",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) slashing damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1},{name:"Light Crossbow",desc:"Ranged Weapon Attack: +3 to hit, range 80 ft./320 ft., one target. Hit: 5 (1d8 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d8",damage_bonus:1}]},{name:"Bandit Captain",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any non-lawful alignment",ac:15,hp:65,hit_dice:"10d8 + 20",speed:"30 ft.",stats:[15,16,14,14,11,14],saves:[{strength:4},{dexterity:5},{wisdom:2}],skillsaves:[{athletics:4},{deception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any two languages",cr:"2",bestiary:!0,actions:[{name:"Multiattack",desc:"The captain makes three melee attacks: two with its scimitar and one with its dagger. Or the captain makes two ranged attacks with its daggers.",attack_bonus:0},{name:"Scimitar",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Dagger",desc:"Melee or Ranged Weapon Attack: +5 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 5 (1d4 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d4",damage_bonus:3}],reactions:[{name:"Parry",desc:"The captain adds 2 to its AC against one melee attack that would hit it. To do so, the captain must see the attacker and be wielding a melee weapon.",attack_bonus:0}]},{name:"Barbed Devil",source:"5e SRD",size:"Medium",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:15,hp:110,hit_dice:"13d8 + 51",speed:"30 ft.",stats:[16,17,18,12,14,14],saves:[{strength:6},{constitution:7},{wisdom:5},{charisma:5}],skillsaves:[{deception:5},{insight:5},{perception:8}],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 18",languages:"Infernal, telepathy 120 ft.",cr:"5",bestiary:!0,traits:[{name:"Barbed Hide",desc:"At the start of each of its turns, the barbed devil deals 5 (1d10) piercing damage to any creature grappling it.",attack_bonus:0,damage_dice:"1d10"},{name:"Devil's Sight",desc:"Magical darkness doesn't impede the devil's darkvision.",attack_bonus:0},{name:"Magic Resistance",desc:"The devil has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The devil makes three melee attacks: one with its tail and two with its claws. Alternatively, it can use Hurl Flame twice.",attack_bonus:0},{name:"Claw",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft ., one target. Hit: 6 (1d6 + 3) piercing damage.",attack_bonus:6,damage_dice:"1d6",damage_bonus:3},{name:"Tail",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) piercing damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:3},{name:"Hurl Flame",desc:"Ranged Spell Attack: +5 to hit, range 150 ft., one target. Hit: 10 (3d6) fire damage. If the target is a flammable object that isn't being worn or carried, it also catches fire.",attack_bonus:5,damage_dice:"3d6"}]},{name:"Basilisk",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"",alignment:"unaligned",ac:12,hp:52,hit_dice:"8d8 + 16",speed:"20 ft.",stats:[16,8,15,2,8,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 9",languages:"",cr:"3",bestiary:!0,traits:[{name:"Petrifying Gaze",desc:`If a creature starts its turn within 30 ft. of the basilisk and the two of them can see each other, the basilisk can force the creature to make a DC 12 Constitution saving throw if the basilisk isn't incapacitated. On a failed save, the creature magically begins to turn to stone and is restrained. It must repeat the saving throw at the end of its next turn. On a success, the effect ends. On a failure, the creature is petrified until freed by the greater restoration spell or other magic. +A creature that isn't surprised can avert its eyes to avoid the saving throw at the start of its turn. If it does so, it can't see the basilisk until the start of its next turn, when it can avert its eyes again. If it looks at the basilisk in the meantime, it must immediately make the save. +If the basilisk sees its reflection within 30 ft. of it in bright light, it mistakes itself for a rival and targets itself with its gaze.`,attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) piercing damage plus 7 (2d6) poison damage.",attack_bonus:5,damage_dice:"2d6 + 2d6",damage_bonus:3}]},{name:"Bat",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:1,hit_dice:"1d4 + -2",speed:"5 ft., fly 30 ft.",stats:[2,15,8,2,12,4],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 60 ft., passive Perception 11",languages:"",cr:"0",bestiary:!0,traits:[{name:"Echolocation",desc:"The bat can't use its blindsight while deafened.",attack_bonus:0},{name:"Keen Hearing",desc:"The bat has advantage on Wisdom (Perception) checks that rely on hearing.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +0 to hit, reach 5 ft., one creature. Hit: 1 piercing damage.",attack_bonus:0,damage_bonus:1}]},{name:"Bearded Devil",source:"5e SRD",size:"Medium",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:13,hp:52,hit_dice:"8d8 + 16",speed:"30 ft.",stats:[16,15,15,9,11,11],saves:[{strength:5},{constitution:4},{wisdom:2}],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 10",languages:"Infernal, telepathy 120 ft.",cr:"3",bestiary:!0,traits:[{name:"Devil's Sight",desc:"Magical darkness doesn't impede the devil's darkvision.",attack_bonus:0},{name:"Magic Resistance",desc:"The devil has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Steadfast",desc:"The devil can't be frightened while it can see an allied creature within 30 feet of it.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The devil makes two attacks: one with its beard and one with its glaive.",attack_bonus:0},{name:"Beard",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one creature. Hit: 6 (1d8 + 2) piercing damage, and the target must succeed on a DC 12 Constitution saving throw or be poisoned for 1 minute. While poisoned in this way, the target can't regain hit points. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:5,damage_dice:"1d8",damage_bonus:2},{name:"Glaive",desc:"Melee Weapon Attack: +5 to hit, reach 10 ft., one target. Hit: 8 (1d10 + 3) slashing damage. If the target is a creature other than an undead or a construct, it must succeed on a DC 12 Constitution saving throw or lose 5 (1d10) hit points at the start of each of its turns due to an infernal wound. Each time the devil hits the wounded target with this attack, the damage dealt by the wound increases by 5 (1d10). Any creature can take an action to stanch the wound with a successful DC 12 Wisdom (Medicine) check. The wound also closes if the target receives magical healing.",attack_bonus:5,damage_dice:"1d10",damage_bonus:3}]},{name:"Behir",source:"5e SRD",size:"Huge",type:"monstrosity",subtype:"",alignment:"neutral evil",ac:17,hp:168,hit_dice:"16d12 + 64",speed:"50 ft., climb 40 ft.",stats:[23,16,18,7,14,12],skillsaves:[{perception:6},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"darkvision 90 ft., passive Perception 16",languages:"Draconic",cr:"11",bestiary:!0,actions:[{name:"Multiattack",desc:"The behir makes two attacks: one with its bite and one to constrict.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 22 (3d10 + 6) piercing damage.",attack_bonus:10,damage_dice:"3d10",damage_bonus:6},{name:"Constrict",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one Large or smaller creature. Hit: 17 (2d10 + 6) bludgeoning damage plus 17 (2d10 + 6) slashing damage. The target is grappled (escape DC 16) if the behir isn't already constricting a creature, and the target is restrained until this grapple ends.",attack_bonus:10,damage_dice:"2d10 + 2d10",damage_bonus:6},{name:"Lightning Breath (Recharge 5-6)",desc:"The behir exhales a line of lightning that is 20 ft. long and 5 ft. wide. Each creature in that line must make a DC 16 Dexterity saving throw, taking 66 (12d10) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"12d10"},{name:"Swallow",desc:`The behir makes one bite attack against a Medium or smaller target it is grappling. If the attack hits, the target is also swallowed, and the grapple ends. While swallowed, the target is blinded and restrained, it has total cover against attacks and other effects outside the behir, and it takes 21 (6d6) acid damage at the start of each of the behir's turns. A behir can have only one creature swallowed at a time. +If the behir takes 30 damage or more on a single turn from the swallowed creature, the behir must succeed on a DC 14 Constitution saving throw at the end of that turn or regurgitate the creature, which falls prone in a space within 10 ft. of the behir. If the behir dies, a swallowed creature is no longer restrained by it and can escape from the corpse by using 15 ft. of movement, exiting prone.`,attack_bonus:0,damage_dice:"6d6"}]},{name:"Berserker",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any chaotic alignment",ac:13,hp:67,hit_dice:"9d8 + 26",speed:"30 ft.",stats:[16,12,17,9,11,9],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any one language (usually Common)",cr:"2",bestiary:!0,traits:[{name:"Reckless",desc:"At the start of its turn, the berserker can gain advantage on all melee weapon attack rolls during that turn, but attack rolls against it have advantage until the start of its next turn.",attack_bonus:0}],actions:[{name:"Greataxe",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 9 (1d12 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d12",damage_bonus:3}]},{name:"Black Bear",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:19,hit_dice:"3d8 + 5",speed:"40 ft., climb 30 ft.",stats:[15,10,14,2,12,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Keen Smell",desc:"The bear has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The bear makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:2},{name:"Claws",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) slashing damage.",attack_bonus:3,damage_dice:"2d4",damage_bonus:2}]},{name:"Black Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"chaotic evil",ac:17,hp:33,hit_dice:"6d8 + 6",speed:"30 ft., fly 60 ft., swim 30 ft.",stats:[15,14,13,10,11,13],saves:[{dexterity:4},{constitution:3},{wisdom:2},{charisma:3}],skillsaves:[{perception:4},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"2",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (1d10 + 2) piercing damage plus 2 (1d4) acid damage.",attack_bonus:4,damage_dice:"1d10",damage_bonus:2},{name:"Acid Breath (Recharge 5-6)",desc:"The dragon exhales acid in a 15-foot line that is 5 feet wide. Each creature in that line must make a DC 11 Dexterity saving throw, taking 22 (Sd8) acid damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"5d8"}]},{name:"Black Pudding",source:"5e SRD",size:"Large",type:"ooze",subtype:"",alignment:"unaligned",ac:7,hp:85,hit_dice:"10d10 + 30",speed:"20 ft., climb 20 ft.",stats:[16,5,16,1,6,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid, cold, lightning, slashing",condition_immunities:"blinded, charmed, deafened, exhaustion, frightened, prone",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 8",languages:"",cr:"4",bestiary:!0,traits:[{name:"Amorphous",desc:"The pudding can move through a space as narrow as 1 inch wide without squeezing.",attack_bonus:0},{name:"Corrosive Form",desc:"A creature that touches the pudding or hits it with a melee attack while within 5 feet of it takes 4 (1d8) acid damage. Any nonmagical weapon made of metal or wood that hits the pudding corrodes. After dealing damage, the weapon takes a permanent and cumulative -1 penalty to damage rolls. If its penalty drops to -5, the weapon is destroyed. Nonmagical ammunition made of metal or wood that hits the pudding is destroyed after dealing damage. The pudding can eat through 2-inch-thick, nonmagical wood or metal in 1 round.",attack_bonus:0,damage_dice:"1d8"},{name:"Spider Climb",desc:"The pudding can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0}],actions:[{name:"Pseudopod",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) bludgeoning damage plus 18 (4d8) acid damage. In addition, nonmagical armor worn by the target is partly dissolved and takes a permanent and cumulative -1 penalty to the AC it offers. The armor is destroyed if the penalty reduces its AC to 10.",attack_bonus:5,damage_dice:"1d6 + 4d8",damage_bonus:3}],reactions:[{name:"Split",desc:"When a pudding that is Medium or larger is subjected to lightning or slashing damage, it splits into two new puddings if it has at least 10 hit points. Each new pudding has hit points equal to half the original pudding's, rounded down. New puddings are one size smaller than the original pudding.",attack_bonus:0}]},{name:"Blink Dog",source:"5e SRD",size:"Medium",type:"fey",subtype:"",alignment:"lawful good",ac:13,hp:22,hit_dice:"4d8 + 4",speed:"40 ft.",stats:[12,17,12,10,13,11],skillsaves:[{perception:3},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"Blink Dog, understands Sylvan but can't speak it",cr:"1/4",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The dog has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1},{name:"Teleport (Recharge 4-6)",desc:"The dog magically teleports, along with any equipment it is wearing or carrying, up to 40 ft. to an unoccupied space it can see. Before or after teleporting, the dog can make one bite attack.",attack_bonus:0}]},{name:"Blood Hawk",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:7,hit_dice:"2d6",speed:"10 ft., fly 60 ft.",stats:[6,14,10,3,14,5],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"",cr:"1/8",bestiary:!0,traits:[{name:"Keen Sight",desc:"The hawk has advantage on Wisdom (Perception) checks that rely on sight.",attack_bonus:0},{name:"Pack Tactics",desc:"The hawk has advantage on an attack roll against a creature if at least one of the hawk's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Beak",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Blue Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"lawful evil",ac:17,hp:52,hit_dice:"8d8 + 16",speed:"30 ft., burrow 15 ft., fly 60 ft.",stats:[17,10,15,12,11,15],saves:[{dexterity:2},{constitution:4},{wisdom:2},{charisma:4}],skillsaves:[{perception:4},{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"3",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (1d10 + 3) piercing damage plus 3 (1d6) lightning damage.",attack_bonus:5,damage_dice:"1d10 + 1d6",damage_bonus:3},{name:"Lightning Breath (Recharge 5-6)",desc:"The dragon exhales lightning in a 30-foot line that is 5 feet wide. Each creature in that line must make a DC 12 Dexterity saving throw, taking 22 (4d10) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"4d10"}]},{name:"Boar",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:11,hit_dice:"2d8 + 2",speed:"40 ft.",stats:[13,11,12,2,9,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 9",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Charge",desc:"If the boar moves at least 20 ft. straight toward a target and then hits it with a tusk attack on the same turn, the target takes an extra 3 (1d6) slashing damage. If the target is a creature, it must succeed on a DC 11 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"1d6"},{name:"Relentless (Recharges after a Short or Long Rest)",desc:"If the boar takes 7 damage or less that would reduce it to 0 hit points, it is reduced to 1 hit point instead.",attack_bonus:0}],actions:[{name:"Tusk",desc:"Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) slashing damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Bone Devil",source:"5e SRD",size:"Large",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:19,hp:142,hit_dice:"15d10 + 59",speed:"40 ft., fly 40 ft.",stats:[18,16,18,13,14,16],saves:[{intelligence:5},{wisdom:6},{charisma:7}],skillsaves:[{deception:7},{insight:6}],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 9",languages:"Infernal, telepathy 120 ft.",cr:"12",bestiary:!0,traits:[{name:"Devil's Sight",desc:"Magical darkness doesn't impede the devil's darkvision.",attack_bonus:0},{name:"Magic Resistance",desc:"The devil has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The devil makes three attacks: two with its claws and one with its sting.",attack_bonus:0},{name:"Multiattack",desc:"The devil makes three attacks: two with its claws and one with its sting.",attack_bonus:0},{name:"Claw",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 8 (1d8 + 4) slashing damage.",attack_bonus:8,damage_dice:"1d8",damage_bonus:4},{name:"Claw",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 8 (1d8 + 4) slashing damage.",attack_bonus:8,damage_dice:"1d8",damage_bonus:4},{name:"Sting",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 13 (2d8 + 4) piercing damage plus 17 (5d6) poison damage, and the target must succeed on a DC 14 Constitution saving throw or become poisoned for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success .",attack_bonus:8,damage_dice:"2d8",damage_bonus:4},{name:"Sting",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 13 (2d8 + 4) piercing damage plus 17 (5d6) poison damage, and the target must succeed on a DC 14 Constitution saving throw or become poisoned for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success .",attack_bonus:8,damage_dice:"2d8",damage_bonus:4}]},{name:"Brass Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"chaotic good",ac:16,hp:16,hit_dice:"3d8 + 2",speed:"30 ft., burrow 15 ft., fly 60 ft.",stats:[15,10,13,10,11,13],saves:[{dexterity:2},{constitution:3},{wisdom:2},{charisma:3}],skillsaves:[{perception:4},{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"1",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (1d10 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d10",damage_bonus:2},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Fire Breath. The dragon exhales fire in an 20-foot line that is 5 feet wide. Each creature in that line must make a DC 11 Dexterity saving throw, taking 14 (4d6) fire damage on a failed save, or half as much damage on a successful one. +Sleep Breath. The dragon exhales sleep gas in a 15-foot cone. Each creature in that area must succeed on a DC 11 Constitution saving throw or fall unconscious for 1 minute. This effect ends for a creature if the creature takes damage or someone uses an action to wake it.`,attack_bonus:0,damage_dice:"4d6"}]},{name:"Bronze Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"lawful good",ac:17,hp:32,hit_dice:"5d8 + 9",speed:"30 ft., fly 60 ft., swim 30 ft.",stats:[17,10,15,12,11,15],saves:[{dexterity:2},{constitution:4},{wisdom:2},{charisma:4}],skillsaves:[{perception:4},{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"2",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (1d10 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d10",damage_bonus:3},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Lightning Breath. The dragon exhales lightning in a 40-foot line that is 5 feet wide. Each creature in that line must make a DC 12 Dexterity saving throw, taking 16 (3d10) lightning damage on a failed save, or half as much damage on a successful one. +Repulsion Breath. The dragon exhales repulsion energy in a 30-foot cone. Each creature in that area must succeed on a DC 12 Strength saving throw. On a failed save, the creature is pushed 30 feet away from the dragon.`,attack_bonus:0,damage_dice:"3d10"}]},{name:"Brown Bear",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:34,hit_dice:"4d10 + 12",speed:"40 ft., climb 30 ft.",stats:[19,10,16,2,13,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1",bestiary:!0,traits:[{name:"Keen Smell",desc:"The bear has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The bear makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (1d8 + 4) piercing damage.",attack_bonus:5,damage_dice:"1d8",damage_bonus:4},{name:"Claws",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:5,damage_dice:"2d6",damage_bonus:4}]},{name:"Bugbear",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"goblinoid",alignment:"chaotic evil",ac:16,hp:27,hit_dice:"5d8 + 4",speed:"30 ft.",stats:[15,14,13,8,11,9],skillsaves:[{stealth:6},{survival:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"Common, Goblin",cr:"1",bestiary:!0,traits:[{name:"Brute",desc:"A melee weapon deals one extra die of its damage when the bugbear hits with it (included in the attack).",attack_bonus:0},{name:"Surprise Attack",desc:"If the bugbear surprises a creature and hits it with an attack during the first round of combat, the target takes an extra 7 (2d6) damage from the attack.",attack_bonus:0,damage_dice:"2d6"}],actions:[{name:"Morningstar",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 11 (2d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"2d8",damage_bonus:2},{name:"Javelin",desc:"Melee or Ranged Weapon Attack: +4 to hit, reach 5 ft. or range 30/120 ft., one target. Hit: 9 (2d6 + 2) piercing damage in melee or 5 (1d6 + 2) piercing damage at range.",attack_bonus:4,damage_dice:"2d6",damage_bonus:2}]},{name:"Bulette",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:17,hp:94,hit_dice:"9d10 + 44",speed:"40 ft., burrow 40 ft.",stats:[19,11,21,2,10,5],skillsaves:[{perception:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., tremorsense 60 ft., passive Perception 16",languages:"",cr:"5",bestiary:!0,traits:[{name:"Standing Leap",desc:"The bulette's long jump is up to 30 ft. and its high jump is up to 15 ft., with or without a running start.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 30 (4d12 + 4) piercing damage.",attack_bonus:7,damage_dice:"4d12",damage_bonus:4},{name:"Deadly Leap",desc:"If the bulette jumps at least 15 ft. as part of its movement, it can then use this action to land on its ft. in a space that contains one or more other creatures. Each of those creatures must succeed on a DC 16 Strength or Dexterity saving throw (target's choice) or be knocked prone and take 14 (3d6 + 4) bludgeoning damage plus 14 (3d6 + 4) slashing damage. On a successful save, the creature takes only half the damage, isn't knocked prone, and is pushed 5 ft. out of the bulette's space into an unoccupied space of the creature's choice. If no unoccupied space is within range, the creature instead falls prone in the bulette's space.",attack_bonus:0}]},{name:"Camel",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:9,hp:15,hit_dice:"2d10 + 4",speed:"50 ft.",stats:[16,8,14,2,8,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 9",languages:"",cr:"1/8",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 2 (1d4) bludgeoning damage.",attack_bonus:5,damage_dice:"1d4"}]},{name:"Carrion Crawler",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:13,hp:51,hit_dice:"6d10 + 18",speed:"30 ft., climb 30 ft.",stats:[14,13,16,1,12,5],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"",cr:"2",bestiary:!0,traits:[{name:"Keen Smell",desc:"The carrion crawler has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Spider Climb",desc:"The carrion crawler can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The carrion crawler makes two attacks: one with its tentacles and one with its bite.",attack_bonus:0},{name:"Tentacles",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one creature. Hit: 4 (1d4 + 2) poison damage, and the target must succeed on a DC 13 Constitution saving throw or be poisoned for 1 minute. Until this poison ends, the target is paralyzed. The target can repeat the saving throw at the end of each of its turns, ending the poison on itself on a success.",attack_bonus:8,damage_dice:"1d4",damage_bonus:2},{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"2d4",damage_bonus:2}]},{name:"Cat",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:2,hit_dice:"1d4 + -1",speed:"40 ft., climb 30 ft.",stats:[3,15,10,3,12,7],skillsaves:[{perception:3},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Smell",desc:"The cat has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Claws",desc:"Melee Weapon Attack: +0 to hit, reach 5 ft., one target. Hit: 1 slashing damage.",attack_bonus:0,damage_bonus:1}]},{name:"Cave Bear",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:42,hit_dice:"5d10 + 14",speed:"40 ft., swim 30 ft.",stats:[20,10,16,2,13,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"",cr:"2",bestiary:!0,traits:[{name:"Keen Smell",desc:"The bear has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The bear makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 9 (1d8 + 5) piercing damage.",attack_bonus:7,damage_dice:"1d8",damage_bonus:5},{name:"Claws",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:5}]},{name:"Centaur",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"neutral good",ac:12,hp:45,hit_dice:"6d10 + 12",speed:"50 ft.",stats:[18,14,14,9,13,11],skillsaves:[{athletics:6},{perception:3},{survival:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"Elvish, Sylvan",cr:"2",bestiary:!0,traits:[{name:"Charge",desc:"If the centaur moves at least 30 ft. straight toward a target and then hits it with a pike attack on the same turn, the target takes an extra 10 (3d6) piercing damage.",attack_bonus:0,damage_dice:"3d6"}],actions:[{name:"Multiattack",desc:"The centaur makes two attacks: one with its pike and one with its hooves or two with its longbow.",attack_bonus:0},{name:"Pike",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one target. Hit: 9 (1d10 + 4) piercing damage.",attack_bonus:6,damage_dice:"1d10",damage_bonus:4},{name:"Hooves",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4},{name:"Longbow",desc:"Ranged Weapon Attack: +4 to hit, range 150/600 ft., one target. Hit: 6 (1d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Chain Devil",source:"5e SRD",size:"Medium",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:16,hp:85,hit_dice:"10d8 + 40",speed:"30 ft.",stats:[18,15,18,11,12,14],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 8",languages:"Infernal, telepathy 120 ft.",cr:"11",bestiary:!0,traits:[{name:"Devil's Sight",desc:"Magical darkness doesn't impede the devil's darkvision.",attack_bonus:0},{name:"Magic Resistance",desc:"The devil has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The devil makes two attacks with its chains.",attack_bonus:0},{name:"Chain",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 11 (2d6 + 4) slashing damage. The target is grappled (escape DC 14) if the devil isn't already grappling a creature. Until this grapple ends, the target is restrained and takes 7 (2d6) piercing damage at the start of each of its turns.",attack_bonus:8,damage_dice:"2d6",damage_bonus:4},{name:"Animate Chains (Recharges after a Short or Long Rest)",desc:`Up to four chains the devil can see within 60 feet of it magically sprout razor-edged barbs and animate under the devil's control, provided that the chains aren't being worn or carried. +Each animated chain is an object with AC 20, 20 hit points, resistance to piercing damage, and immunity to psychic and thunder damage. When the devil uses Multiattack on its turn, it can use each animated chain to make one additional chain attack. An animated chain can grapple one creature of its own but can't make attacks while grappling. An animated chain reverts to its inanimate state if reduced to 0 hit points or if the devil is incapacitated or dies.`,attack_bonus:0}],reactions:[{name:"Unnerving Mask",desc:"When a creature the devil can see starts its turn within 30 feet of the devil, the devil can create the illusion that it looks like one of the creature's departed loved ones or bitter enemies. If the creature can see the devil, it must succeed on a DC 14 Wisdom saving throw or be frightened until the end of its turn.",attack_bonus:0}]},{name:"Chimera",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"chaotic evil",ac:14,hp:114,hit_dice:"12d10 + 48",speed:"30 ft., fly 60 ft.",stats:[19,11,19,3,14,10],skillsaves:[{perception:8}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 18",languages:"understands Draconic but can't speak",cr:"6",bestiary:!0,actions:[{name:"Multiattack",desc:"The chimera makes three attacks: one with its bite, one with its horns, and one with its claws. When its fire breath is available, it can use the breath in place of its bite or horns.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) piercing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Horns",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 10 (1d12 + 4) bludgeoning damage.",attack_bonus:7,damage_dice:"1d12",damage_bonus:4},{name:"Claws",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Fire Breath (Recharge 5-6)",desc:"The dragon head exhales fire in a 15-foot cone. Each creature in that area must make a DC 15 Dexterity saving throw, taking 31 (7d8) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"7d8"}]},{name:"Chuul",source:"5e SRD",size:"Large",type:"aberration",subtype:"",alignment:"chaotic evil",ac:16,hp:93,hit_dice:"11d10 + 32",speed:"30 ft., swim 30 ft.",stats:[19,10,16,5,11,5],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 14",languages:"understands Deep Speech but can't speak",cr:"4",bestiary:!0,traits:[{name:"Amphibious",desc:"The chuul can breathe air and water.",attack_bonus:0},{name:"Sense Magic",desc:"The chuul senses magic within 120 feet of it at will. This trait otherwise works like the detect magic spell but isn't itself magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The chuul makes two pincer attacks. If the chuul is grappling a creature, the chuul can also use its tentacles once.",attack_bonus:0},{name:"Pincer",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage. The target is grappled (escape DC 14) if it is a Large or smaller creature and the chuul doesn't have two other creatures grappled.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4},{name:"Tentacles",desc:"One creature grappled by the chuul must succeed on a DC 13 Constitution saving throw or be poisoned for 1 minute. Until this poison ends, the target is paralyzed. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:0}]},{name:"Clay Golem",source:"5e SRD",size:"Large",type:"construct",subtype:"",alignment:"unaligned",ac:14,hp:133,hit_dice:"14d10 + 56",speed:"20 ft.",stats:[20,9,18,3,8,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid, poison, psychic; bludgeoning, piercing, and slashing from nonmagical weapons that aren't adamantine",condition_immunities:"charmed, exhaustion, frightened, paralyzed, petrified, poisoned",senses:"darkvision 60 ft., passive Perception 9",languages:"understands the languages of its creator but can't speak",cr:"9",bestiary:!0,traits:[{name:"Acid Absorption",desc:"Whenever the golem is subjected to acid damage, it takes no damage and instead regains a number of hit points equal to the acid damage dealt.",attack_bonus:0},{name:"Berserk",desc:"Whenever the golem starts its turn with 60 hit points or fewer, roll a d6. On a 6, the golem goes berserk. On each of its turns while berserk, the golem attacks the nearest creature it can see. If no creature is near enough to move to and attack, the golem attacks an object, with preference for an object smaller than itself. Once the golem goes berserk, it continues to do so until it is destroyed or regains all its hit points.",attack_bonus:0},{name:"Immutable Form",desc:"The golem is immune to any spell or effect that would alter its form.",attack_bonus:0},{name:"Magic Resistance",desc:"The golem has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The golem's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The golem makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 16 (2d10 + 5) bludgeoning damage. If the target is a creature, it must succeed on a DC 15 Constitution saving throw or have its hit point maximum reduced by an amount equal to the damage taken. The target dies if this attack reduces its hit point maximum to 0. The reduction lasts until removed by the greater restoration spell or other magic.",attack_bonus:8,damage_dice:"2d10",damage_bonus:5},{name:"Haste (Recharge 5-6)",desc:"Until the end of its next turn, the golem magically gains a +2 bonus to its AC, has advantage on Dexterity saving throws, and can use its slam attack as a bonus action.",attack_bonus:0}]},{name:"Cloaker",source:"5e SRD",size:"Large",type:"aberration",subtype:"",alignment:"chaotic neutral",ac:14,hp:78,hit_dice:"12d10 + 12",speed:"10 ft., fly 40 ft.",stats:[17,15,12,13,12,14],skillsaves:[{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 11",languages:"Deep Speech, Undercommon",cr:"8",bestiary:!0,traits:[{name:"Damage Transfer",desc:"While attached to a creature, the cloaker takes only half the damage dealt to it (rounded down). and that creature takes the other half.",attack_bonus:0},{name:"False Appearance",desc:"While the cloaker remains motionless without its underside exposed, it is indistinguishable from a dark leather cloak.",attack_bonus:0},{name:"Light Sensitivity",desc:"While in bright light, the cloaker has disadvantage on attack rolls and Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The cloaker makes two attacks: one with its bite and one with its tail.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one creature. Hit: 10 (2d6 + 3) piercing damage, and if the target is Large or smaller, the cloaker attaches to it. If the cloaker has advantage against the target, the cloaker attaches to the target's head, and the target is blinded and unable to breathe while the cloaker is attached. While attached, the cloaker can make this attack only against the target and has advantage on the attack roll. The cloaker can detach itself by spending 5 feet of its movement. A creature, including the target, can take its action to detach the cloaker by succeeding on a DC 16 Strength check.",attack_bonus:6,damage_dice:"2d6",damage_bonus:3},{name:"Tail",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one creature. Hit: 7 (1d8 + 3) slashing damage.",attack_bonus:6,damage_dice:"1d8",damage_bonus:3},{name:"Moan",desc:"Each creature within 60 feet of the cloaker that can hear its moan and that isn't an aberration must succeed on a DC 13 Wisdom saving throw or become frightened until the end of the cloaker's next turn. If a creature's saving throw is successful, the creature is immune to the cloaker's moan for the next 24 hours.",attack_bonus:0},{name:"Phantasms (Recharges after a Short or Long Rest)",desc:`The cloaker magically creates three illusory duplicates of itself if it isn't in bright light. The duplicates move with it and mimic its actions, shifting position so as to make it impossible to track which cloaker is the real one. If the cloaker is ever in an area of bright light, the duplicates disappear. +Whenever any creature targets the cloaker with an attack or a harmful spell while a duplicate remains, that creature rolls randomly to determine whether it targets the cloaker or one of the duplicates. A creature is unaffected by this magical effect if it can't see or if it relies on senses other than sight. +A duplicate has the cloaker's AC and uses its saving throws. If an attack hits a duplicate, or if a duplicate fails a saving throw against an effect that deals damage, the duplicate disappears.`,attack_bonus:0}]},{name:"Cloud Giant",source:"5e SRD",size:"Huge",type:"giant",subtype:"",alignment:"neutral good (50%) or neutral evil (50%)",ac:14,hp:200,hit_dice:"16d12 + 96",speed:"40 ft.",stats:[27,10,22,12,16,16],saves:[{constitution:10},{wisdom:7},{charisma:7}],skillsaves:[{insight:7},{perception:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 17",languages:"Common, Giant",cr:"9",bestiary:!0,traits:[{name:"Keen Smell",desc:"The giant has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The giant's innate spellcasting ability is Charisma. It can innately cast the following spells, requiring no material components: + +At will: detect magic, fog cloud, light +3/day each: feather fall, fly, misty step, telekinesis +1/day each: control weather, gaseous form`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The giant makes two morningstar attacks.",attack_bonus:0},{name:"Morningstar",desc:"Melee Weapon Attack: +12 to hit, reach 10 ft., one target. Hit: 21 (3d8 + 8) piercing damage.",attack_bonus:12,damage_dice:"3d8",damage_bonus:8},{name:"Rock",desc:"Ranged Weapon Attack: +12 to hit, range 60/240 ft., one target. Hit: 30 (4d10 + 8) bludgeoning damage.",attack_bonus:12,damage_dice:"4d10",damage_bonus:8}]},{name:"Cockatrice",source:"5e SRD",size:"Small",type:"monstrosity",subtype:"",alignment:"unaligned",ac:11,hp:27,hit_dice:"6d6 + 6",speed:"20 ft., fly 40 ft.",stats:[6,12,12,2,13,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 11",languages:"",cr:"1/2",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one creature. Hit: 3 (1d4 + 1) piercing damage, and the target must succeed on a DC 11 Constitution saving throw against being magically petrified. On a failed save, the creature begins to turn to stone and is restrained. It must repeat the saving throw at the end of its next turn. On a success, the effect ends. On a failure, the creature is petrified for 24 hours.",attack_bonus:3,damage_dice:"1d4",damage_bonus:1}]},{name:"Commoner",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:10,hp:4,hit_dice:"1d8 + -1",speed:"30 ft.",stats:[10,10,10,10,10,10],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any one language (usually Common)",cr:"0",bestiary:!0,actions:[{name:"Club",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 2 (1d4) bludgeoning damage.",attack_bonus:2,damage_dice:"1d4"}]},{name:"Constrictor Snake",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:13,hit_dice:"2d10 + 2",speed:"30 ft., swim 30 ft.",stats:[15,14,12,1,10,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., passive Perception 10",languages:"",cr:"1/4",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Constrict",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 6 (1d8 + 2) bludgeoning damage, and the target is grappled (escape DC 14). Until this grapple ends, the creature is restrained, and the snake can't constrict another target.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Copper Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"chaotic good",ac:16,hp:22,hit_dice:"4d8 + 4",speed:"30 ft., climb 30 ft., fly 60 ft.",stats:[15,12,13,14,11,13],saves:[{dexterity:3},{constitution:3},{wisdom:2},{charisma:3}],skillsaves:[{perception:4},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"1",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (1d10 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d10",damage_bonus:2},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Acid Breath. The dragon exhales acid in an 20-foot line that is 5 feet wide. Each creature in that line must make a DC 11 Dexterity saving throw, taking 18 (4d8) acid damage on a failed save, or half as much damage on a successful one. +Slowing Breath. The dragon exhales gas in a 1 5-foot cone. Each creature in that area must succeed on a DC 11 Constitution saving throw. On a failed save, the creature can't use reactions, its speed is halved, and it can't make more than one attack on its turn. In addition, the creature can use either an action or a bonus action on its turn, but not both. These effects last for 1 minute. The creature can repeat the saving throw at the end of each of its turns, ending the effect on itself with a successful save.`,attack_bonus:0,damage_dice:"4d8"}]},{name:"Couatl",source:"5e SRD",size:"Medium",type:"celestial",subtype:"",alignment:"lawful good",ac:19,hp:97,hit_dice:"13d8 + 38",speed:"30 ft., fly 90 ft.",stats:[16,20,17,18,20,18],saves:[{constitution:5},{wisdom:7},{charisma:6}],damage_vulnerabilities:"",damage_resistances:"radiant",damage_immunities:"psychic; bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"",senses:"truesight 120 ft., passive Perception 15",languages:"all, telepathy 120 ft.",cr:"4",bestiary:!0,traits:[{name:"Innate Spellcasting",desc:`The couatl's spellcasting ability is Charisma (spell save DC 14). It can innately cast the following spells, requiring only verbal components: + +At will: detect evil and good, detect magic, detect thoughts +3/day each: bless, create food and water, cure wounds, lesser restoration, protection from poison, sanctuary, shield +1/day each: dream, greater restoration, scrying`,attack_bonus:0},{name:"Magic Weapons",desc:"The couatl's weapon attacks are magical.",attack_bonus:0},{name:"Shielded Mind",desc:"The couatl is immune to scrying and to any effect that would sense its emotions, read its thoughts, or detect its location.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one creature. Hit: 8 (1d6 + 5) piercing damage, and the target must succeed on a DC 13 Constitution saving throw or be poisoned for 24 hours. Until this poison ends, the target is unconscious. Another creature can use an action to shake the target awake.",attack_bonus:8,damage_dice:"1d6",damage_bonus:5},{name:"Constrict",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one Medium or smaller creature. Hit: 10 (2d6 + 3) bludgeoning damage, and the target is grappled (escape DC 15). Until this grapple ends, the target is restrained, and the couatl can't constrict another target.",attack_bonus:6,damage_dice:"2d6",damage_bonus:3},{name:"Change Shape",desc:`The couatl magically polymorphs into a humanoid or beast that has a challenge rating equal to or less than its own, or back into its true form. It reverts to its true form if it dies. Any equipment it is wearing or carrying is absorbed or borne by the new form (the couatl's choice). +In a new form, the couatl retains its game statistics and ability to speak, but its AC, movement modes, Strength, Dexterity, and other actions are replaced by those of the new form, and it gains any statistics and capabilities (except class features, legendary actions, and lair actions) that the new form has but that it lacks. If the new form has a bite attack, the couatl can use its bite in that form.`,attack_bonus:0}]},{name:"Crab",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:2,hit_dice:"1d4",speed:"20 ft., swim 20 ft.",stats:[2,11,10,1,8,2],skillsaves:[{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 30 ft., passive Perception 9",languages:"",cr:"0",bestiary:!0,traits:[{name:"Amphibious",desc:"The crab can breathe air and water.",attack_bonus:0}],actions:[{name:"Claw",desc:"Melee Weapon Attack: +0 to hit, reach 5 ft., one target. Hit: 1 bludgeoning damage.",attack_bonus:0,damage_bonus:1}]},{name:"Crocodile",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:19,hit_dice:"3d10 + 2",speed:"20 ft., swim 20 ft.",stats:[15,10,13,2,10,5],skillsaves:[{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Hold Breath",desc:"The crocodile can hold its breath for 15 minutes.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 7 (1d10 + 2) piercing damage, and the target is grappled (escape DC 12). Until this grapple ends, the target is restrained, and the crocodile can't bite another target",attack_bonus:4,damage_dice:"1d10",damage_bonus:2}]},{name:"Cult Fanatic",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any non-good alignment",ac:13,hp:22,hit_dice:"6d8 + -5",speed:"30 ft.",stats:[11,14,12,10,13,14],skillsaves:[{deception:4},{persuasion:4},{religion:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"any one language (usually Common)",cr:"2",bestiary:!0,traits:[{name:"Dark Devotion",desc:"The fanatic has advantage on saving throws against being charmed or frightened.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The fanatic makes two melee attacks.",attack_bonus:0},{name:"Dagger",desc:"Melee or Ranged Weapon Attack: +4 to hit, reach 5 ft. or range 20/60 ft., one creature. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}],spells:["The fanatic is a 4th-level spellcaster. Its spell casting ability is Wisdom (spell save DC 11, +3 to hit with spell attacks). The fanatic has the following cleric spells prepared:","Cantrips (at will): light, sacred flame, thaumaturgy",{"1st level (4 slots)":"command, inflict wounds, shield of faith"},{"2nd level (3 slots)":"hold person, spiritual weapon"}]},{name:"Cultist",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any non-good alignment",ac:12,hp:9,hit_dice:"2d8",speed:"30 ft.",stats:[11,12,10,10,11,10],skillsaves:[{deception:2},{religion:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any one language (usually Common)",cr:"1/8",bestiary:!0,traits:[{name:"Dark Devotion",desc:"The cultist has advantage on saving throws against being charmed or frightened.",attack_bonus:0}],actions:[{name:"Scimitar",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one creature. Hit: 4 (1d6 + 1) slashing damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Darkmantle",source:"5e SRD",size:"Small",type:"monstrosity",subtype:"",alignment:"unaligned",ac:11,hp:22,hit_dice:"5d6 + 4",speed:"10 ft., fly 30 ft.",stats:[16,12,13,2,10,5],skillsaves:[{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 60 ft., passive Perception 10",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Echolocation",desc:"The darkmantle can't use its blindsight while deafened.",attack_bonus:0},{name:"False Appearance",desc:"While the darkmantle remains motionless, it is indistinguishable from a cave formation such as a stalactite or stalagmite.",attack_bonus:0}],actions:[{name:"Crush",desc:`Melee Weapon Attack: +5 to hit, reach 5 ft., one creature. Hit: 6 (1d6 + 3) bludgeoning damage, and the darkmantle attaches to the target. If the target is Medium or smaller and the darkmantle has advantage on the attack roll, it attaches by engulfing the target's head, and the target is also blinded and unable to breathe while the darkmantle is attached in this way. +While attached to the target, the darkmantle can attack no other creature except the target but has advantage on its attack rolls. The darkmantle's speed also becomes 0, it can't benefit from any bonus to its speed, and it moves with the target. +A creature can detach the darkmantle by making a successful DC 13 Strength check as an action. On its turn, the darkmantle can detach itself from the target by using 5 feet of movement.`,attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Darkness Aura (1/day)",desc:"A 15-foot radius of magical darkness extends out from the darkmantle, moves with it, and spreads around corners. The darkness lasts as long as the darkmantle maintains concentration, up to 10 minutes (as if concentrating on a spell). Darkvision can't penetrate this darkness, and no natural light can illuminate it. If any of the darkness overlaps with an area of light created by a spell of 2nd level or lower, the spell creating the light is dispelled.",attack_bonus:0}]},{name:"Death Dog",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"",alignment:"neutral evil",ac:12,hp:39,hit_dice:"6d8 + 12",speed:"40 ft.",stats:[15,14,14,3,13,6],skillsaves:[{perception:5},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 15",languages:"",cr:"1",bestiary:!0,traits:[{name:"Two-Headed",desc:"The dog has advantage on Wisdom (Perception) checks and on saving throws against being blinded, charmed, deafened, frightened, stunned, or knocked unconscious.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dog makes two bite attacks.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage. If the target is a creature, it must succeed on a DC 12 Constitution saving throw against disease or become poisoned until the disease is cured. Every 24 hours that elapse, the creature must repeat the saving throw, reducing its hit point maximum by 5 (1d10) on a failure. This reduction lasts until the disease is cured. The creature dies if the disease reduces its hit point maximum to 0.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Deep Gnome (Svirfneblin)",source:"5e SRD",size:"Small",type:"humanoid",subtype:"gnome",alignment:"neutral good",ac:15,hp:16,hit_dice:"3d6 + 5",speed:"20 ft.",stats:[15,14,14,12,10,9],skillsaves:[{perception:2},{investigation:3},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 12",languages:"Gnomish, Terran, Undercommon",cr:"1/2",bestiary:!0,traits:[{name:"Stone Camouflage",desc:"The gnome has advantage on Dexterity (Stealth) checks made to hide in rocky terrain.",attack_bonus:0},{name:"Gnome Cunning",desc:"The gnome has advantage on Intelligence, Wisdom, and Charisma saving throws against magic.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The gnome's innate spellcasting ability is Intelligence (spell save DC 11). It can innately cast the following spells, requiring no material components: +At will: nondetection (self only) +1/day each: blindness/deafness, blur, disguise self`,attack_bonus:0}],actions:[{name:"War Pick",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2},{name:"Poisoned Dart",desc:"Ranged Weapon Attack: +4 to hit, range 30/120 ft., one creature. Hit: 4 (1d4 + 2) piercing damage, and the target must succeed on a DC 12 Constitution saving throw or be poisoned for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Deer",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:4,hit_dice:"1d8 + -1",speed:"50 ft.",stats:[11,16,11,2,14,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"",cr:"0",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 2 (1d4) piercing damage.",attack_bonus:2,damage_dice:"1d4"}]},{name:"Deva",source:"5e SRD",size:"Medium",type:"celestial",subtype:"",alignment:"lawful good",ac:17,hp:136,hit_dice:"16d8 + 64",speed:"30 ft., fly 90 ft.",stats:[18,18,18,17,20,20],saves:[{wisdom:9},{charisma:9}],skillsaves:[{insight:9},{perception:9}],damage_vulnerabilities:"",damage_resistances:"radiant; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"",condition_immunities:"charmed, exhaustion, frightened",senses:"darkvision 120 ft., passive Perception 19",languages:"all, telepathy 120 ft.",cr:"10",bestiary:!0,traits:[{name:"Angelic Weapons",desc:"The deva's weapon attacks are magical. When the deva hits with any weapon, the weapon deals an extra 4d8 radiant damage (included in the attack).",attack_bonus:0},{name:"Innate Spellcasting",desc:`The deva's spellcasting ability is Charisma (spell save DC 17). The deva can innately cast the following spells, requiring only verbal components: +At will: detect evil and good +1/day each: commune, raise dead`,attack_bonus:0},{name:"Magic Resistance",desc:"The deva has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The deva makes two melee attacks.",attack_bonus:0},{name:"Mace",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 7 (1d6 + 4) bludgeoning damage plus 18 (4d8) radiant damage.",attack_bonus:8,damage_dice:"1d6 + 4d8",damage_bonus:4},{name:"Healing Touch (3/Day)",desc:"The deva touches another creature. The target magically regains 20 (4d8 + 2) hit points and is freed from any curse, disease, poison, blindness, or deafness.",attack_bonus:0},{name:"Change Shape",desc:`The deva magically polymorphs into a humanoid or beast that has a challenge rating equal to or less than its own, or back into its true form. It reverts to its true form if it dies. Any equipment it is wearing or carrying is absorbed or borne by the new form (the deva's choice). +In a new form, the deva retains its game statistics and ability to speak, but its AC, movement modes, Strength, Dexterity, and special senses are replaced by those of the new form, and it gains any statistics and capabilities (except class features, legendary actions, and lair actions) that the new form has but that it lacks.`,attack_bonus:0}]},{name:"Dire Wolf",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:14,hp:37,hit_dice:"5d10 + 9",speed:"50 ft.",stats:[17,15,15,3,12,7],skillsaves:[{perception:3},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The wolf has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The wolf has advantage on an attack roll against a creature if at least one of the wolf's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) piercing damage. If the target is a creature, it must succeed on a DC 13 Strength saving throw or be knocked prone.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3}]},{name:"Djinni",source:"5e SRD",size:"Large",type:"elemental",subtype:"",alignment:"chaotic good",ac:17,hp:161,hit_dice:"14d10 + 84",speed:"30 ft., fly 90 ft.",stats:[21,15,22,15,16,20],saves:[{dexterity:6},{wisdom:7},{charisma:9}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning, thunder",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 13",languages:"Auran",cr:"11",bestiary:!0,traits:[{name:"Elemental Demise",desc:"If the djinni dies, its body disintegrates into a warm breeze, leaving behind only equipment the djinni was wearing or carrying.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The djinni's innate spellcasting ability is Charisma (spell save DC 17, +9 to hit with spell attacks). It can innately cast the following spells, requiring no material components: + +At will: detect evil and good, detect magic, thunderwave 3/day each: create food and water (can create wine instead of water), tongues, wind walk +1/day each: conjure elemental (air elemental only), creation, gaseous form, invisibility, major image, plane shift`,attack_bonus:0},{name:"Variant: Genie Powers",desc:`Genies have a variety of magical capabilities, including spells. A few have even greater powers that allow them to alter their appearance or the nature of reality. + +Disguises. +Some genies can veil themselves in illusion to pass as other similarly shaped creatures. Such genies can innately cast the disguise self spell at will, often with a longer duration than is normal for that spell. Mightier genies can cast the true polymorph spell one to three times per day, possibly with a longer duration than normal. Such genies can change only their own shape, but a rare few can use the spell on other creatures and objects as well. +Wishes. +The genie power to grant wishes is legendary among mortals. Only the most potent genies, such as those among the nobility, can do so. A particular genie that has this power can grant one to three wishes to a creature that isn't a genie. Once a genie has granted its limit of wishes, it can't grant wishes again for some amount of time (usually 1 year). and cosmic law dictates that the same genie can expend its limit of wishes on a specific creature only once in that creature's existence. +To be granted a wish, a creature within 60 feet of the genie states a desired effect to it. The genie can then cast the wish spell on the creature's behalf to bring about the effect. Depending on the genie's nature, the genie might try to pervert the intent of the wish by exploiting the wish's poor wording. The perversion of the wording is usually crafted to be to the genie's benefit.`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The djinni makes three scimitar attacks.",attack_bonus:0},{name:"Scimitar",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) slashing damage plus 3 (1d6) lightning or thunder damage (djinni's choice).",attack_bonus:9,damage_dice:"2d6 + 1d6",damage_bonus:5},{name:"Create Whirlwind",desc:`A 5-foot-radius, 30-foot-tall cylinder of swirling air magically forms on a point the djinni can see within 120 feet of it. The whirlwind lasts as long as the djinni maintains concentration (as if concentrating on a spell). Any creature but the djinni that enters the whirlwind must succeed on a DC 18 Strength saving throw or be restrained by it. The djinni can move the whirlwind up to 60 feet as an action, and creatures restrained by the whirlwind move with it. The whirlwind ends if the djinni loses sight of it. +A creature can use its action to free a creature restrained by the whirlwind, including itself, by succeeding on a DC 18 Strength check. If the check succeeds, the creature is no longer restrained and moves to the nearest space outside the whirlwind.`,attack_bonus:0}]},{name:"Doppelganger",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"shapechanger",alignment:"unaligned",ac:14,hp:52,hit_dice:"8d8 + 16",speed:"30 ft.",stats:[11,18,14,11,12,14],skillsaves:[{deception:6},{insight:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"charmed",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 11",languages:"Common",cr:"3",bestiary:!0,traits:[{name:"Shapechanger",desc:"The doppelganger can use its action to polymorph into a Small or Medium humanoid it has seen, or back into its true form. Its statistics, other than its size, are the same in each form. Any equipment it is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Ambusher",desc:"The doppelganger has advantage on attack rolls against any creature it has surprised.",attack_bonus:0},{name:"Surprise Attack",desc:"If the doppelganger surprises a creature and hits it with an attack during the first round of combat, the target takes an extra 10 (3d6) damage from the attack.",attack_bonus:0,damage_dice:"3d6"}],actions:[{name:"Multiattack",desc:"The doppelganger makes two melee attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 7 (1d6 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"1d6",damage_bonus:4},{name:"Read Thoughts",desc:"The doppelganger magically reads the surface thoughts of one creature within 60 ft. of it. The effect can penetrate barriers, but 3 ft. of wood or dirt, 2 ft. of stone, 2 inches of metal, or a thin sheet of lead blocks it. While the target is in range, the doppelganger can continue reading its thoughts, as long as the doppelganger's concentration isn't broken (as if concentrating on a spell). While reading the target's mind, the doppelganger has advantage on Wisdom (Insight) and Charisma (Deception, Intimidation, and Persuasion) checks against the target.",attack_bonus:0}]},{name:"Draft Horse",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:19,hit_dice:"3d10 + 2",speed:"40 ft.",stats:[18,10,12,2,11,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/4",bestiary:!0,actions:[{name:"Hooves",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 9 (2d4 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d4",damage_bonus:4}]},{name:"Dragon Turtle",source:"5e SRD",size:"Gargantuan",type:"dragon",subtype:"",alignment:"neutral",ac:20,hp:341,hit_dice:"22d20 + 110",speed:"20 ft., swim 40 ft.",stats:[25,10,20,10,12,12],saves:[{dexterity:6},{constitution:11},{wisdom:7}],damage_vulnerabilities:"",damage_resistances:"fire",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 11",languages:"Aquan, Draconic",cr:"17",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon turtle can breathe air and water.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon turtle makes three attacks: one with its bite and two with its claws. It can make one tail attack in place of its two claw attacks.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +13 to hit, reach 15 ft., one target. Hit: 26 (3d12 + 7) piercing damage.",attack_bonus:13,damage_dice:"3d12",damage_bonus:7},{name:"Claw",desc:"Melee Weapon Attack: +13 to hit, reach 10 ft., one target. Hit: 16 (2d8 + 7) slashing damage.",attack_bonus:13,damage_dice:"2d8",damage_bonus:7},{name:"Tail",desc:"Melee Weapon Attack: +13 to hit, reach 15 ft., one target. Hit: 26 (3d12 + 7) bludgeoning damage. If the target is a creature, it must succeed on a DC 20 Strength saving throw or be pushed up to 10 feet away from the dragon turtle and knocked prone.",attack_bonus:13,damage_dice:"3d12",damage_bonus:7},{name:"Steam Breath (Recharge 5-6)",desc:"The dragon turtle exhales scalding steam in a 60-foot cone. Each creature in that area must make a DC 18 Constitution saving throw, taking 52 (15d6) fire damage on a failed save, or half as much damage on a successful one. Being underwater doesn't grant resistance against this damage.",attack_bonus:0,damage_dice:"15d6"}]},{name:"Dretch",source:"5e SRD",size:"Small",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:11,hp:18,hit_dice:"4d6 + 4",speed:"20 ft.",stats:[11,11,12,5,8,3],damage_vulnerabilities:"",damage_resistances:"cold, fire, lightning",damage_immunities:"poison",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 9",languages:"Abyssal, telepathy 60 ft. (works only with creatures that understand Abyssal)",cr:"1/4",bestiary:!0,actions:[{name:"Multiattack",desc:"The dretch makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 3 (1d6) piercing damage.",attack_bonus:2,damage_dice:"1d6"},{name:"Claws",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 5 (2d4) slashing damage.",attack_bonus:2,damage_dice:"2d4"},{name:"Fetid Cloud (1/Day)",desc:"A 10-foot radius of disgusting green gas extends out from the dretch. The gas spreads around corners, and its area is lightly obscured. It lasts for 1 minute or until a strong wind disperses it. Any creature that starts its turn in that area must succeed on a DC 11 Constitution saving throw or be poisoned until the start of its next turn. While poisoned in this way, the target can take either an action or a bonus action on its turn, not both, and can't take reactions.",attack_bonus:0}]},{name:"Drider",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"chaotic evil",ac:19,hp:123,hit_dice:"13d10 + 51",speed:"30 ft., climb 30 ft.",stats:[16,16,18,13,14,12],skillsaves:[{perception:5},{stealth:9}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 15",languages:"Elvish, Undercommon",cr:"6",bestiary:!0,traits:[{name:"Fey Ancestry",desc:"The drider has advantage on saving throws against being charmed, and magic can't put the drider to sleep.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The drider's innate spellcasting ability is Wisdom (spell save DC 13). The drider can innately cast the following spells, requiring no material components: +At will: dancing lights +1/day each: darkness, faerie fire`,attack_bonus:0},{name:"Spider Climb",desc:"The drider can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Sunlight Sensitivity",desc:"While in sunlight, the drider has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight.",attack_bonus:0},{name:"Web Walker",desc:"The drider ignores movement restrictions caused by webbing.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The drider makes three attacks, either with its longsword or its longbow. It can replace one of those attacks with a bite attack.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one creature. Hit: 2 (1d4) piercing damage plus 9 (2d8) poison damage.",attack_bonus:6,damage_dice:"1d4",damage_bonus:2},{name:"Longsword",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) slashing damage, or 8 (1d10 + 3) slashing damage if used with two hands.",attack_bonus:6,damage_dice:"1d8",damage_bonus:3},{name:"Longbow",desc:"Ranged Weapon Attack: +6 to hit, range 150/600 ft., one target. Hit: 7 (1d8 + 3) piercing damage plus 4 (1d8) poison damage.",attack_bonus:6,damage_dice:"1d8",damage_bonus:3}]},{name:"Drow",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"elf",alignment:"neutral evil",ac:15,hp:13,hit_dice:"3d8 + -1",speed:"30 ft.",stats:[10,14,10,11,11,12],skillsaves:[{perception:2},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 12",languages:"Elvish, Undercommon",cr:"1/4",bestiary:!0,traits:[{name:"Fey Ancestry",desc:"The drow has advantage on saving throws against being charmed, and magic can't put the drow to sleep.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The drow's spellcasting ability is Charisma (spell save DC 11). It can innately cast the following spells, requiring no material components: +At will: dancing lights +1/day each: darkness, faerie fire`,attack_bonus:0},{name:"Sunlight Sensitivity",desc:"While in sunlight, the drow has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Shortsword",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Hand Crossbow",desc:"Ranged Weapon Attack: +4 to hit, range 30/120 ft., one target. Hit: 5 (1d6 + 2) piercing damage, and the target must succeed on a DC 13 Constitution saving throw or be poisoned for 1 hour. If the saving throw fails by 5 or more, the target is also unconscious while poisoned in this way. The target wakes up if it takes damage or if another creature takes an action to shake it awake.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Druid",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:11,hp:27,hit_dice:"5d8 + 4",speed:"30 ft.",stats:[10,12,13,12,15,11],skillsaves:[{nature:3},{medicine:4},{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"Druidic plus any two languages",cr:"2",bestiary:!0,traits:[],actions:[{name:"Quarterstaff",desc:"Melee Weapon Attack: +2 to hit (+4 to hit with shillelagh), reach 5 ft., one target. Hit: 3 (1d6) bludgeoning damage, or 6 (1d8 + 2) bludgeoning damage with shillelagh or if wielded with two hands.",attack_bonus:2,damage_dice:"1d6"}],spells:["The druid is a 4th-level spellcaster. Its spellcasting ability is Wisdom (spell save DC 12, +4 to hit with spell attacks). It has the following druid spells prepared:",{"Cantrips (at will)":"druidcraft, produce flame, shillelagh"},{"1st level (4 slots)":"entangle, longstrider, speak with animals, thunderwave"},{"2nd level (3 slots)":"animal messenger, barkskin"}]},{name:"Dryad",source:"5e SRD",size:"Medium",type:"fey",subtype:"",alignment:"neutral",ac:11,hp:22,hit_dice:"5d8 + -1",speed:"30 ft.",stats:[10,12,11,14,15,18],skillsaves:[{perception:4},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"Elvish, Sylvan",cr:"1",bestiary:!0,traits:[{name:"Innate Spellcasting",desc:`The dryad's innate spellcasting ability is Charisma (spell save DC 14). The dryad can innately cast the following spells, requiring no material components: + +At will: druidcraft +3/day each: entangle, goodberry +1/day each: barkskin, pass without trace, shillelagh`,attack_bonus:0},{name:"Magic Resistance",desc:"The dryad has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Speak with Beasts and Plants",desc:"The dryad can communicate with beasts and plants as if they shared a language.",attack_bonus:0},{name:"Tree Stride",desc:"Once on her turn, the dryad can use 10 ft. of her movement to step magically into one living tree within her reach and emerge from a second living tree within 60 ft. of the first tree, appearing in an unoccupied space within 5 ft. of the second tree. Both trees must be large or bigger.",attack_bonus:0}],actions:[{name:"Club",desc:"Melee Weapon Attack: +2 to hit (+6 to hit with shillelagh), reach 5 ft., one target. Hit: 2 (1 d4) bludgeoning damage, or 8 (1d8 + 4) bludgeoning damage with shillelagh.",attack_bonus:2,damage_dice:"1d4"},{name:"Fey Charm",desc:`The dryad targets one humanoid or beast that she can see within 30 feet of her. If the target can see the dryad, it must succeed on a DC 14 Wisdom saving throw or be magically charmed. The charmed creature regards the dryad as a trusted friend to be heeded and protected. Although the target isn't under the dryad's control, it takes the dryad's requests or actions in the most favorable way it can. +Each time the dryad or its allies do anything harmful to the target, it can repeat the saving throw, ending the effect on itself on a success. Otherwise, the effect lasts 24 hours or until the dryad dies, is on a different plane of existence from the target, or ends the effect as a bonus action. If a target's saving throw is successful, the target is immune to the dryad's Fey Charm for the next 24 hours. +The dryad can have no more than one humanoid and up to three beasts charmed at a time.`,attack_bonus:0}]},{name:"Duergar",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"dwarf",alignment:"lawful evil",ac:16,hp:26,hit_dice:"4d8 + 8",speed:"25 ft.",stats:[14,11,14,11,10,9],damage_vulnerabilities:"",damage_resistances:"poison",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 10",languages:"Dwarvish, Undercommon",cr:"1",bestiary:!0,traits:[{name:"Duergar Resilience",desc:"The duergar has advantage on saving throws against poison, spells, and illusions, as well as to resist being charmed or paralyzed.",attack_bonus:0},{name:"Sunlight Sensitivity",desc:"While in sunlight, the duergar has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Enlarge (Recharges after a Short or Long Rest)",desc:"For 1 minute, the duergar magically increases in size, along with anything it is wearing or carrying. While enlarged, the duergar is Large, doubles its damage dice on Strength-based weapon attacks (included in the attacks), and makes Strength checks and Strength saving throws with advantage. If the duergar lacks the room to become Large, it attains the maximum size possible in the space available.",attack_bonus:0},{name:"War Pick",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) piercing damage, or 11 (2d8 + 2) piercing damage while enlarged.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2},{name:"Javelin",desc:"Melee or Ranged Weapon Attack: +4 to hit, reach 5 ft. or range 30/120 ft., one target. Hit: 5 (1d6 + 2) piercing damage, or 9 (2d6 + 2) piercing damage while enlarged.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Invisibility (Recharges after a Short or Long Rest)",desc:"The duergar magically turns invisible until it attacks, casts a spell, or uses its Enlarge, or until its concentration is broken, up to 1 hour (as if concentrating on a spell). Any equipment the duergar wears or carries is invisible with it .",attack_bonus:0}]},{name:"Dust Mephit",source:"5e SRD",size:"Small",type:"elemental",subtype:"",alignment:"neutral evil",ac:12,hp:17,hit_dice:"5d6 + -1",speed:"30 ft., fly 30 ft.",stats:[5,14,10,9,11,10],skillsaves:[{perception:2},{stealth:4}],damage_vulnerabilities:"fire",damage_resistances:"",damage_immunities:"poison",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 12",languages:"Auran, Terran",cr:"1/2",bestiary:!0,traits:[{name:"Death Burst",desc:"When the mephit dies, it explodes in a burst of dust. Each creature within 5 ft. of it must then succeed on a DC 10 Constitution saving throw or be blinded for 1 minute. A blinded creature can repeat the saving throw on each of its turns, ending the effect on itself on a success.",attack_bonus:0},{name:"Innate Spellcasting (1/Day)",desc:"The mephit can innately cast sleep, requiring no material components. Its innate spellcasting ability is Charisma.",attack_bonus:0}],actions:[{name:"Claws",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 4 (1d4 + 2) slashing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2},{name:"Blinding Breath (Recharge 6)",desc:"The mephit exhales a 15-foot cone of blinding dust. Each creature in that area must succeed on a DC 10 Dexterity saving throw or be blinded for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:0},{name:"Variant: Summon Mephits (1/Day)",desc:"The mephit has a 25 percent chance of summoning 1d4 mephits of its kind. A summoned mephit appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other mephits. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.",attack_bonus:0}]},{name:"Eagle",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:3,hit_dice:"1d6 + -1",speed:"10 ft., fly 60 ft.",stats:[6,15,10,2,14,7],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Sight",desc:"The eagle has advantage on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Talons",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) slashing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Earth Elemental",source:"5e SRD",size:"Large",type:"elemental",subtype:"",alignment:"neutral",ac:17,hp:126,hit_dice:"12d10 + 60",speed:"30 ft., burrow 30 ft.",stats:[20,8,20,5,10,5],damage_vulnerabilities:"thunder",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"exhaustion, paralyzed, petrified, poisoned, unconscious",senses:"darkvision 60 ft., tremorsense 60 ft., passive Perception 10",languages:"Terran",cr:"5",bestiary:!0,traits:[{name:"Earth Glide",desc:"The elemental can burrow through nonmagical, unworked earth and stone. While doing so, the elemental doesn't disturb the material it moves through.",attack_bonus:0},{name:"Siege Monster",desc:"The elemental deals double damage to objects and structures.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The elemental makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 14 (2d8 + 5) bludgeoning damage.",attack_bonus:8,damage_dice:"2d8",damage_bonus:5}]},{name:"Efreeti",source:"5e SRD",size:"Large",type:"elemental",subtype:"",alignment:"lawful evil",ac:17,hp:200,hit_dice:"16d10 + 112",speed:"40 ft., fly 60 ft.",stats:[22,12,24,16,15,16],saves:[{intelligence:7},{wisdom:6},{charisma:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 12",languages:"Ignan",cr:"11",bestiary:!0,traits:[{name:"Elemental Demise",desc:"If the efreeti dies, its body disintegrates in a flash of fire and puff of smoke, leaving behind only equipment the djinni was wearing or carrying.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The efreeti's innate spell casting ability is Charisma (spell save DC 15, +7 to hit with spell attacks). It can innately cast the following spells, requiring no material components: + +At will: detect magic +3/day: enlarge/reduce, tongues +1/day each: conjure elemental (fire elemental only), gaseous form, invisibility, major image, plane shift, wall of fire`,attack_bonus:0},{name:"Variant: Genie Powers",desc:`Genies have a variety of magical capabilities, including spells. A few have even greater powers that allow them to alter their appearance or the nature of reality. + +Disguises. +Some genies can veil themselves in illusion to pass as other similarly shaped creatures. Such genies can innately cast the disguise self spell at will, often with a longer duration than is normal for that spell. Mightier genies can cast the true polymorph spell one to three times per day, possibly with a longer duration than normal. Such genies can change only their own shape, but a rare few can use the spell on other creatures and objects as well. +Wishes. +The genie power to grant wishes is legendary among mortals. Only the most potent genies, such as those among the nobility, can do so. A particular genie that has this power can grant one to three wishes to a creature that isn't a genie. Once a genie has granted its limit of wishes, it can't grant wishes again for some amount of time (usually 1 year). and cosmic law dictates that the same genie can expend its limit of wishes on a specific creature only once in that creature's existence. +To be granted a wish, a creature within 60 feet of the genie states a desired effect to it. The genie can then cast the wish spell on the creature's behalf to bring about the effect. Depending on the genie's nature, the genie might try to pervert the intent of the wish by exploiting the wish's poor wording. The perversion of the wording is usually crafted to be to the genie's benefit.`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The efreeti makes two scimitar attacks or uses its Hurl Flame twice.",attack_bonus:0},{name:"Scimitar",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage plus 7 (2d6) fire damage.",attack_bonus:10,damage_dice:"2d6 + 2d6",damage_bonus:6},{name:"Hurl Flame",desc:"Ranged Spell Attack: +7 to hit, range 120 ft., one target. Hit: 17 (5d6) fire damage.",attack_bonus:7,damage_dice:"5d6"}]},{name:"Elephant",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:76,hit_dice:"8d12 + 24",speed:"40 ft.",stats:[22,9,17,3,11,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"4",bestiary:!0,traits:[{name:"Trampling Charge",desc:"If the elephant moves at least 20 ft. straight toward a creature and then hits it with a gore attack on the same turn, that target must succeed on a DC 12 Strength saving throw or be knocked prone. If the target is prone, the elephant can make one stomp attack against it as a bonus action.",attack_bonus:0}],actions:[{name:"Gore",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 19 (3d8 + 6) piercing damage.",attack_bonus:8,damage_dice:"3d8",damage_bonus:6},{name:"Stomp",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one prone creature. Hit: 22 (3d10 + 6) bludgeoning damage.",attack_bonus:8,damage_dice:"3d10",damage_bonus:6}]},{name:"Elk",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:13,hit_dice:"2d10 + 2",speed:"50 ft.",stats:[16,10,12,2,10,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Charge",desc:"If the elk moves at least 20 ft. straight toward a target and then hits it with a ram attack on the same turn, the target takes an extra 7 (2d6) damage. If the target is a creature, it must succeed on a DC 13 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d6"}],actions:[{name:"Ram",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) bludgeoning damage.",attack_bonus:0},{name:"Hooves",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one prone creature. Hit: 8 (2d4 + 3) bludgeoning damage.",attack_bonus:0}]},{name:"Erinyes",source:"5e SRD",size:"Medium",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:18,hp:153,hit_dice:"18d8 + 72",speed:"30 ft., fly 60 ft.",stats:[18,16,18,14,14,18],saves:[{dexterity:7},{constitution:8},{wisdom:6},{charisma:8}],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"truesight 120 ft., passive Perception 12",languages:"Infernal, telepathy 120 ft.",cr:"12",bestiary:!0,traits:[{name:"Hellish Weapons",desc:"The erinyes's weapon attacks are magical and deal an extra 13 (3d8) poison damage on a hit (included in the attacks).",attack_bonus:0},{name:"Magic Resistance",desc:"The erinyes has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The erinyes makes three attacks",attack_bonus:0},{name:"Longsword",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 8 (1d8 + 4) slashing damage, or 9 (1d10 + 4) slashing damage if used with two hands, plus 13 (3d8) poison damage.",attack_bonus:8,damage_dice:"1d8 + 3d8",damage_bonus:4},{name:"Longbow",desc:"Ranged Weapon Attack: +7 to hit, range 150/600 ft., one target. Hit: 7 (1d8 + 3) piercing damage plus 13 (3d8) poison damage, and the target must succeed on a DC 14 Constitution saving throw or be poisoned. The poison lasts until it is removed by the lesser restoration spell or similar magic.",attack_bonus:7,damage_dice:"1d8 + 3d8",damage_bonus:3},{name:"Variant: Rope of Entanglement",desc:"Some erinyes carry a rope of entanglement (detailed in the Dungeon Master's Guide). When such an erinyes uses its Multiattack, the erinyes can use the rope in place of two of the attacks.",attack_bonus:0}],reactions:[{name:"Parry",desc:"The erinyes adds 4 to its AC against one melee attack that would hit it. To do so, the erinyes must see the attacker and be wielding a melee weapon.",attack_bonus:0}]},{name:"Ettercap",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"",alignment:"neutral evil",ac:13,hp:44,hit_dice:"8d8 + 8",speed:"30 ft., climb 30 ft.",stats:[14,15,13,7,12,8],skillsaves:[{perception:3},{stealth:4},{survival:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"",cr:"2",bestiary:!0,traits:[{name:"Spider Climb",desc:"The ettercap can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Web Sense",desc:"While in contact with a web, the ettercap knows the exact location of any other creature in contact with the same web.",attack_bonus:0},{name:"Web Walker",desc:"The ettercap ignores movement restrictions caused by webbing.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The ettercap makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 6 (1d8 + 2) piercing damage plus 4 (1d8) poison damage. The target must succeed on a DC 11 Constitution saving throw or be poisoned for 1 minute. The creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2},{name:"Claws",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) slashing damage.",attack_bonus:4,damage_dice:"2d4",damage_bonus:2},{name:"Web (Recharge 5-6)",desc:"Ranged Weapon Attack: +4 to hit, range 30/60 ft., one Large or smaller creature. Hit: The creature is restrained by webbing. As an action, the restrained creature can make a DC 11 Strength check, escaping from the webbing on a success. The effect ends if the webbing is destroyed. The webbing has AC 10, 5 hit points, is vulnerable to fire damage and immune to bludgeoning damage.",attack_bonus:0},{name:"Variant: Web Garrote",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one Medium or Small creature against which the ettercap has advantage on the attack roll. Hit: 4 (1d4 + 2) bludgeoning damage, and the target is grappled (escape DC 12). Until this grapple ends, the target can't breathe, and the ettercap has advantage on attack rolls against it.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Ettin",source:"5e SRD",size:"Large",type:"giant",subtype:"",alignment:"chaotic evil",ac:12,hp:85,hit_dice:"10d10 + 30",speed:"40 ft.",stats:[21,8,17,6,10,8],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"Giant, Orc",cr:"4",bestiary:!0,traits:[{name:"Two Heads",desc:"The ettin has advantage on Wisdom (Perception) checks and on saving throws against being blinded, charmed, deafened, frightened, stunned, and knocked unconscious.",attack_bonus:0},{name:"Wakeful",desc:"When one of the ettin's heads is asleep, its other head is awake.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The ettin makes two attacks: one with its battleaxe and one with its morningstar.",attack_bonus:0},{name:"Battleaxe",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 14 (2d8 + 5) slashing damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:5},{name:"Morningstar",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 14 (2d8 + 5) piercing damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:5}]},{name:"Fire Elemental",source:"5e SRD",size:"Large",type:"elemental",subtype:"",alignment:"neutral",ac:13,hp:102,hit_dice:"12d10 + 36",speed:"50 ft.",stats:[10,17,16,6,10,7],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"fire, poison",condition_immunities:"exhaustion, grappled, paralyzed, petrified, poisoned, prone, restrained, unconscious",senses:"darkvision 60 ft., passive Perception 10",languages:"Ignan",cr:"5",bestiary:!0,traits:[{name:"Fire Form",desc:"The elemental can move through a space as narrow as 1 inch wide without squeezing. A creature that touches the elemental or hits it with a melee attack while within 5 ft. of it takes 5 (1d10) fire damage. In addition, the elemental can enter a hostile creature's space and stop there. The first time it enters a creature's space on a turn, that creature takes 5 (1d10) fire damage and catches fire; until someone takes an action to douse the fire, the creature takes 5 (1d10) fire damage at the start of each of its turns.",attack_bonus:0,damage_dice:"5d10"},{name:"Illumination",desc:"The elemental sheds bright light in a 30-foot radius and dim light in an additional 30 ft..",attack_bonus:0},{name:"Water Susceptibility",desc:"For every 5 ft. the elemental moves in water, or for every gallon of water splashed on it, it takes 1 cold damage.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The elemental makes two touch attacks.",attack_bonus:0},{name:"Touch",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) fire damage. If the target is a creature or a flammable object, it ignites. Until a creature takes an action to douse the fire, the target takes 5 (1d10) fire damage at the start of each of its turns.",attack_bonus:6,damage_dice:"2d6",damage_bonus:3}]},{name:"Fire Giant",source:"5e SRD",size:"Huge",type:"giant",subtype:"",alignment:"lawful evil",ac:18,hp:162,hit_dice:"13d12 + 77",speed:"30 ft.",stats:[25,9,23,10,14,13],saves:[{dexterity:3},{constitution:10},{charisma:5}],skillsaves:[{athletics:11},{perception:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"passive Perception 16",languages:"Giant",cr:"9",bestiary:!0,actions:[{name:"Multiattack",desc:"The giant makes two greatsword attacks.",attack_bonus:0},{name:"Greatsword",desc:"Melee Weapon Attack: +11 to hit, reach 10 ft., one target. Hit: 28 (6d6 + 7) slashing damage.",attack_bonus:11,damage_dice:"6d6",damage_bonus:7},{name:"Rock",desc:"Ranged Weapon Attack: +11 to hit, range 60/240 ft., one target. Hit: 29 (4d10 + 7) bludgeoning damage.",attack_bonus:11,damage_dice:"4d10",damage_bonus:7}]},{name:"Flesh Golem",source:"5e SRD",size:"Medium",type:"construct",subtype:"",alignment:"neutral",ac:9,hp:93,hit_dice:"11d8 + 43",speed:"30 ft.",stats:[19,9,18,6,10,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning, poison; bludgeoning, piercing, and slashing from nonmagical weapons that aren't adamantine",condition_immunities:"charmed, exhaustion, frightened, paralyzed, petrified, poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"understands the languages of its creator but can't speak",cr:"5",bestiary:!0,traits:[{name:"Berserk",desc:`Whenever the golem starts its turn with 40 hit points or fewer, roll a d6. On a 6, the golem goes berserk. On each of its turns while berserk, the golem attacks the nearest creature it can see. If no creature is near enough to move to and attack, the golem attacks an object, with preference for an object smaller than itself. Once the golem goes berserk, it continues to do so until it is destroyed or regains all its hit points. +The golem's creator, if within 60 feet of the berserk golem, can try to calm it by speaking firmly and persuasively. The golem must be able to hear its creator, who must take an action to make a DC 15 Charisma (Persuasion) check. If the check succeeds, the golem ceases being berserk. If it takes damage while still at 40 hit points or fewer, the golem might go berserk again.`,attack_bonus:0},{name:"Aversion of Fire",desc:"If the golem takes fire damage, it has disadvantage on attack rolls and ability checks until the end of its next turn.",attack_bonus:0},{name:"Immutable Form",desc:"The golem is immune to any spell or effect that would alter its form.",attack_bonus:0},{name:"Lightning Absorption",desc:"Whenever the golem is subjected to lightning damage, it takes no damage and instead regains a number of hit points equal to the lightning damage dealt.",attack_bonus:0},{name:"Magic Resistance",desc:"The golem has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The golem's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The golem makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) bludgeoning damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:4}]},{name:"Flying Snake",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:14,hp:5,hit_dice:"2d4",speed:"30 ft., fly 60 ft., swim 30 ft.",stats:[4,18,11,2,12,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., passive Perception 11",languages:"",cr:"1/8",bestiary:!0,traits:[{name:"Flyby",desc:"The snake doesn't provoke opportunity attacks when it flies out of an enemy's reach.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 1 piercing damage plus 7 (3d4) poison damage.",attack_bonus:6,damage_bonus:1}]},{name:"Flying Sword",source:"5e SRD",size:"Small",type:"construct",subtype:"",alignment:"unaligned",ac:17,hp:17,hit_dice:"5d6 + -1",speed:"0 ft., fly 50 ft. It can hover.",stats:[12,15,11,1,5,1],saves:[{dexterity:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison, psychic",condition_immunities:"blinded, charmed, deafened, frightened, paralyzed, petrified, poisoned",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 7",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Antimagic Susceptibility",desc:"The sword is incapacitated while in the area of an antimagic field. If targeted by dispel magic, the sword must succeed on a Constitution saving throw against the caster's spell save DC or fall unconscious for 1 minute.",attack_bonus:0},{name:"False Appearance",desc:"While the sword remains motionless and isn't flying, it is indistinguishable from a normal sword.",attack_bonus:0}],actions:[{name:"Longsword",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 5 (1d8 + 1) slashing damage.",attack_bonus:3,damage_dice:"1d8",damage_bonus:1}]},{name:"Frog",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:1,hit_dice:"1d4 + -2",speed:"20 ft., swim 20 ft.",stats:[1,13,8,1,8,3],skillsaves:[{perception:1},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 11",languages:"",cr:"0",bestiary:!0,traits:[{name:"Amphibious",desc:"The frog can breathe air and water",attack_bonus:0},{name:"Standing Leap",desc:"The frog's long jump is up to 10 ft. and its high jump is up to 5 ft., with or without a running start.",attack_bonus:0}]},{name:"Frost Giant",source:"5e SRD",size:"Huge",type:"giant",subtype:"",alignment:"neutral evil",ac:15,hp:138,hit_dice:"12d12 + 60",speed:"40 ft.",stats:[23,9,21,9,10,12],saves:[{constitution:8},{wisdom:3},{charisma:4}],skillsaves:[{athletics:9},{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"passive Perception 13",languages:"Giant",cr:"8",bestiary:!0,actions:[{name:"Multiattack",desc:"The giant makes two greataxe attacks.",attack_bonus:0},{name:"Greataxe",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft., one target. Hit: 25 (3d12 + 6) slashing damage.",attack_bonus:9,damage_dice:"3d12",damage_bonus:6},{name:"Rock",desc:"Ranged Weapon Attack: +9 to hit, range 60/240 ft., one target. Hit: 28 (4d10 + 6) bludgeoning damage.",attack_bonus:9,damage_dice:"4d10",damage_bonus:6}]},{name:"Gargoyle",source:"5e SRD",size:"Medium",type:"elemental",subtype:"",alignment:"chaotic evil",ac:15,hp:52,hit_dice:"7d8 + 20",speed:"30 ft., fly 60 ft.",stats:[15,11,16,6,11,7],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons that aren't adamantine",damage_immunities:"poison",condition_immunities:"exhaustion, petrified, poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"Terran",cr:"2",bestiary:!0,traits:[{name:"False Appearance",desc:"While the gargoyle remains motion less, it is indistinguishable from an inanimate statue.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The gargoyle makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Claws",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) slashing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Gelatinous Cube",source:"5e SRD",size:"Large",type:"ooze",subtype:"",alignment:"unaligned",ac:6,hp:84,hit_dice:"8d10 + 40",speed:"15 ft.",stats:[14,3,20,1,6,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"blinded, charmed, deafened, exhaustion, frightened, prone",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 8",languages:"",cr:"2",bestiary:!0,traits:[{name:"Ooze Cube",desc:`The cube takes up its entire space. Other creatures can enter the space, but a creature that does so is subjected to the cube's Engulf and has disadvantage on the saving throw. +Creatures inside the cube can be seen but have total cover. +A creature within 5 feet of the cube can take an action to pull a creature or object out of the cube. Doing so requires a successful DC 12 Strength check, and the creature making the attempt takes 10 (3d6) acid damage. +The cube can hold only one Large creature or up to four Medium or smaller creatures inside it at a time.`,attack_bonus:0},{name:"Transparent",desc:"Even when the cube is in plain sight, it takes a successful DC 15 Wisdom (Perception) check to spot a cube that has neither moved nor attacked. A creature that tries to enter the cube's space while unaware of the cube is surprised by the cube.",attack_bonus:0}],actions:[{name:"Pseudopod",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 10 (3d6) acid damage.",attack_bonus:4,damage_dice:"3d6"},{name:"Engulf",desc:`The cube moves up to its speed. While doing so, it can enter Large or smaller creatures' spaces. Whenever the cube enters a creature's space, the creature must make a DC 12 Dexterity saving throw. +On a successful save, the creature can choose to be pushed 5 feet back or to the side of the cube. A creature that chooses not to be pushed suffers the consequences of a failed saving throw. +On a failed save, the cube enters the creature's space, and the creature takes 10 (3d6) acid damage and is engulfed. The engulfed creature can't breathe, is restrained, and takes 21 (6d6) acid damage at the start of each of the cube's turns. When the cube moves, the engulfed creature moves with it. +An engulfed creature can try to escape by taking an action to make a DC 12 Strength check. On a success, the creature escapes and enters a space of its choice within 5 feet of the cube.`,attack_bonus:0}]},{name:"Ghast",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"chaotic evil",ac:13,hp:36,hit_dice:"8d8",speed:"30 ft.",stats:[16,17,10,11,10,8],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"necrotic",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"Common",cr:"2",bestiary:!0,traits:[{name:"Stench",desc:"Any creature that starts its turn within 5 ft. of the ghast must succeed on a DC 10 Constitution saving throw or be poisoned until the start of its next turn. On a successful saving throw, the creature is immune to the ghast's Stench for 24 hours.",attack_bonus:0},{name:"Turn Defiance",desc:"The ghast and any ghouls within 30 ft. of it have advantage on saving throws against effects that turn undead.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one creature. Hit: 12 (2d8 + 3) piercing damage.",attack_bonus:3,damage_dice:"2d8",damage_bonus:3},{name:"Claws",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage. If the target is a creature other than an undead, it must succeed on a DC 10 Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3}]},{name:"Ghost",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"any alignment",ac:11,hp:45,hit_dice:"10d8",speed:"0 ft., fly 40 ft. It can hover.",stats:[7,13,10,10,12,17],damage_vulnerabilities:"",damage_resistances:"acid, fire, lightning, thunder; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"cold, necrotic, poison",condition_immunities:"charmed, exhaustion, frightened, grappled, paralyzed, petrified, poisoned, prone, restrained",senses:"darkvision 60 ft., passive Perception 11",languages:"any languages it knew in life",cr:"4",bestiary:!0,traits:[{name:"Ethereal Sight",desc:"The ghost can see 60 ft. into the Ethereal Plane when it is on the Material Plane, and vice versa.",attack_bonus:0},{name:"Incorporeal Movement",desc:"The ghost can move through other creatures and objects as if they were difficult terrain. It takes 5 (1d10) force damage if it ends its turn inside an object.",attack_bonus:0}],actions:[{name:"Withering Touch",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 17 (4d6 + 3) necrotic damage.",attack_bonus:5,damage_dice:"4d6",damage_bonus:3},{name:"Etherealness",desc:"The ghost enters the Ethereal Plane from the Material Plane, or vice versa. It is visible on the Material Plane while it is in the Border Ethereal, and vice versa, yet it can't affect or be affected by anything on the other plane.",attack_bonus:0},{name:"Horrifying Visage",desc:"Each non-undead creature within 60 ft. of the ghost that can see it must succeed on a DC 13 Wisdom saving throw or be frightened for 1 minute. If the save fails by 5 or more, the target also ages 1d4 _ 10 years. A frightened target can repeat the saving throw at the end of each of its turns, ending the frightened condition on itself on a success. If a target's saving throw is successful or the effect ends for it, the target is immune to this ghost's Horrifying Visage for the next 24 hours. The aging effect can be reversed with a greater restoration spell, but only within 24 hours of it occurring.",attack_bonus:0},{name:"Possession (Recharge 6)",desc:`One humanoid that the ghost can see within 5 ft. of it must succeed on a DC 13 Charisma saving throw or be possessed by the ghost; the ghost then disappears, and the target is incapacitated and loses control of its body. The ghost now controls the body but doesn't deprive the target of awareness. The ghost can't be targeted by any attack, spell, or other effect, except ones that turn undead, and it retains its alignment, Intelligence, Wisdom, Charisma, and immunity to being charmed and frightened. It otherwise uses the possessed target's statistics, but doesn't gain access to the target's knowledge, class features, or proficiencies. +The possession lasts until the body drops to 0 hit points, the ghost ends it as a bonus action, or the ghost is turned or forced out by an effect like the dispel evil and good spell. When the possession ends, the ghost reappears in an unoccupied space within 5 ft. of the body. The target is immune to this ghost's Possession for 24 hours after succeeding on the saving throw or after the possession ends.`,attack_bonus:0}]},{name:"Ghoul",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"chaotic evil",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"30 ft.",stats:[13,15,10,7,10,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"Common",cr:"1",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one creature. Hit: 9 (2d6 + 2) piercing damage.",attack_bonus:2,damage_dice:"2d6",damage_bonus:2},{name:"Claws",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) slashing damage. If the target is a creature other than an elf or undead, it must succeed on a DC 10 Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:0}]},{name:"Giant Ape",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:157,hit_dice:"15d12 + 59",speed:"40 ft., climb 40 ft.",stats:[23,14,18,7,12,7],skillsaves:[{athletics:9},{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"",cr:"7",bestiary:!0,actions:[{name:"Multiattack",desc:"The ape makes two fist attacks.",attack_bonus:0},{name:"Fist",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft., one target. Hit: 22 (3d10 + 6) bludgeoning damage.",attack_bonus:9,damage_dice:"3d10",damage_bonus:6},{name:"Rock",desc:"Ranged Weapon Attack: +9 to hit, range 50/100 ft., one target. Hit: 30 (7d6 + 6) bludgeoning damage.",attack_bonus:9,damage_dice:"7d6",damage_bonus:6}]},{name:"Giant Badger",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:13,hit_dice:"2d8 + 4",speed:"30 ft., burrow 10 ft.",stats:[13,10,15,2,12,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 11",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Keen Smell",desc:"The badger has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The badger makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1},{name:"Claws",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 6 (2d4 + 1) slashing damage.",attack_bonus:3,damage_dice:"2d4",damage_bonus:1}]},{name:"Giant Bat",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:22,hit_dice:"4d10",speed:"10 ft., fly 60 ft.",stats:[15,16,11,2,12,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 60 ft., passive Perception 11",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Echolocation",desc:"The bat can't use its blindsight while deafened.",attack_bonus:0},{name:"Keen Hearing",desc:"The bat has advantage on Wisdom (Perception) checks that rely on hearing.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Giant Boar",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:42,hit_dice:"5d10 + 14",speed:"40 ft.",stats:[17,10,16,2,7,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 8",languages:"",cr:"2",bestiary:!0,traits:[{name:"Charge",desc:"If the boar moves at least 20 ft. straight toward a target and then hits it with a tusk attack on the same turn, the target takes an extra 7 (2d6) slashing damage. If the target is a creature, it must succeed on a DC 13 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d6"},{name:"Relentless (Recharges after a Short or Long Rest)",desc:"If the boar takes 10 damage or less that would reduce it to 0 hit points, it is reduced to 1 hit point instead.",attack_bonus:0}],actions:[{name:"Tusk",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3}]},{name:"Giant Centipede",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:4,hit_dice:"1d6",speed:"30 ft., climb 30 ft.",stats:[5,14,12,1,7,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 30 ft., passive Perception 8",languages:"",cr:"1/4",bestiary:!0,actions:[{name:"Bite",desc:"Bite. Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 4 (1d4 + 2) piercing damage, and the target must succeed on a DC 11 Constitution saving throw or take 10 (3d6) poison damage. If the poison damage reduces the target to 0 hit points, the target is stable but poisoned for 1 hour, even after regaining hit points, and is paralyzed while poisoned in this way.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Giant Constrictor Snake",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:60,hit_dice:"8d12 + 8",speed:"30 ft., swim 30 ft.",stats:[19,14,12,1,10,3],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., passive Perception 12",languages:"",cr:"2",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one creature. Hit: 11 (2d6 + 4) piercing damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4},{name:"Constrict",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one creature. Hit: 13 (2d8 + 4) bludgeoning damage, and the target is grappled (escape DC 16). Until this grapple ends, the creature is restrained, and the snake can't constrict another target.",attack_bonus:6,damage_dice:"2d8",damage_bonus:4}]},{name:"Giant Crab",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:15,hp:13,hit_dice:"3d8 + -1",speed:"30 ft., swim 30 ft.",stats:[13,15,11,1,9,3],skillsaves:[{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 30 ft., passive Perception 9",languages:"",cr:"1/8",bestiary:!0,traits:[{name:"Amphibious",desc:"The crab can breathe air and water.",attack_bonus:0}],actions:[{name:"Claw",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) bludgeoning damage, and the target is grappled (escape DC 11). The crab has two claws, each of which can grapple only one target.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Giant Crocodile",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:14,hp:85,hit_dice:"9d12 + 26",speed:"30 ft., swim 50 ft.",stats:[21,9,17,2,10,7],skillsaves:[{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"5",bestiary:!0,traits:[{name:"Hold Breath",desc:"The crocodile can hold its breath for 30 minutes.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The crocodile makes two attacks: one with its bite and one with its tail.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 21 (3d10 + 5) piercing damage, and the target is grappled (escape DC 16). Until this grapple ends, the target is restrained, and the crocodile can't bite another target.",attack_bonus:8,damage_dice:"3d10",damage_bonus:5},{name:"Tail",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target not grappled by the crocodile. Hit: 14 (2d8 + 5) bludgeoning damage. If the target is a creature, it must succeed on a DC 16 Strength saving throw or be knocked prone.",attack_bonus:8,damage_dice:"2d8",damage_bonus:5}]},{name:"Giant Eagle",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"neutral good",ac:13,hp:26,hit_dice:"4d10 + 4",speed:"10 ft., fly 80 ft.",stats:[16,17,13,8,14,10],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"Giant Eagle, understands Common and Auran but can't speak",cr:"1",bestiary:!0,traits:[{name:"Keen Sight",desc:"The eagle has advantage on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The eagle makes two attacks: one with its beak and one with its talons.",attack_bonus:0},{name:"Beak",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Talons",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3}]},{name:"Giant Elk",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:15,hp:42,hit_dice:"5d12 + 9",speed:"60 ft.",stats:[19,16,14,7,14,10],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"Giant Elk, understands Common, Elvish, and Sylvan but can't speak",cr:"2",bestiary:!0,traits:[{name:"Charge",desc:"If the elk moves at least 20 ft. straight toward a target and then hits it with a ram attack on the same turn, the target takes an extra 7 (2d6) damage. If the target is a creature, it must succeed on a DC 14 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d6"}],actions:[{name:"Ram",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4},{name:"Hooves",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one prone creature. Hit: 22 (4d8 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"4d8",damage_bonus:4}]},{name:"Giant Fire Beetle",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:4,hit_dice:"1d6",speed:"30 ft.",stats:[8,10,12,1,7,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 30 ft., passive Perception 8",languages:"",cr:"0",bestiary:!0,traits:[{name:"Illumination",desc:"The beetle sheds bright light in a 10-foot radius and dim light for an additional 10 ft..",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +1 to hit, reach 5 ft., one target. Hit: 2 (1d6 \u2014 1) slashing damage.",attack_bonus:1,damage_dice:"1d6",damage_bonus:-1}]},{name:"Giant Frog",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:18,hit_dice:"4d8",speed:"30 ft., swim 30 ft.",stats:[12,13,11,2,10,3],skillsaves:[{perception:2},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 12",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Amphibious",desc:"The frog can breathe air and water",attack_bonus:0},{name:"Standing Leap",desc:"The frog's long jump is up to 20 ft. and its high jump is up to 10 ft., with or without a running start.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) piercing damage, and the target is grappled (escape DC 11). Until this grapple ends, the target is restrained, and the frog can't bite another target.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1},{name:"Swallow",desc:"The frog makes one bite attack against a Small or smaller target it is grappling. If the attack hits, the target is swallowed, and the grapple ends. The swallowed target is blinded and restrained, it has total cover against attacks and other effects outside the frog, and it takes 5 (2d4) acid damage at the start of each of the frog's turns. The frog can have only one target swallowed at a time. If the frog dies, a swallowed creature is no longer restrained by it and can escape from the corpse using 5 ft. of movement, exiting prone.",attack_bonus:0}]},{name:"Giant Goat",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:19,hit_dice:"3d10 + 2",speed:"40 ft.",stats:[17,11,12,3,12,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Charge",desc:"If the goat moves at least 20 ft. straight toward a target and then hits it with a ram attack on the same turn, the target takes an extra 5 (2d4) bludgeoning damage. If the target is a creature, it must succeed on a DC 13 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d4"},{name:"Sure-Footed",desc:"The goat has advantage on Strength and Dexterity saving throws made against effects that would knock it prone.",attack_bonus:0}],actions:[{name:"Ram",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (2d4 + 3) bludgeoning damage.",attack_bonus:5,damage_dice:"2d4",damage_bonus:3}]},{name:"Giant Hyena",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:45,hit_dice:"6d10 + 12",speed:"50 ft.",stats:[16,14,14,2,12,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1",bestiary:!0,traits:[{name:"Rampage",desc:"When the hyena reduces a creature to 0 hit points with a melee attack on its turn, the hyena can take a bonus action to move up to half its speed and make a bite attack.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3}]},{name:"Giant Lizard",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:19,hit_dice:"3d10 + 2",speed:"30 ft., climb 30 ft.",stats:[15,12,13,2,10,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 10",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Variant: Hold Breath",desc:"The lizard can hold its breath for 15 minutes. (A lizard that has this trait also has a swimming speed of 30 feet.)",attack_bonus:0},{name:"Variant: Spider Climb",desc:"The lizard can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Giant Octopus",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:52,hit_dice:"8d10 + 8",speed:"10 ft., swim 60 ft.",stats:[17,13,13,4,10,4],skillsaves:[{perception:4},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"",cr:"1",bestiary:!0,traits:[{name:"Hold Breath",desc:"While out of water, the octopus can hold its breath for 1 hour.",attack_bonus:0},{name:"Underwater Camouflage",desc:"The octopus has advantage on Dexterity (Stealth) checks made while underwater.",attack_bonus:0},{name:"Water Breathing",desc:"The octopus can breathe only underwater.",attack_bonus:0}],actions:[{name:"Tentacles",desc:"Melee Weapon Attack: +5 to hit, reach 15 ft., one target. Hit: 10 (2d6 + 3) bludgeoning damage. If the target is a creature, it is grappled (escape DC 16). Until this grapple ends, the target is restrained, and the octopus can't use its tentacles on another target.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3},{name:"Ink Cloud (Recharges after a Short or Long Rest)",desc:"A 20-foot-radius cloud of ink extends all around the octopus if it is underwater. The area is heavily obscured for 1 minute, although a significant current can disperse the ink. After releasing the ink, the octopus can use the Dash action as a bonus action.",attack_bonus:0}]},{name:"Giant Owl",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"neutral",ac:12,hp:19,hit_dice:"3d10 + 2",speed:"5 ft., fly 60 ft.",stats:[13,15,12,8,13,10],skillsaves:[{perception:5},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 15",languages:"Giant Owl, understands Common, Elvish, and Sylvan but can't speak",cr:"1/4",bestiary:!0,traits:[{name:"Flyby",desc:"The owl doesn't provoke opportunity attacks when it flies out of an enemy's reach.",attack_bonus:0},{name:"Keen Hearing and Sight",desc:"The owl has advantage on Wisdom (Perception) checks that rely on hearing or sight.",attack_bonus:0}],actions:[{name:"Talons",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 8 (2d6 + 1) slashing damage.",attack_bonus:3,damage_dice:"2d6",damage_bonus:1}]},{name:"Giant Poisonous Snake",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:14,hp:11,hit_dice:"2d8 + 2",speed:"30 ft., swim 30 ft.",stats:[10,18,13,2,10,3],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., passive Perception 12",languages:"",cr:"1/4",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one target. Hit: 6 (1d4 + 4) piercing damage, and the target must make a DC 11 Constitution saving throw, taking 10 (3d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:6,damage_dice:"1d4",damage_bonus:4}]},{name:"Giant Rat",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:7,hit_dice:"2d6",speed:"30 ft.",stats:[7,15,11,2,10,4],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"",cr:"1/8",bestiary:!0,traits:[{name:"Keen Smell",desc:"The rat has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The rat has advantage on an attack roll against a creature if at least one of the rat's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Giant Rat (Diseased)",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:7,hit_dice:"2d6",speed:"30 ft.",stats:[7,15,11,2,10,4],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"",cr:"1/8",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 3 (1d4 + 2) piercing damage. If the target is a creature, it must succeed on a DC 10 Constitution saving throw or contract a disease. Until the disease is cured, the target can't regain hit points except by magical means, and the target's hit point maximum decreases by 3 (1d6) every 24 hours. If the target's hit point maximum drops to 0 as a result of this disease, the target dies.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Giant Scorpion",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:15,hp:52,hit_dice:"7d10 + 13",speed:"40 ft.",stats:[15,13,15,1,9,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 60 ft., passive Perception 9",languages:"",cr:"3",bestiary:!0,actions:[{name:"Claw",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) bludgeoning damage, and the target is grappled (escape DC 12). The scorpion has two claws, each of which can grapple only one target.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2},{name:"Multiattack",desc:"The scorpion makes three attacks: two with its claws and one with its sting.",attack_bonus:0},{name:"Sting",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 7 (1d10 + 2) piercing damage, and the target must make a DC 12 Constitution saving throw, taking 22 (4d10) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:4,damage_dice:"1d10",damage_bonus:2}]},{name:"Giant Sea Horse",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:16,hit_dice:"3d10 + -1",speed:"0 ft., swim 40 ft.",stats:[12,15,11,2,12,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Charge",desc:"If the sea horse moves at least 20 ft. straight toward a target and then hits it with a ram attack on the same turn, the target takes an extra 7 (2d6) bludgeoning damage. If the target is a creature, it must succeed on a DC 11 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d6"},{name:"Water Breathing",desc:"The sea horse can breathe only underwater.",attack_bonus:0}],actions:[{name:"Ram",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) bludgeoning damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Giant Shark",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:126,hit_dice:"11d12 + 54",speed:"swim 50 ft.",stats:[23,11,21,1,10,5],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 60 ft., passive Perception 13",languages:"",cr:"5",bestiary:!0,traits:[{name:"Blood Frenzy",desc:"The shark has advantage on melee attack rolls against any creature that doesn't have all its hit points.",attack_bonus:0},{name:"Water Breathing",desc:"The shark can breathe only underwater.",attack_bonus:0}],actions:[{name:"Bite",desc:"Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 22 (3d10 + 6) piercing damage.",attack_bonus:9,damage_dice:"3d10",damage_bonus:6}]},{name:"Giant Spider",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:14,hp:26,hit_dice:"4d10 + 4",speed:"30 ft., climb 30 ft.",stats:[14,16,12,2,11,4],skillsaves:[{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 10",languages:"",cr:"1",bestiary:!0,traits:[{name:"Spider Climb",desc:"The spider can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Web Sense",desc:"While in contact with a web, the spider knows the exact location of any other creature in contact with the same web.",attack_bonus:0},{name:"Web Walker",desc:"The spider ignores movement restrictions caused by webbing.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one creature. Hit: 7 (1d8 + 3) piercing damage, and the target must make a DC 11 Constitution saving throw, taking 9 (2d8) poison damage on a failed save, or half as much damage on a successful one. If the poison damage reduces the target to 0 hit points, the target is stable but poisoned for 1 hour, even after regaining hit points, and is paralyzed while poisoned in this way.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Web (Recharge 5-6)",desc:"Ranged Weapon Attack: +5 to hit, range 30/60 ft., one creature. Hit: The target is restrained by webbing. As an action, the restrained target can make a DC 12 Strength check, bursting the webbing on a success. The webbing can also be attacked and destroyed (AC 10; hp 5; vulnerability to fire damage; immunity to bludgeoning, poison, and psychic damage).",attack_bonus:5}]},{name:"Giant Toad",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:39,hit_dice:"6d10 + 6",speed:"20 ft., swim 40 ft.",stats:[15,13,13,2,10,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 10",languages:"",cr:"1",bestiary:!0,traits:[{name:"Amphibious",desc:"The toad can breathe air and water",attack_bonus:0},{name:"Standing Leap",desc:"The toad's long jump is up to 20 ft. and its high jump is up to 10 ft., with or without a running start.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (1d10 + 2) piercing damage plus 5 (1d10) poison damage, and the target is grappled (escape DC 13). Until this grapple ends, the target is restrained, and the toad can't bite another target.",attack_bonus:4,damage_dice:"1d10",damage_bonus:2},{name:"Swallow",desc:`The toad makes one bite attack against a Medium or smaller target it is grappling. If the attack hits, the target is swallowed, and the grapple ends. The swallowed target is blinded and restrained, it has total cover against attacks and other effects outside the toad, and it takes 10 (3d6) acid damage at the start of each of the toad's turns. The toad can have only one target swallowed at a time. +If the toad dies, a swallowed creature is no longer restrained by it and can escape from the corpse using 5 feet of movement, exiting prone.`,attack_bonus:0}]},{name:"Giant Vulture",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"neutral evil",ac:10,hp:22,hit_dice:"3d10 + 5",speed:"10 ft., fly 60 ft.",stats:[15,10,15,6,12,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"understands Common but can't speak",cr:"1",bestiary:!0,traits:[{name:"Keen Sight and Smell",desc:"The vulture has advantage on Wisdom (Perception) checks that rely on sight or smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The vulture has advantage on an attack roll against a creature if at least one of the vulture's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The vulture makes two attacks: one with its beak and one with its talons.",attack_bonus:0},{name:"Beak",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"2d4",damage_bonus:2},{name:"Talons",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 9 (2d6 + 2) slashing damage.",attack_bonus:4,damage_dice:"2d6",damage_bonus:2}]},{name:"Giant Wasp",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:13,hit_dice:"3d8 + -1",speed:"10 ft., fly 50 ft., swim 50 ft.",stats:[10,14,10,1,10,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/2",bestiary:!0,actions:[{name:"Sting",desc:"Sting. Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 5 (1d6 + 2) piercing damage, and the target must make a DC 11 Constitution saving throw, taking 10 (3d6) poison damage on a failed save, or half as much damage on a successful one. If the poison damage reduces the target to 0 hit points, the target is stable but poisoned for 1 hour, even after regaining hit points, and is paralyzed while poisoned in this way.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Giant Weasel",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:9,hit_dice:"2d8",speed:"40 ft.",stats:[11,16,10,4,12,5],skillsaves:[{perception:3},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"",cr:"1/8",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The weasel has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0}],actions:[{name:"Bite",desc:"Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 5 (1d4 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d4",damage_bonus:3}]},{name:"Giant Wolf Spider",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:11,hit_dice:"2d8 + 2",speed:"40 ft., climb 40 ft.",stats:[12,16,13,3,12,4],skillsaves:[{perception:3},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 13",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Spider Climb",desc:"The spider can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Web Sense",desc:"While in contact with a web, the spider knows the exact location of any other creature in contact with the same web.",attack_bonus:0},{name:"Web Walker",desc:"The spider ignores movement restrictions caused by webbing.",attack_bonus:0}],actions:[{name:"Bite",desc:"Weapon Attack: +3 to hit, reach 5 ft., one creature. Hit: 4 (1d6 + 1) piercing damage, and the target must make a DC 11 Constitution saving throw, taking 7 (2d6) poison damage on a failed save, or half as much damage on a successful one. If the poison damage reduces the target to 0 hit points, the target is stable but poisoned for 1 hour, even after regaining hit points, and is paralyzed while poisoned in this way.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Gibbering Mouther",source:"5e SRD",size:"Medium",type:"aberration",subtype:"",alignment:"neutral",ac:9,hp:67,hit_dice:"9d8 + 26",speed:"10 ft., swim 10 ft.",stats:[10,8,16,3,10,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"prone",senses:"darkvision 60 ft., passive Perception 10",languages:"",cr:"2",bestiary:!0,traits:[{name:"Aberrant Ground",desc:"The ground in a 10-foot radius around the mouther is doughlike difficult terrain. Each creature that starts its turn in that area must succeed on a DC 10 Strength saving throw or have its speed reduced to 0 until the start of its next turn.",attack_bonus:0},{name:"Gibbering",desc:"The mouther babbles incoherently while it can see any creature and isn't incapacitated. Each creature that starts its turn within 20 feet of the mouther and can hear the gibbering must succeed on a DC 10 Wisdom saving throw. On a failure, the creature can't take reactions until the start of its next turn and rolls a d8 to determine what it does during its turn. On a 1 to 4, the creature does nothing. On a 5 or 6, the creature takes no action or bonus action and uses all its movement to move in a randomly determined direction. On a 7 or 8, the creature makes a melee attack against a randomly determined creature within its reach or does nothing if it can't make such an attack.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The gibbering mouther makes one bite attack and, if it can, uses its Blinding Spittle.",attack_bonus:0},{name:"Bites",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one creature. Hit: 17 (5d6) piercing damage. If the target is Medium or smaller, it must succeed on a DC 10 Strength saving throw or be knocked prone. If the target is killed by this damage, it is absorbed into the mouther.",attack_bonus:2,damage_dice:"5d6"},{name:"Blinding Spittle (Recharge 5-6)",desc:"The mouther spits a chemical glob at a point it can see within 15 feet of it. The glob explodes in a blinding flash of light on impact. Each creature within 5 feet of the flash must succeed on a DC 13 Dexterity saving throw or be blinded until the end of the mouther's next turn.",attack_bonus:0}]},{name:"Glabrezu",source:"5e SRD",size:"Large",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:17,hp:157,hit_dice:"15d10 + 74",speed:"40 ft.",stats:[20,15,21,19,17,16],saves:[{strength:9},{constitution:9},{wisdom:7},{charisma:7}],damage_vulnerabilities:"",damage_resistances:"cold, fire, lightning; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"poisoned",senses:"truesight 120 ft., passive Perception 13",languages:"Abyssal, telepathy 120 ft.",cr:"9",bestiary:!0,traits:[{name:"Innate Spellcasting",desc:`The glabrezu's spellcasting ability is Intelligence (spell save DC 16). The glabrezu can innately cast the following spells, requiring no material components: +At will: darkness, detect magic, dispel magic +1/day each: confusion, fly, power word stun`,attack_bonus:0},{name:"Magic Resistance",desc:"The glabrezu has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The glabrezu makes four attacks: two with its pincers and two with its fists. Alternatively, it makes two attacks with its pincers and casts one spell.",attack_bonus:0},{name:"Pincer",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft., one target. Hit: 16 (2d10 + 5) bludgeoning damage. If the target is a Medium or smaller creature, it is grappled (escape DC 15). The glabrezu has two pincers, each of which can grapple only one target.",attack_bonus:9,damage_dice:"2d10",damage_bonus:5},{name:"Fist",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) bludgeoning damage.",attack_bonus:9,damage_dice:"2d4",damage_bonus:2},{name:"Variant: Summon Demon (1/Day)",desc:`The demon chooses what to summon and attempts a magical summoning. +A glabrezu has a 30 percent chance of summoning 1d3 vrocks, 1d2 hezrous, or one glabrezu. +A summoned demon appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other demons. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.`,attack_bonus:0}]},{name:"Gladiator",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:16,hp:112,hit_dice:"15d8 + 44",speed:"30 ft.",stats:[18,15,16,10,12,15],saves:[{strength:7},{dexterity:5},{constitution:6}],skillsaves:[{intimidation:5},{athletics:10}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"any one language (usually Common)",cr:"5",bestiary:!0,traits:[{name:"Brave",desc:"The gladiator has advantage on saving throws against being frightened.",attack_bonus:0},{name:"Brute",desc:"A melee weapon deals one extra die of its damage when the gladiator hits with it (included in the attack).",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The gladiator makes three melee attacks or two ranged attacks.",attack_bonus:0},{name:"Spear",desc:"Melee or Ranged Weapon Attack: +7 to hit, reach 5 ft. and range 20/60 ft., one target. Hit: 11 (2d6 + 4) piercing damage, or 13 (2d8 + 4) piercing damage if used with two hands to make a melee attack.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Shield Bash",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one creature. Hit: 9 (2d4 + 4) bludgeoning damage. If the target is a Medium or smaller creature, it must succeed on a DC 15 Strength saving throw or be knocked prone.",attack_bonus:7,damage_dice:"2d4",damage_bonus:4}],reactions:[{name:"Parry",desc:"The gladiator adds 3 to its AC against one melee attack that would hit it. To do so, the gladiator must see the attacker and be wielding a melee weapon.",attack_bonus:0}]},{name:"Gnoll",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"gnoll",alignment:"chaotic evil",ac:15,hp:22,hit_dice:"5d8 + -1",speed:"30 ft.",stats:[14,12,11,6,10,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"Gnoll",cr:"1/2",bestiary:!0,traits:[{name:"Rampage",desc:"When the gnoll reduces a creature to 0 hit points with a melee attack on its turn, the gnoll can take a bonus action to move up to half its speed and make a bite attack.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2},{name:"Spear",desc:"Melee or Ranged Weapon Attack: +4 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 5 (1d6 + 2) piercing damage, or 6 (1d8 + 2) piercing damage if used with two hands to make a melee attack.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Longbow",desc:"Ranged Weapon Attack: +3 to hit, range 150/600 ft., one target. Hit: 5 (1d8 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d8",damage_bonus:1}]},{name:"Goat",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:4,hit_dice:"1d8 + -1",speed:"40 ft.",stats:[12,10,11,2,10,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"0",bestiary:!0,traits:[{name:"Charge",desc:"If the goat moves at least 20 ft. straight toward a target and then hits it with a ram attack on the same turn, the target takes an extra 2 (1d4) bludgeoning damage. If the target is a creature, it must succeed on a DC 10 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"1d4"},{name:"Sure-Footed",desc:"The goat has advantage on Strength and Dexterity saving throws made against effects that would knock it prone.",attack_bonus:0}],actions:[{name:"Ram",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 3 (1d4 + 1) bludgeoning damage.",attack_bonus:3,damage_dice:"1d4",damage_bonus:1}]},{name:"Goblin",source:"5e SRD",size:"Small",type:"humanoid",subtype:"goblinoid",alignment:"neutral evil",ac:15,hp:7,hit_dice:"2d6",speed:"30 ft.",stats:[8,14,10,10,8,8],skillsaves:[{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 9",languages:"Common, Goblin",cr:"1/4",bestiary:!0,traits:[{name:"Nimble Escape",desc:"The goblin can take the Disengage or Hide action as a bonus action on each of its turns.",attack_bonus:0}],actions:[{name:"Scimitar",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) slashing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Shortbow",desc:"Ranged Weapon Attack: +4 to hit, range 80/320 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Gold Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"lawful good",ac:17,hp:60,hit_dice:"8d8 + 24",speed:"30 ft., fly 60 ft., swim 30 ft.",stats:[19,14,17,14,11,16],saves:[{dexterity:4},{constitution:5},{wisdom:2},{charisma:5}],skillsaves:[{perception:4},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"3",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 9 (1d10 + 4) piercing damage.",attack_bonus:6,damage_dice:"1d10",damage_bonus:4},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Fire Breath. The dragon exhales fire in a 15-foot cone. Each creature in that area must make a DC 13 Dexterity saving throw, taking 22 (4d10) fire damage on a failed save, or half as much damage on a successful one. +Weakening Breath. The dragon exhales gas in a 15-foot cone. Each creature in that area must succeed on a DC 13 Strength saving throw or have disadvantage on Strength-based attack rolls, Strength checks, and Strength saving throws for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"4d10"}]},{name:"Gorgon",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:19,hp:114,hit_dice:"12d10 + 48",speed:"40 ft.",stats:[20,11,18,2,12,7],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"petrified",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"",cr:"5",bestiary:!0,traits:[{name:"Trampling Charge",desc:"If the gorgon moves at least 20 feet straight toward a creature and then hits it with a gore attack on the same turn, that target must succeed on a DC 16 Strength saving throw or be knocked prone. If the target is prone, the gorgon can make one attack with its hooves against it as a bonus action.",attack_bonus:0}],actions:[{name:"Gore",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 18 (2d12 + 5) piercing damage.",attack_bonus:8,damage_dice:"2d12",damage_bonus:5},{name:"Hooves",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 16 (2d10 + 5) bludgeoning damage.",attack_bonus:8,damage_dice:"2d10",damage_bonus:5},{name:"Petrifying Breath (Recharge 5-6)",desc:"The gorgon exhales petrifying gas in a 30-foot cone. Each creature in that area must succeed on a DC 13 Constitution saving throw. On a failed save, a target begins to turn to stone and is restrained. The restrained target must repeat the saving throw at the end of its next turn. On a success, the effect ends on the target. On a failure, the target is petrified until freed by the greater restoration spell or other magic.",attack_bonus:0}]},{name:"Gray Ooze",source:"5e SRD",size:"Medium",type:"ooze",subtype:"",alignment:"unaligned",ac:8,hp:22,hit_dice:"3d8 + 8",speed:"10 ft., climb 10 ft.",stats:[12,6,16,1,6,2],skillsaves:[{stealth:2}],damage_vulnerabilities:"",damage_resistances:"acid, cold, fire",damage_immunities:"",condition_immunities:"blinded, charmed, deafened, exhaustion, frightened, prone",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 8",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Amorphous",desc:"The ooze can move through a space as narrow as 1 inch wide without squeezing.",attack_bonus:0},{name:"Corrode Metal",desc:`Any nonmagical weapon made of metal that hits the ooze corrodes. After dealing damage, the weapon takes a permanent and cumulative -1 penalty to damage rolls. If its penalty drops to -5, the weapon is destroyed. Nonmagical ammunition made of metal that hits the ooze is destroyed after dealing damage. +The ooze can eat through 2-inch-thick, nonmagical metal in 1 round.`,attack_bonus:0},{name:"False Appearance",desc:"While the ooze remains motionless, it is indistinguishable from an oily pool or wet rock.",attack_bonus:0}],actions:[{name:"Pseudopod",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) bludgeoning damage plus 7 (2d6) acid damage, and if the target is wearing nonmagical metal armor, its armor is partly corroded and takes a permanent and cumulative -1 penalty to the AC it offers. The armor is destroyed if the penalty reduces its AC to 10.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Green Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"lawful evil",ac:17,hp:38,hit_dice:"7d8 + 6",speed:"30 ft., fly 60 ft., swim 30 ft.",stats:[15,12,13,14,11,13],saves:[{dexterity:3},{constitution:3},{wisdom:2},{charisma:3}],skillsaves:[{perception:4},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"poisoned",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"2",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (1d10 + 2) piercing damage plus 3 (1d6) poison damage.",attack_bonus:4,damage_dice:"1d10 + 1d6",damage_bonus:3},{name:"Poison Breath (Recharge 5-6)",desc:"The dragon exhales poisonous gas in a 15-foot cone. Each creature in that area must make a DC 11 Constitution saving throw, taking 21 (6d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"6d6"}]},{name:"Green Hag",source:"5e SRD",size:"Medium",type:"fey",subtype:"",alignment:"neutral evil",ac:17,hp:82,hit_dice:"11d8 + 32",speed:"30 ft.",stats:[18,12,16,13,14,14],skillsaves:[{arcana:3},{deception:4},{perception:4},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"Common, Draconic, Sylvan",cr:"3",bestiary:!0,traits:[{name:"Amphibious",desc:"The hag can breathe air and water.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The hag's innate spellcasting ability is Charisma (spell save DC 12). She can innately cast the following spells, requiring no material components: + +At will: dancing lights, minor illusion, vicious mockery`,attack_bonus:0},{name:"Mimicry",desc:"The hag can mimic animal sounds and humanoid voices. A creature that hears the sounds can tell they are imitations with a successful DC 14 Wisdom (Insight) check.",attack_bonus:0},{name:"Hag Coven",desc:`When hags must work together, they form covens, in spite of their selfish natures. A coven is made up of hags of any type, all of whom are equals within the group. However, each of the hags continues to desire more personal power. +A coven consists of three hags so that any arguments between two hags can be settled by the third. If more than three hags ever come together, as might happen if two covens come into conflict, the result is usually chaos.`,attack_bonus:0},{name:"Shared Spellcasting (Coven Only)",desc:`While all three members of a hag coven are within 30 feet of one another, they can each cast the following spells from the wizard's spell list but must share the spell slots among themselves: + +\u2022 1st level (4 slots): identify, ray of sickness +\u2022 2nd level (3 slots): hold person, locate object +\u2022 3rd level (3 slots): bestow curse, counterspell, lightning bolt +\u2022 4th level (3 slots): phantasmal killer, polymorph +\u2022 5th level (2 slots): contact other plane, scrying +\u2022 6th level (1 slot): eye bite + +For casting these spells, each hag is a 12th-level spellcaster that uses Intelligence as her spellcasting ability. The spell save DC is 12+the hag's Intelligence modifier, and the spell attack bonus is 4+the hag's Intelligence modifier.`,attack_bonus:0},{name:"Hag Eye (Coven Only)",desc:`A hag coven can craft a magic item called a hag eye, which is made from a real eye coated in varnish and often fitted to a pendant or other wearable item. The hag eye is usually entrusted to a minion for safekeeping and transport. A hag in the coven can take an action to see what the hag eye sees if the hag eye is on the same plane of existence. A hag eye has AC 10, 1 hit point, and darkvision with a radius of 60 feet. If it is destroyed, each coven member takes 3d10 psychic damage and is blinded for 24 hours. +A hag coven can have only one hag eye at a time, and creating a new one requires all three members of the coven to perform a ritual. The ritual takes 1 hour, and the hags can't perform it while blinded. During the ritual, if the hags take any action other than performing the ritual, they must start over.`,attack_bonus:0}],actions:[{name:"Claws",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) slashing damage.",attack_bonus:6,damage_dice:"2d8",damage_bonus:4},{name:"Illusory Appearance",desc:`The hag covers herself and anything she is wearing or carrying with a magical illusion that makes her look like another creature of her general size and humanoid shape. The illusion ends if the hag takes a bonus action to end it or if she dies. +The changes wrought by this effect fail to hold up to physical inspection. For example, the hag could appear to have smooth skin, but someone touching her would feel her rough flesh. Otherwise, a creature must take an action to visually inspect the illusion and succeed on a DC 20 Intelligence (Investigation) check to discern that the hag is disguised.`,attack_bonus:0},{name:"Invisible Passage",desc:"The hag magically turns invisible until she attacks or casts a spell, or until her concentration ends (as if concentrating on a spell). While invisible, she leaves no physical evidence of her passage, so she can be tracked only by magic. Any equipment she wears or carries is invisible with her.",attack_bonus:0}]},{name:"Grick",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"",alignment:"neutral",ac:14,hp:27,hit_dice:"6d8",speed:"30 ft., climb 30 ft.",stats:[14,14,11,3,14,5],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, and slashing damage from nonmagical weapons",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 12",languages:"",cr:"2",bestiary:!0,traits:[{name:"Stone Camouflage",desc:"The grick has advantage on Dexterity (Stealth) checks made to hide in rocky terrain.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The grick makes one attack with its tentacles. If that attack hits, the grick can make one beak attack against the same target.",attack_bonus:0},{name:"Tentacles",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 9 (2d6 + 2) slashing damage.",attack_bonus:4,damage_dice:"2d6",damage_bonus:2},{name:"Beak",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Griffon",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:12,hp:59,hit_dice:"7d10 + 20",speed:"30 ft., fly 80 ft.",stats:[18,15,16,2,13,8],skillsaves:[{perception:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 15",languages:"",cr:"2",bestiary:!0,traits:[{name:"Keen Sight",desc:"The griffon has advantage on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The griffon makes two attacks: one with its beak and one with its claws.",attack_bonus:0},{name:"Beak",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 8 (1d8 + 4) piercing damage.",attack_bonus:6,damage_dice:"1d8",damage_bonus:4},{name:"Claws",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4}]},{name:"Grimlock",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"grimlock",alignment:"neutral evil",ac:11,hp:11,hit_dice:"2d8 + 2",speed:"30 ft.",stats:[16,12,12,9,8,6],skillsaves:[{athletics:5},{perception:3},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"blinded",condition_immunities:"",senses:"blindsight 30 ft. or 10 ft. while deafened (blind beyond this radius), passive Perception 13",languages:"Undercommon",cr:"1/4",bestiary:!0,traits:[{name:"Blind Senses",desc:"The grimlock can't use its blindsight while deafened and unable to smell.",attack_bonus:0},{name:"Keen Hearing and Smell",desc:"The grimlock has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0},{name:"Stone Camouflage",desc:"The grimlock has advantage on Dexterity (Stealth) checks made to hide in rocky terrain.",attack_bonus:0}],actions:[{name:"Spiked Bone Club",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 5 (1d4 + 3) bludgeoning damage plus 2 (1d4) piercing damage.",attack_bonus:5,damage_dice:"1d4 + 1d4",damage_bonus:5}]},{name:"Guard",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:16,hp:11,hit_dice:"2d8 + 2",speed:"30 ft.",stats:[13,12,12,10,11,10],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"any one language (usually Common)",cr:"1/8",bestiary:!0,actions:[{name:"Spear",desc:"Melee or Ranged Weapon Attack: +3 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 4 (1d6 + 1) piercing damage or 5 (1d8 + 1) piercing damage if used with two hands to make a melee attack.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Guardian Naga",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"lawful good",ac:18,hp:127,hit_dice:"15d10 + 44",speed:"40 ft.",stats:[19,18,16,16,19,18],saves:[{dexterity:8},{constitution:7},{intelligence:7},{wisdom:8},{charisma:8}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"charmed, poisoned",senses:"darkvision 60 ft., passive Perception 14",languages:"Celestial, Common",cr:"10",bestiary:!0,traits:[{name:"Rejuvenation",desc:"If it dies, the naga returns to life in 1d6 days and regains all its hit points. Only a wish spell can prevent this trait from functioning.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one creature. Hit: 8 (1d8 + 4) piercing damage, and the target must make a DC 15 Constitution saving throw, taking 45 (10d8) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:8,damage_dice:"1d8",damage_bonus:4},{name:"Spit Poison",desc:"Ranged Weapon Attack: +8 to hit, range 15/30 ft., one creature. Hit: The target must make a DC 15 Constitution saving throw, taking 45 (10d8) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:8,damage_dice:"10d8"}],spells:["The naga is an 11th-level spellcaster. Its spellcasting ability is Wisdom (spell save DC 16, +8 to hit with spell attacks), and it needs only verbal components to cast its spells. It has the following cleric spells prepared:",{"Cantrips (at will)":"mending, sacred flame, thaumaturgy"},{"1st level (4 slots)":"command, cure wounds, shield of faith"},{"2nd level (3 slots)":"calm emotions, hold person"},{"3rd level (3 slots)":"bestow curse, clairvoyance"},{"4th level (3 slots)":"banishment, freedom of movement"},{"5th level (2 slots)":"flame strike, geas"},{"6th level (1 slot)":"true seeing"}]},{name:"Gynosphinx",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"lawful neutral",ac:17,hp:136,hit_dice:"16d10 + 48",speed:"40 ft., fly 60 ft.",stats:[18,15,16,18,18,18],skillsaves:[{arcana:12},{history:12},{perception:8},{religion:8}],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"psychic",condition_immunities:"charmed, frightened",senses:"truesight 120 ft., passive Perception 18",languages:"Common, Sphinx",cr:"11",bestiary:!0,traits:[{name:"Inscrutable",desc:"The sphinx is immune to any effect that would sense its emotions or read its thoughts, as well as any divination spell that it refuses. Wisdom (Insight) checks made to ascertain the sphinx's intentions or sincerity have disadvantage.",attack_bonus:0},{name:"Magic Weapons",desc:"The sphinx's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The sphinx makes two claw attacks.",attack_bonus:0},{name:"Claw",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) slashing damage.",attack_bonus:9,damage_dice:"2d8",damage_bonus:4}],legendary_actions:[{name:"Claw Attack",desc:"The sphinx makes one claw attack.",attack_bonus:0},{name:"Teleport (Costs 2 Actions)",desc:"The sphinx magically teleports, along with any equipment it is wearing or carrying, up to 120 feet to an unoccupied space it can see.",attack_bonus:0},{name:"Cast a Spell (Costs 3 Actions)",desc:"The sphinx casts a spell from its list of prepared spells, using a spell slot as normal.",attack_bonus:0}],spells:["The sphinx is a 9th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 16, +8 to hit with spell attacks). It requires no material components to cast its spells. The sphinx has the following wizard spells prepared:",{"Cantrips (at will)":"mage hand, minor illusion, prestidigitation"},{"1st level (4 slots)":"detect magic, identify, shield"},{"2nd level (3 slots)":"darkness, locate object, suggestion"},{"3rd level (3 slots)":"dispel magic, remove curse, tongues"},{"4th level (3 slots)":"banishment, greater invisibility"},{"5th level (1 slot)":"legend lore"}]},{name:"Half-Red Dragon Veteran",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"human",alignment:"any alignment",ac:18,hp:65,hit_dice:"10d8 + 20",speed:"30 ft.",stats:[16,13,14,10,11,10],damage_vulnerabilities:"",damage_resistances:"fire",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 12",languages:"Common, Draconic",cr:"5",bestiary:!0,actions:[{name:"Multiattack",desc:"The veteran makes two longsword attacks. If it has a shortsword drawn, it can also make a shortsword attack.",attack_bonus:0},{name:"Longsword",desc:"Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) slashing damage, or 8 (1d10 + 3) slashing damage if used with two hands.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Shortsword",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Heavy Crossbow",desc:"Ranged Weapon Attack: +3 to hit, range 100/400 ft., one target. Hit: 6 (1d10 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d10",damage_bonus:1},{name:"Fire Breath (Recharge 5-6)",desc:"The veteran exhales fire in a 15-foot cone. Each creature in that area must make a DC 15 Dexterity saving throw, taking 24 (7d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"7d6"}]},{name:"Harpy",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"",alignment:"chaotic evil",ac:11,hp:38,hit_dice:"7d8 + 6",speed:"20 ft., fly 40 ft.",stats:[12,13,12,7,10,13],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"Common",cr:"1",bestiary:!0,actions:[{name:"Multiattack",desc:"The harpy makes two attacks: one with its claws and one with its club.",attack_bonus:0},{name:"Claws",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 6 (2d4 + 1) slashing damage.",attack_bonus:3,damage_dice:"2d4",damage_bonus:1},{name:"Club",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 3 (1d4 + 1) bludgeoning damage.",attack_bonus:3,damage_dice:"1d4",damage_bonus:1},{name:"Luring Song",desc:`The harpy sings a magical melody. Every humanoid and giant within 300 ft. of the harpy that can hear the song must succeed on a DC 11 Wisdom saving throw or be charmed until the song ends. The harpy must take a bonus action on its subsequent turns to continue singing. It can stop singing at any time. The song ends if the harpy is incapacitated. +While charmed by the harpy, a target is incapacitated and ignores the songs of other harpies. If the charmed target is more than 5 ft. away from the harpy, the must move on its turn toward the harpy by the most direct route. It doesn't avoid opportunity attacks, but before moving into damaging terrain, such as lava or a pit, and whenever it takes damage from a source other than the harpy, a target can repeat the saving throw. A creature can also repeat the saving throw at the end of each of its turns. If a creature's saving throw is successful, the effect ends on it. +A target that successfully saves is immune to this harpy's song for the next 24 hours.`,attack_bonus:0}]},{name:"Hawk",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:1,hit_dice:"1d4 + -2",speed:"10 ft., fly 60 ft.",stats:[5,16,8,2,14,6],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Sight",desc:"The hawk has advantage on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Talons",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 1 slashing damage.",attack_bonus:5,damage_bonus:1}]},{name:"Hell Hound",source:"5e SRD",size:"Medium",type:"fiend",subtype:"",alignment:"lawful evil",ac:15,hp:45,hit_dice:"7d8 + 13",speed:"50 ft.",stats:[17,12,14,6,13,6],skillsaves:[{perception:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 15",languages:"understands Infernal but can't speak it",cr:"3",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The hound has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The hound has advantage on an attack roll against a creature if at least one of the hound's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) piercing damage plus 7 (2d6) fire damage.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Fire Breath (Recharge 5-6)",desc:"The hound exhales fire in a 15-foot cone. Each creature in that area must make a DC 12 Dexterity saving throw, taking 21 (6d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"6d6"}]},{name:"Hezrou",source:"5e SRD",size:"Large",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:16,hp:136,hit_dice:"13d10 + 64",speed:"30 ft.",stats:[19,17,20,5,12,13],saves:[{strength:7},{constitution:8},{wisdom:4}],damage_vulnerabilities:"",damage_resistances:"cold, fire, lightning; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 11",languages:"Abyssal, telepathy 120 ft.",cr:"8",bestiary:!0,traits:[{name:"Magic Resistance",desc:"The hezrou has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Stench",desc:"Any creature that starts its turn within 10 feet of the hezrou must succeed on a DC 14 Constitution saving throw or be poisoned until the start of its next turn. On a successful saving throw, the creature is immune to the hezrou's stench for 24 hours.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The hezrou makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 15 (2d10 + 4) piercing damage.",attack_bonus:7,damage_dice:"2d10",damage_bonus:4},{name:"Claws",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Variant: Summon Demon (1/Day)",desc:`The demon chooses what to summon and attempts a magical summoning. +A hezrou has a 30 percent chance of summoning 2d6 dretches or one hezrou. +A summoned demon appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other demons. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.`,attack_bonus:0}]},{name:"Hill Giant",source:"5e SRD",size:"Huge",type:"giant",subtype:"",alignment:"chaotic evil",ac:13,hp:105,hit_dice:"10d12 + 40",speed:"40 ft.",stats:[21,8,19,5,9,6],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"Giant",cr:"5",bestiary:!0,actions:[{name:"Multiattack",desc:"The giant makes two greatclub attacks.",attack_bonus:0},{name:"Greatclub",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 18 (3d8 + 5) bludgeoning damage.",attack_bonus:8,damage_dice:"3d8",damage_bonus:5},{name:"Rock",desc:"Ranged Weapon Attack: +8 to hit, range 60/240 ft., one target. Hit: 21 (3d10 + 5) bludgeoning damage.",attack_bonus:8,damage_dice:"3d10",damage_bonus:5}]},{name:"Hippogriff",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:11,hp:19,hit_dice:"3d10 + 2",speed:"40 ft, fly 60 ft.",stats:[17,13,13,2,12,8],skillsaves:[{perception:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 15",languages:"",cr:"1",bestiary:!0,traits:[{name:"Keen Sight",desc:"The hippogriff has advantage on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The hippogriff makes two attacks: one with its beak and one with its claws.",attack_bonus:0},{name:"Beak",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (1d10 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d10",damage_bonus:3},{name:"Claws",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3}]},{name:"Hobgoblin",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"goblinoid",alignment:"lawful evil",ac:18,hp:11,hit_dice:"2d8 + 2",speed:"30 ft.",stats:[13,12,12,10,10,9],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"Common, Goblin",cr:"1/2",bestiary:!0,traits:[{name:"Martial Advantage",desc:"Once per turn, the hobgoblin can deal an extra 7 (2d6) damage to a creature it hits with a weapon attack if that creature is within 5 ft. of an ally of the hobgoblin that isn't incapacitated.",attack_bonus:0,damage_dice:"2d6"}],actions:[{name:"Longsword",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 5 (1d8 + 1) slashing damage, or 6 (1d10 + 1) slashing damage if used with two hands.",attack_bonus:3,damage_dice:"1d8",damage_bonus:1},{name:"Longbow",desc:"Ranged Weapon Attack: +3 to hit, range 150/600 ft., one target. Hit: 5 (1d8 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d8",damage_bonus:1}]},{name:"Homunculus",source:"5e SRD",size:"Tiny",type:"construct",subtype:"",alignment:"neutral",ac:13,hp:5,hit_dice:"2d4",speed:"20 ft., fly 40 ft.",stats:[4,15,11,10,10,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"charmed, poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"understands the languages of its creator but can't speak",cr:"0",bestiary:!0,traits:[{name:"Telepathic Bond",desc:"While the homunculus is on the same plane of existence as its master, it can magically convey what it senses to its master, and the two can communicate telepathically.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 1 piercing damage, and the target must succeed on a DC 10 Constitution saving throw or be poisoned for 1 minute. If the saving throw fails by 5 or more, the target is instead poisoned for 5 (1d10) minutes and unconscious while poisoned in this way.",attack_bonus:4,damage_bonus:1}]},{name:"Horned Devil",source:"5e SRD",size:"Large",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:18,hp:148,hit_dice:"17d10 + 54",speed:"20 ft., fly 60 ft.",stats:[22,17,21,12,16,17],saves:[{strength:10},{dexterity:7},{wisdom:7},{charisma:7}],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 13",languages:"Infernal, telepathy 120 ft.",cr:"11",bestiary:!0,traits:[{name:"Devil's Sight",desc:"Magical darkness doesn't impede the devil's darkvision.",attack_bonus:0},{name:"Magic Resistance",desc:"The devil has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The devil makes three melee attacks: two with its fork and one with its tail. It can use Hurl Flame in place of any melee attack.",attack_bonus:0},{name:"Fork",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 15 (2d8 + 6) piercing damage.",attack_bonus:10,damage_dice:"2d8",damage_bonus:6},{name:"Tail",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 10 (1d8 + 6) piercing damage. If the target is a creature other than an undead or a construct, it must succeed on a DC 17 Constitution saving throw or lose 10 (3d6) hit points at the start of each of its turns due to an infernal wound. Each time the devil hits the wounded target with this attack, the damage dealt by the wound increases by 10 (3d6). Any creature can take an action to stanch the wound with a successful DC 12 Wisdom (Medicine) check. The wound also closes if the target receives magical healing.",attack_bonus:10,damage_dice:"1d8",damage_bonus:6},{name:"Hurl Flame",desc:"Ranged Spell Attack: +7 to hit, range 150 ft., one target. Hit: 14 (4d6) fire damage. If the target is a flammable object that isn't being worn or carried, it also catches fire.",attack_bonus:7,damage_dice:"4d6"}]},{name:"Hunter Shark",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:45,hit_dice:"6d10 + 12",speed:"swim 40 ft.",stats:[18,13,15,1,10,4],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 12",languages:"",cr:"2",bestiary:!0,traits:[{name:"Blood Frenzy",desc:"The shark has advantage on melee attack rolls against any creature that doesn't have all its hit points.",attack_bonus:0},{name:"Water Breathing",desc:"The shark can breathe only underwater.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) piercing damage.",attack_bonus:6,damage_dice:"2d8",damage_bonus:4}]},{name:"Hydra",source:"5e SRD",size:"Huge",type:"monstrosity",subtype:"",alignment:"unaligned",ac:15,hp:172,hit_dice:"15d12 + 74",speed:"30 ft., swim 30 ft.",stats:[20,12,20,2,10,7],skillsaves:[{perception:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 16",languages:"",cr:"8",bestiary:!0,traits:[{name:"Hold Breath",desc:"The hydra can hold its breath for 1 hour.",attack_bonus:0},{name:"Multiple Heads",desc:`The hydra has five heads. While it has more than one head, the hydra has advantage on saving throws against being blinded, charmed, deafened, frightened, stunned, and knocked unconscious. +Whenever the hydra takes 25 or more damage in a single turn, one of its heads dies. If all its heads die, the hydra dies. +At the end of its turn, it grows two heads for each of its heads that died since its last turn, unless it has taken fire damage since its last turn. The hydra regains 10 hit points for each head regrown in this way.`,attack_bonus:0},{name:"Reactive Heads",desc:"For each head the hydra has beyond one, it gets an extra reaction that can be used only for opportunity attacks.",attack_bonus:0},{name:"Wakeful",desc:"While the hydra sleeps, at least one of its heads is awake.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The hydra makes as many bite attacks as it has heads.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 10 (1d10 + 5) piercing damage.",attack_bonus:8,damage_dice:"1d10",damage_bonus:5}]},{name:"Hyena",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:5,hit_dice:"1d8",speed:"50 ft.",stats:[11,13,12,2,12,5],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"0",bestiary:!0,traits:[{name:"Pack Tactics",desc:"The hyena has advantage on an attack roll against a creature if at least one of the hyena's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Bite",desc:"Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 3 (1d6) piercing damage.",attack_bonus:2,damage_dice:"1d6"}]},{name:"Ice Devil",source:"5e SRD",size:"Large",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:18,hp:180,hit_dice:"19d10 + 75",speed:"40 ft.",stats:[21,14,18,18,15,18],saves:[{dexterity:7},{constitution:9},{wisdom:7},{charisma:9}],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"blindsight 60 ft., darkvision 120 ft., passive Perception 12",languages:"Infernal, telepathy 120 ft.",cr:"14",bestiary:!0,traits:[{name:"Devil's Sight",desc:"Magical darkness doesn't impede the devil's darkvision.",attack_bonus:0},{name:"Magic Resistance",desc:"The devil has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The devil makes three attacks: one with its bite, one with its claws, and one with its tail.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) piercing damage plus 10 (3d6) cold damage.",attack_bonus:10,damage_dice:"2d6 + 3d6",damage_bonus:5},{name:"Claws",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 10 (2d4 + 5) slashing damage plus 10 (3d6) cold damage.",attack_bonus:10,damage_dice:"2d4 + 3d6",damage_bonus:5},{name:"Tail",desc:"Melee Weapon Attack:+10 to hit, reach 10 ft., one target. Hit: 12 (2d6 + 5) bludgeoning damage plus 10 (3d6) cold damage.",attack_bonus:10,damage_dice:"2d6 + 3d6",damage_bonus:5},{name:"Wall of Ice",desc:`The devil magically forms an opaque wall of ice on a solid surface it can see within 60 feet of it. The wall is 1 foot thick and up to 30 feet long and 10 feet high, or it's a hemispherical dome up to 20 feet in diameter. +When the wall appears, each creature in its space is pushed out of it by the shortest route. The creature chooses which side of the wall to end up on, unless the creature is incapacitated. The creature then makes a DC 17 Dexterity saving throw, taking 35 (10d6) cold damage on a failed save, or half as much damage on a successful one. +The wall lasts for 1 minute or until the devil is incapacitated or dies. The wall can be damaged and breached; each 10-foot section has AC 5, 30 hit points, vulnerability to fire damage, and immunity to acid, cold, necrotic, poison, and psychic damage. If a section is destroyed, it leaves behind a sheet of frigid air in the space the wall occupied. Whenever a creature finishes moving through the frigid air on a turn, willingly or otherwise, the creature must make a DC 17 Constitution saving throw, taking 17 (5d6) cold damage on a failed save, or half as much damage on a successful one. The frigid air dissipates when the rest of the wall vanishes.`,attack_bonus:0}]},{name:"Ice Mephit",source:"5e SRD",size:"Small",type:"elemental",subtype:"",alignment:"neutral evil",ac:11,hp:21,hit_dice:"6d6",speed:"30 ft., fly 30 ft.",stats:[7,13,10,9,11,12],skillsaves:[{perception:2},{stealth:3}],damage_vulnerabilities:"bludgeoning, fire",damage_resistances:"",damage_immunities:"cold, poison",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 12",languages:"Aquan, Auran",cr:"1/2",bestiary:!0,traits:[{name:"Death Burst",desc:"When the mephit dies, it explodes in a burst of jagged ice. Each creature within 5 ft. of it must make a DC 10 Dexterity saving throw, taking 4 (1d8) slashing damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"1d8"},{name:"False Appearance",desc:"While the mephit remains motionless, it is indistinguishable from an ordinary shard of ice.",attack_bonus:0},{name:"Innate Spellcasting (1/Day)",desc:"The mephit can innately cast fog cloud, requiring no material components. Its innate spellcasting ability is Charisma.",attack_bonus:0}],actions:[{name:"Claws",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one creature. Hit: 3 (1d4 + 1) slashing damage plus 2 (1d4) cold damage.",attack_bonus:3,damage_dice:"1d4",damage_bonus:1},{name:"Frost Breath (Recharge 6)",desc:"The mephit exhales a 15-foot cone of cold air. Each creature in that area must succeed on a DC 10 Dexterity saving throw, taking 5 (2d4) cold damage on a failed save, or half as much damage on a successful one.",attack_bonus:0},{name:"Variant: Summon Mephits (1/Day)",desc:"The mephit has a 25 percent chance of summoning 1d4 mephits of its kind. A summoned mephit appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other mephits. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.",attack_bonus:0}]},{name:"Imp",source:"5e SRD",size:"Tiny",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:13,hp:10,hit_dice:"3d4 + 2",speed:"20 ft., fly 40 ft.",stats:[6,17,13,11,12,14],skillsaves:[{deception:4},{insight:3},{persuasion:4},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical/nonsilver weapons",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 11",languages:"Infernal, Common",cr:"1",bestiary:!0,traits:[{name:"Shapechanger",desc:"The imp can use its action to polymorph into a beast form that resembles a rat (speed 20 ft.), a raven (20 ft., fly 60 ft.), or a spider (20 ft., climb 20 ft.), or back into its true form. Its statistics are the same in each form, except for the speed changes noted. Any equipment it is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Devil's Sight",desc:"Magical darkness doesn't impede the imp's darkvision.",attack_bonus:0},{name:"Magic Resistance",desc:"The imp has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Variant: Familiar",desc:"The imp can serve another creature as a familiar, forming a telepathic bond with its willing master. While the two are bonded, the master can sense what the quasit senses as long as they are within 1 mile of each other. While the imp is within 10 feet of its master, the master shares the quasit's Magic Resistance trait. At any time and for any reason, the imp can end its service as a familiar, ending the telepathic bond.",attack_bonus:0}],actions:[{name:"Sting (Bite in Beast Form)",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft ., one target. Hit: 5 (1d4 + 3) piercing damage, and the target must make on a DC 11 Constitution saving throw, taking 10 (3d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:5,damage_dice:"1d4",damage_bonus:3},{name:"Invisibility",desc:"The imp magically turns invisible until it attacks, or until its concentration ends (as if concentrating on a spell). Any equipment the imp wears or carries is invisible with it.",attack_bonus:0}]},{name:"Invisible Stalker",source:"5e SRD",size:"Medium",type:"elemental",subtype:"",alignment:"neutral",ac:14,hp:104,hit_dice:"16d8 + 32",speed:"50 ft., fly 50 ft. (hover)",stats:[16,19,14,10,15,11],skillsaves:[{perception:8},{stealth:10}],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"exhaustion, grappled, paralyzed, petrified, poisoned, prone, restrained, unconscious",senses:"darkvision 60 ft., passive Perception 18",languages:"Auran, understands Common but doesn't speak it",cr:"6",bestiary:!0,traits:[{name:"Invisibility",desc:"The stalker is invisible.",attack_bonus:0},{name:"Faultless Tracker",desc:"The stalker is given a quarry by its summoner. The stalker knows the direction and distance to its quarry as long as the two of them are on the same plane of existence. The stalker also knows the location of its summoner.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The stalker makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) bludgeoning damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:3}]},{name:"Iron Golem",source:"5e SRD",size:"Large",type:"construct",subtype:"",alignment:"unaligned",ac:20,hp:210,hit_dice:"20d10 + 100",speed:"30 ft.",stats:[24,9,20,3,11,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire, poison, psychic; bludgeoning, piercing, and slashing from nonmagical weapons that aren't adamantine",condition_immunities:"charmed, exhaustion, frightened, paralyzed, petrified, poisoned",senses:"darkvision 120 ft., passive Perception 10",languages:"understands the languages of its creator but can't speak",cr:"16",bestiary:!0,traits:[{name:"Fire Absorption",desc:"Whenever the golem is subjected to fire damage, it takes no damage and instead regains a number of hit points equal to the fire damage dealt.",attack_bonus:0},{name:"Immutable Form",desc:"The golem is immune to any spell or effect that would alter its form.",attack_bonus:0},{name:"Magic Resistance",desc:"The golem has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The golem's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The golem makes two melee attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +13 to hit, reach 5 ft., one target. Hit: 20 (3d8 + 7) bludgeoning damage.",attack_bonus:13,damage_dice:"3d8",damage_bonus:7},{name:"Sword",desc:"Melee Weapon Attack: +13 to hit, reach 10 ft., one target. Hit: 23 (3d10 + 7) slashing damage.",attack_bonus:13,damage_dice:"3d10",damage_bonus:7},{name:"Poison Breath (Recharge 5-6)",desc:"The golem exhales poisonous gas in a 15-foot cone. Each creature in that area must make a DC 19 Constitution saving throw, taking 45 (l0d8) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"10d8"}]},{name:"Jackal",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:3,hit_dice:"1d6 + -1",speed:"40 ft.",stats:[8,15,11,3,12,6],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The jackal has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The jackal has advantage on an attack roll against a creature if at least one of the jackal's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +1 to hit, reach 5 ft., one target. Hit: 1 (1d4 \u2014 1) piercing damage.",attack_bonus:1,damage_dice:"1d4",damage_bonus:-1}]},{name:"Killer Whale",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:90,hit_dice:"12d12 + 12",speed:"swim 60 ft.",stats:[19,10,13,3,12,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 120 ft., passive Perception 13",languages:"",cr:"3",bestiary:!0,traits:[{name:"Echolocation",desc:"The whale can't use its blindsight while deafened.",attack_bonus:0},{name:"Hold Breath",desc:"The whale can hold its breath for 30 minutes",attack_bonus:0},{name:"Keen Hearing",desc:"The whale has advantage on Wisdom (Perception) checks that rely on hearing.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 21 (5d6 + 4) piercing damage.",attack_bonus:0}]},{name:"Knight",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:18,hp:52,hit_dice:"8d8 + 16",speed:"30 ft.",stats:[16,11,14,11,11,15],saves:[{constitution:4},{wisdom:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any one language (usually Common)",cr:"3",bestiary:!0,traits:[{name:"Brave",desc:"The knight has advantage on saving throws against being frightened.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The knight makes two melee attacks.",attack_bonus:0},{name:"Greatsword",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3},{name:"Heavy Crossbow",desc:"Ranged Weapon Attack: +2 to hit, range 100/400 ft., one target. Hit: 5 (1d10) piercing damage.",attack_bonus:2,damage_dice:"1d10"},{name:"Leadership (Recharges after a Short or Long Rest)",desc:"For 1 minute, the knight can utter a special command or warning whenever a nonhostile creature that it can see within 30 ft. of it makes an attack roll or a saving throw. The creature can add a d4 to its roll provided it can hear and understand the knight. A creature can benefit from only one Leadership die at a time. This effect ends if the knight is incapacitated.",attack_bonus:0}],reactions:[{name:"Parry",desc:"The knight adds 2 to its AC against one melee attack that would hit it. To do so, the knight must see the attacker and be wielding a melee weapon.",attack_bonus:0}]},{name:"Kobold",source:"5e SRD",size:"Small",type:"humanoid",subtype:"kobold",alignment:"lawful evil",ac:12,hp:5,hit_dice:"2d6 + -2",speed:"30 ft.",stats:[7,15,9,8,7,8],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 8",languages:"Common, Draconic",cr:"1/8",bestiary:!0,traits:[{name:"Sunlight Sensitivity",desc:"While in sunlight, the kobold has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight.",attack_bonus:0},{name:"Pack Tactics",desc:"The kobold has advantage on an attack roll against a creature if at least one of the kobold's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Dagger",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2},{name:"Sling",desc:"Ranged Weapon Attack: +4 to hit, range 30/120 ft., one target. Hit: 4 (1d4 + 2) bludgeoning damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Kraken",source:"5e SRD",size:"Gargantuan",type:"monstrosity",subtype:"titan",alignment:"chaotic evil",ac:18,hp:472,hit_dice:"27d20 + 188",speed:"20 ft., swim 60 ft.",stats:[30,11,25,22,18,20],saves:[{strength:17},{dexterity:7},{constitution:14},{intelligence:13},{wisdom:11}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning; bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"frightened, paralyzed",senses:"truesight 120 ft., passive Perception 14",languages:"understands Abyssal, Celestial, Infernal, and Primordial but can't speak, telepathy 120 ft.",cr:"23",bestiary:!0,traits:[{name:"Amphibious",desc:"The kraken can breathe air and water.",attack_bonus:0},{name:"Freedom of Movement",desc:"The kraken ignores difficult terrain, and magical effects can't reduce its speed or cause it to be restrained. It can spend 5 feet of movement to escape from nonmagical restraints or being grappled.",attack_bonus:0},{name:"Siege Monster",desc:"The kraken deals double damage to objects and structures.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The kraken makes three tentacle attacks, each of which it can replace with one use of Fling.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 23 (3d8 + 10) piercing damage. If the target is a Large or smaller creature grappled by the kraken, that creature is swallowed, and the grapple ends. While swallowed, the creature is blinded and restrained, it has total cover against attacks and other effects outside the kraken, and it takes 42 (12d6) acid damage at the start of each of the kraken's turns. If the kraken takes 50 damage or more on a single turn from a creature inside it, the kraken must succeed on a DC 25 Constitution saving throw at the end of that turn or regurgitate all swallowed creatures, which fall prone in a space within 10 feet of the kraken. If the kraken dies, a swallowed creature is no longer restrained by it and can escape from the corpse using 15 feet of movement, exiting prone.",attack_bonus:7,damage_dice:"3d8",damage_bonus:10},{name:"Tentacle",desc:"Melee Weapon Attack: +7 to hit, reach 30 ft., one target. Hit: 20 (3d6 + 10) bludgeoning damage, and the target is grappled (escape DC 18). Until this grapple ends, the target is restrained. The kraken has ten tentacles, each of which can grapple one target.",attack_bonus:7,damage_dice:"3d6",damage_bonus:10},{name:"Fling",desc:"One Large or smaller object held or creature grappled by the kraken is thrown up to 60 feet in a random direction and knocked prone. If a thrown target strikes a solid surface, the target takes 3 (1d6) bludgeoning damage for every 10 feet it was thrown. If the target is thrown at another creature, that creature must succeed on a DC 18 Dexterity saving throw or take the same damage and be knocked prone.",attack_bonus:0},{name:"Lightning Storm",desc:"The kraken magically creates three bolts of lightning, each of which can strike a target the kraken can see within 120 feet of it. A target must make a DC 23 Dexterity saving throw, taking 22 (4d10) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"4d10"}],legendary_actions:[{name:"Tentacle Attack or Fling",desc:"The kraken makes one tentacle attack or uses its Fling.",attack_bonus:0},{name:"Lightning Storm (Costs 2 Actions)",desc:"The kraken uses Lightning Storm.",attack_bonus:0},{name:"Ink Cloud (Costs 3 Actions)",desc:"While underwater, the kraken expels an ink cloud in a 60-foot radius. The cloud spreads around corners, and that area is heavily obscured to creatures other than the kraken. Each creature other than the kraken that ends its turn there must succeed on a DC 23 Constitution saving throw, taking 16 (3d10) poison damage on a failed save, or half as much damage on a successful one. A strong current disperses the cloud, which otherwise disappears at the end of the kraken's next turn.",attack_bonus:0}]},{name:"Lamia",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"chaotic evil",ac:13,hp:97,hit_dice:"13d10 + 25",speed:"30 ft.",stats:[16,13,15,14,15,16],skillsaves:[{deception:7},{insight:4},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 12",languages:"Abyssal, Common",cr:"4",bestiary:!0,traits:[{name:"Innate Spellcasting",desc:"The lamia's innate spellcasting ability is Charisma (spell save DC 13). It can innately cast the following spells, requiring no material components. At will: disguise self (any humanoid form), major image 3/day each: charm person, mirror image, scrying, suggestion 1/day: geas",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The lamia makes two attacks: one with its claws and one with its dagger or Intoxicating Touch.",attack_bonus:0},{name:"Claws",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 14 (2d10 + 3) slashing damage.",attack_bonus:5,damage_dice:"2d10",damage_bonus:3},{name:"Dagger",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 5 (1d4 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d4",damage_bonus:3},{name:"Intoxicating Touch",desc:"Melee Spell Attack: +5 to hit, reach 5 ft., one creature. Hit: The target is magically cursed for 1 hour. Until the curse ends, the target has disadvantage on Wisdom saving throws and all ability checks.",attack_bonus:0}]},{name:"Lemure",source:"5e SRD",size:"Medium",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:7,hp:13,hit_dice:"3d8 + -1",speed:"15 ft.",stats:[10,5,11,1,11,3],damage_vulnerabilities:"",damage_resistances:"cold",damage_immunities:"fire, poison",condition_immunities:"charmed, frightened, poisoned",senses:"darkvision 120 ft., passive Perception 10",languages:"understands infernal but can't speak",cr:"0",bestiary:!0,traits:[{name:"Devil's Sight",desc:"Magical darkness doesn't impede the lemure's darkvision.",attack_bonus:0},{name:"Hellish Rejuvenation",desc:"A lemure that dies in the Nine Hells comes back to life with all its hit points in 1d10 days unless it is killed by a good-aligned creature with a bless spell cast on that creature or its remains are sprinkled with holy water.",attack_bonus:0}],actions:[{name:"Fist",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 2 (1d4) bludgeoning damage",attack_bonus:3,damage_dice:"1d4"}]},{name:"Lich",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"any evil alignment",ac:17,hp:135,hit_dice:"18d8 + 54",speed:"30 ft.",stats:[11,16,16,20,14,16],saves:[{constitution:10},{intelligence:12},{wisdom:9}],skillsaves:[{arcana:18},{history:12},{insight:9},{perception:9}],damage_vulnerabilities:"",damage_resistances:"cold, lightning, necrotic",damage_immunities:"poison; bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"charmed, exhaustion, frightened, paralyzed, poisoned",senses:"truesight 120 ft., passive Perception 19",languages:"Common plus up to five other languages",cr:"21",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the lich fails a saving throw, it can choose to succeed instead.",attack_bonus:0},{name:"Rejuvenation",desc:"If it has a phylactery, a destroyed lich gains a new body in 1d10 days, regaining all its hit points and becoming active again. The new body appears within 5 feet of the phylactery.",attack_bonus:0},{name:"Turn Resistance",desc:"The lich has advantage on saving throws against any effect that turns undead.",attack_bonus:0}],actions:[{name:"Paralyzing Touch",desc:"Melee Spell Attack: +12 to hit, reach 5 ft., one creature. Hit: 10 (3d6) cold damage. The target must succeed on a DC 18 Constitution saving throw or be paralyzed for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:12,damage_dice:"3d6"}],legendary_actions:[{name:"Cantrip",desc:"The lich casts a cantrip.",attack_bonus:0},{name:"Paralyzing Touch (Costs 2 Actions)",desc:"The lich uses its Paralyzing Touch.",attack_bonus:0},{name:"Frightening Gaze (Costs 2 Actions)",desc:"The lich fixes its gaze on one creature it can see within 10 feet of it. The target must succeed on a DC 18 Wisdom saving throw against this magic or become frightened for 1 minute. The frightened target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a target's saving throw is successful or the effect ends for it, the target is immune to the lich's gaze for the next 24 hours.",attack_bonus:0},{name:"Disrupt Life (Costs 3 Actions)",desc:"Each living creature within 20 feet of the lich must make a DC 18 Constitution saving throw against this magic, taking 21 (6d6) necrotic damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"6d6"}],spells:["The lich is an 18th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 20, +12 to hit with spell attacks). The lich has the following wizard spells prepared:",{"Cantrips (at will)":"mage hand, prestidigitation, ray of frost"},{"1st level (4 slots)":"detect magic, magic missile, shield, thunderwave"},{"2nd level (3 slots)":"detect thoughts, invisibility, Melf's acid arrow, mirror image"},{"3rd level (3 slots)":"animate dead, counterspell, dispel magic, fireball"},{"4th level (3 slots)":"blight, dimension door"},{"5th level (3 slots)":"cloudkill, scrying"},{"6th level (1 slot)":"disintegrate, globe of invulnerability"},{"7th level (1 slot)":"finger of death, plane shift"},{"8th level (1 slot)":"dominate monster, power word stun"},{"9th level (1 slot)":"power word kill"}]},{name:"Lion",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:26,hit_dice:"4d10 + 4",speed:"50 ft.",stats:[17,15,13,3,12,8],skillsaves:[{perception:3},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1",bestiary:!0,traits:[{name:"Keen Smell",desc:"The lion has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The lion has advantage on an attack roll against a creature if at least one of the lion's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0},{name:"Pounce",desc:"If the lion moves at least 20 ft. straight toward a creature and then hits it with a claw attack on the same turn, that target must succeed on a DC 13 Strength saving throw or be knocked prone. If the target is prone, the lion can make one bite attack against it as a bonus action.",attack_bonus:0},{name:"Running Leap",desc:"With a 10-foot running start, the lion can long jump up to 25 ft..",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Claw",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3}]},{name:"Lizard",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:2,hit_dice:"1d4 + -1",speed:"20 ft., climb 20 ft.",stats:[2,11,10,1,8,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 9",languages:"",cr:"0",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +0 to hit, reach 5 ft., one target. Hit: 1 piercing damage.",attack_bonus:0,damage_bonus:1}]},{name:"Lizardfolk",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"lizardfolk",alignment:"neutral",ac:15,hp:22,hit_dice:"4d8 + 4",speed:"30 ft., swim 30 ft.",stats:[15,10,13,7,12,7],skillsaves:[{perception:3},{stealth:4},{survival:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"Draconic",cr:"1/2",bestiary:!0,traits:[{name:"Hold Breath",desc:"The lizardfolk can hold its breath for 15 minutes.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The lizardfolk makes two melee attacks, each one with a different weapon.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Heavy Club",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) bludgeoning damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Javelin",desc:"Melee or Ranged Weapon Attack: +4 to hit, reach 5 ft. or range 30/120 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Spiked Shield",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Mage",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:12,hp:40,hit_dice:"9d8 + -1",speed:"30 ft.",stats:[9,14,11,17,12,11],saves:[{intelligence:6},{wisdom:4}],skillsaves:[{arcana:6},{history:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"any four languages",cr:"6",bestiary:!0,traits:[],actions:[{name:"Dagger",desc:"Melee or Ranged Weapon Attack: +5 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:5,damage_dice:"1d4",damage_bonus:2}],spells:["The mage is a 9th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 14, +6 to hit with spell attacks). The mage has the following wizard spells prepared:",{"Cantrips (at will)":"fire bolt, light, mage hand, prestidigitation"},{"1st level (4 slots)":"detect magic, mage armor, magic missile, shield"},{"2nd level (3 slots)":"misty step, suggestion"},{"3rd level (3 slots)":"counterspell, fireball, fly"},{"4th level (3 slots)":"greater invisibility, ice storm"},{"5th level (1 slot)":"cone of cold"}]},{name:"Magma Mephit",source:"5e SRD",size:"Small",type:"elemental",subtype:"",alignment:"neutral evil",ac:11,hp:22,hit_dice:"5d6 + 4",speed:"30 ft., fly 30 ft.",stats:[8,12,12,7,10,10],skillsaves:[{stealth:3}],damage_vulnerabilities:"cold",damage_resistances:"",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"Ignan, Terran",cr:"1/2",bestiary:!0,traits:[{name:"Death Burst",desc:"When the mephit dies, it explodes in a burst of lava. Each creature within 5 ft. of it must make a DC 11 Dexterity saving throw, taking 7 (2d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"2d6"},{name:"False Appearance",desc:"While the mephit remains motionless, it is indistinguishable from an ordinary mound of magma.",attack_bonus:0},{name:"Innate Spellcasting (1/Day)",desc:"The mephit can innately cast heat metal (spell save DC 10), requiring no material components. Its innate spellcasting ability is Charisma.",attack_bonus:0}],actions:[{name:"Claws",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft ., one creature. Hit: 3 (1d4 + 1) slashing damage plus 2 (1d4) fire damage.",attack_bonus:3,damage_dice:"1d4",damage_bonus:1},{name:"Fire Breath (Recharge 6)",desc:"The mephit exhales a 15-foot cone of fire. Each creature in that area must make a DC 11 Dexterity saving throw, taking 7 (2d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0},{name:"Variant: Summon Mephits (1/Day)",desc:"The mephit has a 25 percent chance of summoning 1d4 mephits of its kind. A summoned mephit appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other mephits. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.",attack_bonus:0}]},{name:"Magmin",source:"5e SRD",size:"Small",type:"elemental",subtype:"",alignment:"chaotic neutral",ac:14,hp:9,hit_dice:"2d6 + 2",speed:"30 ft.",stats:[7,15,12,8,11,10],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"fire",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"Ignan",cr:"1/2",bestiary:!0,traits:[{name:"Death Burst",desc:"When the magmin dies, it explodes in a burst of fire and magma. Each creature within 10 ft. of it must make a DC 11 Dexterity saving throw, taking 7 (2d6) fire damage on a failed save, or half as much damage on a successful one. Flammable objects that aren't being worn or carried in that area are ignited.",attack_bonus:0,damage_dice:"2d6"},{name:"Ignited Illumination",desc:"As a bonus action, the magmin can set itself ablaze or extinguish its flames. While ablaze, the magmin sheds bright light in a 10-foot radius and dim light for an additional 10 ft.",attack_bonus:0}],actions:[{name:"Touch",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (2d6) fire damage. If the target is a creature or a flammable object, it ignites. Until a target takes an action to douse the fire, the target takes 3 (1d6) fire damage at the end of each of its turns.",attack_bonus:4,damage_dice:"2d6"}]},{name:"Mammoth",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:126,hit_dice:"11d12 + 54",speed:"40 ft.",stats:[24,9,21,3,11,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"6",bestiary:!0,traits:[{name:"Trampling Charge",desc:"If the mammoth moves at least 20 ft. straight toward a creature and then hits it with a gore attack on the same turn, that target must succeed on a DC 18 Strength saving throw or be knocked prone. If the target is prone, the mammoth can make one stomp attack against it as a bonus action.",attack_bonus:0}],actions:[{name:"Gore",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 25 (4d8 + 7) piercing damage.",attack_bonus:10,damage_dice:"4d8",damage_bonus:7},{name:"Stomp",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one prone creature. Hit: 29 (4d10 + 7) bludgeoning damage.",attack_bonus:10,damage_dice:"4d10",damage_bonus:7}]},{name:"Manticore",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"lawful evil",ac:14,hp:68,hit_dice:"8d10 + 24",speed:"30 ft., fly 50 ft.",stats:[17,16,17,7,12,8],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 11",languages:"",cr:"3",bestiary:!0,traits:[{name:"Tail Spike Regrowth",desc:"The manticore has twenty-four tail spikes. Used spikes regrow when the manticore finishes a long rest.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The manticore makes three attacks: one with its bite and two with its claws or three with its tail spikes.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Claw",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Tail Spike",desc:"Ranged Weapon Attack: +5 to hit, range 100/200 ft., one target. Hit: 7 (1d8 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3}]},{name:"Marilith",source:"5e SRD",size:"Large",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:18,hp:189,hit_dice:"18d10 + 90",speed:"40 ft.",stats:[18,20,20,18,16,20],saves:[{strength:9},{constitution:10},{wisdom:8},{charisma:10}],damage_vulnerabilities:"",damage_resistances:"cold, fire, lightning; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"poisoned",senses:"truesight 120 ft., passive Perception 13",languages:"Abyssal, telepathy 120 ft.",cr:"16",bestiary:!0,traits:[{name:"Magic Resistance",desc:"The marilith has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The marilith's weapon attacks are magical.",attack_bonus:0},{name:"Reactive",desc:"The marilith can take one reaction on every turn in combat.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The marilith can make seven attacks: six with its longswords and one with its tail.",attack_bonus:0},{name:"Longsword",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) slashing damage.",attack_bonus:9,damage_dice:"2d8",damage_bonus:4},{name:"Tail",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft., one creature. Hit: 15 (2d10 + 4) bludgeoning damage. If the target is Medium or smaller, it is grappled (escape DC 19). Until this grapple ends, the target is restrained, the marilith can automatically hit the target with its tail, and the marilith can't make tail attacks against other targets.",attack_bonus:9,damage_dice:"2d10",damage_bonus:4},{name:"Teleport",desc:"The marilith magically teleports, along with any equipment it is wearing or carrying, up to 120 feet to an unoccupied space it can see.",attack_bonus:0},{name:"Variant: Summon Demon (1/Day)",desc:`The demon chooses what to summon and attempts a magical summoning. +A marilith has a 50 percent chance of summoning 1d6 vrocks, 1d4 hezrous, 1d3 glabrezus, 1d2 nalfeshnees, or one marilith. +A summoned demon appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other demons. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.`,attack_bonus:0}],reactions:[{name:"Parry",desc:"The marilith adds 5 to its AC against one melee attack that would hit it. To do so, the marilith must see the attacker and be wielding a melee weapon.",attack_bonus:0}]},{name:"Mastiff",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:5,hit_dice:"1d8",speed:"40 ft.",stats:[13,14,12,3,12,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1/8",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The mastiff has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) piercing damage. If the target is a creature, it must succeed on a DC 11 Strength saving throw or be knocked prone.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Medusa",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"",alignment:"lawful evil",ac:15,hp:127,hit_dice:"17d8 + 50",speed:"30 ft.",stats:[10,15,16,12,13,15],skillsaves:[{deception:5},{insight:4},{perception:4},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"Common",cr:"6",bestiary:!0,traits:[{name:"Petrifying Gaze",desc:`When a creature that can see the medusa's eyes starts its turn within 30 ft. of the medusa, the medusa can force it to make a DC 14 Constitution saving throw if the medusa isn't incapacitated and can see the creature. If the saving throw fails by 5 or more, the creature is instantly petrified. Otherwise, a creature that fails the save begins to turn to stone and is restrained. The restrained creature must repeat the saving throw at the end of its next turn, becoming petrified on a failure or ending the effect on a success. The petrification lasts until the creature is freed by the greater restoration spell or other magic. +Unless surprised, a creature can avert its eyes to avoid the saving throw at the start of its turn. If the creature does so, it can't see the medusa until the start of its next turn, when it can avert its eyes again. If the creature looks at the medusa in the meantime, it must immediately make the save. +If the medusa sees itself reflected on a polished surface within 30 ft. of it and in an area of bright light, the medusa is, due to its curse, affected by its own gaze.`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The medusa makes either three melee attacks \u2014 one with its snake hair and two with its shortsword \u2014 or two ranged attacks with its longbow.",attack_bonus:0},{name:"Snake Hair",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one creature. Hit: 4 (1d4 + 2) piercing damage plus 14 (4d6) poison damage.",attack_bonus:5,damage_dice:"1d4",damage_bonus:2},{name:"Shortsword",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:2},{name:"Longbow",desc:"Ranged Weapon Attack: +5 to hit, range 150/600 ft., one target. Hit: 6 (1d8 + 2) piercing damage plus 7 (2d6) poison damage.",attack_bonus:5,damage_dice:"2d6"}]},{name:"Merfolk",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"merfolk",alignment:"neutral",ac:11,hp:11,hit_dice:"2d8 + 2",speed:"10 ft., swim 40 ft.",stats:[10,13,12,11,11,12],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"Aquan, Common",cr:"1/8",bestiary:!0,traits:[{name:"Amphibious",desc:"The merfolk can breathe air and water.",attack_bonus:0}],actions:[{name:"Spear",desc:"Melee or Ranged Weapon Attack: +2 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 3 (1d6) piercing damage, or 4 (1d8) piercing damage if used with two hands to make a melee attack.",attack_bonus:2,damage_dice:"1d6"}]},{name:"Merrow",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"chaotic evil",ac:13,hp:45,hit_dice:"6d10 + 12",speed:"10 ft., swim 40 ft.",stats:[18,10,15,8,10,9],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"Abyssal, Aquan",cr:"2",bestiary:!0,traits:[{name:"Amphibious",desc:"The merrow can breathe air and water.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The merrow makes two attacks: one with its bite and one with its claws or harpoon.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 8 (1d8 + 4) piercing damage.",attack_bonus:6,damage_dice:"1d8",damage_bonus:4},{name:"Claws",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 9 (2d4 + 4) slashing damage.",attack_bonus:6,damage_dice:"2d4",damage_bonus:4},{name:"Harpoon",desc:"Melee or Ranged Weapon Attack: +6 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 11 (2d6 + 4) piercing damage. If the target is a Huge or smaller creature, it must succeed on a Strength contest against the merrow or be pulled up to 20 feet toward the merrow.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4}]},{name:"Mimic",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"shapechanger",alignment:"neutral",ac:12,hp:58,hit_dice:"9d8 + 17",speed:"15 ft.",stats:[17,12,15,5,13,8],skillsaves:[{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"prone",senses:"darkvision 60 ft., passive Perception 11",languages:"",cr:"2",bestiary:!0,traits:[{name:"Shapechanger",desc:"The mimic can use its action to polymorph into an object or back into its true, amorphous form. Its statistics are the same in each form. Any equipment it is wearing or carrying isn 't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Adhesive (Object Form Only)",desc:"The mimic adheres to anything that touches it. A Huge or smaller creature adhered to the mimic is also grappled by it (escape DC 13). Ability checks made to escape this grapple have disadvantage.",attack_bonus:0},{name:"False Appearance (Object Form Only)",desc:"While the mimic remains motionless, it is indistinguishable from an ordinary object.",attack_bonus:0},{name:"Grappler",desc:"The mimic has advantage on attack rolls against any creature grappled by it.",attack_bonus:0}],actions:[{name:"Pseudopod",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) bludgeoning damage. If the mimic is in object form, the target is subjected to its Adhesive trait.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) piercing damage plus 4 (1d8) acid damage.",attack_bonus:5,damage_dice:"1d8 + 1d8",damage_bonus:3}]},{name:"Minotaur",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"chaotic evil",ac:14,hp:76,hit_dice:"9d10 + 26",speed:"40 ft.",stats:[18,11,16,6,16,9],skillsaves:[{perception:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 17",languages:"Abyssal",cr:"3",bestiary:!0,traits:[{name:"Charge",desc:"If the minotaur moves at least 10 ft. straight toward a target and then hits it with a gore attack on the same turn, the target takes an extra 9 (2d8) piercing damage. If the target is a creature, it must succeed on a DC 14 Strength saving throw or be pushed up to 10 ft. away and knocked prone.",attack_bonus:0,damage_dice:"2d8"},{name:"Labyrinthine Recall",desc:"The minotaur can perfectly recall any path it has traveled.",attack_bonus:0},{name:"Reckless",desc:"At the start of its turn, the minotaur can gain advantage on all melee weapon attack rolls it makes during that turn, but attack rolls against it have advantage until the start of its next turn.",attack_bonus:0}],actions:[{name:"Greataxe",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 17 (2d12 + 4) slashing damage.",attack_bonus:6,damage_dice:"2d12",damage_bonus:4},{name:"Gore",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) piercing damage.",attack_bonus:6,damage_dice:"2d8",damage_bonus:4}]},{name:"Minotaur Skeleton",source:"5e SRD",size:"Large",type:"undead",subtype:"",alignment:"lawful evil",ac:12,hp:67,hit_dice:"9d10 + 17",speed:"40 ft.",stats:[18,11,15,6,8,5],damage_vulnerabilities:"bludgeoning",damage_resistances:"",damage_immunities:"poison",condition_immunities:"exhaustion, poisoned",senses:"darkvision 60 ft., passive Perception 9",languages:"understands Abyssal but can't speak",cr:"2",bestiary:!0,traits:[{name:"Charge",desc:"If the skeleton moves at least 10 feet straight toward a target and then hits it with a gore attack on the same turn, the target takes an extra 9 (2d8) piercing damage. If the target is a creature, it must succeed on a DC 14 Strength saving throw or be pushed up to 10 feet away and knocked prone.",attack_bonus:0,damage_dice:"2d8"}],actions:[{name:"Greataxe",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 17 (2d12 + 4) slashing damage.",attack_bonus:6,damage_dice:"2d12",damage_bonus:4},{name:"Gore",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) piercing damage.",attack_bonus:6,damage_dice:"2d8",damage_bonus:4}]},{name:"Mule",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:11,hit_dice:"2d8 + 2",speed:"40 ft.",stats:[14,10,13,2,10,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/8",bestiary:!0,traits:[{name:"Beast of Burden",desc:"The mule is considered to be a Large animal for the purpose of determining its carrying capacity.",attack_bonus:0},{name:"Sure-Footed",desc:"The mule has advantage on Strength and Dexterity saving throws made against effects that would knock it prone.",attack_bonus:0}],actions:[{name:"Hooves",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) bludgeoning damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Mummy",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"lawful evil",ac:11,hp:58,hit_dice:"9d8 + 17",speed:"20 ft.",stats:[16,8,15,6,10,12],saves:[{wisdom:2}],damage_vulnerabilities:"fire",damage_resistances:"",damage_immunities:"bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"necrotic, poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"the languages it knew in life",cr:"3",bestiary:!0,actions:[{name:"Multiattack",desc:"The mummy can use its Dreadful Glare and makes one attack with its rotting fist.",attack_bonus:0},{name:"Rotting Fist",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) bludgeoning damage plus 10 (3d6) necrotic damage. If the target is a creature, it must succeed on a DC 12 Constitution saving throw or be cursed with mummy rot. The cursed target can't regain hit points, and its hit point maximum decreases by 10 (3d6) for every 24 hours that elapse. If the curse reduces the target's hit point maximum to 0, the target dies, and its body turns to dust. The curse lasts until removed by the remove curse spell or other magic.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3},{name:"Dreadful Glare",desc:"The mummy targets one creature it can see within 60 ft. of it. If the target can see the mummy, it must succeed on a DC 11 Wisdom saving throw against this magic or become frightened until the end of the mummy's next turn. If the target fails the saving throw by 5 or more, it is also paralyzed for the same duration. A target that succeeds on the saving throw is immune to the Dreadful Glare of all mummies (but not mummy lords) for the next 24 hours.",attack_bonus:0}]},{name:"Mummy Lord",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"lawful evil",ac:17,hp:97,hit_dice:"13d8 + 38",speed:"20 ft.",stats:[18,10,17,11,18,16],saves:[{constitution:8},{intelligence:5},{wisdom:9},{charisma:8}],skillsaves:[{history:5},{religion:5}],damage_vulnerabilities:"bludgeoning",damage_resistances:"",damage_immunities:"necrotic, poison; bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"charmed, exhaustion, frightened, paralyzed, poisoned",senses:"darkvision 60 ft., passive Perception 14",languages:"the languages it knew in life",cr:"15",bestiary:!0,traits:[{name:"Magic Resistance",desc:"The mummy lord has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Rejuvenation",desc:"A destroyed mummy lord gains a new body in 24 hours if its heart is intact, regaining all its hit points and becoming active again. The new body appears within 5 feet of the mummy lord's heart.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The mummy can use its Dreadful Glare and makes one attack with its rotting fist.",attack_bonus:0},{name:"Rotting Fist",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 14 (3d6 + 4) bludgeoning damage plus 21 (6d6) necrotic damage. If the target is a creature, it must succeed on a DC 16 Constitution saving throw or be cursed with mummy rot. The cursed target can't regain hit points, and its hit point maximum decreases by 10 (3d6) for every 24 hours that elapse. If the curse reduces the target's hit point maximum to 0, the target dies, and its body turns to dust. The curse lasts until removed by the remove curse spell or other magic.",attack_bonus:9,damage_dice:"3d6 + 6d6",damage_bonus:4},{name:"Dreadful Glare",desc:"The mummy lord targets one creature it can see within 60 feet of it. If the target can see the mummy lord, it must succeed on a DC 16 Wisdom saving throw against this magic or become frightened until the end of the mummy's next turn. If the target fails the saving throw by 5 or more, it is also paralyzed for the same duration. A target that succeeds on the saving throw is immune to the Dreadful Glare of all mummies and mummy lords for the next 24 hours.",attack_bonus:0}],legendary_actions:[{name:"Attack",desc:"The mummy lord makes one attack with its rotting fist or uses its Dreadful Glare.",attack_bonus:0},{name:"Blinding Dust",desc:"Blinding dust and sand swirls magically around the mummy lord. Each creature within 5 feet of the mummy lord must succeed on a DC 16 Constitution saving throw or be blinded until the end of the creature's next turn.",attack_bonus:0},{name:"Blasphemous Word (Costs 2 Actions)",desc:"The mummy lord utters a blasphemous word. Each non-undead creature within 10 feet of the mummy lord that can hear the magical utterance must succeed on a DC 16 Constitution saving throw or be stunned until the end of the mummy lord's next turn.",attack_bonus:0},{name:"Channel Negative Energy (Costs 2 Actions)",desc:"The mummy lord magically unleashes negative energy. Creatures within 60 feet of the mummy lord, including ones behind barriers and around corners, can't regain hit points until the end of the mummy lord's next turn.",attack_bonus:0},{name:"Whirlwind of Sand (Costs 2 Actions)",desc:"The mummy lord magically transforms into a whirlwind of sand, moves up to 60 feet, and reverts to its normal form. While in whirlwind form, the mummy lord is immune to all damage, and it can't be grappled, petrified, knocked prone, restrained, or stunned. Equipment worn or carried by the mummy lord remain in its possession.",attack_bonus:0}],spells:["The mummy lord is a 10th-level spellcaster. Its spellcasting ability is Wisdom (spell save DC 17, +9 to hit with spell attacks). The mummy lord has the following cleric spells prepared:",{"Cantrips (at will)":"sacred flame, thaumaturgy"},{"1st level (4 slots)":"command, guiding bolt, shield of faith"},{"2nd level (3 slots)":"hold person, silence, spiritual weapon"},{"3rd level (3 slots)":"animate dead, dispel magic"},{"4th level (3 slots)":"divination, guardian of faith"},{"5th level (2 slots)":"contagion, insect plague"},{"6th level (1 slot)":"harm"}]},{name:"Nalfeshnee",source:"5e SRD",size:"Large",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:18,hp:184,hit_dice:"16d10 + 96",speed:"20 ft., fly 30 ft.",stats:[21,10,22,19,12,15],saves:[{constitution:11},{intelligence:9},{wisdom:6},{charisma:7}],damage_vulnerabilities:"",damage_resistances:"cold, fire, lightning; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"poisoned",senses:"truesight 120 ft., passive Perception 11",languages:"Abyssal, telepathy 120 ft.",cr:"13",bestiary:!0,traits:[{name:"Magic Resistance",desc:"The nalfeshnee has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The nalfeshnee uses Horror Nimbus if it can. It then makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 32 (5d10 + 5) piercing damage.",attack_bonus:10,damage_dice:"5d10",damage_bonus:5},{name:"Claw",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 15 (3d6 + 5) slashing damage.",attack_bonus:10,damage_dice:"3d6",damage_bonus:5},{name:"Horror Nimbus (Recharge 5-6)",desc:"The nalfeshnee magically emits scintillating, multicolored light. Each creature within 15 feet of the nalfeshnee that can see the light must succeed on a DC 15 Wisdom saving throw or be frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the nalfeshnee's Horror Nimbus for the next 24 hours.",attack_bonus:0},{name:"Teleport",desc:"The nalfeshnee magically teleports, along with any equipment it is wearing or carrying, up to 120 feet to an unoccupied space it can see.",attack_bonus:0},{name:"Variant: Summon Demon (1/Day)",desc:`The demon chooses what to summon and attempts a magical summoning. +A nalfeshnee has a 50 percent chance of summoning 1d4 vrocks, 1d3 hezrous, 1d2 glabrezus, or one nalfeshnee. +A summoned demon appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other demons. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.`,attack_bonus:0}]},{name:"Night Hag",source:"5e SRD",size:"Medium",type:"fiend",subtype:"",alignment:"neutral evil",ac:17,hp:112,hit_dice:"15d8 + 44",speed:"30 ft.",stats:[18,15,16,16,14,16],skillsaves:[{deception:7},{insight:6},{perception:6},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"cold, fire; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"",condition_immunities:"charmed",senses:"darkvision 120 ft., passive Perception 16",languages:"Abyssal, Common, Infernal, Primordial",cr:"5",bestiary:!0,traits:[{name:"Innate Spellcasting",desc:`The hag's innate spellcasting ability is Charisma (spell save DC 14, +6 to hit with spell attacks). She can innately cast the following spells, requiring no material components: + +At will: detect magic, magic missile +2/day each: plane shift (self only), ray of enfeeblement, sleep`,attack_bonus:0},{name:"Magic Resistance",desc:"The hag has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Night Hag Items",desc:`A night hag carries two very rare magic items that she must craft for herself If either object is lost, the night hag will go to great lengths to retrieve it, as creating a new tool takes time and effort. +Heartstone: This lustrous black gem allows a night hag to become ethereal while it is in her possession. The touch of a heartstone also cures any disease. Crafting a heartstone takes 30 days. +Soul Bag: When an evil humanoid dies as a result of a night hag's Nightmare Haunting, the hag catches the soul in this black sack made of stitched flesh. A soul bag can hold only one evil soul at a time, and only the night hag who crafted the bag can catch a soul with it. Crafting a soul bag takes 7 days and a humanoid sacrifice (whose flesh is used to make the bag).`,attack_bonus:0},{name:"Hag Coven",desc:`When hags must work together, they form covens, in spite of their selfish natures. A coven is made up of hags of any type, all of whom are equals within the group. However, each of the hags continues to desire more personal power. +A coven consists of three hags so that any arguments between two hags can be settled by the third. If more than three hags ever come together, as might happen if two covens come into conflict, the result is usually chaos.`,attack_bonus:0},{name:"Shared Spellcasting (Coven Only)",desc:`While all three members of a hag coven are within 30 feet of one another, they can each cast the following spells from the wizard's spell list but must share the spell slots among themselves: + +\u2022 1st level (4 slots): identify, ray of sickness +\u2022 2nd level (3 slots): hold person, locate object +\u2022 3rd level (3 slots): bestow curse, counterspell, lightning bolt +\u2022 4th level (3 slots): phantasmal killer, polymorph +\u2022 5th level (2 slots): contact other plane, scrying +\u2022 6th level (1 slot): eye bite + +For casting these spells, each hag is a 12th-level spellcaster that uses Intelligence as her spellcasting ability. The spell save DC is 12+the hag's Intelligence modifier, and the spell attack bonus is 4+the hag's Intelligence modifier.`,attack_bonus:0},{name:"Hag Eye (Coven Only)",desc:`A hag coven can craft a magic item called a hag eye, which is made from a real eye coated in varnish and often fitted to a pendant or other wearable item. The hag eye is usually entrusted to a minion for safekeeping and transport. A hag in the coven can take an action to see what the hag eye sees if the hag eye is on the same plane of existence. A hag eye has AC 10, 1 hit point, and darkvision with a radius of 60 feet. If it is destroyed, each coven member takes 3d10 psychic damage and is blinded for 24 hours. +A hag coven can have only one hag eye at a time, and creating a new one requires all three members of the coven to perform a ritual. The ritual takes 1 hour, and the hags can't perform it while blinded. During the ritual, if the hags take any action other than performing the ritual, they must start over.`,attack_bonus:0}],actions:[{name:"Claws (Hag Form Only)",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:4},{name:"Change Shape",desc:"The hag magically polymorphs into a Small or Medium female humanoid, or back into her true form. Her statistics are the same in each form. Any equipment she is wearing or carrying isn't transformed. She reverts to her true form if she dies.",attack_bonus:0},{name:"Etherealness",desc:"The hag magically enters the Ethereal Plane from the Material Plane, or vice versa. To do so, the hag must have a heartstone in her possession.",attack_bonus:0},{name:"Nightmare Haunting (1/Day)",desc:"While on the Ethereal Plane, the hag magically touches a sleeping humanoid on the Material Plane. A protection from evil and good spell cast on the target prevents this contact, as does a magic circle. As long as the contact persists, the target has dreadful visions. If these visions last for at least 1 hour, the target gains no benefit from its rest, and its hit point maximum is reduced by 5 (1d10). If this effect reduces the target's hit point maximum to 0, the target dies, and if the target was evil, its soul is trapped in the hag's soul bag. The reduction to the target's hit point maximum lasts until removed by the greater restoration spell or similar magic.",attack_bonus:0}]},{name:"Nightmare",source:"5e SRD",size:"Large",type:"fiend",subtype:"",alignment:"neutral evil",ac:13,hp:68,hit_dice:"8d10 + 24",speed:"60 ft., fly 90 ft.",stats:[18,15,16,10,13,15],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"passive Perception 11",languages:"understands Abyssal, Common, and Infernal but can't speak",cr:"3",bestiary:!0,traits:[{name:"Confer Fire Resistance",desc:"The nightmare can grant resistance to fire damage to anyone riding it.",attack_bonus:0},{name:"Illumination",desc:"The nightmare sheds bright light in a 10-foot radius and dim light for an additional 10 feet.",attack_bonus:0}],actions:[{name:"Hooves",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) bludgeoning damage plus 7 (2d6) fire damage.",attack_bonus:6,damage_dice:"2d8 + 2d6",damage_bonus:4},{name:"Ethereal Stride",desc:"The nightmare and up to three willing creatures within 5 feet of it magically enter the Ethereal Plane from the Material Plane, or vice versa.",attack_bonus:0}]},{name:"Noble",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:15,hp:9,hit_dice:"2d8",speed:"30 ft.",stats:[11,12,11,12,14,16],skillsaves:[{deception:5},{insight:4},{persuasion:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"any two languages",cr:"1/8",bestiary:!0,actions:[{name:"Rapier",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 5 (1d8 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d8",damage_bonus:1}],reactions:[{name:"Parry",desc:"The noble adds 2 to its AC against one melee attack that would hit it. To do so, the noble must see the attacker and be wielding a melee weapon.",attack_bonus:0}]},{name:"Ochre Jelly",source:"5e SRD",size:"Large",type:"ooze",subtype:"",alignment:"unaligned",ac:8,hp:45,hit_dice:"6d10 + 12",speed:"10 ft., climb 10 ft.",stats:[15,6,14,2,6,1],damage_vulnerabilities:"",damage_resistances:"acid",damage_immunities:"lightning, slashing",condition_immunities:"blinded, charmed, deafened, exhaustion, frightened, prone",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 8",languages:"",cr:"2",bestiary:!0,traits:[{name:"Amorphous",desc:"The jelly can move through a space as narrow as 1 inch wide without squeezing.",attack_bonus:0},{name:"Spider Climb",desc:"The jelly can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0}],actions:[{name:"Pseudopod",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 9 (2d6 + 2) bludgeoning damage plus 3 (1d6) acid damage.",attack_bonus:4,damage_dice:"2d6",damage_bonus:2}],reactions:[{name:"Split",desc:"When a jelly that is Medium or larger is subjected to lightning or slashing damage, it splits into two new jellies if it has at least 10 hit points. Each new jelly has hit points equal to half the original jelly's, rounded down. New jellies are one size smaller than the original jelly.",attack_bonus:0}]},{name:"Octopus",source:"5e SRD",size:"Small",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:3,hit_dice:"1d6 + -1",speed:"5 ft., swim 30 ft.",stats:[4,15,11,3,10,4],skillsaves:[{perception:2},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 12",languages:"",cr:"0",bestiary:!0,traits:[{name:"Hold Breath",desc:"While out of water, the octopus can hold its breath for 30 minutes.",attack_bonus:0},{name:"Underwater Camouflage",desc:"The octopus has advantage on Dexterity (Stealth) checks made while underwater.",attack_bonus:0},{name:"Water Breathing",desc:"The octopus can breathe only underwater.",attack_bonus:0}],actions:[{name:"Tentacles",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 1 bludgeoning damage, and the target is grappled (escape DC 10). Until this grapple ends, the octopus can't use its tentacles on another target.",attack_bonus:4,damage_bonus:1},{name:"Ink Cloud (Recharges after a Short or Long Rest)",desc:"A 5-foot-radius cloud of ink extends all around the octopus if it is underwater. The area is heavily obscured for 1 minute, although a significant current can disperse the ink. After releasing the ink, the octopus can use the Dash action as a bonus action.",attack_bonus:0}]},{name:"Ogre",source:"5e SRD",size:"Large",type:"giant",subtype:"",alignment:"chaotic evil",ac:11,hp:59,hit_dice:"7d10 + 20",speed:"40 ft.",stats:[19,8,16,5,7,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 8",languages:"Common, Giant",cr:"2",bestiary:!0,actions:[{name:"Greatclub",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d8",damage_bonus:4},{name:"Javelin",desc:"Melee or Ranged Weapon Attack: +6 to hit, reach 5 ft. or range 30/120 ft., one target. Hit: 11 (2d6 + 4) piercing damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4}]},{name:"Ogre Zombie",source:"5e SRD",size:"Large",type:"undead",subtype:"",alignment:"neutral evil",ac:8,hp:85,hit_dice:"9d10 + 35",speed:"30 ft.",stats:[19,6,18,3,6,5],saves:[{wisdom:0}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 8",languages:"understands Common and Giant but can't speak",cr:"2",bestiary:!0,traits:[{name:"Undead Fortitude",desc:"If damage reduces the zombie to 0 hit points, it must make a Constitution saving throw with a DC of 5+the damage taken, unless the damage is radiant or from a critical hit. On a success, the zombie drops to 1 hit point instead.",attack_bonus:0}],actions:[{name:"Morningstar",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d8",damage_bonus:4}]},{name:"Oni",source:"5e SRD",size:"Large",type:"giant",subtype:"",alignment:"lawful evil",ac:16,hp:110,hit_dice:"13d10 + 38",speed:"30 ft., fly 30 ft.",stats:[19,11,16,14,12,15],saves:[{dexterity:3},{constitution:6},{wisdom:4},{charisma:5}],skillsaves:[{arcana:5},{deception:8},{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"Common, Giant",cr:"7",bestiary:!0,traits:[{name:"Innate Spellcasting",desc:`The oni's innate spellcasting ability is Charisma (spell save DC 13). The oni can innately cast the following spells, requiring no material components: + +At will: darkness, invisibility +1/day each: charm person, cone of cold, gaseous form, sleep`,attack_bonus:0},{name:"Magic Weapons",desc:"The oni's weapon attacks are magical.",attack_bonus:0},{name:"Regeneration",desc:"The oni regains 10 hit points at the start of its turn if it has at least 1 hit point.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The oni makes two attacks, either with its claws or its glaive.",attack_bonus:0},{name:"Claw (Oni Form Only)",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 8 (1d8 + 4) slashing damage.",attack_bonus:7,damage_dice:"1d8",damage_bonus:4},{name:"Glaive",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one target. Hit: 15 (2d10 + 4) slashing damage, or 9 (1d10 + 4) slashing damage in Small or Medium form.",attack_bonus:7,damage_dice:"2d10",damage_bonus:4},{name:"Change Shape",desc:"The oni magically polymorphs into a Small or Medium humanoid, into a Large giant, or back into its true form. Other than its size, its statistics are the same in each form. The only equipment that is transformed is its glaive, which shrinks so that it can be wielded in humanoid form. If the oni dies, it reverts to its true form, and its glaive reverts to its normal size.",attack_bonus:0}]},{name:"Orc",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"orc",alignment:"chaotic evil",ac:13,hp:15,hit_dice:"2d8 + 6",speed:"30 ft.",stats:[16,12,16,7,11,10],skillsaves:[{intimidation:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"Common, Orc",cr:"1/2",bestiary:!0,traits:[{name:"Aggressive",desc:"As a bonus action, the orc can move up to its speed toward a hostile creature that it can see.",attack_bonus:0}],actions:[{name:"Greataxe",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 9 (1d12 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d12",damage_bonus:3},{name:"Javelin",desc:"Melee or Ranged Weapon Attack: +5 to hit, reach 5 ft. or range 30/120 ft., one target. Hit: 6 (1d6 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3}]},{name:"Otyugh",source:"5e SRD",size:"Large",type:"aberration",subtype:"",alignment:"neutral",ac:14,hp:114,hit_dice:"12d10 + 48",speed:"30 ft.",stats:[16,11,19,6,13,6],saves:[{constitution:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 11",languages:"Otyugh",cr:"5",bestiary:!0,traits:[{name:"Limited Telepathy",desc:"The otyugh can magically transmit simple messages and images to any creature within 120 ft. of it that can understand a language. This form of telepathy doesn't allow the receiving creature to telepathically respond.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The otyugh makes three attacks: one with its bite and two with its tentacles.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 12 (2d8 + 3) piercing damage. If the target is a creature, it must succeed on a DC 15 Constitution saving throw against disease or become poisoned until the disease is cured. Every 24 hours that elapse, the target must repeat the saving throw, reducing its hit point maximum by 5 (1d10) on a failure. The disease is cured on a success. The target dies if the disease reduces its hit point maximum to 0. This reduction to the target's hit point maximum lasts until the disease is cured.",attack_bonus:6,damage_dice:"2d8",damage_bonus:3},{name:"Tentacle",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one target. Hit: 7 (1d8 + 3) bludgeoning damage plus 4 (1d8) piercing damage. If the target is Medium or smaller, it is grappled (escape DC 13) and restrained until the grapple ends. The otyugh has two tentacles, each of which can grapple one target.",attack_bonus:6,damage_dice:"1d8",damage_bonus:3},{name:"Tentacle Slam",desc:"The otyugh slams creatures grappled by it into each other or a solid surface. Each creature must succeed on a DC 14 Constitution saving throw or take 10 (2d6 + 3) bludgeoning damage and be stunned until the end of the otyugh's next turn. On a successful save, the target takes half the bludgeoning damage and isn't stunned.",attack_bonus:0}]},{name:"Owl",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:1,hit_dice:"1d4 + -2",speed:"5 ft., fly 60 ft.",stats:[3,13,8,2,12,7],skillsaves:[{perception:3},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 13",languages:"",cr:"0",bestiary:!0,traits:[{name:"Flyby",desc:"The owl doesn't provoke opportunity attacks when it flies out of an enemy's reach.",attack_bonus:0},{name:"Keen Hearing and Sight",desc:"The owl has advantage on Wisdom (Perception) checks that rely on hearing or sight.",attack_bonus:0}],actions:[{name:"Talons",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 1 slashing damage.",attack_bonus:3,damage_bonus:1}]},{name:"Owlbear",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:13,hp:59,hit_dice:"7d10 + 20",speed:"40 ft.",stats:[20,12,17,3,12,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"",cr:"3",bestiary:!0,traits:[{name:"Keen Sight and Smell",desc:"The owlbear has advantage on Wisdom (Perception) checks that rely on sight or smell.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The owlbear makes two attacks: one with its beak and one with its claws.",attack_bonus:0},{name:"Beak",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one creature. Hit: 10 (1d10 + 5) piercing damage.",attack_bonus:7,damage_dice:"1d10",damage_bonus:5},{name:"Claws",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 14 (2d8 + 5) slashing damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:5}]},{name:"Panther",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:13,hit_dice:"3d8 + -1",speed:"50 ft., climb 40 ft.",stats:[14,15,10,3,14,7],skillsaves:[{perception:4},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Keen Smell",desc:"The panther has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Pounce",desc:"If the panther moves at least 20 ft. straight toward a creature and then hits it with a claw attack on the same turn, that target must succeed on a DC 12 Strength saving throw or be knocked prone. If the target is prone, the panther can make one bite attack against it as a bonus action.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Claw",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) slashing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Pegasus",source:"5e SRD",size:"Large",type:"celestial",subtype:"",alignment:"chaotic good",ac:12,hp:59,hit_dice:"7d10 + 20",speed:"60 ft., fly 90 ft.",stats:[18,15,16,10,15,13],saves:[{dexterity:4},{wisdom:4},{charisma:3}],skillsaves:[{perception:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 16",languages:"understands Celestial, Common, Elvish, and Sylvan but can't speak",cr:"2",bestiary:!0,actions:[{name:"Hooves",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4}]},{name:"Phase Spider",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"unaligned",ac:13,hp:32,hit_dice:"5d10 + 4",speed:"30 ft., climb 30 ft.",stats:[15,15,12,6,10,6],skillsaves:[{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"",cr:"3",bestiary:!0,traits:[{name:"Ethereal Jaunt",desc:"As a bonus action, the spider can magically shift from the Material Plane to the Ethereal Plane, or vice versa.",attack_bonus:0},{name:"Spider Climb",desc:"The spider can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Web Walker",desc:"The spider ignores movement restrictions caused by webbing.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 7 (1d10 + 2) piercing damage, and the target must make a DC 11 Constitution saving throw, taking 18 (4d8) poison damage on a failed save, or half as much damage on a successful one. If the poison damage reduces the target to 0 hit points, the target is stable but poisoned for 1 hour, even after regaining hit points, and is paralyzed while poisoned in this way.",attack_bonus:4,damage_dice:"1d10",damage_bonus:2}]},{name:"Pit Fiend",source:"5e SRD",size:"Large",type:"fiend",subtype:"devil",alignment:"lawful evil",ac:19,hp:300,hit_dice:"24d10 + 168",speed:"30 ft., fly 60 ft.",stats:[26,14,24,22,18,24],saves:[{dexterity:8},{constitution:13},{wisdom:10}],damage_vulnerabilities:"",damage_resistances:"cold; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"truesight 120 ft., passive Perception 14",languages:"Infernal, telepathy 120 ft.",cr:"20",bestiary:!0,traits:[{name:"Fear Aura",desc:"Any creature hostile to the pit fiend that starts its turn within 20 feet of the pit fiend must make a DC 21 Wisdom saving throw, unless the pit fiend is incapacitated. On a failed save, the creature is frightened until the start of its next turn. If a creature's saving throw is successful, the creature is immune to the pit fiend's Fear Aura for the next 24 hours.",attack_bonus:0},{name:"Magic Resistance",desc:"The pit fiend has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The pit fiend's weapon attacks are magical.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The pit fiend's spellcasting ability is Charisma (spell save DC 21). The pit fiend can innately cast the following spells, requiring no material components: +At will: detect magic, fireball +3/day each: hold monster, wall of fire`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The pit fiend makes four attacks: one with its bite, one with its claw, one with its mace, and one with its tail.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +14 to hit, reach 5 ft., one target. Hit: 22 (4d6 + 8) piercing damage. The target must succeed on a DC 21 Constitution saving throw or become poisoned. While poisoned in this way, the target can't regain hit points, and it takes 21 (6d6) poison damage at the start of each of its turns. The poisoned target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:14,damage_dice:"4d6",damage_bonus:8},{name:"Claw",desc:"Melee Weapon Attack: +14 to hit, reach 10 ft. , one target. Hit: 17 (2d8 + 8) slashing damage.",attack_bonus:14,damage_dice:"2d8",damage_bonus:8},{name:"Mace",desc:"Melee Weapon Attack: +14 to hit, reach 10ft., one target. Hit: 15 (2d6 + 8) bludgeoning damage plus 21 (6d6) fire damage.",attack_bonus:14,damage_dice:"2d6",damage_bonus:8},{name:"Tail",desc:"Melee Weapon Attack: +14 to hit, reach 10ft., one target. Hit: 24 (3d1O + 8) bludgeoning damage.",attack_bonus:14,damage_dice:"3d10",damage_bonus:8}]},{name:"Planetar",source:"5e SRD",size:"Large",type:"celestial",subtype:"",alignment:"lawful good",ac:19,hp:200,hit_dice:"16d10 + 112",speed:"40 ft., fly 120 ft.",stats:[24,20,24,19,22,25],saves:[{constitution:12},{wisdom:11},{charisma:12}],skillsaves:[{perception:11}],damage_vulnerabilities:"",damage_resistances:"radiant; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"",condition_immunities:"charmed, exhaustion, frightened",senses:"truesight 120 ft., passive Perception 21",languages:"all, telepathy 120 ft.",cr:"16",bestiary:!0,traits:[{name:"Angelic Weapons",desc:"The planetar's weapon attacks are magical. When the planetar hits with any weapon, the weapon deals an extra 5d8 radiant damage (included in the attack).",attack_bonus:0},{name:"Divine Awareness",desc:"The planetar knows if it hears a lie.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The planetar's spellcasting ability is Charisma (spell save DC 20). The planetar can innately cast the following spells, requiring no material components: +At will: detect evil and good, invisibility (self only) +3/day each: blade barrier, dispel evil and good, flame strike, raise dead +1/day each: commune, control weather, insect plague`,attack_bonus:0},{name:"Magic Resistance",desc:"The planetar has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The planetar makes two melee attacks.",attack_bonus:0},{name:"Greatsword",desc:"Melee Weapon Attack: +12 to hit, reach 5 ft., one target. Hit: 21 (4d6 + 7) slashing damage plus 22 (5d8) radiant damage.",attack_bonus:12,damage_dice:"4d6 + 5d8",damage_bonus:7},{name:"Healing Touch (4/Day)",desc:"The planetar touches another creature. The target magically regains 30 (6d8 + 3) hit points and is freed from any curse, disease, poison, blindness, or deafness.",attack_bonus:0}]},{name:"Plesiosaurus",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:68,hit_dice:"8d10 + 24",speed:"20 ft., swim 40 ft.",stats:[18,15,16,2,12,5],skillsaves:[{perception:3},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"2",bestiary:!0,traits:[{name:"Hold Breath",desc:"The plesiosaurus can hold its breath for 1 hour.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 10 ft., one target. Hit: 14 (3d6 + 4) piercing damage.",attack_bonus:6,damage_dice:"3d6",damage_bonus:4}]},{name:"Poisonous Snake",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:2,hit_dice:"1d4 + -1",speed:"30 ft., swim 30 ft.",stats:[2,16,11,1,10,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., passive Perception 10",languages:"",cr:"1/8",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 1 piercing damage, and the target must make a DC 10 Constitution saving throw, taking 5 (2d4) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:5,damage_bonus:1}]},{name:"Polar Bear",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:42,hit_dice:"5d10 + 14",speed:"40 ft., swim 30 ft.",stats:[20,10,16,2,13,7],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"2",bestiary:!0,traits:[{name:"Keen Smell",desc:"The bear has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The bear makes two attacks: one with its bite and one with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 9 (1d8 + 5) piercing damage.",attack_bonus:7,damage_dice:"1d8",damage_bonus:5},{name:"Claws",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:5}]},{name:"Pony",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:11,hit_dice:"2d8 + 2",speed:"40 ft.",stats:[15,10,13,2,11,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/8",bestiary:!0,actions:[{name:"Hooves",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) bludgeoning damage.",attack_bonus:4,damage_dice:"2d4",damage_bonus:2}]},{name:"Priest",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:13,hp:27,hit_dice:"5d8 + 4",speed:"25 ft.",stats:[10,10,12,13,16,13],skillsaves:[{medicine:7},{persuasion:3},{religion:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"any two languages",cr:"2",bestiary:!0,traits:[{name:"Divine Eminence",desc:"As a bonus action, the priest can expend a spell slot to cause its melee weapon attacks to magically deal an extra 10 (3d6) radiant damage to a target on a hit. This benefit lasts until the end of the turn. If the priest expends a spell slot of 2nd level or higher, the extra damage increases by 1d6 for each level above 1st.",attack_bonus:0,damage_dice:"3d6"}],actions:[{name:"Mace",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 3 (1d6) bludgeoning damage.",attack_bonus:2,damage_dice:"1d6"}],spells:["The priest is a 5th-level spellcaster. Its spellcasting ability is Wisdom (spell save DC 13, +5 to hit with spell attacks). The priest has the following cleric spells prepared:",{"Cantrips (at will)":"light, sacred flame, thaumaturgy"},{"1st level (4 slots)":"cure wounds, guiding bolt, sanctuary"},{"2nd level (3 slots)":"lesser restoration, spiritual weapon"},{"3rd level (2 slots)":"dispel magic, spirit guardians"}]},{name:"Pseudodragon",source:"5e SRD",size:"Tiny",type:"dragon",subtype:"",alignment:"neutral good",ac:13,hp:7,hit_dice:"2d4 + 2",speed:"15 ft., fly 60 ft.",stats:[6,15,13,10,12,10],skillsaves:[{perception:3},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 13",languages:"understands Common and Draconic but can't speak",cr:"1/4",bestiary:!0,traits:[{name:"Keen Senses",desc:"The pseudodragon has advantage on Wisdom (Perception) checks that rely on sight, hearing, or smell.",attack_bonus:0},{name:"Magic Resistance",desc:"The pseudodragon has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Limited Telepathy",desc:"The pseudodragon can magically communicate simple ideas, emotions, and images telepathically with any creature within 100 ft. of it that can understand a language.",attack_bonus:0},{name:"Variant: Familiar",desc:"The pseudodragon can serve another creature as a familiar, forming a magic, telepathic bond with that willing companion. While the two are bonded, the companion can sense what the pseudodragon senses as long as they are within 1 mile of each other. While the pseudodragon is within 10 feet of its companion, the companion shares the pseudodragon's Magic Resistance trait. At any time and for any reason, the pseudodragon can end its service as a familiar, ending the telepathic bond.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2},{name:"Sting",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 4 (1d4 + 2) piercing damage, and the target must succeed on a DC 11 Constitution saving throw or become poisoned for 1 hour. If the saving throw fails by 5 or more, the target falls unconscious for the same duration, or until it takes damage or another creature uses an action to shake it awake.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2}]},{name:"Purple Worm",source:"5e SRD",size:"Gargantuan",type:"monstrosity",subtype:"",alignment:"unaligned",ac:18,hp:247,hit_dice:"15d20 + 89",speed:"50 ft., burrow 30 ft.",stats:[28,7,22,1,8,4],saves:[{constitution:11},{wisdom:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 30 ft., tremorsense 60 ft., passive Perception 9",languages:"",cr:"15",bestiary:!0,traits:[{name:"Tunneler",desc:"The worm can burrow through solid rock at half its burrow speed and leaves a 10-foot-diameter tunnel in its wake.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The worm makes two attacks: one with its bite and one with its stinger.",attack_bonus:0},{name:"Bite",desc:`Melee Weapon Attack: +9 to hit, reach 10 ft., one target. Hit: 22 (3d8 + 9) piercing damage. If the target is a Large or smaller creature, it must succeed on a DC 19 Dexterity saving throw or be swallowed by the worm. A swallowed creature is blinded and restrained, it has total cover against attacks and other effects outside the worm, and it takes 21 (6d6) acid damage at the start of each of the worm's turns. +If the worm takes 30 damage or more on a single turn from a creature inside it, the worm must succeed on a DC 21 Constitution saving throw at the end of that turn or regurgitate all swallowed creatures, which fall prone in a space within 10 feet of the worm. If the worm dies, a swallowed creature is no longer restrained by it and can escape from the corpse by using 20 feet of movement, exiting prone.`,attack_bonus:9,damage_dice:"3d8",damage_bonus:9},{name:"Tail Stinger",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft., one creature. Hit: 19 (3d6 + 9) piercing damage, and the target must make a DC 19 Constitution saving throw, taking 42 (12d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:9,damage_dice:"3d6",damage_bonus:9}]},{name:"Quasit",source:"5e SRD",size:"Tiny",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:13,hp:7,hit_dice:"3d4 + -1",speed:"40 ft.",stats:[5,17,10,7,10,10],skillsaves:[{stealth:5}],damage_vulnerabilities:"",damage_resistances:"cold; fire; lightning; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 10",languages:"Abyssal, Common",cr:"1",bestiary:!0,traits:[{name:"Shapechanger",desc:"The quasit can use its action to polymorph into a beast form that resembles a bat (speed 10 ft. fly 40 ft.), a centipede (40 ft., climb 40 ft.), or a toad (40 ft., swim 40 ft.), or back into its true form . Its statistics are the same in each form, except for the speed changes noted. Any equipment it is wearing or carrying isn't transformed . It reverts to its true form if it dies.",attack_bonus:0},{name:"Magic Resistance",desc:"The quasit has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Variant: Familiar",desc:"The quasit can serve another creature as a familiar, forming a telepathic bond with its willing master. While the two are bonded, the master can sense what the quasit senses as long as they are within 1 mile of each other. While the quasit is within 10 feet of its master, the master shares the quasit's Magic Resistance trait. At any time and for any reason, the quasit can end its service as a familiar, ending the telepathic bond.",attack_bonus:0}],actions:[{name:"Claw (Bite in Beast Form)",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft ., one target. Hit: 5 (1d4 + 3) piercing damage, and the target must succeed on a DC 10 Constitution saving throw or take 5 (2d4) poison damage and become poisoned for 1 minute. The target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:4,damage_dice:"1d4",damage_bonus:3},{name:"Scare (1/day)",desc:"One creature of the quasit's choice within 20 ft. of it must succeed on a DC 10 Wisdom saving throw or be frightened for 1 minute. The target can repeat the saving throw at the end of each of its turns, with disadvantage if the quasit is within line of sight, ending the effect on itself on a success.",attack_bonus:0},{name:"Invisibility",desc:"The quasit magically turns invisible until it attacks or uses Scare, or until its concentration ends (as if concentrating on a spell). Any equipment the quasit wears or carries is invisible with it.",attack_bonus:0}]},{name:"Quipper",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:1,hit_dice:"1d4 + -2",speed:"swim 40 ft.",stats:[2,16,9,1,7,2],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 8",languages:"",cr:"0",bestiary:!0,traits:[{name:"Blood Frenzy",desc:"The quipper has advantage on melee attack rolls against any creature that doesn't have all its hit points.",attack_bonus:0},{name:"Water Breathing",desc:"The quipper can breathe only underwater.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 1 piercing damage.",attack_bonus:5,damage_bonus:1}]},{name:"Rakshasa",source:"5e SRD",size:"Medium",type:"fiend",subtype:"",alignment:"lawful evil",ac:16,hp:110,hit_dice:"13d8 + 51",speed:"40 ft.",stats:[14,17,18,13,16,20],skillsaves:[{deception:10},{insight:8}],damage_vulnerabilities:"piercing from magic weapons wielded by good creatures",damage_resistances:"",damage_immunities:"bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"Common, Infernal",cr:"13",bestiary:!0,traits:[{name:"Limited Magic Immunity",desc:"The rakshasa can't be affected or detected by spells of 6th level or lower unless it wishes to be. It has advantage on saving throws against all other spells and magical effects.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The rakshasa's innate spellcasting ability is Charisma (spell save DC 18, +10 to hit with spell attacks). The rakshasa can innately cast the following spells, requiring no material components: + +At will: detect thoughts, disguise self, mage hand, minor illusion +3/day each: charm person, detect magic, invisibility, major image, suggestion +1/day each: dominate person, fly, plane shift, true seeing`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The rakshasa makes two claw attacks",attack_bonus:0},{name:"Claw",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 9 (2d6 + 2) slashing damage, and the target is cursed if it is a creature. The magical curse takes effect whenever the target takes a short or long rest, filling the target's thoughts with horrible images and dreams. The cursed target gains no benefit from finishing a short or long rest. The curse lasts until it is lifted by a remove curse spell or similar magic.",attack_bonus:7,damage_dice:"2d6",damage_bonus:2}]},{name:"Rat",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:1,hit_dice:"1d4 + -2",speed:"20 ft.",stats:[2,11,9,2,10,4],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 10",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Smell",desc:"The rat has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +0 to hit, reach 5 ft., one target. Hit: 1 piercing damage.",attack_bonus:0,damage_bonus:1}]},{name:"Raven",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:1,hit_dice:"1d4 + -2",speed:"10 ft., fly 50 ft.",stats:[2,14,8,2,12,6],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"0",bestiary:!0,traits:[{name:"Mimicry",desc:"The raven can mimic simple sounds it has heard, such as a person whispering, a baby crying, or an animal chittering. A creature that hears the sounds can tell they are imitations with a successful DC 10 Wisdom (Insight) check.",attack_bonus:0}],actions:[{name:"Beak",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 1 piercing damage.",attack_bonus:0}]},{name:"Red Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"chaotic evil",ac:17,hp:75,hit_dice:"10d8 + 30",speed:"30 ft., climb 30 ft., fly 60 ft.",stats:[19,10,17,12,11,15],saves:[{dexterity:2},{constitution:5},{wisdom:2},{charisma:4}],skillsaves:[{perception:4},{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"4",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 9 (1d10 + 4) piercing damage plus 3 (1d6) fire damage.",attack_bonus:6,damage_dice:"1d10 + 1d6",damage_bonus:4},{name:"Fire Breath (Recharge 5-6)",desc:"The dragon exhales fire in a 15-foot cone. Each creature in that area must make a DC 13 Dexterity saving throw, taking 24 (7d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"7d6"}]},{name:"Reef Shark",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:22,hit_dice:"4d8 + 4",speed:"swim 40 ft.",stats:[14,13,13,1,10,4],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 30 ft., passive Perception 12",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Pack Tactics",desc:"The shark has advantage on an attack roll against a creature if at least one of the shark's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0},{name:"Water Breathing",desc:"The shark can breathe only underwater.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Remorhaz",source:"5e SRD",size:"Huge",type:"monstrosity",subtype:"",alignment:"unaligned",ac:17,hp:195,hit_dice:"17d12 + 84",speed:"30 ft., burrow 20 ft.",stats:[24,13,21,4,10,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold, fire",condition_immunities:"",senses:"darkvision 60 ft., tremorsense 60 ft., passive Perception 10",languages:"",cr:"11",bestiary:!0,traits:[{name:"Heated Body",desc:"A creature that touches the remorhaz or hits it with a melee attack while within 5 feet of it takes 10 (3d6) fire damage.",attack_bonus:0,damage_dice:"3d6"}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +11 to hit, reach 10 ft., one target. Hit: 40 (6d10 + 7) piercing damage plus 10 (3d6) fire damage. If the target is a creature, it is grappled (escape DC 17). Until this grapple ends, the target is restrained, and the remorhaz can't bite another target.",attack_bonus:11,damage_dice:"6d10 + 3d6",damage_bonus:7},{name:"Swallow",desc:`The remorhaz makes one bite attack against a Medium or smaller creature it is grappling. If the attack hits, that creature takes the bite's damage and is swallowed, and the grapple ends. While swallowed, the creature is blinded and restrained, it has total cover against attacks and other effects outside the remorhaz, and it takes 21 (6d6) acid damage at the start of each of the remorhaz's turns. +If the remorhaz takes 30 damage or more on a single turn from a creature inside it, the remorhaz must succeed on a DC 15 Constitution saving throw at the end of that turn or regurgitate all swallowed creatures, which fall prone in a space within 10 feet oft he remorhaz. If the remorhaz dies, a swallowed creature is no longer restrained by it and can escape from the corpse using 15 feet of movement, exiting prone.`,attack_bonus:0}]},{name:"Rhinoceros",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:45,hit_dice:"6d10 + 12",speed:"40 ft.",stats:[21,8,15,2,12,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"",cr:"2",bestiary:!0,traits:[{name:"Charge",desc:"If the rhinoceros moves at least 20 ft. straight toward a target and then hits it with a gore attack on the same turn, the target takes an extra 9 (2d8) bludgeoning damage. If the target is a creature, it must succeed on a DC 15 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d8"}],actions:[{name:"Gore",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 14 (2d8 + 5) bludgeoning damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:5}]},{name:"Riding Horse",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:13,hit_dice:"2d10 + 2",speed:"60 ft.",stats:[16,10,12,2,11,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"1/4",bestiary:!0,actions:[{name:"Hooves",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (2d4 + 3) bludgeoning damage.",attack_bonus:5,damage_dice:"2d4",damage_bonus:3}]},{name:"Roc",source:"5e SRD",size:"Gargantuan",type:"monstrosity",subtype:"",alignment:"unaligned",ac:15,hp:248,hit_dice:"16d20 + 80",speed:"20 ft., fly 120 ft.",stats:[28,10,20,3,10,9],saves:[{dexterity:4},{constitution:9},{wisdom:4},{charisma:3}],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"",cr:"11",bestiary:!0,traits:[{name:"Keen Sight",desc:"The roc has advantage on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The roc makes two attacks: one with its beak and one with its talons.",attack_bonus:0},{name:"Beak",desc:"Melee Weapon Attack: +13 to hit, reach 10 ft., one target. Hit: 27 (4d8 + 9) piercing damage.",attack_bonus:13,damage_dice:"4d8",damage_bonus:9},{name:"Talons",desc:"Melee Weapon Attack: +13 to hit, reach 5 ft., one target. Hit: 23 (4d6 + 9) slashing damage, and the target is grappled (escape DC 19). Until this grapple ends, the target is restrained, and the roc can't use its talons on another target.",attack_bonus:13,damage_dice:"4d6",damage_bonus:9}]},{name:"Roper",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"neutral evil",ac:20,hp:93,hit_dice:"11d10 + 32",speed:"10 ft., climb 10 ft.",stats:[18,8,17,7,16,6],skillsaves:[{perception:6},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 16",languages:"",cr:"5",bestiary:!0,traits:[{name:"False Appearance",desc:"While the roper remains motionless, it is indistinguishable from a normal cave formation, such as a stalagmite.",attack_bonus:0},{name:"Grasping Tendrils",desc:"The roper can have up to six tendrils at a time. Each tendril can be attacked (AC 20; 10 hit points; immunity to poison and psychic damage). Destroying a tendril deals no damage to the roper, which can extrude a replacement tendril on its next turn. A tendril can also be broken if a creature takes an action and succeeds on a DC 15 Strength check against it.",attack_bonus:0},{name:"Spider Climb",desc:"The roper can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The roper makes four attacks with its tendrils, uses Reel, and makes one attack with its bite.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 22 (4d8 + 4) piercing damage.",attack_bonus:7,damage_dice:"4d8",damage_bonus:4},{name:"Tendril",desc:"Melee Weapon Attack: +7 to hit, reach 50 ft., one creature. Hit: The target is grappled (escape DC 15). Until the grapple ends, the target is restrained and has disadvantage on Strength checks and Strength saving throws, and the roper can't use the same tendril on another target.",attack_bonus:7},{name:"Reel",desc:"The roper pulls each creature grappled by it up to 25 ft. straight toward it.",attack_bonus:0}]},{name:"Rug of Smothering",source:"5e SRD",size:"Large",type:"construct",subtype:"",alignment:"unaligned",ac:12,hp:33,hit_dice:"6d10",speed:"10 ft.",stats:[17,14,10,1,3,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison, psychic",condition_immunities:"blinded, charmed, deafened, frightened, paralyzed, petrified, poisoned",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 6",languages:"",cr:"2",bestiary:!0,traits:[{name:"Antimagic Susceptibility",desc:"The rug is incapacitated while in the area of an antimagic field. If targeted by dispel magic, the rug must succeed on a Constitution saving throw against the caster's spell save DC or fall unconscious for 1 minute.",attack_bonus:0},{name:"Damage Transfer",desc:"While it is grappling a creature, the rug takes only half the damage dealt to it, and the creature grappled by the rug takes the other half.",attack_bonus:0},{name:"False Appearance",desc:"While the rug remains motionless, it is indistinguishable from a normal rug.",attack_bonus:0}],actions:[{name:"Smother",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one Medium or smaller creature. Hit: The creature is grappled (escape DC 13). Until this grapple ends, the target is restrained, blinded, and at risk of suffocating, and the rug can't smother another target. In addition, at the start of each of the target's turns, the target takes 10 (2d6 + 3) bludgeoning damage.",attack_bonus:0,damage_dice:"2d6",damage_bonus:3}]},{name:"Rust Monster",source:"5e SRD",size:"Medium",type:"monstrosity",subtype:"",alignment:"unaligned",ac:14,hp:27,hit_dice:"5d8 + 4",speed:"40 ft.",stats:[13,12,13,2,13,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 11",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Iron Scent",desc:"The rust monster can pinpoint, by scent, the location of ferrous metal within 30 feet of it.",attack_bonus:0},{name:"Rust Metal",desc:"Any nonmagical weapon made of metal that hits the rust monster corrodes. After dealing damage, the weapon takes a permanent and cumulative -1 penalty to damage rolls. If its penalty drops to -5, the weapon is destroyed. Non magical ammunition made of metal that hits the rust monster is destroyed after dealing damage.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 5 (1d8 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d8",damage_bonus:1},{name:"Antennae",desc:`The rust monster corrodes a nonmagical ferrous metal object it can see within 5 feet of it. If the object isn't being worn or carried, the touch destroys a 1-foot cube of it. If the object is being worn or carried by a creature, the creature can make a DC 11 Dexterity saving throw to avoid the rust monster's touch. +If the object touched is either metal armor or a metal shield being worn or carried, its takes a permanent and cumulative -1 penalty to the AC it offers. Armor reduced to an AC of 10 or a shield that drops to a +0 bonus is destroyed. If the object touched is a held metal weapon, it rusts as described in the Rust Metal trait.`,attack_bonus:0}]},{name:"Saber-Toothed Tiger",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:52,hit_dice:"7d10 + 13",speed:"40 ft.",stats:[18,14,15,3,12,8],skillsaves:[{perception:3},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"2",bestiary:!0,traits:[{name:"Keen Smell",desc:"The tiger has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Pounce",desc:"If the tiger moves at least 20 ft. straight toward a creature and then hits it with a claw attack on the same turn, that target must succeed on a DC 14 Strength saving throw or be knocked prone. If the target is prone, the tiger can make one bite attack against it as a bonus action.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 10 (1d10 + 5) piercing damage.",attack_bonus:6,damage_dice:"1d10",damage_bonus:5},{name:"Claw",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) slashing damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:5}]},{name:"Sahuagin",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"sahuagin",alignment:"lawful evil",ac:12,hp:22,hit_dice:"4d8 + 4",speed:"30 ft., swim 40 ft.",stats:[13,11,12,12,13,9],skillsaves:[{perception:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 15",languages:"Sahuagin",cr:"1/2",bestiary:!0,traits:[{name:"Blood Frenzy",desc:"The sahuagin has advantage on melee attack rolls against any creature that doesn't have all its hit points.",attack_bonus:0},{name:"Limited Amphibiousness",desc:"The sahuagin can breathe air and water, but it needs to be submerged at least once every 4 hours to avoid suffocating.",attack_bonus:0},{name:"Shark Telepathy",desc:"The sahuagin can magically command any shark within 120 feet of it, using a limited telepathy.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The sahuagin makes two melee attacks: one with its bite and one with its claws or spear.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 3 (1d4 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d4",damage_bonus:1},{name:"Claws",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 3 (1d4 + 1) slashing damage.",attack_bonus:3,damage_dice:"1d4",damage_bonus:1},{name:"Spear",desc:"Melee or Ranged Weapon Attack: +3 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 4 (1d6 + 1) piercing damage, or 5 (1d8 + 1) piercing damage if used with two hands to make a melee attack.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Salamander",source:"5e SRD",size:"Large",type:"elemental",subtype:"",alignment:"neutral evil",ac:15,hp:90,hit_dice:"12d10 + 24",speed:"30 ft.",stats:[18,14,15,11,10,12],damage_vulnerabilities:"cold",damage_resistances:"bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"fire",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 10",languages:"Ignan",cr:"5",bestiary:!0,traits:[{name:"Heated Body",desc:"A creature that touches the salamander or hits it with a melee attack while within 5 ft. of it takes 7 (2d6) fire damage.",attack_bonus:0,damage_dice:"2d6"},{name:"Heated Weapons",desc:"Any metal melee weapon the salamander wields deals an extra 3 (1d6) fire damage on a hit (included in the attack).",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The salamander makes two attacks: one with its spear and one with its tail.",attack_bonus:0},{name:"Spear",desc:"Melee or Ranged Weapon Attack: +7 to hit, reach 5 ft. or range 20 ft./60 ft., one target. Hit: 11 (2d6 + 4) piercing damage, or 13 (2d8 + 4) piercing damage if used with two hands to make a melee attack, plus 3 (1d6) fire damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Tail",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage plus 7 (2d6) fire damage, and the target is grappled (escape DC 14). Until this grapple ends, the target is restrained, the salamander can automatically hit the target with its tail, and the salamander can't make tail attacks against other targets.",attack_bonus:7,damage_dice:"2d6 + 2d6",damage_bonus:4}]},{name:"Satyr",source:"5e SRD",size:"Medium",type:"fey",subtype:"",alignment:"chaotic neutral",ac:14,hp:31,hit_dice:"7d8 + -1",speed:"40 ft.",stats:[12,16,11,12,10,14],skillsaves:[{perception:2},{performance:6},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"Common, Elvish, Sylvan",cr:"1/2",bestiary:!0,traits:[{name:"Magic Resistance",desc:"The satyr has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Ram",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 6 (2d4 + 1) bludgeoning damage.",attack_bonus:3,damage_dice:"2d4",damage_bonus:1},{name:"Shortsword",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1 d6 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Shortbow",desc:"Ranged Weapon Attack: +5 to hit, range 80/320 ft., one target. Hit: 6 (1d6 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Variant: Panpipes",desc:"Gentle Lullaby. The creature falls asleep and is unconscious for 1 minute. The effect ends if the creature takes damage or if someone takes an action to shake the creature awake.",attack_bonus:0}]},{name:"Scorpion",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:1,hit_dice:"1d4 + -2",speed:"10 ft.",stats:[2,11,8,1,8,2],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"blindsight 10 ft., passive Perception 9",languages:"",cr:"0",bestiary:!0,actions:[{name:"Sting",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one creature. Hit: 1 piercing damage, and the target must make a DC 9 Constitution saving throw, taking 4 (1d8) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:2,damage_bonus:1}]},{name:"Scout",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:13,hp:16,hit_dice:"3d8 + 2",speed:"30 ft.",stats:[11,14,12,11,13,11],skillsaves:[{nature:4},{perception:5},{stealth:6},{survival:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 15",languages:"any one language (usually Common)",cr:"1/2",bestiary:!0,traits:[{name:"Keen Hearing and Sight",desc:"The scout has advantage on Wisdom (Perception) checks that rely on hearing or sight.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The scout makes two melee attacks or two ranged attacks.",attack_bonus:0},{name:"Shortsword",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Longbow",desc:"Ranged Weapon Attack: +4 to hit, ranged 150/600 ft., one target. Hit: 6 (1d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Sea Hag",source:"5e SRD",size:"Medium",type:"fey",subtype:"",alignment:"chaotic evil",ac:14,hp:52,hit_dice:"7d8 + 20",speed:"30 ft., swim 40 ft.",stats:[16,13,16,12,12,13],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 11",languages:"Aquan, Common, Giant",cr:"2",bestiary:!0,traits:[{name:"Amphibious",desc:"The hag can breathe air and water.",attack_bonus:0},{name:"Horrific Appearance",desc:`Any humanoid that starts its turn within 30 feet of the hag and can see the hag's true form must make a DC 11 Wisdom saving throw. On a failed save, the creature is frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, with disadvantage if the hag is within line of sight, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the hag's Horrific Appearance for the next 24 hours. +Unless the target is surprised or the revelation of the hag's true form is sudden, the target can avert its eyes and avoid making the initial saving throw. Until the start of its next turn, a creature that averts its eyes has disadvantage on attack rolls against the hag.`,attack_bonus:0},{name:"Hag Coven",desc:`When hags must work together, they form covens, in spite of their selfish natures. A coven is made up of hags of any type, all of whom are equals within the group. However, each of the hags continues to desire more personal power. +A coven consists of three hags so that any arguments between two hags can be settled by the third. If more than three hags ever come together, as might happen if two covens come into conflict, the result is usually chaos.`,attack_bonus:0},{name:"Shared Spellcasting (Coven Only)",desc:`While all three members of a hag coven are within 30 feet of one another, they can each cast the following spells from the wizard's spell list but must share the spell slots among themselves: + +\u2022 1st level (4 slots): identify, ray of sickness +\u2022 2nd level (3 slots): hold person, locate object +\u2022 3rd level (3 slots): bestow curse, counterspell, lightning bolt +\u2022 4th level (3 slots): phantasmal killer, polymorph +\u2022 5th level (2 slots): contact other plane, scrying +\u2022 6th level (1 slot): eye bite + +For casting these spells, each hag is a 12th-level spellcaster that uses Intelligence as her spellcasting ability. The spell save DC is 12+the hag's Intelligence modifier, and the spell attack bonus is 4+the hag's Intelligence modifier.`,attack_bonus:0},{name:"Hag Eye (Coven Only)",desc:`A hag coven can craft a magic item called a hag eye, which is made from a real eye coated in varnish and often fitted to a pendant or other wearable item. The hag eye is usually entrusted to a minion for safekeeping and transport. A hag in the coven can take an action to see what the hag eye sees if the hag eye is on the same plane of existence. A hag eye has AC 10, 1 hit point, and darkvision with a radius of 60 feet. If it is destroyed, each coven member takes 3d10 psychic damage and is blinded for 24 hours. +A hag coven can have only one hag eye at a time, and creating a new one requires all three members of the coven to perform a ritual. The ritual takes 1 hour, and the hags can't perform it while blinded. During the ritual, if the hags take any action other than performing the ritual, they must start over.`,attack_bonus:0}],actions:[{name:"Claws",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3},{name:"Death Glare",desc:"The hag targets one frightened creature she can see within 30 ft. of her. If the target can see the hag, it must succeed on a DC 11 Wisdom saving throw against this magic or drop to 0 hit points.",attack_bonus:0},{name:"Illusory Appearance",desc:`The hag covers herself and anything she is wearing or carrying with a magical illusion that makes her look like an ugly creature of her general size and humanoid shape. The effect ends if the hag takes a bonus action to end it or if she dies. +The changes wrought by this effect fail to hold up to physical inspection. For example, the hag could appear to have no claws, but someone touching her hand might feel the claws. Otherwise, a creature must take an action to visually inspect the illusion and succeed on a DC 16 Intelligence (Investigation) check to discern that the hag is disguised.`,attack_bonus:0}]},{name:"Sea Horse",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:1,hit_dice:"1d4 + -2",speed:"swim 20 ft.",stats:[1,12,8,1,10,2],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"0",bestiary:!0,traits:[{name:"Water Breathing",desc:"The sea horse can breathe only underwater.",attack_bonus:0}]},{name:"Shadow",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"chaotic evil",ac:12,hp:16,hit_dice:"3d8 + 2",speed:"40 ft.",stats:[6,14,13,6,10,8],skillsaves:[{stealth:4}],damage_vulnerabilities:"radiant",damage_resistances:"acid, cold, fire, lightning, thunder; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"necrotic, poison",condition_immunities:"exhaustion, frightened, grappled, paralyzed, petrified, poisoned, prone, restrained",senses:"darkvision 60 ft., passive Perception 10",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Amorphous",desc:"The shadow can move through a space as narrow as 1 inch wide without squeezing.",attack_bonus:0},{name:"Shadow Stealth",desc:"While in dim light or darkness, the shadow can take the Hide action as a bonus action. Its stealth bonus is also improved to +6.",attack_bonus:0},{name:"Sunlight Weakness",desc:"While in sunlight, the shadow has disadvantage on attack rolls, ability checks, and saving throws.",attack_bonus:0}],actions:[{name:"Strength Drain",desc:`Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 9 (2d6 + 2) necrotic damage, and the target's Strength score is reduced by 1d4. The target dies if this reduces its Strength to 0. Otherwise, the reduction lasts until the target finishes a short or long rest. +If a non-evil humanoid dies from this attack, a new shadow rises from the corpse 1d4 hours later.`,attack_bonus:4,damage_dice:"2d6",damage_bonus:2}]},{name:"Shambling Mound",source:"5e SRD",size:"Large",type:"plant",subtype:"",alignment:"unaligned",ac:15,hp:136,hit_dice:"16d10 + 48",speed:"20 ft., swim 20 ft.",stats:[18,8,16,5,10,5],skillsaves:[{stealth:2}],damage_vulnerabilities:"",damage_resistances:"cold, fire",damage_immunities:"lightning",condition_immunities:"blinded, deafened, exhaustion",senses:"blindsight 60 ft. (blind beyond this radius), passive Perception 10",languages:"",cr:"5",bestiary:!0,traits:[{name:"Lightning Absorption",desc:"Whenever the shambling mound is subjected to lightning damage, it takes no damage and regains a number of hit points equal to the lightning damage dealt.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The shambling mound makes two slam attacks. If both attacks hit a Medium or smaller target, the target is grappled (escape DC 14), and the shambling mound uses its Engulf on it.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) bludgeoning damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:4},{name:"Engulf",desc:"The shambling mound engulfs a Medium or smaller creature grappled by it. The engulfed target is blinded, restrained, and unable to breathe, and it must succeed on a DC 14 Constitution saving throw at the start of each of the mound's turns or take 13 (2d8 + 4) bludgeoning damage. If the mound moves, the engulfed target moves with it. The mound can have only one creature engulfed at a time.",attack_bonus:0}]},{name:"Shield Guardian",source:"5e SRD",size:"Large",type:"construct",subtype:"",alignment:"unaligned",ac:17,hp:142,hit_dice:"15d10 + 59",speed:"30 ft.",stats:[18,8,18,7,10,3],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"charmed, exhaustion, frightened, paralyzed, poisoned",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 10",languages:"understands commands given in any language but can't speak",cr:"7",bestiary:!0,traits:[{name:"Bound",desc:"The shield guardian is magically bound to an amulet. As long as the guardian and its amulet are on the same plane of existence, the amulet's wearer can telepathically call the guardian to travel to it, and the guardian knows the distance and direction to the amulet. If the guardian is within 60 feet of the amulet's wearer, half of any damage the wearer takes (rounded up) is transferred to the guardian.",attack_bonus:0},{name:"Regeneration",desc:"The shield guardian regains 10 hit points at the start of its turn if it has at least 1 hit. point.",attack_bonus:0},{name:"Spell Storing",desc:"A spellcaster who wears the shield guardian's amulet can cause the guardian to store one spell of 4th level or lower. To do so, the wearer must cast the spell on the guardian. The spell has no effect but is stored within the guardian. When commanded to do so by the wearer or when a situation arises that was predefined by the spellcaster, the guardian casts the stored spell with any parameters set by the original caster, requiring no components. When the spell is cast or a new spell is stored, any previously stored spell is lost.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The guardian makes two fist attacks.",attack_bonus:0},{name:"Fist",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4}],reactions:[{name:"Shield",desc:"When a creature makes an attack against the wearer of the guardian's amulet, the guardian grants a +2 bonus to the wearer's AC if the guardian is within 5 feet of the wearer.",attack_bonus:0}]},{name:"Shrieker",source:"5e SRD",size:"Medium",type:"plant",subtype:"",alignment:"unaligned",ac:5,hp:13,hit_dice:"3d8 + -1",speed:"0 ft.",stats:[1,1,10,1,3,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"blinded, deafened, frightened",senses:"blindsight 30 ft. (blind beyond this radius), passive Perception 6",languages:"",cr:"0",bestiary:!0,traits:[{name:"False Appearance",desc:"While the shrieker remains motionless, it is indistinguishable from an ordinary fungus.",attack_bonus:0}],actions:[{name:"Shriek",desc:"When bright light or a creature is within 30 feet of the shrieker, it emits a shriek audible within 300 feet of it. The shrieker continues to shriek until the disturbance moves out of range and for 1d4 of the shrieker's turns afterward",attack_bonus:0}]},{name:"Silver Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"lawful good",ac:17,hp:45,hit_dice:"6d8 + 18",speed:"30 ft., fly 60 ft.",stats:[19,10,17,12,11,15],saves:[{dexterity:2},{constitution:5},{wisdom:2},{charisma:4}],skillsaves:[{perception:4},{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"2",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 9 (1d10 + 4) piercing damage.",attack_bonus:6,damage_dice:"1d10",damage_bonus:4},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Cold Breath. The dragon exhales an icy blast in a 15-foot cone. Each creature in that area must make a DC 13 Constitution saving throw, taking 18 (4d8) cold damage on a failed save, or half as much damage on a successful one. +Paralyzing Breath. The dragon exhales paralyzing gas in a 15-foot cone. Each creature in that area must succeed on a DC 13 Constitution saving throw or be paralyzed for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"4d8"}]},{name:"Skeleton",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"lawful evil",ac:13,hp:13,hit_dice:"2d8 + 4",speed:"30 ft.",stats:[10,14,15,6,8,5],damage_vulnerabilities:"bludgeoning",damage_resistances:"",damage_immunities:"",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 9",languages:"understands all languages it spoke in life but can't speak",cr:"1/4",bestiary:!0,actions:[{name:"Shortsword",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Shortbow",desc:"Ranged Weapon Attack: +4 to hit, range 80/320 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Solar",source:"5e SRD",size:"Large",type:"celestial",subtype:"",alignment:"lawful good",ac:21,hp:243,hit_dice:"18d10 + 144",speed:"50 ft., fly 150 ft.",stats:[26,22,26,25,25,30],saves:[{intelligence:14},{wisdom:14},{charisma:17}],skillsaves:[{perception:14}],damage_vulnerabilities:"",damage_resistances:"radiant; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"necrotic, poison",condition_immunities:"charmed, exhaustion, frightened, poisoned",senses:"truesight 120 ft., passive Perception 24",languages:"all, telepathy 120 ft.",cr:"21",bestiary:!0,traits:[{name:"Angelic Weapons",desc:"The solar's weapon attacks are magical. When the solar hits with any weapon, the weapon deals an extra 6d8 radiant damage (included in the attack).",attack_bonus:0},{name:"Divine Awareness",desc:"The solar knows if it hears a lie.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The solar's spell casting ability is Charisma (spell save DC 25). It can innately cast the following spells, requiring no material components: +At will: detect evil and good, invisibility (self only) +3/day each: blade barrier, dispel evil and good, resurrection +1/day each: commune, control weather`,attack_bonus:0},{name:"Magic Resistance",desc:"The solar has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The solar makes two greatsword attacks.",attack_bonus:0},{name:"Greatsword",desc:"Melee Weapon Attack: +15 to hit, reach 5 ft., one target. Hit: 22 (4d6 + 8) slashing damage plus 27 (6d8) radiant damage.",attack_bonus:15,damage_dice:"4d6 + 6d8",damage_bonus:8},{name:"Slaying Longbow",desc:"Ranged Weapon Attack: +13 to hit, range 150/600 ft., one target. Hit: 15 (2d8 + 6) piercing damage plus 27 (6d8) radiant damage. If the target is a creature that has 190 hit points or fewer, it must succeed on a DC 15 Constitution saving throw or die.",attack_bonus:13,damage_dice:"2d8 + 6d8",damage_bonus:6},{name:"Flying Sword",desc:"The solar releases its greatsword to hover magically in an unoccupied space within 5 ft. of it. If the solar can see the sword, the solar can mentally command it as a bonus action to fly up to 50 ft. and either make one attack against a target or return to the solar's hands. If the hovering sword is targeted by any effect, the solar is considered to be holding it. The hovering sword falls if the solar dies.",attack_bonus:0},{name:"Healing Touch (4/Day)",desc:"The solar touches another creature. The target magically regains 40 (8d8 + 4) hit points and is freed from any curse, disease, poison, blindness, or deafness.",attack_bonus:0}],legendary_actions:[{name:"Teleport",desc:"The solar magically teleports, along with any equipment it is wearing or carrying, up to 120 ft. to an unoccupied space it can see.",attack_bonus:0},{name:"Searing Burst (Costs 2 Actions)",desc:"The solar emits magical, divine energy. Each creature of its choice in a 10 -foot radius must make a DC 23 Dexterity saving throw, taking 14 (4d6) fire damage plus 14 (4d6) radiant damage on a failed save, or half as much damage on a successful one.",attack_bonus:0},{name:"Blinding Gaze (Costs 3 Actions)",desc:"The solar targets one creature it can see within 30 ft. of it. If the target can see it, the target must succeed on a DC 15 Constitution saving throw or be blinded until magic such as the lesser restoration spell removes the blindness.",attack_bonus:0}]},{name:"Specter",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"chaotic evil",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"0 ft., fly 50 ft. (hover)",stats:[1,14,11,10,10,11],damage_vulnerabilities:"",damage_resistances:"acid, cold, fire, lightning, thunder; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"necrotic, poison",condition_immunities:"charmed, exhaustion, grappled, paralyzed, petrified, poisoned, prone, restrained, unconscious",senses:"darkvision 60 ft., passive Perception 10",languages:"understands all languages it knew in life but can't speak",cr:"1",bestiary:!0,traits:[{name:"Incorporeal Movement",desc:"The specter can move through other creatures and objects as if they were difficult terrain. It takes 5 (1d10) force damage if it ends its turn inside an object.",attack_bonus:0},{name:"Sunlight Sensitivity",desc:"While in sunlight, the specter has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Life Drain",desc:"Melee Spell Attack: +4 to hit, reach 5 ft., one creature. Hit: 10 (3d6) necrotic damage. The target must succeed on a DC 10 Constitution saving throw or its hit point maximum is reduced by an amount equal to the damage taken. This reduction lasts until the creature finishes a long rest. The target dies if this effect reduces its hit point maximum to 0.",attack_bonus:4,damage_dice:"3d6"}]},{name:"Spider",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:1,hit_dice:"1d4 + -2",speed:"20 ft., climb 20 ft.",stats:[2,14,8,1,10,2],skillsaves:[{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 30 ft., passive Perception 12",languages:"",cr:"0",bestiary:!0,traits:[{name:"Spider Climb",desc:"The spider can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Web Sense",desc:"While in contact with a web, the spider knows the exact location of any other creature in contact with the same web.",attack_bonus:0},{name:"Web Walker",desc:"The spider ignores movement restrictions caused by webbing.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 1 piercing damage, and the target must succeed on a DC 9 Constitution saving throw or take 2 (1d4) poison damage.",attack_bonus:4,damage_bonus:1}]},{name:"Spirit Naga",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"chaotic evil",ac:15,hp:75,hit_dice:"10d10 + 20",speed:"40 ft.",stats:[18,17,14,16,15,16],saves:[{dexterity:6},{constitution:5},{wisdom:5},{charisma:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"charmed, poisoned",senses:"darkvision 60 ft., passive Perception 12",languages:"Abyssal, Common",cr:"8",bestiary:!0,traits:[{name:"Rejuvenation",desc:"If it dies, the naga returns to life in 1d6 days and regains all its hit points. Only a wish spell can prevent this trait from functioning.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one creature. Hit: 7 (1d6 + 4) piercing damage, and the target must make a DC 13 Constitution saving throw, taking 31 (7d8) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:7,damage_dice:"1d6",damage_bonus:4}],spells:["The naga is a 10th-level spellcaster. Its spellcasting ability is Intelligence (spell save DC 14, +6 to hit with spell attacks), and it needs only verbal components to cast its spells. It has the following wizard spells prepared:",{"Cantrips (at will)":"mage hand, minor illusion, ray of frost"},{"1st level (4 slots)":"charm person, detect magic, sleep"},{"2nd level (3 slots)":"detect thoughts, hold person"},{"3rd level (3 slots)":"lightning bolt, water breathing"},{"4th level (3 slots)":"blight, dimension door"},{"5th level (2 slots)":"dominate person"}]},{name:"Sprite",source:"5e SRD",size:"Tiny",type:"fey",subtype:"",alignment:"neutral good",ac:15,hp:2,hit_dice:"1d4 + -1",speed:"10 ft., fly 40 ft.",stats:[3,18,10,14,13,11],skillsaves:[{perception:3},{stealth:8}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"Common, Elvish, Sylvan",cr:"1/4",bestiary:!0,actions:[{name:"Longsword",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 1 slashing damage.",attack_bonus:2,damage_bonus:1},{name:"Shortbow",desc:"Ranged Weapon Attack: +6 to hit, range 40/160 ft., one target. Hit: 1 piercing damage, and the target must succeed on a DC 10 Constitution saving throw or become poisoned for 1 minute. If its saving throw result is 5 or lower, the poisoned target falls unconscious for the same duration, or until it takes damage or another creature takes an action to shake it awake.",attack_bonus:6,damage_bonus:1},{name:"Heart Sight",desc:"The sprite touches a creature and magically knows the creature's current emotional state. If the target fails a DC 10 Charisma saving throw, the sprite also knows the creature's alignment. Celestials, fiends, and undead automatically fail the saving throw.",attack_bonus:0},{name:"Invisibility",desc:"The sprite magically turns invisible until it attacks or casts a spell, or until its concentration ends (as if concentrating on a spell). Any equipment the sprite wears or carries is invisible with it.",attack_bonus:0}]},{name:"Spy",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:12,hp:27,hit_dice:"6d8",speed:"30 ft.",stats:[10,15,10,12,14,16],skillsaves:[{deception:5},{insight:4},{investigation:5},{perception:6},{persuasion:5},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 16",languages:"any two languages",cr:"1",bestiary:!0,traits:[{name:"Cunning Action",desc:"On each of its turns, the spy can use a bonus action to take the Dash, Disengage, or Hide action.",attack_bonus:0},{name:"Sneak Attack (1/Turn)",desc:"The spy deals an extra 7 (2d6) damage when it hits a target with a weapon attack and has advantage on the attack roll, or when the target is within 5 ft. of an ally of the spy that isn't incapacitated and the spy doesn't have disadvantage on the attack roll.",attack_bonus:0,damage_dice:"2d6"}],actions:[{name:"Multiattack",desc:"The spy makes two melee attacks.",attack_bonus:0},{name:"Shortsword",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Hand Crossbow",desc:"Ranged Weapon Attack: +4 to hit, range 30/120 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Steam Mephit",source:"5e SRD",size:"Small",type:"elemental",subtype:"",alignment:"neutral evil",ac:10,hp:21,hit_dice:"6d6",speed:"30 ft., fly 30 ft.",stats:[5,11,10,11,10,12],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire, poison",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 10",languages:"Aquan, Ignan",cr:"1/4",bestiary:!0,traits:[{name:"Death Burst",desc:"When the mephit dies, it explodes in a cloud of steam. Each creature within 5 ft. of the mephit must succeed on a DC 10 Dexterity saving throw or take 4 (1d8) fire damage.",attack_bonus:0,damage_dice:"1d8"},{name:"Innate Spellcasting (1/Day)",desc:"The mephit can innately cast blur, requiring no material components. Its innate spellcasting ability is Charisma.",attack_bonus:0}],actions:[{name:"Claws",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one creature. Hit: 2 (1d4) slashing damage plus 2 (1d4) fire damage.",attack_bonus:2,damage_dice:"2d4"},{name:"Steam Breath (Recharge 6)",desc:"The mephit exhales a 15-foot cone of scalding steam. Each creature in that area must succeed on a DC 10 Dexterity saving throw, taking 4 (1d8) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0},{name:"Variant: Summon Mephits (1/Day)",desc:"The mephit has a 25 percent chance of summoning 1d4 mephits of its kind. A summoned mephit appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other mephits. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.",attack_bonus:0}]},{name:"Stirge",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:14,hp:2,hit_dice:"1d4 + -1",speed:"10 ft., fly 40 ft.",stats:[4,16,11,2,8,6],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 9",languages:"",cr:"1/8",bestiary:!0,actions:[{name:"Blood Drain",desc:`Melee Weapon Attack: +5 to hit, reach 5 ft., one creature. Hit: 5 (1d4 + 3) piercing damage, and the stirge attaches to the target. While attached, the stirge doesn't attack. Instead, at the start of each of the stirge's turns, the target loses 5 (1d4 + 3) hit points due to blood loss. +The stirge can detach itself by spending 5 feet of its movement. It does so after it drains 10 hit points of blood from the target or the target dies. A creature, including the target, can use its action to detach the stirge.`,attack_bonus:5,damage_dice:"1d4",damage_bonus:3}]},{name:"Stone Giant",source:"5e SRD",size:"Huge",type:"giant",subtype:"",alignment:"neutral",ac:17,hp:126,hit_dice:"11d12 + 54",speed:"40 ft.",stats:[23,15,20,10,12,9],saves:[{dexterity:5},{constitution:8},{wisdom:4}],skillsaves:[{athletics:12},{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"Giant",cr:"7",bestiary:!0,traits:[{name:"Stone Camouflage",desc:"The giant has advantage on Dexterity (Stealth) checks made to hide in rocky terrain.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The giant makes two greatclub attacks.",attack_bonus:0},{name:"Greatclub",desc:"Melee Weapon Attack: +9 to hit, reach 15 ft., one target. Hit: 19 (3d8 + 6) bludgeoning damage.",attack_bonus:9,damage_dice:"3d8",damage_bonus:6},{name:"Rock",desc:"Ranged Weapon Attack: +9 to hit, range 60/240 ft., one target. Hit: 28 (4d10 + 6) bludgeoning damage. If the target is a creature, it must succeed on a DC 17 Strength saving throw or be knocked prone.",attack_bonus:9,damage_dice:"4d10",damage_bonus:6}],reactions:[{name:"Rock Catching",desc:"If a rock or similar object is hurled at the giant, the giant can, with a successful DC 10 Dexterity saving throw, catch the missile and take no bludgeoning damage from it.",attack_bonus:0}]},{name:"Stone Golem",source:"5e SRD",size:"Large",type:"construct",subtype:"",alignment:"unaligned",ac:17,hp:178,hit_dice:"17d10 + 84",speed:"30 ft.",stats:[22,9,20,3,11,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison, psychic; bludgeoning, piercing, and slashing from nonmagical weapons that aren't adamantine",condition_immunities:"charmed, exhaustion, frightened, paralyzed, petrified, poisoned",senses:"darkvision 120 ft., passive Perception 10",languages:"understands the languages of its creator but can't speak",cr:"10",bestiary:!0,traits:[{name:"Immutable Form",desc:"The golem is immune to any spell or effect that would alter its form.",attack_bonus:0},{name:"Magic Resistance",desc:"The golem has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The golem's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The golem makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 19 (3d8 + 6) bludgeoning damage.",attack_bonus:10,damage_dice:"3d8",damage_bonus:6},{name:"Slow (Recharge 5-6)",desc:"The golem targets one or more creatures it can see within 10 ft. of it. Each target must make a DC 17 Wisdom saving throw against this magic. On a failed save, a target can't use reactions, its speed is halved, and it can't make more than one attack on its turn. In addition, the target can take either an action or a bonus action on its turn, not both. These effects last for 1 minute. A target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.",attack_bonus:0}]},{name:"Storm Giant",source:"5e SRD",size:"Huge",type:"giant",subtype:"",alignment:"chaotic good",ac:16,hp:230,hit_dice:"20d12 + 100",speed:"50 ft., swim 50 ft.",stats:[29,14,20,16,18,18],saves:[{strength:14},{constitution:10},{wisdom:9},{charisma:9}],skillsaves:[{arcana:8},{athletics:14},{history:8},{perception:9}],damage_vulnerabilities:"",damage_resistances:"cold",damage_immunities:"lightning, thunder",condition_immunities:"",senses:"passive Perception 19",languages:"Common, Giant",cr:"13",bestiary:!0,traits:[{name:"Amphibious",desc:"The giant can breathe air and water.",attack_bonus:0},{name:"Innate Spellcasting",desc:`The giant's innate spellcasting ability is Charisma (spell save DC 17). It can innately cast the following spells, requiring no material components: + +At will: detect magic, feather fall, levitate, light +3/day each: control weather, water breathing`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The giant makes two greatsword attacks.",attack_bonus:0},{name:"Greatsword",desc:"Melee Weapon Attack: +14 to hit, reach 10 ft., one target. Hit: 30 (6d6 + 9) slashing damage.",attack_bonus:14,damage_dice:"6d6",damage_bonus:9},{name:"Rock",desc:"Ranged Weapon Attack: +14 to hit, range 60/240 ft., one target. Hit: 35 (4d12 + 9) bludgeoning damage.",attack_bonus:14,damage_dice:"4d12",damage_bonus:9},{name:"Lightning Strike (Recharge 5-6)",desc:"The giant hurls a magical lightning bolt at a point it can see within 500 feet of it. Each creature within 10 feet of that point must make a DC 17 Dexterity saving throw, taking 54 (12d8) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"12d8"}]},{name:"Succubus/Incubus",source:"5e SRD",size:"Medium",type:"fiend",subtype:"shapechanger",alignment:"neutral evil",ac:15,hp:66,hit_dice:"12d8 + 12",speed:"30 ft., fly 60 ft.",stats:[8,17,13,15,12,20],skillsaves:[{deception:9},{insight:5},{perception:5},{persuasion:9},{stealth:7}],damage_vulnerabilities:"",damage_resistances:"cold, fire, lightning, poison; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 15",languages:"Abyssal, Common, Infernal, telepathy 60 ft.",cr:"4",bestiary:!0,traits:[{name:"Telepathic Bond",desc:"The fiend ignores the range restriction on its telepathy when communicating with a creature it has charmed. The two don't even need to be on the same plane of existence.",attack_bonus:0},{name:"Shapechanger",desc:"The fiend can use its action to polymorph into a Small or Medium humanoid, or back into its true form. Without wings, the fiend loses its flying speed. Other than its size and speed, its statistics are the same in each form. Any equipment it is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0}],actions:[{name:"Claw (Fiend Form Only)",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Charm",desc:`One humanoid the fiend can see within 30 feet of it must succeed on a DC 15 Wisdom saving throw or be magically charmed for 1 day. The charmed target obeys the fiend's verbal or telepathic commands. If the target suffers any harm or receives a suicidal command, it can repeat the saving throw, ending the effect on a success. If the target successfully saves against the effect, or if the effect on it ends, the target is immune to this fiend's Charm for the next 24 hours. +The fiend can have only one target charmed at a time. If it charms another, the effect on the previous target ends.`,attack_bonus:0},{name:"Draining Kiss",desc:"The fiend kisses a creature charmed by it or a willing creature. The target must make a DC 15 Constitution saving throw against this magic, taking 32 (5d10 + 5) psychic damage on a failed save, or half as much damage on a successful one. The target's hit point maximum is reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0.",attack_bonus:0,damage_dice:"5d10",damage_bonus:5},{name:"Etherealness",desc:"The fiend magically enters the Ethereal Plane from the Material Plane, or vice versa.",attack_bonus:0}]},{name:"Swarm of Bats",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"0 ft., fly 30 ft.",stats:[5,15,10,2,12,4],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"blindsight 60 ft., passive Perception 11",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Echolocation",desc:"The swarm can't use its blindsight while deafened.",attack_bonus:0},{name:"Keen Hearing",desc:"The swarm has advantage on Wisdom (Perception) checks that rely on hearing.",attack_bonus:0},{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny bat. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +4 to hit, reach 0 ft., one creature in the swarm's space. Hit: 5 (2d4) piercing damage, or 2 (1d4) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:4,damage_dice:"2d4"}]},{name:"Swarm of Beetles",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"20 ft., burrow 5 ft., climb 20 ft.",stats:[3,13,10,1,7,1],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"blindsight 10 ft., passive Perception 8",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny insect. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +3 to hit, reach 0 ft., one target in the swarm's space. Hit: 10 (4d4) piercing damage, or 5 (2d4) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:3,damage_dice:"4d4"}]},{name:"Swarm of Centipedes",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"20 ft., climb 20 ft.",stats:[3,13,10,1,7,1],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"blindsight 10 ft., passive Perception 8",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny insect. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Bites",desc:`Melee Weapon Attack: +3 to hit, reach 0 ft., one target in the swarm's space. Hit: 10 (4d4) piercing damage, or 5 (2d4) piercing damage if the swarm has half of its hit points or fewer. +A creature reduced to 0 hit points by a swarm of centipedes is stable but poisoned for 1 hour, even after regaining hit points, and paralyzed while poisoned in this way.`,attack_bonus:3,damage_dice:"4d4"}]},{name:"Swarm of Insects",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"20 ft., climb 20 ft.",stats:[3,13,10,1,7,1],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"blindsight 10 ft., passive Perception 8",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny insect. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +3 to hit, reach 0 ft., one target in the swarm's space. Hit: 10 (4d4) piercing damage, or 5 (2d4) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:3,damage_dice:"4d4"}]},{name:"Swarm of Poisonous Snakes",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:14,hp:36,hit_dice:"8d8",speed:"30 ft., swim 30 ft.",stats:[8,18,11,1,10,3],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"blindsight 10 ft., passive Perception 10",languages:"",cr:"2",bestiary:!0,traits:[{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny snake. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +6 to hit, reach 0 ft., one creature in the swarm's space. Hit: 7 (2d6) piercing damage, or 3 (1d6) piercing damage if the swarm has half of its hit points or fewer. The target must make a DC 10 Constitution saving throw, taking 14 (4d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:6,damage_dice:"2d6"}]},{name:"Swarm of Quippers",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:13,hp:28,hit_dice:"8d8 + -8",speed:"0 ft., swim 40 ft.",stats:[13,16,9,1,7,2],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"darkvision 60 ft., passive Perception 8",languages:"",cr:"1",bestiary:!0,traits:[{name:"Blood Frenzy",desc:"The swarm has advantage on melee attack rolls against any creature that doesn't have all its hit points.",attack_bonus:0},{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny quipper. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0},{name:"Water Breathing",desc:"The swarm can breathe only underwater.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +5 to hit, reach 0 ft., one creature in the swarm's space. Hit: 14 (4d6) piercing damage, or 7 (2d6) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:5,damage_dice:"4d6"}]},{name:"Swarm of Rats",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:10,hp:24,hit_dice:"7d8 + -8",speed:"30 ft.",stats:[9,11,9,2,10,3],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"darkvision 30 ft., passive Perception 10",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Keen Smell",desc:"The swarm has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny rat. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +2 to hit, reach 0 ft., one target in the swarm's space. Hit: 7 (2d6) piercing damage, or 3 (1d6) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:2,damage_dice:"2d6"}]},{name:"Swarm of Ravens",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:12,hp:24,hit_dice:"7d8 + -8",speed:"10 ft., fly 50 ft.",stats:[6,14,8,3,12,6],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"passive Perception 15",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny raven. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Beaks",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target in the swarm's space. Hit: 7 (2d6) piercing damage, or 3 (1d6) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:4,damage_dice:"2d6"}]},{name:"Swarm of Spiders",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"20 ft., climb 20 ft.",stats:[3,13,10,1,7,1],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, paralyzed, petrified, prone, restrained, stunned",senses:"blindsight 10 ft., passive Perception 8",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny insect. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0},{name:"Spider Climb",desc:"The swarm can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Web Sense",desc:"While in contact with a web, the swarm knows the exact location of any other creature in contact with the same web.",attack_bonus:0},{name:"Web Walker",desc:"The swarm ignores movement restrictions caused by webbing.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +3 to hit, reach 0 ft., one target in the swarm's space. Hit: 10 (4d4) piercing damage, or 5 (2d4) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:3,damage_dice:"4d4"}]},{name:"Swarm of Wasps",source:"5e SRD",size:"Medium",type:"swarm of Tiny beasts",subtype:"",alignment:"unaligned",ac:12,hp:22,hit_dice:"5d8 + -1",speed:"5 ft., fly 30 ft.",stats:[3,13,10,1,7,1],damage_vulnerabilities:"",damage_resistances:"bludgeoning, piercing, slashing",damage_immunities:"",condition_immunities:"charmed, frightened, grappled, paralyzed, petrified, prone, restrained, stunned",senses:"blindsight 10 ft., passive Perception 8",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Swarm",desc:"The swarm can occupy another creature's space and vice versa, and the swarm can move through any opening large enough for a Tiny insect. The swarm can't regain hit points or gain temporary hit points.",attack_bonus:0}],actions:[{name:"Bites",desc:"Melee Weapon Attack: +3 to hit, reach 0 ft., one target in the swarm's space. Hit: 10 (4d4) piercing damage, or 5 (2d4) piercing damage if the swarm has half of its hit points or fewer.",attack_bonus:3,damage_dice:"4d4"}]},{name:"Tarrasque",source:"5e SRD",size:"Gargantuan",type:"monstrosity",subtype:"titan",alignment:"unaligned",ac:25,hp:676,hit_dice:"33d20 + 329",speed:"40 ft.",stats:[30,11,30,3,11,11],saves:[{intelligence:5},{wisdom:9},{charisma:9}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire, poison; bludgeoning, piercing, and slashing from nonmagical weapons",condition_immunities:"charmed, frightened, paralyzed, poisoned",senses:"blindsight 120 ft., passive Perception 10",languages:"",cr:"30",bestiary:!0,traits:[{name:"Legendary Resistance (3/Day)",desc:"If the tarrasque fails a saving throw, it can choose to succeed instead.",attack_bonus:0},{name:"Magic Resistance",desc:"The tarrasque has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Reflective Carapace",desc:"Any time the tarrasque is targeted by a magic missile spell, a line spell, or a spell that requires a ranged attack roll, roll a d6. On a 1 to 5, the tarrasque is unaffected. On a 6, the tarrasque is unaffected, and the effect is reflected back at the caster as though it originated from the tarrasque, turning the caster into the target.",attack_bonus:0},{name:"Siege Monster",desc:"The tarrasque deals double damage to objects and structures.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The tarrasque can use its Frightful Presence. It then makes five attacks: one with its bite, two with its claws, one with its horns, and one with its tai l. It can use its Swallow instead of its bite.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +19 to hit, reach 10 ft., one target. Hit: 36 (4d12 + 10) piercing damage. If the target is a creature, it is grappled (escape DC 20). Until this grapple ends, the target is restrained, and the tarrasque can't bite another target.",attack_bonus:19,damage_dice:"4d12",damage_bonus:10},{name:"Claw",desc:"Melee Weapon Attack: +19 to hit, reach 15 ft., one target. Hit: 28 (4d8 + 10) slashing damage.",attack_bonus:19,damage_dice:"4d8",damage_bonus:10},{name:"Horns",desc:"Melee Weapon Attack: +19 to hit, reach 10 ft., one target. Hit: 32 (4d10 + 10) piercing damage.",attack_bonus:19,damage_dice:"4d10",damage_bonus:10},{name:"Tail",desc:"Melee Weapon Attack: +19 to hit, reach 20 ft., one target. Hit: 24 (4d6 + 10) bludgeoning damage. If the target is a creature, it must succeed on a DC 20 Strength saving throw or be knocked prone.",attack_bonus:19,damage_dice:"4d6",damage_bonus:10},{name:"Frightful Presence",desc:"Each creature of the tarrasque's choice within 120 feet of it and aware of it must succeed on a DC 17 Wisdom saving throw or become frightened for 1 minute. A creature can repeat the saving throw at the end of each of its turns, with disadvantage if the tarrasque is within line of sight, ending the effect on itself on a success. If a creature's saving throw is successful or the effect ends for it, the creature is immune to the tarrasque's Frightful Presence for the next 24 hours.",attack_bonus:0},{name:"Swallow",desc:`The tarrasque makes one bite attack against a Large or smaller creature it is grappling. If the attack hits, the target takes the bite's damage, the target is swallowed, and the grapple ends. While swallowed, the creature is blinded and restrained, it has total cover against attacks and other effects outside the tarrasque, and it takes 56 (16d6) acid damage at the start of each of the tarrasque's turns. +If the tarrasque takes 60 damage or more on a single turn from a creature inside it, the tarrasque must succeed on a DC 20 Constitution saving throw at the end of that turn or regurgitate all swallowed creatures, which fall prone in a space within 10 feet of the tarrasque. If the tarrasque dies, a swallowed creature is no longer restrained by it and can escape from the corpse by using 30 feet of movement, exiting prone.`,attack_bonus:0}],legendary_actions:[{name:"Attack",desc:"The tarrasque makes one claw attack or tail attack.",attack_bonus:0},{name:"Move",desc:"The tarrasque moves up to half its speed.",attack_bonus:0},{name:"Chomp (Costs 2 Actions)",desc:"The tarrasque makes one bite attack or uses its Swallow.",attack_bonus:0}]},{name:"Thug",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any non-good alignment",ac:11,hp:32,hit_dice:"5d8 + 9",speed:"30 ft.",stats:[15,11,14,10,10,11],skillsaves:[{intimidation:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any one language (usually Common)",cr:"1/2",bestiary:!0,traits:[{name:"Pack Tactics",desc:"The thug has advantage on an attack roll against a creature if at least one of the thug's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The thug makes two melee attacks.",attack_bonus:0},{name:"Mace",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 5 (1d6 + 2) bludgeoning damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Heavy Crossbow",desc:"Ranged Weapon Attack: +2 to hit, range 100/400 ft., one target. Hit: 5 (1d10) piercing damage.",attack_bonus:2,damage_dice:"1d10"}]},{name:"Tiger",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:12,hp:37,hit_dice:"5d10 + 9",speed:"40 ft.",stats:[17,15,14,3,12,8],skillsaves:[{perception:3},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"",cr:"1",bestiary:!0,traits:[{name:"Keen Smell",desc:"The tiger has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Pounce",desc:"If the tiger moves at least 20 ft. straight toward a creature and then hits it with a claw attack on the same turn, that target must succeed on a DC 13 Strength saving throw or be knocked prone. If the target is prone, the tiger can make one bite attack against it as a bonus action.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (1d10 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d10",damage_bonus:3},{name:"Claw",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) slashing damage.",attack_bonus:0}]},{name:"Treant",source:"5e SRD",size:"Huge",type:"plant",subtype:"",alignment:"chaotic good",ac:16,hp:138,hit_dice:"12d12 + 60",speed:"30 ft.",stats:[23,8,21,12,16,12],damage_vulnerabilities:"fire",damage_resistances:"bludgeoning, piercing",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"Common, Druidic, Elvish, Sylvan",cr:"9",bestiary:!0,traits:[{name:"False Appearance",desc:"While the treant remains motionless, it is indistinguishable from a normal tree.",attack_bonus:0},{name:"Siege Monster",desc:"The treant deals double damage to objects and structures.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The treant makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 16 (3d6 + 6) bludgeoning damage.",attack_bonus:10,damage_dice:"3d6",damage_bonus:6},{name:"Rock",desc:"Ranged Weapon Attack: +10 to hit, range 60/180 ft., one target. Hit: 28 (4d10 + 6) bludgeoning damage.",attack_bonus:10,damage_dice:"4d10",damage_bonus:6},{name:"Animate Trees (1/Day)",desc:"The treant magically animates one or two trees it can see within 60 feet of it. These trees have the same statistics as a treant, except they have Intelligence and Charisma scores of 1, they can't speak, and they have only the Slam action option. An animated tree acts as an ally of the treant. The tree remains animate for 1 day or until it dies; until the treant dies or is more than 120 feet from the tree; or until the treant takes a bonus action to turn it back into an inanimate tree. The tree then takes root if possible.",attack_bonus:0}]},{name:"Tribal Warrior",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:12,hp:11,hit_dice:"2d8 + 2",speed:"30 ft.",stats:[13,11,12,8,11,8],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"any one language",cr:"1/8",bestiary:!0,traits:[{name:"Pack Tactics",desc:"The warrior has advantage on an attack roll against a creature if at least one of the warrior's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Spear",desc:"Melee or Ranged Weapon Attack: +3 to hit, reach 5 ft. or range 20/60 ft., one target. Hit: 4 (1d6 + 1) piercing damage, or 5 (1d8 + 1) piercing damage if used with two hands to make a melee attack.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]},{name:"Triceratops",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:95,hit_dice:"10d12 + 30",speed:"50 ft.",stats:[22,9,17,2,11,5],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 10",languages:"",cr:"5",bestiary:!0,traits:[{name:"Trampling Charge",desc:"If the triceratops moves at least 20 ft. straight toward a creature and then hits it with a gore attack on the same turn, that target must succeed on a DC 13 Strength saving throw or be knocked prone. If the target is prone, the triceratops can make one stomp attack against it as a bonus action.",attack_bonus:0}],actions:[{name:"Gore",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 24 (4d8 + 6) piercing damage.",attack_bonus:9,damage_dice:"4d8",damage_bonus:6},{name:"Stomp",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one prone creature. Hit: 22 (3d10 + 6) bludgeoning damage",attack_bonus:9,damage_dice:"3d10",damage_bonus:6}]},{name:"Troll",source:"5e SRD",size:"Large",type:"giant",subtype:"",alignment:"chaotic evil",ac:15,hp:84,hit_dice:"8d10 + 40",speed:"30 ft.",stats:[18,13,20,7,9,7],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 12",languages:"Giant",cr:"5",bestiary:!0,traits:[{name:"Keen Smell",desc:"The troll has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0},{name:"Regeneration",desc:"The troll regains 10 hit points at the start of its turn. If the troll takes acid or fire damage, this trait doesn't function at the start of the troll's next turn. The troll dies only if it starts its turn with 0 hit points and doesn't regenerate.",attack_bonus:0},{name:"Variant: Loathsome Limbs",desc:`Whenever the troll takes at least 15 slashing damage at one time, roll a d20 to determine what else happens to it: +1-10: Nothing else happens. +11-14: One leg is severed from the troll if it has any legs left. +15- 18: One arm is severed from the troll if it has any arms left. +19-20: The troll is decapitated, but the troll dies only if it can't regenerate. If it dies, so does the severed head. +If the troll finishes a short or long rest without reattaching a severed limb or head, the part regrows. At that point, the severed part dies. Until then, a severed part acts on the troll's initiative and has its own action and movement. A severed part has AC 13, 10 hit points, and the troll's Regeneration trait. +A severed leg is unable to attack and has a speed of 5 feet. +A severed arm has a speed of 5 feet and can make one claw attack on its turn, with disadvantage on the attack roll unless the troll can see the arm and its target. Each time the troll loses an arm, it loses a claw attack. +If its head is severed, the troll loses its bite attack and its body is blinded unless the head can see it. The severed head has a speed of 0 feet and the troll's Keen Smell trait. It can make a bite attack but only against a target in its space. +The troll's speed is halved if it's missing a leg. If it loses both legs, it falls prone. If it has both arms, it can crawl. With only one arm, it can still crawl, but its speed is halved. With no arms or legs, its speed is 0, and it can't benefit from bonuses to speed.`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The troll makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 7 (1d6 + 4) piercing damage.",attack_bonus:7,damage_dice:"1d6",damage_bonus:4},{name:"Claw",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4}]},{name:"Tyrannosaurus Rex",source:"5e SRD",size:"Huge",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:136,hit_dice:"13d12 + 51",speed:"50 ft.",stats:[25,10,19,2,12,9],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 14",languages:"",cr:"8",bestiary:!0,actions:[{name:"Multiattack",desc:"The tyrannosaurus makes two attacks: one with its bite and one with its tail. It can't make both attacks against the same target.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 33 (4d12 + 7) piercing damage. If the target is a Medium or smaller creature, it is grappled (escape DC 17). Until this grapple ends, the target is restrained, and the tyrannosaurus can't bite another target.",attack_bonus:10,damage_dice:"4d12",damage_bonus:7},{name:"Tail",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 20 (3d8 + 7) bludgeoning damage.",attack_bonus:10,damage_dice:"3d8",damage_bonus:7}]},{name:"Unicorn",source:"5e SRD",size:"Large",type:"celestial",subtype:"",alignment:"lawful good",ac:12,hp:67,hit_dice:"9d10 + 17",speed:"50 ft.",stats:[18,14,15,11,17,16],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"charmed, paralyzed, poisoned",senses:"darkvision 60 ft., passive Perception 13",languages:"Celestial, Elvish, Sylvan, telepathy 60 ft.",cr:"5",bestiary:!0,traits:[{name:"Charge",desc:"If the unicorn moves at least 20 ft. straight toward a target and then hits it with a horn attack on the same turn, the target takes an extra 9 (2d8) piercing damage. If the target is a creature, it must succeed on a DC 15 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d8"},{name:"Innate Spellcasting",desc:`The unicorn's innate spellcasting ability is Charisma (spell save DC 14). The unicorn can innately cast the following spells, requiring no components: + +At will: detect evil and good, druidcraft, pass without trace +1/day each: calm emotions, dispel evil and good, entangle`,attack_bonus:0},{name:"Magic Resistance",desc:"The unicorn has advantage on saving throws against spells and other magical effects.",attack_bonus:0},{name:"Magic Weapons",desc:"The unicorn's weapon attacks are magical.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The unicorn makes two attacks: one with its hooves and one with its horn.",attack_bonus:0},{name:"Hooves",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft ., one target. Hit: 11 (2d6 + 4) bludgeoning damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Horn",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft ., one target. Hit: 8 (1d8 + 4) piercing damage.",attack_bonus:7,damage_dice:"1d8",damage_bonus:4},{name:"Healing Touch (3/Day)",desc:"The unicorn touches another creature with its horn. The target magically regains 11 (2d8 + 2) hit points. In addition, the touch removes all diseases and neutralizes all poisons afflicting the target.",attack_bonus:0},{name:"Teleport (1/Day)",desc:"The unicorn magically teleports itself and up to three willing creatures it can see within 5 ft. of it, along with any equipment they are wearing or carrying, to a location the unicorn is familiar with, up to 1 mile away.",attack_bonus:0}],legendary_actions:[{name:"Hooves",desc:"The unicorn makes one attack with its hooves.",attack_bonus:0},{name:"Shimmering Shield (Costs 2 Actions)",desc:"The unicorn creates a shimmering, magical field around itself or another creature it can see within 60 ft. of it. The target gains a +2 bonus to AC until the end of the unicorn's next turn.",attack_bonus:0},{name:"Heal Self (Costs 3 Actions)",desc:"The unicorn magically regains 11 (2d8 + 2) hit points.",attack_bonus:0}]},{name:"Vampire",source:"5e SRD",size:"Medium",type:"undead",subtype:"shapechanger",alignment:"lawful evil",ac:16,hp:144,hit_dice:"17d8 + 67",speed:"30 ft.",stats:[18,18,18,17,15,18],saves:[{dexterity:9},{wisdom:7},{charisma:9}],skillsaves:[{perception:7},{stealth:9}],damage_vulnerabilities:"",damage_resistances:"necrotic; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"",condition_immunities:"",senses:"darkvision 120 ft., passive Perception 17",languages:"the languages it knew in life",cr:"13",bestiary:!0,traits:[{name:"Shapechanger",desc:`If the vampire isn't in sun light or running water, it can use its action to polymorph into a Tiny bat or a Medium cloud of mist, or back into its true form. +While in bat form, the vampire can't speak, its walking speed is 5 feet, and it has a flying speed of 30 feet. Its statistics, other than its size and speed, are unchanged. Anything it is wearing transforms with it, but nothing it is carrying does. It reverts to its true form if it dies. +While in mist form, the vampire can't take any actions, speak, or manipulate objects. It is weightless, has a flying speed of 20 feet, can hover, and can enter a hostile creature's space and stop there. In addition, if air can pass through a space, the mist can do so without squeezing, and it can't pass through water. It has advantage on Strength, Dexterity, and Constitution saving throws, and it is immune to all nonmagical damage, except the damage it takes from sunlight.`,attack_bonus:0},{name:"Legendary Resistance (3/Day)",desc:"If the vampire fails a saving throw, it can choose to succeed instead.",attack_bonus:0},{name:"Misty Escape",desc:`When it drops to 0 hit points outside its resting place, the vampire transforms into a cloud of mist (as in the Shapechanger trait) instead of falling unconscious, provided that it isn't in sunlight or running water. If it can't transform, it is destroyed. +While it has 0 hit points in mist form, it can't revert to its vampire form, and it must reach its resting place within 2 hours or be destroyed. Once in its resting place, it reverts to its vampire form. It is then paralyzed until it regains at least 1 hit point. After spending 1 hour in its resting place with 0 hit points, it regains 1 hit point.`,attack_bonus:0},{name:"Regeneration",desc:"The vampire regains 20 hit points at the start of its turn if it has at least 1 hit point and isn't in sunlight or running water. If the vampire takes radiant damage or damage from holy water, this trait doesn't function at the start of the vampire's next turn.",attack_bonus:0},{name:"Spider Climb",desc:"The vampire can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Vampire Weaknesses",desc:`The vampire has the following flaws: +Forbiddance. The vampire can't enter a residence without an invitation from one of the occupants. +Harmed by Running Water. The vampire takes 20 acid damage if it ends its turn in running water. +Stake to the Heart. If a piercing weapon made of wood is driven into the vampire's heart while the vampire is incapacitated in its resting place, the vampire is paralyzed until the stake is removed. +Sunlight Hypersensitivity. The vampire takes 20 radiant damage when it starts its turn in sunlight. While in sunlight, it has disadvantage on attack rolls and ability checks.`,attack_bonus:0}],actions:[{name:"Multiattack (Vampire Form Only)",desc:"The vampire makes two attacks, only one of which can be a bite attack.",attack_bonus:0},{name:"Unarmed Strike (Vampire Form Only)",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one creature. Hit: 8 (1d8 + 4) bludgeoning damage. Instead of dealing damage, the vampire can grapple the target (escape DC 18).",attack_bonus:9,damage_dice:"1d8",damage_bonus:4},{name:"Bite (Bat or Vampire Form Only)",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one willing creature, or a creature that is grappled by the vampire, incapacitated, or restrained. Hit: 7 (1d6 + 4) piercing damage plus 10 (3d6) necrotic damage. The target's hit point maximum is reduced by an amount equal to the necrotic damage taken, and the vampire regains hit points equal to that amount. The reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. A humanoid slain in this way and then buried in the ground rises the following night as a vampire spawn under the vampire's control.",attack_bonus:9,damage_dice:"1d6 + 3d6",damage_bonus:4},{name:"Charm",desc:`The vampire targets one humanoid it can see within 30 ft. of it. If the target can see the vampire, the target must succeed on a DC 17 Wisdom saving throw against this magic or be charmed by the vampire. The charmed target regards the vampire as a trusted friend to be heeded and protected. Although the target isn't under the vampire's control, it takes the vampire's requests or actions in the most favorable way it can, and it is a willing target for the vampire's bit attack. +Each time the vampire or the vampire's companions do anything harmful to the target, it can repeat the saving throw, ending the effect on itself on a success. Otherwise, the effect lasts 24 hours or until the vampire is destroyed, is on a different plane of existence than the target, or takes a bonus action to end the effect.`,attack_bonus:0},{name:"Children of the Night (1/Day)",desc:"The vampire magically calls 2d4 swarms of bats or rats, provided that the sun isn't up. While outdoors, the vampire can call 3d6 wolves instead. The called creatures arrive in 1d4 rounds, acting as allies of the vampire and obeying its spoken commands. The beasts remain for 1 hour, until the vampire dies, or until the vampire dismisses them as a bonus action.",attack_bonus:0}],legendary_actions:[{name:"Move",desc:"The vampire moves up to its speed without provoking opportunity attacks.",attack_bonus:0},{name:"Unarmed Strike",desc:"The vampire makes one unarmed strike.",attack_bonus:0},{name:"Bite (Costs 2 Actions)",desc:"The vampire makes one bite attack.",attack_bonus:0}]},{name:"Vampire Spawn",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"neutral evil",ac:15,hp:82,hit_dice:"11d8 + 32",speed:"30 ft.",stats:[16,16,16,11,10,12],saves:[{dexterity:6},{wisdom:3}],skillsaves:[{perception:3},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"necrotic; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 13",languages:"the languages it knew in life",cr:"5",bestiary:!0,traits:[{name:"Regeneration",desc:"The vampire regains 10 hit points at the start of its turn if it has at least 1 hit point and isn't in sunlight or running water. If the vampire takes radiant damage or damage from holy water, this trait doesn't function at the start of the vampire's next turn.",attack_bonus:0},{name:"Spider Climb",desc:"The vampire can climb difficult surfaces, including upside down on ceilings, without needing to make an ability check.",attack_bonus:0},{name:"Vampire Weaknesses",desc:`The vampire has the following flaws: +Forbiddance. The vampire can't enter a residence without an invitation from one of the occupants. +Harmed by Running Water. The vampire takes 20 acid damage when it ends its turn in running water. +Stake to the Heart. The vampire is destroyed if a piercing weapon made of wood is driven into its heart while it is incapacitated in its resting place. +Sunlight Hypersensitivity. The vampire takes 20 radiant damage when it starts its turn in sunlight. While in sunlight, it has disadvantage on attack rolls and ability checks.`,attack_bonus:0}],actions:[{name:"Multiattack",desc:"The vampire makes two attacks, only one of which can be a bite attack.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one willing creature, or a creature that is grappled by the vampire, incapacitated, or restrained. Hit: 6 (1d6 + 3) piercing damage plus 7 (2d6) necrotic damage. The target's hit point maximum is reduced by an amount equal to the necrotic damage taken, and the vampire regains hit points equal to that amount. The reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0.",attack_bonus:61},{name:"Claws",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one creature. Hit: 8 (2d4 + 3) slashing damage. Instead of dealing damage, the vampire can grapple the target (escape DC 13).",attack_bonus:6,damage_dice:"2d4",damage_bonus:3}]},{name:"Veteran",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"any race",alignment:"any alignment",ac:17,hp:58,hit_dice:"9d8 + 17",speed:"30 ft.",stats:[16,13,14,10,11,10],skillsaves:[{athletics:5},{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 12",languages:"any one language (usually Common)",cr:"3",bestiary:!0,actions:[{name:"Multiattack",desc:"The veteran makes two longsword attacks. If it has a shortsword drawn, it can also make a shortsword attack.",attack_bonus:0},{name:"Longsword",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) slashing damage, or 8 (1d10 + 3) slashing damage if used with two hands.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Shortsword",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) piercing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Heavy Crossbow",desc:"Ranged Weapon Attack: +3 to hit, range 100/400 ft., one target. Hit: 6 (1d10 + 1) piercing damage.",attack_bonus:3,damage_dice:"1d10",damage_bonus:1}]},{name:"Violet Fungus",source:"5e SRD",size:"Medium",type:"plant",subtype:"",alignment:"unaligned",ac:5,hp:18,hit_dice:"4d8",speed:"5 ft.",stats:[3,1,10,1,3,1],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"blinded, deafened, frightened",senses:"blindsight 30 ft. (blind beyond this radius), passive Perception 6",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"False Appearance",desc:"While the violet fungus remains motionless, it is indistinguishable from an ordinary fungus.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The fungus makes 1d4 Rotting Touch attacks.",attack_bonus:0},{name:"Rotting Touch",desc:"Melee Weapon Attack: +2 to hit, reach 10 ft., one creature. Hit: 4 (1d8) necrotic damage.",attack_bonus:2,damage_dice:"1d8"}]},{name:"Vrock",source:"5e SRD",size:"Large",type:"fiend",subtype:"demon",alignment:"chaotic evil",ac:15,hp:104,hit_dice:"11d10 + 43",speed:"40 ft., fly 60 ft.",stats:[17,15,18,8,13,8],saves:[{dexterity:5},{wisdom:4},{charisma:2}],damage_vulnerabilities:"",damage_resistances:"cold, fire, lightning; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"poisoned",senses:"darkvision 120 ft., passive Perception 11",languages:"Abyssal, telepathy 120 ft.",cr:"6",bestiary:!0,traits:[{name:"Magic Resistance",desc:"The vrock has advantage on saving throws against spells and other magical effects.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The vrock makes two attacks: one with its beak and one with its talons.",attack_bonus:0},{name:"Beak",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) piercing damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:3},{name:"Talons",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 14 (2d10 + 3) slashing damage.",attack_bonus:6,damage_dice:"2d10",damage_bonus:3},{name:"Spores (Recharge 6)",desc:"A 15-foot-radius cloud of toxic spores extends out from the vrock. The spores spread around corners. Each creature in that area must succeed on a DC 14 Constitution saving throw or become poisoned. While poisoned in this way, a target takes 5 (1d10) poison damage at the start of each of its turns. A target can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success. Emptying a vial of holy water on the target also ends the effect on it.",attack_bonus:0},{name:"Stunning Screech (1/Day)",desc:"The vrock emits a horrific screech. Each creature within 20 feet of it that can hear it and that isn't a demon must succeed on a DC 14 Constitution saving throw or be stunned until the end of the vrock's next turn .",attack_bonus:0},{name:"Variant: Summon Demon (1/Day)",desc:`The demon chooses what to summon and attempts a magical summoning. +A vrock has a 30 percent chance of summoning 2d4 dretches or one vrock. +A summoned demon appears in an unoccupied space within 60 feet of its summoner, acts as an ally of its summoner, and can't summon other demons. It remains for 1 minute, until it or its summoner dies, or until its summoner dismisses it as an action.`,attack_bonus:0}]},{name:"Vulture",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:10,hp:5,hit_dice:"1d8",speed:"10 ft., fly 50 ft.",stats:[7,10,13,2,12,4],skillsaves:[{perception:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Sight and Smell",desc:"The vulture has advantage on Wisdom (Perception) checks that rely on sight or smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The vulture has advantage on an attack roll against a creature if at least one of the vulture's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Beak",desc:"Melee Weapon Attack: +2 to hit, reach 5 ft., one target. Hit: 2 (1d4) piercing damage.",attack_bonus:2,damage_dice:"1d4"}]},{name:"Warhorse",source:"5e SRD",size:"Large",type:"beast",subtype:"",alignment:"unaligned",ac:11,hp:19,hit_dice:"3d10 + 2",speed:"60 ft.",stats:[18,12,13,2,12,7],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 11",languages:"",cr:"1/2",bestiary:!0,traits:[{name:"Trampling Charge",desc:"If the horse moves at least 20 ft. straight toward a creature and then hits it with a hooves attack on the same turn, that target must succeed on a DC 14 Strength saving throw or be knocked prone. If the target is prone, the horse can make another attack with its hooves against it as a bonus action.",attack_bonus:0}],actions:[{name:"Hooves",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4}]},{name:"Warhorse Skeleton",source:"5e SRD",size:"Large",type:"undead",subtype:"",alignment:"lawful evil",ac:13,hp:22,hit_dice:"3d10 + 5",speed:"60 ft.",stats:[18,12,15,2,8,5],damage_vulnerabilities:"bludgeoning",damage_resistances:"",damage_immunities:"poison",condition_immunities:"exhaustion, poisoned",senses:"darkvision 60 ft., passive Perception 9",languages:"",cr:"1/2",bestiary:!0,actions:[{name:"Hooves",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) bludgeoning damage.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4}]},{name:"Water Elemental",source:"5e SRD",size:"Large",type:"elemental",subtype:"",alignment:"neutral",ac:14,hp:114,hit_dice:"12d10 + 48",speed:"30 ft., swim 90 ft.",stats:[18,14,18,5,10,8],damage_vulnerabilities:"",damage_resistances:"acid; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"poison",condition_immunities:"exhaustion, grappled, paralyzed, petrified, poisoned, prone, restrained, unconscious",senses:"darkvision 60 ft., passive Perception 10",languages:"Aquan",cr:"5",bestiary:!0,traits:[{name:"Water Form",desc:"The elemental can enter a hostile creature's space and stop there. It can move through a space as narrow as 1 inch wide without squeezing.",attack_bonus:0},{name:"Freeze",desc:"If the elemental takes cold damage, it partially freezes; its speed is reduced by 20 ft. until the end of its next turn.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The elemental makes two slam attacks.",attack_bonus:0},{name:"Slam",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) bludgeoning damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:4},{name:"Whelm (Recharge 4-6)",desc:`Each creature in the elemental's space must make a DC 15 Strength saving throw. On a failure, a target takes 13 (2d8 + 4) bludgeoning damage. If it is Large or smaller, it is also grappled (escape DC 14). Until this grapple ends, the target is restrained and unable to breathe unless it can breathe water. If the saving throw is successful, the target is pushed out of the elemental's space. +The elemental can grapple one Large creature or up to two Medium or smaller creatures at one time. At the start of each of the elemental's turns, each target grappled by it takes 13 (2d8 + 4) bludgeoning damage. A creature within 5 feet of the elemental can pull a creature or object out of it by taking an action to make a DC 14 Strength and succeeding.`,attack_bonus:0}]},{name:"Weasel",source:"5e SRD",size:"Tiny",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:1,hit_dice:"1d4 + -2",speed:"30 ft.",stats:[3,16,8,2,12,3],skillsaves:[{perception:3},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"0",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The weasel has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one creature. Hit: 1 piercing damage.",attack_bonus:5,damage_bonus:1}]},{name:"Werebear",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"human",alignment:"neutral good",ac:10,hp:135,hit_dice:"18d8 + 54",speed:"30 ft. (40 ft., climb 30 ft. in bear or hybrid form)",stats:[19,10,17,11,12,12],skillsaves:[{perception:7}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"bludgeoning, piercing, and slashing damage from nonmagical weapons that aren't silvered",condition_immunities:"",senses:"passive Perception 17",languages:"Common (can't speak in bear form)",cr:"5",bestiary:!0,traits:[{name:"Shapechanger",desc:"The werebear can use its action to polymorph into a Large bear-humanoid hybrid or into a Large bear, or back into its true form, which is humanoid. Its statistics, other than its size and AC, are the same in each form. Any equipment it. is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Keen Smell",desc:"The werebear has advantage on WisGlom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"In bear form, the werebear makes two claw attacks. In humanoid form, it makes two greataxe attacks. In hybrid form, it can attack like a bear or a humanoid.",attack_bonus:0},{name:"Bite (Bear or Hybrid Form Only)",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 15 (2d10 + 4) piercing damage. If the target is a humanoid, it must succeed on a DC 14 Constitution saving throw or be cursed with were bear lycanthropy.",attack_bonus:7,damage_dice:"2d10",damage_bonus:4},{name:"Claw (Bear or Hybrid Form Only)",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:4},{name:"Greataxe (Humanoid or Hybrid Form Only)",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 10 (1d12 + 4) slashing damage.",attack_bonus:7,damage_dice:"1d12",damage_bonus:4}]},{name:"Wereboar",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"human",alignment:"neutral evil",ac:10,hp:78,hit_dice:"12d8 + 24",speed:"30 ft. (40 ft. in boar form)",stats:[17,10,15,10,11,8],skillsaves:[{perception:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"bludgeoning, piercing, and slashing damage from nonmagical weapons that aren't silvered",condition_immunities:"",senses:"passive Perception 12",languages:"Common (can't speak in boar form)",cr:"4",bestiary:!0,traits:[{name:"Shapechanger",desc:"The wereboar can use its action to polymorph into a boar-humanoid hybrid or into a boar, or back into its true form, which is humanoid. Its statistics, other than its AC, are the same in each form. Any equipment it is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Charge (Boar or Hybrid Form Only)",desc:"If the wereboar moves at least 15 feet straight toward a target and then hits it with its tusks on the same turn, the target takes an extra 7 (2d6) slashing damage. If the target is a creature, it must succeed on a DC 13 Strength saving throw or be knocked prone.",attack_bonus:0,damage_dice:"2d6"},{name:"Relentless (Recharges after a Short or Long Rest)",desc:"If the wereboar takes 14 damage or less that would reduce it to 0 hit points, it is reduced to 1 hit point instead.",attack_bonus:0}],actions:[{name:"Multiattack (Humanoid or Hybrid Form Only)",desc:"The wereboar makes two attacks, only one of which can be with its tusks.",attack_bonus:0},{name:"Maul (Humanoid or Hybrid Form Only)",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) bludgeoning damage.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3},{name:"Tusks (Boar or Hybrid Form Only)",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) slashing damage. If the target is a humanoid, it must succeed on a DC 12 Constitution saving throw or be cursed with wereboar lycanthropy.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3}]},{name:"Wererat",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"human",alignment:"lawful evil",ac:12,hp:33,hit_dice:"6d8 + 6",speed:"30 ft.",stats:[10,15,12,11,10,8],skillsaves:[{perception:2},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"bludgeoning, piercing, and slashing damage from nonmagical weapons that aren't silvered",condition_immunities:"",senses:"darkvision 60 ft. (rat form only), passive Perception 12",languages:"Common (can't speak in rat form)",cr:"2",bestiary:!0,traits:[{name:"Shapechanger",desc:"The wererat can use its action to polymorph into a rat-humanoid hybrid or into a giant rat, or back into its true form, which is humanoid. Its statistics, other than its size, are the same in each form. Any equipment it is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Keen Smell",desc:"The wererat has advantage on Wisdom (Perception) checks that rely on smell.",attack_bonus:0}],actions:[{name:"Multiattack (Humanoid or Hybrid Form Only)",desc:"The wererat makes two attacks, only one of which can be a bite.",attack_bonus:0},{name:"Bite (Rat or Hybrid Form Only).",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 4 (1d4 + 2) piercing damage. If the target is a humanoid, it must succeed on a DC 11 Constitution saving throw or be cursed with wererat lycanthropy.",attack_bonus:4,damage_dice:"1d4",damage_bonus:2},{name:"Shortsword (Humanoid or Hybrid Form Only)",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Hand Crossbow (Humanoid or Hybrid Form Only)",desc:"Ranged Weapon Attack: +4 to hit, range 30/120 ft., one target. Hit: 5 (1d6 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d6",damage_bonus:2}]},{name:"Weretiger",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"human",alignment:"neutral",ac:12,hp:120,hit_dice:"16d8 + 48",speed:"30 ft. (40 ft. in tiger form)",stats:[17,15,16,10,13,11],skillsaves:[{perception:5},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"bludgeoning, piercing, and slashing damage from nonmagical weapons that aren't silvered",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 15",languages:"Common (can't speak in tiger form)",cr:"4",bestiary:!0,traits:[{name:"Shapechanger",desc:"The weretiger can use its action to polymorph into a tiger-humanoid hybrid or into a tiger, or back into its true form, which is humanoid. Its statistics, other than its size, are the same in each form. Any equipment it is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Keen Hearing and Smell",desc:"The weretiger has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0},{name:"Pounce (Tiger or Hybrid Form Only)",desc:"If the weretiger moves at least 15 feet straight toward a creature and then hits it with a claw attack on the same turn, that target must succeed on a DC 14 Strength saving throw or be knocked prone. If the target is prone, the weretiger can make one bite attack against it as a bonus action.",attack_bonus:0}],actions:[{name:"Multiattack (Humanoid or Hybrid Form Only)",desc:"In humanoid form, the weretiger makes two scimitar attacks or two longbow attacks. In hybrid form, it can attack like a humanoid or make two claw attacks.",attack_bonus:0},{name:"Bite (Tiger or Hybrid Form Only)",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 8 (1d10 + 3) piercing damage. If the target is a humanoid, it must succeed on a DC 13 Constitution saving throw or be cursed with weretiger lycanthropy.",attack_bonus:5,damage_dice:"1d10",damage_bonus:3},{name:"Claw (Tiger or Hybrid Form Only)",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 7 (1d8 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d8",damage_bonus:3},{name:"Scimitar (Humanoid or Hybrid Form Only)",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) slashing damage.",attack_bonus:5,damage_dice:"1d6",damage_bonus:3},{name:"Longbow (Humanoid or Hybrid Form Only)",desc:"Ranged Weapon Attack: +4 to hit, range 150/600 ft., one target. Hit: 6 (1d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Werewolf",source:"5e SRD",size:"Medium",type:"humanoid",subtype:"human",alignment:"chaotic evil",ac:11,hp:58,hit_dice:"9d8 + 17",speed:"30 ft. (40 ft. in wolf form)",stats:[15,13,14,10,11,10],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"bludgeoning, piercing, and slashing damage from nonmagical weapons that aren't silvered",condition_immunities:"",senses:"passive Perception 14",languages:"Common (can't speak in wolf form)",cr:"3",bestiary:!0,traits:[{name:"Shapechanger",desc:"The werewolf can use its action to polymorph into a wolf-humanoid hybrid or into a wolf, or back into its true form, which is humanoid. Its statistics, other than its AC, are the same in each form. Any equipment it is wearing or carrying isn't transformed. It reverts to its true form if it dies.",attack_bonus:0},{name:"Keen Hearing and Smell",desc:"The werewolf has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0}],actions:[{name:"Multiattack (Humanoid or Hybrid Form Only)",desc:"The werewolf makes two attacks: one with its bite and one with its claws or spear.",attack_bonus:0},{name:"Bite (Wolf or Hybrid Form Only)",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) piercing damage. If the target is a humanoid, it must succeed on a DC 12 Constitution saving throw or be cursed with werewolf lycanthropy.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2},{name:"Claws (Hybrid Form Only)",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 7 (2d4 + 2) slashing damage.",attack_bonus:4,damage_dice:"2d4",damage_bonus:2},{name:"Spear (Humanoid Form Only)",desc:"Melee or Ranged Weapon Attack: +4 to hit, reach 5 ft. or range 20/60 ft., one creature. Hit: 5 (1d6 + 2) piercing damage, or 6 (1d8 + 2) piercing damage if used with two hands to make a melee attack.",attack_bonus:4,damage_dice:"1d6",damage_bonus:-2}]},{name:"White Dragon Wyrmling",source:"5e SRD",size:"Medium",type:"dragon",subtype:"",alignment:"chaotic evil",ac:16,hp:32,hit_dice:"5d8 + 9",speed:"30 ft., burrow 15 ft., fly 60 ft., swim 30 ft.",stats:[14,10,14,5,10,11],saves:[{dexterity:2},{constitution:4},{wisdom:2},{charisma:2}],skillsaves:[{perception:4},{stealth:2}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 10 ft., darkvision 60 ft., passive Perception 14",languages:"Draconic",cr:"2",bestiary:!0,actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (1d10 + 2) piercing damage plus 2 (1d4) cold damage.",attack_bonus:4,damage_dice:"1d10 + 1d4",damage_bonus:2},{name:"Cold Breath (Recharge 5-6)",desc:"The dragon exhales an icy blast of hail in a 15-foot cone. Each creature in that area must make a DC 12 Constitution saving throw, taking 22 (5d8) cold damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"5d8"}]},{name:"Wight",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"neutral evil",ac:14,hp:45,hit_dice:"6d8 + 18",speed:"30 ft.",stats:[15,14,16,10,13,15],skillsaves:[{perception:3},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"necrotic; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 13",languages:"the languages it knew in life",cr:"3",bestiary:!0,traits:[{name:"Sunlight Sensitivity",desc:"While in sunlight, the wight has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The wight makes two longsword attacks or two longbow attacks. It can use its Life Drain in place of one longsword attack.",attack_bonus:0},{name:"Life Drain",desc:`Melee Weapon Attack: +4 to hit, reach 5 ft., one creature. Hit: 5 (1d6 + 2) necrotic damage. The target must succeed on a DC 13 Constitution saving throw or its hit point maximum is reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0. +A humanoid slain by this attack rises 24 hours later as a zombie under the wight's control, unless the humanoid is restored to life or its body is destroyed. The wight can have no more than twelve zombies under its control at one time.`,attack_bonus:4,damage_dice:"1d6",damage_bonus:2},{name:"Longsword",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 6 (1d8 + 2) slashing damage, or 7 (1d10 + 2) slashing damage if used with two hands.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2},{name:"Longbow",desc:"Ranged Weapon Attack: +4 to hit, range 150/600 ft., one target. Hit: 6 (1d8 + 2) piercing damage.",attack_bonus:4,damage_dice:"1d8",damage_bonus:2}]},{name:"Will-o'-Wisp",source:"5e SRD",size:"Tiny",type:"undead",subtype:"",alignment:"chaotic evil",ac:19,hp:22,hit_dice:"9d4 + -1",speed:"0 ft., fly 50 ft. (hover)",stats:[1,28,10,13,14,11],damage_vulnerabilities:"",damage_resistances:"acid, cold, fire, necrotic, thunder; bludgeoning, piercing, and slashing from nonmagical weapons",damage_immunities:"lightning, poison",condition_immunities:"exhaustion, grappled, paralyzed, poisoned, prone, restrained, unconscious",senses:"darkvision 120 ft., passive Perception 12",languages:"the languages it knew in life",cr:"2",bestiary:!0,traits:[{name:"Consume Life",desc:"As a bonus action, the will-o'-wisp can target one creature it can see within 5 ft. of it that has 0 hit points and is still alive. The target must succeed on a DC 10 Constitution saving throw against this magic or die. If the target dies, the will-o'-wisp regains 10 (3d6) hit points.",attack_bonus:0},{name:"Ephemeral",desc:"The will-o'-wisp can't wear or carry anything.",attack_bonus:0},{name:"Incorporeal Movement",desc:"The will-o'-wisp can move through other creatures and objects as if they were difficult terrain. It takes 5 (1d10) force damage if it ends its turn inside an object.",attack_bonus:0},{name:"Variable Illumination",desc:"The will-o'-wisp sheds bright light in a 5- to 20-foot radius and dim light for an additional number of ft. equal to the chosen radius. The will-o'-wisp can alter the radius as a bonus action.",attack_bonus:0}],actions:[{name:"Shock",desc:"Melee Spell Attack: +4 to hit, reach 5 ft., one creature. Hit: 9 (2d8) lightning damage.",attack_bonus:4,damage_dice:"2d8"},{name:"Invisibility",desc:"The will-o'-wisp and its light magically become invisible until it attacks or uses its Consume Life, or until its concentration ends (as if concentrating on a spell).",attack_bonus:0}]},{name:"Winter Wolf",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"neutral evil",ac:13,hp:75,hit_dice:"10d10 + 20",speed:"50 ft.",stats:[18,13,14,7,12,8],skillsaves:[{perception:5},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"passive Perception 15",languages:"Common, Giant, Winter Wolf",cr:"3",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The wolf has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The wolf has advantage on an attack roll against a creature if at least one of the wolf's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0},{name:"Snow Camouflage",desc:"The wolf has advantage on Dexterity (Stealth) checks made to hide in snowy terrain.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) piercing damage. If the target is a creature, it must succeed on a DC 14 Strength saving throw or be knocked prone.",attack_bonus:6,damage_dice:"2d6",damage_bonus:4},{name:"Cold Breath (Recharge 5-6)",desc:"The wolf exhales a blast of freezing wind in a 15-foot cone. Each creature in that area must make a DC 12 Dexterity saving throw, taking 18 (4d8) cold damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"4d8"}]},{name:"Wolf",source:"5e SRD",size:"Medium",type:"beast",subtype:"",alignment:"unaligned",ac:13,hp:11,hit_dice:"2d8 + 2",speed:"40 ft.",stats:[12,15,12,3,12,6],skillsaves:[{perception:3},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"passive Perception 13",languages:"",cr:"1/4",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The wolf has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0},{name:"Pack Tactics",desc:"The wolf has advantage on an attack roll against a creature if at least one of the wolf's allies is within 5 ft. of the creature and the ally isn't incapacitated.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +4 to hit, reach 5 ft., one target. Hit: 7 (2d4 + 2) piercing damage. If the target is a creature, it must succeed on a DC 11 Strength saving throw or be knocked prone.",attack_bonus:4,damage_dice:"2d4",damage_bonus:2}]},{name:"Worg",source:"5e SRD",size:"Large",type:"monstrosity",subtype:"",alignment:"neutral evil",ac:13,hp:26,hit_dice:"4d10 + 4",speed:"50 ft.",stats:[16,13,13,7,11,8],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"Goblin, Worg",cr:"1/2",bestiary:!0,traits:[{name:"Keen Hearing and Smell",desc:"The worg has advantage on Wisdom (Perception) checks that rely on hearing or smell.",attack_bonus:0}],actions:[{name:"Bite",desc:"Melee Weapon Attack: +5 to hit, reach 5 ft., one target. Hit: 10 (2d6 + 3) piercing damage. If the target is a creature, it must succeed on a DC 13 Strength saving throw or be knocked prone.",attack_bonus:5,damage_dice:"2d6",damage_bonus:3}]},{name:"Wraith",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"neutral evil",ac:13,hp:67,hit_dice:"9d8 + 26",speed:"0 ft., fly 60 ft. (hover)",stats:[6,16,16,12,14,15],damage_vulnerabilities:"",damage_resistances:"acid, cold, fire, lightning, thunder; bludgeoning, piercing, and slashing from nonmagical weapons that aren't silvered",damage_immunities:"necrotic, poison",condition_immunities:"charmed, exhaustion, grappled, paralyzed, petrified, poisoned, prone, restrained",senses:"darkvision 60 ft., passive Perception 12",languages:"the languages it knew in life",cr:"5",bestiary:!0,traits:[{name:"Incorporeal Movement",desc:"The wraith can move through other creatures and objects as if they were difficult terrain. It takes 5 (1d10) force damage if it ends its turn inside an object.",attack_bonus:0},{name:"Sunlight Sensitivity",desc:"While in sunlight, the wraith has disadvantage on attack rolls, as well as on Wisdom (Perception) checks that rely on sight.",attack_bonus:0}],actions:[{name:"Life Drain",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one creature. Hit: 21 (4d8 + 3) necrotic damage. The target must succeed on a DC 14 Constitution saving throw or its hit point maximum is reduced by an amount equal to the damage taken. This reduction lasts until the target finishes a long rest. The target dies if this effect reduces its hit point maximum to 0.",attack_bonus:6,damage_dice:"4d8",damage_bonus:3},{name:"Create Specter",desc:"The wraith targets a humanoid within 10 feet of it that has been dead for no longer than 1 minute and died violently. The target's spirit rises as a specter in the space of its corpse or in the nearest unoccupied space. The specter is under the wraith's control. The wraith can have no more than seven specters under its control at one time.",attack_bonus:0}]},{name:"Wyvern",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"unaligned",ac:13,hp:110,hit_dice:"13d10 + 38",speed:"20 ft., fly 80 ft.",stats:[19,10,16,5,12,6],skillsaves:[{perception:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., passive Perception 14",languages:"",cr:"6",bestiary:!0,actions:[{name:"Multiattack",desc:"The wyvern makes two attacks: one with its bite and one with its stinger. While flying, it can use its claws in place of one other attack.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one creature. Hit: 11 (2d6 + 4) piercing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Claws",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 13 (2d8 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d8",damage_bonus:4},{name:"Stinger",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one creature. Hit: 11 (2d6 + 4) piercing damage. The target must make a DC 15 Constitution saving throw, taking 24 (7d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4}]},{name:"Xorn",source:"5e SRD",size:"Medium",type:"elemental",subtype:"",alignment:"neutral",ac:19,hp:73,hit_dice:"7d8 + 41",speed:"20 ft., burrow 20 ft.",stats:[17,10,22,11,10,11],skillsaves:[{perception:6},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"piercing and slashing from nonmagical weapons that aren't adamantine",damage_immunities:"",condition_immunities:"",senses:"darkvision 60 ft., tremorsense 60 ft., passive Perception 16",languages:"Terran",cr:"5",bestiary:!0,traits:[{name:"Earth Glide",desc:"The xorn can burrow through nonmagical, unworked earth and stone. While doing so, the xorn doesn't disturb the material it moves through.",attack_bonus:0},{name:"Stone Camouflage",desc:"The xorn has advantage on Dexterity (Stealth) checks made to hide in rocky terrain.",attack_bonus:0},{name:"Treasure Sense",desc:"The xorn can pinpoint, by scent, the location of precious metals and stones, such as coins and gems, within 60 ft. of it.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The xorn makes three claw attacks and one bite attack.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 13 (3d6 + 3) piercing damage.",attack_bonus:6,damage_dice:"3d6",damage_bonus:3},{name:"Claw",desc:"Melee Weapon Attack: +6 to hit, reach 5 ft., one target. Hit: 6 (1d6 + 3) slashing damage.",attack_bonus:6,damage_dice:"1d6",damage_bonus:3}]},{name:"Young Black Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"chaotic evil",ac:18,hp:127,hit_dice:"15d10 + 44",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[19,14,17,12,11,15],saves:[{dexterity:5},{constitution:6},{wisdom:3},{charisma:5}],skillsaves:[{perception:6},{stealth:5}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 16",languages:"Common, Draconic",cr:"7",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one target. Hit: 15 (2d10 + 4) piercing damage plus 4 (1d8) acid damage.",attack_bonus:7,damage_dice:"2d10 + 1d8",damage_bonus:4},{name:"Claw",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Acid Breath (Recharge 5-6)",desc:"The dragon exhales acid in a 30-foot line that is 5 feet wide. Each creature in that line must make a DC 14 Dexterity saving throw, taking 49 (11d8) acid damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"11d8"}]},{name:"Young Blue Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"lawful evil",ac:18,hp:152,hit_dice:"16d10 + 64",speed:"40 ft., burrow 40 ft., fly 80 ft.",stats:[21,10,19,14,13,17],saves:[{dexterity:4},{constitution:8},{wisdom:5},{charisma:7}],skillsaves:[{perception:9},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 19",languages:"Common, Draconic",cr:"9",bestiary:!0,actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +9 to hit, reach 10 ft., one target. Hit: 16 (2d10 + 5) piercing damage plus 5 (1d10) lightning damage.",attack_bonus:9,damage_dice:"2d10 + 1d10",damage_bonus:5},{name:"Claw",desc:"Melee Weapon Attack: +9 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) slashing damage.",attack_bonus:9,damage_dice:"2d6",damage_bonus:5},{name:"Lightning Breath (Recharge 5-6)",desc:"The dragon exhales lightning in an 60-foot line that is 5 feet wide. Each creature in that line must make a DC 16 Dexterity saving throw, taking 55 (10d10) lightning damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"10d10"}]},{name:"Young Brass Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"chaotic good",ac:17,hp:110,hit_dice:"13d10 + 38",speed:"40 ft., burrow 20 ft., fly 80 ft.",stats:[19,10,17,12,11,15],saves:[{dexterity:3},{constitution:6},{wisdom:3},{charisma:5}],skillsaves:[{perception:6},{persuasion:5},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 16",languages:"Common, Draconic",cr:"6",bestiary:!0,actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one target. Hit: 15 (2d10 + 4) piercing damage.",attack_bonus:7,damage_dice:"2d10",damage_bonus:4},{name:"Claw",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Fire Breath. The dragon exhales fire in a 40-foot line that is 5 feet wide. Each creature in that line must make a DC 14 Dexterity saving throw, taking 42 (12d6) fire damage on a failed save, or half as much damage on a successful one. +Sleep Breath. The dragon exhales sleep gas in a 30-foot cone. Each creature in that area must succeed on a DC 14 Constitution saving throw or fall unconscious for 5 minutes. This effect ends for a creature if the creature takes damage or someone uses an action to wake it.`,attack_bonus:0,damage_dice:"12d6"}]},{name:"Young Bronze Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"lawful good",ac:18,hp:142,hit_dice:"15d10 + 59",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[21,10,19,14,13,17],saves:[{dexterity:3},{constitution:7},{wisdom:4},{charisma:6}],skillsaves:[{insight:4},{perception:7},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"lightning",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 17",languages:"Common, Draconic",cr:"8",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +8 to hit, reach 10 ft., one target. Hit: 16 (2d10 + 5) piercing damage.",attack_bonus:8,damage_dice:"2d10",damage_bonus:5},{name:"Claw",desc:"Melee Weapon Attack: +8 to hit, reach 5 ft., one target. Hit: 12 (2d6 + 5) slashing damage.",attack_bonus:8,damage_dice:"2d6",damage_bonus:5},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Lightning Breath. The dragon exhales lightning in a 60-foot line that is 5 feet wide. Each creature in that line must make a DC 15 Dexterity saving throw, taking 55 (10d10) lightning damage on a failed save, or half as much damage on a successful one. +Repulsion Breath. The dragon exhales repulsion energy in a 30-foot cone. Each creature in that area must succeed on a DC 15 Strength saving throw. On a failed save, the creature is pushed 40 feet away from the dragon.`,attack_bonus:0,damage_dice:"10d10"}]},{name:"Young Copper Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"chaotic good",ac:17,hp:119,hit_dice:"14d10 + 42",speed:"40 ft., climb 40 ft., fly 80 ft.",stats:[19,12,17,16,13,15],saves:[{dexterity:4},{constitution:6},{wisdom:4},{charisma:5}],skillsaves:[{deception:5},{perception:7},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"acid",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 17",languages:"Common, Draconic",cr:"7",bestiary:!0,actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one target. Hit: 15 (2d10 + 4) piercing damage.",attack_bonus:7,damage_dice:"2d10",damage_bonus:4},{name:"Claw",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Acid Breath. The dragon exhales acid in an 40-foot line that is 5 feet wide. Each creature in that line must make a DC 14 Dexterity saving throw, taking 40 (9d8) acid damage on a failed save, or half as much damage on a successful one. +Slowing Breath. The dragon exhales gas in a 30-foot cone. Each creature in that area must succeed on a DC 14 Constitution saving throw. On a failed save, the creature can't use reactions, its speed is halved, and it can't make more than one attack on its turn. In addition, the creature can use either an action or a bonus action on its turn, but not both. These effects last for 1 minute. The creature can repeat the saving throw at the end of each of its turns, ending the effect on itself with a successful save.`,attack_bonus:0,damage_dice:"9d8"}]},{name:"Young Gold Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"lawful good",ac:18,hp:178,hit_dice:"17d10 + 84",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[23,14,21,16,13,20],saves:[{dexterity:6},{constitution:9},{wisdom:5},{charisma:9}],skillsaves:[{insight:5},{perception:9},{persuasion:9},{stealth:6}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 19",languages:"Common, Draconic",cr:"10",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 17 (2d10 + 6) piercing damage.",attack_bonus:10,damage_dice:"2d10",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:10,damage_dice:"2d6",damage_bonus:6},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Fire Breath. The dragon exhales fire in a 30-foot cone. Each creature in that area must make a DC 17 Dexterity saving throw, taking 55 (10d10) fire damage on a failed save, or half as much damage on a successful one. +Weakening Breath. The dragon exhales gas in a 30-foot cone. Each creature in that area must succeed on a DC 17 Strength saving throw or have disadvantage on Strength-based attack rolls, Strength checks, and Strength saving throws for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"10d10"}]},{name:"Young Green Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"lawful evil",ac:18,hp:136,hit_dice:"16d10 + 48",speed:"40 ft., fly 80 ft., swim 40 ft.",stats:[19,12,17,16,13,15],saves:[{dexterity:4},{constitution:6},{wisdom:4},{charisma:5}],skillsaves:[{deception:5},{perception:7},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"poison",condition_immunities:"poisoned",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 17",languages:"Common, Draconic",cr:"8",bestiary:!0,traits:[{name:"Amphibious",desc:"The dragon can breathe air and water.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one target. Hit: 15 (2d10 + 4) piercing damage plus 7 (2d6) poison damage.",attack_bonus:7,damage_dice:"2d10 + 2d6",damage_bonus:4},{name:"Claw",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Poison Breath (Recharge 5-6)",desc:"The dragon exhales poisonous gas in a 30-foot cone. Each creature in that area must make a DC 14 Constitution saving throw, taking 42 (12d6) poison damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"12d6"}]},{name:"Young Red Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"chaotic evil",ac:18,hp:178,hit_dice:"17d10 + 84",speed:"40 ft., climb 40 ft., fly 80 ft.",stats:[23,10,21,14,11,19],saves:[{dexterity:4},{constitution:9},{wisdom:4},{charisma:8}],skillsaves:[{perception:8},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"fire",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 18",languages:"Common, Draconic",cr:"10",bestiary:!0,actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 17 (2d10 + 6) piercing damage plus 3 (1d6) fire damage.",attack_bonus:10,damage_dice:"2d10 + 1d6",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:10,damage_dice:"2d6",damage_bonus:6},{name:"Fire Breath (Recharge 5-6)",desc:"The dragon exhales fire in a 30-foot cone. Each creature in that area must make a DC 17 Dexterity saving throw, taking 56 (16d6) fire damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"16d6"}]},{name:"Young Silver Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"lawful good",ac:18,hp:168,hit_dice:"16d10 + 80",speed:"40 ft., fly 80 ft.",stats:[23,10,21,14,11,19],saves:[{dexterity:4},{constitution:9},{wisdom:4},{charisma:8}],skillsaves:[{arcana:6},{history:6},{perception:8},{stealth:4}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 18",languages:"Common, Draconic",cr:"9",bestiary:!0,actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +10 to hit, reach 10 ft., one target. Hit: 17 (2d10 + 6) piercing damage.",attack_bonus:10,damage_dice:"2d10",damage_bonus:6},{name:"Claw",desc:"Melee Weapon Attack: +10 to hit, reach 5 ft., one target. Hit: 13 (2d6 + 6) slashing damage.",attack_bonus:10,damage_dice:"2d6",damage_bonus:6},{name:"Breath Weapons (Recharge 5-6)",desc:`The dragon uses one of the following breath weapons. +Cold Breath. The dragon exhales an icy blast in a 30-foot cone. Each creature in that area must make a DC 17 Constitution saving throw, taking 54 (12d8) cold damage on a failed save, or half as much damage on a successful one. +Paralyzing Breath. The dragon exhales paralyzing gas in a 30-foot cone. Each creature in that area must succeed on a DC 17 Constitution saving throw or be paralyzed for 1 minute. A creature can repeat the saving throw at the end of each of its turns, ending the effect on itself on a success.`,attack_bonus:0,damage_dice:"12d8"}]},{name:"Young White Dragon",source:"5e SRD",size:"Large",type:"dragon",subtype:"",alignment:"chaotic evil",ac:17,hp:133,hit_dice:"14d10 + 56",speed:"40 ft., burrow 20 ft., fly 80 ft., swim 40 ft.",stats:[18,10,18,6,11,12],saves:[{dexterity:3},{constitution:7},{wisdom:3},{charisma:4}],skillsaves:[{perception:6},{stealth:3}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"cold",condition_immunities:"",senses:"blindsight 30 ft., darkvision 120 ft., passive Perception 16",languages:"Common, Draconic",cr:"6",bestiary:!0,traits:[{name:"Ice Walk",desc:"The dragon can move across and climb icy surfaces without needing to make an ability check. Additionally, difficult terrain composed of ice or snow doesn't cost it extra moment.",attack_bonus:0}],actions:[{name:"Multiattack",desc:"The dragon makes three attacks: one with its bite and two with its claws.",attack_bonus:0},{name:"Bite",desc:"Melee Weapon Attack: +7 to hit, reach 10 ft., one target. Hit: 15 (2d10 + 4) piercing damage plus 4 (1d8) cold damage.",attack_bonus:7,damage_dice:"2d10 + 1d8",damage_bonus:4},{name:"Claw",desc:"Melee Weapon Attack: +7 to hit, reach 5 ft., one target. Hit: 11 (2d6 + 4) slashing damage.",attack_bonus:7,damage_dice:"2d6",damage_bonus:4},{name:"Cold Breath (Recharge 5-6)",desc:"The dragon exhales an icy blast in a 30-foot cone. Each creature in that area must make a DC 15 Constitution saving throw, taking 45 (10d8) cold damage on a failed save, or half as much damage on a successful one.",attack_bonus:0,damage_dice:"10d8"}]},{name:"Zombie",source:"5e SRD",size:"Medium",type:"undead",subtype:"",alignment:"neutral evil",ac:8,hp:22,hit_dice:"3d8 + 8",speed:"20 ft.",stats:[13,6,16,3,6,5],saves:[{wisdom:0}],damage_vulnerabilities:"",damage_resistances:"",damage_immunities:"",condition_immunities:"poisoned",senses:"darkvision 60 ft., passive Perception 8",languages:"understands all languages it spoke in life but can't speak",cr:"1/4",bestiary:!0,traits:[{name:"Undead Fortitude",desc:"If damage reduces the zombie to 0 hit points, it must make a Constitution saving throw with a DC of 5+the damage taken, unless the damage is radiant or from a critical hit. On a success, the zombie drops to 1 hit point instead.",attack_bonus:0}],actions:[{name:"Slam",desc:"Melee Weapon Attack: +3 to hit, reach 5 ft., one target. Hit: 4 (1d6 + 1) bludgeoning damage.",attack_bonus:3,damage_dice:"1d6",damage_bonus:1}]}],pa=new Map(k1.map(i=>[i.name,i]));var We,Lt,Ni,ba,li,tn,ya,_i,en,tt,va,Qo,ka,Io,Li,Wn,Eo=class{constructor(){Ee(this,_i);Ee(this,va);Ee(this,ka);Ee(this,Li);Ee(this,We,new Map);Ee(this,Lt,new Map);Ee(this,Ni,new Map);Ee(this,ba,!1);Ee(this,li,new Map);Ee(this,tn,new Map);Ee(this,ya,new Map);Ee(this,tt,void 0)}getSortedBy(e){return te(this,ya).get(e)??[]}onSortedBy(e,t){let n=te(this,tt).on(`fantasy-statblocks:bestiary:sorted:${e}`,a=>t(a));return()=>{te(this,tt).offref(n)}}registerSorter(e,t){te(this,tn).has(e)||te(this,tn).set(e,t),Qe(this,_i,en).call(this,e)}getIndices(){return te(this,li)}getIndex(e){return te(this,li).get(e)??new Map}registerIndex(e){te(this,li).has(e)||te(this,li).set(e,new Map)}onIndexUpdated(e,t){if(!te(this,li).has(e))return()=>{};let n=te(this,tt).on(`fantasy-statblocks:bestiary:indexed:${e}`,()=>t());return()=>{te(this,tt).offref(n)}}initialize(e){this.registerIndex("source"),this.registerSorter("name",(t,n)=>t.name.localeCompare(n.name)),ei(this,tt,e.app.workspace),wi.initialize(e).load(),e.addCommand({id:"parse-frontmatter",name:"Parse Frontmatter for Creatures",callback:()=>{wi.start(!0)}}),e.register(()=>wi.unload()),e.registerEvent(e.app.workspace.on("fantasy-statblocks:srd-change",t=>{this.enableSRD=t,t?ei(this,We,new Map([...pa,...te(this,We)])):ei(this,We,new Map([...te(this,Lt),...te(this,Ni)]))})),this.enableSRD=!e.settings.disableSRD,this.enableSRD&&ei(this,We,new Map(pa));for(let[,t]of e.settings.monsters)this.addLocalCreature(t)}hasLocal(e){return te(this,Lt).has(e)}getLocal(e){return te(this,Lt).get(e)}isLocal(e){return te(this,Lt).has(e)&&te(this,We).get(e)===te(this,Lt).get(e)}addLocalCreature(e){e.name&&(te(this,Lt).set(e.name,e),te(this,We).set(e.name,e),Qe(this,va,Qo).call(this,e),Qe(this,Li,Wn).call(this),Qe(this,_i,en).call(this))}removeLocalCreature(e){te(this,We).has(e)&&te(this,We).get(e)===te(this,Lt).get(e)&&te(this,We).delete(e),Qe(this,ka,Io).call(this,te(this,Lt).get(e)),te(this,Lt).delete(e),te(this,Ni).has(e)?te(this,We).set(e,te(this,Ni).get(e)):this.enableSRD&&pa.has(e)&&te(this,We).set(e,pa.get(e)),Qe(this,Li,Wn).call(this),Qe(this,_i,en).call(this)}addEphemeralCreature(e){e.name&&(te(this,Ni).set(e.name,e),te(this,We).set(e.name,e),te(this,tt).trigger("fantasy-statblocks:bestiary:creature-added",e),Qe(this,va,Qo).call(this,e),Qe(this,_i,en).call(this),Qe(this,Li,Wn).call(this))}removeEphemeralCreature(e){Qe(this,ka,Io).call(this,te(this,We).get(e)),te(this,We).delete(e),te(this,Ni).delete(e),Qe(this,Li,Wn).call(this),Qe(this,_i,en).call(this)}removeCreatures(...e){for(let t of e)this.isLocal(t)?this.removeLocalCreature(t):this.removeEphemeralCreature(t)}isResolved(){return te(this,ba)}setResolved(e){ei(this,ba,e),e&&(te(this,tt).trigger("fantasy-statblocks:bestiary:resolved"),Qe(this,Li,Wn).call(this),Qe(this,_i,en).call(this))}onResolved(e){let t;return this.isResolved()?e():t=te(this,tt).on("fantasy-statblocks:bestiary:resolved",()=>e()),()=>{t&&te(this,tt).offref(t)}}onUpdated(e){let t;return this.isResolved()?e():t=te(this,tt).on("fantasy-statblocks:bestiary:updated",()=>e()),()=>{t&&te(this,tt).offref(t)}}size(){return te(this,We).size}getBestiary(){return te(this,We)}getBestiaryCreatures(){return Array.from(te(this,We).values())}getBestiaryNames(){return Array.from(te(this,We).keys()).sort()}hasCreature(e){return te(this,We).has(e)}getExtensions(e,t){let n=[(0,od.default)(e)];if(!("extends"in e)||!(Array.isArray(e.extends)||typeof e.extends=="string"))return n;if(e.extends&&e.extends.length)for(let a of[e.extends].flat()){if(t.has(a)){console.info("Circular extend dependency detected in "+[...t]);continue}t.add(e.name);let s=te(this,We).get(a);s&&n.push(...this.getExtensions(s,t))}return n}getExtensionNames(e,t){let n=[e.name];if(!("extends"in e)||!(Array.isArray(e.extends)||typeof e.extends=="string"))return n;if(e.extends&&e.extends.length)for(let a of[e.extends].flat()){if(t.has(a)){console.info("Circular extend dependency detected in "+[...t]);continue}t.add(e.name);let s=te(this,We).get(a);s&&n.push(...this.getExtensionNames(s,t))}return n}async getCreatureFromBestiary(e){return new Promise(t=>{this.onResolved(()=>{this.hasCreature(e)||t(null);let n=te(this,We).get(e);t(Object.assign({},...this.getExtensions(n,new Set(n.name)),n))})})}getCreatureFromBestiarySync(e){if(!this.isResolved())throw new Error("The bestiary is not fully resolved.");if(!this.hasCreature(e))return null;let t=te(this,We).get(e);return Object.assign({},...this.getExtensions(t,new Set(t.name)),t)}get(e){return te(this,We).get(e)}};We=new WeakMap,Lt=new WeakMap,Ni=new WeakMap,ba=new WeakMap,li=new WeakMap,tn=new WeakMap,ya=new WeakMap,_i=new WeakSet,en=function(...e){this.isResolved()&&setTimeout(()=>{for(let t of e&&e.length?e:[...te(this,tn).keys()])te(this,ya).set(t,this.getBestiaryCreatures().sort((n,a)=>te(this,tn).get(t)(n,a))),te(this,tt).trigger(`fantasy-statblocks:bestiary:sorted:${t}`,this.getSortedBy(t))},0)},tt=new WeakMap,va=new WeakSet,Qo=function(e){setTimeout(()=>{for(let[t,n]of te(this,li))if(t in e){let a=[];if(Array.isArray(e[t]))for(let s of e[t])a.push(ye(s));else a.push(ye(e[t]));for(let s of a)n.has(s)?n.get(s).add(e.name):n.set(s,new Set([e.name]));te(this,tt).trigger(`fantasy-statblocks:bestiary:indexed:${t}`)}},0)},ka=new WeakSet,Io=function(e){setTimeout(()=>{for(let[t,n]of te(this,li))if(t in e){let a=ye(e[t]);n.has(a)&&n.get(a).delete(e.name),te(this,tt).trigger(`fantasy-statblocks:bestiary:indexed:${t}`)}},0)},Li=new WeakSet,Wn=function(){this.isResolved()&&te(this,tt).trigger("fantasy-statblocks:bestiary:updated")};var ve=new Eo;var cd=It(mi()),qt=class extends ld.MarkdownRenderChild{constructor(t,n=!0){super(t.container);this.rendererParameters=t;this.icons=n;this.loaded=!1;this.container=t.container,this.plugin=t.plugin,this.context=t.context??"",this.setCreature(t),this.setLayout(),this.init()}setLayout(){this.layout=this.rendererParameters.layout??this.plugin.manager.getAllLayouts().find(t=>t.name==(this.params.layout??this.monster.layout)||t.name==(this.params.statblock??this.monster.statblock))??this.plugin.manager.getDefaultLayout()}get canSave(){return"name"in this.params}async build(){let t=Object.assign({},this.monster??{},this.params??{});if(Object.values(t).length||(t=Object.assign({},t,{note:this.context})),t.note){let a=Array.isArray(t.note)?t.note.flat(1/0).pop():t.note,s=await this.plugin.app.metadataCache.getFirstLinkpathDest(`${a}`,this.context??"");if(s&&s instanceof wt.TFile){let r=(0,wt.getFrontMatterInfo)(await this.plugin.app.vault.cachedRead(s));r.exists&&Object.assign(t,(0,Ro.default)((0,wt.parseYaml)(ct.transformYamlSource(r.frontmatter))??{}),this.params)}}"image"in t&&Array.isArray(t.image)&&(t.image=t.image.flat(2).join(""));let n=ve.getExtensions(t,new Set);for(let a of n.reverse())t=Object.assign(t,a);t=Object.assign(t,this.monster??{},this.params??{});for(let a of this.unwrapBlocks(this.layout.blocks))if("properties"in a){for(let s of a.properties)if(!(!(s in t)&&!(`${s}+`in t)&&!(`${s}-`in t)))switch(a.type){case"traits":{let r=new Map,o=[],l=new Set;for(let d of n){let h=Oi(s,d);for(let u of h)r.set(u.name,u);h=Oi(`${s}+`,d);for(let u of h)o.push(u);h=Oi(`${s}-`,d);for(let u of h)l.add(u.name)}let c=Oi(s,t);for(let d of c)s in this.params?r.set(d.name,d):(r.delete(d.name),o.push(d));c=Oi(`${s}+`,t);for(let d of c)o.push(d);c=Oi(`${s}-`,t);for(let d of c)l.add(d.name);c=Oi(`${s}-`,this.params);for(let d of c)l.add(d.name);for(let d of l)r.delete(d),o=o.filter(h=>h.name!==d);c=Oi(s,this.params);for(let d of c)r.delete(d.name),o.push(d);c=Oi(`${s}+`,this.params);for(let d of c)o.push(d);Object.assign(t,{[s]:[...r.values(),...o]});break}case"saves":{let r=t[s]??[];s in t&&!Array.isArray(t[s])&&typeof t[s]=="object"&&(r=Object.entries(t[s]??{}).map(([l,c])=>({[l]:c}))),Object.assign(t,{[s]:r});let o=[];`${s}+`in t&&!Array.isArray(t[`${s}+`])&&typeof t[`${s}+`]=="object"&&(o=Object.entries(t[s]??{}).map(([l,c])=>({[l]:c}))),o.length&&Object.assign(t,{[s]:Xr(t[s],o)});break}default:if(`${s}+`in t&&s in t){let r=Xr(t[s],t[`${s}+`]);r&&Object.assign(t,{[s]:r})}}}return t=this.transformLinks(t),t}unwrapBlocks(t){let n=[];for(let a of t)switch(a.type){case"group":case"inline":case"collapse":{n.push(...this.unwrapBlocks(a.nested));break}case"layout":case"ifelse":case"javascript":continue;default:n.push(a);break}return n}setCreature(t){"params"in t?(this.params=t.params,this.monster=Object.assign({},ve.get(this.params.monster)??ve.get(this.params.creature))):(this.params={},this.monster=t.monster)}async init(){this.containerEl.empty(),this.monster=await this.build(),this.$ui=new rd({target:this.containerEl,props:{context:this.context,monster:this.monster,statblock:this.layout.blocks,layout:this.layout,plugin:this.plugin,renderer:this,canSave:this.canSave,icons:this.icons??!0}}),this.$ui.$on("save",async()=>{ve.hasCreature(this.monster.name)&&!await No(this.plugin.app,"This will overwrite an existing monster in settings. Are you sure?")||this.plugin.saveMonster({...(0,Ro.default)(this.monster),source:this.monster.source??"Homebrew",layout:this.layout.name})}),this.$ui.$on("export",()=>{this.plugin.exportAsPng(this.monster.name,this.containerEl.firstElementChild)});let t=ve.getExtensionNames(this.monster,new Set);this.plugin.registerEvent(this.plugin.app.workspace.on("fantasy-statblocks:bestiary:creature-added",async n=>{t.includes(n.name)&&(this.monster=(0,cd.default)(n),this.monster=await this.build(),this.$ui.$set({monster:this.monster}))}))}transformLinks(t){return(0,wt.parseYaml)(ct.transformYamlSource((0,wt.stringifyYaml)(t).replace(/\\#/g,"#")))}};async function No(i,e,t={cta:"Yes",secondary:"No"}){return new Promise((n,a)=>{let s=new Wo(i,e,t);s.onClose=()=>{n(s.confirmed)},s.open()})}var Wo=class extends wt.Modal{constructor(t,n,a){super(t);this.text=n;this.buttons=a;this.confirmed=!1}async display(){new Promise(t=>{this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:this.text});let n=this.contentEl.createDiv("fantasy-calendar-confirm-buttons");new wt.ButtonComponent(n).setButtonText(this.buttons.cta).setCta().onClick(()=>{this.confirmed=!0,this.close()}),new wt.ButtonComponent(n).setButtonText(this.buttons.secondary).onClick(()=>{this.close()})})}onOpen(){this.display()}};function Oi(i,e){let t=[];if(i in e&&Array.isArray(e[i]))for(let n of e[i])!Array.isArray(n)&&typeof n=="object"&&"name"in n&&t.push(n),Array.isArray(n)&&n.length>=1&&t.push({name:n[0],desc:n.slice(1).join("")});return t}var ke=require("obsidian");var Jt=require("obsidian");var wa=[["group","Group"],["inline","Inline Group"],["ifelse","If/Else"],["collapse","Collapsible"],["javascript","JavaScript"],["layout","Layout"],["action","Action"],[null,"separator"],["heading","Heading"],["image","Image"],["property","Property Line"],["saves","Saves"],["spells","Spells"],["subheading","Subheading"],["table","Table"],["text","Text"],["traits","Traits"]];function Os(i){let e=i-1;return e*e*e+1}function $i(i,{from:e,to:t},n={}){let a=getComputedStyle(i),s=a.transform==="none"?"":a.transform,[r,o]=a.transformOrigin.split(" ").map(parseFloat),l=e.left+e.width*r/t.width-(t.left+r),c=e.top+e.height*o/t.height-(t.top+o),{delay:d=0,duration:h=f=>Math.sqrt(f)*120,easing:u=Os}=n;return{delay:d,duration:Ie(h)?h(Math.sqrt(l*l+c*c)):h,easing:u,css:(f,m)=>{let p=m*l,y=m*c,w=f+m*e.width/t.width,_=f+m*e.height/t.height;return`transform: ${s} translate(${p}px, ${y}px) scale(${w}, ${_});`}}}function hd(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(a){return Object.getOwnPropertyDescriptor(i,a).enumerable})),t.push.apply(t,n)}return t}function an(i){for(var e=1;e=0)&&(t[a]=i[a]);return t}function _1(i,e){if(i==null)return{};var t=w1(i,e),n,a;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(i);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(i,n)&&(t[n]=i[n])}return t}function O1(i,e){return x1(i)||C1(i,e)||Xo(i,e)||D1()}function $n(i){return S1(i)||T1(i)||Xo(i)||A1()}function S1(i){if(Array.isArray(i))return $o(i)}function x1(i){if(Array.isArray(i))return i}function T1(i){if(typeof Symbol<"u"&&i[Symbol.iterator]!=null||i["@@iterator"]!=null)return Array.from(i)}function C1(i,e){var t=i==null?null:typeof Symbol<"u"&&i[Symbol.iterator]||i["@@iterator"];if(t!=null){var n=[],a=!0,s=!1,r,o;try{for(t=t.call(i);!(a=(r=t.next()).done)&&(n.push(r.value),!(e&&n.length===e));a=!0);}catch(l){s=!0,o=l}finally{try{!a&&t.return!=null&&t.return()}finally{if(s)throw o}}return n}}function Xo(i,e){if(i){if(typeof i=="string")return $o(i,e);var t=Object.prototype.toString.call(i).slice(8,-1);if(t==="Object"&&i.constructor&&(t=i.constructor.name),t==="Map"||t==="Set")return Array.from(i);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return $o(i,e)}}function $o(i,e){(e==null||e>i.length)&&(e=i.length);for(var t=0,n=new Array(e);t=i.length?{done:!0}:{done:!1,value:i[n++]}},e:function(l){throw l},f:a}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,r=!1,o;return{s:function(){t=t.call(i)},n:function(){var l=t.next();return s=l.done,l},e:function(l){r=!0,o=l},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(r)throw o}}}}var P1="finalize",M1="consider";function Bn(i,e,t){i.dispatchEvent(new CustomEvent(P1,{detail:{items:e,info:t}}))}function Hi(i,e,t){i.dispatchEvent(new CustomEvent(M1,{detail:{items:e,info:t}}))}var Rs="draggedEntered",Ca="draggedLeft",Ws="draggedOverIndex",qo="draggedLeftDocument",Cs={LEFT_FOR_ANOTHER:"leftForAnother",OUTSIDE_OF_ANY:"outsideOfAny"};function E1(i,e,t){i.dispatchEvent(new CustomEvent(Rs,{detail:{indexObj:e,draggedEl:t}}))}function Q1(i,e,t){i.dispatchEvent(new CustomEvent(Ca,{detail:{draggedEl:e,type:Cs.LEFT_FOR_ANOTHER,theOtherDz:t}}))}function I1(i,e){i.dispatchEvent(new CustomEvent(Ca,{detail:{draggedEl:e,type:Cs.OUTSIDE_OF_ANY}}))}function R1(i,e,t){i.dispatchEvent(new CustomEvent(Ws,{detail:{indexObj:e,draggedEl:t}}))}function W1(i){window.dispatchEvent(new CustomEvent(qo,{detail:{draggedEl:i}}))}var qe={DRAG_STARTED:"dragStarted",DRAGGED_ENTERED:Rs,DRAGGED_ENTERED_ANOTHER:"dragEnteredAnother",DRAGGED_OVER_INDEX:Ws,DRAGGED_LEFT:Ca,DRAGGED_LEFT_ALL:"draggedLeftAll",DROPPED_INTO_ZONE:"droppedIntoZone",DROPPED_INTO_ANOTHER:"droppedIntoAnother",DROPPED_OUTSIDE_OF_ANY:"droppedOutsideOfAny",DRAG_STOPPED:"dragStopped"},ze={POINTER:"pointer",KEYBOARD:"keyboard"},Ns="isDndShadowItem",Uo="data-is-dnd-shadow-item",hi="id:dnd-shadow-placeholder-0000",N1="dnd-action-dragged-el",it="id",Bo=0;function _d(){Bo++}function Od(){if(Bo===0)throw new Error("Bug! trying to decrement when there are no dropzones");Bo--}var Vo=typeof window>"u",_e=function(){};function Sd(i){var e,t=i.getBoundingClientRect(),n=getComputedStyle(i),a=n.transform;if(a){var s,r,o,l;if(a.startsWith("matrix3d("))e=a.slice(9,-1).split(/, /),s=+e[0],r=+e[5],o=+e[12],l=+e[13];else if(a.startsWith("matrix("))e=a.slice(7,-1).split(/, /),s=+e[0],r=+e[3],o=+e[4],l=+e[5];else return t;var c=n.transformOrigin,d=t.x-o-(1-s)*parseFloat(c),h=t.y-l-(1-r)*parseFloat(c.slice(c.indexOf(" ")+1)),u=s?t.width/s:i.offsetWidth,f=r?t.height/r:i.offsetHeight;return{x:d,y:h,width:u,height:f,top:h,right:d+u,bottom:h+f,left:d}}else return t}function xd(i){var e=Sd(i);return{top:e.top+window.scrollY,bottom:e.bottom+window.scrollY,left:e.left+window.scrollX,right:e.right+window.scrollX}}function Yo(i){var e=i.getBoundingClientRect();return{top:e.top+window.scrollY,bottom:e.bottom+window.scrollY,left:e.left+window.scrollX,right:e.right+window.scrollX}}function Td(i){return{x:(i.left+i.right)/2,y:(i.top+i.bottom)/2}}function L1(i,e){return Math.sqrt(Math.pow(i.x-e.x,2)+Math.pow(i.y-e.y,2))}function Go(i,e){return i.y<=e.bottom&&i.y>=e.top&&i.x>=e.left&&i.x<=e.right}function Sa(i){return Td(Yo(i))}function dd(i,e){var t=Sa(i),n=xd(e);return Go(t,n)}function $1(i,e){var t=Sa(i),n=Sa(e);return L1(t,n)}function B1(i){var e=Yo(i);return e.right<0||e.left>document.documentElement.scrollWidth||e.bottom<0||e.top>document.documentElement.scrollHeight}function z1(i,e){var t=Yo(e);return Go(i,t)?{top:i.y-t.top,bottom:t.bottom-i.y,left:i.x-t.left,right:Math.min(t.right,document.documentElement.clientWidth)-i.x}:null}var on;function Ko(){_e(function(){return"resetting indexes cache"}),on=new Map}Ko();function H1(i){_e(function(){return"resetting indexes cache for dz"}),on.delete(i)}function F1(i){var e=Array.from(i.children).findIndex(function(t){return t.getAttribute(Uo)});if(e>=0)return on.has(i)||on.set(i,new Map),on.get(i).set(e,xd(i.children[e])),e}function j1(i,e){if(!dd(i,e))return null;var t=e.children;if(t.length===0)return{index:0,isProximityBased:!0};for(var n=F1(e),a=0;ar.clientHeight&&(o.bottom<_a?(c=!0,i.directionObj={x:0,y:1},i.stepPx=n(o.bottom)):o.top<_a&&(c=!0,i.directionObj={x:0,y:-1},i.stepPx=n(o.top)),!l&&c)||r.scrollWidth>r.clientWidth&&(o.right<_a?(d=!0,i.directionObj={x:1,y:0},i.stepPx=n(o.right)):o.left<_a&&(d=!0,i.directionObj={x:-1,y:0},i.stepPx=n(o.left)),!l&&d)?(t(r),!0):(e(),!1)}return{scrollIfNeeded:a,resetScrolling:e}}function Si(i){return JSON.stringify(i,null,2)}function ud(i){if(!i)throw new Error("cannot get depth of a falsy node");return Ad(i,0)}function Ad(i){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return i.parentElement?Ad(i.parentElement,e+1):e-1}function Z1(i,e){if(Object.keys(i).length!==Object.keys(e).length)return!1;for(var t in i)if(!{}.hasOwnProperty.call(e,t)||e[t]!==i[t])return!1;return!0}function X1(i,e){if(i.length!==e.length)return!1;for(var t=0;t2&&arguments[2]!==void 0?arguments[2]:q1,n,a,s=!1,r,o=Array.from(e).sort(function(c,d){return ud(d)-ud(c)});function l(){var c=Sa(i),d=U1(c,n);if(!d&&r&&Math.abs(r.x-c.x)1&&arguments[1]!==void 0?arguments[1]:function(){},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){return[]};i.forEach(function(n){var a=e(n);Object.keys(a).forEach(function(s){n.style[s]=a[s]}),t(n).forEach(function(s){return n.classList.add(s)})})}function Ps(i){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:function(){},t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:function(){return[]};i.forEach(function(n){var a=e(n);Object.keys(a).forEach(function(s){n.style[s]=""}),t(n).forEach(function(s){return n.classList.contains(s)&&n.classList.remove(s)})})}function ub(i){var e=i.style.minHeight;i.style.minHeight=window.getComputedStyle(i).getPropertyValue("height");var t=i.style.minWidth;return i.style.minWidth=window.getComputedStyle(i).getPropertyValue("width"),function(){i.style.minHeight=e,i.style.minWidth=t}}var fb="--any--",mb=100,md=3,gd={outline:"rgba(255, 255, 102, 0.7) solid 2px"},ci,dt,Pt,Ls,Ge,$s,zn,_t,Bi,$t,rn=!1,Jo=!1,el,Aa=!1,Oa=[],Yt=new Map,Ye=new Map,Lo=new WeakMap;function gb(i,e){_e(function(){return"registering drop-zone if absent"}),Yt.has(e)||Yt.set(e,new Set),Yt.get(e).has(i)||(Yt.get(e).add(i),_d())}function pd(i,e){Yt.get(e).delete(i),Od(),Yt.get(e).size===0&&Yt.delete(e)}function pb(){_e(function(){return"watching dragged element"}),tb();var i=Yt.get(Ls),e=Is(i),t;try{for(e.s();!(t=e.n()).done;){var n=t.value;n.addEventListener(Rs,Wd),n.addEventListener(Ca,Nd),n.addEventListener(Ws,Ld)}}catch(s){e.e(s)}finally{e.f()}window.addEventListener(qo,Hn);var a=Math.max.apply(Math,[mb].concat($n(Array.from(i.keys()).map(function(s){return Ye.get(s).dropAnimationDurationMs}))));Y1(dt,i,a*1.07)}function bb(){_e(function(){return"unwatching dragged element"}),ib();var i=Yt.get(Ls),e=Is(i),t;try{for(e.s();!(t=e.n()).done;){var n=t.value;n.removeEventListener(Rs,Wd),n.removeEventListener(Ca,Nd),n.removeEventListener(Ws,Ld)}}catch(a){e.e(a)}finally{e.f()}window.removeEventListener(qo,Hn),G1()}function yb(i){return i.findIndex(function(e){return e[it]===hi})}function Bs(i){return i.findIndex(function(e){return!!e[Ns]&&e[it]!==hi})}function Wd(i){_e(function(){return["dragged entered",i.currentTarget,i.detail]});var e=Ye.get(i.currentTarget),t=e.items,n=e.dropFromOthersDisabled;if(n&&i.currentTarget!==Ge){_e(function(){return"ignoring dragged entered because drop is currently disabled"});return}if(Aa=!1,t=t.filter(function(h){return h[it]!==zn[it]}),_e(function(){return"dragged entered items ".concat(Si(t))}),Ge!==i.currentTarget){var a=Ye.get(Ge).items,s=a.filter(function(h){return!h[Ns]});Hi(Ge,s,{trigger:qe.DRAGGED_ENTERED_ANOTHER,id:Pt[it],source:ze.POINTER})}else{var r=yb(t);r!==-1&&(_e(function(){return"removing placeholder item from origin dz"}),t.splice(r,1))}var o=i.detail.indexObj,l=o.index,c=o.isProximityBased,d=c&&l===i.currentTarget.children.length-1?l+1:l;_t=i.currentTarget,t.splice(d,0,zn),Hi(i.currentTarget,t,{trigger:qe.DRAGGED_ENTERED,id:Pt[it],source:ze.POINTER})}function Nd(i){if(rn){_e(function(){return["dragged left",i.currentTarget,i.detail]});var e=Ye.get(i.currentTarget),t=e.items,n=e.dropFromOthersDisabled;if(n&&i.currentTarget!==Ge&&i.currentTarget!==_t){_e(function(){return"drop is currently disabled"});return}var a=Bs(t),s=t.splice(a,1)[0];_t=void 0;var r=i.detail,o=r.type,l=r.theOtherDz;if(o===Cs.OUTSIDE_OF_ANY||o===Cs.LEFT_FOR_ANOTHER&&l!==Ge&&Ye.get(l).dropFromOthersDisabled){_e(function(){return"dragged left all, putting shadow element back in the origin dz"}),Aa=!0,_t=Ge;var c=Ye.get(Ge).items;c.splice($s,0,s),Hi(Ge,c,{trigger:qe.DRAGGED_LEFT_ALL,id:Pt[it],source:ze.POINTER})}Hi(i.currentTarget,t,{trigger:qe.DRAGGED_LEFT,id:Pt[it],source:ze.POINTER})}}function Ld(i){_e(function(){return["dragged is over index",i.currentTarget,i.detail]});var e=Ye.get(i.currentTarget),t=e.items,n=e.dropFromOthersDisabled;if(n&&i.currentTarget!==Ge){_e(function(){return"drop is currently disabled"});return}Aa=!1;var a=i.detail.indexObj.index,s=Bs(t);t.splice(s,1),t.splice(a,0,zn),Hi(i.currentTarget,t,{trigger:qe.DRAGGED_OVER_INDEX,id:Pt[it],source:ze.POINTER})}function Ms(i){i.preventDefault();var e=i.touches?i.touches[0]:i;$t={x:e.clientX,y:e.clientY},dt.style.transform="translate3d(".concat($t.x-Bi.x,"px, ").concat($t.y-Bi.y,"px, 0)")}function Hn(){_e(function(){return"dropped"}),Jo=!0,window.removeEventListener("mousemove",Ms),window.removeEventListener("touchmove",Ms),window.removeEventListener("mouseup",Hn),window.removeEventListener("touchend",Hn),bb(),ob(dt),_t||(_e(function(){return"element was dropped right after it left origin but before entering somewhere else"}),_t=Ge),_e(function(){return["dropped in dz",_t]});var i=Ye.get(_t),e=i.items,t=i.type;Ps(Yt.get(t),function(s){return Ye.get(s).dropTargetStyle},function(s){return Ye.get(s).dropTargetClasses});var n=Bs(e);n===-1&&(n=$s),e=e.map(function(s){return s[Ns]?Pt:s});function a(){el(),Bn(_t,e,{trigger:Aa?qe.DROPPED_OUTSIDE_OF_ANY:qe.DROPPED_INTO_ZONE,id:Pt[it],source:ze.POINTER}),_t!==Ge&&Bn(Ge,Ye.get(Ge).items,{trigger:qe.DROPPED_INTO_ANOTHER,id:Pt[it],source:ze.POINTER}),db(_t.children[n]),wb()}vb(n,a)}function vb(i,e){var t=Sd(_t.children[i]),n={x:t.left-parseFloat(dt.style.left),y:t.top-parseFloat(dt.style.top)},a=Ye.get(_t),s=a.dropAnimationDurationMs,r="transform ".concat(s,"ms ease");dt.style.transition=dt.style.transition?dt.style.transition+","+r:r,dt.style.transform="translate3d(".concat(n.x,"px, ").concat(n.y,"px, 0)"),window.setTimeout(e,s)}function kb(i,e){Oa.push({dz:i,destroy:e}),window.requestAnimationFrame(function(){Rd(i),document.body.appendChild(i)})}function wb(){dt.remove(),ci.remove(),Oa.length&&(_e(function(){return["will destroy zones that were removed during drag",Oa]}),Oa.forEach(function(i){var e=i.dz,t=i.destroy;t(),e.remove()}),Oa=[]),dt=void 0,ci=void 0,Pt=void 0,Ls=void 0,Ge=void 0,$s=void 0,zn=void 0,_t=void 0,Bi=void 0,$t=void 0,rn=!1,Jo=!1,el=void 0,Aa=!1}function _b(i,e){var t=!1,n={items:void 0,type:void 0,flipDurationMs:0,dragDisabled:!1,morphDisabled:!1,dropFromOthersDisabled:!1,dropTargetStyle:gd,dropTargetClasses:[],transformDraggedElement:function(){},centreDraggedOnCursor:!1};_e(function(){return["dndzone good to go options: ".concat(Si(e),", config: ").concat(Si(n)),{node:i}]});var a=new Map;function s(){window.addEventListener("mousemove",l,{passive:!1}),window.addEventListener("touchmove",l,{passive:!1,capture:!1}),window.addEventListener("mouseup",o,{passive:!1}),window.addEventListener("touchend",o,{passive:!1})}function r(){window.removeEventListener("mousemove",l),window.removeEventListener("touchmove",l),window.removeEventListener("mouseup",o),window.removeEventListener("touchend",o)}function o(){r(),ci=void 0,Bi=void 0,$t=void 0}function l(u){u.preventDefault();var f=u.touches?u.touches[0]:u;$t={x:f.clientX,y:f.clientY},(Math.abs($t.x-Bi.x)>=md||Math.abs($t.y-Bi.y)>=md)&&(r(),d())}function c(u){if(u.target!==u.currentTarget&&(u.target.value!==void 0||u.target.isContentEditable)){_e(function(){return"won't initiate drag on a nested input element"});return}if(u.button){_e(function(){return"ignoring none left click button: ".concat(u.button)});return}if(rn){_e(function(){return"cannot start a new drag before finalizing previous one"});return}u.stopPropagation();var f=u.touches?u.touches[0]:u;Bi={x:f.clientX,y:f.clientY},$t=an({},Bi),ci=u.currentTarget,s()}function d(){_e(function(){return["drag start config: ".concat(Si(n)),ci]}),rn=!0;var u=a.get(ci);$s=u,Ge=ci.parentElement;var f=Ge.getRootNode(),m=f.body||f,p=n.items,y=n.type,w=n.centreDraggedOnCursor;Pt=an({},p[u]),Ls=y,zn=an(an({},Pt),{},Ln({},Ns,!0));var _=an(an({},zn),{},Ln({},it,hi));dt=rb(ci,w&&$t);function O(){dt.parentElement?window.requestAnimationFrame(O):(m.appendChild(dt),dt.focus(),pb(),Rd(ci),m.appendChild(ci))}window.requestAnimationFrame(O),xs(Array.from(Yt.get(n.type)).filter(function(E){return E===Ge||!Ye.get(E).dropFromOthersDisabled}),function(E){return Ye.get(E).dropTargetStyle},function(E){return Ye.get(E).dropTargetClasses}),p.splice(u,1,_),el=ub(Ge),Hi(Ge,p,{trigger:qe.DRAG_STARTED,id:Pt[it],source:ze.POINTER}),window.addEventListener("mousemove",Ms,{passive:!1}),window.addEventListener("touchmove",Ms,{passive:!1,capture:!1}),window.addEventListener("mouseup",Hn,{passive:!1}),window.addEventListener("touchend",Hn,{passive:!1})}function h(u){var f=u.items,m=f===void 0?void 0:f,p=u.flipDurationMs,y=p===void 0?0:p,w=u.type,_=w===void 0?fb:w,O=u.dragDisabled,E=O===void 0?!1:O,S=u.morphDisabled,v=S===void 0?!1:S,x=u.dropFromOthersDisabled,P=x===void 0?!1:x,I=u.dropTargetStyle,R=I===void 0?gd:I,T=u.dropTargetClasses,$=T===void 0?[]:T,K=u.transformDraggedElement,Z=K===void 0?function(){}:K,F=u.centreDraggedOnCursor,V=F===void 0?!1:F;n.dropAnimationDurationMs=y,n.type&&_!==n.type&&pd(i,n.type),n.type=_,n.items=$n(m),n.dragDisabled=E,n.morphDisabled=v,n.transformDraggedElement=Z,n.centreDraggedOnCursor=V,t&&rn&&!Jo&&(!Z1(R,n.dropTargetStyle)||!X1($,n.dropTargetClasses))&&(Ps([i],function(){return n.dropTargetStyle},function(){return $}),xs([i],function(){return R},function(){return $})),n.dropTargetStyle=R,n.dropTargetClasses=$n($);function B(J,ue){return Ye.get(J)?Ye.get(J)[ue]:n[ue]}t&&rn&&n.dropFromOthersDisabled!==P&&(P?Ps([i],function(J){return B(J,"dropTargetStyle")},function(J){return B(J,"dropTargetClasses")}):xs([i],function(J){return B(J,"dropTargetStyle")},function(J){return B(J,"dropTargetClasses")})),n.dropFromOthersDisabled=P,Ye.set(i,n),gb(i,_);for(var Y=Bs(n.items),L=0;L".concat(e,"

"),t.style.display="none",t.style.position="fixed",t.style.zIndex="-5",t}function Nn(i){if(!Vo){Ve||Fo(),Ve.innerHTML="";var e=document.createTextNode(i);Ve.appendChild(e),Ve.style.display="none",Ve.style.display="inline"}}var Cb="--any--",bd={outline:"rgba(255, 255, 102, 0.7) solid 2px"},Bt=!1,jo,ut,ln="",sn,Ut,zi="",Es=new WeakSet,yd=new WeakMap,vd=new WeakMap,Zo=new Map,ht=new Map,Vt=new Map,Qs;function Ab(i,e){_e(function(){return"registering drop-zone if absent"}),Vt.size===0&&(_e(function(){return"adding global keydown and click handlers"}),Qs=Sb(),window.addEventListener("keydown",Bd),window.addEventListener("click",zd)),Vt.has(e)||Vt.set(e,new Set),Vt.get(e).has(i)||(Vt.get(e).add(i),_d())}function kd(i,e){_e(function(){return"unregistering drop-zone"}),ut===i&&Ta(),Vt.get(e).delete(i),Od(),Vt.get(e).size===0&&Vt.delete(e),Vt.size===0&&(_e(function(){return"removing global keydown and click handlers"}),window.removeEventListener("keydown",Bd),window.removeEventListener("click",zd),Qs=void 0,xb())}function Bd(i){if(Bt)switch(i.key){case"Escape":{Ta();break}}}function zd(){Bt&&(Es.has(document.activeElement)||(_e(function(){return"clicked outside of any draggable"}),Ta()))}function Db(i){if(_e(function(){return"zone focus"}),!!Bt){var e=i.currentTarget;if(e!==ut){ln=e.getAttribute("aria-label")||"";var t=ht.get(ut),n=t.items,a=n.find(function(h){return h[it]===Ut}),s=n.indexOf(a),r=n.splice(s,1)[0],o=ht.get(e),l=o.items,c=o.autoAriaDisabled;e.getBoundingClientRect().top0&&arguments[0]!==void 0?arguments[0]:!0;_e(function(){return"drop"}),ht.get(ut).autoAriaDisabled||Nn("Stopped dragging item ".concat(zi)),Es.has(document.activeElement)&&document.activeElement.blur(),i&&Hi(ut,ht.get(ut).items,{trigger:qe.DRAG_STOPPED,id:Ut,source:ze.KEYBOARD}),Ps(Vt.get(jo),function(e){return ht.get(e).dropTargetStyle},function(e){return ht.get(e).dropTargetClasses}),sn=null,Ut=null,zi="",jo=null,ut=null,ln="",Bt=!1,Hd()}function Pb(i,e){var t={items:void 0,type:void 0,dragDisabled:!1,zoneTabIndex:0,dropFromOthersDisabled:!1,dropTargetStyle:bd,dropTargetClasses:[],autoAriaDisabled:!1};function n(d,h,u){d.length<=1||d.splice(u,1,d.splice(h,1,d[u])[0])}function a(d){switch(_e(function(){return["handling key down",d.key]}),d.key){case"Enter":case" ":{if((d.target.disabled!==void 0||d.target.href||d.target.isContentEditable)&&!Es.has(d.target))return;d.preventDefault(),d.stopPropagation(),Bt?Ta():s(d);break}case"ArrowDown":case"ArrowRight":{if(!Bt)return;d.preventDefault(),d.stopPropagation();var h=ht.get(i),u=h.items,f=Array.from(i.children),m=f.indexOf(d.currentTarget);_e(function(){return["arrow down",m]}),m0&&(t.autoAriaDisabled||Nn("Moved item ".concat(zi," to position ").concat(_," in the list ").concat(ln)),n(y,_,_-1),Bn(i,y,{trigger:qe.DROPPED_INTO_ZONE,id:Ut,source:ze.KEYBOARD}));break}}}function s(d){_e(function(){return"drag start"}),o(d.currentTarget),ut=i,jo=t.type,Bt=!0;var h=Array.from(Vt.get(t.type)).filter(function(f){return f===ut||!ht.get(f).dropFromOthersDisabled});if(xs(h,function(f){return ht.get(f).dropTargetStyle},function(f){return ht.get(f).dropTargetClasses}),!t.autoAriaDisabled){var u="Started dragging item ".concat(zi,". Use the arrow keys to move it within its list ").concat(ln);h.length>1&&(u+=", or tab to another list in order to move the item into it"),Nn(u)}Hi(i,ht.get(i).items,{trigger:qe.DRAG_STARTED,id:Ut,source:ze.KEYBOARD}),Hd()}function r(d){Bt&&d.currentTarget!==sn&&(d.stopPropagation(),Ta(!1),s(d))}function o(d){var h=ht.get(i),u=h.items,f=Array.from(i.children),m=f.indexOf(d);sn=d,sn.tabIndex=0,Ut=u[m][it],zi=f[m].getAttribute("aria-label")||""}function l(d){var h=d.items,u=h===void 0?[]:h,f=d.type,m=f===void 0?Cb:f,p=d.dragDisabled,y=p===void 0?!1:p,w=d.zoneTabIndex,_=w===void 0?0:w,O=d.dropFromOthersDisabled,E=O===void 0?!1:O,S=d.dropTargetStyle,v=S===void 0?bd:S,x=d.dropTargetClasses,P=x===void 0?[]:x,I=d.autoAriaDisabled,R=I===void 0?!1:I;t.items=$n(u),t.dragDisabled=y,t.dropFromOthersDisabled=E,t.zoneTabIndex=_,t.dropTargetStyle=v,t.dropTargetClasses=P,t.autoAriaDisabled=R,t.type&&m!==t.type&&kd(i,t.type),t.type=m,Ab(i,m),R||(i.setAttribute("aria-disabled",y),i.setAttribute("role","list"),i.setAttribute("aria-describedby",y?Qs.DND_ZONE_DRAG_DISABLED:Qs.DND_ZONE_ACTIVE)),ht.set(i,t),Bt?i.tabIndex=i===ut||sn.contains(i)||t.dropFromOthersDisabled||ut&&t.type!==ht.get(ut).type?-1:0:i.tabIndex=t.zoneTabIndex,i.addEventListener("focus",Db);for(var T=function(Z){var F=i.children[Z];Es.add(F),F.tabIndex=Bt?-1:0,R||F.setAttribute("role","listitem"),F.removeEventListener("keydown",yd.get(F)),F.removeEventListener("click",vd.get(F)),y||(F.addEventListener("keydown",a),yd.set(F,a),F.addEventListener("click",r),vd.set(F,r)),Bt&&t.items[Z][it]===Ut&&(_e(function(){return["focusing on",{i:Z,focusedItemId:Ut}]}),sn=F,sn.tabIndex=0,F.focus())},$=0;$0&&console.warn("dndzone will ignore unknown options",f),!e)throw new Error("no 'items' key provided to dndzone");var m=e.find(function(p){return!{}.hasOwnProperty.call(p,it)});if(m)throw new Error("missing '".concat(it,"' property for item ").concat(Si(m)));if(c&&!Array.isArray(c))throw new Error("dropTargetClasses should be an array but instead it is a ".concat(Ts(c),", ").concat(Si(c)));if(o&&!Eb(o))throw new Error("zoneTabIndex should be a number but instead it is a ".concat(Ts(o),", ").concat(Si(o)))}function Eb(i){return!isNaN(i)&&function(e){return(e|0)===e}(parseFloat(i))}var zs=require("obsidian");var Fd=require("@codemirror/view"),Le=(i,e)=>{(0,zs.setIcon)(i,e)};function Da(i,e,t,n,a="js"){let s=new zs.TextAreaComponent(i).setValue(e);return s.inputEl.addClasses(["statblock-textarea",...t]),Ht(s.inputEl,Fd.EditorView.updateListener.of(r=>{r.docChanged&&n(r.state.doc.toString())}),a)}function Qb(i){re(i,"svelte-r3p86y",".property-block-container.svelte-r3p86y{display:flex;justify-content:space-between;align-items:center}.info.svelte-r3p86y{display:flex;flex-flow:column}.context.svelte-r3p86y{display:flex;align-items:center;gap:0.25rem;color:var(--text-muted)}.context-item.svelte-r3p86y{display:flex;align-items:center}")}function jd(i){let e,t,n=i[0].size+"",a,s;return{c(){e=k("span"),t=me("(H"),a=me(n),s=me(")")},m(r,o){D(r,e,o),b(e,t),b(e,a),b(e,s)},p(r,o){o&1&&n!==(n=r[0].size+"")&&we(a,n)},d(r){r&&A(e)}}}function Zd(i){let e,t,n=i[0].headers.join(" | ")+"",a,s;return{c(){e=k("strong"),t=me("("),a=me(n),s=me(")")},m(r,o){D(r,e,o),b(e,t),b(e,a),b(e,s)},p(r,o){o&1&&n!==(n=r[0].headers.join(" | ")+"")&&we(a,n)},d(r){r&&A(e)}}}function Ib(i){let e,t,n=i[2](i[0].layout)+"",a;return{c(){e=k("small"),t=k("em"),a=me(n)},m(s,r){D(s,e,r),b(e,t),b(t,a)},p(s,r){r&1&&n!==(n=s[2](s[0].layout)+"")&&we(a,n)},d(s){s&&A(e)}}}function Rb(i){let e,t,n=i[0].properties.join(", ")+"",a;return{c(){e=k("small"),t=k("em"),a=me(n)},m(s,r){D(s,e,r),b(e,t),b(t,a)},p(s,r){r&1&&n!==(n=s[0].properties.join(", ")+"")&&we(a,n)},d(s){s&&A(e)}}}function Xd(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","context-item heading svelte-r3p86y"),g(e,"aria-label","Has Heading")},m(s,r){D(s,e,r),n||(a=ee(t=Le.call(null,e,"heading-glyph")),n=!0)},d(s){s&&A(e),n=!1,a()}}}function qd(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","context-item conditioned svelte-r3p86y"),g(e,"aria-label","Conditioned")},m(s,r){D(s,e,r),n||(a=ee(t=Le.call(null,e,"help-circle")),n=!0)},d(s){s&&A(e),n=!1,a()}}}function Ud(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","context-item callback svelte-r3p86y"),g(e,"aria-label","Has Callback")},m(s,r){D(s,e,r),n||(a=ee(t=Le.call(null,e,"code-glyph")),n=!0)},d(s){s&&A(e),n=!1,a()}}}function Vd(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","context-item dice svelte-r3p86y"),g(e,"aria-label","Will Parse for Dice Rolls")},m(s,r){D(s,e,r),n||(a=ee(t=Le.call(null,e,"dices")),n=!0)},d(s){s&&A(e),n=!1,a()}}}function Yd(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","context-item dice svelte-r3p86y"),g(e,"aria-label","Render markdown enabled")},m(s,r){D(s,e,r),n||(a=ee(t=Le.call(null,e,"markdown-icon")),n=!0)},d(s){s&&A(e),n=!1,a()}}}function Wb(i){let e,t,n,a,s=i[1](i[0].type)+"",r,o,l,c,d,h,u,f,m,p,y=i[0].type=="heading"&&jd(i),w=i[0].type=="table"&&i[0].headers?.length&&Zd(i);function _(R,T){return R[0].type!="layout"?Rb:Ib}let O=_(i,-1),E=O(i),S="heading"in i[0]&&Xd(i),v=i[0].conditioned&&qd(i),x="callback"in i[0]&&Ud(i),P=("dice"in i[0]&&i[0].dice||"diceCallback"in i[0]&&i[0].diceCallback?.length)&&Vd(i),I="markdown"in i[0]&&i[0].markdown&&Yd(i);return{c(){e=k("div"),t=k("div"),n=k("div"),a=k("span"),r=me(s),o=W(),y&&y.c(),l=W(),w&&w.c(),c=W(),E.c(),d=W(),h=k("small"),S&&S.c(),u=W(),v&&v.c(),f=W(),x&&x.c(),m=W(),P&&P.c(),p=W(),I&&I.c(),g(t,"class","info svelte-r3p86y"),g(h,"class","context svelte-r3p86y"),g(e,"class","property-block-container svelte-r3p86y")},m(R,T){D(R,e,T),b(e,t),b(t,n),b(n,a),b(a,r),b(n,o),y&&y.m(n,null),b(n,l),w&&w.m(n,null),b(t,c),E.m(t,null),b(e,d),b(e,h),S&&S.m(h,null),b(h,u),v&&v.m(h,null),b(h,f),x&&x.m(h,null),b(h,m),P&&P.m(h,null),b(h,p),I&&I.m(h,null)},p(R,[T]){T&1&&s!==(s=R[1](R[0].type)+"")&&we(r,s),R[0].type=="heading"?y?y.p(R,T):(y=jd(R),y.c(),y.m(n,l)):y&&(y.d(1),y=null),R[0].type=="table"&&R[0].headers?.length?w?w.p(R,T):(w=Zd(R),w.c(),w.m(n,null)):w&&(w.d(1),w=null),O===(O=_(R,T))&&E?E.p(R,T):(E.d(1),E=O(R),E&&(E.c(),E.m(t,null))),"heading"in R[0]?S||(S=Xd(R),S.c(),S.m(h,u)):S&&(S.d(1),S=null),R[0].conditioned?v||(v=qd(R),v.c(),v.m(h,f)):v&&(v.d(1),v=null),"callback"in R[0]?x||(x=Ud(R),x.c(),x.m(h,m)):x&&(x.d(1),x=null),"dice"in R[0]&&R[0].dice||"diceCallback"in R[0]&&R[0].diceCallback?.length?P||(P=Vd(R),P.c(),P.m(h,p)):P&&(P.d(1),P=null),"markdown"in R[0]&&R[0].markdown?I||(I=Yd(R),I.c(),I.m(h,null)):I&&(I.d(1),I=null)},i:N,o:N,d(R){R&&A(e),y&&y.d(),w&&w.d(),E.d(),S&&S.d(),v&&v.d(),x&&x.d(),P&&P.d(),I&&I.d()}}}function Nb(i,e,t){let{block:n}=e,{plugin:a}=e;n.type=="heading"&&!n.size&&(n.size=1);let s=o=>"display"in n?`${n.display} (${o[0].toUpperCase()+o.slice(1).toLowerCase()})`:o[0].toUpperCase()+o.slice(1).toLowerCase(),r=o=>a.manager.getLayout(o)?.name??"No layout selected";return i.$$set=o=>{"block"in o&&t(0,n=o.block),"plugin"in o&&t(3,a=o.plugin)},[n,s,r,a]}var tl=class extends U{constructor(e){super(),G(this,e,Nb,Wb,j,{block:0,plugin:3},Qb)}},Gd=tl;var Vs=require("obsidian");var _u=It(mi()),pe=require("obsidian");var eu=require("obsidian");function Lb(i){re(i,"svelte-1blh0v3",".creator-zone.svelte-1blh0v3{display:flex;justify-content:space-evenly;gap:1rem;flex-flow:row wrap}.header-container.svelte-1blh0v3{display:flex;align-items:center}")}function Kd(i,e,t){let n=i.slice();return n[11]=e[t],n}function Jd(i,e){let t,n,a=e[11].name+"",s,r,o,l,c,d,h=N,u,f;function m(){return e[8](e[11])}return{key:i,first:null,c(){t=k("div"),n=k("span"),s=me(a),r=W(),o=k("div"),c=W(),g(n,"class","table-header"),g(t,"class","header-container svelte-1blh0v3"),this.first=t},m(p,y){D(p,t,y),b(t,n),b(n,s),b(t,r),b(t,o),b(t,c),u||(f=[ee(l=e[5].call(null,o)),H(o,"click",m)],u=!0)},p(p,y){e=p,y&1&&a!==(a=e[11].name+"")&&we(s,a)},r(){d=t.getBoundingClientRect()},f(){Qi(t),h()},a(){h(),h=Ei(t,d,$i,{duration:il})},d(p){p&&A(t),u=!1,ce(f)}}}function $b(i){let e,t,n=[],a=new Map,s,r,o,l=i[0].filter(i[7]),c=d=>d[11].id;for(let d=0;d({name:m,id:q()})),r=!1;function o(m){let{items:p,info:{source:y,trigger:w}}=m.detail;t(0,s=[...p])}function l(m){let{items:p,info:{source:y}}=m.detail;t(0,s=[...p]),n("sorted",s)}function c(m){m.preventDefault(),t(1,r=!1)}let d=m=>{t(0,s=s.filter(p=>p.id!=m.id)),n("sorted",s)},h=m=>{new eu.ExtraButtonComponent(m).setIcon("cross-in-box")},u=m=>m.id!==hi,f=m=>d(m);return i.$$set=m=>{"headers"in m&&t(6,a=m.headers)},[s,r,o,l,d,h,a,u,f]}var nl=class extends U{constructor(e){super(),G(this,e,Bb,$b,j,{headers:6},Lb)}},tu=nl;var Hs=require("obsidian");function zb(i){re(i,"svelte-mn2hp8",".setting-item.svelte-mn2hp8{align-items:center}.icon.svelte-mn2hp8{display:flex;align-items:center}")}function iu(i,e,t){let n=i.slice();return n[18]=e[t],n[19]=e,n[20]=t,n}function Hb(i){let e,t=i[18].prop+"",n;return{c(){e=k("div"),n=me(t),g(e,"class","setting-item-name")},m(a,s){D(a,e,s),b(e,n)},p(a,s){s&4&&t!==(t=a[18].prop+"")&&we(n,t)},d(a){a&&A(e)}}}function Fb(i){let e,t,n,a;function s(){i[13].call(e,i[19],i[20])}return{c(){e=k("input"),g(e,"type","text"),g(e,"placeholder",t=String(i[18].prop))},m(r,o){D(r,e,o),kt(e,i[18].prop),n||(a=H(e,"input",s),n=!0)},p(r,o){i=r,o&4&&t!==(t=String(i[18].prop))&&g(e,"placeholder",t),o&4&&e.value!==i[18].prop&&kt(e,i[18].prop)},d(r){r&&A(e),n=!1,a()}}}function jb(i){let e,t,n,a;function s(){return i[15](i[18])}return{c(){e=k("div"),g(e,"class","edit")},m(r,o){D(r,e,o),n||(a=[H(e,"click",s),ee(t=i[10].call(null,e))],n=!0)},p(r,o){i=r},d(r){r&&A(e),n=!1,ce(a)}}}function Zb(i){let e,t,n,a;function s(){return i[14](i[18])}return{c(){e=k("div"),g(e,"class","done")},m(r,o){D(r,e,o),n||(a=[H(e,"click",s),ee(t=i[11].call(null,e))],n=!0)},p(r,o){i=r},d(r){r&&A(e),n=!1,ce(a)}}}function nu(i,e){let t,n,a,s,r,o,l,c,d,h,u,f,m,p;function y(x,P){return x[1]==x[18].id?Fb:Hb}let w=y(e,-1),_=w(e);function O(x,P){return x[1]==x[18].id?Zb:jb}let E=O(e,-1),S=E(e);function v(){return e[16](e[18])}return{key:i,first:null,c(){t=k("div"),n=k("div"),r=W(),o=k("div"),_.c(),l=W(),c=k("div"),S.c(),d=W(),h=k("div"),f=W(),g(n,"class","icon svelte-mn2hp8"),g(n,"style",a=e[0]?"cursor: grab":"cursor: grabbing"),g(o,"class","setting-item-info"),g(h,"class","delete"),g(c,"class","setting-item-control"),g(t,"class","setting-item svelte-mn2hp8"),this.first=t},m(x,P){D(x,t,P),b(t,n),b(t,r),b(t,o),_.m(o,null),b(t,l),b(t,c),S.m(c,null),b(c,d),b(c,h),b(t,f),m||(p=[ee(s=Le.call(null,n,"grip-vertical")),H(n,"mousedown",e[5]),H(n,"touchstart",e[5]),H(h,"click",v),ee(u=e[7].call(null,h))],m=!0)},p(x,P){e=x,P&1&&a!==(a=e[0]?"cursor: grab":"cursor: grabbing")&&g(n,"style",a),w===(w=y(e,P))&&_?_.p(e,P):(_.d(1),_=w(e),_&&(_.c(),_.m(o,null))),E===(E=O(e,P))&&S?S.p(e,P):(S.d(1),S=E(e),S&&(S.c(),S.m(c,d)))},d(x){x&&A(t),_.d(),S.d(),m=!1,ce(p)}}}function Xb(i){let e,t=[],n=new Map,a,s,r,o=i[2],l=c=>c[18].id;for(let c=0;cP)),x===ze.POINTER&&t(0,r=!0)}function c(S){S.preventDefault(),t(0,r=!1)}let d=S=>{t(2,n=n.filter(v=>v.id!=S.id)),s("sorted",n.map(({prop:v})=>v))},h=S=>{new Hs.ExtraButtonComponent(S).setIcon("trash")},u,f=S=>{t(1,u=S.id)},m=S=>{t(2,n=n.map(v=>v.id==S.id?{id:S.id,prop:S.prop}:v)),t(1,u=null),s("sorted",n.map(({prop:v})=>v))},p=S=>{new Hs.ExtraButtonComponent(S).setIcon("pencil")},y=S=>{new Hs.ExtraButtonComponent(S).setIcon("check")};function w(S,v){S[v].prop=this.value,t(2,n),t(12,a)}let _=S=>m(S),O=S=>f(S),E=S=>d(S);return i.$$set=S=>{"properties"in S&&t(12,a=S.properties)},i.$$.update=()=>{i.$$.dirty&4096&&t(2,n=[...a])},[r,u,n,o,l,c,d,h,f,m,p,y,a,w,_,O,E]}var al=class extends U{constructor(e){super(),G(this,e,qb,Xb,j,{properties:12},zb)}},su=al;var gu=require("obsidian");function Fn(i,{delay:e=0,duration:t=400,easing:n=Os,axis:a="y"}={}){let s=getComputedStyle(i),r=+s.opacity,o=a==="y"?"height":"width",l=parseFloat(s[o]),c=a==="y"?["top","bottom"]:["left","right"],d=c.map(w=>`${w[0].toUpperCase()}${w.slice(1)}`),h=parseFloat(s[`padding${d[0]}`]),u=parseFloat(s[`padding${d[1]}`]),f=parseFloat(s[`margin${d[0]}`]),m=parseFloat(s[`margin${d[1]}`]),p=parseFloat(s[`border${d[0]}Width`]),y=parseFloat(s[`border${d[1]}Width`]);return{delay:e,duration:t,easing:n,css:w=>`overflow: hidden;opacity: ${Math.min(w*20,1)*r};${o}: ${w*l}px;padding-${c[0]}: ${w*h}px;padding-${c[1]}: ${w*u}px;margin-${c[0]}: ${w*f}px;margin-${c[1]}: ${w*m}px;border-${c[0]}-width: ${w*p}px;border-${c[1]}-width: ${w*y}px;`}}var uu=require("obsidian");var Ub=require("obsidian");function cn(i){switch(i){case"inline":case"group":return{type:i,id:q(),properties:[],nested:[]};case"heading":return{type:"heading",id:q(),properties:[],size:1};case"property":return{type:"property",id:q(),properties:[]};case"saves":return{type:"saves",id:q(),properties:[]};case"traits":return{type:"traits",id:q(),properties:[]};case"spells":return{type:"spells",id:q(),properties:[]};case"subheading":return{type:"subheading",id:q(),properties:[]};case"image":return{type:"image",id:q(),properties:[]};case"table":return{type:"table",id:q(),properties:[],headers:[],calculate:!0};case"text":return{type:"text",id:q(),properties:[],text:null};case"ifelse":return{type:"ifelse",id:q(),conditions:[]};case"collapse":return{type:"collapse",id:q(),heading:null,hasRule:!1,conditioned:!1,nested:[cn("group")],open:!1};case"javascript":return{type:"javascript",id:q(),conditioned:!1,code:""};case"layout":return{type:"layout",id:q(),layout:null};case"action":return{type:"action",id:q(),icon:"clapperboard"}}}var jn=require("obsidian");var ru=require("@codemirror/view");function Vb(i){re(i,"svelte-1ss6215",".setting-item-info.svelte-1ss6215{width:100%}.setting-item-name.svelte-1ss6215{display:flex;align-items:center;gap:0.25rem}")}function Yb(i){let e;function t(s,r){return!s[0]||!s[0].condition?Jb:Kb}let n=t(i,-1),a=n(i);return{c(){e=k("div"),a.c(),g(e,"class","setting-item-name svelte-1ss6215")},m(s,r){D(s,e,r),a.m(e,null)},p(s,r){n===(n=t(s,r))&&a?a.p(s,r):(a.d(1),a=n(s),a&&(a.c(),a.m(e,null)))},d(s){s&&A(e),a.d()}}}function Gb(i){let e,t,n,a;return{c(){e=k("div")},m(s,r){D(s,e,r),n||(a=ee(t=i[4].call(null,e)),n=!0)},p:N,d(s){s&&A(e),n=!1,a()}}}function Kb(i){let e,t=i[0].condition+"",n;return{c(){e=k("code"),n=me(t)},m(a,s){D(a,e,s),b(e,n)},p(a,s){s&1&&t!==(t=a[0].condition+"")&&we(n,t)},d(a){a&&A(e)}}}function Jb(i){let e,t,n,a,s,r;return{c(){e=k("div"),n=W(),a=k("em"),a.textContent="No condition set"},m(o,l){D(o,e,l),D(o,n,l),D(o,a,l),s||(r=ee(t=Le.call(null,e,"alert-triangle")),s=!0)},p:N,d(o){o&&A(e),o&&A(n),o&&A(a),s=!1,r()}}}function e0(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","edit")},m(s,r){D(s,e,r),n||(a=[H(e,"click",i[8]),ee(t=i[5].call(null,e))],n=!0)},p:N,d(s){s&&A(e),n=!1,ce(a)}}}function t0(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","done")},m(s,r){D(s,e,r),n||(a=[H(e,"click",i[3]),ee(t=i[6].call(null,e))],n=!0)},p:N,d(s){s&&A(e),n=!1,ce(a)}}}function i0(i){let e,t,n,a,s,r,o,l;function c(p,y){return p[1]?Gb:Yb}let d=c(i,-1),h=d(i);function u(p,y){return p[1]?t0:e0}let f=u(i,-1),m=f(i);return{c(){e=k("div"),h.c(),t=W(),n=k("div"),m.c(),a=W(),s=k("div"),g(e,"class","setting-item-info svelte-1ss6215"),g(s,"class","delete"),g(n,"class","setting-item-control")},m(p,y){D(p,e,y),h.m(e,null),D(p,t,y),D(p,n,y),m.m(n,null),b(n,a),b(n,s),o||(l=[H(s,"click",i[9]),ee(r=i[7].call(null,s))],o=!0)},p(p,[y]){d===(d=c(p,y))&&h?h.p(p,y):(h.d(1),h=d(p),h&&(h.c(),h.m(e,null))),f===(f=u(p,y))&&m?m.p(p,y):(m.d(1),m=f(p),m&&(m.c(),m.m(n,a)))},i:N,o:N,d(p){p&&A(e),h.d(),p&&A(t),p&&A(n),m.d(),o=!1,ce(l)}}}function n0(i,e,t){let n=Pe(),{condition:a}=e,{editing:s=!1}=e,r;function o(){r&&(t(0,a.condition=r.state.doc.toString(),a),r.destroy()),n("done")}let l=m=>{let p=new jn.TextAreaComponent(m).setValue(a?.condition?a.condition:"");r=Ht(p.inputEl,ru.EditorView.updateListener.of(y=>{y.docChanged&&t(0,a.condition=y.state.doc.toString(),a)}))},c=m=>{new jn.ExtraButtonComponent(m).setIcon("pencil")},d=m=>{new jn.ExtraButtonComponent(m).setIcon("check")},h=m=>{new jn.ExtraButtonComponent(m).setIcon("trash")};yi(()=>{r?.destroy()});let u=()=>n("edit"),f=()=>n("delete");return i.$$set=m=>{"condition"in m&&t(0,a=m.condition),"editing"in m&&t(1,s=m.editing)},[a,s,n,o,l,c,d,h,u,f]}var sl=class extends U{constructor(e){super(),G(this,e,n0,i0,j,{condition:0,editing:1},Vb)}},ou=sl;function a0(i){re(i,"svelte-mn2hp8",".setting-item.svelte-mn2hp8{align-items:center}.icon.svelte-mn2hp8{display:flex;align-items:center}")}function lu(i,e,t){let n=i.slice();return n[15]=e[t],n}function cu(i){let e,t,n,a,s,r,o,l,c,d;function h(){return i[11](i[15])}function u(){return i[12](i[15])}function f(){return i[13](i[15])}return r=new ou({props:{condition:i[15].prop,editing:i[1]==i[15].id}}),r.$on("delete",h),r.$on("edit",u),r.$on("done",f),{c(){e=k("div"),t=k("div"),s=W(),se(r.$$.fragment),o=W(),g(t,"class","icon svelte-mn2hp8"),g(t,"style",n=i[2]?"cursor: grab":"cursor: grabbing"),g(e,"class","setting-item svelte-mn2hp8")},m(m,p){D(m,e,p),b(e,t),b(e,s),ie(r,e,null),b(e,o),l=!0,c||(d=[ee(a=Le.call(null,t,"grip-vertical")),H(t,"mousedown",i[6]),H(t,"touchstart",i[6])],c=!0)},p(m,p){i=m,(!l||p&4&&n!==(n=i[2]?"cursor: grab":"cursor: grabbing"))&&g(t,"style",n);let y={};p&8&&(y.condition=i[15].prop),p&10&&(y.editing=i[1]==i[15].id),r.$set(y)},i(m){l||(M(r.$$.fragment,m),l=!0)},o(m){Q(r.$$.fragment,m),l=!1},d(m){m&&A(e),ne(r),c=!1,ce(d)}}}function hu(i,e){let t,n=e[1],a,s,r=cu(e);return{key:i,first:null,c(){t=Oe(),r.c(),a=Oe(),this.first=t},m(o,l){D(o,t,l),r.m(o,l),D(o,a,l),s=!0},p(o,l){e=o,l&2&&j(n,n=e[1])?(he(),Q(r,1,1,N),de(),r=cu(e),r.c(),M(r,1),r.m(a.parentNode,a)):r.p(e,l)},i(o){s||(M(r),s=!0)},o(o){Q(r),s=!1},d(o){o&&A(t),o&&A(a),r.d(o)}}}function s0(i){let e,t,n,a,s,r=[],o=new Map,l,c,d,h,u=i[3],f=m=>m[15].id;for(let m=0;m(s(),s=Tt(o,E=>t(10,a=E)),o);i.$$.on_destroy.push(()=>s());let{conditions:o}=e;r();let l=null,c=Pe(),d=!0;function h(E){let{items:S,info:{source:v,trigger:x}}=E.detail;t(3,n=[...S]),v===ze.KEYBOARD&&x===qe.DRAG_STOPPED&&t(2,d=!0)}function u(E){let{items:S,info:{source:v}}=E.detail;t(3,n=[...S]),c("sorted",n.map(({prop:x})=>x)),v===ze.POINTER&&t(2,d=!0)}function f(E){E.preventDefault(),t(2,d=!1)}let m=E=>{t(3,n=n.filter(S=>S.id!=E.id)),c("sorted",n.map(({prop:S})=>S))},p=E=>{t(3,n=n.map(S=>S.id==E.id?{id:E.id,prop:E.prop}:S)),t(1,l=null),c("sorted",n.map(({prop:S})=>S))},y=E=>{new uu.Setting(E).setName("Add new condition").addButton(S=>S.setIcon("plus").onClick(()=>{let v=q();t(1,l=v),t(3,n=[...n,{prop:{nested:[cn("group")],condition:null},id:v}]),c("sorted",n.map(({prop:x})=>x))}))},w=E=>m(E),_=E=>t(1,l=E.id),O=E=>p(E);return i.$$set=E=>{"conditions"in E&&r(t(0,o=E.conditions))},i.$$.update=()=>{i.$$.dirty&1024&&t(3,n=a.map(E=>({prop:E,id:q()})))},[o,l,d,n,h,u,f,m,p,y,a,w,_,O]}var rl=class extends U{constructor(e){super(),G(this,e,r0,s0,j,{conditions:0},a0)}},fu=rl;function o0(i){re(i,"svelte-131x181",".condition-builder-container.svelte-131x181 .setting-item.svelte-131x181{align-items:flex-start}")}function mu(i){let e,t,n;return{c(){e=k("div"),e.innerHTML=`Conditions are used to determine what block is + rendered. Conditions are evaluated top to bottom - the + first to evaluate to + true + is the condition that will be used. If the last + condition is left blank and no others were true, it will + be used. +
+
+ The expression receives the + monster + parameter, which can be used to access properties of the + monster being rendered. +
+
+ All conditions must return a true/false value. For + example: + return monster.ac > 1`,g(e,"class","setting-item-description")},m(a,s){D(a,e,s),n=!0},i(a){n||(Dt(()=>{n&&(t||(t=Ki(e,Fn,{},!0)),t.run(1))}),n=!0)},o(a){t||(t=Ki(e,Fn,{},!1)),t.run(0),n=!1},d(a){a&&A(e),a&&t&&t.end()}}}function l0(i){let e,t,n,a,s,r,o,l,c,d,h,u,f=i[1]&&mu(i);return c=new fu({props:{conditions:i[2]}}),c.$on("sorted",i[7]),{c(){e=k("div"),t=k("div"),n=k("div"),f&&f.c(),a=W(),s=k("div"),r=k("div"),l=W(),se(c.$$.fragment),g(n,"class","setting-item-info"),g(s,"class","setting-item-control"),g(t,"class","setting-item svelte-131x181"),g(e,"class","condition-builder-container svelte-131x181")},m(m,p){D(m,e,p),b(e,t),b(t,n),f&&f.m(n,null),b(t,a),b(t,s),b(s,r),b(e,l),ie(c,e,null),d=!0,h||(u=[ee(o=i[4].call(null,r)),H(r,"click",i[6])],h=!0)},p(m,[p]){m[1]?f?p&2&&M(f,1):(f=mu(m),f.c(),M(f,1),f.m(n,null)):f&&(he(),Q(f,1,1,()=>{f=null}),de())},i(m){d||(M(f),M(c.$$.fragment,m),d=!0)},o(m){Q(f),Q(c.$$.fragment,m),d=!1},d(m){m&&A(e),f&&f.d(),ne(c),h=!1,ce(u)}}}function c0(i,e,t){let n,{plugin:a}=e,{block:s}=e,r=Ne(s.conditions),o=async()=>{t(5,a.settings.hideConditionHelp=!a.settings.hideConditionHelp,a),await a.saveSettings()},l=h=>{new gu.ExtraButtonComponent(h).setIcon("help-circle")},c=()=>o(),d=h=>t(0,s.conditions=[...h.detail],s);return i.$$set=h=>{"plugin"in h&&t(5,a=h.plugin),"block"in h&&t(0,s=h.block)},i.$$.update=()=>{i.$$.dirty&32&&t(1,n=a.settings.hideConditionHelp)},[s,n,r,o,l,a,c,d]}var ol=class extends U{constructor(e){super(),G(this,e,c0,l0,j,{plugin:5,block:0},o0)}},pu=ol;var un=require("@codemirror/view");var dl=It(Fs()),js=class extends dl.FuzzyInputSuggest{getItemText(e){return e.name}renderNote(e,t){}renderTitle(e,t){this.renderMatches(e,t.item.name,t.match.matches)}},Zs=class extends dl.FuzzyInputSuggest{renderNote(e,t){}renderTitle(e,t){this.renderMatches(e,t.item,t.match.matches)}getItemText(e){return e}};var wu=require("obsidian"),vt=class extends wu.Modal{constructor(t){super(t.app);this.plugin=t;this.modalEl.addClass("fantasy-statblocks-modal"),t.register(()=>this.close())}};function Us(i,e,t){switch(e.type){case"group":case"inline":return new ul(i,e);case"action":return new bl(i,e);case"collapse":return new fl(i,e);case"ifelse":return new pl(i,e);case"javascript":return new ml(i,e);case"heading":return new yl(i,e);case"layout":return new gl(i,e,t);case"property":return new vl(i,e);case"saves":return new kl(i,e);case"spells":return new wl(i,e);case"subheading":return new _l(i,e);case"table":return new Ol(i,e);case"traits":return new Sl(i,e);case"text":return new xl(i,e);default:return new hn(i,e)}}var Fi=class extends vt{constructor(t,n){super(t);this.plugin=t;n&&(this.block=(0,_u.default)(n)),this.containerEl.addClass("statblock-edit-block")}onOpen(){this.titleEl.setText("Edit Block"),this.display()}buildButtons(t){t.empty(),new pe.Setting(t).addButton(n=>n.setCta().setIcon("checkmark").setTooltip("Save").onClick(()=>{this.saved=!0,this.close()})).addExtraButton(n=>n.setIcon("cross").setTooltip("Cancel").onClick(()=>{this.close()}))}buildProperty(t){}},ul=class extends Fi{async display(){this.contentEl.empty(),new pe.Setting(this.contentEl).setName("Section Heading").setDesc("This text will be used for the section heading. Can be left blank.").addText(e=>{e.setValue(this.block.heading).onChange(t=>this.block.heading=t)}),new pe.Setting(this.contentEl).setName("Has Rule").setDesc("If present, the block will have a horizontal rule placed after it.").addToggle(e=>{e.setValue(this.block.hasRule).onChange(t=>this.block.hasRule=t)}),new pe.Setting(this.contentEl).setName("CSS Container Class").setDesc("All nested elements inside this group container will receive this CSS class. If blank, no class will be applied.").addText(e=>{e.setValue(this.block.cls).onChange(t=>this.block.cls=t)}),this.buildConditions(this.contentEl.createDiv()),this.buildButtons(this.contentEl.createDiv())}buildConditions(e){e.empty();let t=this.block;new pe.Setting(e).setName("Conditional").setDesc("The block will not be added if the associated properties are not present.").addToggle(n=>{n.setValue(t.conditioned).onChange(a=>{t.conditioned=a,this.buildConditions(e)})})}},fl=class extends Fi{async display(){this.contentEl.empty(),new pe.Setting(this.contentEl).setName("Section Heading").setDesc("This text will be used for the section heading. Can be left blank.").addText(e=>{e.setValue(this.block.heading).onChange(t=>this.block.heading=t)}),new pe.Setting(this.contentEl).setName("Open by Default").setDesc("The block will start open.").addToggle(e=>{e.setValue(this.block.open).onChange(t=>this.block.open=t)}),new pe.Setting(this.contentEl).setName("Has Rule").setDesc("If present, the block will have a horizontal rule placed after it.").addToggle(e=>{e.setValue(this.block.hasRule).onChange(t=>this.block.hasRule=t)}),this.buildButtons(this.contentEl.createDiv())}},ml=class extends Fi{async display(){this.contentEl.empty(),new pe.Setting(this.contentEl).setName("JavaScript").setHeading().setDesc(createFragment(t=>{t.createSpan({text:"JavaScript blocks can be used to do highly advanced HTML elements. The JavaScript code will be provided the "}),t.createEl("code",{text:"monster"}),t.createSpan({text:" and "}),t.createEl("code",{text:"property"}),t.createSpan({text:"parameters and should return a HTML element, which will be attached to the block's container element."})}));let e=new pe.TextAreaComponent(this.contentEl).setValue(this.block.code);e.inputEl.addClass("statblock-textarea"),this.editor=Ht(e.inputEl,un.EditorView.updateListener.of(t=>{t.docChanged&&(this.block.code=t.state.doc.toString())})),this.buildButtons(this.contentEl.createDiv())}},gl=class extends Fi{constructor(t,n,a){super(t,n);this.layout=a}hasLayoutNestedAlready(t){for(let n of t)if(n.type=="layout"&&n.layout==this.layout||"nested"in n&&this.hasLayoutNestedAlready(n.nested))return!0;return!1}async display(){this.contentEl.empty(),new pe.Setting(this.contentEl).setName("Layout to Insert").addDropdown(t=>{for(let n of this.plugin.manager.getAllLayouts())n.id!=this.layout&&(this.hasLayoutNestedAlready(n.blocks)||t.addOption(n.id,n.name));this.block.layout&&t.setValue(this.block.layout),t.onChange(n=>{this.block.layout=n})}),this.buildButtons(this.contentEl.createDiv())}},pl=class extends Fi{async display(){this.contentEl.empty(),this.buildConditions(this.contentEl.createDiv()),this.buildButtons(this.contentEl.createDiv())}buildConditions(e){new pu({target:e,props:{plugin:this.plugin,block:this.block}})}},qs,Ou,Xs=class extends Fi{constructor(){super(...arguments);Ee(this,qs);this.propertiesEl=createDiv("block-properties-container");this.separatorEl=createDiv("block-separator-container");this.conditionsEl=createDiv("block-conditions-container");this.diceEl=createDiv("block-dice-container");this.advancedEl=createEl("details",{cls:"statblock-nested-settings",attr:{...this.plugin.settings.showAdvanced?{open:!0}:{}}});this.buttonsEl=createDiv("block-buttons-container")}async display(){this.containerEl.addClass("statblock-block-editor"),this.contentEl.empty(),this.contentEl.appendChild(this.propertiesEl),this.contentEl.appendChild(this.separatorEl),this.contentEl.appendChild(this.conditionsEl),this.contentEl.appendChild(this.diceEl),this.contentEl.appendChild(this.advancedEl),this.contentEl.appendChild(this.buttonsEl),this.buildProperties(this.propertiesEl),this.buildSeparator(this.separatorEl),this.buildConditions(this.conditionsEl),this.buildDice(this.diceEl),Qe(this,qs,Ou).call(this,this.advancedEl),this.buildButtons(this.buttonsEl)}onClose(){this.editor?.destroy()}buildProperties(t){}buildSeparator(t){}buildConditions(t){}buildDice(t){}};qs=new WeakSet,Ou=function(t){t.empty(),t.ontoggle=()=>{this.plugin.settings.showAdvanced=t.open,this.plugin.saveSettings()};let n=t.createEl("summary");new pe.Setting(n).setHeading().setName("Advanced Settings"),n.createDiv("collapser").createDiv("handle"),this.buildAdvanced(t.createDiv())};var bl=class extends Xs{buildProperties(e){e.empty(),new pe.Setting(e).setName("Icon").setDesc("Choose the icon to use for the button.").addText(t=>{t.setValue(this.block.icon);let n=(0,pe.getIconIds)().map(s=>s.replace(/^lucide-/,""));new Zs(this.app,t,n).onSelect(async s=>{this.block.icon=s.item,this.buildProperties(e)}),t.inputEl.onblur=async()=>{let s=t.inputEl.value?.trim()?t.inputEl.value.trim():"/";this.block.icon=s,this.buildProperties(e)}}).addExtraButton(t=>{t.setIcon(this.block.icon).setDisabled(!0)}),new pe.Setting(e).setName("Action").setDesc("Choose a Command to run when this action is executed.").addText(t=>{t.setValue(this.block.action);let n=this.app.commands.listCommands();new js(this.app,t,n).onSelect(async s=>{this.block.action=s.item.id}),t.inputEl.onblur=async()=>{let s=t.inputEl.value?.trim()?t.inputEl.value.trim():"/";this.block.action=n.find(r=>r.name.toLowerCase()===s?.toLowerCase())?.id}})}buildAdvanced(e){e.empty(),new pe.Setting(e).setHeading().setName("Callback").setDesc(createFragment(n=>{n.createSpan({text:"Executing the action will run the callback. Any registered commands will "}),n.createEl("strong",{text:"not"}),n.createSpan({text:" be ran."}),n.createEl("br"),n.createSpan({text:"The callback will receive the "}),n.createEl("code",{text:"monster"}),n.createSpan({text:" parameter. "})}));let t=new pe.TextAreaComponent(e).setValue(this.block.callback);t.inputEl.addClass("statblock-textarea"),this.editor=Ht(t.inputEl,un.EditorView.updateListener.of(n=>{n.docChanged&&(this.block.callback=n.state.doc.toString())}))}},hn=class extends Xs{buildProperties(e){e.empty();let t=this.block;new pe.Setting(e).setName("Link Monster Property").addText(n=>n.setValue(t.properties[0]).onChange(a=>{t.properties[0]=a}))}buildAdvanced(e){if(e.empty(),this.plugin.canUseDiceRoller){new pe.Setting(e).setHeading().setName("Dice Callback").setDesc(createFragment(n=>{n.createSpan({text:"The block will run the callback and use the returned values for the dice strings."}),n.createEl("br"),n.createSpan({text:"The callback will receive the "}),n.createEl("code",{text:"monster"}),n.createSpan({text:" and "}),n.createEl("code",{text:"property"}),n.createSpan({text:"parameters. Dice callbacks should return an array of strings and objects, with the objects defining the dice rolls:"}),n.createEl("br"),pe.MarkdownRenderer.render(this.plugin.app,"```ts\ninterface DiceCallbackObject {\n text: string // string to be parsed into a dice roll\n original?: string // optional, shown in parenthesis\n}\n```",n.createDiv(),"",new pe.Component),n.createEl("br"),n.createEl("span",{text:"For example: "}),n.createEl("br"),pe.MarkdownRenderer.render(this.plugin.app,'```ts\nconst diceText = monster.stats[5] + "d20 + 2";\nreturn ["The monster guesses you have: ", { text: diceText }, " freckles."];\n```',n.createDiv(),"",new pe.Component)}));let t=new pe.TextAreaComponent(e).setValue(this.block.diceCallback);t.inputEl.addClasses(["statblock-textarea","statblock-textarea-small"]),this.editor=Ht(t.inputEl,un.EditorView.updateListener.of(n=>{n.docChanged&&(this.block.diceCallback=n.state.doc.toString())}))}}buildSeparator(e){}buildConditions(e){e.empty();let t=this.block;new pe.Setting(e).setName("Conditional").setDesc("The block will not be added if the associated properties are not present.").addToggle(n=>{n.setValue(t.conditioned).onChange(a=>{t.conditioned=a,this.buildConditions(e)})}),this.block.conditioned||new pe.Setting(e).setName("Fallback").setDesc("If not present, this text will be displayed.").addText(n=>{t.fallback||(t.fallback="-"),n.setValue(t.fallback).onChange(a=>{t.fallback=a})}),new pe.Setting(e).setName("Has Rule").setDesc("If present, the block will have a horizontal rule placed after it.").addToggle(n=>{n.setValue(t.hasRule).onChange(a=>t.hasRule=a)})}buildDice(e){e.empty();let t=this.block;this.plugin.canUseDiceRoller&&(new pe.Setting(e).setName("Parse for Dice").setDesc("The plugin will attempt to add dice rollers as specified.").addToggle(n=>n.setValue(t.dice).onChange(a=>{t.dice=a,this.buildDice(e)})),t.dice&&new pe.Setting(e.createDiv()).setName("Link Dice to Property").setDesc("The dice roller will parse this property instead of the original.").addText(n=>{n.setValue(t.diceProperty).onChange(a=>{t.diceProperty=a})}))}},dn=class extends hn{buildAdvanced(e){super.buildAdvanced(e)}},yl=class extends hn{buildProperties(e){super.buildProperties(e),new pe.Setting(e).setName("Header Size").setDesc("The heading will use this size.").addDropdown(t=>{this.block.size||this.block.size==1,t.addOptions({1:"H1",2:"H2",3:"H3",4:"H4",5:"H5",6:"H6"}).setValue(`${this.block.size}`).onChange(n=>this.block.size=Number(n))})}},vl=class extends dn{buildAdvanced(e){super.buildAdvanced(e),new pe.Setting(e).setHeading().setName("Callback").setDesc(createFragment(n=>{n.createSpan({text:"The block will run the callback and use the returned string as the property."}),n.createEl("br"),n.createSpan({text:"The callback will receive the "}),n.createEl("code",{text:"monster"}),n.createSpan({text:" parameter. The callback should return a string. For example: "}),n.createEl("code",{text:"return monster.name"}),n.createEl("br"),n.createEl("strong",{text:"Please Note: This will not run if a dice callback is provided."})}));let t=new pe.TextAreaComponent(e).setValue(this.block.callback);t.inputEl.addClass("statblock-textarea"),this.editor=Ht(t.inputEl,un.EditorView.updateListener.of(n=>{n.docChanged&&(this.block.callback=n.state.doc.toString())}))}onClose(){this.editor?.destroy()}buildProperties(e){super.buildProperties(e),new pe.Setting(e).setName("Do Not Add Property as CSS Class").setDesc("Enable this to prevent adding the property to the containing HTML element as a CSS class. This can be used to avoid collisions with native Obsidian CSS.").addToggle(t=>{t.setValue(this.block.doNotAddClass).onChange(n=>{this.block.doNotAddClass=n,this.display()})}),new pe.Setting(e).setName("Display Text").setDesc("This text will be used for the property name.").addText(t=>{t.setValue(this.block.display).onChange(n=>this.block.display=n)})}},kl=class extends dn{buildProperties(e){super.buildProperties(e),new pe.Setting(e).setName("Display Text").setDesc("This text will be used for the property name.").addText(t=>{t.setValue(this.block.display).onChange(n=>this.block.display=n)})}},wl=class extends dn{buildProperties(e){super.buildProperties(e),new pe.Setting(e).setName("Trait Name").setDesc("Name to display for the Spellcasting trait. Defaults to Spellcasting if not provided.").addText(t=>{t.setValue(this.block.heading).onChange(n=>this.block.heading=n)})}},_l=class extends hn{buildProperties(e){e.empty();let t=this.block,n=e.createDiv("statblock-additional-container"),a="";new pe.Setting(n).setHeading().setName("Link Monster Properties").addText(o=>o.setPlaceholder("property").setValue(a).onChange(l=>a=l)).addExtraButton(o=>o.setIcon("plus-with-circle").onClick(()=>{if(!a||!a.length){new pe.Notice("A valid property must be supplied.");return}t.properties.push(a),this.buildProperties(e)}));let s=n.createDiv("additional");new su({target:s,props:{properties:this.block.properties.map(o=>({prop:o,id:q()}))}}).$on("sorted",o=>{t.properties=[...o.detail]})}buildSeparator(e){e.empty(),new pe.Setting(e).setName("Separator").setDesc("Text separating properties").addText(t=>{t.setValue(this.block.separator).onChange(n=>{if(n===" "){this.block.separator=n;return}this.block.separator=(n??"").trim().length===0?", ":n})})}},Ol=class extends hn{buildAdvanced(e){super.buildAdvanced(e),new pe.Setting(e).setHeading().setName("Ability Modifier Calculation").setDesc(createFragment(n=>{n.createSpan({text:"Allows a custom modifier for the stat."}),n.createEl("br"),n.createSpan({text:"Variables "}),n.createEl("code",{text:"stat"}),n.createSpan({text:" and "}),n.createEl("code",{text:"monster"}),n.createSpan({text:"are accessible, use these to calculate the modifier."})}));let t=new pe.TextAreaComponent(e).setValue(this.block.modifier);t.inputEl.addClasses(["statblock-textarea","statblock-textarea-small"]),this.editor=Ht(t.inputEl,un.EditorView.updateListener.of(n=>{n.docChanged&&(this.block.modifier=n.state.doc.toString())}))}buildProperties(e){super.buildProperties(e);let t=e.createDiv("statblock-additional-container"),n="";new pe.Setting(t).setHeading().setName("Table Headers").addText(s=>s.setPlaceholder("header").setValue(n).onChange(r=>n=r)).addExtraButton(s=>s.setIcon("plus-with-circle").onClick(()=>{if(!n||!n.length){new pe.Notice("A valid property must be supplied.");return}this.block.headers.push(n),this.buildProperties(e)}));let a=t.createDiv("additional");new tu({target:a,props:{headers:this.block.headers}}).$on("sorted",s=>{this.block.headers=[...s.detail?.map(r=>r.name)??[]]}),new pe.Setting(e).setName("Calculate Modifiers").setDesc("The block will attempt to calculate modifiers for table values.").addToggle(s=>{s.setValue(this.block.calculate).onChange(r=>{this.block.calculate=r})})}},Sl=class extends dn{buildProperties(e){super.buildProperties(e),new pe.Setting(e).setName("Do Not Add Property as CSS Class").setDesc("Disable this to prevent adding the property to the containing HTML element as a CSS class. This can be used to avoid collisions with native Obsidian CSS.").addToggle(n=>{n.setValue(this.block.doNotAddClass).onChange(a=>{this.block.doNotAddClass=a,this.display()})}),new pe.Setting(e).setName("Use Monster Property for Heading").setDesc("The Section heading will be set to the value of the specified property.").addToggle(n=>{n.setValue(this.block.headingProp).onChange(a=>{this.block.headingProp=a,this.display()})}),new pe.Setting(e).setName("Section Heading").setDesc(this.block.headingProp?"The section will use this property for the section heading. If the property does not exist or is blank, the section heading will not appear.":"This text will be used for the section heading. Can be left blank.").addText(n=>{n.setValue(this.block.heading).onChange(a=>this.block.heading=a)}),new pe.Setting(e).setName("Section Subheading Text").setDesc(createFragment(n=>{n.createSpan({text:"Text entered here will appear directly after the section heading, before the actual traits. Use "}),n.createEl("code",{text:"{{monster}}"}),n.createSpan({text:" to insert the current monster's name."})})).controlEl.detach(),new pe.TextAreaComponent(this.contentEl).setValue(this.block.subheadingText).onChange(n=>this.block.subheadingText=n)}buildAdvanced(e){super.buildAdvanced(e),new pe.Setting(e).setHeading().setName("Callback").setDesc(createFragment(n=>{n.createSpan({text:"The block will run the callback and use the returned string as the property."}),n.createEl("br"),n.createSpan({text:"The callback will receive the "}),n.createEl("code",{text:"monster"}),n.createSpan({text:" and "}),n.createEl("code",{text:"property"}),n.createSpan({text:" parameters. The callback should return a string. For example: "}),n.createEl("code",{text:"return monster.name"}),n.createEl("br"),n.createEl("strong",{text:"Please Note: This will not run if a dice callback is provided."})}));let t=new pe.TextAreaComponent(e).setValue(this.block.callback);t.inputEl.addClass("statblock-textarea"),this.editor=Ht(t.inputEl,un.EditorView.updateListener.of(n=>{n.docChanged&&(this.block.callback=n.state.doc.toString())}))}},xl=class extends dn{buildAdvanced(e){super.buildAdvanced(e),new pe.Setting(e).setHeading().setName("Text to Show").setDesc(createFragment(t=>{t.createSpan({text:"The block will "}),t.createEl("strong",{text:"always"}),t.createSpan({text:" display the text entered here."})})),new pe.TextAreaComponent(e).setValue(this.block.text).onChange(t=>{this.block.text=t})}buildProperties(e){super.buildProperties(e),new pe.Setting(e).setName("Use Monster Property for Heading").setDesc("The Section heading will be set to the value of the specified property.").addToggle(t=>{t.setValue(this.block.headingProp).onChange(n=>{this.block.headingProp=n,this.display()})}),new pe.Setting(e).setName("Section Heading").setDesc(this.block.headingProp?"The section will use this property for the section heading. If the property does not exist or is blank, the section heading will not appear.":"This text will be used for the section heading. Can be left blank.").addText(t=>{t.setValue(this.block.heading).onChange(n=>this.block.heading=n)})}};function w0(i){re(i,"svelte-1e3b779",".statblock-creator-container.svelte-1e3b779.svelte-1e3b779{display:flex;justify-content:space-between;width:100%;height:100%;gap:0.25rem}body:not(.is-mobile) .statblock-creator-container.svelte-1e3b779:not(:hover)>.icons.svelte-1e3b779{visibility:hidden}.statblock-creator-block.svelte-1e3b779.svelte-1e3b779{width:100%}.icons.svelte-1e3b779.svelte-1e3b779{display:flex;justify-content:flex-end}.statblock-creator-container.svelte-1e3b779 .icons.svelte-1e3b779{align-items:center}.icon.svelte-1e3b779:not(:first-child) .clickable-icon{margin-left:0}.layout.svelte-1e3b779.svelte-1e3b779{border:2px dashed grey}")}function _0(i){let e,t;return e=new Gd({props:{block:i[0],plugin:i[1]}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,a){let s={};a&1&&(s.block=n[0]),a&2&&(s.plugin=n[1]),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function O0(i){let e;return{c(){e=me("JavaScript")},m(t,n){D(t,e,n)},p:N,i:N,o:N,d(t){t&&A(e)}}}function Su(i){let e,t,n,a,s=[O0,_0],r=[];function o(l,c){return l[0].type=="javascript"?0:l[0].type!="ifelse"&&l[0].type!="collapse"?1:-1}return~(t=o(i,-1))&&(n=r[t]=s[t](i)),{c(){e=k("div"),n&&n.c(),g(e,"class","statblock-creator-block svelte-1e3b779"),oe(e,"layout",i[0].type=="layout")},m(l,c){D(l,e,c),~t&&r[t].m(e,null),a=!0},p(l,c){let d=t;t=o(l,c),t===d?~t&&r[t].p(l,c):(n&&(he(),Q(r[d],1,1,()=>{r[d]=null}),de()),~t?(n=r[t],n?n.p(l,c):(n=r[t]=s[t](l),n.c()),M(n,1),n.m(e,null)):n=null),(!a||c&1)&&oe(e,"layout",l[0].type=="layout")},i(l){a||(M(n),a=!0)},o(l){Q(n),a=!1},d(l){l&&A(e),~t&&r[t].d()}}}function S0(i){let e,t=i[0],n,a,s,r,o,l,c,d,h,u,f=Su(i);return{c(){e=k("div"),f.c(),n=W(),a=k("div"),s=k("div"),o=W(),l=k("div"),g(s,"class","icon svelte-1e3b779"),g(l,"class","icon svelte-1e3b779"),g(a,"class","icons svelte-1e3b779"),g(e,"class","statblock-creator-container svelte-1e3b779")},m(m,p){D(m,e,p),f.m(e,null),b(e,n),b(e,a),b(a,s),b(a,o),b(a,l),d=!0,h||(u=[ee(r=i[2].call(null,s)),ee(c=i[3].call(null,l))],h=!0)},p(m,[p]){p&1&&j(t,t=m[0])?(he(),Q(f,1,1,N),de(),f=Su(m),f.c(),M(f,1),f.m(e,n)):f.p(m,p)},i(m){d||(M(f),d=!0)},o(m){Q(f),d=!1},d(m){m&&A(e),f.d(m),h=!1,ce(u)}}}function x0(i,e,t){let{block:n}=e,{plugin:a}=e,{layout:s}=e,r=Pe(),o=()=>{let h=Us(a,n,s);h.onClose=()=>{h.saved&&r("edited",h.block)},h.open()},l=h=>{new Vs.ExtraButtonComponent(h).setIcon("pencil").setTooltip("Edit Block").onClick(()=>{o()})},c=h=>{new Vs.ExtraButtonComponent(h).setIcon("plus").setTooltip("Add Condition").onClick(()=>{})},d=h=>{new Vs.ExtraButtonComponent(h).setIcon("trash").setTooltip("Delete Block").onClick(()=>r("trash",n))};return i.$$set=h=>{"block"in h&&t(0,n=h.block),"plugin"in h&&t(1,a=h.plugin),"layout"in h&&t(4,s=h.layout)},[n,a,l,d,s]}var Tl=class extends U{constructor(e){super(),G(this,e,x0,S0,j,{block:0,plugin:1,layout:4},w0)}},xu=Tl;var fn=require("obsidian");function T0(i){re(i,"svelte-1swdhxf",".min-height{min-height:2rem}.block.svelte-1swdhxf.svelte-1swdhxf{display:flex;justify-content:flex-start;align-items:center}.item.svelte-1swdhxf.svelte-1swdhxf{display:grid;grid-template-columns:1fr;width:100%;padding:2px;margin:2px}.group.svelte-1swdhxf.svelte-1swdhxf{display:grid;grid-template-columns:1fr;border:2px dashed grey;min-height:2rem}.dropdown-icon.svelte-1swdhxf.svelte-1swdhxf{align-self:flex-start}.inline.svelte-1swdhxf.svelte-1swdhxf{display:flex;justify-content:space-between;flex-wrap:wrap;width:100%;height:100%;min-width:2rem}.action-icon.svelte-1swdhxf.svelte-1swdhxf{display:flex;align-items:center}.icon.svelte-1swdhxf.svelte-1swdhxf{display:flex}.statblock-creator-container.svelte-1swdhxf.svelte-1swdhxf{display:flex;justify-content:space-between;width:100%;height:100%;gap:0.25rem}.statblock-creator-container.action-container.svelte-1swdhxf.svelte-1swdhxf{justify-content:flex-start}body:not(.is-mobile) .statblock-creator-container.svelte-1swdhxf:not(:hover)>.icons.svelte-1swdhxf{visibility:hidden}.statblock-creator-block.svelte-1swdhxf.svelte-1swdhxf{width:100%}.icons.svelte-1swdhxf.svelte-1swdhxf{display:flex;justify-content:flex-end}.statblock-creator-container.svelte-1swdhxf .icons.svelte-1swdhxf{align-items:center}.icon.svelte-1swdhxf:not(:first-child) .clickable-icon{margin-left:0}.if-else-block-container.svelte-1swdhxf.svelte-1swdhxf{display:grid;grid-template-columns:1fr;border:2px solid grey;border-radius:0.25rem;min-height:2rem;padding:0.25rem}.collapse-container.svelte-1swdhxf.svelte-1swdhxf{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0.25rem}.collapsible.svelte-1swdhxf.svelte-1swdhxf{border-left:2px solid grey;padding-left:0.25rem}")}function Tu(i,e,t){let n=i.slice();return n[33]=e[t],n[34]=e,n[35]=t,n}function Cu(i,e,t){let n=i.slice();return n[36]=e[t].condition,n[37]=e[t].nested,n[38]=e,n[39]=t,n}function Au(i){let e,t,n,a,s;return{c(){e=k("div"),g(e,"class","icon svelte-1swdhxf"),g(e,"style",t=i[6]?"cursor: grab":"cursor: grabbing")},m(r,o){D(r,e,o),a||(s=[ee(n=Le.call(null,e,"grip-vertical")),H(e,"mousedown",i[9]),H(e,"touchstart",i[9])],a=!0)},p(r,o){o[0]&64&&t!==(t=r[6]?"cursor: grab":"cursor: grabbing")&&g(e,"style",t)},d(r){r&&A(e),a=!1,ce(s)}}}function C0(i){let e,t,n;return t=new xu({props:{plugin:i[1],block:i[33],layout:i[2]}}),t.$on("trash",i[29]),t.$on("edited",i[30]),{c(){e=k("div"),se(t.$$.fragment),g(e,"class","item svelte-1swdhxf")},m(a,s){D(a,e,s),ie(t,e,null),n=!0},p(a,s){let r={};s[0]&2&&(r.plugin=a[1]),s[0]&33&&(r.block=a[33]),s[0]&4&&(r.layout=a[2]),t.$set(r)},i(a){n||(M(t.$$.fragment,a),n=!0)},o(a){Q(t.$$.fragment,a),n=!1},d(a){a&&A(e),ne(t)}}}function A0(i){let e,t,n,a,s,r,o,l,c,d,h,u;function f(){return i[27](i[33])}function m(){return i[28](i[33])}return{c(){e=k("div"),t=k("div"),a=W(),s=k("div"),r=k("div"),l=W(),c=k("div"),g(t,"class","action-icon svelte-1swdhxf"),g(r,"class","icon svelte-1swdhxf"),g(c,"class","icon svelte-1swdhxf"),g(s,"class","icons svelte-1swdhxf"),g(e,"class","action-container statblock-creator-container svelte-1swdhxf")},m(p,y){D(p,e,y),b(e,t),b(e,a),b(e,s),b(s,r),b(s,l),b(s,c),h||(u=[ee(n=Le.call(null,t,i[33].icon)),ee(o=i[14].call(null,r)),H(r,"click",f),ee(d=i[15].call(null,c)),H(c,"click",m)],h=!0)},p(p,y){i=p,n&&Ie(n.update)&&y[0]&33&&n.update.call(null,i[33].icon)},i:N,o:N,d(p){p&&A(e),h=!1,ce(u)}}}function D0(i){let e,t,n,a,s=[],r=new Map,o,l,c,d,h,u,f,m,p,y,w=i[33].conditions,_=S=>S[36];for(let S=0;SNt(c,"blocks",I)),Re.push(()=>Nt(c,"plugin",R));function $(){return i[21](i[33])}function K(){return i[22](i[33])}return{c(){e=k("div"),t=k("div"),n=k("div"),a=k("div"),r=W(),o=k("div"),P.c(),l=W(),se(c.$$.fragment),u=W(),f=k("div"),m=k("div"),y=W(),w=k("div"),g(o,"class","collapsible svelte-1swdhxf"),g(n,"class","statblock-creator-block collapse-container svelte-1swdhxf"),g(m,"class","icon svelte-1swdhxf"),g(w,"class","icon svelte-1swdhxf"),g(f,"class","icons svelte-1swdhxf"),g(t,"class","statblock-creator-container svelte-1swdhxf"),g(e,"class","item svelte-1swdhxf")},m(Z,F){D(Z,e,F),b(e,t),b(t,n),b(n,a),b(n,r),b(n,o),P.m(o,null),b(o,l),ie(c,o,null),b(t,u),b(t,f),b(f,m),b(f,y),b(f,w),O=!0,E||(S=[ee(s=Le.call(null,a,"chevrons-down-up")),ee(p=i[14].call(null,m)),H(m,"click",$),ee(_=i[15].call(null,w)),H(w,"click",K)],E=!0)},p(Z,F){i=Z,x===(x=v(i,F))&&P?P.p(i,F):(P.d(1),P=x(i),P&&(P.c(),P.m(o,l)));let V={};!d&&F[0]&33&&(d=!0,V.blocks=i[33].nested,Wt(()=>d=!1)),!h&&F[0]&2&&(h=!0,V.plugin=i[1],Wt(()=>h=!1)),c.$set(V)},i(Z){O||(M(c.$$.fragment,Z),O=!0)},o(Z){Q(c.$$.fragment,Z),O=!1},d(Z){Z&&A(e),P.d(),ne(c),E=!1,ce(S)}}}function M0(i){let e,t,n,a,s,r=i[33],o,l;function c(f){i[17](f,i[33])}function d(f){i[18](f)}let h={inline:i[33].type=="inline"};i[33].nested!==void 0&&(h.blocks=i[33].nested),i[1]!==void 0&&(h.plugin=i[1]),t=new Zn({props:h}),Re.push(()=>Nt(t,"blocks",c)),Re.push(()=>Nt(t,"plugin",d));let u=Pu(i);return{c(){e=k("div"),se(t.$$.fragment),s=W(),u.c(),o=Oe(),g(e,"class","item svelte-1swdhxf"),oe(e,"group",i[33].type=="group"||i[33].type=="inline")},m(f,m){D(f,e,m),ie(t,e,null),D(f,s,m),u.m(f,m),D(f,o,m),l=!0},p(f,m){i=f;let p={};m[0]&33&&(p.inline=i[33].type=="inline"),!n&&m[0]&33&&(n=!0,p.blocks=i[33].nested,Wt(()=>n=!1)),!a&&m[0]&2&&(a=!0,p.plugin=i[1],Wt(()=>a=!1)),t.$set(p),(!l||m[0]&33)&&oe(e,"group",i[33].type=="group"||i[33].type=="inline"),m[0]&33&&j(r,r=i[33])?(u.d(1),u=Pu(i),u.c(),u.m(o.parentNode,o)):u.p(i,m)},i(f){l||(M(t.$$.fragment,f),l=!0)},o(f){Q(t.$$.fragment,f),l=!1},d(f){f&&A(e),ne(t),f&&A(s),f&&A(o),u.d(f)}}}function Du(i,e){let t,n,a,s,r=e[36]+"",o,l,c,d,h,u,f;function m(w){e[23](w,e[37],e[38],e[39])}function p(w){e[24](w)}let y={draggable:!1};return e[37]!==void 0&&(y.blocks=e[37]),e[1]!==void 0&&(y.plugin=e[1]),c=new Zn({props:y}),Re.push(()=>Nt(c,"blocks",m)),Re.push(()=>Nt(c,"plugin",p)),{key:i,first:null,c(){t=k("div"),n=k("div"),a=k("small"),s=k("code"),o=me(r),l=W(),se(c.$$.fragment),u=W(),g(n,"class","condition"),g(t,"class","condition-container"),this.first=t},m(w,_){D(w,t,_),b(t,n),b(n,a),b(a,s),b(s,o),b(n,l),ie(c,n,null),b(t,u),f=!0},p(w,_){e=w,(!f||_[0]&33)&&r!==(r=e[36]+"")&&we(o,r);let O={};!d&&_[0]&33&&(d=!0,O.blocks=e[37],Wt(()=>d=!1)),!h&&_[0]&2&&(h=!0,O.plugin=e[1],Wt(()=>h=!1)),c.$set(O)},i(w){f||(M(c.$$.fragment,w),f=!0)},o(w){Q(c.$$.fragment,w),f=!1},d(w){w&&A(t),ne(c)}}}function E0(i){let e;return{c(){e=k("span"),e.textContent="Collapse"},m(t,n){D(t,e,n)},p:N,d(t){t&&A(e)}}}function Q0(i){let e,t=i[33].heading+"",n;return{c(){e=k("span"),n=me(t)},m(a,s){D(a,e,s),b(e,n)},p(a,s){s[0]&33&&t!==(t=a[33].heading+"")&&we(n,t)},d(a){a&&A(e)}}}function Pu(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","dropdown-icon svelte-1swdhxf")},m(s,r){D(s,e,r),n||(a=ee(t=i[13].call(null,e,i[33])),n=!0)},p(s,r){i=s,t&&Ie(t.update)&&r[0]&33&&t.update.call(null,i[33])},d(s){s&&A(e),n=!1,a()}}}function Mu(i){let e,t,n;return t=new _s({}),{c(){e=k("div"),se(t.$$.fragment),g(e,"aria-label","Block Has Rule")},m(a,s){D(a,e,s),ie(t,e,null),n=!0},i(a){n||(M(t.$$.fragment,a),n=!0)},o(a){Q(t.$$.fragment,a),n=!1},d(a){a&&A(e),ne(t)}}}function Eu(i,e){let t,n,a,s,r,o,l,c,d,h=N,u,f=e[3]&&Au(e),m=[M0,P0,D0,A0,C0],p=[];function y(_,O){return _[33].type=="group"||_[33].type=="inline"?0:_[33].type=="collapse"?1:_[33].type=="ifelse"?2:_[33].type=="action"?3:4}r=y(e,[-1,-1]),o=p[r]=m[r](e);let w="hasRule"in e[33]&&e[33].hasRule&&Mu(e);return{key:i,first:null,c(){t=k("div"),n=k("div"),a=k("div"),f&&f.c(),s=W(),o.c(),l=W(),w&&w.c(),c=W(),g(a,"class","block svelte-1swdhxf"),g(n,"class","block-container"),this.first=t},m(_,O){D(_,t,O),b(t,n),b(n,a),f&&f.m(a,null),b(a,s),p[r].m(a,null),b(n,l),w&&w.m(n,null),b(t,c),u=!0},p(_,O){e=_,e[3]?f?f.p(e,O):(f=Au(e),f.c(),f.m(a,s)):f&&(f.d(1),f=null);let E=r;r=y(e,O),r===E?p[r].p(e,O):(he(),Q(p[E],1,1,()=>{p[E]=null}),de(),o=p[r],o?o.p(e,O):(o=p[r]=m[r](e),o.c()),M(o,1),o.m(a,null)),"hasRule"in e[33]&&e[33].hasRule?w?O[0]&33&&M(w,1):(w=Mu(e),w.c(),M(w,1),w.m(n,null)):w&&(he(),Q(w,1,1,()=>{w=null}),de())},r(){d=t.getBoundingClientRect()},f(){Qi(t),h()},a(){h(),h=Ei(t,d,$i,{duration:Cl})},i(_){u||(M(o),M(w),u=!0)},o(_){Q(o),Q(w),u=!1},d(_){_&&A(t),f&&f.d(),p[r].d(),w&&w.d()}}}function I0(i){let e,t,n=[],a=new Map,s,r,o,l,c=i[0].filter(i[16]),d=h=>h[33].id;for(let h=0;h{t(0,a=a.filter(ae=>ae.id!=L.id)),n("sorted",a)},m=L=>{let ae=a.findIndex(J=>J.id==L.id);a.splice(ae,1,L),t(0,a)},p=L=>{let ae=Us(l,L,s);ae.onClose=()=>{ae.saved&&m(ae.block)},ae.open()},y=async(L,ae)=>{if(!("nested"in L))return;let J=new fn.Menu().setNoIcon();wa.forEach(ue=>{if(ue[1]=="separator"){J.addSeparator();return}J.addItem(X=>{X.setTitle(ue[1]).onClick(()=>{let z=cn(ue[0]);z&&(L.nested=[...L.nested,z],t(0,a),n("sorted",a))})})}),J.showAtMouseEvent(ae)},w=(L,ae)=>{new fn.ExtraButtonComponent(L).setIcon(r?"vertical-three-dots":"plus-circle"),L.onclick=J=>{r?new fn.Menu().addItem(ue=>{ue.setTitle("Add").setIcon("plus-with-circle").onClick(X=>{y(ae,J)})}).addItem(ue=>ue.setTitle("Edit").setIcon("pencil").onClick(()=>{p(ae)})).addItem(ue=>ue.setTitle("Delete").setIcon("trash").onClick(()=>f(ae))).showAtMouseEvent(J):y(ae,J)}},_=L=>{new fn.ExtraButtonComponent(L).setIcon("pencil").setTooltip("Edit Block")},O=L=>{new fn.ExtraButtonComponent(L).setIcon("trash").setTooltip("Delete Block")},E=L=>L.id!==hi;function S(L,ae){i.$$.not_equal(ae.nested,L)&&(ae.nested=L,t(0,a))}function v(L){l=L,t(1,l)}function x(L,ae){i.$$.not_equal(ae.nested,L)&&(ae.nested=L,t(0,a))}function P(L){l=L,t(1,l)}let I=L=>p(L),R=L=>f(L);function T(L,ae,J,ue){J[ue].nested=L,t(0,a)}function $(L){l=L,t(1,l)}let K=L=>p(L),Z=L=>f(L),F=L=>p(L),V=L=>f(L),B=L=>f(L.detail),Y=L=>m(L.detail);return i.$$set=L=>{"blocks"in L&&t(0,a=L.blocks),"layout"in L&&t(2,s=L.layout),"draggable"in L&&t(3,r=L.draggable),"inline"in L&&t(4,o=L.inline),"plugin"in L&&t(1,l=L.plugin)},[a,l,s,r,o,hi,c,d,h,u,f,m,p,w,_,O,E,S,v,x,P,I,R,T,$,K,Z,F,V,B,Y]}var Zn=class extends U{constructor(e){super(),G(this,e,R0,I0,j,{blocks:0,layout:2,draggable:3,inline:4,plugin:1},T0,[-1,-1])}},Qu=Zn;var Ys=require("obsidian");function Ot(i){return Fe(i)}function mn(i,e){return At(i,e)}function W0(i){let e,t,n,a,s,r,o,l;return s=new Qu({props:{blocks:i[1],plugin:i[3],layout:i[0].id}}),s.$on("sorted",i[4]),{c(){e=k("div"),t=k("div"),a=W(),se(s.$$.fragment),g(e,"class","creator-container")},m(c,d){D(c,e,d),b(e,t),b(e,a),ie(s,e,null),r=!0,o||(l=ee(n=i[5].call(null,t)),o=!0)},p(c,[d]){let h={};d&2&&(h.blocks=c[1]),d&1&&(h.layout=c[0].id),s.$set(h)},i(c){r||(M(s.$$.fragment,c),r=!0)},o(c){Q(s.$$.fragment,c),r=!1},d(c){c&&A(e),ne(s),o=!1,l()}}}function N0(i,e,t){let n,a,s=Ot("layout");Se(i,s,d=>t(0,a=d));let r=Ot("plugin"),o=d=>{Te(s,a.blocks=[...d.detail],a)},l=d=>{new Ys.Setting(d).setHeading().setName("Blocks").addExtraButton(h=>{h.setIcon("plus-with-circle").setTooltip("Add Block").extraSettingsEl.onClickEvent(u=>c(u))})},c=async d=>{let h=new Ys.Menu().setNoIcon();wa.forEach(u=>{if(u[1]=="separator"){h.addSeparator();return}h.addItem(f=>{f.setTitle(u[1]).onClick(()=>{let m=cn(u[0]);m&&Te(s,a.blocks=[...a.blocks,m],a)})})}),h.showAtMouseEvent(d)};return i.$$.update=()=>{i.$$.dirty&1&&t(1,n=a.blocks)},[a,n,s,r,o,l]}var Al=class extends U{constructor(e){super(),G(this,e,N0,W0,j,{})}},Dl=Al;var Ea=require("obsidian");var Pa=require("obsidian");function L0(i){re(i,"svelte-1cgghnt",".drop-items.svelte-1cgghnt.svelte-1cgghnt{width:100%;margin:0.5rem 0}.drop-item-container.svelte-1cgghnt .icon.svelte-1cgghnt,.icons.svelte-1cgghnt.svelte-1cgghnt{display:flex;align-items:center}.drop-item-container.svelte-1cgghnt.svelte-1cgghnt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;justify-content:space-between;gap:1rem;width:100%}.drop-item-container.svelte-1cgghnt.svelte-1cgghnt:not(.draggable){cursor:inherit !important}.drop-item-container.svelte-1cgghnt.svelte-1cgghnt:not(:last-child){margin-bottom:0.5rem}")}function Iu(i,e,t){let n=i.slice();return n[15]=e[t],n}function Ru(i){let e,t,n,a,s;return{c(){e=k("div"),g(e,"class","icon svelte-1cgghnt"),g(e,"style",t=i[5]?"cursor: grab":"cursor: grabbing")},m(r,o){D(r,e,o),a||(s=[ee(n=Le.call(null,e,"grip-vertical")),H(e,"mousedown",i[6]),H(e,"touchstart",i[6])],a=!0)},p(r,o){o&32&&t!==(t=r[5]?"cursor: grab":"cursor: grabbing")&&g(e,"style",t)},d(r){r&&A(e),a=!1,ce(s)}}}function Wu(i){let e,t,n,a,s,r,o,l;return{c(){e=k("div"),t=k("div"),a=W(),s=k("div"),g(t,"class","icon svelte-1cgghnt"),g(s,"class","icon svelte-1cgghnt"),g(e,"class","icons svelte-1cgghnt")},m(c,d){D(c,e,d),b(e,t),b(e,a),b(e,s),o||(l=[ee(n=i[9].call(null,t,i[15])),ee(r=i[10].call(null,s,i[15]))],o=!0)},p(c,d){i=c,n&&Ie(n.update)&&d&1&&n.update.call(null,i[15]),r&&Ie(r.update)&&d&1&&r.update.call(null,i[15])},d(c){c&&A(e),o=!1,ce(l)}}}function Nu(i,e){let t,n,a,s,r,o,l,c=N,d,h=e[2]&&Ru(e);var u=e[4];function f(p){return{props:{item:p[15]}}}u&&(s=Vr(u,f(e)));let m=e[3]&&Wu(e);return{key:i,first:null,c(){t=k("div"),h&&h.c(),n=W(),a=k("div"),s&&se(s.$$.fragment),r=W(),m&&m.c(),o=W(),g(a,"class","drop-item"),oe(a,"type",e[1]),g(t,"class","drop-item-container svelte-1cgghnt"),oe(t,"draggable",e[2]),this.first=t},m(p,y){D(p,t,y),h&&h.m(t,null),b(t,n),b(t,a),s&&ie(s,a,null),b(t,r),m&&m.m(t,null),b(t,o),d=!0},p(p,y){e=p,e[2]?h?h.p(e,y):(h=Ru(e),h.c(),h.m(t,n)):h&&(h.d(1),h=null);let w={};if(y&1&&(w.item=e[15]),y&16&&u!==(u=e[4])){if(s){he();let _=s;Q(_.$$.fragment,1,0,()=>{ne(_,1)}),de()}u?(s=Vr(u,f(e)),se(s.$$.fragment),M(s.$$.fragment,1),ie(s,a,null)):s=null}else u&&s.$set(w);(!d||y&2)&&oe(a,"type",e[1]),e[3]?m?m.p(e,y):(m=Wu(e),m.c(),m.m(t,o)):m&&(m.d(1),m=null),(!d||y&4)&&oe(t,"draggable",e[2])},r(){l=t.getBoundingClientRect()},f(){Qi(t),c()},a(){c(),c=Ei(t,l,$i,{duration:Pl})},i(p){d||(s&&M(s.$$.fragment,p),d=!0)},o(p){s&&Q(s.$$.fragment,p),d=!1},d(p){p&&A(t),h&&h.d(),s&&ne(s),m&&m.d()}}}function $0(i){let e,t=[],n=new Map,a,s,r,o,l=i[0].filter(i[12]),c=d=>d[15].id;for(let d=0;d{new Pa.ExtraButtonComponent(_).setIcon("wrench").onClick(()=>c("advanced",O))},y=(_,O)=>{new Pa.ExtraButtonComponent(_).setIcon("trash").onClick(()=>c("trash",O))},w=_=>_.id!==hi;return i.$$set=_=>{"items"in _&&t(0,n=_.items),"type"in _&&t(1,a=_.type),"draggable"in _&&t(2,s=_.draggable),"showIcons"in _&&t(3,r=_.showIcons),"component"in _&&t(4,o=_.component),"onDrop"in _&&t(11,l=_.onDrop)},[n,a,s,r,o,u,h,f,m,p,y,l,w]}var Ml=class extends U{constructor(e){super(),G(this,e,B0,$0,j,{items:0,type:1,draggable:2,showIcons:3,component:4,onDrop:11},L0)}},Lu=Ml;function $u(i){let e,t=i[0].desc+"",n;return{c(){e=k("div"),n=me(t),g(e,"class","setting-item-description")},m(a,s){D(a,e,s),b(e,n)},p(a,s){s&1&&t!==(t=a[0].desc+"")&&we(n,t)},d(a){a&&A(e)}}}function z0(i){let e,t,n,a,s=i[0].regex+"",r,o,l,c=i[0].desc&&$u(i);return{c(){e=k("div"),t=k("div"),n=k("code"),a=me("/"),r=me(s),o=me("/"),l=W(),c&&c.c(),g(t,"class","setting-item-name"),g(e,"class","dice-parsing setting-item-info")},m(d,h){D(d,e,h),b(e,t),b(t,n),b(n,a),b(n,r),b(n,o),b(e,l),c&&c.m(e,null)},p(d,[h]){h&1&&s!==(s=d[0].regex+"")&&we(r,s),d[0].desc?c?c.p(d,h):(c=$u(d),c.c(),c.m(e,null)):c&&(c.d(1),c=null)},i:N,o:N,d(d){d&&A(e),c&&c.d()}}}function H0(i,e,t){let{item:n}=e;return i.$$set=a=>{"item"in a&&t(0,n=a.item)},[n]}var El=class extends U{constructor(e){super(),G(this,e,H0,z0,j,{item:0})}},Bu=El;var Gt=require("obsidian");var Ma=class extends vt{constructor(t,n){super(t);this.item={regex:"",parser:"",id:q()};this.saved=!0;n?(this.editing=!0,this.item={...n}):this.editing=!1}onOpen(){this.titleEl.setText(this.editing?"Editing Dice Parser":"New Dice Parser"),this.display()}async display(){this.contentEl.empty(),new Gt.Setting(this.contentEl).setName("Example").setDesc("Add an example, for reference only.").addText(t=>{t.setValue(this.item.desc).onChange(n=>this.item.desc=n)}),this.buildRegEx(this.contentEl.createDiv()),this.buildParser(this.contentEl.createDiv()),this.buildTester(this.contentEl.createDiv()),new Gt.Setting(this.contentEl).addExtraButton(t=>t.setIcon("cross").setTooltip("Cancel").onClick(()=>{this.saved=!1,this.close()}))}buildTester(t){t.empty()}buildRegEx(t){t.empty(),new Gt.Setting(t).setHeading().setName("Regular Expression").setDesc(""),this.regex=Da(t,this.item.regex,["statblock-textarea-x-small"],n=>{this.item.regex=n})}getCallbackDescription(){return createFragment(t=>{t.createSpan({text:"The dice parser callback needs to parse the results of the regular expression and return the correct dice string to display."}),t.createEl("br"),t.createEl("br"),t.createSpan({text:"The callback will have the "}),t.createEl("code",{text:"original"}),t.createSpan({text:" (the matched text), "}),t.createEl("code",{text:"matches"}),t.createSpan({text:" (the RegExpMatchArray), and "}),t.createEl("code",{text:"monster"}),t.createSpan({text:" (current monster being rendered) parameters available in the callback."}),t.createEl("br"),t.createEl("br"),t.createSpan({text:"The callback should return an instance of:"}),Gt.MarkdownRenderer.render(this.plugin.app,"```ts\ninterface DiceCallbackObject {\n text: string // string to be parsed into a dice roll\n original?: string // optional, shown in parenthesis\n}\n```",t.createDiv(),"",new Gt.Component),t.createEl("br"),t.createEl("span",{text:"For example: "}),t.createEl("br"),Gt.MarkdownRenderer.render(this.plugin.app,'```ts\nreturn { text: "1d20 + 3" };\n```',t.createDiv(),"",new Gt.Component)})}buildParser(t){t.empty();let n=new Gt.Setting(t).setHeading().setName("Callback").addExtraButton(a=>{let s=!1;a.setIcon("help-circle").onClick(()=>{s?n.setDesc(""):n.setDesc(this.getCallbackDescription()),s=!s})});n.settingEl.style.alignItems="flex-start",this.parser=Da(t,this.item.parser,[],a=>{this.item.parser=a})}};function F0(i){re(i,"svelte-tnyfuy",".defaults.svelte-tnyfuy{color:var(--text-muted);font-style:italic;font-size:smaller}")}function j0(i){let e,t,n,a,s,r;return{c(){e=k("div"),n=W(),a=k("span"),a.textContent=`This layout does not have any dice parsers defined. Add one to + begin parsing for dice.`,g(a,"class","defaults svelte-tnyfuy")},m(o,l){D(o,e,l),D(o,n,l),D(o,a,l),s||(r=ee(t=i[7].call(null,e)),s=!0)},d(o){o&&A(e),o&&A(n),o&&A(a),s=!1,r()}}}function Z0(i){let e,t,n,a,s,r;return{c(){e=k("div"),n=W(),a=k("span"),a.textContent=`This layout is currently using the default dice parsers. Add a + custom dice parser to override this behavior.`,g(a,"class","defaults svelte-tnyfuy")},m(o,l){D(o,e,l),D(o,n,l),D(o,a,l),s||(r=ee(t=i[7].call(null,e)),s=!0)},d(o){o&&A(e),o&&A(n),o&&A(a),s=!1,r()}}}function zu(i){let e,t;return e=new Lu({props:{type:"dice",component:Bu,items:i[1]??ys(),onDrop:i[3],showIcons:i[1]!=null,draggable:i[1]!=null}}),e.$on("advanced",i[11]),e.$on("trash",i[12]),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,a){let s={};a&2&&(s.items=n[1]??ys()),a&2&&(s.showIcons=n[1]!=null),a&2&&(s.draggable=n[1]!=null),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function X0(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_,O,E,S,v,x,P,I=i[1],R,T,$;function K(B,Y){if(!B[1])return Z0;if(B[1].length==0)return j0}let Z=K(i,-1),F=Z&&Z(i),V=zu(i);return{c(){e=k("div"),t=k("div"),t.innerHTML=`
Columns
+
Always try to split into this many columns, regardless of height.
`,n=W(),a=k("div"),s=k("input"),r=W(),o=k("div"),l=k("div"),l.innerHTML=`
Column width
+
Width in pixels. Default: 400px
`,c=W(),d=k("div"),h=k("input"),u=W(),f=k("div"),m=k("div"),m.innerHTML=`
Force columns
+
Ignore available space when calculating columns.
`,p=W(),y=k("div"),_=W(),O=k("div"),S=W(),v=k("div"),x=k("div"),F&&F.c(),P=W(),V.c(),g(t,"class","setting-item-info"),g(s,"type","number"),g(s,"min","0"),g(a,"class","setting-item-control"),g(e,"class","setting-item"),g(l,"class","setting-item-info"),g(h,"type","number"),g(h,"min","0"),g(d,"class","setting-item-control"),g(o,"class","setting-item"),g(m,"class","setting-item-info"),g(y,"class","setting-item-control"),g(f,"class","setting-item"),g(x,"class","additional"),g(v,"class","dice-parsing statblock-additional-container")},m(B,Y){D(B,e,Y),b(e,t),b(e,n),b(e,a),b(a,s),kt(s,i[0].columns),D(B,r,Y),D(B,o,Y),b(o,l),b(o,c),b(o,d),b(d,h),kt(h,i[0].columnWidth),D(B,u,Y),D(B,f,Y),b(f,m),b(f,p),b(f,y),D(B,_,Y),D(B,O,Y),D(B,S,Y),D(B,v,Y),b(v,x),F&&F.m(x,null),b(x,P),V.m(x,null),R=!0,T||($=[H(s,"input",i[9]),H(h,"input",i[10]),ee(w=i[8].call(null,y)),ee(E=i[6].call(null,O))],T=!0)},p(B,[Y]){Y&1&&Yi(s.value)!==B[0].columns&&kt(s,B[0].columns),Y&1&&Yi(h.value)!==B[0].columnWidth&&kt(h,B[0].columnWidth),Z!==(Z=K(B,Y))&&(F&&F.d(1),F=Z&&Z(B),F&&(F.c(),F.m(x,P))),Y&2&&j(I,I=B[1])?(he(),Q(V,1,1,N),de(),V=zu(B),V.c(),M(V,1),V.m(x,null)):V.p(B,Y)},i(B){R||(M(V),R=!0)},o(B){Q(V),R=!1},d(B){B&&A(e),B&&A(r),B&&A(o),B&&A(u),B&&A(f),B&&A(_),B&&A(O),B&&A(S),B&&A(v),F&&F.d(),V.d(B),T=!1,ce($)}}}function q0(i,e,t){let n,a,s=Ot("layout");Se(i,s,w=>t(0,a=w));let r=Ot("plugin");function o(w){Te(s,a.diceParsing=[...w],a)}let l=w=>{let _=new Ma(r,w);_.onClose=()=>{if(!_.saved)return;a.diceParsing==null&&Te(s,a.diceParsing=[],a);let O=a.diceParsing.indexOf(w);O===-1?a.diceParsing.push(_.item):a.diceParsing.splice(O,1,_.item),s.set(a)},_.open()},c=w=>{t(1,n=n.filter(_=>_.id!=w.id)),Te(s,a.diceParsing=[...n],a)},d=w=>{new Ea.Setting(w).setHeading().setName("Dice Parsing").setDesc(createFragment(_=>{_.createSpan({text:"Add "}),_.createEl("a",{href:"https://regex101.com",text:"regular expressions"}),_.createSpan({text:" to detect dice rolls inside your layout."}),_.createEl("br"),_.createSpan({text:"These are parsed in order, and the first one to trigger is what will be used."})})).addExtraButton(_=>{_.setIcon("plus-with-circle").onClick(()=>{l()})})},h=w=>{new Ea.Setting(w).setName(n==null?"Remove default parsers":"Restore default parsers").addButton(_=>{_.setIcon(n==null?"trash":"archive-restore").onClick(()=>{t(1,n=n==null?[]:null)})})},u=w=>{new Ea.ToggleComponent(w).setValue(a.forceColumns).onChange(()=>{Te(s,a.forceColumns=!a.forceColumns,a)})};function f(){a.columns=Yi(this.value),s.set(a)}function m(){a.columnWidth=Yi(this.value),s.set(a)}let p=w=>l(w.detail),y=w=>c(w.detail);return i.$$.update=()=>{i.$$.dirty&1&&t(1,n=a.diceParsing?[...a.diceParsing]:null)},[a,n,s,o,l,c,d,h,u,f,m,p,y]}var Ql=class extends U{constructor(e){super(),G(this,e,q0,X0,j,{},F0)}},Il=Ql;var Ax=require("obsidian");var Nl=require("obsidian");var Ia=["primaryColor","ruleColor","backgroundColor","borderSize","borderColor","barColor","barBorderSize","barBorderColor","imageWidth","imageHeight","imageBorderSize","imageBorderColor","boxShadowColor","boxShadowXOffset","boxShadowYOffset","boxShadowBlur","fontColor","fontWeight","contentFont","contentFontSize","headingFont","headingFontColor","headingFontSize","headingFontVariant","headingFontWeight","propertyFont","propertyFontColor","propertyFontVariant","propertyFontSize","propertyFontWeight","propertyNameFont","propertyNameFontVariant","propertyNameFontSize","propertyNameFontColor","propertyNameFontWeight","sectionHeadingBorderSize","sectionHeadingBorderColor","sectionHeadingFont","sectionHeadingFontColor","sectionHeadingFontSize","sectionHeadingFontVariant","sectionHeadingFontWeight","subheadingFont","subheadingFontColor","subheadingFontSize","subheadingFontStyle","subheadingFontWeight","traitsFont","traitsFontColor","traitsFontSize","traitsFontWeight","traitsFontStyle","traitsNameFont","traitsNameFontColor","traitsNameFontSize","traitsNameFontWeight","traitsNameFontStyle"],Rl={primaryColor:"#7a200d",ruleColor:"#922610",backgroundColor:"#fdf1dc",borderSize:"1px",borderColor:"#ddd",barColor:"#e69a28",barBorderSize:"1px",barBorderColor:"#000",imageWidth:"75px",imageHeight:"75px",imageBorderSize:"2px",imageBorderColor:"primaryColor",boxShadowColor:"#ddd",boxShadowXOffset:"0",boxShadowYOffset:"0",boxShadowBlur:"1.5em",fontColor:"primaryColor",fontWeight:"700",contentFont:'"Noto Sans", "Myriad Pro", Calibri, Helvetica, Arial, sans-serif',contentFontSize:"14px",headingFont:'"Libre Baskerville", "Lora", "Calisto MT", "Bookman Old Style", Bookman, "Goudy Old Style", Garamond, "Hoefler Text", "Bitstream Charter", Georgia, serif',headingFontColor:"fontColor",headingFontSize:"23px",headingFontVariant:"small-caps",headingFontWeight:"fontWeight",sectionHeadingBorderSize:"1px",sectionHeadingBorderColor:"primaryColor",sectionHeadingFont:null,sectionHeadingFontColor:"fontColor",sectionHeadingFontSize:"21px",sectionHeadingFontVariant:"small-caps",sectionHeadingFontWeight:"normal",subheadingFont:"contentFont",subheadingFontColor:"fontColor",subheadingFontSize:"12px",subheadingFontStyle:"italic",subheadingFontWeight:"normal",propertyFont:"contentFont",propertyFontColor:"fontColor",propertyFontVariant:"normal",propertyFontSize:"contentFontSize",propertyFontWeight:null,propertyNameFont:"contentFont",propertyNameFontColor:"fontColor",propertyNameFontWeight:null,propertyNameFontVariant:null,propertyNameFontSize:"contentFontSize",traitsFont:"contentFont",traitsFontColor:"fontColor",traitsFontSize:"contentFontSize",traitsFontWeight:null,traitsFontStyle:null,traitsNameFont:"contentFont",traitsNameFontColor:"fontColor",traitsNameFontSize:"contentFontSize",traitsNameFontWeight:"bold",traitsNameFontStyle:"italic"},Ce={Light:"moonstone",Dark:"obsidian",None:"none"};function Wl(i,e,t){let n=new Set,a=Xn(i,e,t);for(;Ia.includes(a)&&!n.has(a);)n.add(a),a=Xn(i,a,t);return n}function Hu(i,e,t){let n=Xn(i,e,t);return n!=null&&Ia.includes(n)}function Xn(i,e,t){return(t!=Ce.None?i?.[t]?.[e]:null)??i?.[e]??Rl[e]??null}function Gs(i,e,t,n=new Set){n.add(e);let a=Xn(i,e,t);return Ia.includes(a)?n.has(a)?null:Gs(i,a,t,n):a}var be=Object.freeze({Number:"Number",Color:"Color",Font:"Font",Size:"Size",Style:"Style",Variant:"Variant",Weight:"Weight"}),Ks=[{name:"General",desc:"",properties:[{type:be.Color,property:"primaryColor",desc:"This is used to derive several other properties by default.",name:"Primary color"},{type:be.Color,property:"ruleColor",name:"Rule color"},{type:be.Color,property:"backgroundColor",name:"Background color"},{type:be.Color,property:"borderColor",name:"Border color"},{type:be.Size,property:"borderSize",name:"Border size"}]},{name:"Content font",desc:"",properties:[{type:be.Font,name:"Content font",desc:"This is the font used for most of the content in a statblock.",property:"contentFont"},{type:be.Size,name:"Content font size",property:"contentFontSize"},{type:be.Weight,name:"Content font weight",property:"fontWeight"},{type:be.Color,name:"Content font color",property:"fontColor"}]},{name:"Bar",desc:"Control the appearance of the top and bottom bars.",properties:[{type:be.Color,name:"Bar color",property:"barColor"},{type:be.Color,name:"Bar border color",property:"barBorderColor"},{type:be.Size,name:"Bar border size",property:"barBorderSize"}]},{name:"Images",desc:"",properties:[{type:be.Size,name:"Image width",property:"imageWidth"},{type:be.Size,name:"Image height",property:"imageHeight"},{type:be.Size,name:"Image border size",property:"imageBorderSize"},{type:be.Color,name:"Image border color",property:"imageBorderColor"}]},{name:"Shadow",desc:"",properties:[{type:be.Color,name:"Shadow color",property:"boxShadowColor"},{type:be.Size,name:"Shadow x offset",property:"boxShadowXOffset"},{type:be.Size,name:"Shadow y offset",property:"boxShadowYOffset"},{type:be.Size,name:"Shadow blur",property:"boxShadowBlur"}]},{name:"Headings",desc:"Anything related to heading blocks.",properties:[{type:be.Font,property:"headingFont",name:"Heading font"},{type:be.Color,property:"headingFontColor",name:"Heading font color"},{type:be.Size,property:"headingFontSize",name:"Heading font size"},{type:be.Variant,property:"headingFontVariant",name:"Heading font variant"},{type:be.Weight,property:"headingFontWeight",name:"Heading font weight"}]},{name:"Properties",desc:"Anything related to property blocks.",properties:[{type:be.Font,property:"propertyFont",name:"Property font"},{type:be.Color,property:"propertyFontColor",name:"Property font color"},{type:be.Size,property:"propertyFontSize",name:"Property font size"},{type:be.Variant,property:"propertyFontVariant",name:"Property font variant"},{type:be.Weight,property:"propertyFontWeight",name:"Property font weight"},{type:be.Font,property:"propertyNameFont",name:"Property heading font"},{type:be.Color,property:"propertyNameFontColor",name:"Property name font color"},{type:be.Size,property:"propertyNameFontSize",name:"Property name font size"},{type:be.Variant,property:"propertyNameFontVariant",name:"Property name font variant"},{type:be.Weight,property:"propertyNameFontWeight",name:"Property name font weight"}]},{name:"Section headings",desc:"Anything related to section heading blocks.",properties:[{type:be.Font,property:"sectionHeadingFont",name:"Section heading font"},{type:be.Color,property:"sectionHeadingFontColor",name:"Section heading font color"},{type:be.Size,property:"sectionHeadingFontSize",name:"Section heading font size"},{type:be.Variant,property:"sectionHeadingFontVariant",name:"Section heading font variant"},{type:be.Weight,property:"sectionHeadingFontWeight",name:"Section heading font weight"},{type:be.Size,property:"sectionHeadingBorderSize",name:"Section heading border size"},{type:be.Color,property:"sectionHeadingBorderColor",name:"Section heading border color"}]},{name:"Subheadings",desc:"",properties:[{type:be.Font,property:"subheadingFont",name:"Subheading font"},{type:be.Color,property:"subheadingFontColor",name:"Subheading font color"},{type:be.Size,property:"subheadingFontSize",name:"Subheading font size"},{type:be.Style,property:"subheadingFontStyle",name:"Subheading font style"},{type:be.Weight,property:"subheadingFontWeight",name:"Subheading font weight"}]},{name:"Traits",desc:"",properties:[{type:be.Font,property:"traitsFont",name:"Traits font"},{type:be.Color,property:"traitsFontColor",name:"Traits font color"},{type:be.Size,property:"traitsFontSize",name:"Traits font size"},{type:be.Style,property:"traitsFontStyle",name:"Traits font style"},{type:be.Weight,property:"traitsFontWeight",name:"Traits font weight"},{type:be.Font,property:"traitsNameFont",name:"Trait name font"},{type:be.Color,property:"traitsNameFontColor",name:"Trait name font color"},{type:be.Size,property:"traitsNameFontSize",name:"Trait name font size"},{type:be.Style,property:"traitsNameFontStyle",name:"Trait name font style"},{type:be.Weight,property:"traitsNameFontWeight",name:"Trait name font weight"}]}],Qa=new Map;for(let i of Ks)for(let e of i.properties)Qa.has(e.type)||Qa.set(e.type,[]),Qa.get(e.type).push(e);function Fu(i,e,t){let n=i.slice();return n[19]=e[t],n}function U0(i){let e,t,n;return{c(){e=k("input"),g(e,"type","text"),g(e,"spellcheck","false"),e.value=i[4]},m(a,s){D(a,e,s),t||(n=H(e,"change",i[16]),t=!0)},p(a,s){s&16&&e.value!==a[4]&&(e.value=a[4])},d(a){a&&A(e),t=!1,n()}}}function V0(i){let e,t,n;return{c(){e=k("input"),g(e,"type","color"),e.value=i[4]},m(a,s){D(a,e,s),t||(n=H(e,"change",i[15]),t=!0)},p(a,s){s&16&&(e.value=a[4])},d(a){a&&A(e),t=!1,n()}}}function Y0(i){let e,t,n,a=i[1],s=[];for(let r=0;rt(18,a=v));let h=Ot("mode");Se(i,h,v=>t(17,n=v));let u=pt([d,h],([v,x])=>Qa.get(c.type).filter(P=>P.property!=c.property&&!Wl(v.cssProperties,P.property,x).has(c.property)));Se(i,u,v=>t(1,s=v));let f=pt([d,h],([v,x])=>Gs(v.cssProperties,c.property,x)??"");Se(i,f,v=>t(4,l=v));let m=pt([d,h,u],([v,x,P])=>Xn(v.cssProperties,c.property,x)??P[0].property);Se(i,m,v=>t(3,o=v));let p=pt([d,h],([v,x])=>Hu(v.cssProperties,c.property,x));Se(i,p,v=>t(2,r=v));let y=v=>{new Nl.ExtraButtonComponent(v).setIcon(r?"unlink":"link").onClick(()=>{_(r?Gs(a.cssProperties,c.property,n):s.find(x=>!Wl(a.cssProperties,x.property,n).has(c.property)).property)})},w=v=>{new Nl.ExtraButtonComponent(v).setIcon("undo").onClick(()=>{n===Ce.None?delete a.cssProperties?.[c.property]:delete a.cssProperties?.[n]?.[c.property],d.set(a)})},_=v=>{a.cssProperties||Te(d,a.cssProperties={},a),n===Ce.None?Te(d,a.cssProperties[c.property]=v,a):(a.cssProperties[n]||Te(d,a.cssProperties[n]={},a),Te(d,a.cssProperties[n][c.property]=v,a))},O=v=>_(v.currentTarget.value),E=v=>_(v.currentTarget.value),S=v=>_(v.currentTarget.value);return i.$$set=v=>{"property"in v&&t(0,c=v.property)},[c,s,r,o,l,d,h,u,f,m,p,y,w,_,O,E,S]}var Ll=class extends U{constructor(e){super(),G(this,e,K0,G0,j,{property:0})}},Xu=Ll;var qu=require("obsidian");function J0(i){re(i,"svelte-1tfzjob",'.always-open.svelte-1tfzjob.svelte-1tfzjob{pointer-events:none}.creator-settings-container.svelte-1tfzjob.svelte-1tfzjob{pointer-events:initial}.calendarium-nested-settings.svelte-1tfzjob.svelte-1tfzjob{position:relative}.calendarium-nested-summary.svelte-1tfzjob.svelte-1tfzjob{outline:none;list-style:none !important;list-style-type:none !important;min-height:1rem;border-top-left-radius:0.1rem;border-top-right-radius:0.1rem;cursor:pointer;background-color:var(--creator-background-color);margin-right:0;display:flex;justify-content:space-between}summary.svelte-1tfzjob.svelte-1tfzjob::-webkit-details-marker,summary.svelte-1tfzjob.svelte-1tfzjob::marker{display:none !important}.always-open.svelte-1tfzjob .handle.svelte-1tfzjob{display:none}.collapser.svelte-1tfzjob.svelte-1tfzjob{display:flex;flex-flow:column;justify-content:flex-start;align-items:flex-end;content:""}.handle.svelte-1tfzjob.svelte-1tfzjob{transform:rotate(0deg);transition:transform 0.25s;display:flex}details[open].svelte-1tfzjob .handle.svelte-1tfzjob{transform:rotate(90deg)}.creator-settings-container.svelte-1tfzjob.svelte-1tfzjob{padding:0.75em var(--size-4-3)}.calendarium-nested-settings.svelte-1tfzjob.svelte-1tfzjob{border-top:0px}')}function ey(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_,O,E=i[6].default,S=st(E,i,i[5],null);return{c(){e=k("details"),t=k("summary"),n=k("div"),a=k("div"),s=k("div"),r=me(i[1]),o=W(),l=k("div"),c=me(i[2]),d=W(),h=k("div"),u=k("div"),f=k("div"),p=W(),y=k("div"),S&&S.c(),g(s,"class","setting-item-name"),g(l,"class","setting-item-description"),g(a,"class","setting-item-info"),g(n,"class","setting-item setting-item-heading"),g(f,"class","handle svelte-1tfzjob"),g(u,"class","warning-container"),g(h,"class","collapser svelte-1tfzjob"),g(t,"class","calendarium-nested-summary svelte-1tfzjob"),g(y,"class","creator-settings-container svelte-1tfzjob"),g(e,"class","creator calendarium-nested-settings setting-item svelte-1tfzjob"),oe(e,"always-open",i[3])},m(v,x){D(v,e,x),b(e,t),b(t,n),b(n,a),b(a,s),b(s,r),b(a,o),b(a,l),b(l,c),b(t,d),b(t,h),b(h,u),b(u,f),b(e,p),b(e,y),S&&S.m(y,null),e.open=i[0],w=!0,_||(O=[ee(m=i[4].call(null,f)),H(e,"toggle",i[7])],_=!0)},p(v,[x]){(!w||x&2)&&we(r,v[1]),(!w||x&4)&&we(c,v[2]),S&&S.p&&(!w||x&32)&&ot(S,E,v,v[5],w?rt(E,v[5],x,null):lt(v[5]),null),x&1&&(e.open=v[0]),(!w||x&8)&&oe(e,"always-open",v[3])},i(v){w||(M(S,v),w=!0)},o(v){Q(S,v),w=!1},d(v){v&&A(e),S&&S.d(v),_=!1,ce(O)}}}function ty(i,e,t){let{$$slots:n={},$$scope:a}=e,{open:s=!0}=e,{name:r}=e,{desc:o=""}=e,{alwaysOpen:l=!1}=e,c=h=>{(0,qu.setIcon)(h,"chevron-right")};function d(){s=this.open,t(0,s)}return i.$$set=h=>{"open"in h&&t(0,s=h.open),"name"in h&&t(1,r=h.name),"desc"in h&&t(2,o=h.desc),"alwaysOpen"in h&&t(3,l=h.alwaysOpen),"$$scope"in h&&t(5,a=h.$$scope)},[s,r,o,l,c,a,n,d]}var $l=class extends U{constructor(e){super(),G(this,e,ty,ey,j,{open:0,name:1,desc:2,alwaysOpen:3},J0)}},Ra=$l;function Uu(i,e,t){let n=i.slice();return n[1]=e[t],n}function Vu(i){let e,t;return e=new Xu({props:{property:i[1]}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,a){let s={};a&1&&(s.property=n[1]),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function iy(i){let e,t,n=i[0].properties,a=[];for(let r=0;rQ(a[r],1,1,()=>{a[r]=null});return{c(){for(let r=0;r{"group"in a&&t(0,n=a.group)},[n]}var Bl=class extends U{constructor(e){super(),G(this,e,ay,ny,j,{group:0})}},Yu=Bl;function sy(i){re(i,"svelte-1obegcf",".appearance-parent.svelte-1obegcf{overflow:hidden}.property-groups.svelte-1obegcf{overflow:auto;height:100%}")}function Gu(i,e,t){let n=i.slice();return n[5]=e[t],n}function Ku(i){let e,t;return e=new Yu({props:{group:i[5]}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p:N,i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function ry(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_=Ks,O=[];for(let S=0;S<_.length;S+=1)O[S]=Ku(Gu(i,_,S));let E=S=>Q(O[S],1,1,()=>{O[S]=null});return{c(){e=k("div"),t=k("div"),n=k("div"),n.innerHTML='
Set colors for...
',a=W(),s=k("div"),r=k("button"),r.textContent="Both",o=W(),l=k("button"),d=W(),h=k("button"),f=W(),m=k("div");for(let S=0;St(0,n=l)),mn("mode",a),[n,a,()=>Te(a,n=Ce.None,n),()=>Te(a,n=Ce.Light,n),()=>Te(a,n=Ce.Dark,n)]}var zl=class extends U{constructor(e){super(),G(this,e,oy,ry,j,{},sy)}},Ju=zl;var Kt=require("obsidian");var Hl=require("obsidian"),ef=It(Fs());var qn=class extends ef.FuzzyInputSuggest{constructor(){super(...arguments);this.field="name"}getItemText(t){return ye(t[this.field])}renderNote(t,n){let{item:a,match:s}=n;(0,Hl.renderMatches)(t,ye(a.source),s.matches)}renderTitle(t,n){let{item:a,match:s}=n;(0,Hl.renderMatches)(t,ye(a.name),s.matches)}};function ly(i){re(i,"svelte-1jv9opu",".previewer.svelte-1jv9opu{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:0.5rem}.preview.svelte-1jv9opu{overflow:hidden;position:relative}.inner.svelte-1jv9opu{overflow:auto;padding:var(--size-4-4);transform-origin:top left;scale:var(--scale, 0.625);width:calc(100% / var(--scale, 0.625));height:calc(100% / var(--scale, 0.625))}.definition.svelte-1jv9opu{display:flex;flex-flow:column nowrap;gap:0.25rem}.yaml-editor.svelte-1jv9opu{font-size:var(--font-smallest)}")}function cy(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_,O,E,S,v,x;return{c(){e=k("div"),t=k("div"),t.innerHTML='
Set theme mode
',n=W(),a=k("div"),s=k("button"),o=W(),l=k("button"),d=W(),h=k("div"),u=k("div"),f=k("div"),f.textContent="Scale preview",m=W(),p=k("div"),y=me("Current: "),w=me(i[1]),_=W(),O=k("div"),E=k("input"),g(t,"class","setting-item-info"),g(s,"aria-label","Light"),oe(s,"mod-cta",i[2]==Ce.Light),g(l,"aria-label","Dark"),oe(l,"mod-cta",i[2]==Ce.Dark),g(a,"class","setting-item-control"),g(e,"class","setting-item"),g(f,"class","setting-item-name"),g(p,"class","setting-item-description"),g(u,"class","setting-item-info"),g(E,"class","slider"),g(E,"type","range"),g(E,"min","0"),g(E,"max","1"),g(E,"step","0.1"),g(O,"class","setting-item-control"),g(h,"class","setting-item")},m(P,I){D(P,e,I),b(e,t),b(e,n),b(e,a),b(a,s),b(a,o),b(a,l),D(P,d,I),D(P,h,I),b(h,u),b(u,f),b(u,m),b(u,p),b(p,y),b(p,w),b(h,_),b(h,O),b(O,E),kt(E,i[1]),v||(x=[ee(r=Le.call(null,s,"sun")),H(s,"click",i[14]),ee(c=Le.call(null,l,"moon")),H(l,"click",i[15]),H(E,"change",i[16]),H(E,"input",i[16]),ee(S=i[10].call(null,O))],v=!0)},p(P,I){I&4&&oe(s,"mod-cta",P[2]==Ce.Light),I&4&&oe(l,"mod-cta",P[2]==Ce.Dark),I&2&&we(w,P[1]),I&2&&kt(E,P[1])},d(P){P&&A(e),P&&A(d),P&&A(h),v=!1,ce(x)}}}function hy(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","yaml-editor svelte-1jv9opu")},m(s,r){D(s,e,r),n||(a=ee(t=i[6].call(null,e)),n=!0)},p:N,d(s){s&&A(e),n=!1,a()}}}function dy(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w;return d=new Ra({props:{name:"Settings",desc:i[3],open:!1,$$slots:{default:[cy]},$$scope:{ctx:i}}}),f=new Ra({props:{name:"Editor",open:!1,$$slots:{default:[hy]},$$scope:{ctx:i}}}),{c(){e=k("div"),t=k("div"),t.textContent=`Select a creature to preview the layout, or enter your own definition + below.`,n=W(),a=k("div"),s=k("div"),r=W(),o=k("div"),c=W(),se(d.$$.fragment),h=W(),u=k("div"),se(f.$$.fragment),g(s,"class","preview-container inner svelte-1jv9opu"),g(a,"class","preview svelte-1jv9opu"),g(u,"class","definition svelte-1jv9opu"),g(e,"class","previewer svelte-1jv9opu"),g(e,"style",m=`--scale: ${i[1]}`),oe(e,"theme-light",i[2]===Ce.Light),oe(e,"theme-dark",i[2]===Ce.Dark)},m(_,O){D(_,e,O),b(e,t),b(e,n),b(e,a),b(a,s),i[13](s),b(e,r),b(e,o),b(e,c),ie(d,e,null),b(e,h),b(e,u),ie(f,u,null),p=!0,y||(w=ee(l=i[5].call(null,o)),y=!0)},p(_,[O]){let E={};O&8&&(E.desc=_[3]),O&8388614&&(E.$$scope={dirty:O,ctx:_}),d.$set(E);let S={};O&8388608&&(S.$$scope={dirty:O,ctx:_}),f.$set(S),(!p||O&2&&m!==(m=`--scale: ${_[1]}`))&&g(e,"style",m),(!p||O&4)&&oe(e,"theme-light",_[2]===Ce.Light),(!p||O&4)&&oe(e,"theme-dark",_[2]===Ce.Dark)},i(_){p||(M(d.$$.fragment,_),M(f.$$.fragment,_),p=!0)},o(_){Q(d.$$.fragment,_),Q(f.$$.fragment,_),p=!1},d(_){_&&A(e),i[13](null),ne(d),ne(f),y=!1,w()}}}function uy(i,e,t){let n,a,s,r,{previewed:o}=e,l=Ot("plugin"),c=Ot("layout");Se(i,c,R=>t(19,s=R));let d=Pe(),h=(R,T)=>{R.empty(),f.setCreature({monster:T}),f.init()},u,f;bi(()=>{let R={};try{R={...R,...(0,Kt.parseYaml)(o)}}catch{}f=new qt({plugin:l,container:u,layout:s,monster:R},!1)});let m=R=>{let T=new Kt.SearchComponent(R).setPlaceholder("Find a creature");new qn(l.app,T,l.api.getBestiaryCreatures()).onSelect(async K=>{if(K.item){T.setValue("");let Z=(0,Kt.stringifyYaml)(K.item);d("update",Z),p.dispatch({changes:[{from:0,to:p.state.doc.length,insert:Z}]})}})},p,y=R=>{p=Da(R,o,[],(0,Kt.debounce)(T=>{try{let $=(0,Kt.parseYaml)(T);d("update",T),h(u,$)}catch{}},500))},w=Ne(Ce.None);Se(i,w,R=>t(2,a=R));let _=R=>{a==R?Te(w,a=Ce.None,a):Te(w,a=R,a)};yi(()=>{p&&p.destroy()});let O=Ne(1);Se(i,O,R=>t(1,n=R));let E=R=>{new Kt.ExtraButtonComponent(R).setIcon("undo").onClick(()=>{Te(O,n=1,n)})},S=pt([w,O],([R,T])=>{let $=[`Scale: ${T}`];return R===Ce.Light&&$.push("Mode: Light"),R===Ce.Dark&&$.push("Mode: Dark"),$.join(", ")});Se(i,S,R=>t(3,r=R));function v(R){Re[R?"unshift":"push"](()=>{u=R,t(0,u)})}let x=()=>_(Ce.Light),P=()=>_(Ce.Dark);function I(){n=Yi(this.value),O.set(n)}return i.$$set=R=>{"previewed"in R&&t(12,o=R.previewed)},[u,n,a,r,c,m,y,w,_,O,E,S,o,v,x,P,I]}var Fl=class extends U{constructor(e){super(),G(this,e,uy,dy,j,{previewed:12},ly)}},tf=Fl;function fy(i){re(i,"svelte-1idjk8u",".statblock-mobile.svelte-1idjk8u{display:flex;flex-flow:column;gap:0.25rem}.top.svelte-1idjk8u{display:flex;align-items:center;justify-content:space-between;padding:0.25rem}.buttons.svelte-1idjk8u{display:flex;align-items:center}.name.svelte-1idjk8u{display:flex;align-items:center}.name.svelte-1idjk8u .buttons{display:flex;justify-content:flex-end;align-items:center}.vertical-tab-header.svelte-1idjk8u{display:flex;flex-flow:column nowrap}.vertical-tab-content.svelte-1idjk8u{padding:var(--size-4-8)}.bottom.svelte-1idjk8u{display:flex;justify-content:flex-end;align-items:center;margin-top:auto}")}function nf(i,e,t){let n=i.slice();return n[16]=e[t],n}function my(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_;return f=new Il({}),p=new Dl({}),{c(){e=k("div"),t=k("div"),n=k("div"),s=W(),r=k("div"),o=k("div"),c=W(),d=k("div"),u=W(),se(f.$$.fragment),m=W(),se(p.$$.fragment),g(n,"class","name svelte-1idjk8u"),g(o,"class","save"),g(d,"class","cancel"),g(r,"class","buttons svelte-1idjk8u"),g(t,"class","top svelte-1idjk8u"),g(e,"class","statblock-mobile svelte-1idjk8u")},m(O,E){D(O,e,E),b(e,t),b(t,n),b(t,s),b(t,r),b(r,o),b(r,c),b(r,d),b(e,u),ie(f,e,null),b(e,m),ie(p,e,null),y=!0,w||(_=[ee(a=i[5].call(null,n)),ee(l=i[6].call(null,o)),ee(h=i[7].call(null,d))],w=!0)},p:N,i(O){y||(M(f.$$.fragment,O),M(p.$$.fragment,O),y=!0)},o(O){Q(f.$$.fragment,O),Q(p.$$.fragment,O),y=!1},d(O){O&&A(e),ne(f),ne(p),w=!1,ce(_)}}}function gy(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_,O,E,S,v,x,P,I,R=i[4],T=[];for(let V=0;V{$=null}),de()),V[1]==="Appearance"?K?B&2&&M(K,1):(K=rf(V),K.c(),M(K,1),K.m(_,E)):K&&(he(),Q(K,1,1,()=>{K=null}),de()),V[1]==="Advanced"?Z?B&2&&M(Z,1):(Z=of(V),Z.c(),M(Z,1),Z.m(_,S)):Z&&(he(),Q(Z,1,1,()=>{Z=null}),de()),V[1]==="Previewer"?F?(F.p(V,B),B&2&&M(F,1)):(F=lf(V),F.c(),M(F,1),F.m(_,null)):F&&(he(),Q(F,1,1,()=>{F=null}),de()),(!x||B&2&&v!==(v="vertical-tab-content-container "+V[1].toLowerCase()+"s svelte-1idjk8u"))&&g(w,"class",v)},i(V){x||(M($),M(K),M(Z),M(F),x=!0)},o(V){Q($),Q(K),Q(Z),Q(F),x=!1},d(V){V&&A(e),Xe(T,V),V&&A(y),V&&A(w),$&&$.d(),K&&K.d(),Z&&Z.d(),F&&F.d(),P=!1,ce(I)}}}function af(i){let e,t=i[16]+"",n,a,s,r;function o(){return i[11](i[16])}return{c(){e=k("div"),n=me(t),a=W(),g(e,"class","vertical-tab-nav-item"),oe(e,"is-active",i[1]===i[16])},m(l,c){D(l,e,c),b(e,n),b(e,a),s||(r=H(e,"click",o),s=!0)},p(l,c){i=l,c&18&&oe(e,"is-active",i[1]===i[16])},d(l){l&&A(e),s=!1,r()}}}function sf(i){let e,t;return e=new Dl({}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function rf(i){let e,t;return e=new Ju({}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function of(i){let e,t;return e=new Il({}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function lf(i){let e,t;return e=new tf({props:{previewed:i[0]}}),e.$on("update",i[12]),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p(n,a){let s={};a&1&&(s.previewed=n[0]),e.$set(s)},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function py(i){let e,t=``,n,a,s,r,o,l=[gy,my],c=[];function d(h,u){return Jt.Platform.isMobile?1:0}return a=d(i,-1),s=c[a]=l[a](i),{c(){e=new pi(!1),n=W(),s.c(),r=Oe(),e.a=n},m(h,u){e.m(t,h,u),D(h,n,u),c[a].m(h,u),D(h,r,u),o=!0},p(h,[u]){(!o||u&4)&&t!==(t=``)&&e.p(t),s.p(h,u)},i(h){o||(M(s),o=!0)},o(h){Q(s),o=!1},d(h){h&&e.d(),h&&A(n),c[a].d(h),h&&A(r)}}}function by(i,e,t){let n,a,{layout:s}=e,{plugin:r}=e,o=Ne(s);Se(i,o,O=>t(14,n=O)),mn("plugin",r),mn("layout",o);let l="",c=["General","Appearance","Advanced","Previewer"],d=c[0],h=!1,u=O=>{if(O.empty(),h){let E=n.name;new Jt.TextComponent(O).setValue(E).onChange(v=>{E=v});let S=O.createDiv("buttons");new Jt.ExtraButtonComponent(S).setIcon("checkmark").setTooltip("Save").onClick(()=>{h=!1,Te(o,n.name=E,n),u(O)}),new Jt.ExtraButtonComponent(S).setIcon("cross-in-box").setTooltip("Cancel").onClick(()=>{h=!1,u(O)})}else O.createEl("h5",{text:n.name}),new Jt.ExtraButtonComponent(O.createDiv("buttons")).setIcon("pencil").setTooltip("Edit Name").onClick(()=>{h=!0,u(O)})},f=Pe(),m=O=>{new Jt.ButtonComponent(O).setIcon("checkmark").setCta().setTooltip("Save").onClick(()=>{f("saved")})},p=O=>{new Jt.ExtraButtonComponent(O).setIcon("cross").setTooltip("Cancel").onClick(()=>{f("cancel")})},y=pt(o,O=>r.manager.getSheetRules(O));Se(i,y,O=>t(2,a=O));let w=O=>t(1,d=O),_=O=>t(0,l=O.detail);return i.$$set=O=>{"layout"in O&&t(9,s=O.layout),"plugin"in O&&t(10,r=O.plugin)},[l,d,a,o,c,u,m,p,y,s,r,w,_]}var jl=class extends U{constructor(e){super(),G(this,e,by,py,j,{layout:9,plugin:10},fy)}},cf=jl;var mc=It(mi());function Zl(){return ga('var Vh=Object.create;var xo=Object.defineProperty;var Wh=Object.getOwnPropertyDescriptor;var zh=Object.getOwnPropertyNames;var Uh=Object.getPrototypeOf,jh=Object.prototype.hasOwnProperty;var ye=(n,t)=>()=>(t||n((t={exports:{}}).exports,t),t.exports);var Gh=(n,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of zh(t))!jh.call(n,r)&&r!==e&&xo(n,r,{get:()=>t[r],enumerable:!(i=Wh(t,r))||i.enumerable});return n};var ko=(n,t,e)=>(e=n!=null?Vh(Uh(n)):{},Gh(t||!n||!n.__esModule?xo(e,"default",{value:n,enumerable:!0}):e,n));var li=ye(oi=>{"use strict";function Kh(n,t,e){if(e===void 0&&(e=Array.prototype),n&&typeof e.find=="function")return e.find.call(n,t);for(var i=0;i{var Po=li(),_t=Po.find,ai=Po.NAMESPACE;function qh(n){return n!==""}function Xh(n){return n?n.split(/[\\t\\n\\f\\r ]+/).filter(qh):[]}function Yh(n,t){return n.hasOwnProperty(t)||(n[t]=!0),n}function To(n){if(!n)return[];var t=Xh(n);return Object.keys(t.reduce(Yh,{}))}function Jh(n){return function(t){return n&&n.indexOf(t)!==-1}}function ci(n,t){for(var e in n)Object.prototype.hasOwnProperty.call(n,e)&&(t[e]=n[e])}function bt(n,t){var e=n.prototype;if(!(e instanceof t)){let r=function(){};var i=r;r.prototype=t.prototype,r=new r,ci(e,r),n.prototype=e=r}e.constructor!=n&&(typeof n!="function"&&console.error("unknown Class:"+n),e.constructor=n)}var wt={},Nt=wt.ELEMENT_NODE=1,Pe=wt.ATTRIBUTE_NODE=2,Gi=wt.TEXT_NODE=3,Io=wt.CDATA_SECTION_NODE=4,_o=wt.ENTITY_REFERENCE_NODE=5,Zh=wt.ENTITY_NODE=6,Lo=wt.PROCESSING_INSTRUCTION_NODE=7,Bo=wt.COMMENT_NODE=8,Fo=wt.DOCUMENT_NODE=9,$o=wt.DOCUMENT_TYPE_NODE=10,Kt=wt.DOCUMENT_FRAGMENT_NODE=11,Qh=wt.NOTATION_NODE=12,ft={},lt={},Ug=ft.INDEX_SIZE_ERR=(lt[1]="Index size error",1),jg=ft.DOMSTRING_SIZE_ERR=(lt[2]="DOMString size error",2),yt=ft.HIERARCHY_REQUEST_ERR=(lt[3]="Hierarchy request error",3),Gg=ft.WRONG_DOCUMENT_ERR=(lt[4]="Wrong document",4),Kg=ft.INVALID_CHARACTER_ERR=(lt[5]="Invalid character",5),qg=ft.NO_DATA_ALLOWED_ERR=(lt[6]="No data allowed",6),Xg=ft.NO_MODIFICATION_ALLOWED_ERR=(lt[7]="No modification allowed",7),Ho=ft.NOT_FOUND_ERR=(lt[8]="Not found",8),Yg=ft.NOT_SUPPORTED_ERR=(lt[9]="Not supported",9),Mo=ft.INUSE_ATTRIBUTE_ERR=(lt[10]="Attribute in use",10),Jg=ft.INVALID_STATE_ERR=(lt[11]="Invalid state",11),Zg=ft.SYNTAX_ERR=(lt[12]="Syntax error",12),Qg=ft.INVALID_MODIFICATION_ERR=(lt[13]="Invalid modification",13),tm=ft.NAMESPACE_ERR=(lt[14]="Invalid namespace",14),em=ft.INVALID_ACCESS_ERR=(lt[15]="Invalid access",15);function Z(n,t){if(t instanceof Error)var e=t;else e=this,Error.call(this,lt[n]),this.message=lt[n],Error.captureStackTrace&&Error.captureStackTrace(this,Z);return e.code=n,t&&(this.message=this.message+": "+t),e}Z.prototype=Error.prototype;ci(ft,Z);function Gt(){}Gt.prototype={length:0,item:function(n){return this[n]||null},toString:function(n,t){for(var e=[],i=0;i=0){for(var r=t.length-1;i0},lookupPrefix:function(n){for(var t=this;t;){var e=t._nsMap;if(e){for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&e[i]===n)return i}t=t.nodeType==Pe?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(n){for(var t=this;t;){var e=t._nsMap;if(e&&n in e&&Object.prototype.hasOwnProperty.call(e,n))return e[n];t=t.nodeType==Pe?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(n){var t=this.lookupPrefix(n);return t==null}};function zo(n){return n=="<"&&"<"||n==">"&&">"||n=="&"&&"&"||n==\'"\'&&"""||"&#"+n.charCodeAt()+";"}ci(wt,G);ci(wt,G.prototype);function hi(n,t){if(t(n))return!0;if(n=n.firstChild)do if(hi(n,t))return!0;while(n=n.nextSibling)}function fi(){this.ownerDocument=this}function tc(n,t,e){n&&n._inc++;var i=e.namespaceURI;i===ai.XMLNS&&(t._nsMap[e.prefix?e.localName:""]=e.value)}function Uo(n,t,e,i){n&&n._inc++;var r=e.namespaceURI;r===ai.XMLNS&&delete t._nsMap[e.prefix?e.localName:""]}function lr(n,t,e){if(n&&n._inc){n._inc++;var i=t.childNodes;if(e)i[i.length++]=e;else{for(var r=t.firstChild,s=0;r;)i[s++]=r,r=r.nextSibling;i.length=s,delete i[i.length]}}}function jo(n,t){var e=t.previousSibling,i=t.nextSibling;return e?e.nextSibling=i:n.firstChild=i,i?i.previousSibling=e:n.lastChild=e,t.parentNode=null,t.previousSibling=null,t.nextSibling=null,lr(n.ownerDocument,n),t}function ec(n){return n&&(n.nodeType===G.DOCUMENT_NODE||n.nodeType===G.DOCUMENT_FRAGMENT_NODE||n.nodeType===G.ELEMENT_NODE)}function ic(n){return n&&(Lt(n)||ar(n)||qt(n)||n.nodeType===G.DOCUMENT_FRAGMENT_NODE||n.nodeType===G.COMMENT_NODE||n.nodeType===G.PROCESSING_INSTRUCTION_NODE)}function qt(n){return n&&n.nodeType===G.DOCUMENT_TYPE_NODE}function Lt(n){return n&&n.nodeType===G.ELEMENT_NODE}function ar(n){return n&&n.nodeType===G.TEXT_NODE}function Do(n,t){var e=n.childNodes||[];if(_t(e,Lt)||qt(t))return!1;var i=_t(e,qt);return!(t&&i&&e.indexOf(i)>e.indexOf(t))}function Oo(n,t){var e=n.childNodes||[];function i(s){return Lt(s)&&s!==t}if(_t(e,i))return!1;var r=_t(e,qt);return!(t&&r&&e.indexOf(r)>e.indexOf(t))}function nc(n,t,e){if(!ec(n))throw new Z(yt,"Unexpected parent node type "+n.nodeType);if(e&&e.parentNode!==n)throw new Z(Ho,"child not in parent");if(!ic(t)||qt(t)&&n.nodeType!==G.DOCUMENT_NODE)throw new Z(yt,"Unexpected node type "+t.nodeType+" for parent node type "+n.nodeType)}function rc(n,t,e){var i=n.childNodes||[],r=t.childNodes||[];if(t.nodeType===G.DOCUMENT_FRAGMENT_NODE){var s=r.filter(Lt);if(s.length>1||_t(r,ar))throw new Z(yt,"More than one element or text in fragment");if(s.length===1&&!Do(n,e))throw new Z(yt,"Element in fragment can not be inserted before doctype")}if(Lt(t)&&!Do(n,e))throw new Z(yt,"Only one element can be added and only after doctype");if(qt(t)){if(_t(i,qt))throw new Z(yt,"Only one doctype is allowed");var o=_t(i,Lt);if(e&&i.indexOf(o)1||_t(r,ar))throw new Z(yt,"More than one element or text in fragment");if(s.length===1&&!Oo(n,e))throw new Z(yt,"Element in fragment can not be inserted before doctype")}if(Lt(t)&&!Oo(n,e))throw new Z(yt,"Only one element can be added and only after doctype");if(qt(t)){let a=function(h){return qt(h)&&h!==e};var l=a;if(_t(i,a))throw new Z(yt,"Only one doctype is allowed");var o=_t(i,Lt);if(e&&i.indexOf(o)0&&hi(e.documentElement,function(r){if(r!==e&&r.nodeType===Nt){var s=r.getAttribute("class");if(s){var o=n===s;if(!o){var l=To(s);o=t.every(Jh(l))}o&&i.push(r)}}}),i})},createElement:function(n){var t=new be;t.ownerDocument=this,t.nodeName=n,t.tagName=n,t.localName=n,t.childNodes=new Gt;var e=t.attributes=new Ki;return e._ownerElement=t,t},createDocumentFragment:function(){var n=new Ji;return n.ownerDocument=this,n.childNodes=new Gt,n},createTextNode:function(n){var t=new hr;return t.ownerDocument=this,t.appendData(n),t},createComment:function(n){var t=new cr;return t.ownerDocument=this,t.appendData(n),t},createCDATASection:function(n){var t=new fr;return t.ownerDocument=this,t.appendData(n),t},createProcessingInstruction:function(n,t){var e=new dr;return e.ownerDocument=this,e.tagName=e.target=n,e.nodeValue=e.data=t,e},createAttribute:function(n){var t=new Xi;return t.ownerDocument=this,t.name=n,t.nodeName=n,t.localName=n,t.specified=!0,t},createEntityReference:function(n){var t=new ur;return t.ownerDocument=this,t.nodeName=n,t},createElementNS:function(n,t){var e=new be,i=t.split(":"),r=e.attributes=new Ki;return e.childNodes=new Gt,e.ownerDocument=this,e.nodeName=t,e.tagName=t,e.namespaceURI=n,i.length==2?(e.prefix=i[0],e.localName=i[1]):e.localName=t,r._ownerElement=e,e},createAttributeNS:function(n,t){var e=new Xi,i=t.split(":");return e.ownerDocument=this,e.nodeName=t,e.name=t,e.namespaceURI=n,e.specified=!0,i.length==2?(e.prefix=i[0],e.localName=i[1]):e.localName=t,e}};bt(fi,G);function be(){this._nsMap={}}be.prototype={nodeType:Nt,hasAttribute:function(n){return this.getAttributeNode(n)!=null},getAttribute:function(n){var t=this.getAttributeNode(n);return t&&t.value||""},getAttributeNode:function(n){return this.attributes.getNamedItem(n)},setAttribute:function(n,t){var e=this.ownerDocument.createAttribute(n);e.value=e.nodeValue=""+t,this.setAttributeNode(e)},removeAttribute:function(n){var t=this.getAttributeNode(n);t&&this.removeAttributeNode(t)},appendChild:function(n){return n.nodeType===Kt?this.insertBefore(n,null):sc(this,n)},setAttributeNode:function(n){return this.attributes.setNamedItem(n)},setAttributeNodeNS:function(n){return this.attributes.setNamedItemNS(n)},removeAttributeNode:function(n){return this.attributes.removeNamedItem(n.nodeName)},removeAttributeNS:function(n,t){var e=this.getAttributeNodeNS(n,t);e&&this.removeAttributeNode(e)},hasAttributeNS:function(n,t){return this.getAttributeNodeNS(n,t)!=null},getAttributeNS:function(n,t){var e=this.getAttributeNodeNS(n,t);return e&&e.value||""},setAttributeNS:function(n,t,e){var i=this.ownerDocument.createAttributeNS(n,t);i.value=i.nodeValue=""+e,this.setAttributeNode(i)},getAttributeNodeNS:function(n,t){return this.attributes.getNamedItemNS(n,t)},getElementsByTagName:function(n){return new Ie(this,function(t){var e=[];return hi(t,function(i){i!==t&&i.nodeType==Nt&&(n==="*"||i.tagName==n)&&e.push(i)}),e})},getElementsByTagNameNS:function(n,t){return new Ie(this,function(e){var i=[];return hi(e,function(r){r!==e&&r.nodeType===Nt&&(n==="*"||r.namespaceURI===n)&&(t==="*"||r.localName==t)&&i.push(r)}),i})}};fi.prototype.getElementsByTagName=be.prototype.getElementsByTagName;fi.prototype.getElementsByTagNameNS=be.prototype.getElementsByTagNameNS;bt(be,G);function Xi(){}Xi.prototype.nodeType=Pe;bt(Xi,G);function ui(){}ui.prototype={data:"",substringData:function(n,t){return this.data.substring(n,n+t)},appendData:function(n){n=this.data+n,this.nodeValue=this.data=n,this.length=n.length},insertData:function(n,t){this.replaceData(n,0,t)},appendChild:function(n){throw new Error(lt[yt])},deleteData:function(n,t){this.replaceData(n,t,"")},replaceData:function(n,t,e){var i=this.data.substring(0,n),r=this.data.substring(n+t);e=i+e+r,this.nodeValue=this.data=e,this.length=e.length}};bt(ui,G);function hr(){}hr.prototype={nodeName:"#text",nodeType:Gi,splitText:function(n){var t=this.data,e=t.substring(n);t=t.substring(0,n),this.data=this.nodeValue=t,this.length=t.length;var i=this.ownerDocument.createTextNode(e);return this.parentNode&&this.parentNode.insertBefore(i,this.nextSibling),i}};bt(hr,ui);function cr(){}cr.prototype={nodeName:"#comment",nodeType:Bo};bt(cr,ui);function fr(){}fr.prototype={nodeName:"#cdata-section",nodeType:Io};bt(fr,ui);function Yi(){}Yi.prototype.nodeType=$o;bt(Yi,G);function Ko(){}Ko.prototype.nodeType=Qh;bt(Ko,G);function qo(){}qo.prototype.nodeType=Zh;bt(qo,G);function ur(){}ur.prototype.nodeType=_o;bt(ur,G);function Ji(){}Ji.prototype.nodeName="#document-fragment";Ji.prototype.nodeType=Kt;bt(Ji,G);function dr(){}dr.prototype.nodeType=Lo;bt(dr,G);function Xo(){}Xo.prototype.serializeToString=function(n,t,e){return Yo.call(n,t,e)};G.prototype.toString=Yo;function Yo(n,t){var e=[],i=this.nodeType==9&&this.documentElement||this,r=i.prefix,s=i.namespaceURI;if(s&&r==null){var r=i.lookupPrefix(s);if(r==null)var o=[{namespace:s,prefix:null}]}return Ne(this,e,n,t,o),e.join("")}function No(n,t,e){var i=n.prefix||"",r=n.namespaceURI;if(!r||i==="xml"&&r===ai.XML||r===ai.XMLNS)return!1;for(var s=e.length;s--;){var o=e[s];if(o.prefix===i)return o.namespace!==r}return!0}function rr(n,t,e){n.push(" ",t,\'="\',e.replace(/[<&"]/g,zo),\'"\')}function Ne(n,t,e,i,r){if(r||(r=[]),i)if(n=i(n),n){if(typeof n=="string"){t.push(n);return}}else return;switch(n.nodeType){case Nt:var s=n.attributes,o=s.length,v=n.firstChild,l=n.tagName;e=ai.isHTML(n.namespaceURI)||e;var a=l;if(!e&&!n.prefix&&n.namespaceURI){for(var h,c=0;c=0;f--){var u=r[f];if(u.prefix===""&&u.namespace===n.namespaceURI){h=u.namespace;break}}if(h!==n.namespaceURI)for(var f=r.length-1;f>=0;f--){var u=r[f];if(u.namespace===n.namespaceURI){u.prefix&&(a=u.prefix+":"+l);break}}}t.push("<",a);for(var d=0;d"),e&&/^script$/i.test(l))for(;v;)v.data?t.push(v.data):Ne(v,t,e,i,r.slice()),v=v.nextSibling;else for(;v;)Ne(v,t,e,i,r.slice()),v=v.nextSibling;t.push("")}else t.push("/>");return;case Fo:case Kt:for(var v=n.firstChild;v;)Ne(v,t,e,i,r.slice()),v=v.nextSibling;return;case Pe:return rr(t,n.name,n.value);case Gi:return t.push(n.data.replace(/[<&]/g,zo).replace(/]]>/g,"]]>"));case Io:return t.push("");case Bo:return t.push("");case $o:var N=n.publicId,C=n.systemId;if(t.push("");else if(C&&C!=".")t.push(" SYSTEM ",C,">");else{var O=n.internalSubset;O&&t.push(" [",O,"]"),t.push(">")}return;case Lo:return t.push("");case _o:return t.push("&",n.nodeName,";");default:t.push("??",n.nodeName)}}function Jo(n,t,e){var i;switch(t.nodeType){case Nt:i=t.cloneNode(!1),i.ownerDocument=n;case Kt:break;case Pe:e=!0;break}if(i||(i=t.cloneNode(!1)),i.ownerDocument=n,i.parentNode=null,e)for(var r=t.firstChild;r;)i.appendChild(Jo(n,r,e)),r=r.nextSibling;return i}function sr(n,t,e){var i=new t.constructor;for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var s=t[r];typeof s!="object"&&s!=i[r]&&(i[r]=s)}switch(t.childNodes&&(i.childNodes=new Gt),i.ownerDocument=n,i.nodeType){case Nt:var o=t.attributes,l=i.attributes=new Ki,a=o.length;l._ownerElement=i;for(var h=0;h{var Qo=li().freeze;di.XML_ENTITIES=Qo({amp:"&",apos:"\'",gt:">",lt:"<",quot:\'"\'});di.HTML_ENTITIES=Qo({lt:"<",gt:">",amp:"&",quot:\'"\',apos:"\'",Agrave:"\\xC0",Aacute:"\\xC1",Acirc:"\\xC2",Atilde:"\\xC3",Auml:"\\xC4",Aring:"\\xC5",AElig:"\\xC6",Ccedil:"\\xC7",Egrave:"\\xC8",Eacute:"\\xC9",Ecirc:"\\xCA",Euml:"\\xCB",Igrave:"\\xCC",Iacute:"\\xCD",Icirc:"\\xCE",Iuml:"\\xCF",ETH:"\\xD0",Ntilde:"\\xD1",Ograve:"\\xD2",Oacute:"\\xD3",Ocirc:"\\xD4",Otilde:"\\xD5",Ouml:"\\xD6",Oslash:"\\xD8",Ugrave:"\\xD9",Uacute:"\\xDA",Ucirc:"\\xDB",Uuml:"\\xDC",Yacute:"\\xDD",THORN:"\\xDE",szlig:"\\xDF",agrave:"\\xE0",aacute:"\\xE1",acirc:"\\xE2",atilde:"\\xE3",auml:"\\xE4",aring:"\\xE5",aelig:"\\xE6",ccedil:"\\xE7",egrave:"\\xE8",eacute:"\\xE9",ecirc:"\\xEA",euml:"\\xEB",igrave:"\\xEC",iacute:"\\xED",icirc:"\\xEE",iuml:"\\xEF",eth:"\\xF0",ntilde:"\\xF1",ograve:"\\xF2",oacute:"\\xF3",ocirc:"\\xF4",otilde:"\\xF5",ouml:"\\xF6",oslash:"\\xF8",ugrave:"\\xF9",uacute:"\\xFA",ucirc:"\\xFB",uuml:"\\xFC",yacute:"\\xFD",thorn:"\\xFE",yuml:"\\xFF",nbsp:"\\xA0",iexcl:"\\xA1",cent:"\\xA2",pound:"\\xA3",curren:"\\xA4",yen:"\\xA5",brvbar:"\\xA6",sect:"\\xA7",uml:"\\xA8",copy:"\\xA9",ordf:"\\xAA",laquo:"\\xAB",not:"\\xAC",shy:"\\xAD\\xAD",reg:"\\xAE",macr:"\\xAF",deg:"\\xB0",plusmn:"\\xB1",sup2:"\\xB2",sup3:"\\xB3",acute:"\\xB4",micro:"\\xB5",para:"\\xB6",middot:"\\xB7",cedil:"\\xB8",sup1:"\\xB9",ordm:"\\xBA",raquo:"\\xBB",frac14:"\\xBC",frac12:"\\xBD",frac34:"\\xBE",iquest:"\\xBF",times:"\\xD7",divide:"\\xF7",forall:"\\u2200",part:"\\u2202",exist:"\\u2203",empty:"\\u2205",nabla:"\\u2207",isin:"\\u2208",notin:"\\u2209",ni:"\\u220B",prod:"\\u220F",sum:"\\u2211",minus:"\\u2212",lowast:"\\u2217",radic:"\\u221A",prop:"\\u221D",infin:"\\u221E",ang:"\\u2220",and:"\\u2227",or:"\\u2228",cap:"\\u2229",cup:"\\u222A",int:"\\u222B",there4:"\\u2234",sim:"\\u223C",cong:"\\u2245",asymp:"\\u2248",ne:"\\u2260",equiv:"\\u2261",le:"\\u2264",ge:"\\u2265",sub:"\\u2282",sup:"\\u2283",nsub:"\\u2284",sube:"\\u2286",supe:"\\u2287",oplus:"\\u2295",otimes:"\\u2297",perp:"\\u22A5",sdot:"\\u22C5",Alpha:"\\u0391",Beta:"\\u0392",Gamma:"\\u0393",Delta:"\\u0394",Epsilon:"\\u0395",Zeta:"\\u0396",Eta:"\\u0397",Theta:"\\u0398",Iota:"\\u0399",Kappa:"\\u039A",Lambda:"\\u039B",Mu:"\\u039C",Nu:"\\u039D",Xi:"\\u039E",Omicron:"\\u039F",Pi:"\\u03A0",Rho:"\\u03A1",Sigma:"\\u03A3",Tau:"\\u03A4",Upsilon:"\\u03A5",Phi:"\\u03A6",Chi:"\\u03A7",Psi:"\\u03A8",Omega:"\\u03A9",alpha:"\\u03B1",beta:"\\u03B2",gamma:"\\u03B3",delta:"\\u03B4",epsilon:"\\u03B5",zeta:"\\u03B6",eta:"\\u03B7",theta:"\\u03B8",iota:"\\u03B9",kappa:"\\u03BA",lambda:"\\u03BB",mu:"\\u03BC",nu:"\\u03BD",xi:"\\u03BE",omicron:"\\u03BF",pi:"\\u03C0",rho:"\\u03C1",sigmaf:"\\u03C2",sigma:"\\u03C3",tau:"\\u03C4",upsilon:"\\u03C5",phi:"\\u03C6",chi:"\\u03C7",psi:"\\u03C8",omega:"\\u03C9",thetasym:"\\u03D1",upsih:"\\u03D2",piv:"\\u03D6",OElig:"\\u0152",oelig:"\\u0153",Scaron:"\\u0160",scaron:"\\u0161",Yuml:"\\u0178",fnof:"\\u0192",circ:"\\u02C6",tilde:"\\u02DC",ensp:"\\u2002",emsp:"\\u2003",thinsp:"\\u2009",zwnj:"\\u200C",zwj:"\\u200D",lrm:"\\u200E",rlm:"\\u200F",ndash:"\\u2013",mdash:"\\u2014",lsquo:"\\u2018",rsquo:"\\u2019",sbquo:"\\u201A",ldquo:"\\u201C",rdquo:"\\u201D",bdquo:"\\u201E",dagger:"\\u2020",Dagger:"\\u2021",bull:"\\u2022",hellip:"\\u2026",permil:"\\u2030",prime:"\\u2032",Prime:"\\u2033",lsaquo:"\\u2039",rsaquo:"\\u203A",oline:"\\u203E",euro:"\\u20AC",trade:"\\u2122",larr:"\\u2190",uarr:"\\u2191",rarr:"\\u2192",darr:"\\u2193",harr:"\\u2194",crarr:"\\u21B5",lceil:"\\u2308",rceil:"\\u2309",lfloor:"\\u230A",rfloor:"\\u230B",loz:"\\u25CA",spades:"\\u2660",clubs:"\\u2663",hearts:"\\u2665",diams:"\\u2666"});di.entityMap=di.HTML_ENTITIES});var al=ye(mr=>{var yi=li().NAMESPACE,gr=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,el=new RegExp("[\\\\-\\\\.0-9"+gr.source.slice(1,-1)+"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]"),il=new RegExp("^"+gr.source+el.source+"*(?::"+gr.source+el.source+"*)?$"),pi=0,se=1,_e=2,gi=3,Le=4,Be=5,mi=6,Zi=7;function Fe(n,t){this.message=n,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,Fe)}Fe.prototype=new Error;Fe.prototype.name=Fe.name;function sl(){}sl.prototype={parse:function(n,t,e){var i=this.domBuilder;i.startDocument(),ol(t,t={}),lc(n,t,e,i,this.errorHandler),i.endDocument()}};function lc(n,t,e,i,r){function s(H){if(H>65535){H-=65536;var L=55296+(H>>10),nt=56320+(H&1023);return String.fromCharCode(L,nt)}else return String.fromCharCode(H)}function o(H){var L=H.slice(1,-1);return L in e?e[L]:L.charAt(0)==="#"?s(parseInt(L.substr(1).replace("x","0x"))):(r.error("entity not found:"+H),H)}function l(H){if(H>b){var L=n.substring(b,H).replace(/&#?\\w+;/g,o);u&&a(b),i.characters(L,0,H-b),b=H}}function a(H,L){for(;H>=c&&(L=f.exec(n));)h=L.index,c=h+L[0].length,u.lineNumber++;u.columnNumber=H-h+1}for(var h=0,c=0,f=/.*(?:\\r\\n?|\\n)|.*$/g,u=i.locator,d=[{currentNSMap:t}],p={},b=0;;){try{var y=n.indexOf("<",b);if(y<0){if(!n.substr(b).match(/^\\s*$/)){var v=i.doc,N=v.createTextNode(n.substr(b));v.appendChild(N),i.currentElement=N}return}switch(y>b&&l(y),n.charAt(y+1)){case"/":var w=n.indexOf(">",y+3),C=n.substring(y+2,w).replace(/[ \\t\\n\\r]+$/g,""),O=d.pop();w<0?(C=n.substring(y+2).replace(/[\\s<].*/,""),r.error("end tag name: "+C+" is not complete:"+O.tagName),w=y+1+C.length):C.match(/\\sb?b=w:l(Math.max(y,b)+1)}}function nl(n,t){return t.lineNumber=n.lineNumber,t.columnNumber=n.columnNumber,t}function ac(n,t,e,i,r,s){function o(d,p,b){e.attributeNames.hasOwnProperty(d)&&s.fatalError("Attribute "+d+" redefined"),e.addValue(d,p,b)}for(var l,a,h=++t,c=pi;;){var f=n.charAt(h);switch(f){case"=":if(c===se)l=n.slice(t,h),c=gi;else if(c===_e)c=gi;else throw new Error("attribute equal must after attrName");break;case"\'":case\'"\':if(c===gi||c===se)if(c===se&&(s.warning(\'attribute value must after "="\'),l=n.slice(t,h)),t=h+1,h=n.indexOf(f,t),h>0)a=n.slice(t,h).replace(/&#?\\w+;/g,r),o(l,a,t-1),c=Be;else throw new Error("attribute value no end \'"+f+"\' match");else if(c==Le)a=n.slice(t,h).replace(/&#?\\w+;/g,r),o(l,a,t),s.warning(\'attribute "\'+l+\'" missed start quot(\'+f+")!!"),t=h+1,c=Be;else throw new Error(\'attribute value must after "="\');break;case"/":switch(c){case pi:e.setTagName(n.slice(t,h));case Be:case mi:case Zi:c=Zi,e.closed=!0;case Le:case se:break;case _e:e.closed=!0;break;default:throw new Error("attribute invalid close char(\'/\')")}break;case"":return s.error("unexpected end of input"),c==pi&&e.setTagName(n.slice(t,h)),h;case">":switch(c){case pi:e.setTagName(n.slice(t,h));case Be:case mi:case Zi:break;case Le:case se:a=n.slice(t,h),a.slice(-1)==="/"&&(e.closed=!0,a=a.slice(0,-1));case _e:c===_e&&(a=l),c==Le?(s.warning(\'attribute "\'+a+\'" missed quot(")!\'),o(l,a.replace(/&#?\\w+;/g,r),t)):((!yi.isHTML(i[""])||!a.match(/^(?:disabled|checked|selected)$/i))&&s.warning(\'attribute "\'+a+\'" missed value!! "\'+a+\'" instead!!\'),o(a,a,t));break;case gi:throw new Error("attribute value missed!!")}return h;case"\\x80":f=" ";default:if(f<=" ")switch(c){case pi:e.setTagName(n.slice(t,h)),c=mi;break;case se:l=n.slice(t,h),c=_e;break;case Le:var a=n.slice(t,h).replace(/&#?\\w+;/g,r);s.warning(\'attribute "\'+a+\'" missed quot(")!!\'),o(l,a,t);case Be:c=mi;break}else switch(c){case _e:var u=e.tagName;(!yi.isHTML(i[""])||!l.match(/^(?:disabled|checked|selected)$/i))&&s.warning(\'attribute "\'+l+\'" missed value!! "\'+l+\'" instead2!!\'),o(l,l,t),t=h,c=se;break;case Be:s.warning(\'attribute space is required"\'+l+\'"!!\');case mi:c=se,t=h;break;case gi:c=Le,t=h;break;case Zi:throw new Error("elements closed character \'/\' and \'>\' must be connected to")}}h++}}function rl(n,t,e){for(var i=n.tagName,r=null,f=n.length;f--;){var s=n[f],o=s.qName,l=s.value,u=o.indexOf(":");if(u>0)var a=s.prefix=o.slice(0,u),h=o.slice(u+1),c=a==="xmlns"&&h;else h=o,a=null,c=o==="xmlns"&&"";s.localName=h,c!==!1&&(r==null&&(r={},ol(e,e={})),e[c]=r[c]=l,s.uri=yi.XMLNS,t.startPrefixMapping(c,l))}for(var f=n.length;f--;){s=n[f];var a=s.prefix;a&&(a==="xml"&&(s.uri=yi.XML),a!=="xmlns"&&(s.uri=e[a||""]))}var u=i.indexOf(":");u>0?(a=n.prefix=i.slice(0,u),h=n.localName=i.slice(u+1)):(a=null,h=n.localName=i);var d=n.uri=e[a||""];if(t.startElement(d,h,i,n),n.closed){if(t.endElement(d,h,i),r)for(a in r)Object.prototype.hasOwnProperty.call(r,a)&&t.endPrefixMapping(a)}else return n.currentNSMap=e,n.localNSMap=r,!0}function hc(n,t,e,i,r){if(/^(?:script|textarea)$/i.test(e)){var s=n.indexOf("",t),o=n.substring(t+1,s);if(/[&<]/.test(o))return/^script$/i.test(e)?(r.characters(o,0,o.length),s):(o=o.replace(/&#?\\w+;/g,i),r.characters(o,0,o.length),s)}return t+1}function cc(n,t,e,i){var r=i[e];return r==null&&(r=n.lastIndexOf(""),r",t+4);return s>t?(e.comment(n,t+4,s-t-4),s+3):(i.error("Unclosed comment"),-1)}else return-1;default:if(n.substr(t+3,6)=="CDATA["){var s=n.indexOf("]]>",t+9);return e.startCDATA(),e.characters(n,t+9,s-t-9),e.endCDATA(),s+3}var o=dc(n,t),l=o.length;if(l>1&&/!doctype/i.test(o[0][0])){var a=o[1][0],h=!1,c=!1;l>3&&(/^public$/i.test(o[2][0])?(h=o[3][0],c=l>4&&o[4][0]):/^system$/i.test(o[2][0])&&(c=o[3][0]));var f=o[l-1];return e.startDTD(a,h,c),e.endDTD(),f.index+f[0].length}}return-1}function uc(n,t,e){var i=n.indexOf("?>",t);if(i){var r=n.substring(t,i).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);if(r){var s=r[0].length;return e.processingInstruction(r[1],r[2]),i+2}else return-1}return-1}function ll(){this.attributeNames={}}ll.prototype={setTagName:function(n){if(!il.test(n))throw new Error("invalid tagName:"+n);this.tagName=n},addValue:function(n,t,e){if(!il.test(n))throw new Error("invalid attribute:"+n);this.attributeNames[n]=this.length,this[this.length++]={qName:n,value:t,offset:e}},length:0,getLocalName:function(n){return this[n].localName},getLocator:function(n){return this[n].locator},getQName:function(n){return this[n].qName},getURI:function(n){return this[n].uri},getValue:function(n){return this[n].value}};function dc(n,t){var e,i=[],r=/\'[^\']+\'|"[^"]+"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;for(r.lastIndex=t,r.exec(n);e=r.exec(n);)if(i.push(e),e[1])return i}mr.XMLReader=sl;mr.ParseError=Fe});var pl=ye(wi=>{var pc=li(),br=pr(),hl=tl(),ul=al(),gc=br.DOMImplementation,cl=pc.NAMESPACE,mc=ul.ParseError,yc=ul.XMLReader;function dl(n){this.options=n||{locator:{}}}dl.prototype.parseFromString=function(n,t){var e=this.options,i=new yc,r=e.domBuilder||new bi,s=e.errorHandler,o=e.locator,l=e.xmlns||{},a=/\\/x?html?$/.test(t),h=a?hl.HTML_ENTITIES:hl.XML_ENTITIES;return o&&r.setDocumentLocator(o),i.errorHandler=bc(s,r,o),i.domBuilder=e.domBuilder||r,a&&(l[""]=cl.HTML),l.xml=l.xml||cl.XML,n&&typeof n=="string"?i.parse(n,l,h):i.errorHandler.error("invalid doc source"),r.doc};function bc(n,t,e){if(!n){if(t instanceof bi)return t;n=t}var i={},r=n instanceof Function;e=e||{};function s(o){var l=n[o];!l&&r&&(l=n.length==2?function(a){n(o,a)}:n),i[o]=l&&function(a){l("[xmldom "+o+"] "+a+yr(e))}||function(){}}return s("warning"),s("error"),s("fatalError"),i}function bi(){this.cdata=!1}function $e(n,t){t.lineNumber=n.lineNumber,t.columnNumber=n.columnNumber}bi.prototype={startDocument:function(){this.doc=new gc().createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(n,t,e,i){var r=this.doc,s=r.createElementNS(n,e||t),o=i.length;Qi(this,s),this.currentElement=s,this.locator&&$e(this.locator,s);for(var l=0;l=t+e||t?new java.lang.String(n,t,e)+"":n}"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl".replace(/\\w+/g,function(n){bi.prototype[n]=function(){return null}});function Qi(n,t){n.currentElement?n.currentElement.appendChild(t):n.doc.appendChild(t)}wi.__DOMHandler=bi;wi.DOMParser=dl;wi.DOMImplementation=br.DOMImplementation;wi.XMLSerializer=br.XMLSerializer});var ml=ye(tn=>{var gl=pr();tn.DOMImplementation=gl.DOMImplementation;tn.XMLSerializer=gl.XMLSerializer;tn.DOMParser=pl().DOMParser});var hh=ye((Cs,As)=>{(function(n,t){typeof Cs=="object"&&typeof As!="undefined"?As.exports=t():typeof define=="function"&&define.amd?define(t):(n=typeof globalThis!="undefined"?globalThis:n||self,n["fast-copy"]=t())})(Cs,function(){"use strict";var n=Function.prototype.toString,t=Object.create,e=Object.defineProperty,i=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols,o=Object.getPrototypeOf,l=Object.prototype,a=l.hasOwnProperty,h=l.propertyIsEnumerable,c=typeof s=="function",f=typeof WeakMap=="function",u=function(){if(f)return function(){return new WeakMap};var k=function(){function T(){this._keys=[],this._values=[]}return T.prototype.has=function(x){return!!~this._keys.indexOf(x)},T.prototype.get=function(x){return this._values[this._keys.indexOf(x)]},T.prototype.set=function(x,M){this._keys.push(x),this._values.push(M)},T}();return function(){return new k}}(),d=function(k,T){var x=k.__proto__||o(k);if(!x)return t(null);var M=x.constructor;if(M===T.Object)return x===T.Object.prototype?{}:t(x);if(~n.call(M).indexOf("[native code]"))try{return new M}catch(S){}return t(x)},p=function(k,T,x,M){var S=d(k,T);M.set(k,S);for(var _ in k)a.call(k,_)&&(S[_]=x(k[_],M));if(c)for(var w=s(k),D=0,F=w.length,P=void 0;D{let i=new FileReader;i.onload=async r=>{let s=r.target.result,l=new bl.DOMParser().parseFromString(s,"application/xml").getElementsByTagName("monster"),a=[];if(l.length){for(let h of Array.from(l))try{let c={image:null,name:at(h,"name"),size:Cc(h),type:at(h,"type"),subtype:at(h,"subtype"),alignment:at(h,"alignment"),ac:Ac(h),hp:Number(yl(h,"hp")),hit_dice:yl(h,"hit_dice"),speed:at(h,"speed"),stats:[Number(at(h,"str")),Number(at(h,"dex")),Number(at(h,"con")),Number(at(h,"int")),Number(at(h,"wis")),Number(at(h,"cha"))],saves:xc(h),skillsaves:vc(h),damage_vulnerabilities:at(h,"vulnerable"),damage_resistances:at(h,"resist"),damage_immunities:at(h,"immune"),condition_immunities:at(h,"conditionImmune"),senses:at(h,"senses"),languages:at(h,"languages"),cr:at(h,"cr"),traits:en(h,"trait"),spells:wc(h),actions:en(h,"action"),legendary_actions:en(h,"legendary"),reactions:en(h,"reaction"),source:Tc(h)};a.push(c)}catch(c){console.error(c);continue}t(a)}},i.readAsText(n)})}function at(n,t){let e=n.getElementsByTagName(t);if(e&&e.length)return e[0].textContent}function en(n,t){var r;if(!((r=n.getElementsByTagName(t))!=null&&r.length))return[];let e=n.getElementsByTagName(t),i=[];for(let s of Array.from(e)){let o=s.getElementsByTagName("name");if(!o||!o.length||!o[0].textContent||o[0].textContent.includes("Spellcasting"))continue;let l=[],a=s.getElementsByTagName("text");for(let h of Array.from(a))l.push(h.textContent);i.push({name:o[0].textContent,desc:l.join(" ")})}return i}function wc(n){var i;if(!((i=n.getElementsByTagName("trait"))!=null&&i.length))return[];let e=Array.from(n.getElementsByTagName("trait")).find(r=>{var s;return(s=r.getElementsByTagName("name")[0])==null?void 0:s.textContent.includes("Spellcasting")});return e?Array.from(e.getElementsByTagName("text")).map(r=>r.textContent.replace(/(•|\u2022)/u,"").trim()).filter(r=>r.length):[]}function vc(n){var i;if(!((i=n.getElementsByTagName("skill"))!=null&&i.length))return[];let t=n.getElementsByTagName("skill")[0].textContent.split(", "),e=[];return t.forEach(r=>{let s=r.split(/\\s[\\+\\-]/);e.push({[s[0]]:Number(s[1])})}),e}var Sc={Str:"strength",Dex:"dexterity",Con:"constitution",Int:"intelligence",Wis:"wisdom",Cha:"charisma"};function xc(n){var i;if(!((i=n.getElementsByTagName("save"))!=null&&i.length))return[];let t=n.getElementsByTagName("save")[0].textContent.split(", "),e=[];return t.forEach(r=>{let s=r.split(/\\s[\\+\\-]/);e.push({[Sc[s[0]]]:Number(s[1])})}),e}function yl(n,t){var s,o;if(!((s=n.getElementsByTagName("hp"))!=null&&s.length))return"";let e=n.getElementsByTagName("hp")[0].textContent,[,i,r]=(o=e.match(/(\\d+) \\(([\\s\\S]+)\\)/))!=null?o:[,"",""];return{hp:i,hit_dice:r}[t]}var kc={T:"tiny",S:"small",M:"medium",L:"large",H:"huge",G:"gargantuan"};function Cc(n){var t;return n.getElementsByTagName("size")&&(t=kc[n.getElementsByTagName("size")[0].textContent])!=null?t:""}function Ac(n){var t;if(n.getElementsByTagName("ac")){let[,e]=(t=n.getElementsByTagName("ac")[0])==null?void 0:t.textContent.match(/(\\d+)/);return Number(e)}return 0}function Tc(n){var e,i,r,s,o,l;let t="Unknown";if((e=n.getElementsByTagName("source"))!=null&&e.length)t=n.getElementsByTagName("source")[0].textContent;else if((i=n.getElementsByTagName("trait"))!=null&&i.length&&Array.from(n.getElementsByTagName("trait")).find(a=>{var h;return((h=a.getElementsByTagName("name"))==null?void 0:h[0].textContent)=="Source"})){let a=Array.from(n.getElementsByTagName("trait")).find(h=>{var c,f;return((f=(c=h.getElementsByTagName("name"))==null?void 0:c[0])==null?void 0:f.textContent)=="Source"});t=(o=(s=(r=a==null?void 0:a.getElementsByTagName("text"))==null?void 0:r[0])==null?void 0:s.textContent)==null?void 0:o.replace(/p. \\d+/,"").trim()}else if((l=n.getElementsByTagName("description"))!=null&&l.length){let a=n.getElementsByTagName("description"),h="Source: ";if(a[0].textContent.includes(h)){let c=a[0].textContent.lastIndexOf(h);t=a[0].textContent.slice(c+h.length).split(/, ?/)[0]}}return t}var Mc={STR:"strength",DEX:"dexterity",CON:"constitution",INT:"intelligence",WIS:"wisdom",CHA:"charisma"};async function vl(n){return new Promise((t,e)=>{let i=new FileReader,r=[];i.onload=async s=>{var o,l,a,h,c,f,u,d,p,b,y,v,N,C,O,k,T,x,M,S,_,w,D,F,P,B,H,L,nt,W,st,gt,xt,It,jt,me,si,so,oo,lo,ao,ho,co,fo,uo,po,go,mo,yo,bo,wo,vo,So;try{let tr=JSON.parse(s.target.result),$h=Object.keys(tr).filter(er=>/^Creatures\\./.test(er));for(let er of $h)try{let K=tr[er],Hh={name:K.Name,source:(o=K.Source)!=null&&o.trim().length?(l=K.Source)==null?void 0:l.trim():"Unknown",type:(c=(h=(a=K.Type)==null?void 0:a.split(/,\\s?/))==null?void 0:h[0])==null?void 0:c.trim(),subtype:"",size:"",alignment:(d=(u=(f=K.Type)==null?void 0:f.split(/,\\s?/))==null?void 0:u[1])==null?void 0:d.trim(),hp:(p=K.HP)==null?void 0:p.Value,hit_dice:(v=(y=(b=K.HP)==null?void 0:b.Notes)==null?void 0:y.replace(/([()])/g,""))==null?void 0:v.trim(),ac:K.AC.Value,speed:(C=(N=K.Speed)==null?void 0:N.join(", "))==null?void 0:C.trim(),stats:Object.values((O=K.Abilities)!=null?O:{}),damage_immunities:(M=(x=(T=(k=K.DamageImmunities)==null?void 0:k.join("; "))==null?void 0:T.toLowerCase())==null?void 0:x.trim())!=null?M:"",damage_resistances:(D=(w=(_=(S=K.DamageResistances)==null?void 0:S.join(", "))==null?void 0:_.toLowerCase())==null?void 0:w.trim())!=null?D:"",damage_vulnerabilities:(H=(B=(P=(F=K.DamageVulnerabilities)==null?void 0:F.join(", "))==null?void 0:P.toLowerCase())==null?void 0:B.trim())!=null?H:"",condition_immunities:(st=(W=(nt=(L=K.ConditionImmunities)==null?void 0:L.join(", "))==null?void 0:nt.toLowerCase())==null?void 0:W.trim())!=null?st:"",saves:(xt=(gt=K.Saves)==null?void 0:gt.map(({Name:ot,Modifier:ir})=>({[Mc[ot]]:ir})))!=null?xt:[],skillsaves:(jt=(It=K.Skills)==null?void 0:It.map(({Name:ot,Modifier:ir})=>({[ot]:ir})))!=null?jt:[],senses:(so=(si=(me=K.Senses)==null?void 0:me.join(", "))==null?void 0:si.trim())!=null?so:"",languages:(ao=(lo=(oo=K.Languages)==null?void 0:oo.join(", "))==null?void 0:lo.trim())!=null?ao:"",cr:(co=(ho=K.Challenge)==null?void 0:ho.trim())!=null?co:"",traits:(uo=(fo=K.Traits)==null?void 0:fo.map(ot=>({name:ot.Name,desc:ot.Content})))!=null?uo:[],actions:(go=(po=K.Actions)==null?void 0:po.map(ot=>({name:ot.Name,desc:ot.Content})))!=null?go:[],bonus_actions:(yo=(mo=K.BonusActions)==null?void 0:mo.map(ot=>({name:ot.Name,desc:ot.Content})))!=null?yo:[],reactions:(wo=(bo=K.Reactions)==null?void 0:bo.map(ot=>({name:ot.Name,desc:ot.Content})))!=null?wo:[],legendary_actions:(So=(vo=K.LegendaryActions)==null?void 0:vo.map(ot=>({name:ot.Name,desc:ot.Content})))!=null?So:[],image:null};r.push(Hh)}catch(K){continue}t(r)}catch(tr){e()}},i.readAsText(n)})}async function Sl(n){return new Promise((t,e)=>{let i=new FileReader;i.onload=async r=>{var o,l,a,h,c,f,u,d,p,b,y,v,N,C,O,k,T,x,M,S,_,w,D,F,P;let s=[];try{let B=JSON.parse(r.target.result),H=[];B.creatures?H=B.creatures:H=[B];for(let L of H)try{let nt={image:null,name:L.name,source:"CritterDB",type:L.stats.race,subtype:"",size:L.stats.size,alignment:L.stats.alignment,hp:L.stats.hitPoints,hit_dice:`${Math.floor(L.stats.extraHealthFromConstitution/L.stats.abilityScoreModifiers.constitution)}d${L.stats.hitDieSize} + ${L.stats.extraHealthFromConstitution}`,ac:L.stats.armorClass,speed:L.stats.speed,stats:[L.stats.abilityScores.strength,L.stats.abilityScores.dexterity,L.stats.abilityScores.constitution,L.stats.abilityScores.intelligence,L.stats.abilityScores.wisdom,L.stats.abilityScores.charisma],damage_immunities:(l=(o=L.stats.damageImmunities)==null?void 0:o.join("; ").toLowerCase().trim())!=null?l:"",damage_resistances:(h=(a=L.stats.damageResistances)==null?void 0:a.join(", ").toLowerCase().trim())!=null?h:"",damage_vulnerabilities:(f=(c=L.stats.damageVulnerabilities)==null?void 0:c.join(", ").toLowerCase().trim())!=null?f:"",condition_immunities:(d=(u=L.stats.conditionImmunities)==null?void 0:u.join(", ").toLowerCase().trim())!=null?d:"",saves:(b=(p=L.stats.savingThrows)==null?void 0:p.map(W=>{var st;if(!(!("value"in W)&&!("modifier"in W)))return{[W.ability]:(st=W.value)!=null?st:W.modifier}}).filter(W=>W))!=null?b:[],skillsaves:(v=(y=L.stats.skills)==null?void 0:y.map(W=>{var st;if(!(!("value"in W)&&!("modifier"in W)))return{[W.name]:(st=W.value)!=null?st:W.modifier}}).filter(W=>W))!=null?v:[],senses:(C=(N=L.stats.senses)==null?void 0:N.join(", ").trim())!=null?C:"",languages:(k=(O=L.stats.languages)==null?void 0:O.join(", ").trim())!=null?k:"",cr:(T=L.stats.challengeRating)!=null?T:"",traits:(M=(x=L.stats.additionalAbilities)==null?void 0:x.map(W=>({name:W.name,desc:W.description.replace(/<[^>]*>/g,"")})))!=null?M:[],actions:(_=(S=L.stats.actions)==null?void 0:S.map(W=>({name:W.name,desc:W.description.replace(/<[^>]*>/g,"")})))!=null?_:[],reactions:(D=(w=L.stats.reactions)==null?void 0:w.map(W=>({name:W.name,desc:W.description.replace(/<[^>]*>/g,"")})))!=null?D:[],legendary_actions:(P=(F=L.stats.legendaryActions)==null?void 0:F.map(W=>({name:W.name,desc:W.description.replace(/<[^>]*>/g,"")})))!=null?P:[]};s.push(nt)}catch(nt){continue}t(s)}catch(B){e()}},i.readAsText(n)})}var U=class n{constructor(){}lineAt(t){if(t<0||t>this.length)throw new RangeError(`Invalid position ${t} in document of length ${this.length}`);return this.lineInner(t,!1,1,0)}line(t){if(t<1||t>this.lines)throw new RangeError(`Invalid line number ${t} in ${this.lines}-line document`);return this.lineInner(t,!0,1,0)}replace(t,e,i){let r=[];return this.decompose(0,t,r,2),i.length&&i.decompose(0,i.length,r,3),this.decompose(e,this.length,r,1),Ve.from(r,this.length-(e-t)+i.length)}append(t){return this.replace(this.length,this.length,t)}slice(t,e=this.length){let i=[];return this.decompose(t,e,i,0),Ve.from(i,e-t)}eq(t){if(t==this)return!0;if(t.length!=this.length||t.lines!=this.lines)return!1;let e=this.scanIdentical(t,1),i=this.length-this.scanIdentical(t,-1),r=new Se(this),s=new Se(t);for(let o=e,l=e;;){if(r.next(o),s.next(o),o=0,r.lineBreak!=s.lineBreak||r.done!=s.done||r.value!=s.value)return!1;if(l+=r.value.length,r.done||l>=i)return!0}}iter(t=1){return new Se(this,t)}iterRange(t,e=this.length){return new ln(this,t,e)}iterLines(t,e){let i;if(t==null)i=this.iter();else{e==null&&(e=this.lines+1);let r=this.line(t).from;i=this.iterRange(r,Math.max(r,e==this.lines+1?this.length:e<=1?0:this.line(e-1).to))}return new an(i)}toString(){return this.sliceString(0)}toJSON(){let t=[];return this.flatten(t),t}static of(t){if(t.length==0)throw new RangeError("A document must have at least one line");return t.length==1&&!t[0]?n.empty:t.length<=32?new kt(t):Ve.from(kt.split(t,[]))}},kt=class n extends U{constructor(t,e=Ec(t)){super(),this.text=t,this.length=e}get lines(){return this.text.length}get children(){return null}lineInner(t,e,i,r){for(let s=0;;s++){let o=this.text[s],l=r+o.length;if((e?i:l)>=t)return new vr(r,l,i,o);r=l+1,i++}}decompose(t,e,i,r){let s=t<=0&&e>=this.length?this:new n(xl(this.text,t,e),Math.min(e,this.length)-Math.max(0,t));if(r&1){let o=i.pop(),l=sn(s.text,o.text.slice(),0,s.length);if(l.length<=32)i.push(new n(l,o.length+s.length));else{let a=l.length>>1;i.push(new n(l.slice(0,a)),new n(l.slice(a)))}}else i.push(s)}replace(t,e,i){if(!(i instanceof n))return super.replace(t,e,i);let r=sn(this.text,sn(i.text,xl(this.text,0,t)),e),s=this.length+i.length-(e-t);return r.length<=32?new n(r,s):Ve.from(n.split(r,[]),s)}sliceString(t,e=this.length,i=`\n`){let r="";for(let s=0,o=0;s<=e&&ot&&o&&(r+=i),ts&&(r+=l.slice(Math.max(0,t-s),e-s)),s=a+1}return r}flatten(t){for(let e of this.text)t.push(e)}scanIdentical(){return 0}static split(t,e){let i=[],r=-1;for(let s of t)i.push(s),r+=s.length+1,i.length==32&&(e.push(new n(i,r)),i=[],r=-1);return r>-1&&e.push(new n(i,r)),e}},Ve=class n extends U{constructor(t,e){super(),this.children=t,this.length=e,this.lines=0;for(let i of t)this.lines+=i.lines}lineInner(t,e,i,r){for(let s=0;;s++){let o=this.children[s],l=r+o.length,a=i+o.lines-1;if((e?a:l)>=t)return o.lineInner(t,e,i,r);r=l+1,i=a+1}}decompose(t,e,i,r){for(let s=0,o=0;o<=e&&s=o){let h=r&((o<=t?1:0)|(a>=e?2:0));o>=t&&a<=e&&!h?i.push(l):l.decompose(t-o,e-o,i,h)}o=a+1}}replace(t,e,i){if(i.lines=s&&e<=l){let a=o.replace(t-s,e-s,i),h=this.lines-o.lines+a.lines;if(a.lines>4&&a.lines>h>>6){let c=this.children.slice();return c[r]=a,new n(c,this.length-(e-t)+i.length)}return super.replace(s,l,a)}s=l+1}return super.replace(t,e,i)}sliceString(t,e=this.length,i=`\n`){let r="";for(let s=0,o=0;st&&s&&(r+=i),to&&(r+=l.sliceString(t-o,e-o,i)),o=a+1}return r}flatten(t){for(let e of this.children)e.flatten(t)}scanIdentical(t,e){if(!(t instanceof n))return 0;let i=0,[r,s,o,l]=e>0?[0,0,this.children.length,t.children.length]:[this.children.length-1,t.children.length-1,-1,-1];for(;;r+=e,s+=e){if(r==o||s==l)return i;let a=this.children[r],h=t.children[s];if(a!=h)return i+a.scanIdentical(h,e);i+=a.length+1}}static from(t,e=t.reduce((i,r)=>i+r.length+1,-1)){let i=0;for(let d of t)i+=d.lines;if(i<32){let d=[];for(let p of t)p.flatten(d);return new kt(d,e)}let r=Math.max(32,i>>5),s=r<<1,o=r>>1,l=[],a=0,h=-1,c=[];function f(d){let p;if(d.lines>s&&d instanceof n)for(let b of d.children)f(b);else d.lines>o&&(a>o||!a)?(u(),l.push(d)):d instanceof kt&&a&&(p=c[c.length-1])instanceof kt&&d.lines+p.lines<=32?(a+=d.lines,h+=d.length+1,c[c.length-1]=new kt(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>r&&u(),a+=d.lines,h+=d.length+1,c.push(d))}function u(){a!=0&&(l.push(c.length==1?c[0]:n.from(c,h)),h=-1,a=c.length=0)}for(let d of t)f(d);return u(),l.length==1?l[0]:new n(l,e)}};U.empty=new kt([""],0);function Ec(n){let t=-1;for(let e of n)t+=e.length+1;return t}function sn(n,t,e=0,i=1e9){for(let r=0,s=0,o=!0;s=e&&(a>i&&(l=l.slice(0,i-r)),r0?1:(t instanceof kt?t.text.length:t.children.length)<<1]}nextInner(t,e){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,r=this.nodes[i],s=this.offsets[i],o=s>>1,l=r instanceof kt?r.text.length:r.children.length;if(o==(e>0?l:0)){if(i==0)return this.done=!0,this.value="",this;e>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(e>0?0:1)){if(this.offsets[i]+=e,t==0)return this.lineBreak=!0,this.value=`\n`,this;t--}else if(r instanceof kt){let a=r.text[o+(e<0?-1:0)];if(this.offsets[i]+=e,a.length>Math.max(0,t))return this.value=t==0?a:e>0?a.slice(t):a.slice(0,a.length-t),this;t-=a.length}else{let a=r.children[o+(e<0?-1:0)];t>a.length?(t-=a.length,this.offsets[i]+=e):(e<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(e>0?1:(a instanceof kt?a.text.length:a.children.length)<<1))}}}next(t=0){return t<0&&(this.nextInner(-t,-this.dir),t=this.value.length),this.nextInner(t,this.dir)}},ln=class{constructor(t,e,i){this.value="",this.done=!1,this.cursor=new Se(t,e>i?-1:1),this.pos=e>i?t.length:0,this.from=Math.min(e,i),this.to=Math.max(e,i)}nextInner(t,e){if(e<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;t+=Math.max(0,e<0?this.pos-this.to:this.from-this.pos);let i=e<0?this.pos-this.from:this.to-this.pos;t>i&&(t=i),i-=t;let{value:r}=this.cursor.next(t);return this.pos+=(r.length+t)*e,this.value=r.length<=i?r:e<0?r.slice(r.length-i):r.slice(0,i),this.done=!this.value,this}next(t=0){return t<0?t=Math.max(t,this.from-this.pos):t>0&&(t=Math.min(t,this.to-this.pos)),this.nextInner(t,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},an=class{constructor(t){this.inner=t,this.afterBreak=!0,this.value="",this.done=!1}next(t=0){let{done:e,lineBreak:i,value:r}=this.inner.next(t);return e?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol!="undefined"&&(U.prototype[Symbol.iterator]=function(){return this.iter()},Se.prototype[Symbol.iterator]=ln.prototype[Symbol.iterator]=an.prototype[Symbol.iterator]=function(){return this});var vr=class{constructor(t,e,i,r){this.from=t,this.to=e,this.number=i,this.text=r}get length(){return this.to-this.from}},We="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;nn)return We[t-1]<=n;return!1}function kl(n){return n>=127462&&n<=127487}var Cl=8205;function Xt(n,t,e=!0,i=!0){return(e?Dl:Dc)(n,t,i)}function Dl(n,t,e){if(t==n.length)return t;t&&Ol(n.charCodeAt(t))&&Nl(n.charCodeAt(t-1))&&t--;let i=on(n,t);for(t+=Sr(i);t=0&&kl(on(n,o));)s++,o-=2;if(s%2==0)break;t+=2}else break}return t}function Dc(n,t,e){for(;t>0;){let i=Dl(n,t-2,e);if(i=56320&&n<57344}function Nl(n){return n>=55296&&n<56320}function on(n,t){let e=n.charCodeAt(t);if(!Nl(e)||t+1==n.length)return e;let i=n.charCodeAt(t+1);return Ol(i)?(e-55296<<10)+(i-56320)+65536:e}function Sr(n){return n<65536?1:2}var xr=/\\r\\n?|\\n/,vt=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(vt||(vt={})),xe=class n{constructor(t){this.sections=t}get length(){let t=0;for(let e=0;et)return s+(t-r);s+=l}else{if(i!=vt.Simple&&h>=t&&(i==vt.TrackDel&&rt||i==vt.TrackBefore&&rt))return null;if(h>t||h==t&&e<0&&!l)return t==r||e<0?s:s+a;s+=a}r=h}if(t>r)throw new RangeError(`Position ${t} is out of range for changeset of length ${r}`);return s}touchesRange(t,e=t){for(let i=0,r=0;i=0&&r<=e&&l>=t)return re?"cover":!0;r=l}return!1}toString(){let t="";for(let e=0;e=0?":"+r:"")}return t}toJSON(){return this.sections}static fromJSON(t){if(!Array.isArray(t)||t.length%2||t.some(e=>typeof e!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new n(t)}static create(t){return new n(t)}},Ct=class n extends xe{constructor(t,e){super(t),this.inserted=e}apply(t){if(this.length!=t.length)throw new RangeError("Applying change set to a document with the wrong length");return kr(this,(e,i,r,s,o)=>t=t.replace(r,r+(i-e),o),!1),t}mapDesc(t,e=!1){return Cr(this,t,e,!0)}invert(t){let e=this.sections.slice(),i=[];for(let r=0,s=0;r=0){e[r]=l,e[r+1]=o;let a=r>>1;for(;i.length0&&oe(i,e,s.text),s.forward(c),l+=c}let h=t[o++];for(;l>1].toJSON()))}return t}static of(t,e,i){let r=[],s=[],o=0,l=null;function a(c=!1){if(!c&&!r.length)return;ou||f<0||u>e)throw new RangeError(`Invalid change range ${f} to ${u} (in doc of length ${e})`);let p=d?typeof d=="string"?U.of(d.split(i||xr)):d:U.empty,b=p.length;if(f==u&&b==0)return;fo&&ut(r,f-o,-1),ut(r,u-f,b),oe(s,r,p),o=u}}return h(t),a(!l),l}static empty(t){return new n(t?[t,-1]:[],[])}static fromJSON(t){if(!Array.isArray(t))throw new RangeError("Invalid JSON representation of ChangeSet");let e=[],i=[];for(let r=0;rl&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)e.push(s[0],0);else{for(;i.length=0&&e<=0&&e==n[r+1]?n[r]+=t:t==0&&n[r]==0?n[r+1]+=e:i?(n[r]+=t,n[r+1]+=e):n.push(t,e)}function oe(n,t,e){if(e.length==0)return;let i=t.length-2>>1;if(i>1])),!(e||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];t(r,h,s,c,f),r=h,s=c}}}function Cr(n,t,e,i=!1){let r=[],s=i?[]:null,o=new ke(n),l=new ke(t);for(let a=-1;;)if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);ut(r,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len=0&&a=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let f=Math.min(c,l.len);h+=f,c-=f,l.forward(f)}else if(l.ins==0&&l.lena||o.ins>=0&&o.len>a)&&(l||i.length>h),s.forward2(a),o.forward(a)}}}}var ke=class{constructor(t){this.set=t,this.i=0,this.next()}next(){let{sections:t}=this.set;this.i>1;return e>=t.length?U.empty:t[e]}textBit(t){let{inserted:e}=this.set,i=this.i-2>>1;return i>=e.length&&!t?U.empty:e[i].slice(this.off,t==null?void 0:this.off+t)}forward(t){t==this.len?this.next():(this.len-=t,this.off+=t)}forward2(t){this.ins==-1?this.forward(t):t==this.ins?this.next():(this.ins-=t,this.off+=t)}},He=class n{constructor(t,e,i){this.from=t,this.to=e,this.flags=i}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let t=this.flags&3;return t==3?null:t}get goalColumn(){let t=this.flags>>5;return t==33554431?void 0:t}map(t,e=-1){let i,r;return this.empty?i=r=t.mapPos(this.from,e):(i=t.mapPos(this.from,1),r=t.mapPos(this.to,-1)),i==this.from&&r==this.to?this:new n(i,r,this.flags)}extend(t,e=t){if(t<=this.anchor&&e>=this.anchor)return $.range(t,e);let i=Math.abs(t-this.anchor)>Math.abs(e-this.anchor)?t:e;return $.range(this.anchor,i)}eq(t){return this.anchor==t.anchor&&this.head==t.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(t){if(!t||typeof t.anchor!="number"||typeof t.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return $.range(t.anchor,t.head)}static create(t,e,i){return new n(t,e,i)}},$=class n{constructor(t,e){this.ranges=t,this.mainIndex=e}map(t,e=-1){return t.empty?this:n.create(this.ranges.map(i=>i.map(t,e)),this.mainIndex)}eq(t){if(this.ranges.length!=t.ranges.length||this.mainIndex!=t.mainIndex)return!1;for(let e=0;et.toJSON()),main:this.mainIndex}}static fromJSON(t){if(!t||!Array.isArray(t.ranges)||typeof t.main!="number"||t.main>=t.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new n(t.ranges.map(e=>He.fromJSON(e)),t.main)}static single(t,e=t){return new n([n.range(t,e)],0)}static create(t,e=0){if(t.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,r=0;rt?4:0)|s)}static normalized(t,e=0){let i=t[e];t.sort((r,s)=>r.from-s.from),e=t.indexOf(i);for(let r=1;rs.head?n.range(a,l):n.range(l,a))}}return new n(t,e)}};function Il(n,t){for(let e of n.ranges)if(e.to>t)throw new RangeError("Selection points outside of document")}var Pr=0,V=class n{constructor(t,e,i,r,s){this.combine=t,this.compareInput=e,this.compare=i,this.isStatic=r,this.id=Pr++,this.default=t([]),this.extensions=typeof s=="function"?s(this):s}static define(t={}){return new n(t.combine||(e=>e),t.compareInput||((e,i)=>e===i),t.compare||(t.combine?(e,i)=>e===i:Ir),!!t.static,t.enables)}of(t){return new ze([],this,0,t)}compute(t,e){if(this.isStatic)throw new Error("Can\'t compute a static facet");return new ze(t,this,1,e)}computeN(t,e){if(this.isStatic)throw new Error("Can\'t compute a static facet");return new ze(t,this,2,e)}from(t,e){return e||(e=i=>i),this.compute([t],i=>e(i.field(t)))}};function Ir(n,t){return n==t||n.length==t.length&&n.every((e,i)=>e===t[i])}var ze=class{constructor(t,e,i,r){this.dependencies=t,this.facet=e,this.type=i,this.value=r,this.id=Pr++}dynamicSlot(t){var e;let i=this.value,r=this.facet.compareInput,s=this.id,o=t[s]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?h=!0:((e=t[f.id])!==null&&e!==void 0?e:1)&1||c.push(t[f.id]);return{create(f){return f.values[o]=i(f),1},update(f,u){if(a&&u.docChanged||h&&(u.docChanged||u.selection)||Ar(f,c)){let d=i(f);if(l?!Al(d,f.values[o],r):!r(d,f.values[o]))return f.values[o]=d,1}return 0},reconfigure:(f,u)=>{let d,p=u.config.address[s];if(p!=null){let b=un(u,p);if(this.dependencies.every(y=>y instanceof V?u.facet(y)===f.facet(y):y instanceof Yt?u.field(y,!1)==f.field(y,!1):!0)||(l?Al(d=i(f),b,r):r(d=i(f),b)))return f.values[o]=b,0}else d=i(f);return f.values[o]=d,1}}}};function Al(n,t,e){if(n.length!=t.length)return!1;for(let i=0;in[a.id]),r=e.map(a=>a.type),s=i.filter(a=>!(a&1)),o=n[t.id]>>1;function l(a){let h=[];for(let c=0;ci===r),t);return t.provide&&(e.provides=t.provide(e)),e}create(t){let e=t.facet(Tl).find(i=>i.field==this);return((e==null?void 0:e.create)||this.createF)(t)}slot(t){let e=t[this.id]>>1;return{create:i=>(i.values[e]=this.create(i),1),update:(i,r)=>{let s=i.values[e],o=this.updateF(s,r);return this.compareF(s,o)?0:(i.values[e]=o,1)},reconfigure:(i,r)=>r.config.address[this.id]!=null?(i.values[e]=r.field(this),0):(i.values[e]=this.create(i),1)}}init(t){return[this,Tl.of({field:this,create:t})]}get extension(){return this}},we={lowest:4,low:3,default:2,high:1,highest:0};function vi(n){return t=>new hn(t,n)}var pn={highest:vi(we.highest),high:vi(we.high),default:vi(we.default),low:vi(we.low),lowest:vi(we.lowest)},hn=class{constructor(t,e){this.inner=t,this.prec=e}},cn=class n{of(t){return new xi(this,t)}reconfigure(t){return n.reconfigure.of({compartment:this,extension:t})}get(t){return t.config.compartments.get(this)}},xi=class{constructor(t,e){this.compartment=t,this.inner=e}},fn=class n{constructor(t,e,i,r,s,o){for(this.base=t,this.compartments=e,this.dynamicSlots=i,this.address=r,this.staticValues=s,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(t,e,i){let r=[],s=Object.create(null),o=new Map;for(let u of Nc(t,e,o))u instanceof Yt?r.push(u):(s[u.facet.id]||(s[u.facet.id]=[])).push(u);let l=Object.create(null),a=[],h=[];for(let u of r)l[u.id]=h.length<<1,h.push(d=>u.slot(d));let c=i==null?void 0:i.config.facets;for(let u in s){let d=s[u],p=d[0].facet,b=c&&c[u]||[];if(d.every(y=>y.type==0))if(l[p.id]=a.length<<1|1,Ir(b,d))a.push(i.facet(p));else{let y=p.combine(d.map(v=>v.value));a.push(i&&p.compare(y,i.facet(p))?i.facet(p):y)}else{for(let y of d)y.type==0?(l[y.id]=a.length<<1|1,a.push(y.value)):(l[y.id]=h.length<<1,h.push(v=>y.dynamicSlot(v)));l[p.id]=h.length<<1,h.push(y=>Oc(y,p,d))}}let f=h.map(u=>u(l));return new n(t,o,f,l,a,s)}};function Nc(n,t,e){let i=[[],[],[],[],[]],r=new Map;function s(o,l){let a=r.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof xi&&e.delete(o.compartment)}if(r.set(o,l),Array.isArray(o))for(let h of o)s(h,l);else if(o instanceof xi){if(e.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=t.get(o.compartment)||o.inner;e.set(o.compartment,h),s(h,l)}else if(o instanceof hn)s(o.inner,o.prec);else if(o instanceof Yt)i[l].push(o),o.provides&&s(o.provides,l);else if(o instanceof ze)i[l].push(o),o.facet.extensions&&s(o.facet.extensions,we.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(h,l)}}return s(n,we.default),i.reduce((o,l)=>o.concat(l))}function Si(n,t){if(t&1)return 2;let e=t>>1,i=n.status[e];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[e]=4;let r=n.computeSlot(n,n.config.dynamicSlots[e]);return n.status[e]=2|r}function un(n,t){return t&1?n.config.staticValues[t>>1]:n.values[t>>1]}var _l=V.define(),Ll=V.define({combine:n=>n.some(t=>t),static:!0}),Bl=V.define({combine:n=>n.length?n[0]:void 0,static:!0}),Fl=V.define(),$l=V.define(),Hl=V.define(),Vl=V.define({combine:n=>n.length?n[0]:!1}),Jt=class{constructor(t,e){this.type=t,this.value=e}static define(){return new Tr}},Tr=class{of(t){return new Jt(this,t)}},Mr=class{constructor(t){this.map=t}of(t){return new tt(this,t)}},tt=class n{constructor(t,e){this.type=t,this.value=e}map(t){let e=this.type.map(this.value,t);return e===void 0?void 0:e==this.value?this:new n(this.type,e)}is(t){return this.type==t}static define(t={}){return new Mr(t.map||(e=>e))}static mapEffects(t,e){if(!t.length)return t;let i=[];for(let r of t){let s=r.map(e);s&&i.push(s)}return i}};tt.reconfigure=tt.define();tt.appendConfig=tt.define();var St=class n{constructor(t,e,i,r,s,o){this.startState=t,this.changes=e,this.selection=i,this.effects=r,this.annotations=s,this.scrollIntoView=o,this._doc=null,this._state=null,i&&Il(i,e.newLength),s.some(l=>l.type==n.time)||(this.annotations=s.concat(n.time.of(Date.now())))}static create(t,e,i,r,s,o){return new n(t,e,i,r,s,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(t){for(let e of this.annotations)if(e.type==t)return e.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(t){let e=this.annotation(n.userEvent);return!!(e&&(e==t||e.length>t.length&&e.slice(0,t.length)==t&&e[t.length]=="."))}};St.time=Jt.define();St.userEvent=Jt.define();St.addToHistory=Jt.define();St.remote=Jt.define();function Pc(n,t){let e=[];for(let i=0,r=0;;){let s,o;if(i=n[i]))s=n[i++],o=n[i++];else if(r=0;r--){let s=i[r](n);s instanceof St?n=s:Array.isArray(s)&&s.length==1&&s[0]instanceof St?n=s[0]:n=zl(t,Ue(s),!1)}return n}function _c(n){let t=n.startState,e=t.facet(Hl),i=n;for(let r=e.length-1;r>=0;r--){let s=e[r](n);s&&Object.keys(s).length&&(i=Wl(i,Er(t,s,n.changes.newLength),!0))}return i==n?n:St.create(t,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}var Lc=[];function Ue(n){return n==null?Lc:Array.isArray(n)?n:[n]}var Bt=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(Bt||(Bt={})),Bc=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/,Rr;try{Rr=new RegExp("[\\\\p{Alphabetic}\\\\p{Number}_]","u")}catch(n){}function Fc(n){if(Rr)return Rr.test(n);for(let t=0;t"\\x80"&&(e.toUpperCase()!=e.toLowerCase()||Bc.test(e)))return!0}return!1}function $c(n){return t=>{if(!/\\S/.test(t))return Bt.Space;if(Fc(t))return Bt.Word;for(let e=0;e-1)return Bt.Word;return Bt.Other}}var Q=class n{constructor(t,e,i,r,s,o){this.config=t,this.doc=e,this.selection=i,this.values=r,this.status=t.statusTemplate.slice(),this.computeSlot=s,o&&(o._state=this);for(let l=0;lr.set(a,l)),e=null),r.set(o.value.compartment,o.value.extension)):o.is(tt.reconfigure)?(e=null,i=o.value):o.is(tt.appendConfig)&&(e=null,i=Ue(i).concat(o.value));let s;e?s=t.startState.values.slice():(e=fn.resolve(i,r,this),s=new n(e,this.doc,this.selection,e.dynamicSlots.map(()=>null),(l,a)=>a.reconfigure(l,this),null).values),new n(e,t.newDoc,t.newSelection,s,(o,l)=>l.update(o,t),t)}replaceSelection(t){return typeof t=="string"&&(t=this.toText(t)),this.changeByRange(e=>({changes:{from:e.from,to:e.to,insert:t},range:$.cursor(e.from+t.length)}))}changeByRange(t){let e=this.selection,i=t(e.ranges[0]),r=this.changes(i.changes),s=[i.range],o=Ue(i.effects);for(let l=1;lo.spec.fromJSON(l,a)))}}return n.create({doc:t.doc,selection:$.fromJSON(t.selection),extensions:e.extensions?r.concat([e.extensions]):r})}static create(t={}){let e=fn.resolve(t.extensions||[],new Map),i=t.doc instanceof U?t.doc:U.of((t.doc||"").split(e.staticFacet(n.lineSeparator)||xr)),r=t.selection?t.selection instanceof $?t.selection:$.single(t.selection.anchor,t.selection.head):$.single(0);return Il(r,i.length),e.staticFacet(Ll)||(r=r.asSingle()),new n(e,i,r,e.dynamicSlots.map(()=>null),(s,o)=>o.create(s),null)}get tabSize(){return this.facet(n.tabSize)}get lineBreak(){return this.facet(n.lineSeparator)||`\n`}get readOnly(){return this.facet(Vl)}phrase(t,...e){for(let i of this.facet(n.phrases))if(Object.prototype.hasOwnProperty.call(i,t)){t=i[t];break}return e.length&&(t=t.replace(/\\$(\\$|\\d*)/g,(i,r)=>{if(r=="$")return"$";let s=+(r||1);return!s||s>e.length?i:e[s-1]})),t}languageDataAt(t,e,i=-1){let r=[];for(let s of this.facet(_l))for(let o of s(this,e,i))Object.prototype.hasOwnProperty.call(o,t)&&r.push(o[t]);return r}charCategorizer(t){return $c(this.languageDataAt("wordChars",t).join(""))}wordAt(t){let{text:e,from:i,length:r}=this.doc.lineAt(t),s=this.charCategorizer(t),o=t-i,l=t-i;for(;o>0;){let a=Xt(e,o,!1);if(s(e.slice(a,o))!=Bt.Word)break;o=a}for(;ln.length?n[0]:4});Q.lineSeparator=Bl;Q.readOnly=Vl;Q.phrases=V.define({compare(n,t){let e=Object.keys(n),i=Object.keys(t);return e.length==i.length&&e.every(r=>n[r]==t[r])}});Q.languageData=_l;Q.changeFilter=Fl;Q.transactionFilter=$l;Q.transactionExtender=Hl;cn.reconfigure=tt.define();var Zt=class{eq(t){return this==t}range(t,e=t){return ki.create(t,e,this)}};Zt.prototype.startSide=Zt.prototype.endSide=0;Zt.prototype.point=!1;Zt.prototype.mapMode=vt.TrackDel;var ki=class n{constructor(t,e,i){this.from=t,this.to=e,this.value=i}static create(t,e,i){return new n(t,e,i)}};function Dr(n,t){return n.from-t.from||n.value.startSide-t.value.startSide}var Or=class n{constructor(t,e,i,r){this.from=t,this.to=e,this.value=i,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(t,e,i,r=0){let s=i?this.to:this.from;for(let o=r,l=s.length;;){if(o==l)return o;let a=o+l>>1,h=s[a]-t||(i?this.value[a].endSide:this.value[a].startSide)-e;if(a==o)return h>=0?o:l;h>=0?l=a:o=a+1}}between(t,e,i,r){for(let s=this.findIndex(e,-1e9,!0),o=this.findIndex(i,1e9,!1,s);sd||u==d&&h.startSide>0&&h.endSide<=0)continue;(d-u||h.endSide-h.startSide)<0||(o<0&&(o=u),h.point&&(l=Math.max(l,d-u)),i.push(h),r.push(u-o),s.push(d-o))}return{mapped:i.length?new n(r,s,i,l):null,pos:o}}},ht=class n{constructor(t,e,i,r){this.chunkPos=t,this.chunk=e,this.nextLayer=i,this.maxPoint=r}static create(t,e,i,r){return new n(t,e,i,r)}get length(){let t=this.chunk.length-1;return t<0?0:Math.max(this.chunkEnd(t),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let t=this.nextLayer.size;for(let e of this.chunk)t+=e.value.length;return t}chunkEnd(t){return this.chunkPos[t]+this.chunk[t].length}update(t){let{add:e=[],sort:i=!1,filterFrom:r=0,filterTo:s=this.length}=t,o=t.filter;if(e.length==0&&!o)return this;if(i&&(e=e.slice().sort(Dr)),this.isEmpty)return e.length?n.of(e):this;let l=new dn(this,null,-1).goto(0),a=0,h=[],c=new Ce;for(;l.value||a=0){let f=e[a++];c.addInner(f.from,f.to,f.value)||h.push(f)}else l.rangeIndex==1&&l.chunkIndexthis.chunkEnd(l.chunkIndex)||sl.to||s=s&&t<=s+o.length&&o.between(s,t-s,e-s,i)===!1)return}this.nextLayer.between(t,e,i)}}iter(t=0){return Ci.from([this]).goto(t)}get isEmpty(){return this.nextLayer==this}static iter(t,e=0){return Ci.from(t).goto(e)}static compare(t,e,i,r,s=-1){let o=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),a=Ml(o,l,i),h=new ve(o,a,s),c=new ve(l,a,s);i.iterGaps((f,u,d)=>El(h,f,c,u,d,r)),i.empty&&i.length==0&&El(h,0,c,0,0,r)}static eq(t,e,i=0,r){r==null&&(r=999999999);let s=t.filter(c=>!c.isEmpty&&e.indexOf(c)<0),o=e.filter(c=>!c.isEmpty&&t.indexOf(c)<0);if(s.length!=o.length)return!1;if(!s.length)return!0;let l=Ml(s,o),a=new ve(s,l,0).goto(i),h=new ve(o,l,0).goto(i);for(;;){if(a.to!=h.to||!Nr(a.active,h.active)||a.point&&(!h.point||!a.point.eq(h.point)))return!1;if(a.to>r)return!0;a.next(),h.next()}}static spans(t,e,i,r,s=-1){let o=new ve(t,null,s).goto(e),l=e,a=o.openStart;for(;;){let h=Math.min(o.to,i);if(o.point){let c=o.activeForPoint(o.to),f=o.pointFroml&&(r.span(l,h,o.active,a),a=o.openEnd(h));if(o.to>i)return a+(o.point&&o.to>i?1:0);l=o.to,o.next()}}static of(t,e=!1){let i=new Ce;for(let r of t instanceof ki?[t]:e?Hc(t):t)i.add(r.from,r.to,r.value);return i.finish()}};ht.empty=new ht([],[],null,-1);function Hc(n){if(n.length>1)for(let t=n[0],e=1;e0)return n.slice().sort(Dr);t=i}return n}ht.empty.nextLayer=ht.empty;var Ce=class n{constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}finishChunk(t){this.chunks.push(new Or(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,t&&(this.from=[],this.to=[],this.value=[])}add(t,e,i){this.addInner(t,e,i)||(this.nextLayer||(this.nextLayer=new n)).add(t,e,i)}addInner(t,e,i){let r=t-this.lastTo||i.startSide-this.last.endSide;if(r<=0&&(t-this.lastFrom||i.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return r<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=t),this.from.push(t-this.chunkStart),this.to.push(e-this.chunkStart),this.last=i,this.lastFrom=t,this.lastTo=e,this.value.push(i),i.point&&(this.maxPoint=Math.max(this.maxPoint,e-t)),!0)}addChunk(t,e){if((t-this.lastTo||e.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,e.maxPoint),this.chunks.push(e),this.chunkPos.push(t);let i=e.value.length-1;return this.last=e.value[i],this.lastFrom=e.from[i]+t,this.lastTo=e.to[i]+t,!0}finish(){return this.finishInner(ht.empty)}finishInner(t){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return t;let e=ht.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(t):t,this.setMaxPoint);return this.from=null,e}};function Ml(n,t,e){let i=new Map;for(let s of n)for(let o=0;o=this.minPoint)break}}setRangeIndex(t){if(t==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=i&&r.push(new dn(o,e,i,s));return r.length==1?r[0]:new n(r)}get startSide(){return this.value?this.value.startSide:0}goto(t,e=-1e9){for(let i of this.heap)i.goto(t,e);for(let i=this.heap.length>>1;i>=0;i--)wr(this.heap,i);return this.next(),this}forward(t,e){for(let i of this.heap)i.forward(t,e);for(let i=this.heap.length>>1;i>=0;i--)wr(this.heap,i);(this.to-t||this.value.endSide-e)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let t=this.heap[0];this.from=t.from,this.to=t.to,this.value=t.value,this.rank=t.rank,t.value&&t.next(),wr(this.heap,0)}}};function wr(n,t){for(let e=n[t];;){let i=(t<<1)+1;if(i>=n.length)break;let r=n[i];if(i+1=0&&(r=n[i+1],i++),e.compare(r)<0)break;n[i]=e,n[t]=r,t=i}}var ve=class{constructor(t,e,i){this.minPoint=i,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Ci.from(t,e,i)}goto(t,e=-1e9){return this.cursor.goto(t,e),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=t,this.endSide=e,this.openStart=-1,this.next(),this}forward(t,e){for(;this.minActive>-1&&(this.activeTo[this.minActive]-t||this.active[this.minActive].endSide-e)<0;)this.removeActive(this.minActive);this.cursor.forward(t,e)}removeActive(t){nn(this.active,t),nn(this.activeTo,t),nn(this.activeRank,t),this.minActive=Rl(this.active,this.activeTo)}addActive(t){let e=0,{value:i,to:r,rank:s}=this.cursor;for(;e-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>t){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),i&&nn(i,r)}else if(this.cursor.value)if(this.cursor.from>t){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(i),this.cursor.next();else if(e&&this.cursor.to==this.to&&this.cursor.from=0&&i[r]=0&&!(this.activeRank[i]t||this.activeTo[i]==t&&this.active[i].endSide>=this.point.endSide)&&e.push(this.active[i]);return e.reverse()}openEnd(t){let e=0;for(let i=this.activeTo.length-1;i>=0&&this.activeTo[i]>t;i--)e++;return e}};function El(n,t,e,i,r,s){n.goto(t),e.goto(i);let o=i+r,l=i,a=i-t;for(;;){let h=n.to+a-e.to||n.endSide-e.endSide,c=h<0?n.to+a:e.to,f=Math.min(c,o);if(n.point||e.point?n.point&&e.point&&(n.point==e.point||n.point.eq(e.point))&&Nr(n.activeForPoint(n.to+a),e.activeForPoint(e.to))||s.comparePoint(l,f,n.point,e.point):f>l&&!Nr(n.active,e.active)&&s.compareRange(l,f,n.active,e.active),c>o)break;l=c,h<=0&&n.next(),h>=0&&e.next()}}function Nr(n,t){if(n.length!=t.length)return!1;for(let e=0;e=t;i--)n[i+1]=n[i];n[t]=e}function Rl(n,t){let e=-1,i=1e9;for(let r=0;r=t)return r;if(r==n.length)break;s+=n.charCodeAt(r)==9?e-s%e:1,r=Xt(n,r)}return i===!0?-1:n.length}var _r="\\u037C",jl=typeof Symbol=="undefined"?"__"+_r:Symbol.for(_r),Lr=typeof Symbol=="undefined"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Gl=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:{},Rt=class{constructor(t,e){this.rules=[];let{finish:i}=e||{};function r(o){return/^@/.test(o)?[o]:o.split(/,\\s*/)}function s(o,l,a,h){let c=[],f=/^@(\\w+)\\b/.exec(o[0]),u=f&&f[1]=="keyframes";if(f&&l==null)return a.push(o[0]+";");for(let d in l){let p=l[d];if(/&/.test(d))s(d.split(/,\\s*/).map(b=>o.map(y=>b.replace(/&/,y))).reduce((b,y)=>b.concat(y)),p,a);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+d+") should be a primitive value.");s(r(d),p,c,u)}else p!=null&&c.push(d.replace(/_.*/,"").replace(/[A-Z]/g,b=>"-"+b.toLowerCase())+": "+p+";")}(c.length||u)&&a.push((i&&!f&&!h?o.map(i):o).join(", ")+" {"+c.join(" ")+"}")}for(let o in t)s(r(o),t[o],this.rules)}getRules(){return this.rules.join(`\n`)}static newName(){let t=Gl[jl]||1;return Gl[jl]=t+1,_r+t.toString(36)}static mount(t,e,i){let r=t[Lr],s=i&&i.nonce;r?s&&r.setNonce(s):r=new Br(t,s),r.mount(Array.isArray(e)?e:[e])}},Kl=new Map,Br=class{constructor(t,e){this.root=t;let i=t.ownerDocument||t,r=i.defaultView;if(!t.head&&t.adoptedStyleSheets&&r.CSSStyleSheet){let s=Kl.get(i);if(s)return t[Lr]=s;this.sheet=new r.CSSStyleSheet,Kl.set(i,this)}else this.styleTag=i.createElement("style"),e&&this.styleTag.setAttribute("nonce",e);this.modules=[],t[Lr]=this}mount(t){let e=this.sheet,i=0,r=0;for(let s=0;s-1&&(this.modules.splice(l,1),r--,l=-1),l==-1){if(this.modules.splice(r++,0,o),e)for(let a=0;a",191:"?",192:"~",219:"{",220:"|",221:"}",222:\'"\'},um=typeof navigator!="undefined"&&/Mac/.test(navigator.platform),dm=typeof navigator!="undefined"&&/MSIE \\d|Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(navigator.userAgent);for(et=0;et<10;et++)Ae[48+et]=Ae[96+et]=String(et);var et;for(et=1;et<=24;et++)Ae[et+111]="F"+et;var et;for(et=65;et<=90;et++)Ae[et]=String.fromCharCode(et+32),mn[et]=String.fromCharCode(et);var et;for(gn in Ae)mn.hasOwnProperty(gn)||(mn[gn]=Ae[gn]);var gn;function An(n){let t;return n.nodeType==11?t=n.getSelection?n:n.ownerDocument:t=n,t.getSelection()}function qe(n,t){return t?n==t||n.contains(t.nodeType!=1?t.parentNode:t):!1}function zc(n){let t=n.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}function kn(n,t){if(!t.anchorNode)return!1;try{return qe(n,t.anchorNode)}catch(e){return!1}}function Di(n){return n.nodeType==3?Xe(n,0,n.nodeValue.length).getClientRects():n.nodeType==1?n.getClientRects():[]}function Tn(n,t,e,i){return e?ql(n,t,e,i,-1)||ql(n,t,e,i,1):!1}function Mn(n){for(var t=0;;t++)if(n=n.previousSibling,!n)return t}function ql(n,t,e,i,r){for(;;){if(n==e&&t==i)return!0;if(t==(r<0?0:Oi(n))){if(n.nodeName=="DIV")return!1;let s=n.parentNode;if(!s||s.nodeType!=1)return!1;t=Mn(n)+(r<0?0:1),n=s}else if(n.nodeType==1){if(n=n.childNodes[t+(r<0?-1:0)],n.nodeType==1&&n.contentEditable=="false")return!1;t=r<0?Oi(n):0}else return!1}}function Oi(n){return n.nodeType==3?n.nodeValue.length:n.childNodes.length}var Sa={left:0,right:0,top:0,bottom:0};function vs(n,t){let e=t?n.left:n.right;return{left:e,right:e,top:n.top,bottom:n.bottom}}function Uc(n){return{left:0,right:n.innerWidth,top:0,bottom:n.innerHeight}}function jc(n,t,e,i,r,s,o,l){let a=n.ownerDocument,h=a.defaultView||window;for(let c=n;c;)if(c.nodeType==1){let f,u=c==a.body;if(u)f=Uc(h);else{if(c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let b=c.getBoundingClientRect();f={left:b.left,right:b.left+c.clientWidth,top:b.top,bottom:b.top+c.clientHeight}}let d=0,p=0;if(r=="nearest")t.top0&&t.bottom>f.bottom+p&&(p=t.bottom-f.bottom+p+o)):t.bottom>f.bottom&&(p=t.bottom-f.bottom+o,e<0&&t.top-p0&&t.right>f.right+d&&(d=t.right-f.right+d+s)):t.right>f.right&&(d=t.right-f.right+s,e<0&&t.lefte.clientHeight||e.scrollWidth>e.clientWidth)return e;e=e.assignedSlot||e.parentNode}else if(e.nodeType==11)e=e.host;else break;return null}var Wr=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(t){return this.anchorNode==t.anchorNode&&this.anchorOffset==t.anchorOffset&&this.focusNode==t.focusNode&&this.focusOffset==t.focusOffset}setRange(t){this.set(t.anchorNode,t.anchorOffset,t.focusNode,t.focusOffset)}set(t,e,i,r){this.anchorNode=t,this.anchorOffset=e,this.focusNode=i,this.focusOffset=r}},je=null;function xa(n){if(n.setActive)return n.setActive();if(je)return n.focus(je);let t=[];for(let e=n;e&&(t.push(e,e.scrollTop,e.scrollLeft),e!=e.ownerDocument);e=e.parentNode);if(n.focus(je==null?{get preventScroll(){return je={preventScroll:!0},!0}}:void 0),!je){je=!1;for(let e=0;ee)return f.domBoundsAround(t,e,h);if(u>=t&&r==-1&&(r=a,s=h),h>e&&f.dom.parentNode==this.dom){o=a,l=c;break}c=u,h=u+f.breakAfter}return{from:s,to:l<0?i+this.length:l,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(t=!1){this.dirty|=2,this.markParentsDirty(t)}markParentsDirty(t){for(let e=this.parent;e;e=e.parent){if(t&&(e.dirty|=2),e.dirty&1)return;e.dirty|=1,t=!1}}setParent(t){this.parent!=t&&(this.parent=t,this.dirty&&this.markParentsDirty(!0))}setDOM(t){this.dom&&(this.dom.cmView=null),this.dom=t,t.cmView=this}get rootView(){for(let t=this;;){let e=t.parent;if(!e)return t;t=e}}replaceChildren(t,e,i=Ss){this.markDirty();for(let r=t;rthis.pos||t==this.pos&&(e>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=t-this.pos,this;let i=this.children[--this.i];this.pos-=i.length+i.breakAfter}}};function Ca(n,t,e,i,r,s,o,l,a){let{children:h}=n,c=h.length?h[t]:null,f=s.length?s[s.length-1]:null,u=f?f.breakAfter:o;if(!(t==i&&c&&!o&&!u&&s.length<2&&c.merge(e,r,s.length?f:null,e==0,l,a))){if(i0&&(!o&&s.length&&c.merge(e,c.length,s[0],!1,l,0)?c.breakAfter=s.shift().breakAfter:(e2),I={mac:Ql||/Mac/.test(At.platform),windows:/Win/.test(At.platform),linux:/Linux|X11/.test(At.platform),ie:Vn,ie_version:Ta?zr.documentMode||6:jr?+jr[1]:Ur?+Ur[1]:0,gecko:Jl,gecko_version:Jl?+(/Firefox\\/(\\d+)/.exec(At.userAgent)||[0,0])[1]:0,chrome:!!Fr,chrome_version:Fr?+Fr[1]:0,ios:Ql,android:/Android\\b/.test(At.userAgent),webkit:Zl,safari:Ma,webkit_version:Zl?+(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:zr.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},Xc=256,Te=class n extends X{constructor(t){super(),this.text=t}get length(){return this.text.length}createDOM(t){this.setDOM(t||document.createTextNode(this.text))}sync(t,e){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text)}reuseDOM(t){t.nodeType==3&&this.createDOM(t)}merge(t,e,i){return i&&(!(i instanceof n)||this.length-(e-t)+i.length>Xc)?!1:(this.text=this.text.slice(0,t)+(i?i.text:"")+this.text.slice(e),this.markDirty(),!0)}split(t){let e=new n(this.text.slice(t));return this.text=this.text.slice(0,t),this.markDirty(),e}localPosFromDOM(t,e){return t==this.dom?e:e?this.text.length:0}domAtPos(t){return new dt(this.dom,t)}domBoundsAround(t,e,i){return{from:i,to:i+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(t,e){return Gr(this.dom,t,e)}},ee=class n extends X{constructor(t,e=[],i=0){super(),this.mark=t,this.children=e,this.length=i;for(let r of e)r.setParent(this)}setAttrs(t){if(ka(t),this.mark.class&&(t.className=this.mark.class),this.mark.attrs)for(let e in this.mark.attrs)t.setAttribute(e,this.mark.attrs[e]);return t}reuseDOM(t){t.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(t),this.dirty|=6)}sync(t,e){this.dom?this.dirty&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(t,e)}merge(t,e,i,r,s,o){return i&&(!(i instanceof n&&i.mark.eq(this.mark))||t&&s<=0||et&&e.push(i=t&&(r=s),i=a,s++}let o=this.length-t;return this.length=t,r>-1&&(this.children.length=r,this.markDirty()),new n(this.mark,e,o)}domAtPos(t){return Oa(this,t)}coordsAt(t,e){return Pa(this,t,e)}};function Gr(n,t,e){let i=n.nodeValue.length;t>i&&(t=i);let r=t,s=t,o=0;t==0&&e<0||t==i&&e>=0?I.chrome||I.gecko||(t?(r--,o=1):s=0)?0:l.length-1];return I.safari&&!o&&a.width==0&&(a=Array.prototype.find.call(l,h=>h.width)||a),o?vs(a,o<0):a||null}var Ni=class n extends X{constructor(t,e,i){super(),this.widget=t,this.length=e,this.side=i,this.prevWidget=null}static create(t,e,i){return new(t.customView||n)(t,e,i)}split(t){let e=n.create(this.widget,this.length-t,this.side);return this.length-=t,e}sync(t){(!this.dom||!this.widget.updateDOM(this.dom,t))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(t)),this.dom.contentEditable="false")}getSide(){return this.side}merge(t,e,i,r,s,o){return i&&(!(i instanceof n)||!this.widget.compare(i.widget)||t>0&&s<=0||e0)?dt.before(this.dom):dt.after(this.dom,t==this.length)}domBoundsAround(){return null}coordsAt(t,e){let i=this.dom.getClientRects(),r=null;if(!i.length)return Sa;for(let s=t>0?i.length-1:0;r=i[s],!(t>0?s==0:s==i.length-1||r.top0?-1:1);return this.length?r:vs(r,this.side>0)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},Rn=class extends Ni{domAtPos(t){let{topView:e,text:i}=this.widget;return e?Kr(t,0,e,i,this.length-e.length,(r,s)=>r.domAtPos(s),(r,s)=>new dt(r,Math.min(s,r.nodeValue.length))):new dt(i,Math.min(t,i.nodeValue.length))}sync(){this.setDOM(this.widget.toDOM())}localPosFromDOM(t,e){let{topView:i,text:r}=this.widget;return i?Ra(t,e,i,r,this.length-i.length):Math.min(e,this.length)}ignoreMutation(){return!1}get overrideDOMText(){return null}coordsAt(t,e){let{topView:i,text:r}=this.widget;return i?Kr(t,e,i,r,this.length-i.length,(s,o,l)=>s.coordsAt(o,l),(s,o,l)=>Gr(s,o,l)):Gr(r,t,e)}destroy(){var t;super.destroy(),(t=this.widget.topView)===null||t===void 0||t.destroy()}get isEditable(){return!0}canReuseDOM(){return!0}};function Kr(n,t,e,i,r,s,o){if(e instanceof ee){for(let l=e.dom.firstChild;l;l=l.nextSibling){let a=X.get(l);if(a){let h=qe(l,i),c=a.length+(h?r:0);if(n0?dt.before(this.dom):dt.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(t){let e=this.dom.getBoundingClientRect(),i=Yc(this,this.side>0?-1:1);return i&&i.tope.top?{left:e.left,right:e.right,top:i.top,bottom:i.bottom}:e}get overrideDOMText(){return U.empty}get isHidden(){return!0}};Te.prototype.children=Ni.prototype.children=Ye.prototype.children=Ss;function Yc(n,t){let e=n.parent,i=e?e.children.indexOf(n):-1;for(;e&&i>=0;)if(t<0?i>0:is&&t0;s--){let o=i[s-1];if(o.dom.parentNode==e)return o.domAtPos(o.length)}for(let s=r;s0&&t instanceof ee&&r.length&&(i=r[r.length-1])instanceof ee&&i.mark.eq(t.mark)?Na(i,t.children[0],e-1):(r.push(t),t.setParent(n)),n.length+=t.length}function Pa(n,t,e){let i=null,r=-1,s=null,o=-1;function l(h,c){for(let f=0,u=0;f=c&&(d.children.length?l(d,c-u):(!s||s instanceof Ye&&e>0)&&(p>c||u==p&&d.getSide()>0)?(s=d,o=c-u):(u0?3e8:-4e8:e>0?1e8:-1e8,new Ee(t,e,e,i,t.widget||null,!1)}static replace(t){let e=!!t.block,i,r;if(t.isBlockGap)i=-5e8,r=4e8;else{let{start:s,end:o}=Ia(t,e);i=(s?e?-3e8:-1:5e8)-1,r=(o?e?2e8:1:-6e8)+1}return new Ee(t,i,r,e,t.widget||null,!0)}static line(t){return new Pi(t)}static set(t,e=!1){return ht.of(t,e)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};J.none=ht.empty;var Dn=class n extends J{constructor(t){let{start:e,end:i}=Ia(t);super(e?-1:5e8,i?1:-6e8,null,t),this.tagName=t.tagName||"span",this.class=t.class||"",this.attrs=t.attributes||null}eq(t){return this==t||t instanceof n&&this.tagName==t.tagName&&this.class==t.class&&xs(this.attrs,t.attrs)}range(t,e=t){if(t>=e)throw new RangeError("Mark decorations may not be empty");return super.range(t,e)}};Dn.prototype.point=!1;var Pi=class n extends J{constructor(t){super(-2e8,-2e8,null,t)}eq(t){return t instanceof n&&this.spec.class==t.spec.class&&xs(this.spec.attributes,t.spec.attributes)}range(t,e=t){if(e!=t)throw new RangeError("Line decoration ranges must be zero-length");return super.range(t,e)}};Pi.prototype.mapMode=vt.TrackBefore;Pi.prototype.point=!0;var Ee=class n extends J{constructor(t,e,i,r,s,o){super(e,i,s,t),this.block=r,this.isReplace=o,this.mapMode=r?e<=0?vt.TrackBefore:vt.TrackAfter:vt.TrackDel}get type(){return this.startSide=5}eq(t){return t instanceof n&&Zc(this.widget,t.widget)&&this.block==t.block&&this.startSide==t.startSide&&this.endSide==t.endSide}range(t,e=t){if(this.isReplace&&(t>e||t==e&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&e!=t)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(t,e)}};Ee.prototype.point=!0;function Ia(n,t=!1){let{inclusiveStart:e,inclusiveEnd:i}=n;return e==null&&(e=n.inclusive),i==null&&(i=n.inclusive),{start:e!=null?e:t,end:i!=null?i:t}}function Zc(n,t){return n==t||!!(n&&t&&n.compare(t))}function Yr(n,t,e,i=0){let r=e.length-1;r>=0&&e[r]+i>=n?e[r]=Math.max(e[r],t):e.push(n,t)}var Tt=class n extends X{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(t,e,i,r,s,o){if(i){if(!(i instanceof n))return!1;this.dom||i.transferDOM(this)}return r&&this.setDeco(i?i.attrs:null),Aa(this,t,e,i?i.children:[],s,o),!0}split(t){let e=new n;if(e.breakAfter=this.breakAfter,this.length==0)return e;let{i,off:r}=this.childPos(t);r&&(e.append(this.children[i].split(r),0),this.children[i].merge(r,this.children[i].length,null,!1,0,0),i++);for(let s=i;s0&&this.children[i-1].length==0;)this.children[--i].destroy();return this.children.length=i,this.markDirty(),this.length=t,e}transferDOM(t){this.dom&&(this.markDirty(),t.setDOM(this.dom),t.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(t){xs(this.attrs,t)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=t)}append(t,e){Na(this,t,e)}addLineDeco(t){let e=t.spec.attributes,i=t.spec.class;e&&(this.attrs=qr(e,this.attrs||{})),i&&(this.attrs=qr({class:i},this.attrs||{}))}domAtPos(t){return Oa(this,t)}reuseDOM(t){t.nodeName=="DIV"&&(this.setDOM(t),this.dirty|=6)}sync(t,e){var i;this.dom?this.dirty&4&&(ka(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(Xr(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(t,e);let r=this.dom.lastChild;for(;r&&X.get(r)instanceof ee;)r=r.lastChild;if(!r||!this.length||r.nodeName!="BR"&&((i=X.get(r))===null||i===void 0?void 0:i.isEditable)==!1&&(!I.ios||!this.children.some(s=>s instanceof Te))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let t=0,e;for(let i of this.children){if(!(i instanceof Te)||/[^ -~]/.test(i.text))return null;let r=Di(i.dom);if(r.length!=1)return null;t+=r[0].width,e=r[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(t,e){let i=Pa(this,t,e);if(!this.children.length&&i&&this.parent){let{heightOracle:r}=this.parent.view.viewState,s=i.bottom-i.top;if(Math.abs(s-r.lineHeight)<2&&r.textHeight=e){if(s instanceof n)return s;if(o>e)break}r=o+s.breakAfter}return null}},Ii=class n extends X{constructor(t,e,i){super(),this.widget=t,this.length=e,this.type=i,this.breakAfter=0,this.prevWidget=null}merge(t,e,i,r,s,o){return i&&(!(i instanceof n)||!this.widget.compare(i.widget)||t>0&&s<=0||e0;){if(this.textOff==this.text.length){let{value:s,lineBreak:o,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(o){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,t--;continue}else this.text=s,this.textOff=0}let r=Math.min(this.text.length-this.textOff,t,512);this.flushBuffer(e.slice(e.length-i)),this.getLine().append(yn(new Te(this.text.slice(this.textOff,this.textOff+r)),e),i),this.atCursorPos=!0,this.textOff+=r,t-=r,i=0}}span(t,e,i,r){this.buildText(e-t,i,r),this.pos=e,this.openStart<0&&(this.openStart=r)}point(t,e,i,r,s,o){if(this.disallowBlockEffectsFor[o]&&i instanceof Ee){if(i.block)throw new RangeError("Block decorations may not be specified via plugins");if(e>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=e-t;if(i instanceof Ee)if(i.block){let{type:a}=i;a==it.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Ii(i.widget||new On("div"),l,a))}else{let a=Ni.create(i.widget||new On("span"),l,l?0:i.startSide),h=this.atCursorPos&&!a.isEditable&&s<=r.length&&(t0),c=!a.isEditable&&(tr.length||i.startSide<=0),f=this.getLine();this.pendingBuffer==2&&!h&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(r),h&&(f.append(yn(new Ye(1),r),s),s=r.length+Math.max(0,s-r.length)),f.append(yn(a,r),s),this.atCursorPos=c,this.pendingBuffer=c?tr.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(i);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=e),this.openStart<0&&(this.openStart=s)}static build(t,e,i,r,s){let o=new n(t,e,i,s);return o.openEnd=ht.spans(r,e,i,o),o.openStart<0&&(o.openStart=o.openEnd),o.finish(o.openEnd),o}};function yn(n,t){for(let e of t)n=new ee(e,[n],n.length);return n}var On=class extends Me{constructor(t){super(),this.tag=t}eq(t){return t.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(t){return t.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}},_a=V.define(),La=V.define(),Ba=V.define(),Fa=V.define(),Zr=V.define(),$a=V.define(),Ha=V.define(),Va=V.define({combine:n=>n.some(t=>t)}),Qc=V.define({combine:n=>n.some(t=>t)}),Nn=class n{constructor(t,e="nearest",i="nearest",r=5,s=5){this.range=t,this.y=e,this.x=i,this.yMargin=r,this.xMargin=s}map(t){return t.empty?this:new n(this.range.map(t),this.y,this.x,this.yMargin,this.xMargin)}},ta=tt.define({map:(n,t)=>n.map(t)});function te(n,t,e){let i=n.facet(Fa);i.length?i[0](t):window.onerror?window.onerror(String(t),e,void 0,void 0,t):e?console.error(e+":",t):console.error(t)}var Wn=V.define({combine:n=>n.length?n[0]:!0}),tf=0,Ai=V.define(),Je=class n{constructor(t,e,i,r){this.id=t,this.create=e,this.domEventHandlers=i,this.extension=r(this)}static define(t,e){let{eventHandlers:i,provide:r,decorations:s}=e||{};return new n(tf++,t,i,o=>{let l=[Ai.of(o)];return s&&l.push(_i.of(a=>{let h=a.plugin(o);return h?s(h):J.none})),r&&l.push(r(o)),l})}static fromClass(t,e){return n.define(i=>new t(i),e)}},Ei=class{constructor(t){this.spec=t,this.mustUpdate=null,this.value=null}update(t){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(i){if(te(e.state,i,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(r){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(t)}catch(e){te(t.state,e,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(t){var e;if(!((e=this.value)===null||e===void 0)&&e.destroy)try{this.value.destroy()}catch(i){te(t.state,i,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Wa=V.define(),ks=V.define(),_i=V.define(),za=V.define(),Ua=V.define(),Ti=V.define(),ae=class n{constructor(t,e,i,r){this.fromA=t,this.toA=e,this.fromB=i,this.toB=r}join(t){return new n(Math.min(this.fromA,t.fromA),Math.max(this.toA,t.toA),Math.min(this.fromB,t.fromB),Math.max(this.toB,t.toB))}addToSet(t){let e=t.length,i=this;for(;e>0;e--){let r=t[e-1];if(!(r.fromA>i.toA)){if(r.toAc)break;s+=2}if(!a)return i;new n(a.fromA,a.toA,a.fromB,a.toB).addToSet(i),o=a.toA,l=a.toB}}},Pn=class n{constructor(t,e,i){this.view=t,this.state=e,this.transactions=i,this.flags=0,this.startState=t.state,this.changes=Ct.empty(this.startState.doc.length);for(let s of i)this.changes=this.changes.compose(s.changes);let r=[];this.changes.iterChangedRanges((s,o,l,a)=>r.push(new ae(s,o,l,a))),this.changedRanges=r}static create(t,e,i){return new n(t,e,i)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(t=>t.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},mt=function(n){return n[n.LTR=0]="LTR",n[n.RTL=1]="RTL",n}(mt||(mt={})),Qr=mt.LTR,ef=mt.RTL;function ja(n){let t=[];for(let e=0;e=e){if(l.level==i)return o;(s<0||(r!=0?r<0?l.frome:t[s].level>l.level))&&(s=o)}}if(s<0)throw new RangeError("Index out of range");return s}},Y=[];function lf(n,t){let e=n.length,i=t==Qr?1:2,r=t==Qr?2:1;if(!n||i==1&&!of.test(n))return Ga(e);for(let o=0,l=i,a=i;o=0;u-=3)if(Ft[u+1]==-c){let d=Ft[u+2],p=d&2?i:d&4?d&1?r:i:0;p&&(Y[o]=Y[Ft[u]]=p),l=u;break}}else{if(Ft.length==189)break;Ft[l++]=o,Ft[l++]=h,Ft[l++]=a}else if((f=Y[o])==2||f==1){let u=f==i;a=u?0:1;for(let d=l-3;d>=0;d-=3){let p=Ft[d+2];if(p&2)break;if(u)Ft[d+2]|=2;else{if(p&4)break;Ft[d+2]|=4}}}for(let o=0;ol;){let c=h,f=Y[--h]!=2;for(;h>l&&f==(Y[h-1]!=2);)h--;s.push(new he(h,c,f?2:1))}else s.push(new he(l,o,0))}else for(let o=0;o1)for(let a of this.points)a.node==t&&a.pos>this.text.length&&(a.pos-=o-1);i=s+o}}readNode(t){if(t.cmIgnore)return;let e=X.get(t),i=e&&e.overrideDOMText;if(i!=null){this.findPointInside(t,i.length);for(let r=i.iter();!r.next().done;)r.lineBreak?this.lineBreak():this.append(r.value)}else t.nodeType==3?this.readTextNode(t):t.nodeName=="BR"?t.nextSibling&&this.lineBreak():t.nodeType==1&&this.readRange(t.firstChild,null)}findPointBefore(t,e){for(let i of this.points)i.node==t&&t.childNodes[i.offset]==e&&(i.pos=this.text.length)}findPointInside(t,e){for(let i of this.points)(t.nodeType==3?i.node==t:t.contains(i.node))&&(i.pos=this.text.length+Math.min(e,i.offset))}};function ea(n){return n.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\\d|SECTION|PRE)$/.test(n.nodeName)}var _n=class{constructor(t,e){this.node=t,this.offset=e,this.pos=-1}},Ln=class extends X{constructor(t){super(),this.view=t,this.compositionDeco=J.none,this.decorations=[],this.dynamicDecorationMap=[],this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(t.contentDOM),this.children=[new Tt],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ae(0,0,0,t.state.doc.length)],0)}get length(){return this.view.state.doc.length}update(t){let e=t.changedRanges;this.minWidth>0&&e.length&&(e.every(({fromA:o,toA:l})=>lthis.minWidthTo)?(this.minWidthFrom=t.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=t.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.view.inputState.composing<0?this.compositionDeco=J.none:(t.transactions.length||this.dirty)&&(this.compositionDeco=cf(this.view,t.changes)),(I.ie||I.chrome)&&!this.compositionDeco.size&&t&&t.state.doc.lines!=t.startState.doc.lines&&(this.forceSelection=!0);let i=this.decorations,r=this.updateDeco(),s=uf(i,r,t.changes);return e=ae.extendWithRanges(e,s),this.dirty==0&&e.length==0?!1:(this.updateInner(e,t.startState.doc.length),t.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(t,e){this.view.viewState.mustMeasureContent=!0,this.updateChildren(t,e);let{observer:i}=this.view;i.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let s=I.chrome||I.ios?{node:i.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,s),this.dirty=0,s&&(s.written||i.selectionRange.focusNode!=s.node)&&(this.forceSelection=!0),this.dom.style.height=""});let r=[];if(this.view.viewport.from||this.view.viewport.to=0?t[r]:null;if(!s)break;let{fromA:o,toA:l,fromB:a,toB:h}=s,{content:c,breakAtStart:f,openStart:u,openEnd:d}=Jr.build(this.view.state.doc,a,h,this.decorations,this.dynamicDecorationMap),{i:p,off:b}=i.findPos(l,1),{i:y,off:v}=i.findPos(o,-1);Ca(this,y,v,p,b,c,f,u,d)}}updateSelection(t=!1,e=!1){(t||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let i=this.view.root.activeElement,r=i==this.dom,s=!r&&kn(this.dom,this.view.observer.selectionRange)&&!(i&&this.dom.contains(i));if(!(r||e||s))return;let o=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,a=this.domAtPos(l.anchor),h=l.empty?a:this.domAtPos(l.head);if(I.gecko&&l.empty&&!this.compositionDeco.size&&hf(a)){let f=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(f,a.node.childNodes[a.offset]||null)),a=h=new dt(f,0),o=!0}let c=this.view.observer.selectionRange;(o||!c.focusNode||!Tn(a.node,a.offset,c.anchorNode,c.anchorOffset)||!Tn(h.node,h.offset,c.focusNode,c.focusOffset))&&(this.view.observer.ignore(()=>{I.android&&I.chrome&&this.dom.contains(c.focusNode)&&df(c.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let f=An(this.view.root);if(f)if(l.empty){if(I.gecko){let u=ff(a.node,a.offset);if(u&&u!=3){let d=Xa(a.node,a.offset,u==1?1:-1);d&&(a=new dt(d,u==1?0:d.nodeValue.length))}}f.collapse(a.node,a.offset),l.bidiLevel!=null&&c.cursorBidiLevel!=null&&(c.cursorBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(a.node,a.offset);try{f.extend(h.node,h.offset)}catch(u){}}else{let u=document.createRange();l.anchor>l.head&&([a,h]=[h,a]),u.setEnd(h.node,h.offset),u.setStart(a.node,a.offset),f.removeAllRanges(),f.addRange(u)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),i&&i.focus())}),this.view.observer.setSelectionRange(a,h)),this.impreciseAnchor=a.precise?null:new dt(c.anchorNode,c.anchorOffset),this.impreciseHead=h.precise?null:new dt(c.focusNode,c.focusOffset)}enforceCursorAssoc(){if(this.compositionDeco.size)return;let{view:t}=this,e=t.state.selection.main,i=An(t.root),{anchorNode:r,anchorOffset:s}=t.observer.selectionRange;if(!i||!e.empty||!e.assoc||!i.modify)return;let o=Tt.find(this,e.head);if(!o)return;let l=o.posAtStart;if(e.head==l||e.head==l+o.length)return;let a=this.coordsAt(e.head,-1),h=this.coordsAt(e.head,1);if(!a||!h||a.bottom>h.top)return;let c=this.domAtPos(e.head+e.assoc);i.collapse(c.node,c.offset),i.modify("move",e.assoc<0?"forward":"backward","lineboundary"),t.observer.readSelectionRange();let f=t.observer.selectionRange;t.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=e.from&&i.collapse(r,s)}nearest(t){for(let e=t;e;){let i=X.get(e);if(i&&i.rootView==this)return i;e=e.parentNode}return null}posFromDOM(t,e){let i=this.nearest(t);if(!i)throw new RangeError("Trying to find position for a DOM position outside of the document");return i.localPosFromDOM(t,e)+i.posAtStart}domAtPos(t){let{i:e,off:i}=this.childCursor().findPos(t,-1);for(;eo||t==o&&s.type!=it.WidgetBefore&&s.type!=it.WidgetAfter&&(!r||e==2||this.children[r-1].breakAfter||this.children[r-1].type==it.WidgetBefore&&e>-2))return s.coordsAt(t-o,e);i=o}}measureVisibleLineHeights(t){let e=[],{from:i,to:r}=t,s=this.view.contentDOM.clientWidth,o=s>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==mt.LTR;for(let h=0,c=0;cr)break;if(h>=i){let d=f.dom.getBoundingClientRect();if(e.push(d.height),o){let p=f.dom.lastChild,b=p?Di(p):[];if(b.length){let y=b[b.length-1],v=a?y.right-d.left:d.right-y.left;v>l&&(l=v,this.minWidth=s,this.minWidthFrom=h,this.minWidthTo=u)}}}h=u+f.breakAfter}return e}textDirectionAt(t){let{i:e}=this.childPos(t,1);return getComputedStyle(this.children[e].dom).direction=="rtl"?mt.RTL:mt.LTR}measureTextSize(){for(let s of this.children)if(s instanceof Tt){let o=s.measureTextSize();if(o)return o}let t=document.createElement("div"),e,i,r;return t.className="cm-line",t.style.width="99999px",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(t);let s=Di(t.firstChild)[0];e=t.getBoundingClientRect().height,i=s?s.width/27:7,r=s?s.height:e,t.remove()}),{lineHeight:e,charWidth:i,textHeight:r}}childCursor(t=this.length){let e=this.children.length;return e&&(t-=this.children[--e].length),new En(this.children,t,e)}computeBlockGapDeco(){let t=[],e=this.view.viewState;for(let i=0,r=0;;r++){let s=r==e.viewports.length?null:e.viewports[r],o=s?s.from-1:this.length;if(o>i){let l=e.lineBlockAt(o).bottom-e.lineBlockAt(i).top;t.push(J.replace({widget:new Bn(l),block:!0,inclusive:!0,isBlockGap:!0}).range(i,o))}if(!s)break;i=s.to+1}return J.set(t)}updateDeco(){let t=this.view.state.facet(_i).map((e,i)=>(this.dynamicDecorationMap[i]=typeof e=="function")?e(this.view):e);for(let e=t.length;ee.anchor?-1:1),r;if(!i)return;!e.empty&&(r=this.coordsAt(e.anchor,e.anchor>e.head?-1:1))&&(i={left:Math.min(i.left,r.left),top:Math.min(i.top,r.top),right:Math.max(i.right,r.right),bottom:Math.max(i.bottom,r.bottom)});let s=0,o=0,l=0,a=0;for(let c of this.view.state.facet(Ua).map(f=>f(this.view)))if(c){let{left:f,right:u,top:d,bottom:p}=c;f!=null&&(s=Math.max(s,f)),u!=null&&(o=Math.max(o,u)),d!=null&&(l=Math.max(l,d)),p!=null&&(a=Math.max(a,p))}let h={left:i.left-s,top:i.top-l,right:i.right+o,bottom:i.bottom+a};jc(this.view.scrollDOM,h,e.head0)i=i.childNodes[r-1],r=Oi(i);else break}if(e>=0)for(let i=n,r=t;;){if(i.nodeType==3)return i;if(i.nodeType==1&&r=0)i=i.childNodes[r],r=0;else break}return null}function ff(n,t){return n.nodeType!=1?0:(t&&n.childNodes[t-1].contentEditable=="false"?1:0)|(t0;){let h=Xt(r.text,o,!1);if(i(r.text.slice(h,o))!=a)break;o=h}for(;ln?t.left-n:Math.max(0,n-t.right)}function mf(n,t){return t.top>n?t.top-n:Math.max(0,n-t.bottom)}function $r(n,t){return n.topt.top+1}function ia(n,t){return tn.bottom?{top:n.top,left:n.left,right:n.right,bottom:t}:n}function ns(n,t,e){let i,r,s,o,l=!1,a,h,c,f;for(let p=n.firstChild;p;p=p.nextSibling){let b=Di(p);for(let y=0;yC||o==C&&s>N){i=p,r=v,s=N,o=C;let O=C?e0?y0)}N==0?e>v.bottom&&(!c||c.bottomv.top)&&(h=p,f=v):c&&$r(c,v)?c=na(c,v.bottom):f&&$r(f,v)&&(f=ia(f,v.top))}}if(c&&c.bottom>=e?(i=a,r=c):f&&f.top<=e&&(i=h,r=f),!i)return{node:n,offset:0};let u=Math.max(r.left,Math.min(r.right,t));if(i.nodeType==3)return ra(i,u,e);if(l&&i.contentEditable!="false")return ns(i,u,e);let d=Array.prototype.indexOf.call(n.childNodes,i)+(t>=(r.left+r.right)/2?1:0);return{node:n,offset:d}}function ra(n,t,e){let i=n.nodeValue.length,r=-1,s=1e9,o=0;for(let l=0;le?c.top-e:e-c.bottom)-1;if(c.left-1<=t&&c.right+1>=t&&f=(c.left+c.right)/2,d=u;if((I.chrome||I.gecko)&&Xe(n,l).getBoundingClientRect().left==c.right&&(d=!u),f<=0)return{node:n,offset:l+(d?1:0)};r=l+(d?1:0),s=f}}}return{node:n,offset:r>-1?r:o>0?n.nodeValue.length:0}}function Ya(n,t,e,i=-1){var r,s;let o=n.contentDOM.getBoundingClientRect(),l=o.top+n.viewState.paddingTop,a,{docHeight:h}=n.viewState,{x:c,y:f}=t,u=f-l;if(u<0)return 0;if(u>h)return n.state.doc.length;for(let O=n.defaultLineHeight/2,k=!1;a=n.elementAtHeight(u),a.type!=it.Text;)for(;u=i>0?a.bottom+O:a.top-O,!(u>=0&&u<=h);){if(k)return e?null:0;k=!0,i=-i}f=l+u;let d=a.from;if(dn.viewport.to)return n.viewport.to==n.state.doc.length?n.state.doc.length:e?null:sa(n,o,a,c,f);let p=n.dom.ownerDocument,b=n.root.elementFromPoint?n.root:p,y=b.elementFromPoint(c,f);y&&!n.contentDOM.contains(y)&&(y=null),y||(c=Math.max(o.left+1,Math.min(o.right-1,c)),y=b.elementFromPoint(c,f),y&&!n.contentDOM.contains(y)&&(y=null));let v,N=-1;if(y&&((r=n.docView.nearest(y))===null||r===void 0?void 0:r.isEditable)!=!1){if(p.caretPositionFromPoint){let O=p.caretPositionFromPoint(c,f);O&&({offsetNode:v,offset:N}=O)}else if(p.caretRangeFromPoint){let O=p.caretRangeFromPoint(c,f);O&&({startContainer:v,startOffset:N}=O,(!n.contentDOM.contains(v)||I.safari&&yf(v,N,c)||I.chrome&&bf(v,N,c))&&(v=void 0))}}if(!v||!n.docView.dom.contains(v)){let O=Tt.find(n.docView,d);if(!O)return u>a.top+a.height/2?a.to:a.from;({node:v,offset:N}=ns(O.dom,c,f))}let C=n.docView.nearest(v);if(!C)return null;if(C.isWidget&&((s=C.dom)===null||s===void 0?void 0:s.nodeType)==1){let O=C.dom.getBoundingClientRect();return t.yn.defaultLineHeight*1.5){let l=Math.floor((r-e.top)/n.defaultLineHeight);s+=l*n.viewState.heightOracle.lineLength}let o=n.state.sliceDoc(e.from,e.to);return e.from+Ul(o,s,n.state.tabSize)}function yf(n,t,e){let i;if(n.nodeType!=3||t!=(i=n.nodeValue.length))return!1;for(let r=n.nextSibling;r;r=r.nextSibling)if(r.nodeType!=1||r.nodeName!="BR")return!1;return Xe(n,i-1,i).getBoundingClientRect().left>e}function bf(n,t,e){if(t!=0)return!1;for(let r=n;;){let s=r.parentNode;if(!s||s.nodeType!=1||s.firstChild!=r)return!1;if(s.classList.contains("cm-line"))break;r=s}let i=n.nodeType==1?n.getBoundingClientRect():Xe(n,0,Math.max(n.nodeValue.length,1)).getBoundingClientRect();return e-i.left>5}function wf(n,t,e,i){let r=n.state.doc.lineAt(t.head),s=!i||!n.lineWrapping?null:n.coordsAtPos(t.assoc<0&&t.head>r.from?t.head-1:t.head);if(s){let a=n.dom.getBoundingClientRect(),h=n.textDirectionAt(r.from),c=n.posAtCoords({x:e==(h==mt.LTR)?a.right-1:a.left+1,y:(s.top+s.bottom)/2});if(c!=null)return $.cursor(c,e?-1:1)}let o=Tt.find(n.docView,t.head),l=o?e?o.posAtEnd:o.posAtStart:e?r.to:r.from;return $.cursor(l,e?-1:1)}function oa(n,t,e,i){let r=n.state.doc.lineAt(t.head),s=n.bidiSpans(r),o=n.textDirectionAt(r.from);for(let l=t,a=null;;){let h=af(r,s,o,l,e),c=Ka;if(!h){if(r.number==(e?n.state.doc.lines:1))return l;c=`\n`,r=n.state.doc.line(r.number+(e?1:-1)),s=n.bidiSpans(r),h=$.cursor(e?r.from:r.to)}if(a){if(!a(c))return l}else{if(!i)return h;a=i(c)}l=h}}function vf(n,t,e){let i=n.state.charCategorizer(t),r=i(e);return s=>{let o=i(s);return r==Bt.Space&&(r=o),r==o}}function Sf(n,t,e,i){let r=t.head,s=e?1:-1;if(r==(e?n.state.doc.length:0))return $.cursor(r,t.assoc);let o=t.goalColumn,l,a=n.contentDOM.getBoundingClientRect(),h=n.coordsAtPos(r),c=n.documentTop;if(h)o==null&&(o=h.left-a.left),l=s<0?h.top:h.bottom;else{let d=n.viewState.lineBlockAt(r);o==null&&(o=Math.min(a.right-a.left,n.defaultCharacterWidth*(r-d.from))),l=(s<0?d.top:d.bottom)+c}let f=a.left+o,u=i!=null?i:n.defaultLineHeight>>1;for(let d=0;;d+=10){let p=l+(u+d)*s,b=Ya(n,{x:f,y:p},!1,s);if(pa.bottom||(s<0?br))return $.cursor(b,t.assoc,void 0,o)}}function Hr(n,t,e){let i=n.state.facet(za).map(r=>r(n));for(;;){let r=!1;for(let s of i)s.between(e.from-1,e.from+1,(o,l,a)=>{e.from>o&&e.frome.from?$.cursor(o,1):$.cursor(l,-1),r=!0)});if(!r)return e}}var rs=class{constructor(t){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null;let e=(i,r)=>{this.ignoreDuringComposition(r)||r.type=="keydown"&&this.keydown(t,r)||(this.mustFlushObserver(r)&&t.observer.forceFlush(),this.runCustomHandlers(r.type,t,r)?r.preventDefault():i(t,r))};for(let i in rt){let r=rt[i];t.contentDOM.addEventListener(i,s=>{la(t,s)&&e(r,s)},os[i]),this.registeredEvents.push(i)}t.scrollDOM.addEventListener("mousedown",i=>{if(i.target==t.scrollDOM&&i.clientY>t.contentDOM.getBoundingClientRect().bottom&&(e(rt.mousedown,i),!i.defaultPrevented&&i.button==2)){let r=t.contentDOM.style.minHeight;t.contentDOM.style.minHeight="100%",setTimeout(()=>t.contentDOM.style.minHeight=r,200)}}),I.chrome&&I.chrome_version==102&&t.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?t.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,t.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=t.hasFocus,I.safari&&t.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(t){this.lastSelectionOrigin=t,this.lastSelectionTime=Date.now()}ensureHandlers(t,e){var i;let r;this.customHandlers=[];for(let s of e)if(r=(i=s.update(t).spec)===null||i===void 0?void 0:i.domEventHandlers){this.customHandlers.push({plugin:s.value,handlers:r});for(let o in r)this.registeredEvents.indexOf(o)<0&&o!="scroll"&&(this.registeredEvents.push(o),t.contentDOM.addEventListener(o,l=>{la(t,l)&&this.runCustomHandlers(o,t,l)&&l.preventDefault()}))}}runCustomHandlers(t,e,i){for(let r of this.customHandlers){let s=r.handlers[t];if(s)try{if(s.call(r.plugin,i,e)||i.defaultPrevented)return!0}catch(o){te(e.state,o)}}return!1}runScrollHandlers(t,e){this.lastScrollTop=t.scrollDOM.scrollTop,this.lastScrollLeft=t.scrollDOM.scrollLeft;for(let i of this.customHandlers){let r=i.handlers.scroll;if(r)try{r.call(i.plugin,e,t)}catch(s){te(t.state,s)}}}keydown(t,e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&Date.now()r.keyCode==e.keyCode))&&!e.ctrlKey||xf.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=i||e,setTimeout(()=>this.flushIOSKey(t),250),!0):!1}flushIOSKey(t){let e=this.pendingIOSKey;return e?(this.pendingIOSKey=void 0,Ke(t.contentDOM,e.key,e.keyCode)):!1}ignoreDuringComposition(t){return/^key/.test(t.type)?this.composing>0?!0:I.safari&&!I.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}mustFlushObserver(t){return t.type=="keydown"&&t.keyCode!=229}startMouseSelection(t){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=t}update(t){this.mouseSelection&&this.mouseSelection.update(t),t.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}},Ja=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],xf="dthko",kf=[16,17,18,20,91,92,224,225],bn=6;function wn(n){return Math.max(0,n)*.7+8}var ss=class{constructor(t,e,i,r){this.view=t,this.style=i,this.mustSelect=r,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=e,this.scrollParent=Gc(t.contentDOM);let s=t.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=e.shiftKey,this.multiple=t.state.facet(Q.allowMultipleSelections)&&Cf(t,e),this.dragMove=Af(t,e),this.dragging=Tf(t,e)&&eh(e)==1?null:!1}start(t){this.dragging===!1&&(t.preventDefault(),this.select(t))}move(t){var e;if(t.buttons==0)return this.destroy();if(this.dragging!==!1)return;this.select(this.lastEvent=t);let i=0,r=0,s=((e=this.scrollParent)===null||e===void 0?void 0:e.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight};t.clientX<=s.left+bn?i=-wn(s.left-t.clientX):t.clientX>=s.right-bn&&(i=wn(t.clientX-s.right)),t.clientY<=s.top+bn?r=-wn(s.top-t.clientY):t.clientY>=s.bottom-bn&&(r=wn(t.clientY-s.bottom)),this.setScrollSpeed(i,r)}up(t){this.dragging==null&&this.select(this.lastEvent),this.dragging||t.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let t=this.view.contentDOM.ownerDocument;t.removeEventListener("mousemove",this.move),t.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(t,e){this.scrollSpeed={x:t,y:e},t||e?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}select(t){let e=this.style.get(t,this.extend,this.multiple);(this.mustSelect||!e.eq(this.view.state.selection)||e.main.assoc!=this.view.state.selection.main.assoc)&&this.view.dispatch({selection:e,userEvent:"select.pointer"}),this.mustSelect=!1}update(t){t.docChanged&&this.dragging&&(this.dragging=this.dragging.map(t.changes)),this.style.update(t)&&setTimeout(()=>this.select(this.lastEvent),20)}};function Cf(n,t){let e=n.state.facet(_a);return e.length?e[0](t):I.mac?t.metaKey:t.ctrlKey}function Af(n,t){let e=n.state.facet(La);return e.length?e[0](t):I.mac?!t.altKey:!t.ctrlKey}function Tf(n,t){let{main:e}=n.state.selection;if(e.empty)return!1;let i=An(n.root);if(!i||i.rangeCount==0)return!0;let r=i.getRangeAt(0).getClientRects();for(let s=0;s=t.clientX&&o.top<=t.clientY&&o.bottom>=t.clientY)return!0}return!1}function la(n,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let e=t.target,i;e!=n.contentDOM;e=e.parentNode)if(!e||e.nodeType==11||(i=X.get(e))&&i.ignoreEvent(t))return!1;return!0}var rt=Object.create(null),os=Object.create(null),Za=I.ie&&I.ie_version<15||I.ios&&I.webkit_version<604;function Mf(n){let t=n.dom.parentNode;if(!t)return;let e=t.appendChild(document.createElement("textarea"));e.style.cssText="position: fixed; left: -10000px; top: 10px",e.focus(),setTimeout(()=>{n.focus(),e.remove(),Qa(n,e.value)},50)}function Qa(n,t){let{state:e}=n,i,r=1,s=e.toText(t),o=s.lines==e.selection.ranges.length;if(ls!=null&&e.selection.ranges.every(a=>a.empty)&&ls==s.toString()){let a=-1;i=e.changeByRange(h=>{let c=e.doc.lineAt(h.from);if(c.from==a)return{range:h};a=c.from;let f=e.toText((o?s.line(r++).text:t)+e.lineBreak);return{changes:{from:c.from,insert:f},range:$.cursor(h.from+f.length)}})}else o?i=e.changeByRange(a=>{let h=s.line(r++);return{changes:{from:a.from,to:a.to,insert:h.text},range:$.cursor(a.from+h.length)}}):i=e.replaceSelection(s);n.dispatch(i,{userEvent:"input.paste",scrollIntoView:!0})}rt.keydown=(n,t)=>{n.inputState.setSelectionOrigin("select"),t.keyCode==27?n.inputState.lastEscPress=Date.now():kf.indexOf(t.keyCode)<0&&(n.inputState.lastEscPress=0)};rt.touchstart=(n,t)=>{n.inputState.lastTouchTime=Date.now(),n.inputState.setSelectionOrigin("select.pointer")};rt.touchmove=n=>{n.inputState.setSelectionOrigin("select.pointer")};os.touchstart=os.touchmove={passive:!0};rt.mousedown=(n,t)=>{if(n.observer.flush(),n.inputState.lastTouchTime>Date.now()-2e3)return;let e=null;for(let i of n.state.facet(Ba))if(e=i(n,t),e)break;if(!e&&t.button==0&&(e=Df(n,t)),e){let i=n.root.activeElement!=n.contentDOM;n.inputState.startMouseSelection(new ss(n,t,e,i)),i&&n.observer.ignore(()=>xa(n.contentDOM)),n.inputState.mouseSelection&&n.inputState.mouseSelection.start(t)}};function aa(n,t,e,i){if(i==1)return $.cursor(t,e);if(i==2)return pf(n.state,t,e);{let r=Tt.find(n.docView,t),s=n.state.doc.lineAt(r?r.posAtEnd:t),o=r?r.posAtStart:s.from,l=r?r.posAtEnd:s.to;return ln>=t.top&&n<=t.bottom,ha=(n,t,e)=>th(t,e)&&n>=e.left&&n<=e.right;function Ef(n,t,e,i){let r=Tt.find(n.docView,t);if(!r)return 1;let s=t-r.posAtStart;if(s==0)return 1;if(s==r.length)return-1;let o=r.coordsAt(s,-1);if(o&&ha(e,i,o))return-1;let l=r.coordsAt(s,1);return l&&ha(e,i,l)?1:o&&th(i,o)?-1:1}function ca(n,t){let e=n.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:e,bias:Ef(n,e,t.clientX,t.clientY)}}var Rf=I.ie&&I.ie_version<=11,fa=null,ua=0,da=0;function eh(n){if(!Rf)return n.detail;let t=fa,e=da;return fa=n,da=Date.now(),ua=!t||e>Date.now()-400&&Math.abs(t.clientX-n.clientX)<2&&Math.abs(t.clientY-n.clientY)<2?(ua+1)%3:1}function Df(n,t){let e=ca(n,t),i=eh(t),r=n.state.selection;return{update(s){s.docChanged&&(e.pos=s.changes.mapPos(e.pos),r=r.map(s.changes))},get(s,o,l){let a=ca(n,s),h,c=aa(n,a.pos,a.bias,i);if(e.pos!=a.pos&&!o){let f=aa(n,e.pos,e.bias,i),u=Math.min(f.from,c.from),d=Math.max(f.to,c.to);c=u1&&(h=Of(r,a.pos))?h:l?r.addRange(c):$.create([c])}}}function Of(n,t){for(let e=0;e=t)return $.create(n.ranges.slice(0,e).concat(n.ranges.slice(e+1)),n.mainIndex==e?0:n.mainIndex-(n.mainIndex>e?1:0))}return null}rt.dragstart=(n,t)=>{let{selection:{main:e}}=n.state,{mouseSelection:i}=n.inputState;i&&(i.dragging=e),t.dataTransfer&&(t.dataTransfer.setData("Text",n.state.sliceDoc(e.from,e.to)),t.dataTransfer.effectAllowed="copyMove")};function pa(n,t,e,i){if(!e)return;let r=n.posAtCoords({x:t.clientX,y:t.clientY},!1);t.preventDefault();let{mouseSelection:s}=n.inputState,o=i&&s&&s.dragging&&s.dragMove?{from:s.dragging.from,to:s.dragging.to}:null,l={from:r,insert:e},a=n.state.changes(o?[o,l]:l);n.focus(),n.dispatch({changes:a,selection:{anchor:a.mapPos(r,-1),head:a.mapPos(r,1)},userEvent:o?"move.drop":"input.drop"})}rt.drop=(n,t)=>{if(!t.dataTransfer)return;if(n.state.readOnly)return t.preventDefault();let e=t.dataTransfer.files;if(e&&e.length){t.preventDefault();let i=Array(e.length),r=0,s=()=>{++r==e.length&&pa(n,t,i.filter(o=>o!=null).join(n.state.lineBreak),!1)};for(let o=0;o{/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(l.result)||(i[o]=l.result),s()},l.readAsText(e[o])}}else pa(n,t,t.dataTransfer.getData("Text"),!0)};rt.paste=(n,t)=>{if(n.state.readOnly)return t.preventDefault();n.observer.flush();let e=Za?null:t.clipboardData;e?(Qa(n,e.getData("text/plain")||e.getData("text/uri-text")),t.preventDefault()):Mf(n)};function Nf(n,t){let e=n.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.value=t,i.focus(),i.selectionEnd=t.length,i.selectionStart=0,setTimeout(()=>{i.remove(),n.focus()},50)}function Pf(n){let t=[],e=[],i=!1;for(let r of n.selection.ranges)r.empty||(t.push(n.sliceDoc(r.from,r.to)),e.push(r));if(!t.length){let r=-1;for(let{from:s}of n.selection.ranges){let o=n.doc.lineAt(s);o.number>r&&(t.push(o.text),e.push({from:o.from,to:Math.min(n.doc.length,o.to+1)})),r=o.number}i=!0}return{text:t.join(n.lineBreak),ranges:e,linewise:i}}var ls=null;rt.copy=rt.cut=(n,t)=>{let{text:e,ranges:i,linewise:r}=Pf(n.state);if(!e&&!r)return;ls=r?e:null;let s=Za?null:t.clipboardData;s?(t.preventDefault(),s.clearData(),s.setData("text/plain",e)):Nf(n,e),t.type=="cut"&&!n.state.readOnly&&n.dispatch({changes:i,scrollIntoView:!0,userEvent:"delete.cut"})};var ih=Jt.define();function nh(n,t){let e=[];for(let i of n.facet(Ha)){let r=i(n,t);r&&e.push(r)}return e?n.update({effects:e,annotations:ih.of(!0)}):null}function rh(n){setTimeout(()=>{let t=n.hasFocus;if(t!=n.inputState.notifiedFocused){let e=nh(n.state,t);e?n.dispatch(e):n.update([])}},10)}rt.focus=n=>{n.inputState.lastFocusTime=Date.now(),!n.scrollDOM.scrollTop&&(n.inputState.lastScrollTop||n.inputState.lastScrollLeft)&&(n.scrollDOM.scrollTop=n.inputState.lastScrollTop,n.scrollDOM.scrollLeft=n.inputState.lastScrollLeft),rh(n)};rt.blur=n=>{n.observer.clearSelectionRange(),rh(n)};rt.compositionstart=rt.compositionupdate=n=>{n.inputState.compositionFirstChange==null&&(n.inputState.compositionFirstChange=!0),n.inputState.composing<0&&(n.inputState.composing=0)};rt.compositionend=n=>{n.inputState.composing=-1,n.inputState.compositionEndedAt=Date.now(),n.inputState.compositionPendingKey=!0,n.inputState.compositionPendingChange=n.observer.pendingRecords().length>0,n.inputState.compositionFirstChange=null,I.chrome&&I.android&&n.observer.flushSoon(),setTimeout(()=>{n.inputState.composing<0&&n.docView.compositionDeco.size&&n.update([])},50)};rt.contextmenu=n=>{n.inputState.lastContextMenu=Date.now()};rt.beforeinput=(n,t)=>{var e;let i;if(I.chrome&&I.android&&(i=Ja.find(r=>r.inputType==t.inputType))&&(n.observer.delayAndroidKey(i.key,i.keyCode),i.key=="Backspace"||i.key=="Delete")){let r=((e=window.visualViewport)===null||e===void 0?void 0:e.height)||0;setTimeout(()=>{var s;(((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0)>r+10&&n.hasFocus&&(n.contentDOM.blur(),n.focus())},100)}};var ga=["pre-wrap","normal","pre-line","break-spaces"],as=class{constructor(t){this.lineWrapping=t,this.doc=U.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(t,e){let i=this.doc.lineAt(e).number-this.doc.lineAt(t).number+1;return this.lineWrapping&&(i+=Math.max(0,Math.ceil((e-t-i*this.lineLength*.5)/this.lineLength))),this.lineHeight*i}heightForLine(t){return this.lineWrapping?(1+Math.max(0,Math.ceil((t-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(t){return this.doc=t,this}mustRefreshForWrapping(t){return ga.indexOf(t)>-1!=this.lineWrapping}mustRefreshForHeights(t){let e=!1;for(let i=0;i-1,a=Math.round(e)!=Math.round(this.lineHeight)||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=e,this.charWidth=i,this.textHeight=r,this.lineLength=s,a){this.heightSamples={};for(let h=0;h0}set outdated(t){this.flags=(t?2:0)|this.flags&-3}setHeight(t,e){this.height!=e&&(Math.abs(this.height-e)>Cn&&(t.heightChanged=!0),this.height=e)}replace(t,e,i){return n.of(i)}decomposeLeft(t,e){e.push(this)}decomposeRight(t,e){e.push(this)}applyChanges(t,e,i,r){let s=this,o=i.doc;for(let l=r.length-1;l>=0;l--){let{fromA:a,toA:h,fromB:c,toB:f}=r[l],u=s.lineAt(a,q.ByPosNoHeight,i.setDoc(e),0,0),d=u.to>=h?u:s.lineAt(h,q.ByPosNoHeight,i,0,0);for(f+=d.to-h,h=d.to;l>0&&u.from<=r[l-1].toA;)a=r[l-1].fromA,c=r[l-1].fromB,l--,as*2){let l=t[e-1];l.break?t.splice(--e,1,l.left,null,l.right):t.splice(--e,1,l.left,l.right),i+=1+l.break,r-=l.size}else if(s>r*2){let l=t[i];l.break?t.splice(i,1,l.left,null,l.right):t.splice(i,1,l.left,l.right),i+=2+l.break,s-=l.size}else break;else if(r=s&&o(this.blockAt(0,i,r,s))}updateHeight(t,e=0,i=!1,r){return r&&r.from<=e&&r.more&&this.setHeight(t,r.heights[r.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},Dt=class n extends Fn{constructor(t,e){super(t,e,it.Text),this.collapsed=0,this.widgetHeight=0}replace(t,e,i){let r=i[0];return i.length==1&&(r instanceof n||r instanceof ce&&r.flags&4)&&Math.abs(this.length-r.length)<10?(r instanceof ce?r=new n(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):Mt.of(i)}updateHeight(t,e=0,i=!1,r){return r&&r.from<=e&&r.more?this.setHeight(t,r.heights[r.index++]):(i||this.outdated)&&this.setHeight(t,Math.max(this.widgetHeight,t.heightForLine(this.length-this.collapsed))),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},ce=class n extends Mt{constructor(t){super(t,0)}heightMetrics(t,e){let i=t.doc.lineAt(e).number,r=t.doc.lineAt(e+this.length).number,s=r-i+1,o,l=0;if(t.lineWrapping){let a=Math.min(this.height,t.lineHeight*s);o=a/s,this.length>s+1&&(l=(this.height-a)/(this.length-s-1))}else o=this.height/s;return{firstLine:i,lastLine:r,perLine:o,perChar:l}}blockAt(t,e,i,r){let{firstLine:s,lastLine:o,perLine:l,perChar:a}=this.heightMetrics(e,r);if(e.lineWrapping){let h=r+Math.round(Math.max(0,Math.min(1,(t-i)/this.height))*this.length),c=e.doc.lineAt(h),f=l+c.length*a,u=Math.max(i,t-f/2);return new Qt(c.from,c.length,u,f,it.Text)}else{let h=Math.max(0,Math.min(o-s,Math.floor((t-i)/l))),{from:c,length:f}=e.doc.line(s+h);return new Qt(c,f,i+l*h,l,it.Text)}}lineAt(t,e,i,r,s){if(e==q.ByHeight)return this.blockAt(t,i,r,s);if(e==q.ByPosNoHeight){let{from:d,to:p}=i.doc.lineAt(t);return new Qt(d,p-d,0,0,it.Text)}let{firstLine:o,perLine:l,perChar:a}=this.heightMetrics(i,s),h=i.doc.lineAt(t),c=l+h.length*a,f=h.number-o,u=r+l*f+a*(h.from-s-f);return new Qt(h.from,h.length,Math.max(r,Math.min(u,r+this.height-c)),c,it.Text)}forEachLine(t,e,i,r,s,o){t=Math.max(t,s),e=Math.min(e,s+this.length);let{firstLine:l,perLine:a,perChar:h}=this.heightMetrics(i,s);for(let c=t,f=r;c<=e;){let u=i.doc.lineAt(c);if(c==t){let p=u.number-l;f+=a*p+h*(t-s-p)}let d=a+h*u.length;o(new Qt(u.from,u.length,f,d,it.Text)),f+=d,c=u.to+1}}replace(t,e,i){let r=this.length-e;if(r>0){let s=i[i.length-1];s instanceof n?i[i.length-1]=new n(s.length+r):i.push(null,new n(r-1))}if(t>0){let s=i[0];s instanceof n?i[0]=new n(t+s.length):i.unshift(new n(t-1),null)}return Mt.of(i)}decomposeLeft(t,e){e.push(new n(t-1),null)}decomposeRight(t,e){e.push(null,new n(this.length-t-1))}updateHeight(t,e=0,i=!1,r){let s=e+this.length;if(r&&r.from<=e+this.length&&r.more){let o=[],l=Math.max(e,r.from),a=-1;for(r.from>e&&o.push(new n(r.from-e-1).updateHeight(t,e));l<=s&&r.more;){let c=t.doc.lineAt(l).length;o.length&&o.push(null);let f=r.heights[r.index++];a==-1?a=f:Math.abs(f-a)>=Cn&&(a=-2);let u=new Dt(c,f);u.outdated=!1,o.push(u),l+=c+1}l<=s&&o.push(null,new n(s-l).updateHeight(t,l));let h=Mt.of(o);return(a<0||Math.abs(h.height-this.height)>=Cn||Math.abs(a-this.heightMetrics(t,e).perLine)>=Cn)&&(t.heightChanged=!0),h}else(i||this.outdated)&&(this.setHeight(t,t.heightForGap(e,e+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},cs=class extends Mt{constructor(t,e,i){super(t.length+e+i.length,t.height+i.height,e|(t.outdated||i.outdated?2:0)),this.left=t,this.right=i,this.size=t.size+i.size}get break(){return this.flags&1}blockAt(t,e,i,r){let s=i+this.left.height;return tl))return h;let c=e==q.ByPosNoHeight?q.ByPosNoHeight:q.ByPos;return a?h.join(this.right.lineAt(l,c,i,o,l)):this.left.lineAt(l,c,i,r,s).join(h)}forEachLine(t,e,i,r,s,o){let l=r+this.left.height,a=s+this.left.length+this.break;if(this.break)t=a&&this.right.forEachLine(t,e,i,l,a,o);else{let h=this.lineAt(a,q.ByPos,i,r,s);t=t&&h.from<=e&&o(h),e>h.to&&this.right.forEachLine(h.to+1,e,i,l,a,o)}}replace(t,e,i){let r=this.left.length+this.break;if(ethis.left.length)return this.balanced(this.left,this.right.replace(t-r,e-r,i));let s=[];t>0&&this.decomposeLeft(t,s);let o=s.length;for(let l of i)s.push(l);if(t>0&&ma(s,o-1),e=i&&e.push(null)),t>i&&this.right.decomposeLeft(t-i,e)}decomposeRight(t,e){let i=this.left.length,r=i+this.break;if(t>=r)return this.right.decomposeRight(t-r,e);t2*e.size||e.size>2*t.size?Mt.of(this.break?[t,null,e]:[t,e]):(this.left=t,this.right=e,this.height=t.height+e.height,this.outdated=t.outdated||e.outdated,this.size=t.size+e.size,this.length=t.length+this.break+e.length,this)}updateHeight(t,e=0,i=!1,r){let{left:s,right:o}=this,l=e+s.length+this.break,a=null;return r&&r.from<=e+s.length&&r.more?a=s=s.updateHeight(t,e,i,r):s.updateHeight(t,e,i),r&&r.from<=l+o.length&&r.more?a=o=o.updateHeight(t,l,i,r):o.updateHeight(t,l,i),a?this.balanced(s,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function ma(n,t){let e,i;n[t]==null&&(e=n[t-1])instanceof ce&&(i=n[t+1])instanceof ce&&n.splice(t-1,3,new ce(e.length+1+i.length))}var If=5,fs=class n{constructor(t,e){this.pos=t,this.oracle=e,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=t}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(t,e){if(this.lineStart>-1){let i=Math.min(e,this.lineEnd),r=this.nodes[this.nodes.length-1];r instanceof Dt?r.length+=i-this.pos:(i>this.pos||!this.isCovered)&&this.nodes.push(new Dt(i-this.pos,-1)),this.writtenTo=i,e>i&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=e}point(t,e,i){if(t=If)&&this.addLineDeco(r,s)}else e>t&&this.span(t,e);this.lineEnd>-1&&this.lineEnd-1)return;let{from:t,to:e}=this.oracle.doc.lineAt(this.pos);this.lineStart=t,this.lineEnd=e,this.writtenTot&&this.nodes.push(new Dt(this.pos-t,-1)),this.writtenTo=this.pos}blankContent(t,e){let i=new ce(e-t);return this.oracle.doc.lineAt(t).to==e&&(i.flags|=4),i}ensureLine(){this.enterLine();let t=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(t instanceof Dt)return t;let e=new Dt(0,-1);return this.nodes.push(e),e}addBlock(t){this.enterLine(),t.type==it.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(t),this.writtenTo=this.pos=this.pos+t.length,t.type!=it.WidgetBefore&&(this.covering=t)}addLineDeco(t,e){let i=this.ensureLine();i.length+=e,i.collapsed+=e,i.widgetHeight=Math.max(i.widgetHeight,t),this.writtenTo=this.pos=this.pos+e}finish(t){let e=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(e instanceof Dt)&&!this.isCovered?this.nodes.push(new Dt(0,-1)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&f.overflow!="visible"){let u=c.getBoundingClientRect();s=Math.max(s,u.left),o=Math.min(o,u.right),l=Math.max(l,u.top),a=h==n.parentNode?u.bottom:Math.min(a,u.bottom)}h=f.position=="absolute"||f.position=="fixed"?c.offsetParent:c.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:s-e.left,right:Math.max(s,o)-e.left,top:l-(e.top+t),bottom:Math.max(l,a)-(e.top+t)}}function Bf(n,t){let e=n.getBoundingClientRect();return{left:0,right:e.right-e.left,top:t,bottom:e.bottom-(e.top+t)}}var Ri=class{constructor(t,e,i){this.from=t,this.to=e,this.size=i}static same(t,e){if(t.length!=e.length)return!1;for(let i=0;itypeof i!="function"&&i.class=="cm-lineWrapping");this.heightOracle=new as(e),this.stateDeco=t.facet(_i).filter(i=>typeof i!="function"),this.heightMap=Mt.empty().applyChanges(this.stateDeco,U.empty,this.heightOracle.setDoc(t.doc),[new ae(0,0,0,t.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=J.set(this.lineGaps.map(i=>i.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let t=[this.viewport],{main:e}=this.state.selection;for(let i=0;i<=1;i++){let r=i?e.head:e.anchor;if(!t.some(({from:s,to:o})=>r>=s&&r<=o)){let{from:s,to:o}=this.lineBlockAt(r);t.push(new Ge(s,o))}}this.viewports=t.sort((i,r)=>i.from-r.from),this.scaler=this.heightMap.height<=7e6?ya:new ps(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,t=>{this.viewportLines.push(this.scaler.scale==1?t:Mi(t,this.scaler))})}update(t,e=null){this.state=t.state;let i=this.stateDeco;this.stateDeco=this.state.facet(_i).filter(h=>typeof h!="function");let r=t.changedRanges,s=ae.extendWithRanges(r,_f(i,this.stateDeco,t?t.changes:Ct.empty(this.state.doc.length))),o=this.heightMap.height;this.heightMap=this.heightMap.applyChanges(this.stateDeco,t.startState.doc,this.heightOracle.setDoc(this.state.doc),s),this.heightMap.height!=o&&(t.flags|=2);let l=s.length?this.mapViewport(this.viewport,t.changes):this.viewport;(e&&(e.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,e));let a=!t.changes.empty||t.flags&2||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),a&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,t.changes))),t.flags|=this.computeVisibleRanges(),e&&(this.scrollTarget=e),!this.mustEnforceCursorAssoc&&t.selectionSet&&t.view.lineWrapping&&t.state.selection.main.empty&&t.state.selection.main.assoc&&!t.state.facet(Qc)&&(this.mustEnforceCursorAssoc=!0)}measure(t){let e=t.contentDOM,i=window.getComputedStyle(e),r=this.heightOracle,s=i.whiteSpace;this.defaultTextDirection=i.direction=="rtl"?mt.RTL:mt.LTR;let o=this.heightOracle.mustRefreshForWrapping(s),l=e.getBoundingClientRect(),a=o||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let h=0,c=0,f=parseInt(i.paddingTop)||0,u=parseInt(i.paddingBottom)||0;(this.paddingTop!=f||this.paddingBottom!=u)&&(this.paddingTop=f,this.paddingBottom=u,h|=10),this.editorWidth!=t.scrollDOM.clientWidth&&(r.lineWrapping&&(a=!0),this.editorWidth=t.scrollDOM.clientWidth,h|=8);let d=(this.printing?Bf:Lf)(e,this.paddingTop),p=d.top-this.pixelViewport.top,b=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let y=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(y!=this.inView&&(this.inView=y,y&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let v=l.width;if((this.contentDOMWidth!=v||this.editorHeight!=t.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=t.scrollDOM.clientHeight,h|=8),a){let C=t.docView.measureVisibleLineHeights(this.viewport);if(r.mustRefreshForHeights(C)&&(o=!0),o||r.lineWrapping&&Math.abs(v-this.contentDOMWidth)>r.charWidth){let{lineHeight:O,charWidth:k,textHeight:T}=t.docView.measureTextSize();o=O>0&&r.refresh(s,O,k,T,v/k,C),o&&(t.docView.minWidth=0,h|=8)}p>0&&b>0?c=Math.max(p,b):p<0&&b<0&&(c=Math.min(p,b)),r.heightChanged=!1;for(let O of this.viewports){let k=O.from==this.viewport.from?C:t.docView.measureVisibleLineHeights(O);this.heightMap=(o?Mt.empty().applyChanges(this.stateDeco,U.empty,this.heightOracle,[new ae(0,0,0,t.state.doc.length)]):this.heightMap).updateHeight(r,0,o,new hs(O.from,k))}r.heightChanged&&(h|=2)}let N=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return N&&(this.viewport=this.getViewport(c,this.scrollTarget)),this.updateForViewport(),(h&2||N)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,t)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,t.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(t,e){let i=.5-Math.max(-.5,Math.min(.5,t/1e3/2)),r=this.heightMap,s=this.heightOracle,{visibleTop:o,visibleBottom:l}=this,a=new Ge(r.lineAt(o-i*1e3,q.ByHeight,s,0,0).from,r.lineAt(l+(1-i)*1e3,q.ByHeight,s,0,0).to);if(e){let{head:h}=e.range;if(ha.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=r.lineAt(h,q.ByPos,s,0,0),u;e.y=="center"?u=(f.top+f.bottom)/2-c/2:e.y=="start"||e.y=="nearest"&&h=l+Math.max(10,Math.min(i,250)))&&r>o-2*1e3&&s>1,o=r<<1;if(this.defaultTextDirection!=mt.LTR&&!i)return[];let l=[],a=(h,c,f,u)=>{if(c-hh&&yy.from>=f.from&&y.to<=f.to&&Math.abs(y.from-h)y.fromv));if(!b){if(cy.from<=c&&y.to>=c)){let y=e.moveToLineBoundary($.cursor(c),!1,!0).head;y>h&&(c=y)}b=new Ri(h,c,this.gapSize(f,h,c,u))}l.push(b)};for(let h of this.viewportLines){if(h.lengthh.from&&a(h.from,u,h,c),de.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let e=[];ht.spans(t,this.viewport.from,this.viewport.to,{span(r,s){e.push({from:r,to:s})},point(){}},20);let i=e.length!=this.visibleRanges.length||this.visibleRanges.some((r,s)=>r.from!=e[s].from||r.to!=e[s].to);return this.visibleRanges=e,i?4:0}lineBlockAt(t){return t>=this.viewport.from&&t<=this.viewport.to&&this.viewportLines.find(e=>e.from<=t&&e.to>=t)||Mi(this.heightMap.lineAt(t,q.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(t){return Mi(this.heightMap.lineAt(this.scaler.fromDOM(t),q.ByHeight,this.heightOracle,0,0),this.scaler)}elementAtHeight(t){return Mi(this.heightMap.blockAt(this.scaler.fromDOM(t),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Ge=class{constructor(t,e){this.from=t,this.to=e}};function Ff(n,t,e){let i=[],r=n,s=0;return ht.spans(e,n,t,{span(){},point(o,l){o>r&&(i.push({from:r,to:o}),s+=o-r),r=l}},20),r=1)return t[t.length-1].to;let i=Math.floor(n*e);for(let r=0;;r++){let{from:s,to:o}=t[r],l=o-s;if(i<=l)return s+i;i-=l}}function Sn(n,t){let e=0;for(let{from:i,to:r}of n.ranges){if(t<=r){e+=t-i;break}e+=r-i}return e/n.total}function $f(n,t){for(let e of n)if(t(e))return e}var ya={toDOM(n){return n},fromDOM(n){return n},scale:1},ps=class{constructor(t,e,i){let r=0,s=0,o=0;this.viewports=i.map(({from:l,to:a})=>{let h=e.lineAt(l,q.ByPos,t,0,0).top,c=e.lineAt(a,q.ByPos,t,0,0).bottom;return r+=c-h,{from:l,to:a,top:h,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-r)/(e.height-r);for(let l of this.viewports)l.domTop=o+(l.top-s)*this.scale,o=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(t){for(let e=0,i=0,r=0;;e++){let s=eMi(r,t)):n.type)}var xn=V.define({combine:n=>n.join(" ")}),gs=V.define({combine:n=>n.indexOf(!0)>-1}),ms=Rt.newName(),sh=Rt.newName(),oh=Rt.newName(),lh={"&light":"."+sh,"&dark":"."+oh};function ys(n,t,e){return new Rt(t,{finish(i){return/&/.test(i)?i.replace(/&\\w*/,r=>{if(r=="&")return n;if(!e||!e[r])throw new RangeError(`Unsupported selector: ${r}`);return e[r]}):n+" "+i}})}var Hf=ys("."+ms,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",left:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url(\'data:image/svg+xml,\')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},lh),bs=class{constructor(t,e,i,r){this.typeOver=r,this.bounds=null,this.text="";let{impreciseHead:s,impreciseAnchor:o}=t.docView;if(t.state.readOnly&&e>-1)this.newSel=null;else if(e>-1&&(this.bounds=t.docView.domBoundsAround(e,i,0))){let l=s||o?[]:Wf(t),a=new In(l,t.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=zf(l,this.bounds.from)}else{let l=t.observer.selectionRange,a=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!qe(t.contentDOM,l.focusNode)?t.state.selection.main.head:t.docView.posFromDOM(l.focusNode,l.focusOffset),h=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!qe(t.contentDOM,l.anchorNode)?t.state.selection.main.anchor:t.docView.posFromDOM(l.anchorNode,l.anchorOffset);this.newSel=$.single(h,a)}}};function ah(n,t){let e,{newSel:i}=t,r=n.state.selection.main;if(t.bounds){let{from:s,to:o}=t.bounds,l=r.from,a=null;(n.inputState.lastKeyCode===8&&n.inputState.lastKeyTime>Date.now()-100||I.android&&t.text.length=r.from&&e.to<=r.to&&(e.from!=r.from||e.to!=r.to)&&r.to-r.from-(e.to-e.from)<=4?e={from:r.from,to:r.to,insert:n.state.doc.slice(r.from,e.from).append(e.insert).append(n.state.doc.slice(e.to,r.to))}:(I.mac||I.android)&&e&&e.from==e.to&&e.from==r.head-1&&/^\\. ?$/.test(e.insert.toString())&&n.contentDOM.getAttribute("autocorrect")=="off"?(i&&e.insert.length==2&&(i=$.single(i.main.anchor-1,i.main.head-1)),e={from:r.from,to:r.to,insert:U.of([" "])}):I.chrome&&e&&e.from==e.to&&e.from==r.head&&e.insert.toString()==`\n `&&n.lineWrapping&&(i&&(i=$.single(i.main.anchor-1,i.main.head-1)),e={from:r.from,to:r.to,insert:U.of([" "])}),e){let s=n.state;if(I.ios&&n.inputState.flushIOSKey(n)||I.android&&(e.from==r.from&&e.to==r.to&&e.insert.length==1&&e.insert.lines==2&&Ke(n.contentDOM,"Enter",13)||e.from==r.from-1&&e.to==r.to&&e.insert.length==0&&Ke(n.contentDOM,"Backspace",8)||e.from==r.from&&e.to==r.to+1&&e.insert.length==0&&Ke(n.contentDOM,"Delete",46)))return!0;let o=e.insert.toString();if(n.state.facet($a).some(h=>h(n,e.from,e.to,o)))return!0;n.inputState.composing>=0&&n.inputState.composing++;let l;if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&n.inputState.composing<0){let h=r.frome.to?s.sliceDoc(e.to,r.to):"";l=s.replaceSelection(n.state.toText(h+e.insert.sliceString(0,void 0,n.state.lineBreak)+c))}else{let h=s.changes(e),c=i&&i.main.to<=h.newLength?i.main:void 0;if(s.selection.ranges.length>1&&n.inputState.composing>=0&&e.to<=r.to&&e.to>=r.to-10){let f=n.state.sliceDoc(e.from,e.to),u=qa(n)||n.state.doc.lineAt(r.head),d=r.to-e.to,p=r.to-r.from;l=s.changeByRange(b=>{if(b.from==r.from&&b.to==r.to)return{changes:h,range:c||b.map(h)};let y=b.to-d,v=y-f.length;if(b.to-b.from!=p||n.state.sliceDoc(v,y)!=f||u&&b.to>=u.from&&b.from<=u.to)return{range:b};let N=s.changes({from:v,to:y,insert:e.insert}),C=b.to-r.to;return{changes:N,range:c?$.range(Math.max(0,c.anchor+C),Math.max(0,c.head+C)):b.map(N)}})}else l={changes:h,selection:c&&s.selection.replaceRange(c)}}let a="input.type";return(n.composing||n.inputState.compositionPendingChange&&n.inputState.compositionEndedAt>Date.now()-50)&&(n.inputState.compositionPendingChange=!1,a+=".compose",n.inputState.compositionFirstChange&&(a+=".start",n.inputState.compositionFirstChange=!1)),n.dispatch(l,{scrollIntoView:!0,userEvent:a}),!0}else if(i&&!i.main.eq(r)){let s=!1,o="select";return n.inputState.lastSelectionTime>Date.now()-50&&(n.inputState.lastSelectionOrigin=="select"&&(s=!0),o=n.inputState.lastSelectionOrigin),n.dispatch({selection:i,scrollIntoView:s,userEvent:o}),!0}else return!1}function Vf(n,t,e,i){let r=Math.min(n.length,t.length),s=0;for(;s0&&l>0&&n.charCodeAt(o-1)==t.charCodeAt(l-1);)o--,l--;if(i=="end"){let a=Math.max(0,s-Math.min(o,l));e-=o+a-s}if(o=o?s-e:0;s-=a,l=s+(l-o),o=s}else if(l=l?s-e:0;s-=a,o=s+(o-l),l=s}return{from:s,toA:o,toB:l}}function Wf(n){let t=[];if(n.root.activeElement!=n.contentDOM)return t;let{anchorNode:e,anchorOffset:i,focusNode:r,focusOffset:s}=n.observer.selectionRange;return e&&(t.push(new _n(e,i)),(r!=e||s!=i)&&t.push(new _n(r,s))),t}function zf(n,t){if(n.length==0)return null;let e=n[0].pos,i=n.length==2?n[1].pos:e;return e>-1&&i>-1?$.single(e+t,i+t):null}var Uf={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Vr=I.ie&&I.ie_version<=11,ws=class{constructor(t){this.view=t,this.active=!1,this.selectionRange=new Wr,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=t.contentDOM,this.observer=new MutationObserver(e=>{for(let i of e)this.queue.push(i);(I.ie&&I.ie_version<=11||I.ios&&t.composing)&&e.some(i=>i.type=="childList"&&i.removedNodes.length||i.type=="characterData"&&i.oldValue.length>i.target.nodeValue.length)?this.flushSoon():this.flush()}),Vr&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var e;((e=this.view.docView)===null||e===void 0?void 0:e.lastUpdate)this.view.requestMeasure()),this.resizeContent.observe(t.contentDOM)),this.addWindowListeners(this.win=t.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(e=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(t){this.view.inputState.runScrollHandlers(this.view,t),this.intersecting&&this.view.measure()}onScroll(t){this.intersecting&&this.flush(!1),this.onScrollChanged(t)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(t){if(this.gapIntersection&&(t.length!=this.gaps.length||this.gaps.some((e,i)=>e!=t[i]))){this.gapIntersection.disconnect();for(let e of t)this.gapIntersection.observe(e);this.gaps=t}}onSelectionChange(t){let e=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:i}=this,r=this.selectionRange;if(i.state.facet(Wn)?i.root.activeElement!=this.dom:!kn(i.dom,r))return;let s=r.anchorNode&&i.docView.nearest(r.anchorNode);if(s&&s.ignoreEvent(t)){e||(this.selectionChanged=!1);return}(I.ie&&I.ie_version<=11||I.android&&I.chrome)&&!i.state.selection.main.empty&&r.focusNode&&Tn(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:t}=this,e=I.safari&&t.root.nodeType==11&&zc(this.dom.ownerDocument)==this.dom&&jf(this.view)||An(t.root);if(!e||this.selectionRange.eq(e))return!1;let i=kn(this.dom,e);return i&&!this.selectionChanged&&t.inputState.lastFocusTime>Date.now()-200&&t.inputState.lastTouchTime{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),!this.flush()&&s.force&&Ke(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(r)}(!this.delayedAndroidKey||t=="Enter")&&(this.delayedAndroidKey={key:t,keyCode:e,force:this.lastChange{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let t of this.observer.takeRecords())this.queue.push(t);return this.queue}processRecords(){let t=this.pendingRecords();t.length&&(this.queue=[]);let e=-1,i=-1,r=!1;for(let s of t){let o=this.readMutation(s);o&&(o.typeOver&&(r=!0),e==-1?{from:e,to:i}=o:(e=Math.min(o.from,e),i=Math.max(o.to,i)))}return{from:e,to:i,typeOver:r}}readChange(){let{from:t,to:e,typeOver:i}=this.processRecords(),r=this.selectionChanged&&kn(this.dom,this.selectionRange);return t<0&&!r?null:(t>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new bs(this.view,t,e,i))}flush(t=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;t&&this.readSelectionRange();let e=this.readChange();if(!e)return!1;let i=this.view.state,r=ah(this.view,e);return this.view.state==i&&this.view.update([]),r}readMutation(t){let e=this.view.docView.nearest(t.target);if(!e||e.ignoreMutation(t))return null;if(e.markDirty(t.type=="attributes"),t.type=="attributes"&&(e.dirty|=4),t.type=="childList"){let i=ba(e,t.previousSibling||t.target.previousSibling,-1),r=ba(e,t.nextSibling||t.target.nextSibling,1);return{from:i?e.posAfter(i):e.posAtStart,to:r?e.posBefore(r):e.posAtEnd,typeOver:!1}}else return t.type=="characterData"?{from:e.posAtStart,to:e.posAtEnd,typeOver:t.target.nodeValue==t.oldValue}:null}setWindow(t){t!=this.win&&(this.removeWindowListeners(this.win),this.win=t,this.addWindowListeners(this.win))}addWindowListeners(t){t.addEventListener("resize",this.onResize),t.addEventListener("beforeprint",this.onPrint),t.addEventListener("scroll",this.onScroll),t.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(t){t.removeEventListener("scroll",this.onScroll),t.removeEventListener("resize",this.onResize),t.removeEventListener("beforeprint",this.onPrint),t.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var t,e,i,r;this.stop(),(t=this.intersection)===null||t===void 0||t.disconnect(),(e=this.gapIntersection)===null||e===void 0||e.disconnect(),(i=this.resizeScroll)===null||i===void 0||i.disconnect(),(r=this.resizeContent)===null||r===void 0||r.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}};function ba(n,t,e){for(;t;){let i=X.get(t);if(i&&i.parent==n)return i;let r=t.parentNode;t=r!=n.dom?r:e>0?t.nextSibling:t.previousSibling}return null}function jf(n){let t=null;function e(a){a.preventDefault(),a.stopImmediatePropagation(),t=a.getTargetRanges()[0]}if(n.contentDOM.addEventListener("beforeinput",e,!0),n.dom.ownerDocument.execCommand("indent"),n.contentDOM.removeEventListener("beforeinput",e,!0),!t)return null;let i=t.startContainer,r=t.startOffset,s=t.endContainer,o=t.endOffset,l=n.docView.domAtPos(n.state.selection.main.anchor);return Tn(l.node,l.offset,s,o)&&([i,r,s,o]=[s,o,i,r]),{anchorNode:i,anchorOffset:r,focusNode:s,focusOffset:o}}var z=class n{constructor(t={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=t.dispatch||(e=>this.update([e])),this.dispatch=this.dispatch.bind(this),this._root=t.root||Kc(t.parent)||document,this.viewState=new $n(t.state||Q.create(t)),this.plugins=this.state.facet(Ai).map(e=>new Ei(e));for(let e of this.plugins)e.update(this);this.observer=new ws(this),this.inputState=new rs(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new Ln(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),t.parent&&t.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...t){this._dispatch(t.length==1&&t[0]instanceof St?t[0]:this.state.update(...t))}update(t){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let e=!1,i=!1,r,s=this.state;for(let u of t){if(u.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn\'t start from the previous state.");s=u.state}if(this.destroyed){this.viewState.state=s;return}let o=this.hasFocus,l=0,a=null;t.some(u=>u.annotation(ih))?(this.inputState.notifiedFocused=o,l=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,a=nh(s,o),a||(l=1));let h=this.observer.delayedAndroidKey,c=null;if(h?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(c=null)):this.observer.clear(),s.facet(Q.phrases)!=this.state.facet(Q.phrases))return this.setState(s);r=Pn.create(this,s,t),r.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let u of t){if(f&&(f=f.map(u.changes)),u.scrollIntoView){let{main:d}=u.state.selection;f=new Nn(d.empty?d:$.cursor(d.head,d.head>d.anchor?-1:1))}for(let d of u.effects)d.is(ta)&&(f=d.value)}this.viewState.update(r,f),this.bidiCache=Hn.update(this.bidiCache,r.changes),r.empty||(this.updatePlugins(r),this.inputState.update(r)),e=this.docView.update(r),this.state.facet(Ti)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(t),this.docView.updateSelection(e,t.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(r.startState.facet(xn)!=r.state.facet(xn)&&(this.viewState.mustMeasureContent=!0),(e||i||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!r.empty)for(let u of this.state.facet(Zr))u(r);(a||c)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),c&&!ah(this,c)&&h.force&&Ke(this.contentDOM,h.key,h.keyCode)})}setState(t){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=t;return}this.updateState=2;let e=this.hasFocus;try{for(let i of this.plugins)i.destroy(this);this.viewState=new $n(t),this.plugins=t.facet(Ai).map(i=>new Ei(i)),this.pluginMap.clear();for(let i of this.plugins)i.update(this);this.docView=new Ln(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}e&&this.focus(),this.requestMeasure()}updatePlugins(t){let e=t.startState.facet(Ai),i=t.state.facet(Ai);if(e!=i){let r=[];for(let s of i){let o=e.indexOf(s);if(o<0)r.push(new Ei(s));else{let l=this.plugins[o];l.mustUpdate=t,r.push(l)}}for(let s of this.plugins)s.mustUpdate!=t&&s.destroy(this);this.plugins=r,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let r of this.plugins)r.mustUpdate=t;for(let r=0;r-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,t&&this.observer.forceFlush();let e=null,{scrollHeight:i,scrollTop:r,clientHeight:s}=this.scrollDOM,o=r>i-s-4?i:r;try{for(let l=0;;l++){this.updateState=1;let a=this.viewport,h=this.viewState.lineBlockAtHeight(o),c=this.viewState.measure(this);if(!c&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let f=[];c&4||([this.measureRequests,f]=[f,this.measureRequests]);let u=f.map(y=>{try{return y.read(this)}catch(v){return te(this.state,v),wa}}),d=Pn.create(this,this.state,[]),p=!1,b=!1;d.flags|=c,e?e.flags|=c:e=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),p=this.docView.update(d));for(let y=0;y1||y<-1)&&(this.scrollDOM.scrollTop+=y,b=!0)}if(p&&this.docView.updateSelection(!0),this.viewport.from==a.from&&this.viewport.to==a.to&&!b&&this.measureRequests.length==0)break}}finally{this.updateState=0,this.measureScheduled=-1}if(e&&!e.empty)for(let l of this.state.facet(Zr))l(e)}get themeClasses(){return ms+" "+(this.state.facet(gs)?oh:sh)+" "+this.state.facet(xn)}updateAttrs(){let t=va(this,Wa,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),e={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Wn)?"true":"false",class:"cm-content",style:`${I.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(e["aria-readonly"]="true"),va(this,ks,e);let i=this.observer.ignore(()=>{let r=Xr(this.contentDOM,this.contentAttrs,e),s=Xr(this.dom,this.editorAttrs,t);return r||s});return this.editorAttrs=t,this.contentAttrs=e,i}showAnnouncements(t){let e=!0;for(let i of t)for(let r of i.effects)if(r.is(n.announce)){e&&(this.announceDOM.textContent=""),e=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=r.value}}mountStyles(){this.styleModules=this.state.facet(Ti),Rt.mount(this.root,this.styleModules.concat(Hf).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn\'t allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(t){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),t){if(this.measureRequests.indexOf(t)>-1)return;if(t.key!=null){for(let e=0;ei.spec==t)||null),e&&e.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(t){return this.readMeasured(),this.viewState.elementAtHeight(t)}lineBlockAtHeight(t){return this.readMeasured(),this.viewState.lineBlockAtHeight(t)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(t){return this.viewState.lineBlockAt(t)}get contentHeight(){return this.viewState.contentHeight}moveByChar(t,e,i){return Hr(this,t,oa(this,t,e,i))}moveByGroup(t,e){return Hr(this,t,oa(this,t,e,i=>vf(this,t.head,i)))}moveToLineBoundary(t,e,i=!0){return wf(this,t,e,i)}moveVertically(t,e,i){return Hr(this,t,Sf(this,t,e,i))}domAtPos(t){return this.docView.domAtPos(t)}posAtDOM(t,e=0){return this.docView.posFromDOM(t,e)}posAtCoords(t,e=!0){return this.readMeasured(),Ya(this,t,e)}coordsAtPos(t,e=1){this.readMeasured();let i=this.docView.coordsAt(t,e);if(!i||i.left==i.right)return i;let r=this.state.doc.lineAt(t),s=this.bidiSpans(r),o=s[he.find(s,t-r.from,-1,e)];return vs(i,o.dir==mt.LTR==e>0)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(t){return!this.state.facet(Va)||tthis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(t))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(t){if(t.length>Gf)return Ga(t.length);let e=this.textDirectionAt(t.from);for(let r of this.bidiCache)if(r.from==t.from&&r.dir==e)return r.order;let i=lf(t.text,e);return this.bidiCache.push(new Hn(t.from,t.to,e,i)),i}get hasFocus(){var t;return(this.dom.ownerDocument.hasFocus()||I.safari&&((t=this.inputState)===null||t===void 0?void 0:t.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{xa(this.contentDOM),this.docView.updateSelection()})}setRoot(t){this._root!=t&&(this._root=t,this.observer.setWindow((t.nodeType==9?t:t.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let t of this.plugins)t.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(t,e={}){return ta.of(new Nn(typeof t=="number"?$.cursor(t):t,e.y,e.x,e.yMargin,e.xMargin))}static domEventHandlers(t){return Je.define(()=>({}),{eventHandlers:t})}static theme(t,e){let i=Rt.newName(),r=[xn.of(i),Ti.of(ys(`.${i}`,t))];return e&&e.dark&&r.push(gs.of(!0)),r}static baseTheme(t){return pn.lowest(Ti.of(ys("."+ms,t,lh)))}static findFromDOM(t){var e;let i=t.querySelector(".cm-content"),r=i&&X.get(i)||X.get(t);return((e=r==null?void 0:r.rootView)===null||e===void 0?void 0:e.view)||null}};z.styleModule=Ti;z.inputHandler=$a;z.focusChangeEffect=Ha;z.perLineTextDirection=Va;z.exceptionSink=Fa;z.updateListener=Zr;z.editable=Wn;z.mouseSelectionStyle=Ba;z.dragMovesSelection=La;z.clickAddsSelectionRange=_a;z.decorations=_i;z.atomicRanges=za;z.scrollMargins=Ua;z.darkTheme=gs;z.contentAttributes=ks;z.editorAttributes=Wa;z.lineWrapping=z.contentAttributes.of({class:"cm-lineWrapping"});z.announce=tt.define();var Gf=4096,wa={},Hn=class n{constructor(t,e,i,r){this.from=t,this.to=e,this.dir=i,this.order=r}static update(t,e){if(e.empty)return t;let i=[],r=t.length?t[t.length-1].dir:mt.LTR;for(let s=Math.max(0,t.length-10);s=0;r--){let s=i[r],o=typeof s=="function"?s(n):s;o&&qr(o,e)}return e}var wm=I.mac?"mac":I.windows?"win":I.linux?"linux":"key";var Kf=!I.ios;var qf={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};Kf&&(qf[".cm-line"].caretColor="transparent !important");var vm=/x/.unicode!=null?"gu":"g";var Sm=z.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"\'\'",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}});var ie=class extends Zt{compare(t){return this==t||this.constructor==t.constructor&&this.eq(t)}eq(t){return!1}destroy(t){}};ie.prototype.elementClass="";ie.prototype.toDOM=void 0;ie.prototype.mapMode=vt.TrackBefore;ie.prototype.startSide=ie.prototype.endSide=-1;ie.prototype.point=!0;var Tu=ko(hh());var Xf=0,Li=class{constructor(t,e){this.from=t,this.to=e}},j=class{constructor(t={}){this.id=Xf++,this.perNode=!!t.perNode,this.deserialize=t.deserialize||(()=>{throw new Error("This node type doesn\'t define a deserialize function")})}add(t){if(this.perNode)throw new RangeError("Can\'t add per-node props to node types");return typeof t!="function"&&(t=Et.match(t)),e=>{let i=t(e);return i===void 0?null:[this,i]}}};j.closedBy=new j({deserialize:n=>n.split(" ")});j.openedBy=new j({deserialize:n=>n.split(" ")});j.group=new j({deserialize:n=>n.split(" ")});j.isolate=new j({deserialize:n=>{if(n&&n!="rtl"&&n!="ltr"&&n!="auto")throw new RangeError("Invalid value for isolate: "+n);return n||"auto"}});j.contextHash=new j({perNode:!0});j.lookAhead=new j({perNode:!0});j.mounted=new j({perNode:!0});var Ze=class{constructor(t,e,i){this.tree=t,this.overlay=e,this.parser=i}static get(t){return t&&t.props&&t.props[j.mounted.id]}},Yf=Object.create(null),Et=class n{constructor(t,e,i,r=0){this.name=t,this.props=e,this.id=i,this.flags=r}static define(t){let e=t.props&&t.props.length?Object.create(null):Yf,i=(t.top?1:0)|(t.skipped?2:0)|(t.error?4:0)|(t.name==null?8:0),r=new n(t.name||"",e,t.id,i);if(t.props){for(let s of t.props)if(Array.isArray(s)||(s=s(r)),s){if(s[0].perNode)throw new RangeError("Can\'t store a per-node prop on a node type");e[s[0].id]=s[1]}}return r}prop(t){return this.props[t.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(t){if(typeof t=="string"){if(this.name==t)return!0;let e=this.prop(j.group);return e?e.indexOf(t)>-1:!1}return this.id==t}static match(t){let e=Object.create(null);for(let i in t)for(let r of i.split(" "))e[r]=t[i];return i=>{for(let r=i.prop(j.group),s=-1;s<(r?r.length:0);s++){let o=e[s<0?i.name:r[s]];if(o)return o}}}};Et.none=new Et("",Object.create(null),0,8);var zn=new WeakMap,ch=new WeakMap,ct;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(ct||(ct={}));var pt=class n{constructor(t,e,i,r,s){if(this.type=t,this.children=e,this.positions=i,this.length=r,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,l]of s)this.props[typeof o=="number"?o:o.id]=l}}toString(){let t=Ze.get(this);if(t&&!t.overlay)return t.tree.toString();let e="";for(let i of this.children){let r=i.toString();r&&(e&&(e+=","),e+=r)}return this.type.name?(/\\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(e.length?"("+e+")":""):e}cursor(t=0){return new $i(this.topNode,t)}cursorAt(t,e=0,i=0){let r=zn.get(this)||this.topNode,s=new $i(r);return s.moveTo(t,e),zn.set(this,s._tree),s}get topNode(){return new $t(this,0,0,null)}resolve(t,e=0){let i=Bi(zn.get(this)||this.topNode,t,e,!1);return zn.set(this,i),i}resolveInner(t,e=0){let i=Bi(ch.get(this)||this.topNode,t,e,!0);return ch.set(this,i),i}resolveStack(t,e=0){return Jf(this,t,e)}iterate(t){let{enter:e,leave:i,from:r=0,to:s=this.length}=t,o=t.mode||0,l=(o&ct.IncludeAnonymous)>0;for(let a=this.cursor(o|ct.IncludeAnonymous);;){let h=!1;if(a.from<=s&&a.to>=r&&(!l&&a.type.isAnonymous||e(a)!==!1)){if(a.firstChild())continue;h=!0}for(;h&&i&&(l||!a.type.isAnonymous)&&i(a),!a.nextSibling();){if(!a.parent())return;h=!0}}}prop(t){return t.perNode?this.props?this.props[t.id]:void 0:this.type.prop(t)}get propValues(){let t=[];if(this.props)for(let e in this.props)t.push([+e,this.props[e]]);return t}balance(t={}){return this.children.length<=8?this:Ns(Et.none,this.children,this.positions,0,this.children.length,0,this.length,(e,i,r)=>new n(this.type,e,i,r,this.propValues),t.makeTree||((e,i,r)=>new n(Et.none,e,i,r)))}static build(t){return Zf(t)}};pt.empty=new pt(Et.none,[],[],0);var Ts=class n{constructor(t,e){this.buffer=t,this.index=e}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new n(this.buffer,this.index)}},fe=class n{constructor(t,e,i){this.buffer=t,this.length=e,this.set=i}get type(){return Et.none}toString(){let t=[];for(let e=0;e0));a=o[a+3]);return l}slice(t,e,i){let r=this.buffer,s=new Uint16Array(e-t),o=0;for(let l=t,a=0;l=t&&et;case 1:return e<=t&&i>t;case 2:return i>t;case 4:return!0}}function Bi(n,t,e,i){for(var r;n.from==n.to||(e<1?n.from>=t:n.from>t)||(e>-1?n.to<=t:n.to0?l.length:-1;t!=h;t+=e){let c=l[t],f=a[t]+o.from;if(dh(r,i,f,f+c.length)){if(c instanceof fe){if(s&ct.ExcludeBuffers)continue;let u=c.findChild(0,c.buffer.length,e,i-f,r);if(u>-1)return new Fi(new Es(o,c,t,f),null,u)}else if(s&ct.IncludeAnonymous||!c.type.isAnonymous||Os(c)){let u;if(!(s&ct.IgnoreMounts)&&(u=Ze.get(c))&&!u.overlay)return new n(u.tree,f,t,o);let d=new n(c,f,t,o);return s&ct.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(e<0?c.children.length-1:0,e,i,r)}}}if(s&ct.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?t=o.index+e:t=e<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(t){return this.nextChild(0,1,t,2)}childBefore(t){return this.nextChild(this._tree.children.length-1,-1,t,-2)}enter(t,e,i=0){let r;if(!(i&ct.IgnoreOverlays)&&(r=Ze.get(this._tree))&&r.overlay){let s=t-this.from;for(let{from:o,to:l}of r.overlay)if((e>0?o<=s:o=s:l>s))return new n(r.tree,r.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,t,e,i)}nextSignificantParent(){let t=this;for(;t.type.isAnonymous&&t._parent;)t=t._parent;return t}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}};function fh(n,t,e,i){let r=n.cursor(),s=[];if(!r.firstChild())return s;if(e!=null){for(let o=!1;!o;)if(o=r.type.is(e),!r.nextSibling())return s}for(;;){if(i!=null&&r.type.is(i))return s;if(r.type.is(t)&&s.push(r.node),!r.nextSibling())return i==null?s:[]}}function Ms(n,t,e=t.length-1){for(let i=n.parent;e>=0;i=i.parent){if(!i)return!1;if(!i.type.isAnonymous){if(t[e]&&t[e]!=i.name)return!1;e--}}return!0}var Es=class{constructor(t,e,i,r){this.parent=t,this.buffer=e,this.index=i,this.start=r}},Fi=class n extends jn{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(t,e,i){super(),this.context=t,this._parent=e,this.index=i,this.type=t.buffer.set.types[t.buffer.buffer[i]]}child(t,e,i){let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],t,e-this.context.start,i);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(t){return this.child(1,t,2)}childBefore(t){return this.child(-1,t,-2)}enter(t,e,i=0){if(i&ct.ExcludeBuffers)return null;let{buffer:r}=this.context,s=r.findChild(this.index+4,r.buffer[this.index+3],e>0?1:-1,t-this.context.start,e);return s<0?null:new n(this.context,this,s)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(t){return this._parent?null:this.context.parent.nextChild(this.context.index+t,t,0,4)}get nextSibling(){let{buffer:t}=this.context,e=t.buffer[this.index+3];return e<(this._parent?t.buffer[this._parent.index+3]:t.buffer.length)?new n(this.context,this._parent,e):this.externalSibling(1)}get prevSibling(){let{buffer:t}=this.context,e=this._parent?this._parent.index+4:0;return this.index==e?this.externalSibling(-1):new n(this.context,this._parent,t.findChild(e,this.index,-1,0,4))}get tree(){return null}toTree(){let t=[],e=[],{buffer:i}=this.context,r=this.index+4,s=i.buffer[this.index+3];if(s>r){let o=i.buffer[this.index+1];t.push(i.slice(r,s,o)),e.push(0)}return new pt(this.type,t,e,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}};function ph(n){if(!n.length)return null;let t=0,e=n[0];for(let s=1;se.from||o.to=t){let l=new $t(o.tree,o.overlay[0].from+s.from,-1,s);(r||(r=[i])).push(Bi(l,t,e,!1))}}return r?ph(r):i}var $i=class{get name(){return this.type.name}constructor(t,e=0){if(this.mode=e,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,t instanceof $t)this.yieldNode(t);else{this._tree=t.context.parent,this.buffer=t.context;for(let i=t._parent;i;i=i._parent)this.stack.unshift(i.index);this.bufferNode=t,this.yieldBuf(t.index)}}yieldNode(t){return t?(this._tree=t,this.type=t.type,this.from=t.from,this.to=t.to,!0):!1}yieldBuf(t,e){this.index=t;let{start:i,buffer:r}=this.buffer;return this.type=e||r.set.types[r.buffer[t]],this.from=i+r.buffer[t+1],this.to=i+r.buffer[t+2],!0}yield(t){return t?t instanceof $t?(this.buffer=null,this.yieldNode(t)):(this.buffer=t.context,this.yieldBuf(t.index,t.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(t,e,i){if(!this.buffer)return this.yield(this._tree.nextChild(t<0?this._tree._tree.children.length-1:0,t,e,i,this.mode));let{buffer:r}=this.buffer,s=r.findChild(this.index+4,r.buffer[this.index+3],t,e-this.buffer.start,i);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(t){return this.enterChild(1,t,2)}childBefore(t){return this.enterChild(-1,t,-2)}enter(t,e,i=this.mode){return this.buffer?i&ct.ExcludeBuffers?!1:this.enterChild(1,t,e):this.yield(this._tree.enter(t,e,i))}parent(){if(!this.buffer)return this.yieldNode(this.mode&ct.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let t=this.mode&ct.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(t)}sibling(t){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+t,t,0,4,this.mode)):!1;let{buffer:e}=this.buffer,i=this.stack.length-1;if(t<0){let r=i<0?0:this.stack[i]+4;if(this.index!=r)return this.yieldBuf(e.findChild(r,this.index,-1,0,4))}else{let r=e.buffer[this.index+3];if(r<(i<0?e.buffer.length:e.buffer[this.stack[i]+3]))return this.yieldBuf(r)}return i<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+t,t,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(t){let e,i,{buffer:r}=this;if(r){if(t>0){if(this.index-1)for(let s=e+t,o=t<0?-1:i._tree.children.length;s!=o;s+=t){let l=i._tree.children[s];if(this.mode&ct.IncludeAnonymous||l instanceof fe||!l.type.isAnonymous||Os(l))return!1}return!0}move(t,e){if(e&&this.enterChild(t,0,4))return!0;for(;;){if(this.sibling(t))return!0;if(this.atLastNode(t)||!this.parent())return!1}}next(t=!0){return this.move(1,t)}prev(t=!0){return this.move(-1,t)}moveTo(t,e=0){for(;(this.from==this.to||(e<1?this.from>=t:this.from>t)||(e>-1?this.to<=t:this.to=0;){for(let o=t;o;o=o._parent)if(o.index==r){if(r==this.index)return o;e=o,i=s+1;break t}r=this.stack[--s]}for(let r=i;r=0;s--){if(s<0)return Ms(this.node,t,r);let o=i[e.buffer[this.stack[s]]];if(!o.isAnonymous){if(t[r]&&t[r]!=o.name)return!1;r--}}return!0}};function Os(n){return n.children.some(t=>t instanceof fe||!t.type.isAnonymous||Os(t))}function Zf(n){var t;let{buffer:e,nodeSet:i,maxBufferLength:r=1024,reused:s=[],minRepeatType:o=i.types.length}=n,l=Array.isArray(e)?new Ts(e,e.length):e,a=i.types,h=0,c=0;function f(k,T,x,M,S,_){let{id:w,start:D,end:F,size:P}=l,B=c;for(;P<0;)if(l.next(),P==-1){let st=s[w];x.push(st),M.push(D-k);return}else if(P==-3){h=w;return}else if(P==-4){c=w;return}else throw new RangeError(`Unrecognized record size: ${P}`);let H=a[w],L,nt,W=D-k;if(F-D<=r&&(nt=y(l.pos-T,S))){let st=new Uint16Array(nt.size-nt.skip),gt=l.pos-nt.size,xt=st.length;for(;l.pos>gt;)xt=v(nt.start,st,xt);L=new fe(st,F-nt.start,i),W=nt.start-k}else{let st=l.pos-P;l.next();let gt=[],xt=[],It=w>=o?w:-1,jt=0,me=F;for(;l.pos>st;)It>=0&&l.id==It&&l.size>=0?(l.end<=me-r&&(p(gt,xt,D,jt,l.end,me,It,B),jt=gt.length,me=l.end),l.next()):_>2500?u(D,st,gt,xt):f(D,st,gt,xt,It,_+1);if(It>=0&&jt>0&&jt-1&&jt>0){let si=d(H);L=Ns(H,gt,xt,0,gt.length,0,F-D,si,si)}else L=b(H,gt,xt,F-D,B-F)}x.push(L),M.push(W)}function u(k,T,x,M){let S=[],_=0,w=-1;for(;l.pos>T;){let{id:D,start:F,end:P,size:B}=l;if(B>4)l.next();else{if(w>-1&&F=0;P-=3)D[B++]=S[P],D[B++]=S[P+1]-F,D[B++]=S[P+2]-F,D[B++]=B;x.push(new fe(D,S[2]-F,i)),M.push(F-k)}}function d(k){return(T,x,M)=>{let S=0,_=T.length-1,w,D;if(_>=0&&(w=T[_])instanceof pt){if(!_&&w.type==k&&w.length==M)return w;(D=w.prop(j.lookAhead))&&(S=x[_]+w.length+D)}return b(k,T,x,M,S)}}function p(k,T,x,M,S,_,w,D){let F=[],P=[];for(;k.length>M;)F.push(k.pop()),P.push(T.pop()+x-S);k.push(b(i.types[w],F,P,_-S,D-_)),T.push(S-x)}function b(k,T,x,M,S=0,_){if(h){let w=[j.contextHash,h];_=_?[w].concat(_):[w]}if(S>25){let w=[j.lookAhead,S];_=_?[w].concat(_):[w]}return new pt(k,T,x,M,_)}function y(k,T){let x=l.fork(),M=0,S=0,_=0,w=x.end-r,D={size:0,start:0,skip:0};t:for(let F=x.pos-k;x.pos>F;){let P=x.size;if(x.id==T&&P>=0){D.size=M,D.start=S,D.skip=_,_+=4,M+=4,x.next();continue}let B=x.pos-P;if(P<0||B=o?4:0,L=x.start;for(x.next();x.pos>B;){if(x.size<0)if(x.size==-3)H+=4;else break t;else x.id>=o&&(H+=4);x.next()}S=L,M+=P,_+=H}return(T<0||M==k)&&(D.size=M,D.start=S,D.skip=_),D.size>4?D:void 0}function v(k,T,x){let{id:M,start:S,end:_,size:w}=l;if(l.next(),w>=0&&M4){let F=l.pos-(w-4);for(;l.pos>F;)x=v(k,T,x)}T[--x]=D,T[--x]=_-k,T[--x]=S-k,T[--x]=M}else w==-3?h=M:w==-4&&(c=M);return x}let N=[],C=[];for(;l.pos>0;)f(n.start||0,n.bufferStart||0,N,C,-1,0);let O=(t=n.length)!==null&&t!==void 0?t:N.length?C[0]+N[0].length:0;return new pt(a[n.topID],N.reverse(),C.reverse(),O)}var uh=new WeakMap;function Un(n,t){if(!n.isAnonymous||t instanceof fe||t.type!=n)return 1;let e=uh.get(t);if(e==null){e=1;for(let i of t.children){if(i.type!=n||!(i instanceof pt)){e=1;break}e+=Un(n,i)}uh.set(t,e)}return e}function Ns(n,t,e,i,r,s,o,l,a){let h=0;for(let p=i;p=c)break;T+=x}if(C==O+1){if(T>c){let x=p[O];d(x.children,x.positions,0,x.children.length,b[O]+N);continue}f.push(p[O])}else{let x=b[C-1]+p[C-1].length-k;f.push(Ns(n,p,b,O,C,k,x,null,a))}u.push(k+N-s)}}return d(t,e,i,r,0),(l||a)(f,u,o)}var Re=class n{constructor(t,e,i,r,s=!1,o=!1){this.from=t,this.to=e,this.tree=i,this.offset=r,this.open=(s?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(t,e=[],i=!1){let r=[new n(0,t.length,t,0,!1,i)];for(let s of e)s.to>t.length&&r.push(s);return r}static applyChanges(t,e,i=128){if(!e.length)return t;let r=[],s=1,o=t.length?t[0]:null;for(let l=0,a=0,h=0;;l++){let c=l=i)for(;o&&o.from=u.from||f<=u.to||h){let d=Math.max(u.from,a)-h,p=Math.min(u.to,f)-h;u=d>=p?null:new n(d,p,u.tree,u.offset+h,l>0,!!c)}if(u&&r.push(u),o.to>f)break;o=snew Li(r.from,r.to)):[new Li(0,0)]:[new Li(0,t.length)],this.createParse(t,e||[],i)}parse(t,e,i){let r=this.startParse(t,e,i);for(;;){let s=r.advance();if(s)return s}}},Ds=class{constructor(t){this.string=t}get length(){return this.string.length}chunk(t){return this.string.slice(t)}get lineChunks(){return!1}read(t,e){return this.string.slice(t,e)}};var km=new j({perNode:!0});var Qf=0,zt=class n{constructor(t,e,i){this.set=t,this.base=e,this.modified=i,this.id=Qf++}static define(t){if(t!=null&&t.base)throw new Error("Can not derive from a modified tag");let e=new n([],null,[]);if(e.set.push(e),t)for(let i of t.set)e.set.push(i);return e}static defineModifier(){let t=new Yn;return e=>e.modified.indexOf(t)>-1?e:Yn.get(e.base||e,e.modified.concat(t).sort((i,r)=>i.id-r.id))}},tu=0,Yn=class n{constructor(){this.instances=[],this.id=tu++}static get(t,e){if(!e.length)return t;let i=e[0].instances.find(l=>l.base==t&&eu(e,l.modified));if(i)return i;let r=[],s=new zt(r,t,e);for(let l of e)l.instances.push(s);let o=iu(e);for(let l of t.set)if(!l.modified.length)for(let a of o)r.push(n.get(l,a));return s}};function eu(n,t){return n.length==t.length&&n.every((e,i)=>e==t[i])}function iu(n){let t=[[]];for(let e=0;ei.length-e.length)}function yh(n){let t=Object.create(null);for(let e in n){let i=n[e];Array.isArray(i)||(i=[i]);for(let r of e.split(" "))if(r){let s=[],o=2,l=r;for(let f=0;;){if(l=="..."&&f>0&&f+3==r.length){o=1;break}let u=/^"(?:[^"\\\\]|\\\\.)*?"|[^\\/!]+/.exec(l);if(!u)throw new RangeError("Invalid path: "+r);if(s.push(u[0]=="*"?"":u[0][0]==\'"\'?JSON.parse(u[0]):u[0]),f+=u[0].length,f==r.length)break;let d=r[f++];if(f==r.length&&d=="!"){o=0;break}if(d!="/")throw new RangeError("Invalid path: "+r);l=r.slice(f)}let a=s.length-1,h=s[a];if(!h)throw new RangeError("Invalid path: "+r);let c=new Qe(i,o,a>0?s.slice(0,a):null);t[h]=c.sort(t[h])}}return bh.add(t)}var bh=new j,Qe=class{constructor(t,e,i,r){this.tags=t,this.mode=e,this.context=i,this.next=r}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(t){return!t||t.depth{let o=r;for(let l of s)for(let a of l.set){let h=e[a.id];if(h){o=o?o+" "+h:h;break}}return o},scope:i}}function nu(n,t){let e=null;for(let i of n){let r=i.style(t);r&&(e=e?e+" "+r:r)}return e}function wh(n,t,e,i=0,r=n.length){let s=new Is(i,Array.isArray(t)?t:[t],e);s.highlightRange(n.cursor(),i,r,"",s.highlighters),s.flush(r)}var Is=class{constructor(t,e,i){this.at=t,this.highlighters=e,this.span=i,this.class=""}startSpan(t,e){e!=this.class&&(this.flush(t),t>this.at&&(this.at=t),this.class=e)}flush(t){t>this.at&&this.class&&this.span(this.at,t,this.class)}highlightRange(t,e,i,r,s){let{type:o,from:l,to:a}=t;if(l>=i||a<=e)return;o.isTop&&(s=this.highlighters.filter(d=>!d.scope||d.scope(o)));let h=r,c=ru(t)||Qe.empty,f=nu(s,c.tags);if(f&&(h&&(h+=" "),h+=f,c.mode==1&&(r+=(r?" ":"")+f)),this.startSpan(t.from,h),c.opaque)return;let u=t.tree&&t.tree.prop(j.mounted);if(u&&u.overlay){let d=t.node.enter(u.overlay[0].from+l,1),p=this.highlighters.filter(y=>!y.scope||y.scope(u.tree.type)),b=t.firstChild();for(let y=0,v=l;;y++){let N=y=C||!t.nextSibling())););if(!N||C>i)break;v=N.to+l,v>e&&(this.highlightRange(d.cursor(),Math.max(e,N.from+l),Math.min(i,v),r,p),this.startSpan(v,h))}b&&t.parent()}else if(t.firstChild()){do if(!(t.to<=e)){if(t.from>=i)break;this.highlightRange(t,e,i,r,s),this.startSpan(Math.min(i,t.to),h)}while(t.nextSibling());t.parent()}}};function ru(n){let t=n.type.prop(bh);for(;t&&t.context&&!n.matchContext(t.context);)t=t.next;return t||null}var A=zt.define,Kn=A(),ue=A(),gh=A(ue),mh=A(ue),de=A(),qn=A(de),Ps=A(de),Wt=A(),De=A(Wt),Ht=A(),Vt=A(),_s=A(),Hi=A(_s),Xn=A(),g={comment:Kn,lineComment:A(Kn),blockComment:A(Kn),docComment:A(Kn),name:ue,variableName:A(ue),typeName:gh,tagName:A(gh),propertyName:mh,attributeName:A(mh),className:A(ue),labelName:A(ue),namespace:A(ue),macroName:A(ue),literal:de,string:qn,docString:A(qn),character:A(qn),attributeValue:A(qn),number:Ps,integer:A(Ps),float:A(Ps),bool:A(de),regexp:A(de),escape:A(de),color:A(de),url:A(de),keyword:Ht,self:A(Ht),null:A(Ht),atom:A(Ht),unit:A(Ht),modifier:A(Ht),operatorKeyword:A(Ht),controlKeyword:A(Ht),definitionKeyword:A(Ht),moduleKeyword:A(Ht),operator:Vt,derefOperator:A(Vt),arithmeticOperator:A(Vt),logicOperator:A(Vt),bitwiseOperator:A(Vt),compareOperator:A(Vt),updateOperator:A(Vt),definitionOperator:A(Vt),typeOperator:A(Vt),controlOperator:A(Vt),punctuation:_s,separator:A(_s),bracket:Hi,angleBracket:A(Hi),squareBracket:A(Hi),paren:A(Hi),brace:A(Hi),content:Wt,heading:De,heading1:A(De),heading2:A(De),heading3:A(De),heading4:A(De),heading5:A(De),heading6:A(De),contentSeparator:A(Wt),list:A(Wt),quote:A(Wt),emphasis:A(Wt),strong:A(Wt),link:A(Wt),monospace:A(Wt),strikethrough:A(Wt),inserted:A(),deleted:A(),changed:A(),invalid:A(),meta:Xn,documentMeta:A(Xn),annotation:A(Xn),processingInstruction:A(Xn),definition:zt.defineModifier(),constant:zt.defineModifier(),function:zt.defineModifier(),standard:zt.defineModifier(),local:zt.defineModifier(),special:zt.defineModifier()},Tm=Ls([{tag:g.link,class:"tok-link"},{tag:g.heading,class:"tok-heading"},{tag:g.emphasis,class:"tok-emphasis"},{tag:g.strong,class:"tok-strong"},{tag:g.keyword,class:"tok-keyword"},{tag:g.atom,class:"tok-atom"},{tag:g.bool,class:"tok-bool"},{tag:g.url,class:"tok-url"},{tag:g.labelName,class:"tok-labelName"},{tag:g.inserted,class:"tok-inserted"},{tag:g.deleted,class:"tok-deleted"},{tag:g.literal,class:"tok-literal"},{tag:g.string,class:"tok-string"},{tag:g.number,class:"tok-number"},{tag:[g.regexp,g.escape,g.special(g.string)],class:"tok-string2"},{tag:g.variableName,class:"tok-variableName"},{tag:g.local(g.variableName),class:"tok-variableName tok-local"},{tag:g.definition(g.variableName),class:"tok-variableName tok-definition"},{tag:g.special(g.variableName),class:"tok-variableName2"},{tag:g.definition(g.propertyName),class:"tok-propertyName tok-definition"},{tag:g.typeName,class:"tok-typeName"},{tag:g.namespace,class:"tok-namespace"},{tag:g.className,class:"tok-className"},{tag:g.macroName,class:"tok-macroName"},{tag:g.propertyName,class:"tok-propertyName"},{tag:g.operator,class:"tok-operator"},{tag:g.comment,class:"tok-comment"},{tag:g.meta,class:"tok-meta"},{tag:g.invalid,class:"tok-invalid"},{tag:g.punctuation,class:"tok-punctuation"}]);var Bs,Wi=new j;var su=new j,Ot=class{constructor(t,e,i=[],r=""){this.data=t,this.name=r,Q.prototype.hasOwnProperty("tree")||Object.defineProperty(Q.prototype,"tree",{get(){return zi(this)}}),this.parser=e,this.extension=[ti.of(this),Q.languageData.of((s,o,l)=>{let a=vh(s,o,l),h=a.type.prop(Wi);if(!h)return[];let c=s.facet(h),f=a.type.prop(su);if(f){let u=a.resolve(o-a.from,l);for(let d of f)if(d.test(u,s)){let p=s.facet(d.facet);return d.type=="replace"?p:p.concat(c)}}return c})].concat(i)}isActiveAt(t,e,i=-1){return vh(t,e,i).type.prop(Wi)==this.data}findRegions(t){let e=t.facet(ti);if((e==null?void 0:e.data)==this.data)return[{from:0,to:t.doc.length}];if(!e||!e.allowsNesting)return[];let i=[],r=(s,o)=>{if(s.prop(Wi)==this.data){i.push({from:o,to:o+s.length});return}let l=s.prop(j.mounted);if(l){if(l.tree.prop(Wi)==this.data){if(l.overlay)for(let a of l.overlay)i.push({from:a.from+o,to:a.to+o});else i.push({from:o,to:o+s.length});return}else if(l.overlay){let a=i.length;if(r(l.tree,l.overlay[0].from+o),i.length>a)return}}for(let a=0;a=this.cursorPos?this.doc.sliceString(t,e):this.string.slice(t-i,e-i)}},Vi=null,Ws=class n{constructor(t,e,i=[],r,s,o,l,a){this.parser=t,this.state=e,this.fragments=i,this.tree=r,this.treeLen=s,this.viewport=o,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(t,e,i){return new n(t,e,[],pt.empty,0,i,[],null)}startParse(){return this.parser.startParse(new Vs(this.state.doc),this.fragments)}work(t,e){return e!=null&&e>=this.state.doc.length&&(e=void 0),this.tree!=pt.empty&&this.isDone(e!=null?e:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var i;if(typeof t=="number"){let r=Date.now()+t;t=()=>Date.now()>r}for(this.parse||(this.parse=this.startParse()),e!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&e=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&this.parse.stopAt(t),this.withContext(()=>{for(;!(e=this.parse.advance()););}),this.treeLen=t,this.tree=e,this.fragments=this.withoutTempSkipped(Re.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(t){let e=Vi;Vi=this;try{return t()}finally{Vi=e}}withoutTempSkipped(t){for(let e;e=this.tempSkipped.pop();)t=Sh(t,e.from,e.to);return t}changes(t,e){let{fragments:i,tree:r,treeLen:s,viewport:o,skipped:l}=this;if(this.takeTree(),!t.empty){let a=[];if(t.iterChangedRanges((h,c,f,u)=>a.push({fromA:h,toA:c,fromB:f,toB:u})),i=Re.applyChanges(i,a),r=pt.empty,s=0,o={from:t.mapPos(o.from,-1),to:t.mapPos(o.to,1)},this.skipped.length){l=[];for(let h of this.skipped){let c=t.mapPos(h.from,1),f=t.mapPos(h.to,-1);ct.from&&(this.fragments=Sh(this.fragments,r,s),this.skipped.splice(i--,1))}return this.skipped.length>=e?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(t,e){this.skipped.push({from:t,to:e})}static getSkippingParser(t){return new class extends Gn{createParse(e,i,r){let s=r[0].from,o=r[r.length-1].to;return{parsedPos:s,advance(){let a=Vi;if(a){for(let h of r)a.tempSkipped.push(h);t&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,t]):t)}return this.parsedPos=o,new pt(Et.none,[],[],o-s)},stoppedAt:null,stopAt(){}}}}}isDone(t){t=Math.min(t,this.state.doc.length);let e=this.fragments;return this.treeLen>=t&&e.length&&e[0].from==0&&e[0].to>=t}static get(){return Vi}};function Sh(n,t,e){return Re.applyChanges(n,[{fromA:t,toA:e,fromB:t,toB:e}])}var Ui=class n{constructor(t){this.context=t,this.tree=t.tree}apply(t){if(!t.docChanged&&this.tree==this.context.tree)return this;let e=this.context.changes(t.changes,t.state),i=this.context.treeLen==t.startState.doc.length?void 0:Math.max(t.changes.mapPos(this.context.treeLen),e.viewport.to);return e.work(20,i)||e.takeTree(),new n(e)}static init(t){let e=Math.min(3e3,t.doc.length),i=Ws.create(t.facet(ti).parser,t,{from:0,to:e});return i.work(20,e)||i.takeTree(),new n(i)}};Ot.state=Yt.define({create:Ui.init,update(n,t){for(let e of t.effects)if(e.is(Ot.setState))return e.value;return t.startState.facet(ti)!=t.state.facet(ti)?Ui.init(t.state):n.apply(t)}});var Ch=n=>{let t=setTimeout(()=>n(),500);return()=>clearTimeout(t)};typeof requestIdleCallback!="undefined"&&(Ch=n=>{let t=-1,e=setTimeout(()=>{t=requestIdleCallback(n,{timeout:400})},100);return()=>t<0?clearTimeout(e):cancelIdleCallback(t)});var Fs=typeof navigator!="undefined"&&(!((Bs=navigator.scheduling)===null||Bs===void 0)&&Bs.isInputPending)?()=>navigator.scheduling.isInputPending():null,ou=Je.fromClass(class{constructor(t){this.view=t,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(t){let e=this.view.state.field(Ot.state).context;(e.updateViewport(t.view.viewport)||this.view.viewport.to>e.treeLen)&&this.scheduleWork(),t.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(e)}scheduleWork(){if(this.working)return;let{state:t}=this.view,e=t.field(Ot.state);(e.tree!=e.context.tree||!e.context.isDone(t.doc.length))&&(this.working=Ch(this.work))}work(t){this.working=null;let e=Date.now();if(this.chunkEndr+1e3,a=s.context.work(()=>Fs&&Fs()||Date.now()>o,r+(l?0:1e5));this.chunkBudget-=Date.now()-e,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:Ot.setState.of(new Ui(s.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(t){t.scheduleOn&&(this.workScheduled++,t.scheduleOn.then(()=>this.scheduleWork()).catch(e=>te(this.view.state,e)).then(()=>this.workScheduled--),t.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),ti=V.define({combine(n){return n.length?n[0]:null},enables:n=>[Ot.state,ou,z.contentAttributes.compute([n],t=>{let e=t.facet(n);return e&&e.name?{"data-language":e.name}:{}})]});var pe=class n{constructor(t,e){this.specs=t;let i;function r(l){let a=Rt.newName();return(i||(i=Object.create(null)))["."+a]=l,a}let s=typeof e.all=="string"?e.all:e.all?r(e.all):void 0,o=e.scope;this.scope=o instanceof Ot?l=>l.prop(Wi)==o.data:o?l=>l==o:void 0,this.style=Ls(t.map(l=>({tag:l.tag,class:l.class||r(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=i?new Rt(i):null,this.themeType=e.themeType}static define(t,e){return new n(t,e||{})}},zs=V.define(),Ah=V.define({combine(n){return n.length?[n[0]]:null}});function $s(n){let t=n.facet(zs);return t.length?t:n.facet(Ah)}function Jn(n,t){let e=[lu],i;return n instanceof pe&&(n.module&&e.push(z.styleModule.of(n.module)),i=n.themeType),t!=null&&t.fallback?e.push(Ah.of(n)):i?e.push(zs.computeN([z.darkTheme],r=>r.facet(z.darkTheme)==(i=="dark")?[n]:[])):e.push(zs.of(n)),e}var Us=class{constructor(t){this.markCache=Object.create(null),this.tree=zi(t.state),this.decorations=this.buildDeco(t,$s(t.state))}update(t){let e=zi(t.state),i=$s(t.state),r=i!=$s(t.startState);e.length{i.add(o,l,this.markCache[a]||(this.markCache[a]=J.mark({class:a})))},r,s);return i.finish()}},lu=pn.high(Je.fromClass(Us,{decorations:n=>n.decorations})),Lm=pe.define([{tag:g.meta,color:"#404740"},{tag:g.link,textDecoration:"underline"},{tag:g.heading,textDecoration:"underline",fontWeight:"bold"},{tag:g.emphasis,fontStyle:"italic"},{tag:g.strong,fontWeight:"bold"},{tag:g.strikethrough,textDecoration:"line-through"},{tag:g.keyword,color:"#708"},{tag:[g.atom,g.bool,g.url,g.contentSeparator,g.labelName],color:"#219"},{tag:[g.literal,g.inserted],color:"#164"},{tag:[g.string,g.deleted],color:"#a11"},{tag:[g.regexp,g.escape,g.special(g.string)],color:"#e40"},{tag:g.definition(g.variableName),color:"#00f"},{tag:g.local(g.variableName),color:"#30a"},{tag:[g.typeName,g.namespace],color:"#085"},{tag:g.className,color:"#167"},{tag:[g.special(g.variableName),g.macroName],color:"#256"},{tag:g.definition(g.propertyName),color:"#00c"},{tag:g.comment,color:"#940"},{tag:g.invalid,color:"#f00"}]);var au=Object.create(null),xh=[Et.none];var kh=[],hu=Object.create(null);for(let[n,t]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])hu[n]=cu(au,t);function Hs(n,t){kh.indexOf(n)>-1||(kh.push(n),console.warn(t))}function cu(n,t){let e=null;for(let s of t.split(".")){let o=n[s]||g[s];o?typeof o=="function"?e?e=o(e):Hs(s,`Modifier ${s} used at start of tag`):e?Hs(s,`Tag ${s} used as modifier`):e=o:Hs(s,`Unknown highlighting tag ${s}`)}if(!e)return 0;let i=t.replace(/ /g,"_"),r=Et.define({id:xh.length,name:i,props:[yh({[i]:e})]});return xh.push(r),r.id}var fu="#abb2bf",uu="#7d8799",du="#ffffff",pu="#21252b",js="rgba(0, 0, 0, 0.5)",gu="#292d3e",Gs="#353a42",mu="rgba(128, 203, 196, 0.2)",Th="#ffcc00",yu=z.theme({"&":{color:"#ffffff",backgroundColor:gu},".cm-content":{caretColor:Th},"&.cm-focused .cm-cursor":{borderLeftColor:Th},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:mu},".cm-panels":{backgroundColor:pu,color:"#ffffff"},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:js},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{background:"#292d3e",color:"#676e95",border:"none"},".cm-activeLineGutter":{backgroundColor:js},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Gs},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Gs,borderBottomColor:Gs},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:js,color:fu}}},{dark:!0}),bu=pe.define([{tag:g.keyword,color:"#c792ea"},{tag:g.operator,color:"#89ddff"},{tag:g.special(g.variableName),color:"#eeffff"},{tag:g.typeName,color:"#f07178"},{tag:g.atom,color:"#f78c6c"},{tag:g.number,color:"#ff5370"},{tag:g.definition(g.variableName),color:"#82aaff"},{tag:g.string,color:"#c3e88d"},{tag:g.special(g.string),color:"#f07178"},{tag:g.comment,color:uu},{tag:g.variableName,color:"#f07178"},{tag:g.tagName,color:"#ff5370"},{tag:g.bracket,color:"#a2a1a4"},{tag:g.meta,color:"#ffcb6b"},{tag:g.attributeName,color:"#c792ea"},{tag:g.propertyName,color:"#c792ea"},{tag:g.className,color:"#decb6b"},{tag:g.invalid,color:du}]),wu=[yu,Jn(bu)];var Mh="#2e3440",Zs="#3b4252",Eh="#434c5e",Zn="#4c566a";var Rh="#e5e9f0",Js="#eceff4",Ks="#8fbcbb",Dh="#88c0d0",vu="#81a1c1",Pt="#5e81ac",Su="#bf616a",ei="#d08770",qs="#ebcb8b",Oh="#a3be8c",xu="#b48ead",Nh="#d30102",Qs=Js,Xs=Qs,ku="#ffffff",Ys=Zs,Cu=Qs,Ph=Zs,Ih=z.theme({"&":{color:Mh,backgroundColor:ku},".cm-content":{caretColor:Ph},".cm-cursor, .cm-dropCursor":{borderLeftColor:Ph},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:Cu},".cm-panels":{backgroundColor:Qs,color:Zn},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:`1px solid ${Zn}`},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:Rh},".cm-activeLine":{backgroundColor:Xs},".cm-selectionMatch":{backgroundColor:Rh},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{outline:`1px solid ${Zn}`},"&.cm-focused .cm-matchingBracket":{backgroundColor:Js},".cm-gutters":{backgroundColor:Js,color:Mh,border:"none"},".cm-activeLineGutter":{backgroundColor:Xs},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Ys},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Ys,borderBottomColor:Ys},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Xs,color:Zn}}},{dark:!1}),Au=pe.define([{tag:g.keyword,color:Pt},{tag:[g.name,g.deleted,g.character,g.propertyName,g.macroName],color:ei},{tag:[g.variableName],color:ei},{tag:[g.function(g.variableName)],color:Pt},{tag:[g.labelName],color:vu},{tag:[g.color,g.constant(g.name),g.standard(g.name)],color:Pt},{tag:[g.definition(g.name),g.separator],color:Oh},{tag:[g.brace],color:Ks},{tag:[g.annotation],color:Nh},{tag:[g.number,g.changed,g.annotation,g.modifier,g.self,g.namespace],color:Dh},{tag:[g.typeName,g.className],color:qs},{tag:[g.operator,g.operatorKeyword],color:Oh},{tag:[g.tagName],color:xu},{tag:[g.squareBracket],color:Su},{tag:[g.angleBracket],color:ei},{tag:[g.attributeName],color:qs},{tag:[g.regexp],color:Pt},{tag:[g.quote],color:Zs},{tag:[g.string],color:ei},{tag:g.link,color:Ks,textDecoration:"underline",textUnderlinePosition:"under"},{tag:[g.url,g.escape,g.special(g.string)],color:ei},{tag:[g.meta],color:Dh},{tag:[g.comment],color:Eh,fontStyle:"italic"},{tag:g.strong,fontWeight:"bold",color:Pt},{tag:g.emphasis,fontStyle:"italic",color:Pt},{tag:g.strikethrough,textDecoration:"line-through"},{tag:g.heading,fontWeight:"bold",color:Pt},{tag:g.special(g.heading1),fontWeight:"bold",color:Pt},{tag:g.heading1,fontWeight:"bold",color:Pt},{tag:[g.heading2,g.heading3,g.heading4],fontWeight:"bold",color:Pt},{tag:[g.heading5,g.heading6],color:Pt},{tag:[g.atom,g.bool,g.special(g.variableName)],color:ei},{tag:[g.processingInstruction,g.inserted],color:Ks},{tag:[g.contentSeparator],color:qs},{tag:g.invalid,color:Eh,borderBottom:`1px dotted ${Nh}`}]),Km=[Ih,Jn(Au)];function ji(n,t=0,e=" ",i=!0){let r=[];if(t==5||n==null)return"";if(typeof n=="string")return n;if(typeof n=="number")return`${n}`;if(Array.isArray(n))r.push(`${i?"(":""}${n.map(s=>ji(s,t++)).join(e)}${i?")":""}`);else if(typeof n=="object")for(let s of Object.values(n))r.push(ji(s,t++));return r.join(" ")}var Mu={str:"strength",dex:"dexterity",con:"constitution",wis:"wisdom",int:"intelligence",cha:"charisma"};function Ut(n){return n?n.replace(/{@condition (.+?)(?:\\|.+)?}/g,"$1").replace(/{@item (.+?)(?:\\|.+)?}/g,"$1").replace(/{@spell ([\\s\\S]+?)(?:\\|.+)?}/g,"$1").replace(/{@recharge (.+?)(?:\\|.+)?}/g,"(Recharge $1-6)").replace(/{@recharge}/g,"(Recharge 6)").replace(/{@h}/g,"").replace(/{@damage (.+?)}/g,"$1").replace(/{@atk ms}/g,"Melee Spell Attack").replace(/{@atk rs}/g,"Ranged Spell Attack").replace(/{@atk mw}/g,"Melee Weapon Attack").replace(/{@atk rw}/g,"Ranged Weapon Attack").replace(/{@atk mw,rw}/g,"Melee / Ranged Weapon Attack").replace(/{@creature (.+?)(?:\\|.+)?}/g,"$1").replace(/{@skill (.+?)(?:\\|.+)?}/g,"$1").replace(/{@dice (.+?)(?:\\|.+)?}/g,"$1").replace(/{@hit (\\d+?)(?:\\|.+)?}/g,"+$1").replace(/{@dc (\\d+?)(?:\\|.+)?}/g,"$1").replace(/{@quickref (.+?)\\|\\|.+?}/,"$1"):""}async function _h(n){return new Promise((t,e)=>{let i=new FileReader;i.onload=async r=>{var s,o,l,a,h,c,f,u,d,p,b,y,v,N,C,O,k;try{let T=JSON.parse(r.target.result),x;"monster"in T?x=T.monster:Array.isArray(T)?x=T:typeof T=="object"?x=[T]:e("Invalid monster JSON provided.");let M=[];for(let S of x)try{let _={image:null,bestiary:!0,name:S.name,source:Hu(S),type:Eu(S.type),subtype:Ru(S.type),size:Ju[(s=S.size)==null?void 0:s[0]],alignment:Bu(S),hp:S.hp&&"average"in S.hp?(o=S.hp)==null?void 0:o.average:null,hit_dice:S.hp&&"formula"in S.hp?(l=S.hp)==null?void 0:l.formula:"",ac:Nu(S.ac),speed:Fu(S),stats:[S.str,S.dex,S.con,S.int,S.wis,S.cha],damage_immunities:Ut(ii(S.immune)),damage_resistances:Ut(ii(S.resist)),damage_vulnerabilities:Ut(ii(S.vulnerable)),condition_immunities:Ut(ii(S.conditionImmune)),saves:Object.entries((a=S.save)!=null?a:{}).map(w=>{var F,P;if(!w||!w[1])return;let[,D]=(P=(F=w[1])==null?void 0:F.match(/.*?(\\d+)/))!=null?P:[];if(D)return{[Mu[w[0]]]:D}}).filter(w=>w),skillsaves:Hg(S),senses:$u(S),languages:ji(S.languages,0,", ",!1),cr:Du(S.cr),traits:(c=(h=S.trait)==null?void 0:h.flatMap(Oe))!=null?c:[],actions:(u=(f=S.action)==null?void 0:f.flatMap(Oe))!=null?u:[],bonus_actions:(p=(d=S.bonus)==null?void 0:d.flatMap(Oe))!=null?p:[],reactions:(y=(b=S.reaction)==null?void 0:b.flatMap(Oe))!=null?y:[],legendary_actions:(N=(v=S.legendary)==null?void 0:v.flatMap(Oe))!=null?N:[],mythic_actions:[...(C=(S.mythicHeader?[{name:"",entries:S.mythicHeader}]:[]).flatMap(Oe))!=null?C:[],...(k=(O=S.mythic)==null?void 0:O.flatMap(Oe))!=null?k:[]],spells:Lu(S),spellsNotes:Ou(S).join(" ")};M.push(_)}catch(_){console.error(_);continue}t(M)}catch(T){console.error("reject!!!",T),e(T)}},i.readAsText(n)})}function Eu(n){if(n)return typeof n=="string"?n:n.type}function Ru(n){if(!n||typeof n=="string"||!n.tags)return;let t=[];for(var e of n.tags)typeof e=="string"?t.push(e):t.push(e.tag);return t.join(", ")}function Du(n){if(n)return typeof n=="string"?n:n.cr}function Ou(n){let t=[];for(let e in n.spellcasting)t.push(ji(n.spellcasting[e].footerEntries,0,", ",!1));return t}function ii(n){if(!n)return"";let t=[];for(let e of n){if(typeof e=="string"){t.push(e);continue}if("special"in e){t.push(e.special);continue}if("immune"in e){t.push(`${ii(e.immune)}${e.note?" ":""}${e.note?e.note:""}`);continue}if("resist"in e){t.push(`${ii(e.resist)}${e.note?" ":""}${e.note?e.note:""}`);continue}}return t.join(", ")}function Nu(n=[]){var e;let[t]=n;if(t){if(typeof t=="number")return t;if(typeof t=="string"){let[i,r]=(e=t.match(/(\\d+)/))!=null?e:[];return r?Number(r):null}if(typeof t=="object")return"special"in t?t.special:"ac"in t?"from"in t?`${t.ac} (${Ut(t.from.join(", "))})`:`${t.ac}`:null}}var Pu={0:"Cantrips (at will)",1:"1st level",2:"2nd level",3:"3rd level",4:"4th level",5:"5th level",6:"6th level",7:"7th level",8:"8th level",9:"9th level"};function to(n){let t=[];for(let e of n){if(typeof e=="string"){t.push(e);continue}!e.hidden&&e.entry&&e.entry.length&&t.push(e.entry)}return Ut(t.join(", "))}function Iu(n){let t=[];for(let e of Object.keys(n)){let i=n[e],r=Number(e.replace(/[^0-9]/,""));t.push([r,to(i)])}return t}function _u(n){var r,s;let t=[Ut(((r=n.headerEntries)!=null?r:[]).join(`\n`))];if("spells"in n)try{for(let o in(s=n.spells)!=null?s:{}){let l=n.spells[o],{spells:a}=l,h=`${Pu[o]}`;h+="slots"in l?` (${l.slots} slots)`:"";let c=Ut(a.join(", "));t.push({[h]:c})}}catch(o){throw new Error("There was an error parsing the spells.")}if("will"in n&&n.will.length>0)try{t.push({"At will":to(n.will)})}catch(o){throw new Error("There was an error parsing the at-will spells.")}if("ritual"in n&&n.ritual.length>0)try{t.push({Rituals:to(n.ritual)})}catch(o){throw new Error("There was an error parsing the ritual spells.")}let e=["rest","daily","weekly","yearly","charges"],i={rest:"/rest each",daily:"/day each",weekly:"/week each",yearly:"/year each",charges:" charges"};for(let o of e)if(o in n){let l=Iu(n[o]);for(let a of l.sort((h,c)=>c[0]-h[0]))t.push({[`${a[0]}${i[o]}`]:a[1]})}return t}function Lu(n){return!n.spellcasting||!n.spellcasting.length?[]:n.spellcasting.flatMap(_u)}function Bu(n){return n.alignment?Qn(n.alignment):null}function Qn(n){var e;if(!n)return null;let t=[];if(Array.isArray(n)){let i=[];for(let r of n)typeof r=="string"?i.push(Qn(r)):t.push(Qn(r));i.length>0&&t.push(i.join(" "))}else if(typeof n=="object"){if("special"in n&&n.special!=null)return n.special;if("alignment"in n)return`${((e=n.alignment)!=null?e:[]).map(i=>Qn(i)).join(" ")}${n.chance?` (${n.chance}%)`:""}${n.note?` (${n.note})`:""}`}else{switch(n.toUpperCase()){case"L":return"lawful";case"N":return"neutral";case"NX":return"neutral (law/chaos axis)";case"NY":return"neutral (good/evil axis)";case"C":return"chaotic";case"G":return"good";case"E":return"evil";case"U":return"unaligned";case"A":return"any alignment"}return n}return t.join(" or ")}function Fu(n){var l,a;let t=n.speed;if(!t)return"\\u2014";if(typeof t=="number")return`${t}`;function e(h){return typeof h=="number"?h:h.number!=null?h.number:h}function i(h){var c;return typeof h=="number"?"":(c=h==null?void 0:h.condition)!=null?c:""}let r=[],s=["walk","burrow","climb","fly","swim"];for(let h of s){if(h!="walk"&&!(h in t)&&!(h in((l=t.alternate)!=null?l:{})))continue;let c=[];r.push(`${h==="walk"?"":`${h} `}${e((a=t[h])!=null?a:0)} ft. ${i(t[h])}`.trim()),t.alternate&&t.alternate[h]&&t.alternate[h].forEach(f=>{r.push(`${h==="walk"?"":`${h} `}${e(f!=null?f:0)} ft. ${i(f)}`.trim())})}let o=", ";if(t.choose){o="; ";let h=t.choose.from.sort();h.length>1?(`${h.slice(0,h.length-1).join(", ")}${h[h.length-1]}${t.choose.amount}`,t.choose.note&&`${t.choose.note}`):r.push(`${h} ${t.choose.amount} ft.${t.choose.note?` ${t.choose.note}`:""}`)}return r.join(o)}function $u(n){if(typeof n.senses=="string")return n.senses;let t=[];return Array.isArray(n.senses)&&n.senses.length>0&&(t=[n.senses.join(", ").trim()]),n.passive&&t.push(`passive Perception ${n.passive}`),t.join(", ")}function Hu(n){var e,i,r;let t=[];return(e=n.source)!=null&&e.length&&t.push((i=m[n.source])!=null?i:n.source),(r=n.otherSources)!=null&&r.length&&t.push(...n.otherSources.map(s=>{var o;return(o=m[s.source])!=null?o:s.source})),t}function Oe(n){return n.entries.reduce((e,i)=>{var s;if(typeof i!="string"){let o=(s=i.items)==null?void 0:s.map(l=>typeof l=="string"?{name:l,entries:[]}:"entry"in l?{name:l.name,entries:[l.entry]}:{name:l.name,entries:l.entries});return e.concat(o!=null?o:[])}return e.length>1||e[0].entries.push(i),e},[{name:n.name,entries:[]}]).map(({name:e,entries:i})=>({name:Ut(e),desc:Ut(i.join(`\n`))}))}var Vu="F",Wu="D",zu="T",Uu="S",ju="M",Gu="L",Ku="H",qu="G",Xu="C",Yu="V",Ju={[Vu]:"Fine",[Wu]:"Diminutive",[zu]:"Tiny",[Uu]:"Small",[ju]:"Medium",[Gu]:"Large",[Ku]:"Huge",[qu]:"Gargantuan",[Xu]:"Colossal",[Yu]:"Varies"},Zu="CoS",Qu="DMG",td="EEPC",ed="EET",id="HotDQ",nd="LMoP",rd="Mag",sd="MM",od="OotA",ld="PHB",ad="PotA",hd="RoT",cd="RoTOS",fd="SCAG",ud="SKT",dd="ToA",pd="ToD",gd="TTP",md="TftYP",yd="TftYP-AtG",bd="TftYP-DiT",wd="TftYP-TFoF",vd="TftYP-THSoT",Sd="TftYP-TSC",xd="TftYP-ToH",kd="TftYP-WPM",Cd="VGM",Ad="XGE",Td="OGA",Md="MTF",Ed="WDH",Rd="WDMM",Dd="GGR",Od="KKW",Nd="LLK",Pd="GoS",Id="AI",_d="OoW",Ld="ESK",Bd="DIP",Fd="HftT",$d="DC",Hd="SLW",Vd="SDW",Wd="BGDIA",zd="LR",Ud="AL",jd="SAC",Gd="ERLW",Kd="EFR",qd="RMBRE",Xd="RMR",Yd="MFF",Jd="AWM",Zd="IMR",Qd="SADS",tp="EGW",ep="ToR",ip="DD",np="FS",rp="US",sp="MOT",op="IDRotF",lp="TCE",ap="VRGR",hp="HoL",cp="Screen",fp="ScreenWildernessKit",up="HF",dp="CM",pp="WBtW",gp="CRCotN",eo="AL",mp=`${eo}CurseOfStrahd`,yp=`${eo}ElementalEvil`,bp=`${eo}RageOfDemons`,ni="PS",wp=`${ni}A`,vp=`${ni}I`,Sp=`${ni}K`,xp=`${ni}Z`,kp=`${ni}X`,Cp=`${ni}D`,E="UA",Ap=`${E}Artificer`,Tp=`${E}EladrinAndGith`,Mp=`${E}Eberron`,Ep=`${E}FeatsForRaces`,Rp=`${E}FeatsForSkills`,Dp=`${E}FiendishOptions`,Op=`${E}Feats`,Np=`${E}GothicHeroes`,Pp=`${E}ModernMagic`,Ip=`${E}StarterSpells`,_p=`${E}TheMysticClass`,Lp=`${E}ThatOldBlackMagic`,Bp=`${E}TheRangerRevised`,Fp=`${E}WaterborneAdventures`,$p=`${E}VariantRules`,Hp=`${E}LightDarkUnderdark`,Vp=`${E}RangerAndRogue`,Wp=`${E}ATrioOfSubclasses`,zp=`${E}BarbarianPrimalPaths`,Up=`${E}RevisedSubclasses`,jp=`${E}KitsOfOld`,Gp=`${E}BardBardColleges`,Kp=`${E}ClericDivineDomains`,qp=`${E}Druid`,Xp=`${E}RevisedClassOptions`,Yp=`${E}Fighter`,Jp=`${E}Monk`,Zp=`${E}Paladin`,Qp=`${E}ModifyingClasses`,tg=`${E}Sorcerer`,eg=`${E}WarlockAndWizard`,ig=`${E}TheFaithful`,ng=`${E}WizardRevisited`,rg=`${E}ElfSubraces`,sg=`${E}MassCombat`,og=`${E}ThreePillarExperience`,lg=`${E}GreyhawkInitiative`,ag=`${E}ThreeSubclasses`,hg=`${E}OrderDomain`,cg=`${E}CentaursMinotaurs`,fg=`${E}GiantSoulSorcerer`,ug=`${E}RacesOfEberron`,dg=`${E}RacesOfRavnica`,pg=`${E}WGE`,gg=`${E}OfShipsAndSea`,mg=`${E}Sidekicks`,yg=`${E}ArtificerRevisited`,bg=`${E}BarbarianAndMonk`,wg=`${E}SorcererAndWarlock`,vg=`${E}BardAndPaladin`,Sg=`${E}ClericDruidWizard`,xg=`${E}FighterRangerRogue`,kg=`${E}ClassFeatureVariants`,Cg=`${E}FighterRogueWizard`,Ag=`${E}PrestigeClassesRunMagic`,Tg=`${E}Ranger`,Mg=`${E}2020SubclassesPt1`,Eg=`${E}2020SubclassesPt2`,Rg=`${E}2020SubclassesPt3`,Dg=`${E}2020SubclassesPt4`,Og=`${E}2020SubclassesPt5`,Ng=`${E}2020SpellsAndMagicTattoos`,Pg=`${E}2020PsionicOptionsRevisited`,Ig=`${E}2020SubclassesRevisited`,_g=`${E}2020Feats`,Lg=`${E}2021GothicLineages`,Bg=`${E}2021FolkOfTheFeywild`,Fg=`${E}2021DraconicOptions`,$g=`${E}2021MagesOfStrixhaven`,io="Adventurers League: ",ri="Plane Shift: ",R="Unearthed Arcana: ",ge="Tales from the Yawning Portal",m={};m[Zu]="Curse of Strahd";m[Qu]="Dungeon Master\'s Guide";m[td]="Elemental Evil Player\'s Companion";m[ed]="Elemental Evil: Trinkets";m[id]="Hoard of the Dragon Queen";m[nd]="Lost Mine of Phandelver";m[rd]="Dragon Magazine";m[sd]="Monster Manual";m[od]="Out of the Abyss";m[ld]="Player\'s Handbook";m[ad]="Princes of the Apocalypse";m[hd]="The Rise of Tiamat";m[cd]="The Rise of Tiamat Online Supplement";m[fd]="Sword Coast Adventurer\'s Guide";m[ud]="Storm King\'s Thunder";m[dd]="Tomb of Annihilation";m[pd]="Tyranny of Dragons";m[gd]="The Tortle Package";m[md]=ge;m[yd]=`${ge}: Against the Giants`;m[bd]=`${ge}: Dead in Thay`;m[wd]=`${ge}: The Forge of Fury`;m[vd]=`${ge}: The Hidden Shrine of Tamoachan`;m[Sd]=`${ge}: The Sunless Citadel`;m[xd]=`${ge}: Tomb of Horrors`;m[kd]=`${ge}: White Plume Mountain`;m[Cd]="Volo\'s Guide to Monsters";m[Ad]="Xanathar\'s Guide to Everything";m[Td]="One Grung Above";m[Md]="Mordenkainen\'s Tome of Foes";m[Ed]="Waterdeep: Dragon Heist";m[Rd]="Waterdeep: Dungeon of the Mad Mage";m[Dd]="Guildmasters\' Guide to Ravnica";m[Od]="Krenko\'s Way";m[Nd]="Lost Laboratory of Kwalish";m[Pd]="Ghosts of Saltmarsh";m[Id]="Acquisitions Incorporated";m[_d]="The Orrery of the Wanderer";m[Ld]="Essentials Kit";m[Bd]="Dragon of Icespire Peak";m[Fd]="Hunt for the Thessalhydra";m[$d]="Divine Contention";m[Hd]="Storm Lord\'s Wrath";m[Vd]="Sleeping Dragon\'s Wake";m[Wd]="Baldur\'s Gate: Descent Into Avernus";m[zd]="Locathah Rising";m[Ud]="Adventurers\' League";m[jd]="Sage Advice Compendium";m[Gd]="Eberron: Rising from the Last War";m[Kd]="Eberron: Forgotten Relics";m[qd]="The Lost Dungeon of Rickedness: Big Rick Energy";m[Xd]="Dungeons & Dragons vs. Rick and Morty: Basic Rules";m[Yd]="Mordenkainen\'s Fiendish Folio";m[Jd]="Adventure with Muk";m[Zd]="Infernal Machine Rebuild";m[Qd]="Sapphire Anniversary Dice Set";m[tp]="Explorer\'s Guide to Wildemount";m[ep]="Tide of Retribution";m[ip]="Dangerous Designs";m[np]="Frozen Sick";m[rp]="Unwelcome Spirits";m[sp]="Mythic Odysseys of Theros";m[op]="Icewind Dale: Rime of the Frostmaiden";m[lp]="Tasha\'s Cauldron of Everything";m[ap]="Van Richten\'s Guide to Ravenloft";m[hp]="The House of Lament";m[cp]="Dungeon Master\'s Screen";m[fp]="Dungeon Master\'s Screen: Wilderness Kit";m[up]="Heroes\' Feast";m[dp]="Candlekeep Mysteries";m[mp]=`${io}Curse of Strahd`;m[yp]=`${io}Elemental Evil`;m[bp]=`${io}Rage of Demons`;m[wp]=`${ri}Amonkhet`;m[vp]=`${ri}Innistrad`;m[Sp]=`${ri}Kaladesh`;m[xp]=`${ri}Zendikar`;m[kp]=`${ri}Ixalan`;m[Cp]=`${ri}Dominaria`;m[Ap]=`${R}Artificer`;m[Tp]=`${R}Eladrin and Gith`;m[Mp]=`${R}Eberron`;m[Ep]=`${R}Feats for Races`;m[Rp]=`${R}Feats for Skills`;m[Dp]=`${R}Fiendish Options`;m[Op]=`${R}Feats`;m[Np]=`${R}Gothic Heroes`;m[Pp]=`${R}Modern Magic`;m[Ip]=`${R}Starter Spells`;m[_p]=`${R}The Mystic Class`;m[Lp]=`${R}That Old Black Magic`;m[Bp]=`${R}The Ranger, Revised`;m[Fp]=`${R}Waterborne Adventures`;m[$p]=`${R}Variant Rules`;m[Hp]=`${R}Light, Dark, Underdark!`;m[Vp]=`${R}Ranger and Rogue`;m[Wp]=`${R}A Trio of Subclasses`;m[zp]=`${R}Barbarian Primal Paths`;m[Up]=`${R}Revised Subclasses`;m[jp]=`${R}Kits of Old`;m[Gp]=`${R}Bard: Bard Colleges`;m[Kp]=`${R}Cleric: Divine Domains`;m[qp]=`${R}Druid`;m[Xp]=`${R}Revised Class Options`;m[Yp]=`${R}Fighter`;m[Jp]=`${R}Monk`;m[Zp]=`${R}Paladin`;m[Qp]=`${R}Modifying Classes`;m[tg]=`${R}Sorcerer`;m[eg]=`${R}Warlock and Wizard`;m[ig]=`${R}The Faithful`;m[ng]=`${R}Wizard Revisited`;m[rg]=`${R}Elf Subraces`;m[sg]=`${R}Mass Combat`;m[og]=`${R}Three-Pillar Experience`;m[lg]=`${R}Greyhawk Initiative`;m[ag]=`${R}Three Subclasses`;m[hg]=`${R}Order Domain`;m[cg]=`${R}Centaurs and Minotaurs`;m[fg]=`${R}Giant Soul Sorcerer`;m[ug]=`${R}Races of Eberron`;m[dg]=`${R}Races of Ravnica`;m[pg]="Wayfinder\'s Guide to Eberron";m[gg]=`${R}Of Ships and the Sea`;m[mg]=`${R}Sidekicks`;m[yg]=`${R}Artificer Revisited`;m[bg]=`${R}Barbarian and Monk`;m[wg]=`${R}Sorcerer and Warlock`;m[vg]=`${R}Bard and Paladin`;m[Sg]=`${R}Cleric, Druid, and Wizard`;m[xg]=`${R}Fighter, Ranger, and Rogue`;m[kg]=`${R}Class Feature Variants`;m[Cg]=`${R}Fighter, Rogue, and Wizard`;m[Ag]=`${R}Prestige Classes and Rune Magic`;m[Tg]=`${R}Ranger`;m[Mg]=`${R}2020 Subclasses, Part 1`;m[Eg]=`${R}2020 Subclasses, Part 2`;m[Rg]=`${R}2020 Subclasses, Part 3`;m[Dg]=`${R}2020 Subclasses, Part 4`;m[Og]=`${R}2020 Subclasses, Part 5`;m[Ng]=`${R}2020 Spells and Magic Tattoos`;m[Pg]=`${R}2020 Psionic Options Revisited`;m[Ig]=`${R}2020 Subclasses Revisited`;m[_g]=`${R}2020 Feats`;m[Lg]=`${R}2021 Gothic Lineages`;m[Bg]=`${R}2021 Folk of the Feywild`;m[Fg]=`${R}2021 Draconic Options`;m[$g]=`${R}2021 Mages of Strixhaven`;m[pp]="The Wild Beyond the Witchlight";m[gp]="Critical Role: Call of the Netherdeep";function Hg(n){var r,s,o;let t=n.skill;if(!t)return[];let e=[],i=[];for(let l of Object.keys(t)){if(l=="other"){let c=t[l];for(let f of c){let u=f.oneOf;if(!u)continue;let d=Object.keys(u).sort(),p=d.shift(),b=u[p],[,y]=(r=b==null?void 0:b.match(/.*?(\\d+)/))!=null?r:[];i.push({[`plus one of the following: ${p.charAt(0).toUpperCase()+p.slice(1)}`]:y});for(let v of d.slice(1)){let N=u[v],[,C]=(s=N==null?void 0:N.match(/.*?(\\d+)/))!=null?s:[];C&&i.push({[v]:C})}}continue}let a=t[l],[,h]=(o=a==null?void 0:a.match(/.*?(\\d+)/))!=null?o:[];h&&e.push({[l]:h})}return[...e.filter(l=>l),...i.filter(l=>l)]}var Lh={0:{cr:"0",value:0,xp:0},"1/8":{cr:"1/8",value:.125,xp:25},"1/4":{cr:"1/4",value:.25,xp:50},"1/2":{cr:"1/2",value:.5,xp:100},"0.125":{cr:"1/8",value:.125,xp:25},"0.25":{cr:"1/4",value:.25,xp:50},"0.5":{cr:"1/2",value:.5,xp:100},1:{cr:"1",value:1,xp:200},2:{cr:"2",value:2,xp:450},3:{cr:"3",value:3,xp:700},4:{cr:"4",value:4,xp:1100},5:{cr:"5",value:5,xp:1800},6:{cr:"6",value:6,xp:2300},7:{cr:"7",value:7,xp:2900},8:{cr:"8",value:8,xp:3900},9:{cr:"9",value:9,xp:5e3},10:{cr:"10",value:10,xp:5900},11:{cr:"11",value:11,xp:7200},12:{cr:"12",value:12,xp:8400},13:{cr:"13",value:13,xp:1e4},14:{cr:"14",value:14,xp:11500},15:{cr:"15",value:15,xp:13e3},16:{cr:"16",value:16,xp:15e3},17:{cr:"17",value:17,xp:18e3},18:{cr:"18",value:18,xp:2e4},19:{cr:"19",value:19,xp:22e3},20:{cr:"20",value:20,xp:25e3},21:{cr:"21",value:21,xp:33e3},22:{cr:"22",value:22,xp:41e3},23:{cr:"23",value:23,xp:5e4},24:{cr:"24",value:24,xp:62e3},25:{cr:"25",value:25,xp:75e3},26:{cr:"26",value:26,xp:9e4},27:{cr:"27",value:27,xp:105e3},28:{cr:"28",value:28,xp:12e4},29:{cr:"29",value:29,xp:135e3},30:{cr:"30",value:30,xp:155e3}};function ne(n){return Math.floor(((n!=null?n:10)-10)/2)}var Bh={tiny:4,small:6,medium:8,large:10,huge:12,gargantuan:20},Vg={str:"strength",dex:"dexterity",con:"constitution",int:"intelligence",wis:"wisdom",cha:"charisma"},no=class n{constructor(t){this.monster=t;this.proficiency=this.getProf(this.monster);this.stats={str:this.monster.strPoints,dex:this.monster.dexPoints,con:this.monster.conPoints,int:this.monster.intPoints,wis:this.monster.wisPoints,cha:this.monster.chaPoints};this.modifiers={str:ne(this.stats.str),dex:ne(this.stats.dex),con:ne(this.stats.con),int:ne(this.stats.int),wis:ne(this.stats.wis),cha:ne(this.stats.cha)}}static parse(t){var r,s,o,l,a,h;let e=new n(t);return{image:null,name:t.name,source:"TetraCube",type:t.type,subtype:"",size:t.size,alignment:t.alignment,hp:(r=e.getHP(t))==null?void 0:r.hp,hit_dice:(s=e.getHP(t))==null?void 0:s.dice,ac:(a=(l=((o=t.ac)!=null?o:[])[0])==null?void 0:l.ac)!=null?a:"",speed:e.getSpeedString(t),stats:[t.strPoints,t.dexPoints,t.conPoints,t.intPoints,t.wisPoints,t.chaPoints],damage_immunities:e.parseImmune(t,"i"),damage_resistances:e.parseImmune(t,"r"),damage_vulnerabilities:e.parseImmune(t,"v"),condition_immunities:e.parseConditions(t),saves:e.getSaves(t),skillsaves:e.getSkills(t),senses:e.getSenses(t),languages:e.getLanguages(t),cr:(h=t.cr)!=null?h:"",traits:e.getTraits(t.abilities),actions:e.getTraits(t.actions),reactions:e.getTraits(t.reactions),legendary_actions:e.getTraits(t.legendaries),spells:e.getSpells(t.abilities)}}getHP(t){var e,i;if(t.customHP||t.hitDice&&/(\\d+) \\((.+)\\)/.test(t.hpText)){let[r,s,o]=(e=t.hpText.match(/(\\d+) \\((.+)\\)/))!=null?e:[];return{hp:s,dice:o}}if(t.hitDice){let r=Number(t.hitDice),s=(i=Bh[t.size])!=null?i:Bh.medium,o=this.modifiers.con,l=r*s/(2+.5)+o*r,a=o>0?"+":"-",h=o==0?"":` ${a} ${o*r}`;return{hp:l,dice:`${r}d${s}${h}`}}}getSpeedString(t){if(t.customSpeed)return t.speedDesc;let e=[t.speed+" ft."];return t.burrowSpeed>0&&e.push("burrow "+t.burrowSpeed+" ft."),t.climbSpeed>0&&e.push("climb "+t.climbSpeed+" ft."),t.flySpeed>0&&e.push("fly "+t.flySpeed+" ft."+(t.hover?" (hover)":"")),t.swimSpeed>0&&e.push("swim "+t.swimSpeed+" ft."),e.join(", ")}parseImmune(t,e){let i=[];"damagetypes"in t&&Array.isArray(t.damagetypes)&&i.push(...t.damagetypes.filter(s=>s.type==e).map(s=>s.name));let r=[];return"specialdamage"in t&&Array.isArray(t.specialdamage)&&r.push(...t.specialdamage.filter(s=>s.type==e).map(s=>s.name)),[i.join(", "),r.join(", ")].filter(s=>s&&s.length).join("; ")}getLanguages(t){let e=[],i=[],r=[];for(let s=0;s0&&e.push([i.slice(0,i.length-2).map(s=>s.name).join(", "),i.slice(-1).map(s=>s.name)].filter(s=>s).join(" and ")),r.length>0&&e.push([r.slice(0,r.length-2).map(s=>s.name).join(", "),r.slice(-1).map(s=>s.name)].filter(s=>s).join(" and ")),t.telepathy>0&&e.push("telepathy "+t.telepathy+" ft."),e.length==0&&e.push("—"),e.join("; ")}getSenses(t){let e=[];t.blindsight>0&&e.push("blindsight "+t.blindsight+" ft."+(t.blind?" (blind beyond this radius)":"")),t.darkvision>0&&e.push("darkvision "+t.darkvision+" ft."),t.tremorsense>0&&e.push("tremorsense "+t.tremorsense+" ft."),t.truesight>0&&e.push("truesight "+t.truesight+" ft.");let i=t.skills.find(s=>s.name=="perception"),r=10+ne(t.wisPoints);return i!=null&&(r+=this.proficiency*("note"in i?2:1)),e.push("passive Perception "+r),e.join(", ")}transformString(t){return t.replace(/(_|\\*|\\s*>\\s*)/g,"").replace(/\\[MON(S)?\\]/g,`${this.monster.shortName&&this.monster.shortName.length?this.monster.shortName:this.monster.name}$1`).replace(/\\[(\\w+)\\]/g,(e,i)=>{if(i=i.toLowerCase(),!(i in this.modifiers))return e;let r=this.modifiers[i];return`${r>=0?"+":""}${r}`}).replace(/\\[(\\w+) (ATK|SAVE)\\s?(?:([+-])\\s?(\\d+))?\\]/g,(e,i,r="ATK",s="+",o=0)=>{if(i=i.toLowerCase(),!(i in this.modifiers))return e;o=s=="+"?Number(o):-Number(o);let l=(r=="ATK"?0:8)+this.modifiers[i]+this.proficiency+o;return`${l>=0?"+":""}${l}`}).replace(/\\[(\\w+)?\\s?(\\d*[dD]\\d+)\\s?(?:([+-])\\s?(\\d+))?\\]/g,(e,i,r,s="+",o=0)=>{var f;i=i.toLowerCase();let[,l=1,a]=(f=r.match(/(\\d*)[dD](\\d+)/))!=null?f:[];if(l||(l=1),!a)return e;o=s=="+"?Number(o):-Number(o),i in this.modifiers&&(o+=this.modifiers[i]);let h=Math.floor((a/2+.5)*l)+o,c=[`${l}d${a}`];return o&&o!=0&&(c.push(o>=0?"+":"-"),c.push(o)),`${h} (${c.join(" ")})`})}getTraits(t){return!t||!t.length?void 0:t.filter(i=>i.name!="Spellcasting").map(i=>({name:i.name,desc:this.transformString(i.desc)}))}getSpells(t){var r;if(!t.abilities||!t.abilities.length)return;let{desc:e}=(r=t.abilities.find(s=>s.name=="Spellcasting"))!=null?r:{};return e?this.transformString(e).trim().split(`\n`).filter(s=>s.length):void 0}getSaves(t){if(!("sthrows"in t)||!Array.isArray(t.sthrows)||!t.sthrows.length)return[];let e=this.proficiency,i=[];for(let r of t.sthrows){let s=r.name,o=ne(Number(t[`${s}Points`]));isNaN(o)||i.push({[Vg[s]]:o+e})}return i}getSkills(t){if(!("skills"in t)||!Array.isArray(t.skills)||!t.skills.length)return[];let e=[],i=this.proficiency;for(let r of t.skills){let s=r.stat,o=ne(Number(t[`${s}Points`]));if(isNaN(o))continue;let l="note"in r;e.push({[r.name]:i+o+o*Number(l)})}return e}getProf(t){var i,r;let e=0;return t.cr=="*"&&(e=t.customProf),"cr"in t&&t.cr in Lh&&(e=Math.max(Math.floor(2+(((r=(i=Lh[t.cr])==null?void 0:i.value)!=null?r:0)-1)/4),2)),isNaN(Number(e))?0:Number(e)}parseConditions(t){if("conditions"in t&&Array.isArray(t.conditions))return t.conditions.map(e=>e.name).join(", ")}};async function Fh(n){return new Promise((t,e)=>{let i=new FileReader,r=[];i.onload=async s=>{try{let o=JSON.parse(s.target.result),l;"monster"in o?l=o.monster:Array.isArray(o)?l=o:typeof o=="object"?l=[o]:e("Invalid monster JSON provided.");let a=[];for(let h of l)try{let c=no.parse(h);a.push(c)}catch(c){console.error(c);continue}t(a)}catch(o){console.error("reject!!!",o),e(o)}},i.readAsText(n)})}var ro=self;ro.onmessage=async n=>{if(!n.data)return;let{files:t,source:e}=n.data,i=[];for(let r of t)switch(e){case"5e":{let s=await _h(r);i.push(...s!=null?s:[]);break}case"critter":{let s=await Sl(r);i.push(...s!=null?s:[]);break}case"improved":{let s=await vl(r);i.push(...s!=null?s:[]);break}case"appfile":{let s=await wl(r);i.push(...s!=null?s:[]);break}case"tetra":{let s=await Fh(r);i.push(...s!=null?s:[]);break}case"generic":{let s=await new Promise((o,l)=>{let a=new FileReader;a.onload=async h=>{try{let c=JSON.parse(h.target.result),f=[];if(Array.isArray(c))f=c;else if(typeof c=="object")if("name"in c)f=[c];else for(let d in c)Array.isArray(c[d])&&f.push(...c[d]);else l("Invalid monster JSON provided. Must be array or object.");let u=[];for(let d of f)"name"in d&&u.push(d);o(u)}catch(c){console.error("reject!!!",c),l(c)}},a.readAsText(r)});i.push(...s!=null?s:[])}}ro.postMessage({monsters:i})};ro.addEventListener("unhandledrejection",function(n){throw n.reason});\n')}var Un=require("obsidian");var Xl=class extends vt{constructor(){super(...arguments);this.saved=!1}display(){this.titleEl.createSpan({text:"Set Sources"}),new Un.Setting(this.contentEl).setName("A source could not be found for some imported monsters. Do you wish to manually add one?").addText(t=>{t.setPlaceholder("Unknown").onChange(n=>{this.source=n})}),this.buildButtons(this.contentEl)}buildButtons(t){new Un.Setting(t).addButton(n=>n.setCta().setIcon("checkmark").setTooltip("Save").onClick(()=>{this.saved=!0,this.close()})).addExtraButton(n=>n.setIcon("cross").setTooltip("Cancel").onClick(()=>{this.close()}))}onOpen(){this.display()}},yy=async i=>new Promise(e=>{let t=new Xl(i);t.onClose=()=>{t.saved||e(null),e(t.source)},t.open()}),Wa=class{constructor(e){this.plugin=e;this.workers=new Map}async import(e,t){return new Promise(n=>{let a=new Zl,s=q();this.workers.set(s,a),a.onmessage=async r=>{let{monsters:o}=r.data??{monsters:[]};if(o){new Un.Notice(`Successfully imported ${o.length} Monsters`);let l=o.filter(d=>d.source=="Unknown"||!d.source),c;l.length&&(c=await yy(this.plugin))&&l.forEach(d=>d.source=c)}a.terminate(),this.workers.delete(s),n(o)},a.onerror=r=>{new Un.Notice(`There was an error importing the file. + +${r.message}`),a.terminate(),this.workers.delete(s),n([])},a.postMessage({files:e,source:t})})}};var er=require("obsidian");var Mt=require("obsidian");function vy(i){re(i,"svelte-1m3i208",".top-level.svelte-1m3i208.svelte-1m3i208{display:flex;flex-flow:column nowrap}textarea.svelte-1m3i208.svelte-1m3i208{flex-grow:1;height:500px;max-height:50vh}.json.svelte-1m3i208.svelte-1m3i208{margin-bottom:1rem;display:flex;justify-content:flex-start;align-items:center}.json.svelte-1m3i208>div.svelte-1m3i208{border-radius:4px;margin:5px 0px}.active.svelte-1m3i208.svelte-1m3i208{background-color:var(--background-secondary-alt)}.buttons.svelte-1m3i208.svelte-1m3i208{margin-top:1rem;display:flex;justify-content:flex-end;align-items:center}")}function hf(i){let e,t,n,a;return{c(){e=k("textarea"),e.value=t=i[6](),g(e,"class","svelte-1m3i208")},m(s,r){D(s,e,r),i[11](e),n||(a=H(e,"blur",i[12]),n=!0)},p:N,d(s){s&&A(e),i[11](null),n=!1,a()}}}function ky(i){let e,t,n,a,s,r,o,l,c,d,h,u=i[0],f,m,p,y,w,_,O,E,S,v=hf(i);return{c(){e=k("div"),t=k("h2"),t.textContent="Edit Monster",n=W(),a=k("div"),s=k("div"),r=k("div"),l=W(),c=k("div"),h=W(),v.c(),f=W(),m=k("div"),p=k("div"),w=W(),_=k("div"),g(r,"class","svelte-1m3i208"),oe(r,"active",!i[0]),g(c,"class","svelte-1m3i208"),oe(c,"active",i[0]),g(s,"class","json svelte-1m3i208"),g(a,"class","top-level svelte-1m3i208"),g(m,"class","buttons svelte-1m3i208"),g(e,"class","edit-monster-modal")},m(x,P){D(x,e,P),b(e,t),b(e,n),b(e,a),b(a,s),b(s,r),b(s,l),b(s,c),b(a,h),v.m(a,null),b(e,f),b(e,m),b(m,p),b(m,w),b(m,_),E||(S=[ee(o=i[3].call(null,r)),H(r,"click",i[9]),ee(d=i[2].call(null,c)),H(c,"click",i[10]),ee(y=i[4].call(null,p)),ee(O=i[5].call(null,_))],E=!0)},p(x,[P]){P&1&&oe(r,"active",!x[0]),P&1&&oe(c,"active",x[0]),P&1&&j(u,u=x[0])?(v.d(1),v=hf(x),v.c(),v.m(a,null)):v.p(x,P)},i:N,o:N,d(x){x&&A(e),v.d(x),E=!1,ce(S)}}}function wy(i,e,t){let n=Pe(),{monster:a={}}=e,s=!1,r,o=w=>{new Mt.ExtraButtonComponent(w).setIcon("code-glyph").setTooltip("JSON")},l=w=>{new Mt.ExtraButtonComponent(w).setIcon("lines-of-text").setTooltip("YAML")},c=w=>{new Mt.ButtonComponent(w).setIcon("checkmark").setTooltip("Save Changes").onClick(()=>{if(s)try{s?t(8,a=JSON.parse(r.value)):t(8,a=(0,Mt.parseYaml)(r.value))}catch(_){console.error(_),new Mt.Notice(`There was an error saving the creaturen + +${_.message}`);return}n("save",a)})},d=w=>{new Mt.ExtraButtonComponent(w).setIcon("cross").setTooltip("Cancel").onClick(()=>{n("cancel")})};function h(){return s?JSON.stringify(a,null,2):!a||!Object.keys(a??{})?.length?"":(0,Mt.stringifyYaml)(a).trim()}function u(){try{s?t(8,a=JSON.parse(r.value)):t(8,a=(0,Mt.parseYaml)(r.value))}catch(w){console.error(w)}}let f=()=>t(0,s=!1),m=()=>t(0,s=!0);function p(w){Re[w?"unshift":"push"](()=>{r=w,t(1,r)})}let y=()=>u();return i.$$set=w=>{"monster"in w&&t(8,a=w.monster)},[s,r,o,l,c,d,h,u,a,f,m,p,y]}var ql=class extends U{constructor(e){super(),G(this,e,wy,ky,j,{monster:8},vy)}},df=ql;var Vn=class extends vt{constructor(t,n={}){super(t);this.monster=n}onOpen(){this._instance=new df({target:this.contentEl,props:{monster:this.monster}}),this._instance.$on("cancel",()=>{this.close()}),this._instance.$on("save",async({detail:t})=>{if(!t.name){new er.Notice("Creatures must be given a name.");return}await this.plugin.updateMonster(this.monster,t),this.close()})}onClose(){}close(){this._instance&&this._instance.$destroy(),super.close()}},Js=class extends vt{constructor(t,n){super(t);this.monster=n}async display(){er.Platform.isMobile||(this.contentEl.style.maxWidth="85vw"),new qt({container:this.contentEl,monster:this.monster,plugin:this.plugin})}onOpen(){this.display()}};var _y=[{type:"inline",id:q(),properties:[],hasRule:!0,nested:[{type:"group",id:q(),properties:["name","description","aspects","temporaryAspects"],nested:[{type:"heading",id:q(),properties:["name"],conditioned:!0,size:1},{type:"text",id:q(),properties:["description"],conditioned:!0,markdown:!0,text:null,dice:!1},{type:"text",id:q(),properties:["aspects"],markdown:!0,text:null,dice:!1,conditioned:!0,heading:"Aspects"},{type:"text",id:q(),properties:["temporaryAspects"],markdown:!0,text:null,dice:!1,conditioned:!0,heading:"Temporary Aspects"}],conditioned:!0},{type:"image",id:q(),properties:["image"],conditioned:!0}]},{type:"table",id:q(),properties:["stress"],headers:["Physical","Mental"],calculate:!1,hasRule:!0,conditioned:!0},{type:"traits",id:q(),properties:["consequences"],conditioned:!0,heading:"Consequences"},{type:"traits",id:q(),properties:["skills"],conditioned:!0,hasRule:!1,heading:"Skills"},{type:"traits",id:q(),properties:["stunts"],markdown:!0,dice:!1,conditioned:!0,heading:"Stunts"},{type:"traits",id:q(),properties:["items"],heading:"Items",conditioned:!0,markdown:!0,dice:!1},{type:"traits",id:q(),properties:["extras"],heading:"Extras",conditioned:!0,markdown:!0,dice:!1}],uf={blocks:_y,id:"basic-fate-core-layout",name:"Basic Fate Core Layout",edited:!1};var ST=[{type:"inline",id:q(),properties:[],hasRule:!0,nested:[{type:"group",id:q(),properties:["name","description","aspects","temporaryAspects"],nested:[{type:"heading",id:q(),properties:["name"],conditioned:!0,size:1},{type:"text",id:q(),properties:["description"],conditioned:!0,markdown:!0,text:null,dice:!1},{type:"text",id:q(),properties:["aspects"],markdown:!0,text:null,dice:!1,conditioned:!0,heading:"Aspects"},{type:"text",id:q(),properties:["temporaryAspects"],markdown:!0,text:null,dice:!1,conditioned:!0,heading:"Temporary Aspects"}],conditioned:!0},{type:"image",id:q(),properties:["image"],conditioned:!0}]},{type:"table",id:q(),properties:["stress"],headers:["Physical","Mental"],calculate:!1,hasRule:!0,conditioned:!0},{type:"traits",id:q(),properties:["consequences"],conditioned:!0,heading:"Consequences"},{type:"traits",id:q(),properties:["skills"],conditioned:!0,hasRule:!1,heading:"Skills"},{type:"traits",id:q(),properties:["stunts"],markdown:!0,dice:!1,conditioned:!0,heading:"Stunts"},{type:"traits",id:q(),properties:["items"],heading:"Items",conditioned:!0,markdown:!0,dice:!1},{type:"traits",id:q(),properties:["extras"],heading:"Extras",conditioned:!0,markdown:!0,dice:!1}],ff={blocks:[{type:"inline",id:"e9b8483aeafa",properties:[],nested:[{type:"property",id:"2b596a6919fb",properties:["name"],fallback:"-",markdown:!0,dice:!1,conditioned:!0,display:" "},{type:"property",id:"98389a48f808",properties:["level"],fallback:"-",display:" ",conditioned:!0,markdown:!0,dice:!1}],hasRule:!0},{type:"group",id:"4b3a6809a938",properties:[],nested:[{type:"inline",id:"289a4b787968",properties:[],nested:[{type:"property",id:"694a3888b859",properties:["rare_01"],fallback:"-",conditioned:!0,markdown:!0},{type:"property",id:"590a88988ae8",properties:["rare_02"],fallback:"-",conditioned:!0,markdown:!0},{type:"property",id:"9a9be808699a",properties:["rare_03"],fallback:"-",conditioned:!0,markdown:!0},{type:"property",id:"2988db1a685a",properties:["rare_04"],fallback:"-",conditioned:!0,markdown:!0},{type:"property",id:"ba891ba8cbeb",properties:["alignment"],fallback:" ",display:" ",conditioned:!0,markdown:!0},{type:"property",id:"ebf9883938a8",properties:["size"],fallback:" ",display:" ",conditioned:!0,markdown:!0},{type:"property",id:"dabaf9e9fb68",properties:["trait_01"],fallback:" ",display:" ",conditioned:!0,markdown:!0},{type:"property",id:"e81a6aeadbf9",properties:["trait_02"],fallback:" ",display:" ",conditioned:!0,markdown:!0},{type:"property",id:"fa7919caabbb",properties:["trait_03"],fallback:"-",conditioned:!0,display:" ",markdown:!0},{type:"property",id:"58c9c8580b68",properties:["trait_04"],fallback:"-",conditioned:!0,display:" ",markdown:!0},{type:"property",id:"da894a7b8849",properties:["trait_05"],fallback:"-",display:" ",conditioned:!0,markdown:!0},{type:"property",id:"fb6b4b6bab49",properties:["trait_06"],fallback:"-",display:" ",conditioned:!0,markdown:!0},{type:"property",id:"480a5bfafb88",properties:["trait_07"],fallback:"-",display:" ",conditioned:!0,markdown:!0}],hasRule:!0,conditioned:!0}]},{type:"group",id:"5999ea79ca3b",properties:[],nested:[{type:"traits",id:"9a9af9fbe959",properties:["perception"],fallback:"-",heading:" ",conditioned:!0,dice:!0,markdown:!0,headingProp:!0},{type:"property",id:"ba28f9384918",properties:["languages"],fallback:"-",display:"Language",conditioned:!0,markdown:!0},{type:"traits",id:"a8f8187b89fb",properties:["skills"],fallback:"-",markdown:!0,dice:!0,conditioned:!0,heading:" "},{type:"table",id:"b82b0a1a9969",properties:["abilityMods"],headers:["Str","Dex","Con","Int","Wis","Cha"],calculate:!1,fallback:"-",conditioned:!0,dice:!0},{type:"traits",id:"e96ba9d8a80a",properties:["abilities_top"],fallback:"-",conditioned:!0,dice:!0,markdown:!0,heading:" ",hasRule:!1}],hasRule:!0},{type:"group",id:"faaa08993a98",properties:[],nested:[{type:"traits",id:"68ca69891bea",properties:["armorclass"],fallback:"-",heading:"",conditioned:!0,dice:!0,markdown:!0},{type:"traits",id:"9b1998e9a8da",properties:["health"],fallback:"-",heading:"",conditioned:!0,dice:!0,markdown:!0},{type:"traits",id:"ca2bf968987b",properties:["abilities_mid"],fallback:"-",heading:"",conditioned:!0,dice:!0,markdown:!0,hasRule:!1}],hasRule:!0},{type:"group",id:"cbeabaf93b58",properties:[],nested:[{type:"property",id:"0b4809ba0b29",properties:["speed"],fallback:"-",display:"Speed",conditioned:!0,markdown:!0,dice:!1},{type:"traits",id:"882bc9aa0898",properties:["attacks"],fallback:"-",conditioned:!0,dice:!0,markdown:!0,headingProp:!1,heading:""},{type:"traits",id:"6919b8996939",properties:["spellcasting"],fallback:"-",heading:" ",markdown:!0,dice:!0,conditioned:!0},{type:"traits",id:"aacb399a3b58",properties:["abilities_bot"],fallback:"-",conditioned:!0,dice:!0,markdown:!0,hasRule:!1}],hasRule:!0},{type:"text",id:"1b195a894b58",properties:["token"],text:null,fallback:"",heading:"Show to Players",conditioned:!0,markdown:!0},{type:"image",id:"1bba89582b29",properties:["token"],fallback:"",conditioned:!0,hasRule:!0},{type:"property",id:"88e97a485b79",properties:["sourcebook"],fallback:"-",conditioned:!0,markdown:!0,dice:!1,display:" Source:"}],name:"Basic Pathfinder 2e Layout",id:"path-2e-block",version:2,diceParsing:[{regex:/\((\d+d\d+(?:\s*[+-]\s*\d+)?)\)/.source,parser:`const [, text] = matches; +return ["(", { text }, ")"];`,id:q(),desc:"(1d8+3)"},{regex:/(\w+?) ([+-])(\d+)/.source,parser:`let [, initial, sign, number] = matches; +let mult = 1; +if (sign === "-") { + mult = -1; +} +let text; +if (!isNaN(Number(number))) { + text = \`1d20+\${mult * Number(number)}\`; +} +return [original, " (", { text }, ")"];`,id:q(),desc:"longsword +15"}]};var mf={blocks:[{type:"inline",id:"2a9b58ba0ab8",properties:[],nested:[{type:"heading",id:"c89a2ae859f8",properties:["name"],size:1,fallback:"Creature"},{type:"image",id:"e83a48f858b8",properties:["image"],fallback:"TILE ART",conditioned:!0,hasRule:!1}],hasRule:!0},{type:"group",id:"fabb0b884838",properties:[],nested:[{type:"text",id:"5b7bc86b6919",properties:["flavor_text"],text:null,fallback:"-",conditioned:!0,markdown:!0,hasRule:!1}],cls:"flavor-text",hasRule:!0},{type:"group",id:"1a6999887a69",properties:[],nested:[{type:"javascript",id:"d958f898e9fa",conditioned:!1,code:`var base_string = \`\${monster.level} level \${monster.role}\`; + +if (monster.size) { + base_string = \`\${monster.size} \${base_string}\`; +} + +const monster_strength = document.createElement("p"); +monster_strength.innerHTML = base_string; +monster_strength.classList.add("monster-strength"); + +if (monster.type) { + const type = \`[\${monster.type}]\`; + const type_block = document.createElement("span"); + type_block.classList.add("type"); + type_block.innerText = type; + + monster_strength.append(type_block) +} + +return monster_strength;`},{type:"property",id:"780809c90898",properties:["initiative"],fallback:"+0",display:"Initiative: ",markdown:!0},{type:"property",id:"88eb4a6aea0b",properties:["vulnerability"],fallback:"-",display:"Vulnerability: ",conditioned:!0,markdown:!0}],hasRule:!0},{type:"group",id:"999bb81b7aab",properties:[],nested:[{type:"traits",id:"996ab9d9a86a",properties:["actions"],fallback:"-",markdown:!0,hasRule:!0},{type:"traits",id:"69ca5b7a3898",properties:["traits"],fallback:"-",conditioned:!0,markdown:!0,hasRule:!0},{type:"traits",id:"c8794b580948",properties:["triggered_actions"],fallback:"-",headingProp:!1,heading:"Triggered Abilities",conditioned:!0,markdown:!0,hasRule:!0},{type:"traits",id:"aa1a3a2abb19",properties:["nastier_traits"],fallback:"-",headingProp:!1,heading:"Nastier Specials",conditioned:!0,subheadingText:"",markdown:!0,hasRule:!0}],hasRule:!1,cls:"abilities"},{type:"group",id:"8a7969a96a48",properties:[],nested:[{type:"javascript",id:"f99b8b1bf908",conditioned:!1,code:`const getStatLine = (statName, statValue) => { + const statLine = document.createElement("div"); + const statClass = \`\${statName.toLowerCase()}-block\`; + statLine.classList.add("defense-line"); + statLine.classList.add(statClass); + + const statNameBlock = document.createElement("span"); + statNameBlock.classList.add("defense-name"); + statNameBlock.innerText = statName.toUpperCase(); + + const statValueBlock = document.createElement("span"); + statValueBlock.classList.add("defense-value"); + + if (statName === "HP" && monster.mook !== undefined) { + statValue = \`\${statValue} (mook)\`; + } + + statValueBlock.innerText = statValue; + + statLine.append(statNameBlock); + statLine.append(statValueBlock); + + return statLine; +} + +const statFullBlock = document.createElement("div"); +statFullBlock.classList.add("defense-block"); +statFullBlock.append(getStatLine("AC", monster.ac)); +statFullBlock.append(getStatLine("PD", monster.pd)); +statFullBlock.append(getStatLine("MD", monster.md)); +statFullBlock.append(getStatLine("HP", monster.hp)); + +return statFullBlock; +`},{type:"property",id:"6aa9684a08db",properties:["mook"],fallback:"-",display:"Mook",conditioned:!0,callback:"return `Kill one _${monster.name}_ for every ${monster.hp} damage dealt to the mob`",markdown:!0}],cls:"monster-stats"},{type:"group",id:"a96bcabad818",properties:[],nested:[{type:"text",id:"4a0b6a59385a",properties:["description"],text:null,conditioned:!0,fallback:"-",markdown:!0}],cls:"monster-description"}],name:"Basic 13th Age Monster Layout",id:"basic-13th-age-monster-block"};var gf={blocks:[{type:"group",id:"0a58d8280a7b",properties:[],nested:[{type:"image",id:"48db7bfb6809",properties:["Token"],fallback:"-",conditioned:!0}]},{type:"group",id:"b8e9ea5a5b68",properties:[],nested:[{type:"inline",id:"7a3a6b3ad9d9",properties:[],nested:[{type:"heading",id:"0a982a598818",properties:["Name"],size:1,fallback:"-"},{type:"property",id:"cb1a28885afb",properties:["Type"],fallback:"Unknown.",conditioned:!1,display:" "}]},{type:"subheading",id:"4b3848590a48",properties:["TitleOfMob","FlavorText","TypeOfBoss"],separator:" , ",fallback:"-",conditioned:!0}],hasRule:!0},{type:"group",id:"fb98fb48f93a",properties:[],nested:[{type:"inline",id:"3898c8ea0bf9",properties:[],nested:[{type:"property",id:"a8980a09e92a",properties:["BadassRank"],fallback:" ",conditioned:!1,display:" "},{type:"property",id:"c83a18fb2ac9",properties:["MovementType"],fallback:" ",display:" ",callback:`const Move = monster.MovementType; +const Types = ['move', 'flight', 'swim', 'burrow', 'teleport', 'leap', 'hover', 'climb',]; +const Symbols = ['\u2B47', '\u{E1502}', '\u{E1504}', '\u{E1506}', '\u{E1503}', '\u{E1501}', '\u{E1500}', '\u{E1505}',]; + +let Output = ''; +for (let i = 0; i < Types.length; i++) { + for (let j = 0; j <= 10; j++) { + if (Move.includes(\`\${Types[i]} \${j}\`)) { + Output += \`\${Symbols[i]} \${j} Square\${j > 1 ? 's' : ''}\\n\`; + } + } +} + +return Output.trim();`},{type:"inline",id:"59e8dad80b6b",properties:[],nested:[{type:"property",id:"d8d98b8b6bfa",properties:["Health"],fallback:"Dead",conditioned:!0,display:"Health:"},{type:"property",id:"c969ebe85aca",properties:["Shield"],fallback:"N/A",display:"Shield:",conditioned:!0},{type:"property",id:"b95a6a68e89b",properties:["Armor"],fallback:"N/A",conditioned:!0,display:"Armor:"},{type:"property",id:"cb4a68db0ad8",properties:["Traits"],fallback:"N/A",display:"Traits:",conditioned:!0,markdown:!0}],cls:"shat"}],cls:"bomshat"}]},{type:"group",id:"2a99795abbb8",properties:[],nested:[{type:"property",id:"1a4aaa3b78e9",properties:["Weapon"],fallback:"N/A",conditioned:!1,dice:!0,display:"Weapon:"},{type:"property",id:"4a8b3ae86bb8",properties:["Special"],fallback:"-",display:"Special:",dice:!0,markdown:!0},{type:"property",id:"d85b69696908",properties:["SuperSpecial"],fallback:"-",display:"Additional Effects:",conditioned:!0,markdown:!0,dice:!0,hasRule:!0}],hasRule:!1},{type:"group",id:"8ae89989a83b",properties:[],nested:[{type:"traits",id:"cb28b8484afa",properties:["Actions"],fallback:"-",heading:"Actions",conditioned:!0,hasRule:!1,markdown:!0,dice:!0},{type:"traits",id:"5beae9c80838",properties:["Mayhem"],fallback:"-",conditioned:!0,heading:"\u{E1531} Mayhem",dice:!0,markdown:!0},{type:"traits",id:"ea6b78db3b59",properties:["Loot"],fallback:"-",heading:"Loot",conditioned:!0,dice:!0,markdown:!0}],hasRule:!1,cls:""},{type:"group",id:"283a2b39ca3a",properties:[],nested:[{type:"text",id:"8a78b8393819",properties:["Image"],text:null,fallback:"-",heading:"",conditioned:!0},{type:"image",id:"2b09ea3958fa",properties:["Image"],fallback:"-",conditioned:!0}],cls:"biggies"}],id:"basic-bnb-bestiary-layout",name:"Basic BnB Bestiary Layout",edited:!1};var pf={blocks:[{type:"inline",id:"aabbab5bb92a",properties:[],nested:[{type:"image",id:"a80b9a1a791b",properties:["Token"],fallback:"-",conditioned:!0}]},{type:"inline",id:"19788a293819",properties:[],nested:[{type:"heading",id:"bb98085bdbab",properties:["Name"],fallback:"Unknown",conditioned:!1,size:1},{type:"property",id:"f97b886ba819",properties:["Type"],fallback:"Unknown",display:"",conditioned:!0,markdown:!0,dice:!1}],hasRule:!0},{type:"group",id:"c81968abe80b",properties:[],nested:[{type:"inline",id:"4809ea49d92a",properties:[],nested:[{type:"inline",id:"48f93a487988",properties:[],nested:[{type:"property",id:"4dc7e12b6c6c",properties:["MovementType"],fallback:"-",display:" ",conditioned:!0,callback:`const Move = monster.MovementType; +const Types = ['move', 'flight', 'swim', 'burrow', 'teleport', 'leap', 'hover', 'climb',]; +const Symbols = ['\u2B47', '\u{E1502}', '\u{E1504}', '\u{E1506}', '\u{E1503}', '\u{E1501}', '\u{E1500}', '\u{E1505}',]; + +let Output = ''; +for (let i = 0; i < Types.length; i++) { + for (let j = 0; j <= 10; j++) { + if (Move.includes(\`\${Types[i]} \${j}\`)) { + Output += \`\${Symbols[i]} \${j} Square\${j > 1 ? 's' : ''}\\n\`; + } + } +} + +return Output.trim();`,markdown:!1,hasRule:!1},{type:"inline",id:"294ad96ad9ba",properties:[],nested:[{type:"property",id:"4a3beb0948e9",properties:["Health"],fallback:"-",display:"Health:",conditioned:!0},{type:"property",id:"7ac8d84999bb",properties:["Regen"],fallback:"-",display:"HP Regen:",conditioned:!0,dice:!0},{type:"property",id:"ea8b1b5bfb4a",properties:["Shield"],fallback:"",display:"Shield:",conditioned:!0},{type:"property",id:"596b79ab7b6a",properties:["Charge"],fallback:"-",display:"SH Charge:",conditioned:!0,dice:!0},{type:"property",id:"f8aa6b4a396a",properties:["Armor"],fallback:"-",display:"Armor:",conditioned:!0},{type:"property",id:"8a2a6a691918",properties:["Repair"],fallback:"-",display:"AR Repair:",conditioned:!0,dice:!0},{type:"property",id:"2b5b9b0b689b",properties:["Traits"],fallback:"-",conditioned:!0,display:"Traits:"}],cls:"familiar-tams"}],cls:""}],hasRule:!1,cls:"move-shat"},{type:"table",id:"cb4bdb99abdb",properties:["Abilityscore"],headers:["ACC","DMG","SPD","MST"],calculate:!1,fallback:"-",conditioned:!0,dice:!0},{type:"property",id:"494b58086a5a",properties:["Damage"],fallback:"-",display:"Damage:",conditioned:!0,dice:!0,hasRule:!0}],hasRule:!1,conditioned:!0},{type:"group",id:"eaa94ab86ba9",properties:[],nested:[{type:"property",id:"3a4a88da394a",properties:["Weapon"],fallback:"N/A",markdown:!0,display:"Weapon:",dice:!0,conditioned:!0},{type:"property",id:"5a8b7b08b8ca",properties:["Special"],fallback:"N/A",display:"Special:",markdown:!0,hasRule:!1,dice:!0,conditioned:!0},{type:"traits",id:"b9da9b7a6958",properties:["SuperSpecial"],fallback:"-",conditioned:!0,dice:!0,markdown:!0}],hasRule:!0,conditioned:!0},{type:"group",id:"799ada4bc8c9",properties:[],nested:[{type:"table",id:"5a2bdb7819b8",properties:["Hit-Crit"],headers:["2-7","8-15","16+"],calculate:!1,fallback:"-",conditioned:!0,dice:!0},{type:"traits",id:"ea68aaba0819",properties:["Actions"],fallback:"-",heading:"Actions",conditioned:!0,markdown:!0,dice:!0},{type:"traits",id:"d979ba0a69da",properties:["Skills"],fallback:"-",headingProp:!1,heading:"Skills",conditioned:!0,markdown:!0,dice:!0}],conditioned:!1,hasRule:!0},{type:"image",id:"999b68298919",properties:["Image"],fallback:"-",conditioned:!0}],id:"basic-bnb-familiar-layout",name:"Basic BnB Familiar Layout",edited:!1};var gn=[ni,uf,ff,mf,gf,pf];var Jf=It(Fs());var pn=require("obsidian");function Oy(i){re(i,"svelte-xx603q",".pagination.svelte-xx603q.svelte-xx603q{display:flex;justify-content:space-between;align-items:center;gap:1rem}.paginated-container.svelte-xx603q.svelte-xx603q{display:flex;align-items:center;gap:1rem}.paginated.svelte-xx603q.svelte-xx603q{display:flex;align-items:center;gap:1rem}.clickable-icon.active.svelte-xx603q.svelte-xx603q{background-color:var(--background-modifier-hover)}.slicer.svelte-xx603q.svelte-xx603q{display:flex;align-items:center;gap:0.5rem}.slicer.svelte-xx603q .per.svelte-xx603q{color:var(--text-muted);font-size:var(--font-smallest)}")}function bf(i,e,t){let n=i.slice();return n[16]=e[t],n}function Sy(i){let e,t=i[16]+"",n,a,s,r;function o(){return i[14](i[16])}return{c(){e=k("span"),n=me(t),a=W(),g(e,"class","clickable-icon svelte-xx603q"),oe(e,"active",i[16]==i[3])},m(l,c){D(l,e,c),b(e,n),b(e,a),s||(r=H(e,"click",o),s=!0)},p(l,c){i=l,c&16&&t!==(t=i[16]+"")&&we(n,t),c&24&&oe(e,"active",i[16]==i[3])},d(l){l&&A(e),s=!1,r()}}}function xy(i){let e,t,n;return{c(){e=k("span"),e.textContent="..."},m(a,s){D(a,e,s),t||(n=H(e,"click",i[13]),t=!0)},p:N,d(a){a&&A(e),t=!1,n()}}}function yf(i){let e;function t(s,r){return s[16]==null?xy:Sy}let n=t(i,-1),a=n(i);return{c(){a.c(),e=Oe()},m(s,r){a.m(s,r),D(s,e,r)},p(s,r){n===(n=t(s,r))&&a?a.p(s,r):(a.d(1),a=n(s),a&&(a.c(),a.m(e.parentNode,e)))},d(s){a.d(s),s&&A(e)}}}function Ty(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_=i[4],O=[];for(let E=0;E<_.length;E+=1)O[E]=yf(bf(i,_,E));return{c(){e=k("div"),t=k("div"),n=k("div"),s=W(),r=k("span"),r.textContent="per page",o=W(),l=k("div"),c=k("div"),h=W(),u=k("div");for(let E=0;E(r(),r=Tt(p,I=>t(3,s=I)),p),l,c=N,d=()=>(c(),c=Tt(y,I=>t(12,l=I)),y),h,u=N,f=()=>(u(),u=Tt(m,I=>t(15,h=I)),m);i.$$.on_destroy.push(()=>r()),i.$$.on_destroy.push(()=>c()),i.$$.on_destroy.push(()=>u());let{slice:m}=e;f();let{page:p}=e;o();let{pages:y}=e;d();let w=I=>{new pn.DropdownComponent(I).addOptions({10:"10",25:"25",50:"50",100:"100",200:"200"}).setValue(`${h}`).onChange(R=>Te(m,h=Number(R),h))},_,O=I=>{t(9,_=new pn.ExtraButtonComponent(I).setIcon("chevron-left").setDisabled(s==1).onClick(()=>{Te(p,s=s-1,s)}))},E,S=I=>{t(10,E=new pn.ExtraButtonComponent(I).setIcon("chevron-right").setDisabled(s==l).onClick(()=>{Te(p,s=Math.min(s+1,l),s)}))},v=I=>{let R=new pn.Menu;for(let T of n)R.addItem($=>{$.setTitle(`${T}`).onClick(()=>{Te(p,s=T,s)})});R.showAtMouseEvent(I)},x=I=>v(I),P=I=>Te(p,s=I,s);return i.$$set=I=>{"slice"in I&&f(t(0,m=I.slice)),"page"in I&&o(t(1,p=I.page)),"pages"in I&&d(t(2,y=I.pages))},i.$$.update=()=>{i.$$.dirty&4096&&t(11,n=[...Array(l).keys()].map(I=>I+1)),i.$$.dirty&5640&&E&&_&&(E.setDisabled(s==l),_.setDisabled(s==1)),i.$$.dirty&6152&&t(4,a=n.reduce((I,R)=>(R==1||s==1&&(R==2||R==3)||R==l||s==l&&(R==l-1||R==l-2)||R==s-1||R==s||R==s+1?I.push(R):I.length>=1&&I[I.length-1]!=null&&I.push(null),I),[]))},[m,p,y,s,a,w,O,S,v,_,E,n,l,x,P]}var Ul=class extends U{constructor(e){super(),G(this,e,Cy,Ty,j,{slice:0,page:1,pages:2},Oy)}},vf=Ul;var Yn=require("obsidian");var xi=Ne(""),bn=Ne([]),tr="None",kf=pt([xi,bn],([i,e])=>(i?.length?1:0)+(e?.length?1:0));function Ay(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","creature")},m(s,r){D(s,e,r),n||(a=ee(t=i[0].call(null,e)),n=!0)},p:N,i:N,o:N,d(s){s&&A(e),n=!1,a()}}}function Dy(i,e,t){let n;Se(i,xi,c=>t(3,n=c));let{item:a}=e,s=Pe(),r=Ot("plugin"),o,l=c=>{t(2,o=new Yn.Setting(c));let d,h=!1;if(Array.isArray(a.source)){let u=a.source.slice(0,4);a.source.length>4&&(u.push(`and ${a.source.length-4} more`),h=!0),d=ye(u,0,", ",!1)}else d=a.source;if(o.setDesc(d??""),h&&o.descEl.setAttr("aria-label",ye(a.source,0,", ",!1)),ve.isLocal(a.name))o.addExtraButton(u=>{u.setIcon("pencil").setTooltip("Edit").onClick(()=>{new Vn(r,a).open()})}).addExtraButton(u=>{u.setIcon("trash").setTooltip("Delete").onClick(async()=>{await r.deleteMonsters(a.name)})});else if(a.path){let u=r.app.vault.getFileByPath(a.path);if(!u)return;o.addExtraButton(f=>{f.setIcon("file-symlink").onClick(async()=>{await r.app.workspace.getLeaf().openFile(u),r.app.setting.close()})})}o.addExtraButton(u=>{u.setIcon("info").setTooltip("View").onClick(()=>{new Js(r,a).open()})})};return i.$$set=c=>{"item"in c&&t(1,a=c.item)},i.$$.update=()=>{if(i.$$.dirty&14&&o)if(n.length){let c=(0,Yn.prepareSimpleSearch)(n)(a.name);c&&(o.nameEl.empty(),(0,Yn.renderMatches)(o.nameEl,a.name,c.matches))}else o.setName(a.name)},[l,a,o,n]}var Vl=class extends U{constructor(e){super(),G(this,e,Dy,Ay,j,{item:1})}},wf=Vl;var sr=require("obsidian");var ir=require("obsidian");function Py(i){re(i,"svelte-1xutc2s",".search.svelte-1xutc2s,.search.svelte-1xutc2s input{width:100%}")}function My(i){let e,t,n,a;return{c(){e=k("div"),g(e,"class","search svelte-1xutc2s")},m(s,r){D(s,e,r),n||(a=ee(t=i[1].call(null,e)),n=!0)},p:N,i:N,o:N,d(s){s&&A(e),n=!1,a()}}}function Ey(i,e,t){let n,a=N,s=()=>(a(),a=Tt(r,c=>t(3,n=c)),r);i.$$.on_destroy.push(()=>a());let{filter:r}=e;s();let{placeholder:o}=e,l=c=>{let d=new ir.SearchComponent(c).setPlaceholder(o).onChange((0,ir.debounce)(h=>{Te(r,n=h,n)},10));r.subscribe(h=>{(!h||!h.length)&&d.setValue("")})};return i.$$set=c=>{"filter"in c&&s(t(0,r=c.filter)),"placeholder"in c&&t(2,o=c.placeholder)},[r,l,o]}var Yl=class extends U{constructor(e){super(),G(this,e,Ey,My,j,{filter:0,placeholder:2},Py)}},_f=Yl;function Qy(i){re(i,"svelte-66wdl1","div.svelte-66wdl1{display:inline-block;vertical-align:middle;margin:0 3pt;border-width:calc(1em / 5);border-style:solid;border-radius:50%;animation:var(--duration) infinite svelte-66wdl1-rotate}@keyframes svelte-66wdl1-rotate{100%{transform:rotate(360deg)}}")}function Iy(i){let e,t=`${i[0]} transparent ${i[0]} + ${i[0]}`;return{c(){e=k("div"),Be(e,"--duration",i[1]),g(e,"class","svelte-66wdl1"),Be(e,"border-color",t),Be(e,"width",i[2]),Be(e,"height",i[2])},m(n,a){D(n,e,a)},p(n,[a]){a&2&&Be(e,"--duration",n[1]);let s=a&2;(s||a&3&&t!==(t=`${n[0]} transparent ${n[0]} + ${n[0]}`))&&Be(e,"border-color",t),(s||a&6)&&Be(e,"width",n[2]),(s||a&6)&&Be(e,"height",n[2])},i:N,o:N,d(n){n&&A(e)}}}function Ry(i,e,t){let{color:n="cornflowerblue"}=e,{duration:a="1.5s"}=e,{size:s="1em"}=e;return i.$$set=r=>{"color"in r&&t(0,n=r.color),"duration"in r&&t(1,a=r.duration),"size"in r&&t(2,s=r.size)},[n,a,s]}var Gl=class extends U{constructor(e){super(),G(this,e,Ry,Iy,j,{color:0,duration:1,size:2},Qy)}},Kl=Gl;function nr(i){return Object.prototype.toString.call(i)==="[object Date]"}function Jl(i,e,t,n){if(typeof t=="number"||nr(t)){let a=n-t,s=(t-e)/(i.dt||1/60),r=i.opts.stiffness*a,o=i.opts.damping*s,l=(r-o)*i.inv_mass,c=(s+l)*i.dt;return Math.abs(c)Jl(i,e[s],t[s],n[s]));if(typeof t=="object"){let a={};for(let s in t)a[s]=Jl(i,e[s],t[s],n[s]);return a}else throw new Error(`Cannot spring ${typeof t} values`)}}function Of(i,e={}){let t=Ne(i),{stiffness:n=.15,damping:a=.8,precision:s=.01}=e,r,o,l,c=i,d=i,h=1,u=0,f=!1;function m(y,w={}){d=y;let _=l={};return i==null||w.hard||p.stiffness>=1&&p.damping>=1?(f=!0,r=Mi(),c=y,t.set(i=d),Promise.resolve()):(w.soft&&(u=1/((w.soft===!0?.5:+w.soft)*60),h=0),o||(r=Mi(),f=!1,o=Vi(O=>{if(f)return f=!1,o=null,!1;h=Math.min(h+u,1);let E={inv_mass:h,opts:p,settled:!0,dt:(O-r)*60/1e3},S=Jl(E,c,i,d);return r=O,c=i,t.set(i=S),E.settled&&(o=null),!E.settled})),new Promise(O=>{o.promise.then(()=>{_===l&&O()})}))}let p={set:m,update:(y,w)=>m(y(d,i),w),subscribe:t.subscribe,stiffness:n,damping:a,precision:s};return p}function Wy(i){let e,t=`rotate(${i[0].angle}deg) scale(${i[0].scale}) translate(${i[0].dx}px, + ${i[0].dy}px)`,n,a=i[11].default,s=st(a,i,i[10],null);return{c(){e=k("span"),s&&s.c(),Be(e,"transform",t)},m(r,o){D(r,e,o),s&&s.m(e,null),n=!0},p(r,[o]){s&&s.p&&(!n||o&1024)&&ot(s,a,r,r[10],n?rt(a,r[10],o,null):lt(r[10]),null),o&1&&t!==(t=`rotate(${r[0].angle}deg) scale(${r[0].scale}) translate(${r[0].dx}px, + ${r[0].dy}px)`)&&Be(e,"transform",t)},i(r){n||(M(s,r),n=!0)},o(r){Q(s,r),n=!1},d(r){r&&A(e),s&&s.d(r)}}}function Ny(i,e,t){let n,{$$slots:a={},$$scope:s}=e,{wiggle:r=!1}=e,{angle:o=0}=e,{scale:l=1}=e,{dx:c=0}=e,{dy:d=0}=e,{duration:h=200}=e,{stiffness:u=.05}=e,{damping:f=.1}=e,m={angle:0,scale:1,dx:0,dy:0},p=Of(m,{stiffness:u,damping:f});return Se(i,p,y=>t(0,n=y)),i.$$set=y=>{"wiggle"in y&&t(2,r=y.wiggle),"angle"in y&&t(3,o=y.angle),"scale"in y&&t(4,l=y.scale),"dx"in y&&t(5,c=y.dx),"dy"in y&&t(6,d=y.dy),"duration"in y&&t(7,h=y.duration),"stiffness"in y&&t(8,u=y.stiffness),"damping"in y&&t(9,f=y.damping),"$$scope"in y&&t(10,s=y.$$scope)},i.$$.update=()=>{i.$$.dirty&132&&r&&setTimeout(()=>t(2,r=!1),h),i.$$.dirty&124&&p.set(r?{scale:l,angle:o,dx:c,dy:d}:m)},[n,p,r,o,l,c,d,h,u,f,s,a]}var ec=class extends U{constructor(e){super(),G(this,e,Ny,Wy,j,{wiggle:2,angle:3,scale:4,dx:5,dy:6,duration:7,stiffness:8,damping:9})}},tc=ec;function Ly(i){let e,t,n=[i[0],{fill:"currentColor"},{viewBox:"0 0 16 16"}],a={};for(let s=0;s{t(0,e=at(at({},e),Ft(n)))},e=Ft(e),[e]}var ic=class extends U{constructor(e){super(),G(this,e,$y,Ly,j,{})}},nc=ic;function By(i){let e,t,n=[i[0],{viewBox:"0 0 24 24"},{fill:"currentColor"}],a={};for(let s=0;s{t(0,e=at(at({},e),Ft(n)))},e=Ft(e),[e]}var ac=class extends U{constructor(e){super(),G(this,e,zy,By,j,{})}},ar=ac;function Hy(i){let e,t,n=[i[0],{viewBox:"0 0 24 24"},{fill:"currentColor"}],a={};for(let s=0;s{t(0,e=at(at({},e),Ft(n)))},e=Ft(e),[e]}var sc=class extends U{constructor(e){super(),G(this,e,Fy,Hy,j,{})}},rc=sc;var nt=i=>i instanceof Object?(i.label===void 0&&console.error(`MultiSelect option ${JSON.stringify(i)} is an object but has no label key`),i.label):`${i}`;function Na(i,e=null){if(!i?.style)return null;if(!["selected","option",null].includes(e)){console.error(`MultiSelect: Invalid key=${e} for get_style`);return}if(typeof i=="object"&&i.style){if(typeof i.style=="string")return i.style;if(typeof i.style=="object"){if(e&&e in i.style)return i.style[e];console.error(`Invalid style object for option=${JSON.stringify(i)}`)}}}var{Boolean:jy}=oa;function Zy(i){re(i,"svelte-1r2hsto",".svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect){position:relative;align-items:center;display:flex;cursor:text;box-sizing:border-box;border:var(--sms-border, 1pt solid lightgray);border-radius:var(--sms-border-radius, 3pt);background:var(--sms-bg);width:var(--sms-width);max-width:var(--sms-max-width);padding:var(--sms-padding, 0 3pt);color:var(--sms-text-color);font-size:var(--sms-font-size, inherit);min-height:var(--sms-min-height, 22pt);margin:var(--sms-margin)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect.open){z-index:var(--sms-open-z-index, 4)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect:focus-within){border:var(--sms-focus-border, 1pt solid var(--sms-active-color, cornflowerblue))}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect.disabled){background:var(--sms-disabled-bg, lightgray);cursor:not-allowed}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.selected){display:flex;flex:1;padding:0;margin:0;flex-wrap:wrap}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.selected > li){align-items:center;border-radius:3pt;display:flex;margin:2pt;line-height:normal;transition:0.3s;white-space:nowrap;background:var(--sms-selected-bg, rgba(0, 0, 0, 0.15));padding:var(--sms-selected-li-padding, 1pt 5pt);color:var(--sms-selected-text-color, var(--sms-text-color))}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.selected > li[draggable='true']){cursor:grab}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.selected > li.active){background:var(--sms-li-active-bg, var(--sms-active-color, rgba(0, 0, 0, 0.15)))}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect button){border-radius:50%;display:flex;transition:0.2s;color:inherit;background:transparent;border:none;cursor:pointer;outline:none;padding:0;margin:0 0 0 3pt}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect button.remove-all){margin:0 3pt}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(ul.selected > li button:hover, button.remove-all:hover, button:focus){color:var(--sms-remove-btn-hover-color, lightskyblue);background:var(--sms-remove-btn-hover-bg, rgba(0, 0, 0, 0.2))}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect input){margin:auto 0;padding:0}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.selected > input){border:none;outline:none;background:none;flex:1;min-width:2em;color:var(--sms-text-color);font-size:inherit;cursor:inherit;border-radius:0}div.multiselect.svelte-1r2hsto>ul.selected.svelte-1r2hsto>input.svelte-1r2hsto::placeholder{padding-left:5pt;color:var(--sms-placeholder-color);opacity:var(--sms-placeholder-opacity)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > input.form-control){width:2em;position:absolute;background:transparent;border:none;outline:none;z-index:-1;opacity:0;pointer-events:none}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.options){list-style:none;top:100%;left:0;width:100%;position:absolute;overflow:auto;transition:all 0.2s;box-sizing:border-box;background:var(--sms-options-bg, white);max-height:var(--sms-options-max-height, 50vh);overscroll-behavior:var(--sms-options-overscroll, none);box-shadow:var(--sms-options-shadow, 0 0 14pt -8pt black);border:var(--sms-options-border);border-width:var(--sms-options-border-width);border-radius:var(--sms-options-border-radius, 1ex);padding:var(--sms-options-padding);margin:var(--sms-options-margin, inherit)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.options.hidden){visibility:hidden;opacity:0;transform:translateY(50px)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.options > li){padding:3pt 2ex;cursor:pointer;scroll-margin:var(--sms-options-scroll-margin, 100px)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.options .user-msg){display:block;padding:3pt 2ex}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.options > li.selected){background:var(--sms-li-selected-bg);color:var(--sms-li-selected-color)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.options > li.active){background:var(--sms-li-active-bg, var(--sms-active-color, rgba(0, 0, 0, 0.15)))}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(div.multiselect > ul.options > li.disabled){cursor:not-allowed;background:var(--sms-li-disabled-bg, #f5f5f6);color:var(--sms-li-disabled-text, #b8b8b8)}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto:where(span.max-select-msg){padding:0 3pt}.svelte-1r2hsto.svelte-1r2hsto.svelte-1r2hsto::highlight(sms-search-matches){color:mediumaquamarine}")}var Xy=i=>({searchText:i[0]&8,msgType:i[0]&1073810458,msg:i[0]&1073843226,option:i[0]&33554434}),Sf=i=>({searchText:i[3],msgType:i[116],msg:i[117],option:i[118],idx:i[125]});function oc(i){let e=i.slice(),t={dupe:e[15],create:e[10],"no-match":e[30]}[e[116]];return e[117]=t,e}function lc(i){let e=i.slice(),t=e[4].map(nt).includes(e[3]);e[112]=t;let n=!e[16]&&e[112]&&"dupe";e[113]=n;let a=!!(e[11]&&e[10])&&"create";e[114]=a;let s=!!(e[1]?.length==0&&e[30])&&"no-match";e[115]=s;let r=e[113]||e[114]||e[115];return e[116]=r,e}function xf(i,e,t){let n=i.slice();n[118]=e[t],n[125]=t;let a=n[118]instanceof Object?n[118]:{label:n[118]};n[119]=a.label,n[42]=a.disabled!==void 0?a.disabled:null,n[120]=a.title!==void 0?a.title:null,n[121]=a.selectedTitle!==void 0?a.selectedTitle:null,n[122]=a.disabledTitle!==void 0?a.disabledTitle:n[13];let s=n[0]===n[125];return n[123]=s,n}var qy=i=>({option:i[0]&33554434}),Tf=i=>({option:i[118],idx:i[125]}),Uy=i=>({option:i[0]&33554434}),Cf=i=>({option:i[118],idx:i[125]}),Vy=i=>({option:i[0]&16,idx:i[0]&16}),Af=i=>({option:i[118],idx:i[125]}),Yy=i=>({option:i[0]&16,idx:i[0]&16}),Df=i=>({option:i[118],idx:i[125]}),Gy=i=>({option:i[0]&16,idx:i[0]&16}),Pf=i=>({option:i[118],idx:i[125]}),Ky=i=>({selected:i[0]&16,disabled:i[1]&2048,invalid:i[0]&128,id:i[0]&262144,placeholder:i[1]&8,open:i[0]&256,required:i[1]&128,option:i[0]&16,idx:i[0]&16}),Mf=i=>({selected:i[4],disabled:i[42],invalid:i[7],id:i[18],placeholder:i[34],open:i[8],required:i[38],option:i[118],idx:i[125]});function Ef(i,e,t){let n=i.slice();return n[118]=e[t],n[125]=t,n}var Jy=i=>({option:i[0]&16,idx:i[0]&16}),Qf=i=>({option:i[118],idx:i[125]}),ev=i=>({option:i[0]&16,idx:i[0]&16}),If=i=>({option:i[118],idx:i[125]}),tv=i=>({option:i[0]&16,idx:i[0]&16}),Rf=i=>({option:i[118],idx:i[125]}),iv=i=>({open:i[0]&256,option:i[0]&16,idx:i[0]&16}),Wf=i=>({open:i[8],option:i[118],idx:i[125]});function nv(i){let e,t;return e=new nc({props:{width:"15px",style:"min-width: 1em; padding: 0 1pt; cursor: pointer;"}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p:N,i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function av(i){let e=nt(i[118])+"",t;return{c(){t=me(e)},m(n,a){D(n,t,a)},p(n,a){a[0]&16&&e!==(e=nt(n[118])+"")&&we(t,e)},d(n){n&&A(t)}}}function sv(i){let e,t=nt(i[118])+"",n;return{c(){e=new pi(!1),n=Oe(),e.a=n},m(a,s){e.m(t,a,s),D(a,n,s)},p(a,s){s[0]&16&&t!==(t=nt(a[118])+"")&&e.p(t)},d(a){a&&A(n),a&&e.d()}}}function rv(i){let e;function t(s,r){return s[32]?sv:av}let n=t(i,[-1,-1,-1,-1,-1]),a=n(i);return{c(){a.c(),e=Oe()},m(s,r){a.m(s,r),D(s,e,r)},p(s,r){n===(n=t(s,r))&&a?a.p(s,r):(a.d(1),a=n(s),a&&(a.c(),a.m(e.parentNode,e)))},d(s){a.d(s),s&&A(e)}}}function ov(i){let e,t=i[69].default,n=st(t,i,i[107],If),a=n||rv(i);return{c(){a&&a.c()},m(s,r){a&&a.m(s,r),e=!0},p(s,r){n?n.p&&(!e||r[0]&16|r[3]&16384)&&ot(n,t,s,s[107],e?rt(t,s[107],r,ev):lt(s[107]),If):a&&a.p&&(!e||r[0]&16|r[1]&2)&&a.p(s,e?r:[-1,-1,-1,-1,-1])},i(s){e||(M(a,s),e=!0)},o(s){Q(a,s),e=!1},d(s){a&&a.d(s)}}}function Nf(i){let e,t,n,a,s,r=i[69]["remove-icon"],o=st(r,i,i[107],Qf),l=o||lv(i);function c(){return i[89](i[118])}function d(){return i[90](i[118])}return{c(){e=k("button"),l&&l.c(),g(e,"type","button"),g(e,"title",t=i[36]+" "+nt(i[118])),g(e,"class","remove svelte-1r2hsto")},m(h,u){D(h,e,u),l&&l.m(e,null),n=!0,a||(s=[H(e,"mouseup",si(c)),H(e,"keydown",function(){Ie(i[54](d))&&i[54](d).apply(this,arguments)})],a=!0)},p(h,u){i=h,o&&o.p&&(!n||u[0]&16|u[3]&16384)&&ot(o,r,i,i[107],n?rt(r,i[107],u,Jy):lt(i[107]),Qf),(!n||u[0]&16|u[1]&32&&t!==(t=i[36]+" "+nt(i[118])))&&g(e,"title",t)},i(h){n||(M(l,h),n=!0)},o(h){Q(l,h),n=!1},d(h){h&&A(e),l&&l.d(h),a=!1,ce(s)}}}function lv(i){let e,t;return e=new ar({props:{width:"15px"}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p:N,i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function Lf(i,e){let t,n,a,s,r,o,l=N,c,d,h,u=e[69].selected,f=st(u,e,e[107],Rf),m=f||ov(e),p=!e[42]&&(e[37]===null||e[4].length>e[37])&&Nf(e);function y(){return e[91](e[125])}return{key:i,first:null,c(){t=k("li"),m&&m.c(),n=W(),p&&p.c(),g(t,"class",a=Pi(e[23])+" svelte-1r2hsto"),g(t,"role","option"),g(t,"aria-selected","true"),g(t,"draggable",s=e[39]&&!e[42]&&e[4].length>1),g(t,"style",r=Na(e[118],"selected")),oe(t,"active",e[46]===e[125]),this.first=t},m(w,_){D(w,t,_),m&&m.m(t,null),b(t,n),p&&p.m(t,null),c=!0,d||(h=[H(t,"dragstart",function(){Ie(e[57](e[125]))&&e[57](e[125]).apply(this,arguments)}),H(t,"drop",Ur(function(){Ie(e[56](e[125]))&&e[56](e[125]).apply(this,arguments)})),H(t,"dragenter",y),H(t,"dragover",Ur(e[85]))],d=!0)},p(w,_){e=w,f?f.p&&(!c||_[0]&16|_[3]&16384)&&ot(f,u,e,e[107],c?rt(u,e[107],_,tv):lt(e[107]),Rf):m&&m.p&&(!c||_[0]&16|_[1]&2|_[3]&16384)&&m.p(e,c?_:[-1,-1,-1,-1,-1]),!e[42]&&(e[37]===null||e[4].length>e[37])?p?(p.p(e,_),_[0]&16|_[1]&2112&&M(p,1)):(p=Nf(e),p.c(),M(p,1),p.m(t,null)):p&&(he(),Q(p,1,1,()=>{p=null}),de()),(!c||_[0]&8388608&&a!==(a=Pi(e[23])+" svelte-1r2hsto"))&&g(t,"class",a),(!c||_[0]&16|_[1]&2304&&s!==(s=e[39]&&!e[42]&&e[4].length>1))&&g(t,"draggable",s),(!c||_[0]&16&&r!==(r=Na(e[118],"selected")))&&g(t,"style",r),(!c||_[0]&8388624|_[1]&32768)&&oe(t,"active",e[46]===e[125])},r(){o=t.getBoundingClientRect()},f(){Qi(t),l()},a(){l(),l=Ei(t,o,$i,{duration:100})},i(w){c||(M(m,w),M(p),c=!0)},o(w){Q(m,w),Q(p),c=!1},d(w){w&&A(t),m&&m.d(w),p&&p.d(),d=!1,ce(h)}}}function $f(i){let e,t=i[69].spinner,n=st(t,i,i[107],Pf),a=n||cv(i);return{c(){a&&a.c()},m(s,r){a&&a.m(s,r),e=!0},p(s,r){n&&n.p&&(!e||r[0]&16|r[3]&16384)&&ot(n,t,s,s[107],e?rt(t,s[107],r,Gy):lt(s[107]),Pf)},i(s){e||(M(a,s),e=!0)},o(s){Q(a,s),e=!1},d(s){a&&a.d(s)}}}function cv(i){let e,t;return e=new Kl({}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function hv(i){let e,t,n,a=i[26]&&(i[26]>1||i[27])&&Bf(i),s=i[26]!==1&&i[4].length>1&&zf(i);return{c(){a&&a.c(),e=W(),s&&s.c(),t=Oe()},m(r,o){a&&a.m(r,o),D(r,e,o),s&&s.m(r,o),D(r,t,o),n=!0},p(r,o){r[26]&&(r[26]>1||r[27])?a?(a.p(r,o),o[0]&201326592&&M(a,1)):(a=Bf(r),a.c(),M(a,1),a.m(e.parentNode,e)):a&&(he(),Q(a,1,1,()=>{a=null}),de()),r[26]!==1&&r[4].length>1?s?(s.p(r,o),o[0]&67108880&&M(s,1)):(s=zf(r),s.c(),M(s,1),s.m(t.parentNode,t)):s&&(he(),Q(s,1,1,()=>{s=null}),de())},i(r){n||(M(a),M(s),n=!0)},o(r){Q(a),Q(s),n=!1},d(r){a&&a.d(r),r&&A(e),s&&s.d(r),r&&A(t)}}}function dv(i){let e,t=i[69]["disabled-icon"],n=st(t,i,i[107],Df),a=n||mv(i);return{c(){a&&a.c()},m(s,r){a&&a.m(s,r),e=!0},p(s,r){n&&n.p&&(!e||r[0]&16|r[3]&16384)&&ot(n,t,s,s[107],e?rt(t,s[107],r,Yy):lt(s[107]),Df)},i(s){e||(M(a,s),e=!0)},o(s){Q(a,s),e=!1},d(s){a&&a.d(s)}}}function Bf(i){let e,t,n;function a(r){i[94](r)}let s={angle:20,$$slots:{default:[uv]},$$scope:{ctx:i}};return i[43]!==void 0&&(s.wiggle=i[43]),e=new tc({props:s}),Re.push(()=>Nt(e,"wiggle",a)),{c(){se(e.$$.fragment)},m(r,o){ie(e,r,o),n=!0},p(r,o){let l={};o[0]&469762064|o[3]&16384&&(l.$$scope={dirty:o,ctx:r}),!t&&o[1]&4096&&(t=!0,l.wiggle=r[43],Wt(()=>t=!1)),e.$set(l)},i(r){n||(M(e.$$.fragment,r),n=!0)},o(r){Q(e.$$.fragment,r),n=!1},d(r){ne(e,r)}}}function uv(i){let e,t=i[27]?.(i[4].length,i[26])+"",n,a;return{c(){e=k("span"),n=me(t),g(e,"class",a="max-select-msg "+i[28]+" svelte-1r2hsto")},m(s,r){D(s,e,r),b(e,n)},p(s,r){r[0]&201326608&&t!==(t=s[27]?.(s[4].length,s[26])+"")&&we(n,t),r[0]&268435456&&a!==(a="max-select-msg "+s[28]+" svelte-1r2hsto")&&g(e,"class",a)},d(s){s&&A(e)}}}function zf(i){let e,t,n,a,s=i[69]["remove-icon"],r=st(s,i,i[107],Af),o=r||fv(i);return{c(){e=k("button"),o&&o.c(),g(e,"type","button"),g(e,"class","remove remove-all svelte-1r2hsto"),g(e,"title",i[35])},m(l,c){D(l,e,c),o&&o.m(e,null),t=!0,n||(a=[H(e,"mouseup",si(i[53])),H(e,"keydown",i[54](i[53]))],n=!0)},p(l,c){r&&r.p&&(!t||c[0]&16|c[3]&16384)&&ot(r,s,l,l[107],t?rt(s,l[107],c,Vy):lt(l[107]),Af),(!t||c[1]&16)&&g(e,"title",l[35])},i(l){t||(M(o,l),t=!0)},o(l){Q(o,l),t=!1},d(l){l&&A(e),o&&o.d(l),n=!1,ce(a)}}}function fv(i){let e,t;return e=new ar({props:{width:"15px"}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p:N,i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function mv(i){let e,t;return e=new rc({props:{width:"14pt",style:"margin: 0 2pt;","data-name":"disabled-icon"}}),{c(){se(e.$$.fragment)},m(n,a){ie(e,n,a),t=!0},p:N,i(n){t||(M(e.$$.fragment,n),t=!0)},o(n){Q(e.$$.fragment,n),t=!1},d(n){ne(e,n)}}}function Hf(i){let e,t,n,a,s,r,o=i[1].slice(0,Math.max(0,i[25]??0)||1/0),l=[];for(let h=0;hQ(l[h],1,1,()=>{l[h]=null}),d=i[3]&&jf(lc(i));return{c(){e=k("ul");for(let h=0;h1),g(e,"aria-expanded",i[8]),g(e,"aria-disabled",s=i[42]?"true":null),oe(e,"hidden",!i[8])},m(h,u){D(h,e,u);for(let f=0;f{d=null}),de()),(!r||u[1]&512&&n!==(n="options "+h[40]+" svelte-1r2hsto"))&&g(e,"class",n),(!r||u[0]&67108864&&a!==(a=h[26]===null||h[26]>1))&&g(e,"aria-multiselectable",a),(!r||u[0]&256)&&g(e,"aria-expanded",h[8]),(!r||u[1]&2048&&s!==(s=h[42]?"true":null))&&g(e,"aria-disabled",s),(!r||u[0]&256|u[1]&512)&&oe(e,"hidden",!h[8])},i(h){if(!r){for(let u=0;u{n=null}),de())},i(a){t||(M(n),t=!0)},o(a){Q(n),t=!1},d(a){n&&n.d(a),a&&A(e)}}}function Zf(i){let e,t,n,a,s=i[69]["user-msg"],r=st(s,i,i[107],Sf),o=r||vv(i);return{c(){e=k("li"),o&&o.c(),g(e,"title",i[10]),g(e,"role","option"),g(e,"aria-selected","false"),g(e,"class","user-msg svelte-1r2hsto"),oe(e,"active",i[44]),Be(e,"cursor",{dupe:"not-allowed",create:"pointer","no-match":"default"}[i[116]])},m(l,c){D(l,e,c),o&&o.m(e,null),t=!0,n||(a=[H(e,"mousedown",si(i[70])),H(e,"mouseup",si(i[100])),H(e,"mouseover",i[101]),H(e,"focus",i[102]),H(e,"mouseout",i[103]),H(e,"blur",i[104])],n=!0)},p(l,c){r?r.p&&(!t||c[0]&1107397658|c[3]&16384)&&ot(r,s,l,l[107],t?rt(s,l[107],c,Xy):lt(l[107]),Sf):o&&o.p&&(!t||c[0]&1073843226)&&o.p(l,t?c:[-1,-1,-1,-1,-1]),(!t||c[0]&1024)&&g(e,"title",l[10]),(!t||c[1]&8192)&&oe(e,"active",l[44]),c[0]&1073810458&&Be(e,"cursor",{dupe:"not-allowed",create:"pointer","no-match":"default"}[l[116]])},i(l){t||(M(o,l),t=!0)},o(l){Q(o,l),t=!1},d(l){l&&A(e),o&&o.d(l),n=!1,ce(a)}}}function vv(i){let e=i[117]+"",t;return{c(){t=me(e)},m(n,a){D(n,t,a)},p(n,a){a[0]&1073843226&&e!==(e=n[117]+"")&&we(t,e)},d(n){n&&A(t)}}}function kv(i){let e,t,n,a,s,r,o,l=[],c=new Map,d,h,u,f,m,p,y,w,_,O,E,S,v,x,P,I,R;Dt(i[86]);let T=i[69]["expand-icon"],$=st(T,i,i[107],Wf),K=$||nv(i),Z=i[4],F=X=>X[16]?[X[17](X[118]),X[125]]:X[17](X[118]);for(let X=0;X0?1:-1}~(O=J(i,[-1,-1,-1,-1,-1]))&&(E=ae[O]=L[O](i));let ue=(i[3]&&i[30]||i[2]?.length>0)&&Hf(i);return{c(){e=k("div"),t=k("input"),s=W(),K&&K.c(),r=W(),o=k("ul");for(let X=0;X=Number(i[38])?JSON.stringify(i[4]):null,g(t,"tabindex","-1"),g(t,"aria-hidden","true"),g(t,"aria-label","ignore this, used only to prevent form submission if select is required but empty"),g(t,"class","form-control svelte-1r2hsto"),g(h,"class",u=Pi(i[19])+" svelte-1r2hsto"),g(h,"id",i[18]),h.disabled=i[42],g(h,"autocomplete",i[12]),g(h,"inputmode",i[20]),g(h,"pattern",i[33]),g(h,"placeholder",f=i[4].length==0?i[34]:null),g(h,"aria-invalid",m=i[7]?"true":null),g(h,"ondrop","return false"),g(o,"class",y="selected "+i[41]+" svelte-1r2hsto"),g(o,"aria-label","selected options"),g(e,"class",v="multiselect "+i[31]+" svelte-1r2hsto"),g(e,"title",x=i[42]?i[14]:null),g(e,"data-id",i[18]),g(e,"role","searchbox"),g(e,"tabindex","-1"),oe(e,"disabled",i[42]),oe(e,"single",i[26]===1),oe(e,"open",i[8]),oe(e,"invalid",i[7])},m(X,z){D(X,e,z),b(e,t),i[87](t),b(e,s),K&&K.m(e,null),b(e,r),b(e,o);for(let ge=0;ge=Number(X[38])?JSON.stringify(X[4]):null)&&t.value!==a)&&(t.value=a),$&&$.p&&(!P||z[0]&272|z[3]&16384)&&ot($,T,X,X[107],P?rt(T,X[107],z,iv):lt(X[107]),Wf),z[0]&8585232|z[1]&109611362|z[3]&16384){Z=X[4],he();for(let xe=0;xe{Y=null}),de());let ge=O;O=J(X,z),O===ge?~O&&ae[O].p(X,z):(E&&(he(),Q(ae[ge],1,1,()=>{ae[ge]=null}),de()),~O?(E=ae[O],E?E.p(X,z):(E=ae[O]=L[O](X),E.c()),M(E,1),E.m(e,S)):E=null),X[3]&&X[30]||X[2]?.length>0?ue?(ue.p(X,z),z[0]&1073741836&&M(ue,1)):(ue=Hf(X),ue.c(),M(ue,1),ue.m(e,null)):ue&&(he(),Q(ue,1,1,()=>{ue=null}),de()),(!P||z[1]&1&&v!==(v="multiselect "+X[31]+" svelte-1r2hsto"))&&g(e,"class",v),(!P||z[0]&16384|z[1]&2048&&x!==(x=X[42]?X[14]:null))&&g(e,"title",x),(!P||z[0]&262144)&&g(e,"data-id",X[18]),(!P||z[1]&2049)&&oe(e,"disabled",X[42]),(!P||z[0]&67108864|z[1]&1)&&oe(e,"single",X[26]===1),(!P||z[0]&256|z[1]&1)&&oe(e,"open",X[8]),(!P||z[0]&128|z[1]&1)&&oe(e,"invalid",X[7])},i(X){if(!P){M(K,X);for(let z=0;z`${nt(C)}`.toLowerCase()}=e,{filterFunc:E=(C,De)=>De?`${nt(C)}`.toLowerCase().includes(De.toLowerCase()):!0}=e,{closeDropdownOnSelect:S="desktop"}=e,{form_input:v=null}=e,{highlightMatches:x=!0}=e,{id:P=null}=e,{input:I=null}=e,{inputClass:R=""}=e,{inputmode:T=null}=e,{invalid:$=!1}=e,{liActiveOptionClass:K=""}=e,{liOptionClass:Z=""}=e,{liSelectedClass:F=""}=e,{loading:V=!1}=e,{matchingOptions:B=[]}=e,{maxOptions:Y=void 0}=e,{maxSelect:L=null}=e,{maxSelectMsg:ae=(C,De)=>De>1?`${C}/${De}`:""}=e,{maxSelectMsgClass:J=""}=e,{name:ue=null}=e,{noMatchingOptionsMsg:X="No matching options"}=e,{open:z=!1}=e,{options:ge}=e,{outerDiv:xe=null}=e,{outerDivClass:Me=""}=e,{parseLabelsAsHtml:et=!1}=e,{pattern:St=null}=e,{placeholder:kn=null}=e,{removeAllTitle:wn="Remove all"}=e,{removeBtnTitle:Et="Remove"}=e,{minSelect:Qt=null}=e,{required:ft=!1}=e,{resetFilterOnAdd:ur=!0}=e,{searchText:Ke=""}=e,{selected:Ae=ge?.filter(C=>C instanceof Object&&C?.preselected).slice(0,L??void 0)??[]}=e,{sortSelected:Xi=!1}=e,{selectedOptionsDraggable:fr=!Xi}=e,{ulOptionsClass:vc=""}=e,{ulSelectedClass:kc=""}=e,{value:Ua=null}=e,im=C=>{t(59,Ua=L===1?C[0]??null:C)},nm=C=>{L===1?t(4,Ae=C?[C]:[]):t(4,Ae=C??[])},Va=!1;ge?.length>0||(c||V||p||d?ge=[]:console.error("MultiSelect received no options")),L!==null&&L<1&&console.error(`MultiSelect's maxSelect must be null or positive integer, got ${L}`),Array.isArray(Ae)||console.error(`MultiSelect's selected prop should always be an array, got ${Ae}`),L&&typeof ft=="number"&&ft>L&&console.error(`MultiSelect maxSelect=${L} < required=${ft}, makes it impossible for users to submit a valid form`),et&&c&&console.warn("Don't combine parseLabelsAsHtml and allowUserOptions. It's susceptible to XSS attacks!"),Xi&&fr&&console.warn("MultiSelect's sortSelected and selectedOptionsDraggable should not be combined as any user re-orderings of selected options will be undone by sortSelected on component re-renders."),c&&!l&&l!==null&&console.error(`MultiSelect has allowUserOptions=${c} but createOptionMsg=${l} is falsy. This prevents the "Add option" from showing up, resulting in a confusing user experience.`),Y&&(typeof Y!="number"||Y<0||Y%1!=0)&&console.error(`MultiSelect's maxOptions must be undefined or a positive integer, got ${Y}`);let fi=Pe(),qi=!1,mr;if(r!==null&&!B[r])throw`Run time error, activeIndex=${r} is out of bounds, matchingOptions.length=${B.length}`;function ea(C,De){L&&L>1&&Ae.length>=L&&t(43,Va=!0),!isNaN(Number(C))&&typeof Ae.map(nt)[0]=="number"&&(C=Number(C));let Ze=Ae.map(O).includes(O(C));if((L===null||L===1||Ae.length0&&(typeof ge[0]=="object"?C={label:Ke}:(["number","undefined"].includes(typeof ge[0])&&!isNaN(Number(Ke))?C=Number(Ke):C=Ke,fi("create",{option:C})),c==="append"&&t(2,ge=[...ge,C])),ur&&t(3,Ke=""),["",void 0,null].includes(C)){console.error(`MultiSelect: encountered falsy option ${C}`);return}L===1?t(4,Ae=[C]):(t(4,Ae=[...Ae,C]),Xi===!0?t(4,Ae=Ae.sort((br,Ui)=>{let[ia,Ga]=[nt(br),nt(Ui)];return`${ia}`.localeCompare(`${Ga}`)})):typeof Xi=="function"&&t(4,Ae=Ae.sort(Xi)));let mt=Ae.length===L,_n=S===!0||S==="desktop"&&mrO(mt)===O(C)),[Ze]=Ae.splice(De,1);if(Ze===void 0&&c&&(Ze=typeof ge[0]?{label:C}:C),Ze===void 0)return console.error(`Multiselect can't remove selected option ${JSON.stringify(C)}, not found in selected list`);t(4,Ae=[...Ae]),t(7,$=!1),v?.setCustomValidity(""),fi("remove",{option:Ze}),fi("change",{option:Ze,type:"remove"})}function wc(C){p||(t(8,z=!0),C instanceof FocusEvent||I?.focus(),fi("open",{event:C}))}function gr(C){t(8,z=!1),I?.blur(),t(0,r=null),fi("close",{event:C})}async function am(C){if(C.key==="Escape"||C.key==="Tab")gr(C),t(3,Ke="");else if(C.key==="Enter")C.preventDefault(),o?(Ae.includes(o)?ta(o):ea(o,C),t(3,Ke="")):c&&Ke.length>0?ea(Ke,C):wc(C);else if(["ArrowDown","ArrowUp"].includes(C.key)){if(r===null&&B.length>0){t(0,r=0);return}else if(c&&!B.length&&Ke.length>0){t(44,qi=!qi);return}else if(r===null)return;C.preventDefault();let De=C.key==="ArrowUp"?-1:1;if(t(0,r=(r+De)%B.length),r<0&&t(0,r=B.length-1),u){await us();let Ze=document.querySelector("ul.options > li.active");Ze&&Ze.scrollIntoViewIfNeeded?.()}}else C.key==="Backspace"&&Ae.length>0&&!Ke?ta(Ae.at(-1)):B.length>0&&t(0,r=0)}function sm(){fi("removeAll",{options:Ae}),fi("change",{options:Ae,type:"removeAll"}),t(4,Ae=[]),t(3,Ke="")}let rm=C=>De=>{["Enter","Space"].includes(De.code)&&(De.preventDefault(),C())};function om(C){xe&&!xe.contains(C.target)&&gr(C)}let pr=null,lm=C=>De=>{if(!De.dataTransfer)return;De.dataTransfer.dropEffect="move";let Ze=parseInt(De.dataTransfer.getData("text/plain")),mt=[...Ae];ZeDe=>{De.dataTransfer&&(De.dataTransfer.effectAllowed="move",De.dataTransfer.dropEffect="move",De.dataTransfer.setData("text/plain",`${C}`))},Ya;function hm(C){if(!x||typeof CSS>"u"||!CSS.highlights)return;CSS.highlights.clear();let De=C?.target?.value.trim().toLowerCase();if(!De)return;let Ze=document.createTreeWalker(Ya,NodeFilter.SHOW_TEXT,{acceptNode:Ui=>Ui?.textContent===X?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),mt=[],_n=Ze.nextNode();for(;_n;)mt.push(_n),_n=Ze.nextNode();let br=mt.map(Ui=>{let ia=Ui.textContent?.toLowerCase(),Ga=[],yr=0;for(;ia&&yr{let vr=new Range;return vr.setStart(Ui,On),vr.setEnd(Ui,On+De.length),vr})});CSS.highlights.set("sms-search-matches",new Highlight(...br.flat()))}function dm(C){je.call(this,i,C)}function um(C){je.call(this,i,C)}function fm(C){je.call(this,i,C)}function mm(C){je.call(this,i,C)}function gm(C){je.call(this,i,C)}function pm(C){je.call(this,i,C)}function bm(C){je.call(this,i,C)}function ym(C){je.call(this,i,C)}function vm(C){je.call(this,i,C)}function km(C){je.call(this,i,C)}function wm(C){je.call(this,i,C)}function _m(C){je.call(this,i,C)}function Om(C){je.call(this,i,C)}function Sm(C){je.call(this,i,C)}function xm(C){je.call(this,i,C)}function Tm(C){je.call(this,i,C)}function Cm(){t(45,mr=window.innerWidth)}function Am(C){Re[C?"unshift":"push"](()=>{v=C,t(5,v)})}let Dm=()=>{t(7,$=!0);let C;L&&L>1&&Number(ft)>1?C=`Please select between ${ft} and ${L} options`:Number(ft)>1?C=`Please select at least ${ft} options`:C="Please select an option",v?.setCustomValidity(C)},Pm=C=>ta(C),Mm=C=>ta(C),Em=C=>t(46,pr=C);function Qm(C){Re[C?"unshift":"push"](()=>{I=C,t(6,I)})}function Im(){Ke=this.value,t(3,Ke)}function Rm(C){Va=C,t(43,Va)}let Wm=(C,De,Ze)=>{C||ea(De,Ze)},Nm=(C,De)=>{C||t(0,r=De)},Lm=(C,De)=>{C||t(0,r=De)},$m=()=>t(0,r=null),Bm=()=>t(0,r=null),zm=C=>{c&&ea(Ke,C)},Hm=()=>t(44,qi=!0),Fm=()=>t(44,qi=!0),jm=()=>t(44,qi=!1),Zm=()=>t(44,qi=!1);function Xm(C){Re[C?"unshift":"push"](()=>{Ya=C,t(47,Ya)})}function qm(C){Re[C?"unshift":"push"](()=>{xe=C,t(9,xe)})}return i.$$set=C=>{"activeIndex"in C&&t(0,r=C.activeIndex),"activeOption"in C&&t(60,o=C.activeOption),"createOptionMsg"in C&&t(10,l=C.createOptionMsg),"allowUserOptions"in C&&t(11,c=C.allowUserOptions),"allowEmpty"in C&&t(61,d=C.allowEmpty),"autocomplete"in C&&t(12,h=C.autocomplete),"autoScroll"in C&&t(62,u=C.autoScroll),"breakpoint"in C&&t(63,f=C.breakpoint),"defaultDisabledTitle"in C&&t(13,m=C.defaultDisabledTitle),"disabled"in C&&t(42,p=C.disabled),"disabledInputTitle"in C&&t(14,y=C.disabledInputTitle),"duplicateOptionMsg"in C&&t(15,w=C.duplicateOptionMsg),"duplicates"in C&&t(16,_=C.duplicates),"key"in C&&t(17,O=C.key),"filterFunc"in C&&t(64,E=C.filterFunc),"closeDropdownOnSelect"in C&&t(65,S=C.closeDropdownOnSelect),"form_input"in C&&t(5,v=C.form_input),"highlightMatches"in C&&t(66,x=C.highlightMatches),"id"in C&&t(18,P=C.id),"input"in C&&t(6,I=C.input),"inputClass"in C&&t(19,R=C.inputClass),"inputmode"in C&&t(20,T=C.inputmode),"invalid"in C&&t(7,$=C.invalid),"liActiveOptionClass"in C&&t(21,K=C.liActiveOptionClass),"liOptionClass"in C&&t(22,Z=C.liOptionClass),"liSelectedClass"in C&&t(23,F=C.liSelectedClass),"loading"in C&&t(24,V=C.loading),"matchingOptions"in C&&t(1,B=C.matchingOptions),"maxOptions"in C&&t(25,Y=C.maxOptions),"maxSelect"in C&&t(26,L=C.maxSelect),"maxSelectMsg"in C&&t(27,ae=C.maxSelectMsg),"maxSelectMsgClass"in C&&t(28,J=C.maxSelectMsgClass),"name"in C&&t(29,ue=C.name),"noMatchingOptionsMsg"in C&&t(30,X=C.noMatchingOptionsMsg),"open"in C&&t(8,z=C.open),"options"in C&&t(2,ge=C.options),"outerDiv"in C&&t(9,xe=C.outerDiv),"outerDivClass"in C&&t(31,Me=C.outerDivClass),"parseLabelsAsHtml"in C&&t(32,et=C.parseLabelsAsHtml),"pattern"in C&&t(33,St=C.pattern),"placeholder"in C&&t(34,kn=C.placeholder),"removeAllTitle"in C&&t(35,wn=C.removeAllTitle),"removeBtnTitle"in C&&t(36,Et=C.removeBtnTitle),"minSelect"in C&&t(37,Qt=C.minSelect),"required"in C&&t(38,ft=C.required),"resetFilterOnAdd"in C&&t(67,ur=C.resetFilterOnAdd),"searchText"in C&&t(3,Ke=C.searchText),"selected"in C&&t(4,Ae=C.selected),"sortSelected"in C&&t(68,Xi=C.sortSelected),"selectedOptionsDraggable"in C&&t(39,fr=C.selectedOptionsDraggable),"ulOptionsClass"in C&&t(40,vc=C.ulOptionsClass),"ulSelectedClass"in C&&t(41,kc=C.ulSelectedClass),"value"in C&&t(59,Ua=C.value),"$$scope"in C&&t(107,s=C.$$scope)},i.$$.update=()=>{i.$$.dirty[0]&16&&im(Ae),i.$$.dirty[1]&268435456&&nm(Ua),i.$$.dirty[0]&196636|i.$$.dirty[2]&4&&t(1,B=ge.filter(C=>E(C,Ke)&&(!Ae.map(O).includes(O(C))||_))),i.$$.dirty[0]&3&&t(60,o=B[r??-1]??null),i.$$.dirty[0]&16&&t(48,n=C=>Ae.map(nt).includes(C))},[r,B,ge,Ke,Ae,v,I,$,z,xe,l,c,h,m,y,w,_,O,P,R,T,K,Z,F,V,Y,L,ae,J,ue,X,Me,et,St,kn,wn,Et,Qt,ft,fr,vc,kc,p,Va,qi,mr,pr,Ya,n,ea,ta,wc,am,sm,rm,om,lm,cm,hm,Ua,o,d,u,f,E,S,x,ur,Xi,a,dm,um,fm,mm,gm,pm,bm,ym,vm,km,wm,_m,Om,Sm,xm,Tm,Cm,Am,Dm,Pm,Mm,Em,Qm,Im,Rm,Wm,Nm,Lm,$m,Bm,zm,Hm,Fm,jm,Zm,Xm,qm,s]}var cc=class extends U{constructor(e){super(),G(this,e,wv,kv,j,{activeIndex:0,activeOption:60,createOptionMsg:10,allowUserOptions:11,allowEmpty:61,autocomplete:12,autoScroll:62,breakpoint:63,defaultDisabledTitle:13,disabled:42,disabledInputTitle:14,duplicateOptionMsg:15,duplicates:16,key:17,filterFunc:64,closeDropdownOnSelect:65,form_input:5,highlightMatches:66,id:18,input:6,inputClass:19,inputmode:20,invalid:7,liActiveOptionClass:21,liOptionClass:22,liSelectedClass:23,loading:24,matchingOptions:1,maxOptions:25,maxSelect:26,maxSelectMsg:27,maxSelectMsgClass:28,name:29,noMatchingOptionsMsg:30,open:8,options:2,outerDiv:9,outerDivClass:31,parseLabelsAsHtml:32,pattern:33,placeholder:34,removeAllTitle:35,removeBtnTitle:36,minSelect:37,required:38,resetFilterOnAdd:67,searchText:3,selected:4,sortSelected:68,selectedOptionsDraggable:39,ulOptionsClass:40,ulSelectedClass:41,value:59},Zy,[-1,-1,-1,-1,-1])}},La=cc;function _v(i=!0){let e=this,t=new IntersectionObserver(function([n]){let a=n.intersectionRatio;if(a<1){let s=a<=0&&i?"center":"nearest";e.scrollIntoView({block:s,inline:s})}this.disconnect()});return t.observe(e),t}typeof Element<"u"&&!Element.prototype?.scrollIntoViewIfNeeded&&typeof IntersectionObserver<"u"&&(Element.prototype.scrollIntoViewIfNeeded=_v);function Ov(i){re(i,"svelte-1dl3a9e",".multiselect-container.svelte-1dl3a9e{width:100%}.multiselect-container.svelte-1dl3a9e .multiselect-dropdown{height:auto;min-height:var(--input-height, 30px)}.multiselect-container.svelte-1dl3a9e div.multiselect{--sms-border:none;--sms-bg:var(--interactive-normal);--sms-options-bg:var(--interactive-normal);--sms-border-radius:var(--radius)}.multiselect-container.svelte-1dl3a9e div.multiselect ul{padding-left:0;border-radius:var(--radius)}.multiselect-container.svelte-1dl3a9e div.multiselect button{height:0}.multiselect-container.svelte-1dl3a9e div.multiselect input{width:0;font-size:var(--font-ui-small)}.multiselect-container.svelte-1dl3a9e div.multiselect li{border-left:none}.multiselect-container.svelte-1dl3a9e div.multiselect li::before{content:none}")}function Sv(i){let e,t,n,a;function s(o){i[5](o)}let r={options:i[3],outerDivClass:"multiselect-dropdown",placeholder:i[1]};return i[2]!==void 0&&(r.selected=i[2]),t=new La({props:r}),Re.push(()=>Nt(t,"selected",s)),{c(){e=k("div"),se(t.$$.fragment),g(e,"class","multiselect-container svelte-1dl3a9e")},m(o,l){D(o,e,l),ie(t,e,null),a=!0},p(o,[l]){let c={};l&2&&(c.placeholder=o[1]),!n&&l&4&&(n=!0,c.selected=o[2],Wt(()=>n=!1)),t.$set(c)},i(o){a||(M(t.$$.fragment,o),a=!0)},o(o){Q(t.$$.fragment,o),a=!1},d(o){o&&A(e),ne(t)}}}function xv(i,e,t){let n,a=N,s=()=>(a(),a=Tt(r,h=>t(2,n=h)),r);i.$$.on_destroy.push(()=>a());let{filter:r}=e;s();let{options:o}=e,l=[...o,tr],{placeholder:c}=e;function d(h){n=h,r.set(n)}return i.$$set=h=>{"filter"in h&&s(t(0,r=h.filter)),"options"in h&&t(4,o=h.options),"placeholder"in h&&t(1,c=h.placeholder)},[r,c,n,l,o,d]}var hc=class extends U{constructor(e){super(),G(this,e,xv,Sv,j,{filter:0,options:4,placeholder:1},Ov)}},Xf=hc;function Tv(i){re(i,"svelte-1y4cmh8",".controls.svelte-1y4cmh8{display:flex;justify-content:space-between;align-items:center;gap:0.5rem}.filter-button.svelte-1y4cmh8{position:relative}.filter-number.svelte-1y4cmh8{position:absolute;bottom:0;right:0;background-color:var(--interactive-normal);border-radius:50%;width:14px;height:14px;display:flex;align-items:center;justify-content:center;font-size:var(--font-smallest);pointer-events:none}.container.svelte-1y4cmh8{display:flex;flex-flow:column nowrap;gap:1rem}")}function qf(i){let e,t,n,a;return t=new Xf({props:{options:i[1],placeholder:"Sources",filter:bn}}),{c(){e=k("div"),se(t.$$.fragment),g(e,"class","filters")},m(s,r){D(s,e,r),ie(t,e,null),a=!0},p(s,r){i=s;let o={};r&2&&(o.options=i[1]),t.$set(o)},i(s){a||(M(t.$$.fragment,s),Dt(()=>{a&&(n||(n=Ki(e,Fn,{easing:ai},!0)),n.run(1))}),a=!0)},o(s){Q(t.$$.fragment,s),n||(n=Ki(e,Fn,{easing:ai},!1)),n.run(0),a=!1},d(s){s&&A(e),ne(t),s&&n&&n.end()}}}function Cv(i){let e,t,n,a,s,r,o,l,c,d,h,u,f,m,p,y,w,_,O,E;n=new _f({props:{filter:xi,placeholder:"Search Creatures"}});let S=i[0]&&qf(i);return{c(){e=k("div"),t=k("div"),se(n.$$.fragment),a=W(),s=k("div"),r=k("div"),l=W(),c=k("div"),d=me(i[2]),h=W(),u=k("div"),m=W(),p=k("div"),w=W(),S&&S.c(),g(c,"class","filter-number svelte-1y4cmh8"),g(s,"class","filter-button svelte-1y4cmh8"),g(p,"aria-label","Delete filtered creatures"),g(t,"class","controls svelte-1y4cmh8"),g(e,"class","container svelte-1y4cmh8")},m(v,x){D(v,e,x),b(e,t),ie(n,t,null),b(t,a),b(t,s),b(s,r),b(s,l),b(s,c),b(c,d),b(t,h),b(t,u),b(t,m),b(t,p),b(e,w),S&&S.m(e,null),_=!0,O||(E=[ee(o=i[7].call(null,r)),H(s,"click",i[9]),ee(f=i[5].call(null,u)),H(u,"click",i[10]),ee(y=i[6].call(null,p)),H(p,"click",i[11])],O=!0)},p(v,[x]){(!_||x&4)&&we(d,v[2]),v[0]?S?(S.p(v,x),x&1&&M(S,1)):(S=qf(v),S.c(),M(S,1),S.m(e,null)):S&&(he(),Q(S,1,1,()=>{S=null}),de())},i(v){_||(M(n.$$.fragment,v),M(S),_=!0)},o(v){Q(n.$$.fragment,v),Q(S),_=!1},d(v){v&&A(e),ne(n),S&&S.d(),O=!1,ce(E)}}}function Av(i,e,t){let n,a,s,r;Se(i,bn,w=>t(12,n=w)),Se(i,xi,w=>t(13,a=w)),Se(i,kf,w=>t(2,r=w));let o=Ne([...ve.getIndex("source").keys()]);Se(i,o,w=>t(1,s=w));let l=Pe();ve.onIndexUpdated("source",()=>Te(o,s=[...ve.getIndex("source").keys()],s));let c=!0,d=w=>{new sr.ExtraButtonComponent(w).setIcon("reset")},h=w=>{new sr.ExtraButtonComponent(w).setIcon("trash")},u=w=>{new sr.ExtraButtonComponent(w).setIcon("filter")},f=()=>{Te(xi,a="",a),Te(bn,n=[],n)};return[c,s,r,o,l,d,h,u,f,()=>t(0,c=!c),()=>f(),()=>l("remove")]}var dc=class extends U{constructor(e){super(),G(this,e,Av,Cv,j,{},Tv)}},Uf=dc;var Gf=require("obsidian");function Dv(i){re(i,"svelte-1e6o0go",".bestiary-container.svelte-1e6o0go{display:flex;flex-flow:column;gap:1rem}.filters-container.svelte-1e6o0go{display:flex;flex-flow:column nowrap;gap:0.25rem}")}function Vf(i,e,t){let n=i.slice();return n[16]=e[t],n}function Yf(i,e){let t,n,a;return n=new wf({props:{item:e[16]}}),n.$on("close",e[13]),{key:i,first:null,c(){t=Oe(),se(n.$$.fragment),this.first=t},m(s,r){D(s,t,r),ie(n,s,r),a=!0},p(s,r){e=s;let o={};r&8&&(o.item=e[16]),n.$set(o)},i(s){a||(M(n.$$.fragment,s),a=!0)},o(s){Q(n.$$.fragment,s),a=!1},d(s){s&&A(t),ne(n,s)}}}function Pv(i){let e,t,n,a,s,r=(i[2].length?i[2].length:"No")+"",o,l,c=i[2].length===1?"":"s",d,h,u,f=[],m=new Map,p,y,w,_;n=new Uf({}),n.$on("remove",i[12]);let O=i[3],E=S=>S[16].name;for(let S=0;St(14,a=O));let d=ve.onSortedBy("name",O=>{Te(c,a=O,a)});yi(()=>{d()});let h=Ne(50),u=Ne(1),f=pt([c,xi,bn],([O,E,S])=>{let v=[];for(let x of O){let P=!0;E.length&&((0,Gf.prepareSimpleSearch)(E)(x.name)||(P=!1)),S.length&&![x.source].flat().some(I=>S.includes(I))&&(P=!1),!x.source&&S.includes(tr)&&(P=!0),P&&v.push(x)}return v});Se(i,f,O=>t(2,n=O));let m=async()=>{n.length&&await No(r.app,`Are you sure you want to delete ${n.length} creature${n.length===1?"":"s"}?`)&&await r.deleteMonsters(...n.map(O=>O.name))},p=pt([h,f],([O,E])=>Math.ceil(E.length/O)),y=pt([f,h,u],([O,E,S])=>O.slice((S-1)*E,S*E));Se(i,y,O=>t(3,s=O));let w=()=>m();function _(O){je.call(this,i,O)}return i.$$set=O=>{"plugin"in O&&t(11,r=O.plugin),"backgroundColor"in O&&t(0,o=O.backgroundColor),"paddingTop"in O&&t(1,l=O.paddingTop)},[o,l,n,s,c,h,u,f,m,p,y,r,w,_]}var uc=class extends U{constructor(e){super(),G(this,e,Mv,Pv,j,{plugin:11,backgroundColor:0,paddingTop:1},Dv)}},Kf=uc;var Gn=(i=>(i.None="None",i.Average="Average",i.Roll="Roll",i))(Gn||{});var Ba=class extends ke.PluginSettingTab{constructor(t,n){super(t,n);this.plugin=n;this.results=[];this.importer=new Wa(this.plugin)}async display(){try{let{containerEl:t}=this;t.empty(),t.addClass("statblock-settings"),t.createEl("h2",{text:"Fantasy Statblocks Settings"}),this.generateTopSettings(t.createDiv()),this.generateParseSettings(t.createDiv()),this.generateAdvancedSettings(t.createDiv()),this.generateLayouts(t.createDiv()),this.generateImports(t.createDiv()),this.generateMonsters(t.createDiv()),t.createDiv("coffee").createEl("a",{href:"https://www.buymeacoffee.com/valentine195"}).createEl("img",{attr:{src:"https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=\u2615&slug=valentine195&button_colour=e3e7ef&font_colour=262626&font_family=Inter&outline_colour=262626&coffee_colour=ff0000"}})}catch(t){console.error(t),new ke.Notice("There was an error displaying the settings tab for 5e Statblocks.")}}generateAdvancedSettings(t){t.empty(),new ke.Setting(t).setHeading().setName("Advanced Settings"),new ke.Setting(t).setName("Try to Save Data Atomically").setDesc(createFragment(n=>{n.createSpan({text:"This will cause to plugin to save data to a temporary file before saving the actual data file in an attempt to prevent data loss."}),n.createEl("br"),n.createSpan({text:"This can cause issues sometimes when using sync services."}),n.createEl("br");let a=n.createDiv();(0,ke.setIcon)(a.createDiv(),"warning"),a.createSpan({attr:{style:"color: var(--text-error)"},text:"This setting is currently disabled."})})).addToggle(n=>n.setValue(this.plugin.settings.atomicWrite).onChange(async a=>{this.plugin.settings.atomicWrite=a,await this.plugin.saveSettings()}))}generateTopSettings(t){t.empty(),new ke.Setting(t).setHeading().setName("General Settings"),new ke.Setting(t).setName("Integrate Dice Roller").setDesc(createFragment(n=>{this.plugin.diceRollerInstalled?(n.createSpan({text:"Add Dice Roller dice to statblocks by default. Use "}),n.createEl("code",{text:"dice: false"}),n.createSpan({text:" to disable per-statblock."})):n.createSpan({text:"This setting is only usable with the Dice Roller plugin enabled."})})).setDisabled(!this.plugin.diceRollerInstalled).addToggle(n=>n.setValue(this.plugin.settings.useDice).onChange(async a=>{this.plugin.settings.useDice=a,await this.plugin.saveSettings()})),new ke.Setting(t).setName("Render Dice Rolls").setDesc(createFragment(n=>{this.plugin.diceRollerInstalled?(n.createSpan({text:"Roll graphical dice inside statblocks by default. Use "}),n.createEl("code",{text:"render: false"}),n.createSpan({text:" to disable per-statblock."})):n.createSpan({text:"This setting is only usable with the Dice Roller plugin enabled."})})).setDisabled(!this.plugin.diceRollerInstalled).addToggle(n=>n.setValue(this.plugin.settings.renderDice).onChange(async a=>{this.plugin.settings.renderDice=a,this.plugin.diceRollerInstalled&&window.DiceRoller.registerSource(yn,{showDice:!0,shouldRender:this.plugin.settings.renderDice,showFormula:!1,showParens:!1,expectedValue:Gn.Average,text:null}),await this.plugin.saveSettings()})),new ke.Setting(t).setName("Try to Render Wikilinks").setDesc(createFragment(n=>{n.createSpan({text:"The plugin will attempt to detect wikilinks inside Statblocks."}),n.createEl("br"),n.createEl("strong",{text:"Please note: these links will not be added to the graph."})})).addToggle(n=>n.setValue(this.plugin.settings.tryToRenderLinks).onChange(async a=>{this.plugin.settings.tryToRenderLinks=a,await this.plugin.saveSettings()})),new ke.Setting(t).setName("Enable 5e SRD").setDesc(createFragment(n=>{n.createSpan({text:"Use the Dungeons & Dragons 5th Edition System Reference Document monsters."})})).addToggle(n=>n.setValue(!this.plugin.settings.disableSRD).onChange(async a=>{this.plugin.settings.disableSRD=!a,await this.plugin.saveSettings(),this.plugin.app.workspace.trigger("fantasy-statblocks:srd-change",a)}))}generateParseSettings(t){t.empty();let n=t.createDiv("statblock-additional-container");new ke.Setting(n).setHeading().setName("Note Parsing"),new ke.Setting(n).setName("Automatically Parse Frontmatter for Creatures").setDesc(createFragment(r=>{r.createSpan({text:"The plugin will watch the vault for creatures defined in note frontmatter."}),r.createEl("br"),r.createEl("br"),r.createSpan({text:'The "Parse Frontmatter for Creatures" command can also be used.'})})).addToggle(r=>{r.setValue(this.plugin.settings.autoParse).onChange(async o=>{this.plugin.settings.autoParse=o,o&&wi.start(),await this.plugin.saveSettings()})}),new ke.Setting(n).setName("Enable Debug Messages").setDesc(createFragment(r=>{r.createSpan({text:"Debug messages will be displayed by the file parser."})})).addToggle(r=>r.setValue(this.plugin.settings.debug).onChange(async o=>{this.plugin.settings.debug=o,wi.setDebug(),await this.plugin.saveSettings()}));let a;new ke.Setting(n).setName("Bestiary Folder").setDesc("The plugin will only parse notes inside these folders and their children.").addText(async r=>{let o=this.app.vault.getAllLoadedFiles().filter(c=>c instanceof ke.TFolder&&!this.plugin.settings.paths.includes(c.path));r.setPlaceholder("/"),new Jf.FolderInputSuggest(this.app,r,[...o]).onSelect(async({item:c})=>{a=(0,ke.normalizePath)(c.path),r.setValue(c.path)}),r.inputEl.onblur=async()=>{let c=r.inputEl.value?.trim()?r.inputEl.value.trim():"/";a=(0,ke.normalizePath)(c)}}).addExtraButton(r=>{r.setIcon("plus-with-circle").onClick(async()=>{!a||!a.length||(this.plugin.settings.paths.push((0,ke.normalizePath)(a)),await this.plugin.saveSettings(),await wi.reparseVault(),await this.generateParseSettings(t))})});let s=n.createDiv("additional");for(let r of this.plugin.settings.paths)new ke.Setting(s).setName(r).addExtraButton(o=>o.setIcon("trash").onClick(async()=>{this.plugin.settings.paths=this.plugin.settings.paths.filter(l=>l!=r),await this.plugin.saveSettings(),await wi.reparseVault(),await this.generateParseSettings(t)}))}generateLayouts(t){t.empty(),new ke.Setting(t).setHeading().setName("Layouts");let n=t.createDiv("statblock-additional-container");n.createDiv("setting-item").createDiv().appendChild(createFragment(l=>{l.createSpan({text:"New statblock layouts can be created and managed here. A specific layout can be used for a creature using the "}),l.createEl("code",{text:"layout"}),l.createSpan({text:" parameter."})}));let a=new ke.Setting(n).setName("Import From JSON").setDesc("Import a custom layout from a JSON file."),s=createEl("input",{attr:{type:"file",name:"layout",accept:".json",multiple:!0}});s.onchange=async()=>{let{files:l}=s;if(l.length)try{let{files:c}=s;if(!c.length)return;for(let d of Array.from(c))await new Promise((h,u)=>{let f=new FileReader;f.onload=async m=>{try{let p=JSON.parse(m.target.result);if(!p){u(new Error("Invalid layout imported"));return}if(!p?.name){u(new Error("Invalid layout imported: layout does not have a name"));return}if(!p?.blocks){u(new Error("Invalid layout imported: no blocks defined in layout."));return}p.diceParsing||(p.diceParsing=[]),p.id=q(),!this.plugin.settings.alwaysImport&&p.blocks.find(y=>y.type=="javascript")&&!await Ev(this.plugin)&&h(),this.plugin.settings.layouts.push(this.getDuplicate(p)),h()}catch(p){u(p)}},f.readAsText(d)}).catch(h=>{new ke.Notice(`There was an error importing the layout: + +${h}`),console.error(h)});await this.plugin.saveSettings(),s.value=null,this.buildCustomLayouts(o,t)}catch{}},a.addButton(l=>{l.setIcon("upload"),l.buttonEl.addClass("statblock-file-upload"),l.buttonEl.appendChild(s),l.onClick(()=>s.click())}),new ke.Setting(n).setName("Add New Layout").addButton(l=>l.setIcon("plus-with-circle").setTooltip("Add New Layout").onClick(()=>{let c=new $a(this.plugin);c.onClose=async()=>{if(!c.saved)return;let d=this.getDuplicate(c.layout);this.plugin.settings.layouts.push(d),this.plugin.manager.addLayout(d),await this.plugin.saveSettings(),this.buildCustomLayouts(o,t)},c.open()}));let r=n.createDiv("additional");new ke.Setting(r).setName("Default Layout").setDesc("Change the default statblock layout used, if not specified.").addDropdown(async l=>{for(let c of this.plugin.manager.getAllLayouts())l.addOption(c.id,c.name);(!this.plugin.settings.default||!this.plugin.manager.getAllLayouts().find(({id:c})=>c==this.plugin.settings.default))&&(this.plugin.settings.default=ni.id,await this.plugin.saveSettings()),l.setValue(this.plugin.settings.default??ni.id),l.onChange(async c=>{this.plugin.settings.default=c,this.plugin.manager.setDefaultLayout(c),await this.plugin.saveSettings()})}),new ke.Setting(r).setName("Show Advanced Options").setDesc("Show advanced options when editing layout blocks.").addToggle(l=>l.setValue(this.plugin.settings.showAdvanced).onChange(async c=>{this.plugin.settings.showAdvanced=c,await this.plugin.saveSettings()}));let o=n.createDiv("additional");this.buildCustomLayouts(o,t)}getDuplicate(t){if(!this.plugin.manager.getAllLayouts().find(o=>o.name==t.name))return t;let n=this.plugin.manager.getSortedLayoutNames().filter(o=>o.contains(`${t.name} Copy`)),a=`${t.name} Copy`,s=a,r=1;for(;n.includes(s);)s=`${a} (${r})`,r++;return{blocks:(0,mc.default)(t.blocks),name:s,id:q()}}buildCustomLayouts(t,n){t.empty(),this.plugin.manager.getAllDefaultLayouts().some(a=>a.removed)&&new ke.Setting(t).setName("Restore Default Layouts").addButton(a=>{a.setIcon("rotate-ccw").onClick(async()=>{for(let s of Object.values(this.plugin.settings.defaultLayouts))s.removed=!1,s.edited||delete this.plugin.settings.defaultLayouts[s.id];await this.plugin.saveSettings(),this.generateLayouts(n)})});for(let a of this.plugin.manager.getAllDefaultLayouts()){if(a.removed)continue;let s=new ke.Setting(t).setName(a.name).addExtraButton(r=>{r.setIcon("pencil").setTooltip("Edit").onClick(()=>{let o=new $a(this.plugin,a);o.onClose=async()=>{o.saved&&(o.layout.edited=!0,this.plugin.settings.defaultLayouts[a.id]=o.layout,await this.plugin.saveSettings(),this.plugin.manager.updateDefaultLayout(a.id,o.layout),this.generateLayouts(n))},o.open()})});a.edited&&s.addExtraButton(r=>r.setIcon("undo").onClick(async()=>{let o=gn.find(({id:l})=>l==a.id);delete this.plugin.settings.defaultLayouts[a.id],await this.plugin.saveSettings(),this.plugin.manager.updateDefaultLayout(a.id,o),this.generateLayouts(n)})),s.addExtraButton(r=>{r.setIcon("duplicate-glyph").setTooltip("Create Copy").onClick(async()=>{let o=this.getDuplicate(a);this.plugin.settings.layouts.push(o),await this.plugin.saveSettings(),this.plugin.manager.addLayout(o),this.buildCustomLayouts(t,n)})}).addExtraButton(r=>{r.setIcon("import-glyph").setTooltip("Export as JSON").onClick(()=>{let o=createEl("a"),l=new Blob([JSON.stringify(a)],{type:"json"}),c=URL.createObjectURL(l);o.href=c,o.download=`${a.name}.json`,o.click(),URL.revokeObjectURL(c)})}).addExtraButton(r=>{r.setIcon("trash").setTooltip("Delete").onClick(async()=>{a.removed=!0,this.plugin.settings.defaultLayouts[a.id]=a,await this.plugin.saveSettings(),this.generateLayouts(n)})})}for(let a of this.plugin.settings.layouts)new ke.Setting(t).setName(a.name).addExtraButton(s=>{s.setIcon("pencil").setTooltip("Edit").onClick(()=>{let r=new $a(this.plugin,a);r.onClose=async()=>{r.saved&&(gn.find(({id:o})=>o==a.id)&&(r.layout.edited=!0),this.plugin.settings.layouts.splice(this.plugin.settings.layouts.indexOf(a),1,r.layout),await this.plugin.saveSettings(),this.plugin.manager.updateLayout(a.id,r.layout),this.generateLayouts(n))},r.open()})}).addExtraButton(s=>{s.setIcon("duplicate-glyph").setTooltip("Create Copy").onClick(async()=>{let r=this.getDuplicate(a);this.plugin.settings.layouts.push(r),await this.plugin.saveSettings(),this.plugin.manager.addLayout(r),this.buildCustomLayouts(t,n)})}).addExtraButton(s=>{s.setIcon("import-glyph").setTooltip("Export as JSON").onClick(()=>{let r=createEl("a"),o=new Blob([JSON.stringify(a)],{type:"json"}),l=URL.createObjectURL(o);r.href=l,r.download=`${a.name}.json`,r.click(),URL.revokeObjectURL(l)})}).addExtraButton(s=>{s.setIcon("trash").setTooltip("Delete").onClick(async()=>{this.plugin.settings.layouts=this.plugin.settings.layouts.filter(r=>r.id!==a.id),await this.plugin.saveSettings(),this.plugin.manager.removeLayout(a.id),this.generateLayouts(n)})})}generateImports(t){t.empty(),new ke.Setting(t).setHeading().setName("Import Homebrew Creatures");let n=t.createDiv("statblock-additional-container");new ke.Setting(n).setDesc("Import creatures from creature files. Monsters are stored by name, so only the last creature by that name will be saved. This is destructive - any saved creature will be overwritten.");let a=n.createDiv("additional"),s=new ke.Setting(a).setName("Import DnDAppFile").setDesc("Only import content that you own."),r=createEl("input",{attr:{type:"file",name:"dndappfile",accept:".xml",multiple:!0}});r.onchange=async()=>{let{files:w}=r;if(w.length)try{let{files:_}=r;if(!_.length)return;let O=await this.importer.import(_,"appfile");O&&O.length&&await this.plugin.saveMonsters(O),this.display()}catch{}},s.addButton(w=>{w.setButtonText("Choose File(s)").setTooltip("Import DnDAppFile Data"),w.buttonEl.addClass("statblock-file-upload"),w.buttonEl.appendChild(r),w.onClick(()=>r.click())});let o=new ke.Setting(a).setName("Import Improved Initiative Data").setDesc("Only import content that you own."),l=createEl("input",{attr:{type:"file",name:"improvedinitiative",accept:".json",multiple:!0}});l.onchange=async()=>{let{files:w}=l;if(w.length)try{let{files:_}=l;if(!_.length)return;let O=await this.importer.import(_,"improved");O&&O.length&&await this.plugin.saveMonsters(O),this.display()}catch{}},o.addButton(w=>{w.setButtonText("Choose File(s)").setTooltip("Import Improved Initiative Data"),w.buttonEl.addClass("statblock-file-upload"),w.buttonEl.appendChild(l),w.onClick(()=>l.click())});let c=new ke.Setting(a).setName("Import CritterDB Data").setDesc("Only import content that you own."),d=createEl("input",{attr:{type:"file",name:"critterdb",accept:".json",multiple:!0}});d.onchange=async()=>{let{files:w}=d;if(w.length)try{let{files:_}=d;if(!_.length)return;let O=await this.importer.import(_,"critter");O&&O.length&&await this.plugin.saveMonsters(O),this.display()}catch{}},c.addButton(w=>{w.setButtonText("Choose File(s)").setTooltip("Import CritterDB Data"),w.buttonEl.addClass("statblock-file-upload"),w.buttonEl.appendChild(d),w.onClick(()=>d.click())});let h=new ke.Setting(a).setName("Import 5e.tools Data").setDesc("Only import content that you own."),u=createEl("input",{attr:{type:"file",name:"fivetools",accept:".json",multiple:!0}});u.onchange=async()=>{let{files:w}=u;if(!w.length)return;let _=await this.importer.import(w,"5e");_&&_.length&&await this.plugin.saveMonsters(_),this.display()},h.addButton(w=>{w.setButtonText("Choose File(s)").setTooltip("Import 5e.tools Data"),w.buttonEl.addClass("statblock-file-upload"),w.buttonEl.appendChild(u),w.onClick(()=>u.click())});let f=new ke.Setting(a).setName("Import TetraCube Data").setDesc("Only import content that you own."),m=createEl("input",{attr:{type:"file",name:"tetra",accept:".json, .monster",multiple:!0}});m.onchange=async()=>{let{files:w}=m;if(!w.length)return;let _=await this.importer.import(w,"tetra");_&&_.length&&await this.plugin.saveMonsters(_),this.display()},f.addButton(w=>{w.setButtonText("Choose File(s)").setTooltip("Import TetraCube Data"),w.buttonEl.addClass("statblock-file-upload"),w.buttonEl.appendChild(m),w.onClick(()=>m.click())});let p=new ke.Setting(a).setName("Import Generic Data").setDesc(createFragment(w=>{w.createSpan({text:"Import generic JSON files. JSON objects will be imported "}),w.createEl("strong",{text:"as-is"}),w.createSpan({text:" and all objects must have the "}),w.createEl("code",{text:"name"}),w.createSpan({text:" property."})})),y=createEl("input",{attr:{type:"file",name:"generic",accept:".json, .monster",multiple:!0}});y.onchange=async()=>{let{files:w}=y;if(!w.length)return;let _=await this.importer.import(w,"generic");_&&_.length&&await this.plugin.saveMonsters(_),this.display()},p.addButton(w=>{w.setButtonText("Choose File(s)").setTooltip("Import Generic Data"),w.buttonEl.addClass("statblock-file-upload"),w.buttonEl.appendChild(y),w.onClick(()=>y.click())})}generateMonsters(t){t.empty(),new ke.Setting(t).setHeading().setName("Bestiary");let n=t.createDiv("statblock-additional-container statblock-monsters");new ke.Setting(n).setName("Add Creature").addButton(o=>{o.setIcon("plus-with-circle").onClick(()=>{let l=new Vn(this.plugin);l.onClose=()=>{this.generateMonsters(t)},l.open()})});let a=this.containerEl.closest(".statblock-settings"),{backgroundColor:s,paddingTop:r}=getComputedStyle(a);this.$UI=new Kf({target:n,props:{plugin:this.plugin,backgroundColor:s,paddingTop:r}})}hide(){this.$UI.$destroy()}},$a=class extends vt{constructor(t,n={name:"Layout",blocks:[],id:q()}){super(t);this.plugin=t;this.saved=!1;this.layout=(0,mc.default)(n),this.modalEl.addClasses(["mod-sidebar-layout","mod-settings"]),this.contentEl.addClass("vertical-tabs-container")}onOpen(){this.display()}display(){this.titleEl.createSpan({text:"Create Layout"}),this.creator=new cf({target:this.contentEl,props:{layout:this.layout,plugin:this.plugin}}),this.creator.$on("saved",()=>{this.saved=!0,this.close()}),this.creator.$on("cancel",()=>{this.close()})}};async function Ev(i){return new Promise((e,t)=>{try{let n=new fc(i);n.onClose=()=>{e(n.confirmed)},n.open()}catch{t()}})}var fc=class extends vt{constructor(t){super(t);this.plugin=t;this.confirmed=!1}async display(){this.contentEl.empty(),this.contentEl.addClass("confirm-modal"),this.contentEl.createEl("p",{text:"This Layout includes JavaScript blocks. JavaScript blocks can execute code in your vault, which could cause loss or corruption of data."}),this.contentEl.createEl("p",{text:"Are you sure you want to import this layout?"});let t=this.contentEl.createDiv("confirm-buttons-container");t.createEl("a").createEl("small",{cls:"dont-ask",text:"Import and don't ask again"}).onclick=async()=>{this.confirmed=!0,this.plugin.settings.alwaysImport=!0,this.close()};let n=t.createDiv("confirm-buttons");new ke.ButtonComponent(n).setButtonText("Import").setCta().onClick(()=>{this.confirmed=!0,this.close()}),n.createEl("a").createEl("small",{cls:"dont-ask",text:"Cancel"}).onclick=()=>{this.close()}}onOpen(){this.display()}};var tm=It(mi());var or=require("obsidian");var Qv=["creature","name","layout","source","dice","render","columns","forceColumns","columnWidth","columnHeight","extends"],rr=class extends or.EditorSuggest{constructor(t){super(t.app);this.plugin=t;this._context=4}getSuggestions(t){let n=[];switch(this._context){case 3:{n=["true","false"];break}case 1:{n=this.plugin.api.getBestiaryNames();break}case 0:{n=this.plugin.manager.getSortedLayoutNames();break}case 2:{let a=this.plugin.manager.getLayoutOrDefault(this._layout).id;this._props=this.plugin.manager.getProperties(a),n=[...new Set([...Qv,...this._props.keys()??[]])].filter(s=>!this._keys.includes(s));break}case 4:default:return[]}return t.query?.length?n.filter(a=>a.toLowerCase().contains(t.query.toLowerCase())):n}renderSuggestion(t,n){n.createSpan({text:t})}selectSuggestion(t,n){if(!this.context)return;let a=this.context.editor.getLine(this.context.end.line).slice(this.context.end.ch),[s,r]=a.match(/^(\] ?)/)??[],o;if(this._context===2)if(this._props.has(t))switch(this._props.get(t).type){case"heading":case"subheading":case"property":case"image":case"text":{t=`${t}: `;break}case"traits":{t=`${t}: + - name: + desc:`,o=t.length-10;break}case"table":{t=`${t}: []`,o=t.length-1;break}case"saves":case"spells":{t=`${t}: + - `,o=t.length;break}case"inline":case"group":case"ifelse":case"collapse":case"javascript":case"layout":default:break}else t=`${t}: `,o=t.length;this.context.editor.replaceRange(`${t}`,this.context.start,{...this.context.end,ch:this.context.start.ch+this.context.query.length+(r?.length??0)},"statblocks"),this.context.editor.setCursor(this.context.start.line,this.context.start.ch+o),this.close()}onTrigger(t,n,a){let s=n.getRange({line:0,ch:0},t);if(s.indexOf("```statblock\n")===-1)return null;let r=s.split(` +`),o=!1,l;for(let d=r.length-1;d>=0;d--){let h=r[d];if(/^\`\`\`$/.test(h))return null;if(/^\`\`\`statblock/.test(h)){o=!0,l=d;break}}if(!o)return;let c=n.getLine(t.line);if(this._context=4,/^name/.test(c))return null;if(/^(dice|render)/.test(c)){this._context=3;let d=c.match(/^(dice|render):\s?(.*)\n?/);if(!d)return null;let[h,u,f]=d;return f==="true"||f==="false"?null:{end:t,start:{ch:u.length+2,line:t.line},query:f}}if(/^(monster|creature|extends):/.test(c)){this._context=1;let d=c.match(/^(monster|creature|extends):\s?(.*)\n?/);if(!d)return null;let[h,u,f]=d;return ve.getBestiaryNames().find(m=>m.toLowerCase()==f.toLowerCase())?null:{end:t,start:{ch:u.length+2,line:t.line},query:f}}if(/^(layout):/m.test(c)){this._context=0;let d=c.match(/^(layout):\s?(.*)\n?/);if(!d)return null;let[h,u,f]=d;return this.plugin.manager.getAllLayouts().find(p=>p.name.toLowerCase()==f.toLowerCase())?null:{end:t,start:{ch:u.length+2,line:t.line},query:f}}try{let d=n.getValue().split(` +`);d.splice(t.line,1),d=d.slice(l+1);let h=d.findIndex(f=>/^```$/.test(f));h<0&&(h=d.length);let u=(0,or.parseYaml)(d.slice(0,h).join(` +`));this._keys=Object.keys(u),this._layout=u.layout??this.plugin.manager.getDefaultLayout().name}catch{this._keys=[]}return this._keys||(this._keys=[]),this._context=2,{end:t,start:{ch:0,line:t.line},query:c}}};var vn,Ha,gc,Kn,lr,Fa,ui,Ti,ja,Za,pc,Xa,bc,za=class{constructor(){Ee(this,Ha);Ee(this,Kn);Ee(this,Za);Ee(this,Xa);Ee(this,vn,new Map);Ee(this,Fa,void 0);Ee(this,ui,new Map);Ee(this,Ti,new Map);Ee(this,ja,new WeakMap)}initialize(e){this.setDefaultLayout(e.default),this.setDefaultLayouts(e.defaultLayouts),this.setLayouts(e.layouts);for(let t of this.getAllLayouts())this.addStyleSheet(t)}unload(){for(let e of te(this,vn).values())e.detach()}addStyleSheet(e){this.removeStyleSheet(e.id);let t=this.generateStyleSheet(e);t&&te(this,vn).set(e.id,t)}removeStyleSheet(e){te(this,vn).has(e)&&te(this,vn).get(e).detach()}getSheetRules(e){if(!e.cssProperties)return[];let t=`.${e.name.toLowerCase().replace(/\s+/g,"-")}`,n=[Qe(this,Kn,lr).call(this,t,{...Rl,...e.cssProperties})];return Ce.Light in e.cssProperties&&n.push(Qe(this,Kn,lr).call(this,`.theme-light ${t}`,e.cssProperties[Ce.Light])),Ce.Dark in e.cssProperties&&n.push(Qe(this,Kn,lr).call(this,`.theme-dark ${t}`,e.cssProperties[Ce.Dark])),n}generateStyleSheet(e,t=`FS_CSS_PROPERTIES_${e.id}`){if(!e.cssProperties)return null;let n=document.head.createEl("style",{attr:{id:t}}),a=this.getSheetRules(e);for(let s of a)n.sheet.insertRule(s,n.sheet.cssRules.length);return n}updateDefaultLayout(e,t){te(this,ui).delete(e),this.setDefaultLayouts({[t.id]:t}),this.addStyleSheet(t)}removeDefaultLayout(e){te(this,ui).delete(e),this.removeStyleSheet(e)}setDefaultLayouts(e){for(let t of gn)te(this,ui).set(t.id,t.id in e?e[t.id]:t);setTimeout(()=>{for(let t of te(this,ui).values())Qe(this,Za,pc).call(this,t)},0)}setDefaultLayout(e){ei(this,Fa,e)}getDefaultLayout(){return this.getAllLayouts()?.find(e=>e.id==te(this,Fa))??ni}setLayouts(e){for(let t of e)te(this,Ti).set(t.id,t);setTimeout(()=>{for(let t of e)Qe(this,Za,pc).call(this,t)},0)}getCustomLayouts(){return te(this,Ti).values()}getAllLayouts(){return[...te(this,ui).values(),...te(this,Ti).values()].filter(e=>!("removed"in e)||!e.removed)}getAllDefaultLayouts(){return[...te(this,ui).values()]}getLayout(e){return te(this,Ti).get(e)??te(this,ui).get(e)??null}getLayoutOrDefault(e){return this.getAllLayouts().find(t=>t.name==e)??this.getDefaultLayout()}updateLayout(e,t){te(this,Ti).delete(e),this.setLayouts([t]),this.addStyleSheet(t)}removeLayout(e){te(this,Ti).delete(e),this.removeStyleSheet(e)}addLayout(e){this.setLayouts([e]),this.addStyleSheet(e)}getSortedLayoutNames(){let e=new Set([this.getDefaultLayout().name]);for(let t of this.getAllLayouts())e.has(t.name)||e.add(t.name);return[...e]}getProperties(e){let t=typeof e=="string"?this.getLayout(e):e;return te(this,ja).get(t)}};vn=new WeakMap,Ha=new WeakSet,gc=function(e){return e.replace(/[A-Z]/g,t=>`-${t.toLowerCase()}`)},Kn=new WeakSet,lr=function(e,t){let n=[];for(let[a,s]of Object.entries(t)){if(a==Ce.Dark||a==Ce.Light)continue;let r=Ia.includes(s)?`var(--statblock-${Qe(this,Ha,gc).call(this,s)})`:s;n.push(` + --statblock-${Qe(this,Ha,gc).call(this,a)}: ${r};`)}return`${e} {${n.join("")} + }`},Fa=new WeakMap,ui=new WeakMap,Ti=new WeakMap,ja=new WeakMap,Za=new WeakSet,pc=function(e){let t=new Map;te(this,ja).set(e,Qe(this,Xa,bc).call(this,e.blocks,t))},Xa=new WeakSet,bc=function(e,t){for(let n of e){if("nested"in n){Qe(this,Xa,bc).call(this,n.nested,t);continue}if("properties"in n)for(let a of n.properties)t.set(a,n)}return t};var ji=require("obsidian");var Ci="fantasy-statblocks-creature-pane",qa=class extends ji.ItemView{constructor(t,n){super(t);this.plugin=n;this.topEl=this.contentEl.createDiv("creature-view-top-pane");this.statblockEl=this.contentEl.createDiv("creature-statblock-container");this.load(),this.containerEl.addClasses(["fantasy-statblocks","creature-view-container"]),this.containerEl.on("mouseover","a.internal-link",(0,ji.debounce)(a=>{this.plugin.app.workspace.trigger("hover-link",{event:a,source:this.plugin.manifest.id,hoverParent:this.leaf,targetEl:a.target,linktext:a.target.dataset.href})},10)),this.containerEl.on("click","a.internal-link",a=>app.workspace.openLinkText(a.target.dataset.href,"fantasy-statblocks"))}onload(){let t=new ji.SearchComponent(this.topEl).setPlaceholder("Find a creature"),n=new qn(this.plugin.app,t,ve.getBestiaryCreatures());ve.onResolved(()=>{n.items=ve.getBestiaryCreatures()}),n.onSelect(async a=>{a&&(await this.render(a.item),t.setValue(""))}),new ji.ExtraButtonComponent(this.topEl).setIcon("cross").setTooltip("Close Statblock").onClick(async()=>{await this.render(),t.setValue("")})}async render(t){if(this.statblockEl.empty(),!t){this.statblockEl.createEl("em",{text:"Select a creature to view it here."});return}let n=this.plugin.api.render(t,this.statblockEl);this.addChild(n)}getDisplayText(){return"Combatant"}getIcon(){return"skull"}getViewType(){return Ci}};var yc=It(mi());var Jn,cr=class{constructor(e){Ee(this,Jn,void 0);ei(this,Jn,e)}getVersion(){return te(this,Jn).settings.version}getBestiary(){return ve.getBestiary()}getBestiaryCreatures(){return ve.getBestiaryCreatures()}getBestiaryNames(){return ve.getBestiaryNames()}hasCreature(e){return ve.hasCreature(e)}getCreatureFromBestiary(e){return ve.getCreatureFromBestiarySync(e)}async getCreature(e){return await ve.getCreatureFromBestiary(e)}getSortedBy(e){return ve.getSortedBy(e)}onSortedBy(e,t){return ve.onSortedBy(e,t)}registerSorter(e,t){return ve.registerSorter(e,t)}getIndices(){return ve.getIndices()}getIndex(e){return ve.getIndex(e)}registerIndex(e){return ve.registerIndex(e)}onIndexUpdated(e,t){return ve.onIndexUpdated(e,t)}isResolved(){return ve.isResolved()}onResolved(e){return ve.onResolved(e)}onUpdated(e){return ve.onUpdated(e)}render(e,t,n){let a=Object.assign({},(0,yc.default)(this.getCreatureFromBestiary(e.name)??{}),(0,yc.default)(e));return a?(n&&(a.name=n),new qt({container:t,monster:a,plugin:te(this,Jn),context:"STATBLOCK_RENDERER"})):null}isStatblockLink(e){return oi.isStatblockLink(e)}parseStatblockLink(e){return oi.stringifyLinks(e)}};Jn=new WeakMap;var yn="FANTASY_STATBLOCKS_PLUGIN",Iv={monsters:[],defaultLayouts:{},layouts:[],default:ni.name,useDice:!0,renderDice:!1,export:!0,showAdvanced:!1,version:{major:null,minor:null,patch:null},paths:["/"],autoParse:!1,disableSRD:!1,tryToRenderLinks:!0,debug:!1,notifiedOfFantasy:!1,hideConditionHelp:!1,alwaysImport:!1,defaultLayoutsIntegrated:!1,atomicWrite:!1},dr,hr=class extends Zi.Plugin{constructor(){super(...arguments);this.manager=new za;this.api=new cr(this);Ee(this,dr,t=>{let n=t?.creature??t?.name??"";if(ve.hasCreature(n)){let a=ve.get(n);this.creature_view?this.creature_view.render(a):this.openCreatureView().then(s=>s.render(a))}})}getRoller(t){return this.canUseDiceRoller?window.DiceRoller.getRollerSync(t,yn):void 0}getRollerString(t){return this.canUseDiceRoller?window.DiceRoller.getRollerString(t,yn):t}get diceRollerInstalled(){return window.DiceRoller!=null}get canUseDiceRoller(){return this.diceRollerInstalled?this.settings.useDice:!1}get creature_view(){let t=this.app.workspace.getLeavesOfType(Ci),n=t?.length?t[0]:null;if(n&&n.view&&n.view instanceof qa)return n.view}async openCreatureView(t=!1){let n,a=this.app.workspace.getLeavesOfType(Ci);return!t&&a?.length?n=a.shift():(t&&a?.length?n=this.app.workspace.createLeafInParent(a[0].parent,a[0].parent.children.length):n=this.app.workspace.getRightLeaf(!0),await n.setViewState({type:Ci})),this.app.workspace.revealLeaf(n),n.view}async onload(){console.log("Fantasy StatBlocks loaded"),this.app.workspace.trigger("fantasy-statblocks:loaded",null),await this.loadSettings(),await this.saveSettings(),this.manager.initialize(this.settings),this.register(()=>this.manager.unload()),ve.initialize(this),ct.initialize(this.app.metadataCache),this.register(()=>ct.unload()),this.registerHoverLinkSource(this.manifest.id,{display:this.manifest.name,defaultMod:!1}),this.addCommand({id:"open-creature-view",name:"Open Creature pane",checkCallback:t=>this.app.workspace.getLeavesOfType(Ci).length?!1:(t||this.openCreatureView(),!0)}),this.addCommand({id:"reveal-creature-view",name:"Reveal Creature pane",checkCallback:t=>this.app.workspace.getLeavesOfType(Ci).length?(t||this.openCreatureView(),!0):!1}),this.addCommand({id:"open-new-creature-view",name:"Open new Creature pane",callback:()=>{this.openCreatureView(!0)}}),this.addRibbonIcon("skull","Open Creature pane",async t=>{this.openCreatureView(t.getModifierState("Meta"))}),this.registerObsidianProtocolHandler("creature-pane",te(this,dr).bind(this)),(0,Zi.addIcon)("markdown-icon",''),this.addSettingTab(new Ba(this.app,this)),(window.FantasyStatblocks=this.api)&&this.register(()=>delete window.FantasyStatblocks),this.registerMarkdownCodeBlockProcessor("statblock",this.postprocessor.bind(this)),this.registerEditorSuggest(new rr(this)),this.registerView(Ci,t=>new qa(t,this)),this.canUseDiceRoller&&window.DiceRoller.registerSource(yn,{showDice:!0,shouldRender:this.settings.renderDice,showFormula:!1,showParens:!1,expectedValue:Gn.Average,text:null}),this.registerEvent(this.app.workspace.on("dice-roller:loaded",()=>{window.DiceRoller.registerSource(yn,{showDice:!0,shouldRender:this.settings.renderDice,showFormula:!1,showParens:!1,expectedValue:Gn.Average,text:null})}))}async loadSettings(){let t=await this.loadData();if(this.settings={...Iv,...t},!this.settings.defaultLayoutsIntegrated){for(let s of this.settings.layouts)s.id=q();this.settings.default=(this.layouts.find(({name:s})=>s==this.settings.default)??ni).id,this.settings.defaultLayoutsIntegrated=!0}if(Array.isArray(this.settings.defaultLayouts)){let s={};for(let r of this.settings.defaultLayouts)(r.removed||r.edited)&&(s[r.id]=r);this.settings.defaultLayouts=s}for(let s of gn){if(!(s.id in this.settings.defaultLayouts)||s.version==null)continue;let r=this.settings.defaultLayouts[s.id];if(!(r.version>=s.version)){if(r.edited){r.updatable=!0;continue}r.blocks=(0,tm.default)(s.blocks)}}function n(...s){for(let r of s)r.type=="spells"&&(r.properties.length||r.properties.push("spells")),"nested"in r&&n(...r.nested)}for(let s of this.settings.layouts)n(...s.blocks);let a=this.manifest.version.split(".");this.settings.version={major:Number(a[0]),minor:Number(a[1]),patch:Number(a[2])}}async saveSettings(){this.app.workspace.trigger("fantasy-statblocks:settings-change",this.settings),await this.saveData(this.settings)}async loadData(){return await super.loadData()}async saveData(t){super.saveData(t)}async saveMonster(t,n=!0){if(t.name){if(ve.isLocal(t.name)){let a=this.settings.monsters.findIndex(([s])=>s===t.name);a>=0?this.settings.monsters.splice(a,1,[t.name,t]):this.settings.monsters.push([t.name,t])}else this.settings.monsters.push([t.name,t]);ve.addLocalCreature(t),n&&await this.saveSettings()}}async saveMonsters(t){for(let n of t)await this.saveMonster(n,!1);await this.saveSettings()}async updateMonster(t,n){await this.deleteMonsters(t.name),await this.saveMonster(n)}async deleteMonsters(...t){for(let n of t)ve.removeLocalCreature(n);this.settings.monsters=this.settings.monsters.filter(([n])=>!t.includes(n)),await this.saveSettings()}onunload(){console.log("Fantasy StatBlocks unloaded"),this.app.workspace.getLeavesOfType(Ci).forEach(t=>t.detach())}exportAsPng(t,n){function a(r){return!r.hasClass||!r.hasClass("clickable-icon")}let s=n.querySelector(".statblock-content");s&&delete s.style.boxShadow,em.default.toPng(n,{filter:a,style:{height:"100%"}}).then(r=>{let o=document.createElement("a");o.download=t+".png",o.href=r,o.click(),o.detach()}).catch(r=>{new Zi.Notice(`There was an error creating the image: + +${r.message}`),console.error(r)})}get layouts(){return this.manager.getAllLayouts()}get defaultLayout(){return this.manager.getDefaultLayout()}getLayoutOrDefault(t){return this.manager.getLayoutOrDefault(t.layout)}async postprocessor(t,n,a){try{t=ct.transformSource(t);let s=(0,Zi.parseYaml)(t);n.addClass("statblock-plugin-container"),n.parentElement?.addClass("statblock-plugin-parent");let r=new qt({container:n,plugin:this,params:s,context:a.sourcePath});a.addChild(r)}catch(s){console.error(`Obsidian Statblock Error: +${s}`),createEl("pre").setText(`\`\`\`statblock +There was an error rendering the statblock: +${s.stack.split(` +`).filter(o=>!/^at/.test(o?.trim())).join(` +`)} +\`\`\``)}}render(t,n,a){this.api.render(t,n,a)}};dr=new WeakMap; diff --git a/.obsidian/plugins/obsidian-5e-statblocks/manifest.json b/.obsidian/plugins/obsidian-5e-statblocks/manifest.json new file mode 100644 index 0000000..78f976d --- /dev/null +++ b/.obsidian/plugins/obsidian-5e-statblocks/manifest.json @@ -0,0 +1,11 @@ +{ + "id": "obsidian-5e-statblocks", + "name": "Fantasy Statblocks", + "version": "4.6.0", + "description": "Create Fantasy Statblocks in Obsidian.md", + "minAppVersion": "0.12.0", + "author": "Jeremy Valentine", + "authorUrl": "", + "fundingUrl": "https://www.buymeacoffee.com/valentine195", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-5e-statblocks/styles.css b/.obsidian/plugins/obsidian-5e-statblocks/styles.css new file mode 100644 index 0000000..58863b3 --- /dev/null +++ b/.obsidian/plugins/obsidian-5e-statblocks/styles.css @@ -0,0 +1,116 @@ +@charset "UTF-8";:root{--statblock-primary-color: #7a200d;--statblock-rule-color: #922610;--statblock-background-color: #fdf1dc;--statblock-bar-color: #e69a28;--statblock-bar-border-size: 1px;--statblock-bar-border-color: #000;--statblock-image-width: 75px;--statblock-image-height: 75px;--statblock-image-border-size: 2px;--statblock-image-border-color: var(--statblock-primary-color);--statblock-border-size: 1px;--statblock-border-color: #ddd;--statblock-box-shadow-color: #ddd;--statblock-box-shadow-x-offset: 0;--statblock-box-shadow-y-offset: 0;--statblock-box-shadow-blur: 1.5em;--statblock-font-color: var(--statblock-primary-color);--statblock-font-weight: 700;--statblock-content-font: "Noto Sans", "Myriad Pro", Calibri, Helvetica, Arial, sans-serif;--statblock-content-font-size: 14px;--statblock-heading-font: "Libre Baskerville", "Lora", "Calisto MT", "Bookman Old Style", Bookman, "Goudy Old Style", Garamond, "Hoefler Text", "Bitstream Charter", Georgia, serif;--statblock-heading-font-color: var(--statblock-font-color);--statblock-heading-font-size: 23px;--statblock-heading-font-variant: small-caps;--statblock-heading-font-weight: var(--statblock-font-weight);--statblock-heading-line-height: inherit;--statblock-property-line-height: 1.4;--statblock-property-font-color: var(--statblock-font-color);--statblock-property-name-font-color: var(--statblock-font-color);--statblock-property-name-font-weight: bold;--statblock-section-heading-border-size: 1px;--statblock-section-heading-border-color: var(--statblock-primary-color);--statblock-section-heading-font-color: var(--statblock-font-color);--statblock-section-heading-font-size: 21px;--statblock-section-heading-font-variant: small-caps;--statblock-section-heading-font-weight: normal;--statblock-saves-line-height: 1.4;--statblock-spells-font-style: italic;--statblock-subheading-font-size: 12px;--statblock-subheading-font-style: italic;--statblock-subheading-font-weight: normal;--statblock-table-header-font-weight: bold;--statblock-traits-name-font-weight: bold;--statblock-traits-name-font-style: italic;--statblock-link-style: italic}.statblock-detached{position:absolute;top:-9999px;width:auto}.statblock-item-container{margin-bottom:.25rem}.statblock-item-inline{display:flex;justify-content:space-between}.statblock-filter-container .search-input-container{margin-bottom:0}.no-border-top{border-top:0}.statblock-edit-block .statblock-additional-container>.additional>.setting-item .setting-item-name{font-size:small;font-style:italic}.statblock-edit-block .statblock-additional-container>.additional>.setting-item{color:var(--text-muted)}.statblock-edit-block .statblock-additional-container>:not(.additional){padding-bottom:0}.fantasy-statblocks-modal .copy-code-button,.statblock-edit-block .copy-code-button{display:none}.statblock-edit-block .setting-item{border:0;padding-top:0rem}.statblock-edit-block textarea{width:100%;resize:vertical;overflow:hidden}.statblock-additional-container.statblock-monsters button{margin-right:0}.statblock-file-upload>input[type=file]{display:none}.statblock-additional-container{border-top:1px solid var(--background-modifier-border);border-bottom:0px solid var(--background-modifier-border);padding:18px 0 0;background-color:inherit}.statblock-additional-container details{padding:18px 0}.statblock-additional-container .clickable-icon{margin:0 6px}.statblock-additional-container .task-list-inline{display:grid;grid-template-columns:1fr 1fr;gap:0 3em;padding-bottom:0;margin:0}.statblock-monster-filter{position:sticky;top:calc(-1 * var(--statblock-filter-offset));background-color:var(--statblock-filter-bg);z-index:99999}.statblock-additional-container>.setting-item-heading:only-child{padding-bottom:18px}.statblock-additional-container>.additional{margin:6px 12px}.statblock-additional-container .setting-item{border-top:0}.statblock-additional-container>.additional>.setting-item{padding-top:9px}.statblock-additional-container>.additional>.setting-item>.setting-item-control>*:first-child{margin:0 6px}.statblock-settings .coffee{width:60%;color:var(--text-faint);margin:1rem auto;text-align:center}.statblock-settings .coffee img{height:30px}details.statblock-nested-settings>summary{outline:none;display:flex;justify-content:space-between;min-height:1rem;border-top-left-radius:.1rem;border-top-right-radius:.1rem;cursor:pointer;position:relative;margin-bottom:1rem}details.statblock-nested-settings>summary>.setting-item{padding-bottom:0}.statblock-nested-settings .cm-editor{margin-bottom:1rem}details.statblock-nested-settings>summary::-webkit-details-marker,details.statblock-nested-settings>summary::marker{display:none!important}details.statblock-nested-settings .summary-content{display:flex;align-items:center;justify-content:space-between}details.statblock-nested-settings[open] .summary-content{border-bottom:1px solid var(--background-modifier-border)}details.statblock-nested-settings .summary-content .setting-item-heading{padding:0}details.statblock-nested-settings>summary .collapser{display:flex;align-items:center;content:""}details.statblock-nested-settings>summary .collapser>.handle{transform:rotate(0);transition:transform .25s;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-image:url("data:image/svg+xml;charset=utf-8,");mask-image:url("data:image/svg+xml;charset=utf-8,");width:20px;height:20px}details[open].statblock-nested-settings>summary .collapser>.handle{transform:rotate(90deg)}.statblock-nested-settings{padding-bottom:18px}.statblock-nested-settings:not(details) .setting-item-heading{border-top:0px;border-bottom:1px solid var(--background-modifier-border)}.statblock-textarea+.cm-editor{height:200px;margin-bottom:1rem}.statblock-textarea.statblock-textarea-small+.cm-editor{height:100px;margin-bottom:1rem}.statblock-textarea.statblock-textarea-x-small+.cm-editor{margin-bottom:1rem;height:unset}.confirm-buttons-container{display:flex;justify-content:space-between;align-items:center}.confirm-buttons-container .dont-ask{cursor:pointer}.confirm-buttons{display:flex;justify-content:flex-end;align-items:center;gap:.5rem}.statblock-loading{display:flex;justify-content:center;align-items:center;gap:.375rem}.statblock-loading .spinner{border-bottom-color:transparent;border-radius:50%;display:inline-flex;align-items:center;box-sizing:border-box;animation:rotation 1s ease infinite}@keyframes rotation{0%{transform:scale(1) rotate(-60deg)}20%{transform:rotate(-90deg)}50%{transform:rotate(690deg)}to{transform:rotate(660deg)}}.basic-fate-core-layout{--statblock-section-heading-font-size: 16px;--statblock-rule-color: var(--color-accent);--statblock-background-color: #2e3440;--statblock-bar-color: #5e81ac;--statblock-heading-font-color: #88c0d0;--statblock-property-name-font-color: #88c0d0;--statblock-section-heading-font-color: #63778f;--statblock-section-heading-border-color: #63778f}.basic-fate-core-layout .property-name{color:var(--statblock-property-name-font-color)}.basic-fate-core-layout .statblock-inline-item .line p,.basic-fate-core-layout .statblock-inline-item .line ul{margin:0;white-space:normal}.basic-fate-core-layout .statblock-inline-item .line ul{margin-top:10px}.basic-fate-core-layout .statblock-item-container .property-text p,.basic-fate-core-layout .statblock-item-container.statblock-item-container{margin:0;white-space:normal}.basic-fate-core-layout .property-text.svelte-oskcir div,.basic-fate-core-layout .property-text.svelte-9xkcir div,.basic-fate-core-layout .statblock-inline-item .line{white-space:normal}.basic-fate-core-layout .obsidian-statblock-plugin.statblock.statblock{white-space:normal;margin:0}.basic-fate-core-layout .creature-statblock-container .statblock,.basic-fate-core-layout .rpg-manager-header-container .statblock{max-width:100%;margin:0}.basic-fate-core-layout .rpg-manager-table .statblock.statblock{max-width:90%;margin:0}.basic-fate-core-layout .statblock>*>*>*,.basic-fate-core-layout .rpg-manager-table .statblock>*>*>*,.basic-fate-core-layout .rpg-manager-header-container .statblock>*>*>*{font-size:.8em}.basic-fate-core-layout .statblock-markdown ul{margin:0}.basic-fate-core-layout .statblock-item-inline{align-items:center}.basic-fate-core-layout .statblock-item-inline .line.line{display:flex;align-items:center;line-height:1;color:var(--text-normal)}.basic-fate-core-layout .statblock-content.statblock-content.statblock-content{box-shadow:none;background-color:transparent;border-color:var(--background-secondary-alt);color:var(--text-normal);padding:0 .5em}.basic-fate-core-layout .obsidian-statblock-plugin .bar.bar{background:var(--color-accent);border-color:var(--background-secondary-alt)}.basic-fate-core-layout .statblock-item-container .line.line,.basic-fate-core-layout .obsidian-statblock-plugin .section-header.section-header,.basic-fate-core-layout .obsidian-statblock-plugin .property-name.property-name,.basic-fate-core-layout .obsidian-statblock-plugin .heading.heading{color:var(--text-normal);border-color:var(--text-normal)}.basic-fate-core-layout .statblock-item-container .table.table,.basic-fate-core-layout .statblock-item-container .line.line,.basic-fate-core-layout .obsidian-statblock-plugin .section-header.section-header,.basic-fate-core-layout .statblock-item-inline.statblock-item-inline{margin-top:.25rem}.basic-fate-core-layout .statblock-item-container .flex-container+.line.line{margin-top:.1rem}.basic-fate-core-layout .statblock-item-container:empty+.statblock-item-container{padding-top:.12rem;margin-top:.135rem;border-top:1px dashed var(--text-muted)}.basic-fate-core-layout .markdown-source-view ol>li,.basic-fate-core-layout .markdown-source-view .obsidian-statblock-plugin ul>li,.basic-fate-core-layout .markdown-preview-view .obsidian-statblock-plugin ol>li,.basic-fate-core-layout .markdown-preview-view .obsidian-statblock-plugin ul>li,.basic-fate-core-layout .markdown-rendered .obsidian-statblock-plugin ul>li,.basic-fate-core-layout .mod-cm6 .obsidian-statblock-plugin .HyperMD-list-line.cm-line{padding:0}.basic-fate-core-layout .statblock-plugin-parent .icons.icons{position:static}.basic-fate-core-layout .tapered-rule.tapered-rule.tapered-rule{height:3px}@font-face{font-family:Pathfinder;src:url(data:application/x-font-ttf;charset=utf-8;base64,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) format("truetype");font-weight:400;font-style:normal;font-display:block}[class^=glyph-],[class*=" glyph-"]{font-family:Pathfinder,serif!important;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyph-1action:before{content:"\2b3b"}.glyph-2actions:before{content:"\2b3a"}.glyph-3actions:before{content:"\2b3d"}.glyph-free:before{content:"\2b53"}.glyph-reaction:before{content:"\2b32"}body.basic-pathfinder-2e-layout-theme-default .statblock.basic-pathfinder-2e-layout,body.pathfinder-2e-action-layout-theme-default .statblock.pathfinder-2e-action-layout,body.pathfinder-2e-hazard-layout-theme-default .statblock.pathfinder-2e-hazard-layout,body.pathfinder-2e-influence-layout-theme-default .statblock.pathfinder-2e-influence-layout,body.pathfinder-2e-misc-layout-theme-default .statblock.pathfinder-2e-misc-layout,body.pathfinder-2e-quest-layout-theme-default .statblock.pathfinder-2e-quest-layout,body.pathfinder-2e-settlement-layout-theme-default .statblock.pathfinder-2e-settlement-layout{--statblock-color-common: rgb(54, 69, 79);--statblock-color-uncommon: rgb(143, 85, 66);--statblock-color-rare: rgb(11, 37, 96);--statblock-color-unique: rgb(77, 27, 106);--statblock-color-alignment: rgb(89, 98, 143);--statblock-color-size: rgb(75, 122, 92);--statblock-color-trait: rgb(86, 12, 6)}body.basic-pathfinder-2e-layout-theme-kingmaker .statblock.basic-pathfinder-2e-layout,body.pathfinder-2e-action-layout-theme-kingmaker .statblock.pathfinder-2e-action-layout,body.pathfinder-2e-hazard-layout-theme-kingmaker .statblock.pathfinder-2e-hazard-layout,body.pathfinder-2e-influence-layout-theme-kingmaker .statblock.pathfinder-2e-influence-layout,body.pathfinder-2e-misc-layout-theme-kingmaker .statblock.pathfinder-2e-misc-layout,body.pathfinder-2e-quest-layout-theme-kingmaker .statblock.pathfinder-2e-quest-layout,body.pathfinder-2e-settlement-layout-theme-kingmaker .statblock.pathfinder-2e-settlement-layout{--statblock-color-common: rgb(54, 69, 79);--statblock-color-uncommon: rgb(143, 85, 66);--statblock-color-rare: rgb(11, 37, 96);--statblock-color-unique: rgb(77, 27, 106);--statblock-color-alignment: rgb(97, 129, 157);--statblock-color-size: rgb(25, 66, 26);--statblock-color-trait: rgb(125, 143, 63)}.statblock.basic-pathfinder-2e-layout,.statblock.pathfinder-2e-action-layout,.statblock.pathfinder-2e-hazard-layout,.statblock.pathfinder-2e-influence-layout,.statblock.pathfinder-2e-misc-layout,.statblock.pathfinder-2e-quest-layout,.statblock.pathfinder-2e-settlement-layout{--statblock-color-common: rgb(54, 69, 79);--statblock-color-uncommon: rgb(143, 85, 66);--statblock-color-rare: rgb(11, 37, 96);--statblock-color-unique: rgb(77, 27, 106);--statblock-color-alignment: rgb(89, 98, 143);--statblock-color-size: rgb(75, 122, 92);--statblock-color-trait: rgb(86, 12, 6);--statblock-primary-color: rgb(51, 51, 51);--statblock-rule-color: rgb(51, 51, 51);--statblock-background-color: rgb(246, 244, 242);--statblock-bar-color: rgb(51, 51, 51);--statblock-bar-border-size: 1px;--statblock-bar-border-color: rgb(51, 51, 51);--statblock-image-width: 75px;--statblock-image-height: 75px;--statblock-image-border-size: 2px;--statblock-image-border-color: rgb(51, 51, 51);--statblock-header-image-height: 22px;--statblock-header-image-padding: 0 0 2px 0;--statblock-border-size: 1px;--statblock-border-color: rgb(51, 51, 51);--statblock-box-shadow-color: none;--statblock-box-shadow-x-offset: 0;--statblock-box-shadow-y-offset: 0;--statblock-box-shadow-blur: 1.5em;--statblock-font-color: rgb(51, 51, 51);--statblock-font-weight: 400;--statblock-content-font: system-ui, "Pathfinder", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--statblock-content-font-size: 13px;--statblock-heading-font: system-ui, "Pathfinder", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;--statblock-heading-font-color: rgb(51, 51, 51);--statblock-heading-font-size: 1.35em;--statblock-heading-font-variant: small-caps;--statblock-heading-font-weight: 700;--statblock-heading-line-height: 1;--statblock-property-line-height: 1.33em;--statblock-property-font-color: rgb(51, 51, 51);--statblock-property-name-font-color: rgb(51, 51, 51);--statblock-property-name-font-weight: bold;--statblock-section-heading-border-size: 1px;--statblock-section-heading-border-color: transparent;--statblock-section-heading-font-color: rgb(51, 51, 51);--statblock-section-heading-font-size: 1.33em;--statblock-section-heading-font-variant: small-caps;--statblock-section-heading-font-weight: 400;--statblock-saves-line-height: 1.33em;--statblock-spells-font-style: italic;--statblock-table-header-font-weight: bold;--statblock-column-width: 400px;--statblock-traits-gap: 2px}.statblock.basic-pathfinder-2e-layout .statblock-content{background-color:var(--statblock-background-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;box-shadow:none;color:var(--statblock-property-font-color);display:flex;font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);margin:.5em 2px;padding:.5em;gap:1rem}.statblock.basic-pathfinder-2e-layout .statblock-content .statblock-detached{position:absolute;top:-9999px}.statblock.basic-pathfinder-2e-layout .statblock-content .statblock-item-container{margin:0;padding:0}.statblock.basic-pathfinder-2e-layout .statblock-content .statblock-item-inline{align-content:flex-start;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin:0;padding:0}.statblock.basic-pathfinder-2e-layout .statblock-content>.column{width:var(--statblock-column-width)}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property){margin-block:.25rem}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property):last-child{margin-bottom:0}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line.name){margin:0}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line:has(.property-name)){margin-left:1em}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line) .property-name{margin-left:-1em}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>.statblock-item-container:has(.tapered-rule){margin-block:.25rem}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>.statblock-item-inline:has(.name)+.statblock-item-container:has(.tapered-rule){margin-top:0}.statblock.basic-pathfinder-2e-layout .statblock-content>.column>.statblock-item-inline:has(.rare_01,.rare_02,.rare_03,.rare_04,.alignment,.size,.xp,.kingdom_xp,.trait_01,.trait_02,.trait_03,.trait_04,.trait_05,.trait_06,.trait_07){row-gap:var(--statblock-traits-gap);margin-top:.5em}.statblock.pathfinder-2e-action-layout .statblock-content{background-color:var(--statblock-background-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;box-shadow:none;color:var(--statblock-property-font-color);display:flex;font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);margin:.5em 2px;padding:.5em;gap:1rem}.statblock.pathfinder-2e-action-layout .statblock-content .statblock-detached{position:absolute;top:-9999px}.statblock.pathfinder-2e-action-layout .statblock-content .statblock-item-container{margin:0;padding:0}.statblock.pathfinder-2e-action-layout .statblock-content .statblock-item-inline{align-content:flex-start;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin:0;padding:0}.statblock.pathfinder-2e-action-layout .statblock-content>.column{width:var(--statblock-column-width)}.statblock.pathfinder-2e-action-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property){margin-block:.25rem}.statblock.pathfinder-2e-action-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property):last-child{margin-bottom:0}.statblock.pathfinder-2e-action-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line.name){margin:0}.statblock.pathfinder-2e-action-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line:has(.property-name)){margin-left:1em}.statblock.pathfinder-2e-action-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line) .property-name{margin-left:-1em}.statblock.pathfinder-2e-action-layout .statblock-content>.column>.statblock-item-container:has(.tapered-rule){margin-block:.25rem}.statblock.pathfinder-2e-action-layout .statblock-content>.column>.statblock-item-inline:has(.name)+.statblock-item-container:has(.tapered-rule){margin-top:0}.statblock.pathfinder-2e-action-layout .statblock-content>.column>.statblock-item-inline:has(.rare_01,.rare_02,.rare_03,.rare_04,.alignment,.size,.xp,.kingdom_xp,.trait_01,.trait_02,.trait_03,.trait_04,.trait_05,.trait_06,.trait_07){row-gap:var(--statblock-traits-gap);margin-bottom:.5em}.statblock.pathfinder-2e-hazard-layout .statblock-content{background-color:var(--statblock-background-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;box-shadow:none;color:var(--statblock-property-font-color);display:flex;font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);margin:.5em 2px;padding:.5em;gap:1rem}.statblock.pathfinder-2e-hazard-layout .statblock-content .statblock-detached{position:absolute;top:-9999px}.statblock.pathfinder-2e-hazard-layout .statblock-content .statblock-item-container{margin:0;padding:0}.statblock.pathfinder-2e-hazard-layout .statblock-content .statblock-item-inline{align-content:flex-start;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin:0;padding:0}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column{width:var(--statblock-column-width)}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property){margin-block:.25rem}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property):last-child{margin-bottom:0}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line.name){margin:0}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line:has(.property-name)){margin-left:1em}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line) .property-name{margin-left:-1em}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>.statblock-item-container:has(.tapered-rule){margin-block:.25rem}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>.statblock-item-inline:has(.name)+.statblock-item-container:has(.tapered-rule){margin-top:0}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>.statblock-item-inline:has(.rare_01,.rare_02,.rare_03,.rare_04,.alignment,.size,.xp,.kingdom_xp,.trait_01,.trait_02,.trait_03,.trait_04,.trait_05,.trait_06,.trait_07){row-gap:var(--statblock-traits-gap);margin-bottom:.5em}.statblock.pathfinder-2e-hazard-layout .statblock-content>.column>.statblock-item-container:has(.effect){margin-left:1em}.statblock.pathfinder-2e-influence-layout .statblock-content{background-color:var(--statblock-background-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;box-shadow:none;color:var(--statblock-property-font-color);display:flex;font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);margin:.5em 2px;padding:.5em;gap:1rem}.statblock.pathfinder-2e-influence-layout .statblock-content .statblock-detached{position:absolute;top:-9999px}.statblock.pathfinder-2e-influence-layout .statblock-content .statblock-item-container{margin:0;padding:0}.statblock.pathfinder-2e-influence-layout .statblock-content .statblock-item-inline{align-content:flex-start;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin:0;padding:0}.statblock.pathfinder-2e-influence-layout .statblock-content>.column{width:var(--statblock-column-width)}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property){margin-block:.25rem}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property):last-child{margin-bottom:0}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line.name){margin:0}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line:has(.property-name)){margin-left:1em}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line) .property-name{margin-left:-1em}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>.statblock-item-container:has(.tapered-rule){margin-block:.25rem}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>.statblock-item-inline:has(.name)+.statblock-item-container:has(.tapered-rule){margin-top:0}.statblock.pathfinder-2e-influence-layout .statblock-content>.column>.statblock-item-inline:has(.rare_01,.rare_02,.rare_03,.rare_04,.alignment,.size,.xp,.kingdom_xp,.trait_01,.trait_02,.trait_03,.trait_04,.trait_05,.trait_06,.trait_07){row-gap:var(--statblock-traits-gap);margin-bottom:.5em}.statblock.pathfinder-2e-misc-layout .statblock-content{background-color:var(--statblock-background-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;box-shadow:none;color:var(--statblock-property-font-color);display:flex;font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);margin:.5em 2px;padding:.5em;gap:1rem}.statblock.pathfinder-2e-misc-layout .statblock-content .statblock-detached{position:absolute;top:-9999px}.statblock.pathfinder-2e-misc-layout .statblock-content .statblock-item-container{margin:0;padding:0}.statblock.pathfinder-2e-misc-layout .statblock-content .statblock-item-inline{align-content:flex-start;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin:0;padding:0}.statblock.pathfinder-2e-misc-layout .statblock-content>.column{width:var(--statblock-column-width)}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property){margin-block:.25rem}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property):last-child{margin-bottom:0}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line.name){margin:0}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line:has(.property-name)){margin-left:1em}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line) .property-name{margin-left:-1em}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>.statblock-item-container:has(.tapered-rule){margin-block:.25rem}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>.statblock-item-inline:has(.name)+.statblock-item-container:has(.tapered-rule){margin-top:0}.statblock.pathfinder-2e-misc-layout .statblock-content>.column>.statblock-item-inline:has(.rare_01,.rare_02,.rare_03,.rare_04,.alignment,.size,.xp,.kingdom_xp,.trait_01,.trait_02,.trait_03,.trait_04,.trait_05,.trait_06,.trait_07){row-gap:var(--statblock-traits-gap);margin-bottom:.5em}.statblock.pathfinder-2e-quest-layout .statblock-content{background-color:var(--statblock-background-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;box-shadow:none;color:var(--statblock-property-font-color);display:flex;font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);margin:.5em 2px;padding:.5em;gap:1rem}.statblock.pathfinder-2e-quest-layout .statblock-content .statblock-detached{position:absolute;top:-9999px}.statblock.pathfinder-2e-quest-layout .statblock-content .statblock-item-container{margin:0;padding:0}.statblock.pathfinder-2e-quest-layout .statblock-content .statblock-item-inline{align-content:flex-start;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin:0;padding:0}.statblock.pathfinder-2e-quest-layout .statblock-content>.column{width:var(--statblock-column-width)}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property){margin-block:.25rem}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property):last-child{margin-bottom:0}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line.name){margin:0}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line:has(.property-name)){margin-left:1em}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line) .property-name{margin-left:-1em}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>.statblock-item-container:has(.tapered-rule){margin-block:.25rem}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>.statblock-item-inline:has(.name)+.statblock-item-container:has(.tapered-rule){margin-top:0}.statblock.pathfinder-2e-quest-layout .statblock-content>.column>.statblock-item-inline:has(.rare_01,.rare_02,.rare_03,.rare_04,.alignment,.size,.xp,.kingdom_xp,.trait_01,.trait_02,.trait_03,.trait_04,.trait_05,.trait_06,.trait_07){row-gap:var(--statblock-traits-gap);margin-bottom:.5em}.statblock.pathfinder-2e-settlement-layout .statblock-content{background-color:var(--statblock-background-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;box-shadow:none;color:var(--statblock-property-font-color);display:flex;font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);margin:.5em 2px;padding:.5em;gap:1rem}.statblock.pathfinder-2e-settlement-layout .statblock-content .statblock-detached{position:absolute;top:-9999px}.statblock.pathfinder-2e-settlement-layout .statblock-content .statblock-item-container{margin:0;padding:0}.statblock.pathfinder-2e-settlement-layout .statblock-content .statblock-item-inline{align-content:flex-start;align-items:baseline;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;margin:0;padding:0}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column{width:var(--statblock-column-width)}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property){margin-block:.25rem}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line,.property):last-child{margin-bottom:0}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline):has(.line.name){margin:0}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line:has(.property-name)){margin-left:1em}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>:is(.statblock-item-container,.statblock-item-inline)>:is(.property,.line) .property-name{margin-left:-1em}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>.statblock-item-container:has(.tapered-rule){margin-block:.25rem}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>.statblock-item-inline:has(.name)+.statblock-item-container:has(.tapered-rule){margin-top:0}.statblock.pathfinder-2e-settlement-layout .statblock-content>.column>.statblock-item-inline:has(.rare_01,.rare_02,.rare_03,.rare_04,.alignment,.size,.xp,.kingdom_xp,.trait_01,.trait_02,.trait_03,.trait_04,.trait_05,.trait_06,.trait_07){row-gap:var(--statblock-traits-gap);margin-bottom:.5em}.statblock.basic-pathfinder-2e-layout .bar{height:1px;background:#333;border:1px solid rgb(51,51,51);z-index:1;width:fit-content}.statblock.basic-pathfinder-2e-layout div.tapered-rule{width:auto;margin:0;height:1px;background:#333;clip-path:unset!important;-webkit-clip-path:unset}.statblock.pathfinder-2e-action-layout .bar{height:1px;background:#333;border:1px solid rgb(51,51,51);z-index:1;width:fit-content}.statblock.pathfinder-2e-action-layout div.tapered-rule{width:auto;margin:0;height:1px;background:#333;clip-path:unset!important;-webkit-clip-path:unset}.statblock.pathfinder-2e-hazard-layout .bar{height:1px;background:#333;border:1px solid rgb(51,51,51);z-index:1;width:fit-content}.statblock.pathfinder-2e-hazard-layout div.tapered-rule{width:auto;margin:0;height:1px;background:#333;clip-path:unset!important;-webkit-clip-path:unset}.statblock.pathfinder-2e-influence-layout .bar{height:1px;background:#333;border:1px solid rgb(51,51,51);z-index:1;width:fit-content}.statblock.pathfinder-2e-influence-layout div.tapered-rule{width:auto;margin:0;height:1px;background:#333;clip-path:unset!important;-webkit-clip-path:unset}.statblock.pathfinder-2e-misc-layout .bar{height:1px;background:#333;border:1px solid rgb(51,51,51);z-index:1;width:fit-content}.statblock.pathfinder-2e-misc-layout div.tapered-rule{width:auto;margin:0;height:1px;background:#333;clip-path:unset!important;-webkit-clip-path:unset}.statblock.pathfinder-2e-quest-layout .bar{height:1px;background:#333;border:1px solid rgb(51,51,51);z-index:1;width:fit-content}.statblock.pathfinder-2e-quest-layout div.tapered-rule{width:auto;margin:0;height:1px;background:#333;clip-path:unset!important;-webkit-clip-path:unset}.statblock.pathfinder-2e-settlement-layout .bar{height:1px;background:#333;border:1px solid rgb(51,51,51);z-index:1;width:fit-content}.statblock.pathfinder-2e-settlement-layout div.tapered-rule{width:auto;margin:0;height:1px;background:#333;clip-path:unset!important;-webkit-clip-path:unset}.statblock.basic-pathfinder-2e-layout .flex-container{align-items:center;display:flex;justify-content:space-between}.statblock.basic-pathfinder-2e-layout .heading{align-items:center;color:var(--statblock-heading-font-color);display:flex;font-family:var(--statblock-heading-font);font-size:1.35em;font-variant:small-caps;font-weight:700;justify-content:space-between;letter-spacing:1px;line-height:1;margin:0}.statblock.basic-pathfinder-2e-layout .section-header{border:none;color:var(--statblock-section-heading-font-color);font-size:var(--statblock-section-heading-font-size);font-variant:var(--statblock-section-heading-font-variant);font-weight:var(--statblock-section-heading-font-weight);letter-spacing:1px;margin-bottom:.3em}.statblock.basic-pathfinder-2e-layout h3.section-header{display:none}.statblock.basic-pathfinder-2e-layout h3,.statblock.basic-pathfinder-2e-layout .markdown-rendered h3,.statblock.basic-pathfinder-2e-layout .HyperMD-header-3,.statblock.basic-pathfinder-2e-layout .inline-title[data-level="3"],.statblock.basic-pathfinder-2e-layout .HyperMD-list-line .cm-header-3{font-variant:petite-caps;letter-spacing:1px;line-height:1;font-size:1.25em;color:var(--statblock-section-heading-font-color)}.statblock.pathfinder-2e-action-layout .flex-container{align-items:center;display:flex;justify-content:space-between}.statblock.pathfinder-2e-action-layout .heading{align-items:center;color:var(--statblock-heading-font-color);display:flex;font-family:var(--statblock-heading-font);font-size:1.35em;font-variant:small-caps;font-weight:700;justify-content:space-between;letter-spacing:1px;line-height:1;margin:0}.statblock.pathfinder-2e-action-layout .section-header{border:none;color:var(--statblock-section-heading-font-color);font-size:var(--statblock-section-heading-font-size);font-variant:var(--statblock-section-heading-font-variant);font-weight:var(--statblock-section-heading-font-weight);letter-spacing:1px;margin-bottom:.3em}.statblock.pathfinder-2e-action-layout h3.section-header{display:none}.statblock.pathfinder-2e-action-layout h3,.statblock.pathfinder-2e-action-layout .markdown-rendered h3,.statblock.pathfinder-2e-action-layout .HyperMD-header-3,.statblock.pathfinder-2e-action-layout .inline-title[data-level="3"],.statblock.pathfinder-2e-action-layout .HyperMD-list-line .cm-header-3{font-variant:petite-caps;letter-spacing:1px;line-height:1;font-size:1.25em;color:var(--statblock-section-heading-font-color)}.statblock.pathfinder-2e-hazard-layout .flex-container{align-items:center;display:flex;justify-content:space-between}.statblock.pathfinder-2e-hazard-layout .heading{align-items:center;color:var(--statblock-heading-font-color);display:flex;font-family:var(--statblock-heading-font);font-size:1.35em;font-variant:small-caps;font-weight:700;justify-content:space-between;letter-spacing:1px;line-height:1;margin:0}.statblock.pathfinder-2e-hazard-layout .section-header{border:none;color:var(--statblock-section-heading-font-color);font-size:var(--statblock-section-heading-font-size);font-variant:var(--statblock-section-heading-font-variant);font-weight:var(--statblock-section-heading-font-weight);letter-spacing:1px;margin-bottom:.3em}.statblock.pathfinder-2e-hazard-layout h3.section-header{display:none}.statblock.pathfinder-2e-hazard-layout h3,.statblock.pathfinder-2e-hazard-layout .markdown-rendered h3,.statblock.pathfinder-2e-hazard-layout .HyperMD-header-3,.statblock.pathfinder-2e-hazard-layout .inline-title[data-level="3"],.statblock.pathfinder-2e-hazard-layout .HyperMD-list-line .cm-header-3{font-variant:petite-caps;letter-spacing:1px;line-height:1;font-size:1.25em;color:var(--statblock-section-heading-font-color)}.statblock.pathfinder-2e-influence-layout .flex-container{align-items:center;display:flex;justify-content:space-between}.statblock.pathfinder-2e-influence-layout .heading{align-items:center;color:var(--statblock-heading-font-color);display:flex;font-family:var(--statblock-heading-font);font-size:1.35em;font-variant:small-caps;font-weight:700;justify-content:space-between;letter-spacing:1px;line-height:1;margin:0}.statblock.pathfinder-2e-influence-layout .section-header{border:none;color:var(--statblock-section-heading-font-color);font-size:var(--statblock-section-heading-font-size);font-variant:var(--statblock-section-heading-font-variant);font-weight:var(--statblock-section-heading-font-weight);letter-spacing:1px;margin-bottom:.3em}.statblock.pathfinder-2e-influence-layout h3.section-header{display:none}.statblock.pathfinder-2e-influence-layout h3,.statblock.pathfinder-2e-influence-layout .markdown-rendered h3,.statblock.pathfinder-2e-influence-layout .HyperMD-header-3,.statblock.pathfinder-2e-influence-layout .inline-title[data-level="3"],.statblock.pathfinder-2e-influence-layout .HyperMD-list-line .cm-header-3{font-variant:petite-caps;letter-spacing:1px;line-height:1;font-size:1.25em;color:var(--statblock-section-heading-font-color)}.statblock.pathfinder-2e-misc-layout .flex-container{align-items:center;display:flex;justify-content:space-between}.statblock.pathfinder-2e-misc-layout .heading{align-items:center;color:var(--statblock-heading-font-color);display:flex;font-family:var(--statblock-heading-font);font-size:1.35em;font-variant:small-caps;font-weight:700;justify-content:space-between;letter-spacing:1px;line-height:1;margin:0}.statblock.pathfinder-2e-misc-layout .section-header{border:none;color:var(--statblock-section-heading-font-color);font-size:var(--statblock-section-heading-font-size);font-variant:var(--statblock-section-heading-font-variant);font-weight:var(--statblock-section-heading-font-weight);letter-spacing:1px;margin-bottom:.3em}.statblock.pathfinder-2e-misc-layout h3.section-header{display:none}.statblock.pathfinder-2e-misc-layout h3,.statblock.pathfinder-2e-misc-layout .markdown-rendered h3,.statblock.pathfinder-2e-misc-layout .HyperMD-header-3,.statblock.pathfinder-2e-misc-layout .inline-title[data-level="3"],.statblock.pathfinder-2e-misc-layout .HyperMD-list-line .cm-header-3{font-variant:petite-caps;letter-spacing:1px;line-height:1;font-size:1.25em;color:var(--statblock-section-heading-font-color)}.statblock.pathfinder-2e-quest-layout .flex-container{align-items:center;display:flex;justify-content:space-between}.statblock.pathfinder-2e-quest-layout .heading{align-items:center;color:var(--statblock-heading-font-color);display:flex;font-family:var(--statblock-heading-font);font-size:1.35em;font-variant:small-caps;font-weight:700;justify-content:space-between;letter-spacing:1px;line-height:1;margin:0}.statblock.pathfinder-2e-quest-layout .section-header{border:none;color:var(--statblock-section-heading-font-color);font-size:var(--statblock-section-heading-font-size);font-variant:var(--statblock-section-heading-font-variant);font-weight:var(--statblock-section-heading-font-weight);letter-spacing:1px;margin-bottom:.3em}.statblock.pathfinder-2e-quest-layout h3.section-header{display:none}.statblock.pathfinder-2e-quest-layout h3,.statblock.pathfinder-2e-quest-layout .markdown-rendered h3,.statblock.pathfinder-2e-quest-layout .HyperMD-header-3,.statblock.pathfinder-2e-quest-layout .inline-title[data-level="3"],.statblock.pathfinder-2e-quest-layout .HyperMD-list-line .cm-header-3{font-variant:petite-caps;letter-spacing:1px;line-height:1;font-size:1.25em;color:var(--statblock-section-heading-font-color)}.statblock.pathfinder-2e-settlement-layout .flex-container{align-items:center;display:flex;justify-content:space-between}.statblock.pathfinder-2e-settlement-layout .heading{align-items:center;color:var(--statblock-heading-font-color);display:flex;font-family:var(--statblock-heading-font);font-size:1.35em;font-variant:small-caps;font-weight:700;justify-content:space-between;letter-spacing:1px;line-height:1;margin:0}.statblock.pathfinder-2e-settlement-layout .section-header{border:none;color:var(--statblock-section-heading-font-color);font-size:var(--statblock-section-heading-font-size);font-variant:var(--statblock-section-heading-font-variant);font-weight:var(--statblock-section-heading-font-weight);letter-spacing:1px;margin-bottom:.3em}.statblock.pathfinder-2e-settlement-layout h3.section-header{display:none}.statblock.pathfinder-2e-settlement-layout h3,.statblock.pathfinder-2e-settlement-layout .markdown-rendered h3,.statblock.pathfinder-2e-settlement-layout .HyperMD-header-3,.statblock.pathfinder-2e-settlement-layout .inline-title[data-level="3"],.statblock.pathfinder-2e-settlement-layout .HyperMD-list-line .cm-header-3{font-variant:petite-caps;letter-spacing:1px;line-height:1;font-size:1.25em;color:var(--statblock-section-heading-font-color)}.statblock.basic-pathfinder-2e-layout a,.statblock.basic-pathfinder-2e-layout a:-webkit-any-link,.statblock.basic-pathfinder-2e-layout a.internal-link{color:#3d668e;font-weight:var(--statblock-property-name-font-weight);text-decoration:none}.statblock.basic-pathfinder-2e-layout b,.statblock.basic-pathfinder-2e-layout strong,.statblock.basic-pathfinder-2e-layout .cm-strong{font-weight:var(--statblock-property-name-font-weight);color:var(--statblock-property-name-font-color)}.statblock.basic-pathfinder-2e-layout i,.statblock.basic-pathfinder-2e-layout em,.statblock.basic-pathfinder-2e-layout .cm-em{font-style:italic;color:#4d1b69;font-weight:500}.statblock.basic-pathfinder-2e-layout ul{display:block;list-style-type:disc;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;padding-inline-start:40px}.statblock.basic-pathfinder-2e-layout .markdown-rendered ul,.statblock.basic-pathfinder-2e-layout .markdown-rendered ol{padding-inline-start:2em}.statblock.basic-pathfinder-2e-layout li{color:var(--statblock-content-font);display:list-item;text-align:-webkit-match-parent}.statblock.basic-pathfinder-2e-layout .markdown-source-view ol>li,.statblock.basic-pathfinder-2e-layout .markdown-source-view ul>li,.statblock.basic-pathfinder-2e-layout .markdown-preview-view ol>li,.statblock.basic-pathfinder-2e-layout .markdown-preview-view ul>li,.statblock.basic-pathfinder-2e-layout .markdown-rendered ul>li,.statblock.basic-pathfinder-2e-layout .mod-cm6 .HyperMD-list-line.cm-line{padding-top:0;padding-bottom:0}.statblock.basic-pathfinder-2e-layout ol>li::marker,.statblock.basic-pathfinder-2e-layout ul>li::marker,.statblock.basic-pathfinder-2e-layout .cm-s-obsidian .cm-formatting-list{color:var(--statblock-property-name-font-color)}.statblock.basic-pathfinder-2e-layout ::marker{unicode-bidi:isolate;font-variant-numeric:tabular-nums;text-transform:none;text-indent:0;text-align:start;text-align-last:start}.statblock.pathfinder-2e-action-layout a,.statblock.pathfinder-2e-action-layout a:-webkit-any-link,.statblock.pathfinder-2e-action-layout a.internal-link{color:#3d668e;font-weight:var(--statblock-property-name-font-weight);text-decoration:none}.statblock.pathfinder-2e-action-layout b,.statblock.pathfinder-2e-action-layout strong,.statblock.pathfinder-2e-action-layout .cm-strong{font-weight:var(--statblock-property-name-font-weight);color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-action-layout i,.statblock.pathfinder-2e-action-layout em,.statblock.pathfinder-2e-action-layout .cm-em{font-style:italic;color:#4d1b69;font-weight:500}.statblock.pathfinder-2e-action-layout ul{display:block;list-style-type:disc;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;padding-inline-start:40px}.statblock.pathfinder-2e-action-layout .markdown-rendered ul,.statblock.pathfinder-2e-action-layout .markdown-rendered ol{padding-inline-start:2em}.statblock.pathfinder-2e-action-layout li{color:var(--statblock-content-font);display:list-item;text-align:-webkit-match-parent}.statblock.pathfinder-2e-action-layout .markdown-source-view ol>li,.statblock.pathfinder-2e-action-layout .markdown-source-view ul>li,.statblock.pathfinder-2e-action-layout .markdown-preview-view ol>li,.statblock.pathfinder-2e-action-layout .markdown-preview-view ul>li,.statblock.pathfinder-2e-action-layout .markdown-rendered ul>li,.statblock.pathfinder-2e-action-layout .mod-cm6 .HyperMD-list-line.cm-line{padding-top:0;padding-bottom:0}.statblock.pathfinder-2e-action-layout ol>li::marker,.statblock.pathfinder-2e-action-layout ul>li::marker,.statblock.pathfinder-2e-action-layout .cm-s-obsidian .cm-formatting-list{color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-action-layout ::marker{unicode-bidi:isolate;font-variant-numeric:tabular-nums;text-transform:none;text-indent:0;text-align:start;text-align-last:start}.statblock.pathfinder-2e-hazard-layout a,.statblock.pathfinder-2e-hazard-layout a:-webkit-any-link,.statblock.pathfinder-2e-hazard-layout a.internal-link{color:#3d668e;font-weight:var(--statblock-property-name-font-weight);text-decoration:none}.statblock.pathfinder-2e-hazard-layout b,.statblock.pathfinder-2e-hazard-layout strong,.statblock.pathfinder-2e-hazard-layout .cm-strong{font-weight:var(--statblock-property-name-font-weight);color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-hazard-layout i,.statblock.pathfinder-2e-hazard-layout em,.statblock.pathfinder-2e-hazard-layout .cm-em{font-style:italic;color:#4d1b69;font-weight:500}.statblock.pathfinder-2e-hazard-layout ul{display:block;list-style-type:disc;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;padding-inline-start:40px}.statblock.pathfinder-2e-hazard-layout .markdown-rendered ul,.statblock.pathfinder-2e-hazard-layout .markdown-rendered ol{padding-inline-start:2em}.statblock.pathfinder-2e-hazard-layout li{color:var(--statblock-content-font);display:list-item;text-align:-webkit-match-parent}.statblock.pathfinder-2e-hazard-layout .markdown-source-view ol>li,.statblock.pathfinder-2e-hazard-layout .markdown-source-view ul>li,.statblock.pathfinder-2e-hazard-layout .markdown-preview-view ol>li,.statblock.pathfinder-2e-hazard-layout .markdown-preview-view ul>li,.statblock.pathfinder-2e-hazard-layout .markdown-rendered ul>li,.statblock.pathfinder-2e-hazard-layout .mod-cm6 .HyperMD-list-line.cm-line{padding-top:0;padding-bottom:0}.statblock.pathfinder-2e-hazard-layout ol>li::marker,.statblock.pathfinder-2e-hazard-layout ul>li::marker,.statblock.pathfinder-2e-hazard-layout .cm-s-obsidian .cm-formatting-list{color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-hazard-layout ::marker{unicode-bidi:isolate;font-variant-numeric:tabular-nums;text-transform:none;text-indent:0;text-align:start;text-align-last:start}.statblock.pathfinder-2e-influence-layout a,.statblock.pathfinder-2e-influence-layout a:-webkit-any-link,.statblock.pathfinder-2e-influence-layout a.internal-link{color:#3d668e;font-weight:var(--statblock-property-name-font-weight);text-decoration:none}.statblock.pathfinder-2e-influence-layout b,.statblock.pathfinder-2e-influence-layout strong,.statblock.pathfinder-2e-influence-layout .cm-strong{font-weight:var(--statblock-property-name-font-weight);color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-influence-layout i,.statblock.pathfinder-2e-influence-layout em,.statblock.pathfinder-2e-influence-layout .cm-em{font-style:italic;color:#4d1b69;font-weight:500}.statblock.pathfinder-2e-influence-layout ul{display:block;list-style-type:disc;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;padding-inline-start:40px}.statblock.pathfinder-2e-influence-layout .markdown-rendered ul,.statblock.pathfinder-2e-influence-layout .markdown-rendered ol{padding-inline-start:2em}.statblock.pathfinder-2e-influence-layout li{color:var(--statblock-content-font);display:list-item;text-align:-webkit-match-parent}.statblock.pathfinder-2e-influence-layout .markdown-source-view ol>li,.statblock.pathfinder-2e-influence-layout .markdown-source-view ul>li,.statblock.pathfinder-2e-influence-layout .markdown-preview-view ol>li,.statblock.pathfinder-2e-influence-layout .markdown-preview-view ul>li,.statblock.pathfinder-2e-influence-layout .markdown-rendered ul>li,.statblock.pathfinder-2e-influence-layout .mod-cm6 .HyperMD-list-line.cm-line{padding-top:0;padding-bottom:0}.statblock.pathfinder-2e-influence-layout ol>li::marker,.statblock.pathfinder-2e-influence-layout ul>li::marker,.statblock.pathfinder-2e-influence-layout .cm-s-obsidian .cm-formatting-list{color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-influence-layout ::marker{unicode-bidi:isolate;font-variant-numeric:tabular-nums;text-transform:none;text-indent:0;text-align:start;text-align-last:start}.statblock.pathfinder-2e-misc-layout a,.statblock.pathfinder-2e-misc-layout a:-webkit-any-link,.statblock.pathfinder-2e-misc-layout a.internal-link{color:#3d668e;font-weight:var(--statblock-property-name-font-weight);text-decoration:none}.statblock.pathfinder-2e-misc-layout b,.statblock.pathfinder-2e-misc-layout strong,.statblock.pathfinder-2e-misc-layout .cm-strong{font-weight:var(--statblock-property-name-font-weight);color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-misc-layout i,.statblock.pathfinder-2e-misc-layout em,.statblock.pathfinder-2e-misc-layout .cm-em{font-style:italic;color:#4d1b69;font-weight:500}.statblock.pathfinder-2e-misc-layout ul{display:block;list-style-type:disc;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;padding-inline-start:40px}.statblock.pathfinder-2e-misc-layout .markdown-rendered ul,.statblock.pathfinder-2e-misc-layout .markdown-rendered ol{padding-inline-start:2em}.statblock.pathfinder-2e-misc-layout li{color:var(--statblock-content-font);display:list-item;text-align:-webkit-match-parent}.statblock.pathfinder-2e-misc-layout .markdown-source-view ol>li,.statblock.pathfinder-2e-misc-layout .markdown-source-view ul>li,.statblock.pathfinder-2e-misc-layout .markdown-preview-view ol>li,.statblock.pathfinder-2e-misc-layout .markdown-preview-view ul>li,.statblock.pathfinder-2e-misc-layout .markdown-rendered ul>li,.statblock.pathfinder-2e-misc-layout .mod-cm6 .HyperMD-list-line.cm-line{padding-top:0;padding-bottom:0}.statblock.pathfinder-2e-misc-layout ol>li::marker,.statblock.pathfinder-2e-misc-layout ul>li::marker,.statblock.pathfinder-2e-misc-layout .cm-s-obsidian .cm-formatting-list{color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-misc-layout ::marker{unicode-bidi:isolate;font-variant-numeric:tabular-nums;text-transform:none;text-indent:0;text-align:start;text-align-last:start}.statblock.pathfinder-2e-quest-layout a,.statblock.pathfinder-2e-quest-layout a:-webkit-any-link,.statblock.pathfinder-2e-quest-layout a.internal-link{color:#3d668e;font-weight:var(--statblock-property-name-font-weight);text-decoration:none}.statblock.pathfinder-2e-quest-layout b,.statblock.pathfinder-2e-quest-layout strong,.statblock.pathfinder-2e-quest-layout .cm-strong{font-weight:var(--statblock-property-name-font-weight);color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-quest-layout i,.statblock.pathfinder-2e-quest-layout em,.statblock.pathfinder-2e-quest-layout .cm-em{font-style:italic;color:#4d1b69;font-weight:500}.statblock.pathfinder-2e-quest-layout ul{display:block;list-style-type:disc;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;padding-inline-start:40px}.statblock.pathfinder-2e-quest-layout .markdown-rendered ul,.statblock.pathfinder-2e-quest-layout .markdown-rendered ol{padding-inline-start:2em}.statblock.pathfinder-2e-quest-layout li{color:var(--statblock-content-font);display:list-item;text-align:-webkit-match-parent}.statblock.pathfinder-2e-quest-layout .markdown-source-view ol>li,.statblock.pathfinder-2e-quest-layout .markdown-source-view ul>li,.statblock.pathfinder-2e-quest-layout .markdown-preview-view ol>li,.statblock.pathfinder-2e-quest-layout .markdown-preview-view ul>li,.statblock.pathfinder-2e-quest-layout .markdown-rendered ul>li,.statblock.pathfinder-2e-quest-layout .mod-cm6 .HyperMD-list-line.cm-line{padding-top:0;padding-bottom:0}.statblock.pathfinder-2e-quest-layout ol>li::marker,.statblock.pathfinder-2e-quest-layout ul>li::marker,.statblock.pathfinder-2e-quest-layout .cm-s-obsidian .cm-formatting-list{color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-quest-layout ::marker{unicode-bidi:isolate;font-variant-numeric:tabular-nums;text-transform:none;text-indent:0;text-align:start;text-align-last:start}.statblock.pathfinder-2e-settlement-layout a,.statblock.pathfinder-2e-settlement-layout a:-webkit-any-link,.statblock.pathfinder-2e-settlement-layout a.internal-link{color:#3d668e;font-weight:var(--statblock-property-name-font-weight);text-decoration:none}.statblock.pathfinder-2e-settlement-layout b,.statblock.pathfinder-2e-settlement-layout strong,.statblock.pathfinder-2e-settlement-layout .cm-strong{font-weight:var(--statblock-property-name-font-weight);color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-settlement-layout i,.statblock.pathfinder-2e-settlement-layout em,.statblock.pathfinder-2e-settlement-layout .cm-em{font-style:italic;color:#4d1b69;font-weight:500}.statblock.pathfinder-2e-settlement-layout ul{display:block;list-style-type:disc;margin-block-start:1em;margin-block-end:1em;margin-inline-start:0;margin-inline-end:0;padding-inline-start:40px}.statblock.pathfinder-2e-settlement-layout .markdown-rendered ul,.statblock.pathfinder-2e-settlement-layout .markdown-rendered ol{padding-inline-start:2em}.statblock.pathfinder-2e-settlement-layout li{color:var(--statblock-content-font);display:list-item;text-align:-webkit-match-parent}.statblock.pathfinder-2e-settlement-layout .markdown-source-view ol>li,.statblock.pathfinder-2e-settlement-layout .markdown-source-view ul>li,.statblock.pathfinder-2e-settlement-layout .markdown-preview-view ol>li,.statblock.pathfinder-2e-settlement-layout .markdown-preview-view ul>li,.statblock.pathfinder-2e-settlement-layout .markdown-rendered ul>li,.statblock.pathfinder-2e-settlement-layout .mod-cm6 .HyperMD-list-line.cm-line{padding-top:0;padding-bottom:0}.statblock.pathfinder-2e-settlement-layout ol>li::marker,.statblock.pathfinder-2e-settlement-layout ul>li::marker,.statblock.pathfinder-2e-settlement-layout .cm-s-obsidian .cm-formatting-list{color:var(--statblock-property-name-font-color)}.statblock.pathfinder-2e-settlement-layout ::marker{unicode-bidi:isolate;font-variant-numeric:tabular-nums;text-transform:none;text-indent:0;text-align:start;text-align-last:start}.statblock.basic-pathfinder-2e-layout .line{line-height:var(--statblock-property-line-height);display:block;color:var(--statblock-property-font-color)}.statblock.basic-pathfinder-2e-layout .statblock-rendered-text-content{color:var(--statblock-property-name-font-color);font-weight:var(--statblock-property-name-font-weight)}.statblock.basic-pathfinder-2e-layout .statblock-markdown,.statblock.basic-pathfinder-2e-layout .property{line-height:var(--statblock-property-line-height)}.statblock.pathfinder-2e-action-layout .line{line-height:var(--statblock-property-line-height);display:block;color:var(--statblock-property-font-color)}.statblock.pathfinder-2e-action-layout .statblock-rendered-text-content{color:var(--statblock-property-name-font-color);font-weight:var(--statblock-property-name-font-weight)}.statblock.pathfinder-2e-action-layout .statblock-markdown,.statblock.pathfinder-2e-action-layout .property{line-height:var(--statblock-property-line-height)}.statblock.pathfinder-2e-hazard-layout .line{line-height:var(--statblock-property-line-height);display:block;color:var(--statblock-property-font-color)}.statblock.pathfinder-2e-hazard-layout .statblock-rendered-text-content{color:var(--statblock-property-name-font-color);font-weight:var(--statblock-property-name-font-weight)}.statblock.pathfinder-2e-hazard-layout .statblock-markdown,.statblock.pathfinder-2e-hazard-layout .property{line-height:var(--statblock-property-line-height)}.statblock.pathfinder-2e-influence-layout .line{line-height:var(--statblock-property-line-height);display:block;color:var(--statblock-property-font-color)}.statblock.pathfinder-2e-influence-layout .statblock-rendered-text-content{color:var(--statblock-property-name-font-color);font-weight:var(--statblock-property-name-font-weight)}.statblock.pathfinder-2e-influence-layout .statblock-markdown,.statblock.pathfinder-2e-influence-layout .property{line-height:var(--statblock-property-line-height)}.statblock.pathfinder-2e-misc-layout .line{line-height:var(--statblock-property-line-height);display:block;color:var(--statblock-property-font-color)}.statblock.pathfinder-2e-misc-layout .statblock-rendered-text-content{color:var(--statblock-property-name-font-color);font-weight:var(--statblock-property-name-font-weight)}.statblock.pathfinder-2e-misc-layout .statblock-markdown,.statblock.pathfinder-2e-misc-layout .property{line-height:var(--statblock-property-line-height)}.statblock.pathfinder-2e-quest-layout .line{line-height:var(--statblock-property-line-height);display:block;color:var(--statblock-property-font-color)}.statblock.pathfinder-2e-quest-layout .statblock-rendered-text-content{color:var(--statblock-property-name-font-color);font-weight:var(--statblock-property-name-font-weight)}.statblock.pathfinder-2e-quest-layout .statblock-markdown,.statblock.pathfinder-2e-quest-layout .property{line-height:var(--statblock-property-line-height)}.statblock.pathfinder-2e-settlement-layout .line{line-height:var(--statblock-property-line-height);display:block;color:var(--statblock-property-font-color)}.statblock.pathfinder-2e-settlement-layout .statblock-rendered-text-content{color:var(--statblock-property-name-font-color);font-weight:var(--statblock-property-name-font-weight)}.statblock.pathfinder-2e-settlement-layout .statblock-markdown,.statblock.pathfinder-2e-settlement-layout .property{line-height:var(--statblock-property-line-height)}.statblock.basic-pathfinder-2e-layout .statblock-item-inline:has(.statblock-inline-item .name){display:flex;flex-direction:row;margin-inline:.25em;gap:.25em;align-items:center}.statblock.basic-pathfinder-2e-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container:has(.name){flex:1}.statblock.basic-pathfinder-2e-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name p,.statblock.basic-pathfinder-2e-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level p{align-self:flex-start;font-size:1.3em;font-weight:900;line-height:1.5em;text-transform:uppercase}.statblock.basic-pathfinder-2e-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name span.property-name,.statblock.basic-pathfinder-2e-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level span.property-name{display:none}.statblock.basic-pathfinder-2e-layout .statblock-item-inline:has(.statblock-inline-item .name) .pathfinder-2e-quest-icon{display:block;height:var(--statblock-header-image-height);width:unset;max-width:unset;padding:var(--statblock-header-image-padding)}.statblock.pathfinder-2e-action-layout .statblock-item-inline:has(.statblock-inline-item .name){display:flex;flex-direction:row;margin-inline:.25em;gap:.25em;align-items:center}.statblock.pathfinder-2e-action-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container:has(.name){flex:1}.statblock.pathfinder-2e-action-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name p,.statblock.pathfinder-2e-action-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level p{align-self:flex-start;font-size:1.3em;font-weight:900;line-height:1.5em;text-transform:uppercase}.statblock.pathfinder-2e-action-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name span.property-name,.statblock.pathfinder-2e-action-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level span.property-name{display:none}.statblock.pathfinder-2e-action-layout .statblock-item-inline:has(.statblock-inline-item .name) .pathfinder-2e-quest-icon{display:block;height:var(--statblock-header-image-height);width:unset;max-width:unset;padding:var(--statblock-header-image-padding)}.statblock.pathfinder-2e-hazard-layout .statblock-item-inline:has(.statblock-inline-item .name){display:flex;flex-direction:row;margin-inline:.25em;gap:.25em;align-items:center}.statblock.pathfinder-2e-hazard-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container:has(.name){flex:1}.statblock.pathfinder-2e-hazard-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name p,.statblock.pathfinder-2e-hazard-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level p{align-self:flex-start;font-size:1.3em;font-weight:900;line-height:1.5em;text-transform:uppercase}.statblock.pathfinder-2e-hazard-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name span.property-name,.statblock.pathfinder-2e-hazard-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level span.property-name{display:none}.statblock.pathfinder-2e-hazard-layout .statblock-item-inline:has(.statblock-inline-item .name) .pathfinder-2e-quest-icon{display:block;height:var(--statblock-header-image-height);width:unset;max-width:unset;padding:var(--statblock-header-image-padding)}.statblock.pathfinder-2e-influence-layout .statblock-item-inline:has(.statblock-inline-item .name){display:flex;flex-direction:row;margin-inline:.25em;gap:.25em;align-items:center}.statblock.pathfinder-2e-influence-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container:has(.name){flex:1}.statblock.pathfinder-2e-influence-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name p,.statblock.pathfinder-2e-influence-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level p{align-self:flex-start;font-size:1.3em;font-weight:900;line-height:1.5em;text-transform:uppercase}.statblock.pathfinder-2e-influence-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name span.property-name,.statblock.pathfinder-2e-influence-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level span.property-name{display:none}.statblock.pathfinder-2e-influence-layout .statblock-item-inline:has(.statblock-inline-item .name) .pathfinder-2e-quest-icon{display:block;height:var(--statblock-header-image-height);width:unset;max-width:unset;padding:var(--statblock-header-image-padding)}.statblock.pathfinder-2e-misc-layout .statblock-item-inline:has(.statblock-inline-item .name){display:flex;flex-direction:row;margin-inline:.25em;gap:.25em;align-items:center}.statblock.pathfinder-2e-misc-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container:has(.name){flex:1}.statblock.pathfinder-2e-misc-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name p,.statblock.pathfinder-2e-misc-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level p{align-self:flex-start;font-size:1.3em;font-weight:900;line-height:1.5em;text-transform:uppercase}.statblock.pathfinder-2e-misc-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name span.property-name,.statblock.pathfinder-2e-misc-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level span.property-name{display:none}.statblock.pathfinder-2e-misc-layout .statblock-item-inline:has(.statblock-inline-item .name) .pathfinder-2e-quest-icon{display:block;height:var(--statblock-header-image-height);width:unset;max-width:unset;padding:var(--statblock-header-image-padding)}.statblock.pathfinder-2e-quest-layout .statblock-item-inline:has(.statblock-inline-item .name){display:flex;flex-direction:row;margin-inline:.25em;gap:.25em;align-items:center}.statblock.pathfinder-2e-quest-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container:has(.name){flex:1}.statblock.pathfinder-2e-quest-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name p,.statblock.pathfinder-2e-quest-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level p{align-self:flex-start;font-size:1.3em;font-weight:900;line-height:1.5em;text-transform:uppercase}.statblock.pathfinder-2e-quest-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name span.property-name,.statblock.pathfinder-2e-quest-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level span.property-name{display:none}.statblock.pathfinder-2e-quest-layout .statblock-item-inline:has(.statblock-inline-item .name) .pathfinder-2e-quest-icon{display:block;height:var(--statblock-header-image-height);width:unset;max-width:unset;padding:var(--statblock-header-image-padding)}.statblock.pathfinder-2e-settlement-layout .statblock-item-inline:has(.statblock-inline-item .name){display:flex;flex-direction:row;margin-inline:.25em;gap:.25em;align-items:center}.statblock.pathfinder-2e-settlement-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container:has(.name){flex:1}.statblock.pathfinder-2e-settlement-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name p,.statblock.pathfinder-2e-settlement-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level p{align-self:flex-start;font-size:1.3em;font-weight:900;line-height:1.5em;text-transform:uppercase}.statblock.pathfinder-2e-settlement-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .name span.property-name,.statblock.pathfinder-2e-settlement-layout .statblock-item-inline:has(.statblock-inline-item .name) .statblock-inline-item.property-container .level span.property-name{display:none}.statblock.pathfinder-2e-settlement-layout .statblock-item-inline:has(.statblock-inline-item .name) .pathfinder-2e-quest-icon{display:block;height:var(--statblock-header-image-height);width:unset;max-width:unset;padding:var(--statblock-header-image-padding)}.statblock.basic-pathfinder-2e-layout img{display:inline;position:relative;border:none;transform:rotateY(180deg)}.statblock.basic-pathfinder-2e-layout .image-container{text-align:center}.statblock.basic-pathfinder-2e-layout .token>a{display:inline}.statblock.basic-pathfinder-2e-layout .image{width:var(--statblock-image-width);height:var(--statblock-image-height);display:inline;max-height:fit-content;max-width:fit-content;transform:rotateY(180deg)}.statblock.basic-pathfinder-2e-layout .statblock-inline-item .image{width:fit-content;height:fit-content}.statblock.basic-pathfinder-2e-layout .statblock-inline-item .image img{border:none;display:inline;position:relative;align-self:center;object-fit:contain;transform:rotateY(180deg)}.statblock.basic-pathfinder-2e-layout .statblock-inline-item .image .pointer{cursor:pointer}.statblock.pathfinder-2e-action-layout img{display:inline;position:relative;border:none;transform:rotateY(180deg)}.statblock.pathfinder-2e-action-layout .image-container{text-align:center}.statblock.pathfinder-2e-action-layout .token>a{display:inline}.statblock.pathfinder-2e-action-layout .image{width:var(--statblock-image-width);height:var(--statblock-image-height);display:inline;max-height:fit-content;max-width:fit-content;transform:rotateY(180deg)}.statblock.pathfinder-2e-action-layout .statblock-inline-item .image{width:fit-content;height:fit-content}.statblock.pathfinder-2e-action-layout .statblock-inline-item .image img{border:none;display:inline;position:relative;align-self:center;object-fit:contain;transform:rotateY(180deg)}.statblock.pathfinder-2e-action-layout .statblock-inline-item .image .pointer{cursor:pointer}.statblock.pathfinder-2e-hazard-layout img{display:inline;position:relative;border:none;transform:rotateY(180deg)}.statblock.pathfinder-2e-hazard-layout .image-container{text-align:center}.statblock.pathfinder-2e-hazard-layout .token>a{display:inline}.statblock.pathfinder-2e-hazard-layout .image{width:var(--statblock-image-width);height:var(--statblock-image-height);display:inline;max-height:fit-content;max-width:fit-content;transform:rotateY(180deg)}.statblock.pathfinder-2e-hazard-layout .statblock-inline-item .image{width:fit-content;height:fit-content}.statblock.pathfinder-2e-hazard-layout .statblock-inline-item .image img{border:none;display:inline;position:relative;align-self:center;object-fit:contain;transform:rotateY(180deg)}.statblock.pathfinder-2e-hazard-layout .statblock-inline-item .image .pointer{cursor:pointer}.statblock.pathfinder-2e-influence-layout img{display:inline;position:relative;border:none;transform:rotateY(180deg)}.statblock.pathfinder-2e-influence-layout .image-container{text-align:center}.statblock.pathfinder-2e-influence-layout .token>a{display:inline}.statblock.pathfinder-2e-influence-layout .image{width:var(--statblock-image-width);height:var(--statblock-image-height);display:inline;max-height:fit-content;max-width:fit-content;transform:rotateY(180deg)}.statblock.pathfinder-2e-influence-layout .statblock-inline-item .image{width:fit-content;height:fit-content}.statblock.pathfinder-2e-influence-layout .statblock-inline-item .image img{border:none;display:inline;position:relative;align-self:center;object-fit:contain;transform:rotateY(180deg)}.statblock.pathfinder-2e-influence-layout .statblock-inline-item .image .pointer{cursor:pointer}.statblock.pathfinder-2e-misc-layout img{display:inline;position:relative;border:none;transform:rotateY(180deg)}.statblock.pathfinder-2e-misc-layout .image-container{text-align:center}.statblock.pathfinder-2e-misc-layout .token>a{display:inline}.statblock.pathfinder-2e-misc-layout .image{width:var(--statblock-image-width);height:var(--statblock-image-height);display:inline;max-height:fit-content;max-width:fit-content;transform:rotateY(180deg)}.statblock.pathfinder-2e-misc-layout .statblock-inline-item .image{width:fit-content;height:fit-content}.statblock.pathfinder-2e-misc-layout .statblock-inline-item .image img{border:none;display:inline;position:relative;align-self:center;object-fit:contain;transform:rotateY(180deg)}.statblock.pathfinder-2e-misc-layout .statblock-inline-item .image .pointer{cursor:pointer}.statblock.pathfinder-2e-quest-layout img{display:inline;position:relative;border:none;transform:rotateY(180deg)}.statblock.pathfinder-2e-quest-layout .image-container{text-align:center}.statblock.pathfinder-2e-quest-layout .token>a{display:inline}.statblock.pathfinder-2e-quest-layout .image{width:var(--statblock-image-width);height:var(--statblock-image-height);display:inline;max-height:fit-content;max-width:fit-content;transform:rotateY(180deg)}.statblock.pathfinder-2e-quest-layout .statblock-inline-item .image{width:fit-content;height:fit-content}.statblock.pathfinder-2e-quest-layout .statblock-inline-item .image img{border:none;display:inline;position:relative;align-self:center;object-fit:contain;transform:rotateY(180deg)}.statblock.pathfinder-2e-quest-layout .statblock-inline-item .image .pointer{cursor:pointer}.statblock.pathfinder-2e-settlement-layout img{display:inline;position:relative;border:none;transform:rotateY(180deg)}.statblock.pathfinder-2e-settlement-layout .image-container{text-align:center}.statblock.pathfinder-2e-settlement-layout .token>a{display:inline}.statblock.pathfinder-2e-settlement-layout .image{width:var(--statblock-image-width);height:var(--statblock-image-height);display:inline;max-height:fit-content;max-width:fit-content;transform:rotateY(180deg)}.statblock.pathfinder-2e-settlement-layout .statblock-inline-item .image{width:fit-content;height:fit-content}.statblock.pathfinder-2e-settlement-layout .statblock-inline-item .image img{border:none;display:inline;position:relative;align-self:center;object-fit:contain;transform:rotateY(180deg)}.statblock.pathfinder-2e-settlement-layout .statblock-inline-item .image .pointer{cursor:pointer}.statblock.basic-pathfinder-2e-layout .traits{margin:0 .25em 0 0;display:inline;font-weight:900!important;font-style:normal!important}.statblock.basic-pathfinder-2e-layout .rare_01{background-color:var(--statblock-color-common)!important}.statblock.basic-pathfinder-2e-layout .rare_02{background-color:var(--statblock-color-uncommon)!important}.statblock.basic-pathfinder-2e-layout .rare_03{background-color:var(--statblock-color-rare)!important}.statblock.basic-pathfinder-2e-layout .rare_04{background-color:var(--statblock-color-unique)!important}.statblock.basic-pathfinder-2e-layout .alignment{background-color:var(--statblock-color-alignment)!important}.statblock.basic-pathfinder-2e-layout .size{background-color:var(--statblock-color-size)!important}.statblock.basic-pathfinder-2e-layout .xp,.statblock.basic-pathfinder-2e-layout .kingdom_xp,.statblock.basic-pathfinder-2e-layout .trait_01,.statblock.basic-pathfinder-2e-layout .trait_02,.statblock.basic-pathfinder-2e-layout .trait_03,.statblock.basic-pathfinder-2e-layout .trait_04,.statblock.basic-pathfinder-2e-layout .trait_05,.statblock.basic-pathfinder-2e-layout .trait_06,.statblock.basic-pathfinder-2e-layout .trait_07{background-color:var(--statblock-color-trait)!important}.statblock.basic-pathfinder-2e-layout .rare_01,.statblock.basic-pathfinder-2e-layout .rare_02,.statblock.basic-pathfinder-2e-layout .rare_03,.statblock.basic-pathfinder-2e-layout .rare_04,.statblock.basic-pathfinder-2e-layout .alignment,.statblock.basic-pathfinder-2e-layout .size,.statblock.basic-pathfinder-2e-layout .xp,.statblock.basic-pathfinder-2e-layout .kingdom_xp,.statblock.basic-pathfinder-2e-layout .trait_01,.statblock.basic-pathfinder-2e-layout .trait_02,.statblock.basic-pathfinder-2e-layout .trait_03,.statblock.basic-pathfinder-2e-layout .trait_04,.statblock.basic-pathfinder-2e-layout .trait_05,.statblock.basic-pathfinder-2e-layout .trait_06,.statblock.basic-pathfinder-2e-layout .trait_07{color:#fff!important;font-size:12px;font-style:normal!important;font-weight:900!important;letter-spacing:.01em;min-width:4em;margin:0 var(--statblock-traits-gap) 0 0;padding:.4em 1.1em .2em;text-align:center;text-transform:uppercase}.statblock.basic-pathfinder-2e-layout .rare_01 span.property-name,.statblock.basic-pathfinder-2e-layout .rare_02 span.property-name,.statblock.basic-pathfinder-2e-layout .rare_03 span.property-name,.statblock.basic-pathfinder-2e-layout .rare_04 span.property-name,.statblock.basic-pathfinder-2e-layout .alignment span.property-name,.statblock.basic-pathfinder-2e-layout .size span.property-name,.statblock.basic-pathfinder-2e-layout .xp span.property-name,.statblock.basic-pathfinder-2e-layout .kingdom_xp span.property-name,.statblock.basic-pathfinder-2e-layout .trait_01 span.property-name,.statblock.basic-pathfinder-2e-layout .trait_02 span.property-name,.statblock.basic-pathfinder-2e-layout .trait_03 span.property-name,.statblock.basic-pathfinder-2e-layout .trait_04 span.property-name,.statblock.basic-pathfinder-2e-layout .trait_05 span.property-name,.statblock.basic-pathfinder-2e-layout .trait_06 span.property-name,.statblock.basic-pathfinder-2e-layout .trait_07 span.property-name{display:none}.statblock.pathfinder-2e-action-layout .traits{margin:0 .25em 0 0;display:inline;font-weight:900!important;font-style:normal!important}.statblock.pathfinder-2e-action-layout .rare_01{background-color:var(--statblock-color-common)!important}.statblock.pathfinder-2e-action-layout .rare_02{background-color:var(--statblock-color-uncommon)!important}.statblock.pathfinder-2e-action-layout .rare_03{background-color:var(--statblock-color-rare)!important}.statblock.pathfinder-2e-action-layout .rare_04{background-color:var(--statblock-color-unique)!important}.statblock.pathfinder-2e-action-layout .alignment{background-color:var(--statblock-color-alignment)!important}.statblock.pathfinder-2e-action-layout .size{background-color:var(--statblock-color-size)!important}.statblock.pathfinder-2e-action-layout .xp,.statblock.pathfinder-2e-action-layout .kingdom_xp,.statblock.pathfinder-2e-action-layout .trait_01,.statblock.pathfinder-2e-action-layout .trait_02,.statblock.pathfinder-2e-action-layout .trait_03,.statblock.pathfinder-2e-action-layout .trait_04,.statblock.pathfinder-2e-action-layout .trait_05,.statblock.pathfinder-2e-action-layout .trait_06,.statblock.pathfinder-2e-action-layout .trait_07{background-color:var(--statblock-color-trait)!important}.statblock.pathfinder-2e-action-layout .rare_01,.statblock.pathfinder-2e-action-layout .rare_02,.statblock.pathfinder-2e-action-layout .rare_03,.statblock.pathfinder-2e-action-layout .rare_04,.statblock.pathfinder-2e-action-layout .alignment,.statblock.pathfinder-2e-action-layout .size,.statblock.pathfinder-2e-action-layout .xp,.statblock.pathfinder-2e-action-layout .kingdom_xp,.statblock.pathfinder-2e-action-layout .trait_01,.statblock.pathfinder-2e-action-layout .trait_02,.statblock.pathfinder-2e-action-layout .trait_03,.statblock.pathfinder-2e-action-layout .trait_04,.statblock.pathfinder-2e-action-layout .trait_05,.statblock.pathfinder-2e-action-layout .trait_06,.statblock.pathfinder-2e-action-layout .trait_07{color:#fff!important;font-size:12px;font-style:normal!important;font-weight:900!important;letter-spacing:.01em;min-width:4em;margin:0 var(--statblock-traits-gap) 0 0;padding:.4em 1.1em .2em;text-align:center;text-transform:uppercase}.statblock.pathfinder-2e-action-layout .rare_01 span.property-name,.statblock.pathfinder-2e-action-layout .rare_02 span.property-name,.statblock.pathfinder-2e-action-layout .rare_03 span.property-name,.statblock.pathfinder-2e-action-layout .rare_04 span.property-name,.statblock.pathfinder-2e-action-layout .alignment span.property-name,.statblock.pathfinder-2e-action-layout .size span.property-name,.statblock.pathfinder-2e-action-layout .xp span.property-name,.statblock.pathfinder-2e-action-layout .kingdom_xp span.property-name,.statblock.pathfinder-2e-action-layout .trait_01 span.property-name,.statblock.pathfinder-2e-action-layout .trait_02 span.property-name,.statblock.pathfinder-2e-action-layout .trait_03 span.property-name,.statblock.pathfinder-2e-action-layout .trait_04 span.property-name,.statblock.pathfinder-2e-action-layout .trait_05 span.property-name,.statblock.pathfinder-2e-action-layout .trait_06 span.property-name,.statblock.pathfinder-2e-action-layout .trait_07 span.property-name{display:none}.statblock.pathfinder-2e-hazard-layout .traits{margin:0 .25em 0 0;display:inline;font-weight:900!important;font-style:normal!important}.statblock.pathfinder-2e-hazard-layout .rare_01{background-color:var(--statblock-color-common)!important}.statblock.pathfinder-2e-hazard-layout .rare_02{background-color:var(--statblock-color-uncommon)!important}.statblock.pathfinder-2e-hazard-layout .rare_03{background-color:var(--statblock-color-rare)!important}.statblock.pathfinder-2e-hazard-layout .rare_04{background-color:var(--statblock-color-unique)!important}.statblock.pathfinder-2e-hazard-layout .alignment{background-color:var(--statblock-color-alignment)!important}.statblock.pathfinder-2e-hazard-layout .size{background-color:var(--statblock-color-size)!important}.statblock.pathfinder-2e-hazard-layout .xp,.statblock.pathfinder-2e-hazard-layout .kingdom_xp,.statblock.pathfinder-2e-hazard-layout .trait_01,.statblock.pathfinder-2e-hazard-layout .trait_02,.statblock.pathfinder-2e-hazard-layout .trait_03,.statblock.pathfinder-2e-hazard-layout .trait_04,.statblock.pathfinder-2e-hazard-layout .trait_05,.statblock.pathfinder-2e-hazard-layout .trait_06,.statblock.pathfinder-2e-hazard-layout .trait_07{background-color:var(--statblock-color-trait)!important}.statblock.pathfinder-2e-hazard-layout .rare_01,.statblock.pathfinder-2e-hazard-layout .rare_02,.statblock.pathfinder-2e-hazard-layout .rare_03,.statblock.pathfinder-2e-hazard-layout .rare_04,.statblock.pathfinder-2e-hazard-layout .alignment,.statblock.pathfinder-2e-hazard-layout .size,.statblock.pathfinder-2e-hazard-layout .xp,.statblock.pathfinder-2e-hazard-layout .kingdom_xp,.statblock.pathfinder-2e-hazard-layout .trait_01,.statblock.pathfinder-2e-hazard-layout .trait_02,.statblock.pathfinder-2e-hazard-layout .trait_03,.statblock.pathfinder-2e-hazard-layout .trait_04,.statblock.pathfinder-2e-hazard-layout .trait_05,.statblock.pathfinder-2e-hazard-layout .trait_06,.statblock.pathfinder-2e-hazard-layout .trait_07{color:#fff!important;font-size:12px;font-style:normal!important;font-weight:900!important;letter-spacing:.01em;min-width:4em;margin:0 var(--statblock-traits-gap) 0 0;padding:.4em 1.1em .2em;text-align:center;text-transform:uppercase}.statblock.pathfinder-2e-hazard-layout .rare_01 span.property-name,.statblock.pathfinder-2e-hazard-layout .rare_02 span.property-name,.statblock.pathfinder-2e-hazard-layout .rare_03 span.property-name,.statblock.pathfinder-2e-hazard-layout .rare_04 span.property-name,.statblock.pathfinder-2e-hazard-layout .alignment span.property-name,.statblock.pathfinder-2e-hazard-layout .size span.property-name,.statblock.pathfinder-2e-hazard-layout .xp span.property-name,.statblock.pathfinder-2e-hazard-layout .kingdom_xp span.property-name,.statblock.pathfinder-2e-hazard-layout .trait_01 span.property-name,.statblock.pathfinder-2e-hazard-layout .trait_02 span.property-name,.statblock.pathfinder-2e-hazard-layout .trait_03 span.property-name,.statblock.pathfinder-2e-hazard-layout .trait_04 span.property-name,.statblock.pathfinder-2e-hazard-layout .trait_05 span.property-name,.statblock.pathfinder-2e-hazard-layout .trait_06 span.property-name,.statblock.pathfinder-2e-hazard-layout .trait_07 span.property-name{display:none}.statblock.pathfinder-2e-influence-layout .traits{margin:0 .25em 0 0;display:inline;font-weight:900!important;font-style:normal!important}.statblock.pathfinder-2e-influence-layout .rare_01{background-color:var(--statblock-color-common)!important}.statblock.pathfinder-2e-influence-layout .rare_02{background-color:var(--statblock-color-uncommon)!important}.statblock.pathfinder-2e-influence-layout .rare_03{background-color:var(--statblock-color-rare)!important}.statblock.pathfinder-2e-influence-layout .rare_04{background-color:var(--statblock-color-unique)!important}.statblock.pathfinder-2e-influence-layout .alignment{background-color:var(--statblock-color-alignment)!important}.statblock.pathfinder-2e-influence-layout .size{background-color:var(--statblock-color-size)!important}.statblock.pathfinder-2e-influence-layout .xp,.statblock.pathfinder-2e-influence-layout .kingdom_xp,.statblock.pathfinder-2e-influence-layout .trait_01,.statblock.pathfinder-2e-influence-layout .trait_02,.statblock.pathfinder-2e-influence-layout .trait_03,.statblock.pathfinder-2e-influence-layout .trait_04,.statblock.pathfinder-2e-influence-layout .trait_05,.statblock.pathfinder-2e-influence-layout .trait_06,.statblock.pathfinder-2e-influence-layout .trait_07{background-color:var(--statblock-color-trait)!important}.statblock.pathfinder-2e-influence-layout .rare_01,.statblock.pathfinder-2e-influence-layout .rare_02,.statblock.pathfinder-2e-influence-layout .rare_03,.statblock.pathfinder-2e-influence-layout .rare_04,.statblock.pathfinder-2e-influence-layout .alignment,.statblock.pathfinder-2e-influence-layout .size,.statblock.pathfinder-2e-influence-layout .xp,.statblock.pathfinder-2e-influence-layout .kingdom_xp,.statblock.pathfinder-2e-influence-layout .trait_01,.statblock.pathfinder-2e-influence-layout .trait_02,.statblock.pathfinder-2e-influence-layout .trait_03,.statblock.pathfinder-2e-influence-layout .trait_04,.statblock.pathfinder-2e-influence-layout .trait_05,.statblock.pathfinder-2e-influence-layout .trait_06,.statblock.pathfinder-2e-influence-layout .trait_07{color:#fff!important;font-size:12px;font-style:normal!important;font-weight:900!important;letter-spacing:.01em;min-width:4em;margin:0 var(--statblock-traits-gap) 0 0;padding:.4em 1.1em .2em;text-align:center;text-transform:uppercase}.statblock.pathfinder-2e-influence-layout .rare_01 span.property-name,.statblock.pathfinder-2e-influence-layout .rare_02 span.property-name,.statblock.pathfinder-2e-influence-layout .rare_03 span.property-name,.statblock.pathfinder-2e-influence-layout .rare_04 span.property-name,.statblock.pathfinder-2e-influence-layout .alignment span.property-name,.statblock.pathfinder-2e-influence-layout .size span.property-name,.statblock.pathfinder-2e-influence-layout .xp span.property-name,.statblock.pathfinder-2e-influence-layout .kingdom_xp span.property-name,.statblock.pathfinder-2e-influence-layout .trait_01 span.property-name,.statblock.pathfinder-2e-influence-layout .trait_02 span.property-name,.statblock.pathfinder-2e-influence-layout .trait_03 span.property-name,.statblock.pathfinder-2e-influence-layout .trait_04 span.property-name,.statblock.pathfinder-2e-influence-layout .trait_05 span.property-name,.statblock.pathfinder-2e-influence-layout .trait_06 span.property-name,.statblock.pathfinder-2e-influence-layout .trait_07 span.property-name{display:none}.statblock.pathfinder-2e-misc-layout .traits{margin:0 .25em 0 0;display:inline;font-weight:900!important;font-style:normal!important}.statblock.pathfinder-2e-misc-layout .rare_01{background-color:var(--statblock-color-common)!important}.statblock.pathfinder-2e-misc-layout .rare_02{background-color:var(--statblock-color-uncommon)!important}.statblock.pathfinder-2e-misc-layout .rare_03{background-color:var(--statblock-color-rare)!important}.statblock.pathfinder-2e-misc-layout .rare_04{background-color:var(--statblock-color-unique)!important}.statblock.pathfinder-2e-misc-layout .alignment{background-color:var(--statblock-color-alignment)!important}.statblock.pathfinder-2e-misc-layout .size{background-color:var(--statblock-color-size)!important}.statblock.pathfinder-2e-misc-layout .xp,.statblock.pathfinder-2e-misc-layout .kingdom_xp,.statblock.pathfinder-2e-misc-layout .trait_01,.statblock.pathfinder-2e-misc-layout .trait_02,.statblock.pathfinder-2e-misc-layout .trait_03,.statblock.pathfinder-2e-misc-layout .trait_04,.statblock.pathfinder-2e-misc-layout .trait_05,.statblock.pathfinder-2e-misc-layout .trait_06,.statblock.pathfinder-2e-misc-layout .trait_07{background-color:var(--statblock-color-trait)!important}.statblock.pathfinder-2e-misc-layout .rare_01,.statblock.pathfinder-2e-misc-layout .rare_02,.statblock.pathfinder-2e-misc-layout .rare_03,.statblock.pathfinder-2e-misc-layout .rare_04,.statblock.pathfinder-2e-misc-layout .alignment,.statblock.pathfinder-2e-misc-layout .size,.statblock.pathfinder-2e-misc-layout .xp,.statblock.pathfinder-2e-misc-layout .kingdom_xp,.statblock.pathfinder-2e-misc-layout .trait_01,.statblock.pathfinder-2e-misc-layout .trait_02,.statblock.pathfinder-2e-misc-layout .trait_03,.statblock.pathfinder-2e-misc-layout .trait_04,.statblock.pathfinder-2e-misc-layout .trait_05,.statblock.pathfinder-2e-misc-layout .trait_06,.statblock.pathfinder-2e-misc-layout .trait_07{color:#fff!important;font-size:12px;font-style:normal!important;font-weight:900!important;letter-spacing:.01em;min-width:4em;margin:0 var(--statblock-traits-gap) 0 0;padding:.4em 1.1em .2em;text-align:center;text-transform:uppercase}.statblock.pathfinder-2e-misc-layout .rare_01 span.property-name,.statblock.pathfinder-2e-misc-layout .rare_02 span.property-name,.statblock.pathfinder-2e-misc-layout .rare_03 span.property-name,.statblock.pathfinder-2e-misc-layout .rare_04 span.property-name,.statblock.pathfinder-2e-misc-layout .alignment span.property-name,.statblock.pathfinder-2e-misc-layout .size span.property-name,.statblock.pathfinder-2e-misc-layout .xp span.property-name,.statblock.pathfinder-2e-misc-layout .kingdom_xp span.property-name,.statblock.pathfinder-2e-misc-layout .trait_01 span.property-name,.statblock.pathfinder-2e-misc-layout .trait_02 span.property-name,.statblock.pathfinder-2e-misc-layout .trait_03 span.property-name,.statblock.pathfinder-2e-misc-layout .trait_04 span.property-name,.statblock.pathfinder-2e-misc-layout .trait_05 span.property-name,.statblock.pathfinder-2e-misc-layout .trait_06 span.property-name,.statblock.pathfinder-2e-misc-layout .trait_07 span.property-name{display:none}.statblock.pathfinder-2e-quest-layout .traits{margin:0 .25em 0 0;display:inline;font-weight:900!important;font-style:normal!important}.statblock.pathfinder-2e-quest-layout .rare_01{background-color:var(--statblock-color-common)!important}.statblock.pathfinder-2e-quest-layout .rare_02{background-color:var(--statblock-color-uncommon)!important}.statblock.pathfinder-2e-quest-layout .rare_03{background-color:var(--statblock-color-rare)!important}.statblock.pathfinder-2e-quest-layout .rare_04{background-color:var(--statblock-color-unique)!important}.statblock.pathfinder-2e-quest-layout .alignment{background-color:var(--statblock-color-alignment)!important}.statblock.pathfinder-2e-quest-layout .size{background-color:var(--statblock-color-size)!important}.statblock.pathfinder-2e-quest-layout .xp,.statblock.pathfinder-2e-quest-layout .kingdom_xp,.statblock.pathfinder-2e-quest-layout .trait_01,.statblock.pathfinder-2e-quest-layout .trait_02,.statblock.pathfinder-2e-quest-layout .trait_03,.statblock.pathfinder-2e-quest-layout .trait_04,.statblock.pathfinder-2e-quest-layout .trait_05,.statblock.pathfinder-2e-quest-layout .trait_06,.statblock.pathfinder-2e-quest-layout .trait_07{background-color:var(--statblock-color-trait)!important}.statblock.pathfinder-2e-quest-layout .rare_01,.statblock.pathfinder-2e-quest-layout .rare_02,.statblock.pathfinder-2e-quest-layout .rare_03,.statblock.pathfinder-2e-quest-layout .rare_04,.statblock.pathfinder-2e-quest-layout .alignment,.statblock.pathfinder-2e-quest-layout .size,.statblock.pathfinder-2e-quest-layout .xp,.statblock.pathfinder-2e-quest-layout .kingdom_xp,.statblock.pathfinder-2e-quest-layout .trait_01,.statblock.pathfinder-2e-quest-layout .trait_02,.statblock.pathfinder-2e-quest-layout .trait_03,.statblock.pathfinder-2e-quest-layout .trait_04,.statblock.pathfinder-2e-quest-layout .trait_05,.statblock.pathfinder-2e-quest-layout .trait_06,.statblock.pathfinder-2e-quest-layout .trait_07{color:#fff!important;font-size:12px;font-style:normal!important;font-weight:900!important;letter-spacing:.01em;min-width:4em;margin:0 var(--statblock-traits-gap) 0 0;padding:.4em 1.1em .2em;text-align:center;text-transform:uppercase}.statblock.pathfinder-2e-quest-layout .rare_01 span.property-name,.statblock.pathfinder-2e-quest-layout .rare_02 span.property-name,.statblock.pathfinder-2e-quest-layout .rare_03 span.property-name,.statblock.pathfinder-2e-quest-layout .rare_04 span.property-name,.statblock.pathfinder-2e-quest-layout .alignment span.property-name,.statblock.pathfinder-2e-quest-layout .size span.property-name,.statblock.pathfinder-2e-quest-layout .xp span.property-name,.statblock.pathfinder-2e-quest-layout .kingdom_xp span.property-name,.statblock.pathfinder-2e-quest-layout .trait_01 span.property-name,.statblock.pathfinder-2e-quest-layout .trait_02 span.property-name,.statblock.pathfinder-2e-quest-layout .trait_03 span.property-name,.statblock.pathfinder-2e-quest-layout .trait_04 span.property-name,.statblock.pathfinder-2e-quest-layout .trait_05 span.property-name,.statblock.pathfinder-2e-quest-layout .trait_06 span.property-name,.statblock.pathfinder-2e-quest-layout .trait_07 span.property-name{display:none}.statblock.pathfinder-2e-settlement-layout .traits{margin:0 .25em 0 0;display:inline;font-weight:900!important;font-style:normal!important}.statblock.pathfinder-2e-settlement-layout .rare_01{background-color:var(--statblock-color-common)!important}.statblock.pathfinder-2e-settlement-layout .rare_02{background-color:var(--statblock-color-uncommon)!important}.statblock.pathfinder-2e-settlement-layout .rare_03{background-color:var(--statblock-color-rare)!important}.statblock.pathfinder-2e-settlement-layout .rare_04{background-color:var(--statblock-color-unique)!important}.statblock.pathfinder-2e-settlement-layout .alignment{background-color:var(--statblock-color-alignment)!important}.statblock.pathfinder-2e-settlement-layout .size{background-color:var(--statblock-color-size)!important}.statblock.pathfinder-2e-settlement-layout .xp,.statblock.pathfinder-2e-settlement-layout .kingdom_xp,.statblock.pathfinder-2e-settlement-layout .trait_01,.statblock.pathfinder-2e-settlement-layout .trait_02,.statblock.pathfinder-2e-settlement-layout .trait_03,.statblock.pathfinder-2e-settlement-layout .trait_04,.statblock.pathfinder-2e-settlement-layout .trait_05,.statblock.pathfinder-2e-settlement-layout .trait_06,.statblock.pathfinder-2e-settlement-layout .trait_07{background-color:var(--statblock-color-trait)!important}.statblock.pathfinder-2e-settlement-layout .rare_01,.statblock.pathfinder-2e-settlement-layout .rare_02,.statblock.pathfinder-2e-settlement-layout .rare_03,.statblock.pathfinder-2e-settlement-layout .rare_04,.statblock.pathfinder-2e-settlement-layout .alignment,.statblock.pathfinder-2e-settlement-layout .size,.statblock.pathfinder-2e-settlement-layout .xp,.statblock.pathfinder-2e-settlement-layout .kingdom_xp,.statblock.pathfinder-2e-settlement-layout .trait_01,.statblock.pathfinder-2e-settlement-layout .trait_02,.statblock.pathfinder-2e-settlement-layout .trait_03,.statblock.pathfinder-2e-settlement-layout .trait_04,.statblock.pathfinder-2e-settlement-layout .trait_05,.statblock.pathfinder-2e-settlement-layout .trait_06,.statblock.pathfinder-2e-settlement-layout .trait_07{color:#fff!important;font-size:12px;font-style:normal!important;font-weight:900!important;letter-spacing:.01em;min-width:4em;margin:0 var(--statblock-traits-gap) 0 0;padding:.4em 1.1em .2em;text-align:center;text-transform:uppercase}.statblock.pathfinder-2e-settlement-layout .rare_01 span.property-name,.statblock.pathfinder-2e-settlement-layout .rare_02 span.property-name,.statblock.pathfinder-2e-settlement-layout .rare_03 span.property-name,.statblock.pathfinder-2e-settlement-layout .rare_04 span.property-name,.statblock.pathfinder-2e-settlement-layout .alignment span.property-name,.statblock.pathfinder-2e-settlement-layout .size span.property-name,.statblock.pathfinder-2e-settlement-layout .xp span.property-name,.statblock.pathfinder-2e-settlement-layout .kingdom_xp span.property-name,.statblock.pathfinder-2e-settlement-layout .trait_01 span.property-name,.statblock.pathfinder-2e-settlement-layout .trait_02 span.property-name,.statblock.pathfinder-2e-settlement-layout .trait_03 span.property-name,.statblock.pathfinder-2e-settlement-layout .trait_04 span.property-name,.statblock.pathfinder-2e-settlement-layout .trait_05 span.property-name,.statblock.pathfinder-2e-settlement-layout .trait_06 span.property-name,.statblock.pathfinder-2e-settlement-layout .trait_07 span.property-name{display:none}.statblock.basic-pathfinder-2e-layout .dice-roller-result,.statblock.basic-pathfinder-2e-layout .roller-result,.statblock.pathfinder-2e-action-layout .dice-roller-result,.statblock.pathfinder-2e-action-layout .roller-result,.statblock.pathfinder-2e-hazard-layout .dice-roller-result,.statblock.pathfinder-2e-hazard-layout .roller-result,.statblock.pathfinder-2e-influence-layout .dice-roller-result,.statblock.pathfinder-2e-influence-layout .roller-result,.statblock.pathfinder-2e-misc-layout .dice-roller-result,.statblock.pathfinder-2e-misc-layout .roller-result,.statblock.pathfinder-2e-quest-layout .dice-roller-result,.statblock.pathfinder-2e-quest-layout .roller-result,.statblock.pathfinder-2e-settlement-layout .dice-roller-result,.statblock.pathfinder-2e-settlement-layout .roller-result{font-weight:var(--statblock-font-weight)}@media screen and (max-width: 400px){.statblock.basic-pathfinder-2e-layout .statblock-content>:global(.column){width:75vw}}.statblock.basic-pathfinder-2e-layout .spell-line .spells{font-style:var(--statblock-spells-font-style)}.statblock.basic-pathfinder-2e-layout .statblock-table-header{font-weight:var(--statblock-table-header-font-weight)}.statblock.basic-pathfinder-2e-layout .table{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.statblock.basic-pathfinder-2e-layout .table-item{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}@media screen and (max-width: 400px){.statblock.pathfinder-2e-action-layout .statblock-content>:global(.column){width:75vw}}.statblock.pathfinder-2e-action-layout .spell-line .spells{font-style:var(--statblock-spells-font-style)}.statblock.pathfinder-2e-action-layout .statblock-table-header{font-weight:var(--statblock-table-header-font-weight)}.statblock.pathfinder-2e-action-layout .table{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.statblock.pathfinder-2e-action-layout .table-item{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}@media screen and (max-width: 400px){.statblock.pathfinder-2e-hazard-layout .statblock-content>:global(.column){width:75vw}}.statblock.pathfinder-2e-hazard-layout .spell-line .spells{font-style:var(--statblock-spells-font-style)}.statblock.pathfinder-2e-hazard-layout .statblock-table-header{font-weight:var(--statblock-table-header-font-weight)}.statblock.pathfinder-2e-hazard-layout .table{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.statblock.pathfinder-2e-hazard-layout .table-item{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}@media screen and (max-width: 400px){.statblock.pathfinder-2e-influence-layout .statblock-content>:global(.column){width:75vw}}.statblock.pathfinder-2e-influence-layout .spell-line .spells{font-style:var(--statblock-spells-font-style)}.statblock.pathfinder-2e-influence-layout .statblock-table-header{font-weight:var(--statblock-table-header-font-weight)}.statblock.pathfinder-2e-influence-layout .table{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.statblock.pathfinder-2e-influence-layout .table-item{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}@media screen and (max-width: 400px){.statblock.pathfinder-2e-misc-layout .statblock-content>:global(.column){width:75vw}}.statblock.pathfinder-2e-misc-layout .spell-line .spells{font-style:var(--statblock-spells-font-style)}.statblock.pathfinder-2e-misc-layout .statblock-table-header{font-weight:var(--statblock-table-header-font-weight)}.statblock.pathfinder-2e-misc-layout .table{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.statblock.pathfinder-2e-misc-layout .table-item{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}@media screen and (max-width: 400px){.statblock.pathfinder-2e-quest-layout .statblock-content>:global(.column){width:75vw}}.statblock.pathfinder-2e-quest-layout .spell-line .spells{font-style:var(--statblock-spells-font-style)}.statblock.pathfinder-2e-quest-layout .statblock-table-header{font-weight:var(--statblock-table-header-font-weight)}.statblock.pathfinder-2e-quest-layout .table{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.statblock.pathfinder-2e-quest-layout .table-item{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}@media screen and (max-width: 400px){.statblock.pathfinder-2e-settlement-layout .statblock-content>:global(.column){width:75vw}}.statblock.pathfinder-2e-settlement-layout .spell-line .spells{font-style:var(--statblock-spells-font-style)}.statblock.pathfinder-2e-settlement-layout .statblock-table-header{font-weight:var(--statblock-table-header-font-weight)}.statblock.pathfinder-2e-settlement-layout .table{display:flex;justify-content:space-evenly;align-items:center;flex-wrap:wrap}.statblock.pathfinder-2e-settlement-layout .table-item{display:flex;justify-content:center;align-items:center;flex-flow:column nowrap}.statblock.basic-13th-age-monster-layout{--statblock-primary-color: #000;--statblock-rule-color: #000;--statblock-background-color:#fefaf0;--statblock-image-border-color: var(--statblock-primary-color);--statblock-box-shadow-blur: 1em;--statblock-font-color: var(--statblock-primary-color);--statblock-content-font: serif;--statblock-heading-font:masonregular, serif;--statblock-heading-font-color: var(--statblock-font-color);--statblock-heading-font-weight: var(--statblock-font-weight);--statblock-heading-color: #2C2E35;--statblock-property-font-color: var(--statblock-font-color);--statblock-property-name-font-color: var(--statblock-font-color);--statblock-section-heading-border-color: var(--statblock-primary-color);--statblock-section-heading-font-color: var(--statblock-font-color);text-align:justify}.statblock.basic-13th-age-monster-layout .bar{display:none}.statblock.basic-13th-age-monster-layout h1,.statblock.basic-13th-age-monster-layout h2{text-align:left;font-family:var(--statblock-heading-font);font-weight:400;color:var(--statblock-heading-font-color);font-size:2em;margin:0}.statblock.basic-13th-age-monster-layout .rule-container{margin:0}.statblock.basic-13th-age-monster-layout .rule-container .tapered-rule{background:none;margin:0;height:.75em}.statblock.basic-13th-age-monster-layout *:has(+.rule-container){margin-bottom:0!important}.statblock.basic-13th-age-monster-layout *:has(+.rule-container) *{margin-bottom:0!important}.statblock.basic-13th-age-monster-layout .property-text{text-align:left}.statblock.basic-13th-age-monster-layout .statblock-item-container:has(.actions){margin-bottom:.5em}.statblock.basic-13th-age-monster-layout .heading-container{display:flex;align-items:center;justify-content:flex-start}.statblock.basic-13th-age-monster-layout .flavor-text{font-style:italic}.statblock.basic-13th-age-monster-layout p.monster-strength{font-style:italic;margin:0}.statblock.basic-13th-age-monster-layout p.monster-strength:first-letter{text-transform:capitalize}.statblock.basic-13th-age-monster-layout p.monster-strength .type{margin-left:1ch;font-style:normal;font-variant:var(--statblock-section-heading-font-variant);text-transform:capitalize}.statblock.basic-13th-age-monster-layout .initiative .statblock-markdown p:before{content:"+"}.statblock.basic-13th-age-monster-layout .initiative .property-name,.statblock.basic-13th-age-monster-layout .vulnerability .property-name{font-weight:400}.statblock.basic-13th-age-monster-layout .statblock-item-container .property{padding-left:2ch}.statblock.basic-13th-age-monster-layout .statblock-item-container .property .property-name{margin-left:-2ch}.statblock.basic-13th-age-monster-layout .statblock-item-container .property .statblock-nested-traits{margin-left:0}.statblock.basic-13th-age-monster-layout .statblock-item-container .actions .property-name,.statblock.basic-13th-age-monster-layout .statblock-item-container .triggered_actions .property-name{font-style:initial;font-weight:bolder}.statblock.basic-13th-age-monster-layout .statblock-item-container .actions .property-name:after,.statblock.basic-13th-age-monster-layout .statblock-item-container .triggered_actions .property-name:after{margin-left:1ch;content:"\2014"}.statblock.basic-13th-age-monster-layout .statblock-item-container .traits .property-name,.statblock.basic-13th-age-monster-layout .statblock-item-container .nastier_traits .property-name{font-style:italic;font-weight:400}.statblock.basic-13th-age-monster-layout .statblock-item-container .traits .property-name:after,.statblock.basic-13th-age-monster-layout .statblock-item-container .nastier_traits .property-name:after{content:":";margin:0}.statblock.basic-13th-age-monster-layout .statblock-item-container .statblock-nested-traits .property-name,.statblock.basic-13th-age-monster-layout .statblock-item-container .mook .property-name{font-style:italic;font-weight:400}.statblock.basic-13th-age-monster-layout .statblock-item-container .statblock-nested-traits .property-name:after,.statblock.basic-13th-age-monster-layout .statblock-item-container .mook .property-name:after{content:":";margin:0}.statblock.basic-13th-age-monster-layout .statblock-item-container .statblock-nested-traits .property-name,.statblock.basic-13th-age-monster-layout .statblock-item-container .mook .property-name{text-transform:capitalize}.statblock.basic-13th-age-monster-layout .section-header.nastier-specials,.statblock.basic-13th-age-monster-layout .section-header.triggered-abilities{text-decoration:underline;font-size:initial;letter-spacing:initial;border-bottom:none}.statblock.basic-13th-age-monster-layout .monster-description p{display:inline-block;margin:0}.statblock.basic-13th-age-monster-layout .monster-description p+p{text-indent:2em}.statblock.basic-13th-age-monster-layout .defense-block{display:grid;margin:0 15%;padding-left:.5em;background:linear-gradient(to right,#eae8d5,75%,var(--statblock-background-color));box-shadow:0 0 0 .1em var(--statblock-background-color)}.statblock.basic-13th-age-monster-layout .defense-block .ac-block,.statblock.basic-13th-age-monster-layout .defense-block .pd-block,.statblock.basic-13th-age-monster-layout .defense-block .md-block{grid-column:1}.statblock.basic-13th-age-monster-layout .defense-block .hp-block{grid-column:2;grid-row:2;columns:2}.statblock.basic-13th-age-monster-layout .defense-block .hp-block,.statblock.basic-13th-age-monster-layout .defense-block .ac-block{font-weight:bolder}.statblock.basic-13th-age-monster-layout .defense-block .defense-line{display:inline-flex}.statblock.basic-13th-age-monster-layout .defense-block .defense-line *{margin-left:.5em}.statblock[class*=bnb] .line.weapon{display:block;padding-top:1rem}.statblock[class*=bnb] .line.special{font-size:.9375rem;margin-top:.3125rem;margin-bottom:.3125rem;padding-top:.3125rem;padding-bottom:.3125rem}.statblock[class*=bnb] .line.type{font-style:italic}.statblock[class*=bnb].statblock-detached{position:absolute;top:-9999px;width:auto}.statblock[class*=bnb] .statblock-content{font-family:var(--statblock-content-font);font-size:var(--statblock-content-font-size);display:flex;margin-right:2px;margin-left:2px;padding:.5em;color:var(--statblock-font-color);border:var(--statblock-border-size) var(--statblock-border-color) solid;background-color:var(--statblock-background-color);box-shadow:var(--statblock-box-shadow-x-offset) var(--statblock-box-shadow-y-offset) var(--statblock-box-shadow-blur) var(--statblock-box-shadow-color);gap:1rem}.statblock[class*=bnb] .statblock-content>.column{width:var(--statblock-column-width)}@media screen and (max-width: 400px){.statblock[class*=bnb] .statblock-content>.column{width:75vw}}.statblock[class*=bnb] .statblock-item-container{margin-bottom:.25rem}.statblock[class*=bnb] .statblock-item-inline{display:flex;justify-content:space-between}.statblock[class*=bnb]{--statblock-bar-border-color: rgba(98, 97, 108, 1);--statblock-bar-border-size: .0625em;--statblock-bar-color: rgba(98, 97, 108, 1)}.statblock[class*=bnb] .bar{z-index:1;width:fit-content;height:.0625em;border:var(--statblock-bar-border-size) solid var(--statblock-bar-border-color);background:var(--statblock-bar-color)}.statblock[class*=bnb] .tapered-rule{width:auto;height:.1875em;margin:0;background:var(--statblock-bar-color);clip-path:unset}.statblock[class*=bnb] .statblock-item-container.image-container.smallies img{position:relative;top:-10px;left:-10px;overflow:visible;width:2rem;height:2rem;border:2px solid #fff;border-radius:50%;object-fit:cover;object-position:center}.statblock[class*=bnb] .statblock-item-container.image-container.Image IMG{width:calc(100% + 1em);max-width:unset;margin:-.5em;border:unset;border-radius:unset;object-fit:cover;object-position:center;image-rendering:auto}.statblock[class*=bnb] .flex-container{display:flex;align-items:center;justify-content:space-between}.statblock[class*=bnb] .heading{font-family:var(--statblock-heading-font);font-size:var(--statblock-heading-font-size);font-weight:300;font-style:italic;font-variant:var(--statblock-heading-font-variant);line-height:var(--statblock-heading-line-height);display:flex;align-items:center;justify-content:space-between;margin:0;letter-spacing:.0714rem;color:var(--statblock-heading-font-color)}.statblock[class*=bnb] .section-header{font-family:var(--statblock-section-heading-font-family);font-size:var(--statblock-section-heading-font-size);font-weight:var(--statblock-section-heading-font-weight);font-variant:var(--statblock-section-heading-font-variant);right:.625em;display:inline-block;overflow-x:visible;width:11.25em;margin:0 0 .3em;padding:.125em;letter-spacing:.0625em;color:var(--statblock-section-heading-font-color);border-left-width:1.875em;border-top-right-radius:.9375em .5em;border-bottom-right-radius:.9375em .5em;background-color:#e0e1dd4d;break-inside:avoid-column;break-after:avoid-column}.statblock[class*=bnb] .subheading{font-size:var(--statblock-subheading-font-size);font-weight:var(--statblock-subheading-font-weight);font-style:var(--statblock-subheading-font-style);margin:0}.statblock[class*=bnb] .property-name{font-family:var(--statblock-property-name-font-family)}.statblock[class*=bnb] .section-header{font-size:var(--statblock-section-heading-font-size);font-weight:var(--statblock-section-heading-font-weight);font-variant:var(--statblock-section-heading-font-variant);margin:0 0 .3em;letter-spacing:1px;color:var(--statblock-section-heading-font-color);border-bottom:var(--statblock-section-heading-border-size) solid var(--statblock-section-heading-border-color);break-inside:avoid-column;break-after:avoid-column}.statblock[class*=bnb] h3.section-header{font-family:Din-Rundschrift-Eng,BnBFont,sans-serif;font-size:var(--statblock-section-heading-font-size);font-weight:var(--statblock-section-heading-font-weight);font-variant:var(--statblock-section-heading-font-variant);right:.625em;display:inline-block;overflow-x:visible;width:11.25em;margin:0 0 .3em;padding:.125em;letter-spacing:.0625em;color:var(--statblock-section-heading-font-color);border-left-width:1.875em;border-top-right-radius:.9375em .5em;border-bottom-right-radius:.9375em .5em;background-color:#e0e1dd4d;break-inside:avoid-column;break-after:avoid-column}.statblock[class*=bnb] .statblock-content{padding-right:1rem;padding-left:1rem}.statblock[class*=bnb] .line.badassrank{box-sizing:border-box;width:4.6875rem;height:4.6875rem;content:"";background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAI8AAACqCAYAAACUAhwWAAAAy3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjabVBBEsMgCLzzij5BAYk+xzRmpj/o87sqaZNM12FF0BWg9n7t9OhgNtK0ZCtmAdCihSucHCbq4Bh08EDePRevcarVE4yQYBd/YH7/iMevwNwqvHQSyk9PrNdEUdfPNyH/SHpFDGdzoeJCwjMRXeCo1Epezi2sLVyRp1En23U0Yi5yP+uC6W0J/whzkygBLKKzAOkmJBVOGsy42FfFuYCBMTsYyvs3cPnF6dzGAfoAJuxflZ/Bo4QAAAF1aUNDUGtDR0NvbG9yU3BhY2VEaXNwbGF5UDMAAHicdZC9S8NQFMVPq1LQOogOHRwyiUPU0gp2cWgrFEUwVAWrU5p+CW18JClScRNXKfgfWMFZcLCIVHBxcBBEBxHdnDopuGh43pdU2iLex+X9OJxzuVzAG1AZK/YCKOmWkUzEpLXUuuR7g4eeU6pmsqiiLAr+/bvr89H13k+IWU27dhDZT1yXzi6Xdp4CU3/9XdWfyZoa/d/UQY0ZFuCRiZVtiwneJR4xaCniquC8y8eC0y6fO56VZJz4lljSCmqGuEkspzv0fAeXimWttYPY3p/VV5fFHOpRzGETJhiKUFGBBAXhf/zTjj+OLXJXYFAujwIsykRJEROyxPPQoWESMnEIQeqQuHPrfg+t+8ltbe8VmG1wzi/a2kIDOJ2hk9Xb2ngEGBoAbupMNVRH6qH25nLA+wkwmAKG7yizYebCIXd7fwzoe+H8YwzwHQJ2lfOvI87tGoWfgSv9BxcparxKWKXuAAAOXGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNC40LjAtRXhpdjIiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iCiAgICB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgeG1wTU06RG9jdW1lbnRJRD0iZ2ltcDpkb2NpZDpnaW1wOjAxMDQyNTFkLWNmOGQtNDI0YS04NTg5LTg0YTBlMGQzOWZmNiIKICAgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyZDc2Y2FkNi0yNmYzLTQ0MGItYjIzNS1mY2Q5YWIyZWNhNDUiCiAgIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpiNzE5YTA1Ny1lYjE0LTQ3NWItOGQzZi0wMDUyZGUwOTU4YjAiCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09Ik1hYyBPUyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2ODMwMDcxNzM1MjE0NDQiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zNCIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIGV4aWY6UGl4ZWxYRGltZW5zaW9uPSIxMTI1IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMTQzMiIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPSIyIgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI0NTgiCiAgIHRpZmY6WVJlc29sdXRpb249IjQ1OCIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjM6MDU6MDJUMDA6NTk6MzMtMDU6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIzOjA1OjAyVDAwOjU5OjMzLTA1OjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6YzQ2ZmIzODgtN2NlNS00ODJlLWJhM2EtMjYyNGUxMTJhZDg0IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKE1hYyBPUykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDUtMDJUMDA6NTk6MzMtMDU6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+GY2MvAAAAAZiS0dEANsAmAA5q2OUdwAAAAlwSFlzAABGbwAARm8Bom5tcgAAAAd0SU1FB+cFAgU7IdNs++wAACAASURBVHja7b33dxtHti28u6sD0AAIMIlJIhUs2QqW08xc35l133v3/uX33feNZ8Yez4xkKwdSgZlERscK3w/VVWiAIAmSIEXKqrW0KIIIja5TJ+6zjxHHscCn9WkdY1m/9RvAOQcAUJrIG2LZBz7fNM1PUvNb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);background-size:4.6875rem 4.6875rem;object-fit:scale-down}.statblock[class*=bnb] .line.badassrank .property-text{font-size:clamp(.75rem,.84375rem + 5%,1rem);position:relative;bottom:-2rem;display:block;width:1rem;height:1rem;margin-right:auto;margin-left:auto}.statblock[class*=bnb] .line.movementtype{box-sizing:border-box;width:6.25rem;height:5rem;content:"";background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMMAAADECAYAAAAiepUSAAAAzXpUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjabVBbEsMgCPznFD2CAiIexyRmpjfo8YtK25gpGTbIMssD2ut5wqMbogCnrFJEghkXLlgt0DCtDoyBBw7bybm45mFnJ9BSvcgLVbz+k49fgfmrFqWLkO5ObCtRvAHqTcgbUZ8ILThcqLgQ4SSiC9S5VpCi+brC1sJqOh06yMljEXGR+5uzXe9I1ocQG0UKhkQ8B6DuBFQtSAPRCvtX7a2GTHncztzG+3dw+uVhELxOC2/WxF8zi0izCQAAAXVpQ0NQa0NHQ29sb3JTcGFjZURpc3BsYXlQMwAAeJx1kL1Lw1AUxU+rUtA6iA4dHDKJQ9TSCnZxaCsURTBUBatTmn4JbXwkKVJxE1cp+B9YwVlwsIhUcHFwEEQHEd2cOim4aHjel1TaIt7H5f04nHO5XMAbUBkr9gIo6ZaRTMSktdS65HuDh55TqmayqKIsCv79u+vz0fXeT4hZTbt2ENlPXJfOLpd2ngJTf/1d1Z/Jmhr939RBjRkW4JGJlW2LCd4lHjFoKeKq4LzLx4LTLp87npVknPiWWNIKaoa4SSynO/R8B5eKZa21g9jen9VXl8Uc6lHMYRMmGIpQUYEEBeF//NOOP44tcldgUC6PAizKREkRE7LE89ChYRIycQhB6pC4c+t+D637yW1t7xWYbXDOL9raQgM4naGT1dvaeAQYGgBu6kw1VEfqofbmcsD7CTCYAobvKLNh5sIhd3t/DOh74fxjDPAdAnaV868jzu0ahZ+BK/0HFylqvEpYpe4AAA5aaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA0LjQuMC1FeGl2MiI+CiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICB4bWxuczpHSU1QPSJodHRwOi8vd3d3LmdpbXAub3JnL3htcC8iCiAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NDUyNzliMzgtNzFjNy00MGNmLWFmZjgtZTU1NGI0ZTFiZjlkIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjc1MjFmOWJmLTEyYWItNDY0Ny05MTgyLTZmOTE5ZmRhNzg4NiIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjVlYWUyMjI5LWU1ZGQtNDJjNS05YmJmLWY4YmY5Y2I3ZWVmMSIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTWFjIE9TIgogICBHSU1QOlRpbWVTdGFtcD0iMTY4MzAwNzEyNzUxMTczNiIKICAgR0lNUDpWZXJzaW9uPSIyLjEwLjM0IgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgZXhpZjpQaXhlbFhEaW1lbnNpb249IjE5NSIKICAgZXhpZjpQaXhlbFlEaW1lbnNpb249IjE5NiIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPSIyIgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI0NTgiCiAgIHRpZmY6WVJlc29sdXRpb249IjQ1OCIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiCiAgIHhtcDpNZXRhZGF0YURhdGU9IjIwMjM6MDU6MDJUMDA6NTg6NDctMDU6MDAiCiAgIHhtcDpNb2RpZnlEYXRlPSIyMDIzOjA1OjAyVDAwOjU4OjQ3LTA1OjAwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6NDhhMzMwNTgtYzk4My00Yzc2LTlhZWEtMjY2YjAyNzcwMDY2IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKE1hYyBPUykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjMtMDUtMDJUMDA6NTg6NDctMDU6MDAiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+hATtDgAAAAZiS0dEANsAmAA5q2OUdwAAAAlwSFlzAABGbwAARm8Bom5tcgAAAAd0SU1FB+cFAgU6Ly3P56oAACAASURBVHja7b3ZdxzHne/5iYjMrKrEXgBIcAFXkaJla7EtWYttye3uttvWbS9t33O6faZnzj3zOk/zMOfM+zzNw/wPM/fO0vf0dbdvX8nyvsmyLUuURIkUJZKgRIgkSAKFpQpZVZkZEfMQWYkCCBAABZIAlb9z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);background-repeat:no-repeat;background-size:5rem 5rem;object-fit:scale-down}.statblock[class*=bnb] .line.movementtype .property-text{font-size:clamp(.75rem,.84375rem + 5%,1rem);font-weight:400;position:relative;bottom:-2.3rem;left:.125rem;margin-right:auto;margin-left:auto}.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.move-shat{display:flex;align-content:center;flex-wrap:wrap-reverse;justify-content:center}.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams{display:grid;align-content:center;align-items:center;justify-content:stretch;padding:.5rem;background-color:#e0e1dde6;grid-row:2;grid-template-columns:repeat(2,1fr)}.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .health,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .regen,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .shield,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .charge,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .armor,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .repair,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .traits{line-height:1;position:relative;display:inline;box-sizing:border-box;width:1rem;padding-left:.1875rem}.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .health .property-name,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .regen .property-name,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .shield .property-name,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .charge .property-name,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .armor .property-name,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .repair .property-name,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .traits .property-name{font-family:var(--statblock-property-name-font-family);font-weight:700}.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .health p,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .regen p,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .shield p,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .charge p,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .armor p,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .repair p,.statblock.basic-bnb-familiar-layout .statblock-item-container.inline-container.statblock-item-inline.familiar-tams .traits p{font-family:var(--statblock-content-font)}.statblock.basic-bnb-bestiary-layout .health,.statblock.basic-bnb-bestiary-layout .shield,.statblock.basic-bnb-bestiary-layout .armor,.statblock.basic-bnb-bestiary-layout .traits{line-height:1;position:relative;display:inline-block;box-sizing:border-box;width:10.3125rem;padding-left:.1875rem;border-width:1rem;border-color:#e0e1dde6;background-color:#e0e1dde6}.statblock.basic-bnb-bestiary-layout .health.property-name,.statblock.basic-bnb-bestiary-layout .shield.property-name,.statblock.basic-bnb-bestiary-layout .armor.property-name,.statblock.basic-bnb-bestiary-layout .traits.property-name{font-family:var(--statblock-property-name-font-family);font-weight:700}.statblock.basic-bnb-bestiary-layout .health p,.statblock.basic-bnb-bestiary-layout .shield p,.statblock.basic-bnb-bestiary-layout .armor p,.statblock.basic-bnb-bestiary-layout .traits p{font-family:var(--statblock-content-font)}.statblock[class*=bnb] .statblock-item-container.inline-container.statblock-item-inline.bomshat{display:flex;flex-direction:row;justify-content:space-between}.statblock[class*=bnb] .statblock-item-container.inline-container.statblock-item-inline.shat{position:relative;right:.625rem;display:inline-block;box-sizing:border-box;width:11em;padding-left:.188em;border-radius:.625em;background-color:#e0e1dd}.statblock[class*=bnb] .property.Actions .property-name,.statblock[class*=bnb] .property .Mayhem .property-name,.statblock[class*=bnb] .property .Loot .property-name{font-style:italic}.statblock.basic-bnb-bestiary-layout .actions{display:inline-block;word-break:break-word}.statblock[class*=bnb] .property-text{font-family:var(--statblock-content-font)}.statblock[class*=bnb] a{text-decoration:none;color:#b84c82}.statblock[class*=bnb] em:not(strong),.statblock[class*=bnb] em a{font-family:Fira-Sans-Book-Italic,BnB-Font,sans-serif;font-style:italic;color:#535468}.statblock[class*=bnb] strong:not(.name),.statblock[class*=bnb] strong a{font-family:Din-Rundschrift-Eng,BnB-Font,sans-serif;font-weight:700;color:#8a3961}.statblock[class*=bnb] strong a>em a{color:#ad5c3c}@media screen and (max-width: 400px){.statblock[class*=bnb] .statblock-content>:global(.column){width:75vw}}.statblock[class*=bnb] :is(.dnd,.wotc,.wotc-beyond):not(.illusion,.basic-bnb-bestiary-layout):not(.h-line):not(.hcl):not(.sphd-und-1) :is(.markdown-preview-view,.markdown-source-view):not(.h-line) .statblock[class*=bnb] :is(h1,.HyperMD-header-1):after{width:unset}.statblock[class*=bnb] :is(h1,.HyperMD-header-1):not(.basic-bnb-bestiary-layout):after{width:unset}.statblock[class*=bnb] :is(.dnd,.wotc,.wotc-beyond):not(.illusion,.basic-bnb-bestiary-layout):not(.h-line):not(.hcl):not(.sphd-und-3) :is(.markdown-preview-view,.markdown-source-view):not(.h-line) :is(h3,.HyperMD-header-3):after{width:unset;height:unset;background:unset}.statblock[class*=bnb] :is(h3,.HyperMD-header-3):after{width:unset}.is-live-preview .statblock[class*=bnb] .cm-header:before,.statblock[class*=bnb] h1:before,.statblock[class*=bnb] h2:before,.statblock[class*=bnb] h3:before,.statblock[class*=bnb] h4:before,.statblock[class*=bnb] h5:before,.statblock[class*=bnb] h6:before,.markdown-rendered .is-live-preview .statblock[class*=bnb] .cm-header:before,.markdown-rendered .statblock[class*=bnb] h1:before,.markdown-rendered .statblock[class*=bnb] h2:before,.markdown-rendered .statblock[class*=bnb] h3:before,.markdown-rendered .statblock[class*=bnb] h4:before,.markdown-rendered .statblock[class*=bnb] h5:before,.markdown-rendered .statblock[class*=bnb] h6:before,.workspace .is-live-preview .statblock[class*=bnb] .cm-header:before,.workspace .statblock[class*=bnb] h1:before,.workspace .statblock[class*=bnb] h2:before,.workspace .statblock[class*=bnb] h3:before,.workspace .statblock[class*=bnb] h4:before,.workspace .statblock[class*=bnb] h5:before,.workspace .statblock[class*=bnb] h6:before,.print .is-live-preview .statblock[class*=bnb] .cm-header:before,.print .statblock[class*=bnb] h1:before,.print .statblock[class*=bnb] h2:before,.print .statblock[class*=bnb] h3:before,.print .statblock[class*=bnb] h4:before,.print .statblock[class*=bnb] h5:before,.print .statblock[class*=bnb] h6:before{display:none}@font-face{font-family:BnB-Font;font-weight:400;font-style:normal;font-display:block;src:url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAMAIAAAwBAR1NVQjsvRIoAAADMAAAGuk9TLzIPEg0lAAAHiAAAAGBjbWFwAi9BSAAAB+gAAAF0Z2FzcAAAABAAAAlcAAAACGdseWYi8bN9AAAJZAAAfcBoZWFkI9XeuQAAhyQAAAA2aGhlYQhXBNMAAIdcAAAAJGhtdHj3Jw5+AACHgAAAAaxsb2Nh5kQGdgAAiSwAAADYbWF4cADGBHkAAIoEAAAAIG5hbWWQJI+BAACKJAAABAhwb3N0AAMAAAAAjiwAAAAgAAEAAAAKAB4ALAABbGF0bgAIAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAoAAAABAD4AHAB6AKIAwAH6Ai4CUgKSAqQCwgLqAwIDIAM6A04DYANwA7QEHgRABGwE1gTsBQIFKAVUBXgGRgZcAAEAHAAHAAgACQALAAwADQAOAA8AEgATABQAFQAWABcAGAAZABoAHAAdAB8AIAAiACMAJgAnACgAKQAqAAEABABQABEABAAMABgAJwAjACIAHAAoACgABAASACUAKQAgACUAJAACAAYAFABaAAYAGAAnACcAHAAiAEIABAARABAADgAHABAAOgCQANIBBgEQASQAUQAUACoAJwAcAAQADAAYACQAHgAlACsAHAAnAAQAEgAlACkAIAAlACQATAAqACoAIgApAAQAJQAdAAQAKQAfABwABAAXABgAKgAiACkABAASACUAKQAgACUAJAAEAA0AKQAEABMAGAAbACAAGAApABwAKAAEAA8AJQAkABwALgBNACAAKgAiACkABAAlAB0ABAApAB8AHAAEAA8AGAAnABoAKgAoAAQAEgAlACkAIAAlACQABAAJACUAJQAiABwAJwBOABkAKgAiACkABAAlAB0ABAApAB8AHAAEAAoAJwAYAB4AJQAkAAQAEgAlACkAIAAlACQAaAAEACcALgAlAGcACQAlACcAJwAlACgAIAAlACQAZgAKACUAJwAnACUAKAAfACUAGgAhAAIABgAaAGoACQAtACYAIgAlACgAIAArABwAaQAMAC0AJgAiACUAKAAgACsACQAnAC4AJQABAAQATwAPABgAJAAbACgAJQAjABwABAASACUAKQAgACUAJAACAAYAHABiAAoAJAAaABwAJAAbACAAGAAnAC4AYwARACQAGgAcACQAGwAgABgAJwAYABsAIAAYACkAIAAlACQAAQAEAEMABgAiABwAGAArABwAAQAEAFIADAAlAC0ALQAgAAQAEgAlACkAIAAlACQAAgAGABQASwAGACIAGAAoACMAGABBAAkAGAAkAB4AJQAZACIAIAAkAAEABABkAAkAGAAbACAAGAApACAAJQAkAAIABgASAEQABQAsACAAHQApAGUABQAfACUAGgAhAAEABABTAAoAIAAkABgAEgAlACkAIAAlACQAAQAEAD8ABwAkABgAJwAjABwAGwABAAQAQAAGABgAIgAlACcAGAABAAQAVAAFACcAIwAlACcAAwAIACAAMAA2AAsAKgAnACcAJQAsAAQAIwAlACIAHABeAAcAKgAiACIAHAApACgASQAJACUAIgApAAQAGQAlACMAGQADAAgAJgBEAEYADgAlACcAJwAlACgAIAArABwABAAZACUAIwAZADUADgAiACAAIwAZAAQAIwAlACoAJAApABgAIAAkAFsAEgAiABgAJgApACcAGAAmAAQALAAYACkAHAAnAAQAHgAqACQAAQAEAEcADgAtACYAIgAlACgAIAArABwABAAZACUAIwAZAAIABgAYADIACAAiAC4ABAAsACAAJAAeAEoACQAgACcAHAAEABkAJQAjABkABQAMACAAPABQAFwAMAAJACUAKwAcACcABAAqAB0AJQBcAA0AHAAYACsALgAEABkAKgAiACIAHAApACgAVgAJABwAGAAnACkAGQAcABgAKQBXAAUAHAAYACcAKQBVAAYAHAAYACIAKQAfAAEABABFAAgAGgAcAAQAGQAlACMAGQABAAQAMQAIABwAGAAmAB0AJwAlAB4AAgAGAA4ANwADACYABgBZAAsAGAAeACAAGgAEACgALAAgACcAIgACAAYAFAA+AAYAIAAoACkAJQAiADoACwAYACQALwAcACcAHQAYACoAKAApAAIABgASAF0ABQAgAB0AIgAcAD0ACAAcACsAJQAiACsAHAAnAAgAEgAuAEgAXAByAH4AnACqADQADQAsACAAIwAjACAAJAAeAAQAKQAYACAAIgA4AAwAKQAqACQABAAeACcAHAAkABgAGwAcADsACQApABwALgAnAAQAGAAqAB4AYAAKACEAKgAiACIABAAZACoAJwAkAGEABQAhACoAIgAiAF8ADgAfACUAKQAe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) format("truetype")}[class^=BnB-Font],[class*=" BnB-Font"]{font-family:BnB-Font,serif!important;font-weight:400;font-style:normal;font-variant:normal;line-height:1;letter-spacing:0;text-transform:none;-webkit-font-feature-settings:"liga";-moz-font-feature-settings:"liga=1";-moz-font-feature-settings:"liga";-ms-font-feature-settings:"liga" 1;font-feature-settings:"liga";-webkit-font-variant-ligatures:discretionary-ligatures;font-variant-ligatures:discretionary-ligatures;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.BnBFonthover-ufo:before{content:"\e1940"}.BnBFontleapfrog:before{content:"\e1941"}.BnBFontfly-wing:before{content:"\e1942"}.BnBFontteleport:before{content:"\e1943"}.BnBFontswimming-tail:before{content:"\e1944"}.BnBFontclimb-mountain:before{content:"\e1945"}.BnBFontburrow-mole:before{content:"\e1946"}.BnBFontmp5-SMG:before{content:"\e1947"}.BnBFontstun-grenade:before{content:"\e1948"}.BnBFontsawed-off-shotgun:before{content:"\e1949"}.BnBFontpanzerfaust-RPG:before{content:"\e194a"}.BnBFontsteyr-aug-AR:before{content:"\e194b"}.BnBFontuzi-SMG:before{content:"\e194c"}.BnBFontrevolver:before{content:"\e194d"}.BnBFontpistol:before{content:"\e194e"}.BnBFontUnarmed:before{content:"\e194f"}.BnBFontValora:before{content:"\e1950"}.BnBFontPangoblin:before{content:"\e1951"}.BnBFontBONK:before{content:"\e1952"}.BnBFontKleave:before{content:"\e1953"}.BnBFontSwift:before{content:"\e1954"}.BnBFontice-bomb:before{content:"\e1955"}.BnBFontcorrosive-bomb:before{content:"\e1956"}.BnBFontexplosive-bomb:before{content:"\e1957"}.BnBFontunlit-bomb:before{content:"\e1958"}.BnBFontbolt-bomb:before{content:"\e1959"}.BnBFontfire-bomb:before{content:"\e195a"}.BnBFontPlasma:before{content:"\e195b"}.BnBFontCult-of-the-Vault-Potion-It-Radiates-Money:before{content:"\e195c"}.BnBFontCult-of-the-Marcus-Potion-Cooler:before{content:"\e195d"}.BnBFontCult-of-the-Dragon-Potion:before{content:"\e195e"}.BnBFontHandsome-Potion:before{content:"\e195f"}.BnBFontA-Harmless-Potion:before{content:"\e1960"}.BnBFontCure-Hangover-Potion:before{content:"\e1961"}.BnBFontMoxxi-Potion:before{content:"\e1962"}.BnBFontTinaPotion:before{content:"\e1963"}.BnBFontarmor:before{content:"\e1964"}.BnBFonthealth:before{content:"\e1965"}.BnBFontheartbeat:before{content:"\e1966"}.BnBFontheart:before{content:"\e1967"}.BnBFontshield:before{content:"\e1968"}.BnBFontmagic-swirl:before{content:"\e1969"}.BnBFontBarrel:before{content:"\e196a"}.BnBFontclaptrap-water-gun:before{content:"\e196b"}.BnBFontheavy-bullets:before{content:"\e196c"}.BnBFontrifle:before{content:"\e196d"}.BnBFontbullets:before{content:"\e196e"}.BnBFontshotgun-rounds:before{content:"\e196f"}.BnBFontskull-burn:before{content:"\e1970"}.BnBFontskull:before{content:"\e1971"}.BnBFontIncendiary:before{content:"\e1972"}.BnBFontIncendiaradiation:before{content:"\e1973"}.BnBFontRadiation:before{content:"\e1974"}.BnBFontShock:before{content:"\e1975"}.BnBFontCorroshock:before{content:"\e1976"}.BnBFontCorrosion:before{content:"\e1977"}.BnBFontCryo:before{content:"\e1978"}.BnBFontExplosivCryo:before{content:"\e1979"}.BnBFontExplosive:before{content:"\e197a"}.statblock[class*=bnb]{--statblock-background-color: #fafafa;--statblock-border-color: rgba(203, 206, 208, 1);--statblock-border-size: .0625em;--statblock-box-shadow-blur: 0;--statblock-box-shadow-color: rgba(254, 254, 254, 1);--statblock-box-shadow-x-offset: 0;--statblock-box-shadow-y-offset: 0;--statblock-font-color: rgba(79, 82, 93, 1);--statblock-font-weight: 300;--statblock-heading-font-color: rgba(79, 82, 93, 1);--statblock-heading-font-size: clamp(1rem, calc(18px + 1.5vw) , 24px);--statblock-heading-font-variant: petite-caps;--statblock-heading-font-weight: 700;--statblock-heading-font: "Probert-Regular", "BnB-Font", sans-serif;--statblock-heading-line-height: 1;--statblock-section-heading-border-color: rgba(98, 97, 108, 1);--statblock-section-heading-border-size: .0625em;--statblock-section-heading-font-color: rgba(79, 82, 93, 1);--statblock-section-heading-font-family: "Roadgeek-2005-Engschrift-Regular", "BnB-Font", sans-serif;--statblock-section-heading-font-size: clamp( 1.0625rem, calc(1.125rem + .8333vw) , 1.25rem );--statblock-section-heading-font-variant: small-caps;--statblock-section-heading-font-weight: 600;--statblock-subheading-font-size: .9rem;--statblock-subheading-font-style: italic;--statblock-subheading-font-weight: normal;--statblock-primary-color: rgba(98, 97, 108, 1);--statblock-rule-color: rgba(98, 97, 108, 1);--statblock-saves-line-height: 1.4;--statblock-spells-font-color: rgba(79, 82, 93, 1);--statblock-spells-font-style: italic;--statblock-property-font-color: rgba(79, 82, 93, 1);--statblock-property-line-height: 1;--statblock-property-name-font-color: rgba(79, 82, 93, 1);--statblock-property-name-font-family: "Roadgeek 2005 Series 1w", "BnB-Font", sans-serif;--statblock-property-name-font-size: 1rem;--statblock-property-name-font-weight: 700;--statblock-content-font-size: 16px;--statblock-content-font-weight: 400;--statblock-content-font: "Exo2-Regular", "BnB-Font", sans-serif;--statblock-table-header-font-weight: bold;--statblock-link-style: italic;--statblock-image-border-color: rgba(78, 84, 94, 1);--statblock-image-border-size: 0;--statblock-image-height: unset;--statblock-image-width: unset}@font-face{font-family:"Roadgeek 2005 Series 1w";font-weight:400;font-style:normal;src:url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAFrsABIAAAAA0LQAAFqGAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4bYhwgBmAAg2IIQgmEZREICoL1RILSBguDagABNgIkA4dQBCAFiQoHhkAMggcbzbs30G3bRS0ivVkJ1PeG7pQm3DFwHpDK6ODUkYFg4wAEslta/P//XxPUOKxwXxjbQoSirJxr7sfWmtOdLPJg+5ZLz7Q3bVMlW4al3W2Pv0mKEHyqWU0aZg7ztp4mIro/7R9ExIyQ9vX47ajhBwXqrR5nmHNxMrpDtF9TsCPKTUjJlZdCcKxp5GuKlqW783oSVy3fen4nOxlS3emxPL7KcBr5jTchDHIGto38SU7eAd5t/ePxmAIOcDIFNwoiIiIqY4uAiKiAOMbKzMysXGVLW9OZqZnZmL9rzGvNu/619s0RDx9j7v2ZpV0fFrrVjZBEK8m0Qdx1rkOFNJYikqlcp03+/079V7I1vDTudYbjJM5+b0fnX/2lroW68SKkgBWwFvAeXoAMULvTBWgH53RuxmaOwbED/HUQy9DTH7R9u/9mLgsh8cQLKEgqoICaKMHIsjhryM0qphcgsoYMZhmYCXFiSGTFrP268qL56stm2/dLG/u7GVrzIJsJ+AZaUdugNr1Yz6SqkYdopa3496r89zr9moE8A+u7XBWxagCB5W8uhGCjRvq/E63Dphi7CxjvvbV/16rfnKQ7mc4CUC0fw/MkjK9lZ06YcmeHonZ7L2APGgAFTfAfb9P69ww7LbPahAKTZOw29QJQtNkmwcbJPVWloSjYIPqkTzzwv6pWAPGBTBBMUSIVKCs5RHlmbI8neEPITXfvXn9tu6Grr929m68235nWZ9rbWsS+qc7u9H++93JpHhe4wnUN0YgRxAKEuA+7kdeuby+JOTY16d1PpzNBTbo3gK+iNRiyzxl35+R7tvNq7KSSk3RkKJHj3+6e9FnHwkWvIjv57s02L0BTvIBuQHB5/SdTK9P3q7rJX6AZe3ciz2dySQAOeT6SSQIFIVjdQAHVaBCsboxpgFwQxGixAKUjGzNrwDkJXHIkzKzMOHkfKVM4Vs7MSj67JFOmJFaWGZvJ51tL7W7IhYXBeS8yQgIZExdjcv9wbjIXwA0ACDeTnZ3ZAKBKUVc3qoC2io2q7fMVvkrUygrf/1trVWzjZhIRGiF7zJZEB53FIo9kWk9s1k7mPuKlH6GZJEuEaN4glIuIZ9L1jURahGah8GiJEmmZSBLfvy//TxBrp7REEOZ+3bct29JsBK6p2xjcBchCK5P0x+/KNZxPf+kzyc3UkxZiSLCFxdKz//1nbNW6cVzVVElZ6IBKvG8EAACAFYDHw5pVzshTTzdN2acP22Cc4BT0mhEEA/OzBPmCq2tj0QgH1t9MTgPQthX4TOlwclxfDaBno7WhhqCvGBNJIyA5t1f5GZz7/zcKKXld5WBAryAUZ/UUaMHT7cHC5lgNASpvLvMBsDWnCH9VbJiwwR0KcluTvE9muZelAFIQK1NWPC8GoLYKjeQIQAflYomxSQx+FaXMkIFvOQnW+iCntXAY9E3iIKHhtfNln2gpXCh82yNGF+wCFghAARAMwTPt+zPl/xkQxMmcWL7sXOqcwLgF24BuMcjlPP9N8pfux7yZ7Tmc4//9e3rv6c2n155+/fTy0wtPTz09+HTNU9V3Nx//LpzaYJV99w8vAYgCEoXG2C7YJg5PcP1WCP8+/K/mBVGSFQ3HJ6eD4dn5xeXVdVXf3N7dPzRvvvX2O+++9/58EYRRvFSh1SXpkw1GU4o51ZJmTc/ItNkdWc7snFxliDChjAuptLHOt7TMNMMX605k0tl8rjBULlWGR6qjYxNTk9OzM4sLS8tAB/GhYd6Hrn3t839aOgHWfwCLAZqeGQAAQOsLO/S9qq4NAABgwev/tau/H7l568XLt+9evb4I3PgEfvz9HgCA7p/3wNr3NVs2btu+Y+vQMLD7c+8e4M73IgAAegAAAID2ylmmGWQT29jNKBPMcphzfmHEBDPMcZzV9NNLBcN0M0khetaSTgrKi/sI2OoYKL4Dnb2C9jWHwNSkgBVJlRt57buOPpGML06xwEy/USmy8LijX5qM0xaEV1IID72i8eAsgDdw0UZvyT/15JTYkP+q1jAadDwKzWuOL6+eYkE5cnzUgvHxEO71Cmjvh3EF5GxwPp4PNNeaBcfFUlmJzkim3VAP/aieHIHktBkC5LYj6L3xC36GoH2p0top72voR2GjimIiRsWw7Sw00/uusGkfowS8aFyIWkzzzCoJzc9uhGZTP76AjPwS8Ng0qp8FpSaEjFonO8XAXrpQC4eSjeda9Z2itaJvv98vqdRGQEMEJT25FLCh7xR4ej3pGFAa2IkH5LaZPT7gdx2dMcEW3egW7m5Aiob7gNSCIuoNNnjQNB9UGzGTf9L/ZI+1z18JDvJapbqd3zLhU1SbrK2vDzuuYgKcuEZLlC8FXD4TM0tApl4hwIYjPEzcTgIKTu/1JyGF0BU0h9SF9IhayphpBkQC79R+AM+QXzgA/EUDYH8RvHC0R479JjYlBoDj7rOPwACCjbARcGAMcHwwiEPDQH0WhFkQgWA+LIb7TrE+uFEYwOnrk3TvDoOA+8EI+SCg00GP1CAxQTH8TNA8OAN3Ts68H2x8FtYKyPjOgHIFuFn3Q4J9aJ/CwEQPZxAA8Ot5+AMoYwyA5QC1gToEBqHiXOUAMIUPrQArHlNYnX4z958vtE1z+4j24TJpxyS5SZwDxwH43v6YC2j96O08N+pbA5VhRrV1mxz6MXpdjNw3UgkQHODY9vn9rF/G9cWkMZCYONxUzTDpLnL3clnzLJipGcySHB6WjUkBDpEpXO1P5pblwRjL3x8QTLuFykGqjGGsgcg2cPvoCjsrAJ4AB6mwjh55kN+mWQGOR6DIHLrWJFJpW8Ozn9dt2tvUxrRQj2AYHxmbBKcnx2AN4CDVjTW17cryZ+kSAgD8BBNsbW1NlTYwAOAgVcwwRWDlGl5mXhszg9RVN6bwe8ulMTyFrtkA+CEYOxEN6H8H//rNSDP7AsUr3FJ+SazT2LitAc2QtTxeqjf8W9BsVqw7JZes3HJDuSP6cfs6X/ywTs4Fl8QxR7niiUI+5N7fMbVm49bLA1tEFgADBRT+ZqbQSfvWni64wR+KI+3rKmDQnXlPyn/9jr8ejS41hfor/ryaNB9GleAAJtEmqRA1Ohn1pvC1VeC+NcxXkuhxQO1EtBD0ty6VrJMnxI5JkRUSrng1OKMtSVLHpCCgSTdHwW1fuY/vmsH8zIbGOk13LmxBY0/3HBnmXfPx2gLQnBo0c8j2C92LtcGAroFycyONHAFCe/pCq05D17j9SZMOWaWnm3j98xay7YonX80Xlteg1RXriNTxuDEw0AP7sC64nZkpS2SGbFSW060ls4IZWczrO9o0gxxjyM5e0otCxSrzUV2rbeDW5m/h0eqGZMcZEwHXfqBlR0dElLWL+6RT1tq0WnGMwYwW4Xi8/uNOq3hlE2BwuW5ymA7bhjD9sFjo0ISpIM998R8qpyy1CmaA6OjiIQEqPJEDYpgu0IDzuVspOEhPDRyzL2Oeh8rHAEB7wFvEcgDObBzVvECXqiVEi6Sg+8NJQTU5QrYyWoFmTDQGBgIixHcWqEZ22WEgh9xqHxswBXF8tWCi5FBJ0jpXqJVrVz8RUgCdCEpiTpIhl4+vKAvYn7Osc/5VB1liERABD5TpMU8pniUSnGq62hwqrE7NWAPdZ5/OpdeaRPZqNYGMBxYY0CzvCNUBbWrMASUcHLaXpL9h295mf/zcHmkInC7XcLvWF61V6xHe1s6uItt7gJC1zulrpNnNEStg8gZ4QT7UpFYdyCvVgAMBLIlgfxYMOOBu1uoyqUnlUviGYdBYT3jTaES2v3xXaNwtjhQSE2VMUl3g1BJuQxQv6ZVKf95i548XANnKIb2YFzOrgWVqbNhe3K6MjPCJoaMREVJ8VwRfbo6Dt02dLxYD8yNVdoJtk2UGILNXJHqc1z2/O9kFkxHwxBc3SEVKNrqFDjbBOv464TIjnrVcf/Hs6CHP8jhzbqU4eo+PHUyn0429y/PTyM5aixCFEb19fFeB6FlsT1fnowB2MTWR1HApHep3Lyq4QzUjVb/iV1BWIDGFLw/jtiiH+AWo/2yRf8g726uSWq0mABCaXAO9Z+93W9nJQx52wyPocBFOhtsLGH/lYvQl1CXeHM5jcfGUbggCRfJ3WU3uCOaRjt2F8OHG7yvs8xmge7nFhrIzLKzhf09YbNCBKdxwB1+EXbG5DlY8pWFSSh4Tq5U2zG8cBwJPaic1zRdrY9iZ8VAq+NpYLnMGiTl+6a095u08uYrsNKg/nh7jYNfKxgTQOqcmEr1opsOH0RJMkpIaq5G85dxxI5UawIvBiQzQKsdSrVtYsfrImJvz5iHSdrrNrihzL1/W4ga1Oc56izxglULiXEU81JMSXoKPb7VyU+vjDZNzJaq96KxVULZGt2RGg8ARzH9V03C2RxzIvblrhN2QMNUuxhLI31CXuc4SOvZVsWIv9XlKfuJl785imcul8IkybodTHTDm6CAri4vzvd/xyDfOHBolqfFGfUMmHI2DmoTM2ib4uBIslatOZ8yExIiJPOEWrcCdA6GM9nBhZQy8nCsJfAzvh+XSyGxaM6dOZUPsmeoojlRnvlOj+P3ll4kuDs3dr5LW1dfFZ/vmrS4VdIzAiY2rIDtcOaTs/KTNemv3rc72RxyDe6ucpSx0wUU3Pze3asTqI+/Q3NxOcm0uoFtn9ifzUCzEf6C+APmy6RDy6redw+QlXUc0Q2Kn01MNI04GjdGpCR/wSst7XdQK5T6QabHTXQvZ+fEo0LWXKivPM4Bh9UIpcnHEAVBEsQw50BI1c1SqZMzrioPO6pPLwTDgX6wfVZwcaikdBD9wE2pyPeZK8miDhuVKnTTxyMcXtlylQBGDrRg5x/QoTJO65nsMGMC2oVqRc4tSqyq/mIXj8aUYwNMjypeollhzbxObdkI05tAsS8MD0LVGaDintjDbp8yveCzH2dXJZpcZDAKpM1uW9WffDU0HaOVL1TSQrlGOzWxfvtye5jy6UFl1BWONLqCbYlD3/KHDxthBWfMuDWxfJj9WLFaOWZZWpMfFwPMSTeN/5inhO5nKu+Khl0TeQ0Z7rsj1WNqCNP1mXajiRlNTqjispsvsx4nCvP264eJlvQzpYztAqjus6W9O9O1njQOnzOLaXWFVDrXwN0Kx1HhPl0F3xtsS7laE1WBUO4hMDzVhX93eEnDXhy1LJFrM9hHdibO+WJ3sUehHQvT0KE9FqFXgftLAQMSgf4mnuxv23EwTgWQojRZS+t+ehpkjsGku5nzX2JJd3JDX9PwgoMZYwzaCOeRYo+mSfrvh4qmxYVt7lyGNayCrvhum/TU/e2dfqFj1TP9xscxRrQ/zEreiYcB7KjIVMF8GoFKcv20ExJSUH/LxkZA795NPxcrMlmXHcYdxoZpm6EjhPki/XigfveVfgyhSnurMVTBLVKucZ3QyC92ZyfWW8nlEMLOlMWAOAJOvc25qycZwmS0z4IllKhWBbPnha3zs2c7RxzfR0bQkWe8AenBwpM4o7BXuvt1zSJu1Vp0o8Kue7it4Od+ftKDvCEKtzfkcUXHflh51qGj8hOW5T3Xakd819hwgkMIa3yR4QV3z3TZj0f9OyI2g3OFethui4bWuLnxkqYFyjpGWyO3cRtcUujvnZd8pxjWVZydksEq/cDNUKZ7m6/uXFDQ27S+wc5OM1sqrEx0z6D9C/Vr9Ck/4lJmi+csM4DoXPONEocldNwzREEHv4rt4gi/E4up/iqfGQqj+lCe1q2A3O6H2Vyo4gF3VtjJ46RUBn/f6YCZ2v6oW0YjaLYQzgrfkCfngqW8DwrDWF3L277XKgxVwl1dNGKgjKUjRv/RC5P2AMFZAk3qLontklUxqWaJV051cKbwueWLLNwFCQkbJHsU+h+T484tj4ZqJ9qvMmjJKOTlBVTn94iAYB8TFijI+1RHBkpyV0rtIg53L9vvcu83y1AP/PeP9urXn3/lpc9u/69jc8e/9vLWrbn9It3Jy1j+yKxba0rxT8l6H3OGew/Sa6A6PCgPjrcpauXuhLG85ifbCjuTAYMLF3h+Ah8llyXTYeEX735DC1CO3xgGMzD6Htr3fe/cfoElFQ3JcXkGDqMEBJNkiD+9iTOHb3GZxfei8bTekVqxsQ2KOENZ958n9RgxKHDjaR8CafBbnQaKdgibZHfJOlLN6zHtUsaOD+IdDlwPC7kgC2WP9ihMaG6dAU1LVH1LYW1+RoXpvBbfQIHvkmeDsFG6BRtaJp+zz2CO/Y2MplUOuSgX7JplGwRRX/S2bWaV48URla35KxWrW4ZmJmEP04vu7xhqMsbEURAadlsjt6WtjmYmDXvs2r4H54GAI/O0h+5ymI63A2QgeB7JgE0weesJqSo3V1K+dKLJp+zxDH+FWPnHYS5niLcrNA56dKEFc9cuzkZ7lKf+wEjQA1QBv/wMSNylr9gn3r9mueVJ0f7Phis62SOYMOOGfXJRZEL9KNxAvIBRiDR2FxIlW7IyzpZvBL8i+n7y6IK92Uolt9uQySvyq3T6NXlsQGbCA7d3XxEi8j5kboVD7r5LLMB/WOyKkTsRtuaZIiuugSEnq/Cs45FBUMi+rbMjsY35WPBm/68khDqOiG6Bn3pvoSuholTxhNH+BkSDurbc9F2dqXXrJcR32/LXuR1SRKU5WP23+RdgDt9DB0zTEytOEJmhWclKjkwyEZbSBCA227hBqkK6o0TI56fpfQlqEazQjdP3cvI0sM1J897w8cbYN3NIGEmtoozkU+zqvfg/dB2+Tx0cS/6YGop5o7pvVksw1P0O7t6wxqlk7X8YyRw23A/KMNNAk7a0sm9X+J7Ns+MmJOcJRpEErNjgrNR/tMHu4LZ+0rHOkEL3CD07SPPv/J50oyEhMMZ1090nKOSYmvLFRnqlMB/Iw24BLJltX9rdug7C8Yp7pRe/Bw4qpz5FhXCmPg3C1MUlfPePdb0WdoIbqTZD/Sq2qH/KaPfMmLWlZH8e+4dzv7rV+xWn02TM15WRwm4wRYDzJ6bYrfZLGGJwjH8X+6Tv/JA7R2u2XV3RObex7E/WySjMI88/do0ADhL3kwSsUmvP27bO9DDCoUxk5yqfbb8hnAsLk/RZJ8F3JJA2mUevMeuSrkjZSPInshRLbYA6HrdChvdDAwF9lzi9AltwmHUmzZDvQfNOykh8dO8vA36P92CsKUyCP/G9Crg7Ih6jkgFxDDdxNyqWoanA3Dt7vmBgiWgkgrIxqvL5RbLy2kQMFXq7021ZdTtlWw4y7DzwSQSocP1EfzI7X83nxBnYwU50JqcpzixYmp0CA3NyitpTk/jpyuBxWoJHLNQSywpMhZf9G8Y3X4um3mRCpeLqgqyjFWQ+YU26GfmbKciwpawSQ6vLCeVNtU/OHxMMRP9gn7f6yOHLQzDqyesYCLRkfz6XUbK7dNyt3YdHFY5s9BG7J+p3d473jM+OO2+LvpZIAHZ/PUYgSImQwq/IWE8Zv3fFMPwLSd+a99+9XO27jyAGWPzpfk9OVxg7gFAZyUGxgOmtumjytQBXt/WVg6hfBvnuGIbEPezUijbO4SS8ILJ9mvL63DEoLBbJ0Y8Tc7Z/waMD57j572udn/+G0tZVBG9tC6fvomlC6q/R7SxyY6B7FM7sr9MA6rwuwoatrU9ANd2i7DlXsGiXvOlK3K6rni9uOVa7evW4b+skunQTMVl/MSpLLQtcNi7y8l+B39Pu5rvLFb8A4saXiSGyvp+uWXdu9idvutY7hojdA4DDmj4KaTHJgRVA2Tx7kTNSZ4kxSnX7eT2ASS+iRG2bUitds3bHVPPLmvPnnYjePbM+5h+c8QVzZ+u8vsCQJ1jixxObQF2iC0JwVxkW2keao0R2jbipXlR9jIwJ+/mJsVXzLvI8TZ2NrElua58U3xVR2XvIuLwc8SBXlyMJHAeez+gPuZRWtXi9eHdcyH3gPuCBxtfEtLU3xzW5Lk8tKzZuRMqB4amgFGWF2tVIMinlrd9FAXRR7Y7qW2q5yVgpNuLnlBSmUdl8sbpwVqryMUftTXeR70IHLDo4fLp8oF4PanEhvn5a1fYtYY6GeHP50bBot36VkjywQlUMz7+HzRTJfB1TAwklhOglukv2bpwGROoOybCR/+7/Kb5mGp4yHQZ+cGwYf7moKgjyFcm8lZsf8YHgTogvVa/dGyQgZ+DyMuRGsYXhmZKasqxONxCFqYK2w2i9B/W3QLo6FfD1snL2QGNTDtd65yczbXieJFAhKsWf6Qk1BKKRvLIVzvZRzN9YLdAfdQRAa+2GLFdyLvFsKIogOouigxFJIWKrhYUEE5eR6rpeNC/mA13RsFyQkfvh2EAeCINx9wBOyguBpwz4+iILYu8shUICLIe6YBSxCv4aodhDS7nSBPLq38SHiXT4I8t3B5uqi0e8zd2b+NfpX+s705EYf8pP/VT5h1F6Ys8+FdFRyw80CAc8S6X2jWesrDktnWt7Du57DAtQqry2c9fqWGl0K1+C3QhGr3xG4D30wRYvdSd4SudJQWZuYnNqgNbSEbfLajthwIDKQFsj1ZGFamA3xGQKhwsHsctlCU69xWUPr++9ILVmiaKXuheZS4Y2A98uGza89cfEsaAOAyBoXmlef7yTyZwQZGZDVCpZRFQeoHzdW7PxDoE+OLjBdbwLFOIUPK43088RtBIiEpK2ESNlac9oxxUzDpbpbYHP7lI+XQTkYohEJB7Z9aNkX1zsZmB4Vn9WgUGH/27odccXKFfD/o2kxttDMgNxvUzHuuysxJdYGOkZ9Vc2m3iwwR6GxJEumRGmiZZDoXAvhfVdcSfyc3FzyEhkk0TJtLqV8I2VQ3distlNtLhbvr2ry9rviIpfqjtsemy4kDGy4sax6pjr4aHB+x/4nZZ5HBTRL/BTN/A/LfBf7sCTHhEyuLQYrdWF8cYKeXAwrogpg1fbbURF8XdyXAjR+3YnyV6zlPJ875I/NRGVgCiVid1z5RVZKgS2ul7Q7KZ0ypevryCykq9FcC8Aav9XToYSv9Rhg9D0Oz2guLCb9dvK6T1DPnX7E70w3gUIWUkBqRBTAVODCcaicVEaVf421MjXea9OT/IaUK1oc2cZyubo6pI+0Ft5/ZICFyiPbRFJuRJTcz4nIp9DheT7Z0XIuVyinZqHyFiECRg8F/g60pFixh5XGibVVx3cFUVCbvOFV8HZYlffkRlQsJ6qA4ehQ9fREoEppOTEmT+n3PkqMiadldCjz6kUpouoQqy6qKHFrgqqF+VFspDuxhbwU5lp9fbsqK7dNoaunrd9nCsZa6do1vIjFNC3GGhiIyaCZhrncRroJm+Glp6M019+GBodNY3R0enZYzRPBLziUaS3qwG41Y6e2ryU7M7+lWTHiczCRC+WjNCg1Kd148v3NzyGhmwJxb1SuWjdsWD/AI4wf7B3z0xoamDvgI/zN2uppbmqlQ9rtt3mPxh/h9LMmc7mVfjaUk0VHOCk2EzciWkaxoXK6imp9+9OLqYIwM9e3vVRDEQeb0d5T6VoqP9wawXsWJ0SaGowIyOnx+CYkVj/ZufndX4i/EJ9Z63ac+PXELzXnfz0/0+37+Cf8T9SHjs2T/ugmLNAuVKeUSBKKvDuVas+O8EOw9V8G97W4s9s/Uxn3WhvlnpVuZIQ0TvpeaQy5BPq7I4X/0F4jBwe4QWahKMzA924v9SWLwywV+zflep1l2ima9EX1+X1xqfkbHEVr+Acy02ArfTpjWsT9/1JDQ0NEPhmRzkKhIibA4pLDFrpsCl/uyEthaShxHovA0iAv3y5GMMfsV49q52o9p2SDzYX587d2Zp9jPc3J9L6sn+qpr0tp0GeCyPvHVyI9cv+tdW5fuDUvoWTNwR2MIp9LeSoS++5LGnuUZIBbyEhSXDQyOEjFZkcaPEugki+/5boLsp65q7JOJ2gIiRrrn0/Makg/CyDSNC6NCFWyDl4iVRRTO2SZnC1JUUh2jNnAtwgXZmUS+z8jzZFqrxdDo5c/V8HVLCrKRNEi2FvhO80oM0FpIX12NYm5GBP7Gd/3R2hh3958v58tD7cMtJMfzhe2SOXuWOJ8x+jrrUheKAgkGRJ58tiwDJ8iTCYehwUTXDJ8CsKs0lguvapg3rnXWZD3BeZtCJtpizN0mEqaVsznlDSc8vUr8/taPgcg0kruWJ4lemV3S53VcStpmzCb5SkuQwGbFavKtU6/rwb2WrypmQW2yAHs4WwSHocPJId5tUUVW+Vy6jMoew5AZL2cjlruOuN6XjqdOgsgsp5MBy9HzWAapH17871Oe+dFc0sVVkfiR74Jq/CdAPgrRO7bi6BB5Cfo6yRzPPdViIFkswABLHMWFBGIyfPJC7P6bbjhloru5y/5102KUtHRbBobPTAjIyjhWpgCF4Gq92oJryv/EkwJ37z6yTOtRWOtjxokb8Nu2DALILLmhFThUdFsHbVO8hK1N3Z/CyeBKCehvvqHRY2It3qxp+cJWU6ZyhYk8FDgfsZGdB3ETDWs6vK/Ge4W6OolnWHDbORMVBUbzmyJ4+dRt1GH2loTDx76fUu6pbgUaNarYcmSiXvxdu8D/f2JPYcTUJsoW6JXW2vbVfbCNdnOYf4zVEcVZjepi9Gc0/xiXc7SUcDerslojF5P2YHafEymRhwPGrM2pfCVsRyrV14syoQYS/CBOVzKPSsiMrSiGKFOxinwbMU05l6fBRBp4CvsmoKfC3CRHrmA1DeZbp1H21soJnSENZucUtIdvhSmgtF/gw11ETIOf1L8A5f5c2El5AxZbALyGWwITOnZK0f0eHUFdWAbwhVeC746s6gE9d6fdeVNhvP0jpJ4mWZ9wC7UWKoYlhsDJoDuBaJTChP0EbmUELtx117fzu6loUaWTIg9ImsMIp6GsVw6wzrNOWqxQcmpJHYmcYIxaBwhHTdGtLh7utP9FNBPTKU+I6gV391WpXSvdcAleQNupetC8oyCFpSZikdAom0uirjmi4/+rq12FNw+5lPAPOeZN6CPu0/viYA97GODFA3KTGeh1D6ycwZeA1h10P3LOs/k9YFKUVxoUyZEnK/xMAQqw7J1BqeEaVGpVlarmUs1RTUJRpYSHtZgKjyPCxgCQXfwkjVKyjIy/qEbdQUTjpi2+oBcUTj+dLCflWOKl3IWKxARaX0hDVDh9LRq+sr0/um4/d9Xzh2hI1Wuyg91TZ+wKdR2H6mLygvwPyauRrjNC2lOzIet0qFDhY8N+5E/hwVVkmoRDSpkYNZZ7LllLoXLTrqez/qYgPw16wRyaa5LdO42l7R0ZGH6CZfArAdY+GUM//KjDeov/2nw1or3694f+//Qj4fPjv078u8K6HzWsZHO/Z1zbktScIcANXb/ZoSy5RyA9BfvHP9ufHcc/Lem9eSgmQGLOWT8/fiWBOAN/wRF5Kcfqxb9UDXR1dfXF7GTO81lojwvP1gtXhwSH1sjGqzK3hFV7LI7QhcWKK+LTrXcnR3GkVSsHO98AqW3u3/RLJlDQJ7O1SHZQTrz+5IVNRFaW2y0w6Nxb7zviuhOf9/8D9dxed0Lli+3A4gbM4d8/gnO9p74O1ncSRlArJdHwFs82pkt8Tm2OCn5BiM3FcyMjiWQY8nYn35gRaJCn57eQFCSjaugZrdFUE+FB/lm6/eCoeTaUUrjYM98dVGAGg3+YjTXYHkW3AquWGaltSKWRnhgsC7+JH/3kqCMBzzfadvv2ryoFogIEcG/ZpVEDYoc+kqifZZo0pxJUUXT4WWoevdyvIVhKcqyC2XMEIG94atJAHFjR3653F6ypXvIw/eFTRapXspch9g6G03AlNCswezgcJrMRUfZScervw8JDg2gWTD5eFdXCoqIwxFRVEKjipNGvKTY29FYXT6/MX6v65kUyMvPG3EiAtFEq5TrpAJrSDUP4glafD21fjZ88PyeJsUU/tLsaRcUFXKDGQgOmiEglF3N0OGtnmhPbGviN1stqpAIeIt7B7MtMS8rQaY2Jfhhi7acFvrOF+XlSFXeGpgbWo6xeuppntjowR977721kQVClToOXNTMLPXNdwsYG5e20lag1h509cU4fZxBhgf+8vhyjDKVTyTClf4kOCwYwuAzaKpktlCY77kU1knry5au836ldLClygLJ5s1dG1Er/pn0IG27eIkRHPcdQUf7yYw/uCCPHbnuPzvhXNVt3G/T9+R+dfGWvEg1kr6/AMKMsUTfiwUC2VtpvkYo5ij0IznVZNXj349D16+Dnuv9zJzV+sex205veqjfJNl8/WAK+69FlCh3J6pg+4nQSbKyKIGoiV+6DljQPLXTfxxYksDjpwtYAQ8IUjp6xoO6qHM3ixcna+d753mXZdu3Yqx9XWNlgclOaVSpa7sYmhGJ43Qif/9AD6k/lCxTLA5+KK7jWwu6gJr2RvmUx6XUVNJ5+VRHY1XCmnTeHj4yRP9Fs7l+fSCMDJeeqiJmfO2mdQdBd94IKGXl4Sor2Qv9cTlU2w5uRBLN7JJF6820DQGI/7ajTPx16d2nk8ihYn1gv9VcEF3JfDovFNHs0RHQEVdgS5QKHeG7f4L9S8cpn6AD2RlUK67EA6S64tHebt4gASrwLRVZhKzXD3EycpUqEpLAtQgVNpHZHFdu0cYGBvYnlmRE8URY/Q4AERi6G4GwXghHr/Pd6BLu0WRp8orBc5fRJY74hJyANmIHovlAjD+mjFIco+cGsihKFwN1CxUve4tk8WJ0lCJUOb2ws9++G1Uf34CRoyLP5RnwvwXppS+U0fqcpNinSGxHTrRALXPI+QKTSZoh+re5ZFdaeJVN0UFO5wUef+2BnYHl55tis8QGg5ge91z689J8ldYaVpEU4eoIMCfKnlXlMQlk+IFQpefdWvididH57FH26tGVF+n9y7k+G6EDslCcWMd86GpgP0lx4pOn2UKRQ8BOpsldTKxvpu3jqLzwnCg1lbinKtzsk4HQG8Bf7HOYgkn0wOQsbs7+IgEk2WeQQ9WYguoTnnE4qXs97TiHxPiK/yTgdPTgNJZk/z+G6Iv+2ffBlyIUuhDnOuUy17qydeWhEyjCdcXp/sM9h/eBv9iPYBTLMcTlByO/lyWHP/ZpOylxd7dQ9oSt09Rd4heBTWgVNAGs7uD5Q4sxWQG70rU1k2nTRf45zDbOdD+SOXQlh4G+Enz8GWBx5XJht5qqocV0La9YPBteius9oiuSOb5dNm3MbisDUMtXVQ6osYYil4TnQEfViV+Xlqab6PLFd8KL8X1H9KWJDuBh93RK6HBoynT3N5IsfdGRbEV1BnFLskHqMAUHfmRm1Gm6bJJJ5pE71gxM9ExwaJLS3czjuSeCIsv3rjJ6KF2zjx5aCQRsL99E6qvQ2QOTuO2K3ORoNhC39m+EK8L0rvdJJrj5YNIbskhiIldBzcERMKeHI8jMaSJaEtehhwYGhlehIb+gu3ishrPqz12oLf27oRGeimlsCluF29iVfVmXE7sBXtY90fQXMqyyYfemo712WcB1lSl/pRYYfypWWLXpQRUUU9vcxCTqZPmp8eljATppG6MAaAYaGQXS9ugqRUeUQiLhKRQdMUxhO7OgaR4UKNpiatkSkbIfJFHS6bV/qVDXzxdoVhQVqvti+Lq+DlCQNWOmxd8n2dwdCfdNlAk3OGlyaHro8/rPw9PDo80ZJuN3Rp8nxichQdbM2JWEz+TSxPnOiZTM4t2YLRkeLrU8Gzsi2iHi/jHdslxv24xkNKtLmbq4LHXQEk1q5EBGkiCrfBqzzeqDb4nNi+bF5MkjfCiqrq0aa7QzoNNkFUVFp9gTNdflTEeEYHlfaq7MAJZTrTPQKzQ/XhMcKtbxeGJdaHC8zjeSn5Dc49zjHCTouJopyW/Lzp/VjETCnD2/uJ1Swkn97t1HNQS3k7qdu49rhlzmwksj67N7Kaecfq5Fq+1keg4g8GqyMpkXlgLHtsIaFkW4Kp4niK5oiOz18uMMaqAhRkqDW3QVCmPQ25rvRAto6kFuXIEMECTWKzOCmVRWtLKJn7xcTtp75I8W2dv1Y9r2sfZhLXP4eEuy4A3+W27xUzfyE2uPfD7iPddb2MlO6IDxdmbN+nxefm6JUy9LPmrIAOqq0syPgFfT88TzQuB3i8sN62KFpsGKctMGodC4QVAmCXew/LkOiTzSxmCF24yBW29tvVm0+XRTatP/Nv+vMbWx3GWMpKQZes4dJYVG/ElnXfmf2g1fpMyRauUVKUayItpY1nPzSF0+DJ6tcmn2p1BZIToeN4iNXIyGXAqDg0JZ1ynkS3NyIjEvzhCrTcxL4jPN+NEQpyTN0KFSqkoGsIX9q8UPXosZhlYAkZa2+5l3j8gQGBxv9uz8bjT9kWGen37Fy/DQz8Vk+RPr5dnGu9W8nSoAyU5R7lWuGNO1DET5TZ3CdCr/VMiQ7HumzKiVhNIPBlNnk90bF4eULR+eTB2AR8vrn2ny0wVHNCBHz4c1IsfTDyu1GYeHd9uOqpXpB5UjTZFlgcGR5a11kZXBwZxyo0LRPtw+ptkwtmEYxTdoN45tHFa3DQfCm/yLU2se0vWOjJauI8dKW04WgNpn9O0KejN5jvwT4BM5U7me3KLMnCt/Xco5hfmPTYnLwpG18nXkTHnzYVGU+yK6rGqviga7dN/hto11ezV/Kr0q3KnZSdJHSlPIRXc+5E3h3AeBdqEqpVQSX+TTiR+4R6orDfMTs9MERQ6AbSgsG2BY0L2oHGP5O8oH+gxdUOAmVZSF3/kqBv66aUg89FZ2YevU/CngbMdgHD2EVJuawhV9yoRSw9taNianrMnSIZf0yiIjeQgH+PONwWyAwEMkiMJo4rveUuE9rkpfz5SlYpofpmAomnK7MPX9psoz5ibAU5Ui31m0O2lX0rW6nde63bK7ukPedKvXljkagVEsMkI928sXiNIlEX2F1+LXrQRdiDnPdXuk56a+YA4WyT17mOrFL0S4QOIj14IYHTcX/eumMkVOMGJkzExw3QUhbN3oGSDiKhgKuz8ug7HGdJEE7494IthgZQuMFT+nnBtnq2NsMZS5W9KwnK5/uDKg3Hl5ndoUVUlgPdiyk3kyvl4XnjRw9fSC0+UFDnMRr7RKwb3VDwy7i+SZgm+NhciXV0HNDYUpYEnLWpanA5N9MGIj0USWNIhFzsDKXzrLlRrarn3NBRLZA0OuAyoNLfalbmhbz3wVj63ZwFjPENUMcwNTv966zKA5bmal+/yKhtf4LRuO/5Eb5LcLPRijIismD2YSSPGdwmngi0awvlM6DRCyqNAejerrLEOlIV44qfOGmckAIiXbc1JtMCidIXuKJmt+3DhLmpuzGzrmpYW3yvqfzpocrQBi+eX2g6uWLD88frXWtEFLn0z0mPTY/Rdut8eE26KzZ1uABuAogBA3laQwBrq6FgDuQGppis81xBF8FcMXCGn5oqCfV62fFOzsEBE42Ej4wCp4kAKWDBmBbyFENFaNAMTA1nEgHDFZsXi9KnN9lbEGADt7Y2Qagk/jDlf8PQY8JbLPrHN66txdvPHzohzS0FE/JcZkJuIree1OjcRIuCKmyQwKobFoTcTnBo/gOthSRqvcwOYrKvCFGV5e2+rG0hMc9gBnlLPQLk51DDnalJHpPKG5hGBq39zRGMDNmrT87YNYq10aLzasnS5ldhWWiih4NaNiWQTDx2QVEqMbPppM+8dv+yCLkXwsoYy69pmLYqyNQLXPVAziyEdEFwQNsVVXroQyiNQUrOUuYBD18/roxn77pD0Yo8wSEZh2koZe9mO12MErYCgiMNvPxrx8MAbhCDRGO2sx//9LKyKbOjKDV/lpm5c2eOU0FnDN0aoyxtZCp6fTYthiqfq4FF+2QD4b3my7OGc+IElIP3Vs1npUKjEdzapuNhI91w8NhLaWPjH659ecsMpXdyughApGQCv3CFVxjkZg2CMjMh7DhFORmbF7hEzGddhwmoIQrEANaxYkiz6a1OHzWrg9bQ4wb7211SfkRP6JvPCv8r/iTWczoVP8zh0e8Ht5GPxxEibXFXUxqvG8wpmeeQdq6NUg1b8oeEGvSphuv8+iYShaIry6Xswhlp6YenKWTO0zI6+mf8fUbOBESAo7oz70b479WL5EFMrp8Vc+AwbyT5kOxInMRy+eMB0TitIuNozYJEyRkI0XpY2Je9jdqwcWya4eWrVTtJOxg3FLs3PbednjdmCN7kHiSSfFtwqVbKxF8Ki1CCPX0cL5dU3Q0+0xvza2quW55T5mhjWnWFS+xAfmOQ+2ybJfzlUWEEqtPsRNtSPp8oJ8mjXA5sgW13RiM/6eZGaF12uAhIyzRw9ZT0rYGlvAgR68L7zPsFokSlk/iD2biDlHila1h0G4sWz4IOjFpf0tMh1gv1xi7RHMEWZlc3zgdyY2LkK664aqR70tJvZZHtzyYolvOszAPePctPAVUT8iiz7cd7f6n3VuXvhyjvSoBBw4rH2fqLtD6/K1wIwRZ0WEPGeNDGYUO+WD/BdD3ulG9hk7cAe95HZ5NwcaOGdyQpFDEBMFzMOIraLxZ+2bF855R9sV0MrO5igOIj5HQfSmfE0Pj6fryc/X9fJ4ml5O06ncU69OFVUC+ScZw9+uG9N1jHUM6xjhiraxtmHt6u2rp/wVP+Jb+V4RHiQJvlVI47R1GszZmfFa4lRsTlJqjB7nZ/EzIwxJ+FY50U1LjSG0Uoh39bZYmdQe6Tg1rAG+0WfhVdiiZtgvH4Ostn6tYy1tDZhrlj70Km6mVJris0G70BsmlZO2M7tMUrPUVeZX4U1J8BRO+XJEX5RlCU7XA7PwtnGx+ZcKJv9lD8n4YR2poznjaus11uM3KhEgSkaKAH8gjYcQZaogdAnsDKcg7KEcwXxmNEe6ut6HUjG64rfqTBaGY1jjz0tGIHBwSutJMrPAbzDAtIhAeQOiJpfI/E2TSF3iGEOIGG3PCDGwMVOklCnQ0gzTo+y3i6RijD2hCbzCPMaGMiF4cGlBa+stBN0Eb/BOqSQPQGWoqyx0RCQHUAtiL4EVMso0EDpmmNt9JmSBidNXdQrlQYSzW9xxD+YIz6dn/r101T+/q/6rNYczNdFZ3lnIQ9oXSjXARycc8bI6L/t6qDI3UX59xmgrbvfgSV2DCikjhQGlJOU9rDYWwFwbbP648iKPKKwUkxULpVWxVvW5QtmpMlWLJ8YPz9pJa+/jXWcBUWM6noLqEL27zVaW1J1wE6yv2yXdUavt+c0AoBSk9U4gWuVVRIZa+lUzyrhoJGR/vrK2CVJd7ZYz65Ydd/0H2BF6gTrQUUqEnAzUoVk3BO+E5zKa3TEoQJPDyHGxqeKetOLiZSQlsM4lhG0kQta1xrguGoKXzluKc5mIUCdCTQPRIBhCKmUZjiGOkJiKct4m+gCWbGi8Sm9kVZwBM+SJWGM5GlutNF9QeiB1CV8ODM2MByTfB1fYQHujSJz96r0jnDetT3vrgZXtIMwCRWBBW1AD9XMKsd47BY5P3OFlYQWiUuR+FaJUYjSvoOzbpdl2+o3dKZyNaAxkJnYPWOr6LcczHr9u86wWCiTzugZrEe6qyhB/VohtpjO2KVhTbs9UsjLHM+dB/BLCrDMJL4kk0jkOXE/Xip40KQt7W73/6RXwNGbe1Wx2dqi0Pe9P5xJ37zIUie4p8sT7RgzPmXxSZmyvrHe6dlm2zechdC5DdrsHPT5rIMGTp9+lPe9Q6bqPKWyW+aHub3PrB7eeJ7z4mY54G1SnUHh6K57wloK3HsMxHxF3u3CGyG7w9omq+AU/BiOf3dbvSpffefor6M1BGoSTrjG8xeXVhwu3aAp0j1KnzNl85e9YC1me2b1qvjuRCuX7U7HDSix057FOKutEinXL6dg67PAcGFXeCivayqnj1JnDdk2JBXzNRgxUJlZ9u1SetAXmXaOSuOtatT3D0gonw7gjlWb661O217PlJ0rRDm1x+GGrRjF+LiznoV1kzKUNZX4NwXh8mvztr20GJz1qfDrUitgDW49s/xmXeX/u+OY97+fSRPV+km8NwO17JP9p5BXef8Y97F0WZ8pP11VJ8/ostNOY7vnsiIj6m1bg/v50ULEA/Y6y4vyr3pN2jE/A6s9bXAidZMgZHBZQ4X5FHP2s/q54yX9K4sxrGEmkv3V7fP4H6t+DoeIvVZ1JuoLJuEA3fYG4LzgTrfx+8O/ObzTLxHvaWx56tq9v2KTYMv2u3eWXRZ568Xtp/O9vbXnyqGbeJ4e9GE33Ra9HdHfD8dDSycbB/3D3PSqXjcpkUr17d580Sel9Mwfhf++s3++5+HM3fzZdTj6Xw1z7hp3c31AhGAfyrJGA1VCIOIXFkJndryjblUOG5HJVRe+s/0fiv34R1qA8LzDWPGkB9n/f8/dtIaG8mCyWg32Zi4IsXJpNLy5LCjuRpPRksl1embZhJH48f2L6PNgOzb1ze57eHOs6Rmis0Al8gyBK45zMUrfj9GizRvWaCrxH7peFwsjWSRHZZ9ue/BlsE5A04FsM4DXCUq8PSoHbd0WNtqgb30fvRw+KyITrgOvxLQqkKAU4LVJBl6UDFGTFsstMle+kDH4D+mCs0qZXD1xpr/IFgrlya3rPaqS41v4vDSIlyjRAhF6metG2sw4zGLUwVgtXRwhwzK3nliXyXBPzWU4B4oP5u4vreM9zwhRkhgaGdLvlGFRc0plom65qnVvz1bl14eMWqF9SnAf9Zw6kc4+CsVSgaaCLfywKPONAMSi9PVe3rmjvHNRb52g+2Dm1YKoHFi9YlGL1h9a5IsZ3TuZBrOVT+scVyHw8ln/hBsbKXCOOm7zy4xybXHIGcEq8DvRWBNCXth5ffq+moCyxWkq2BrzgTMDcc0NcdBFSkbACs9fKnAbhC5GTWlLkiTkm6aFwHM0lqlUw6tE7IqSGEHFCi4kAO9CJqOMb1p6jOLDXsvhMguP1w5oFprUiHjDhlXMrr7LXOccrfunnL373vw1/pZqT8zSn4wJjMZ2RRl9c961d7pNN2/pwkVJM/tfzoX0n99MzxrZ5tckFkwtvvSOVCR9CtL2Lh93oHOn3y8BLJ8RWz+iqhq3qPi6u7sUet4mJYItyZfoep7DTODh6VzOfcoljimVV6VLTPR9ZvOe4VE+U+XtwNynOh84fodnT/Js3fn07spGdNlK7QX11IWHrRhIgfxKUO8M/FgkQLUqK9zOyUj6qTNRxvNCQdwM0b8dlEgYRUnZghLeFCPg9vvJw1V1UD1x+PDFaafR6pm1OWf1OeHbhCG8wSI097TBqccwnqh5a3l9tBNHEm2ft0oOHu25/vSF9ov4JRUpcPbRLWtY0eggp5JtG70VS8xIVH5WC8hNZOX99a1qd1/IDvnG9G8/jmDWM3+DZuZVd4EN7E4ny5DSpxzCq26t6egJKPVKqjnqVbPPn4BZ6nRWovhgo/9x6CvG98CeokdpA6uTEdCBHCJOqOICKezhEaGVnJABgMvAOUg5M/hGCouSrFNNsaY1Eg8bOxgW7WnHxNm2yEJmAPtBqitEtjrsrlHVHEDDMBg2xVF40rg5seGpkhLMYer5Ik64Ez5Fy4roXpOTR3CNV+6Ah8AjCiReKk2kuSN+9bjj2mRZwy15i8STSWlyuJAKFLTxKa8+pIZ9YUKexOkmraNeTP5c/BS2di6ocoAbBoB3eH86JipqJ78bojF42QgaPO2dkbvuZMPacM6KqOjkU37q/tCwqao7bDVwSRvimtb8JMi7f+9tGpU8LPw3t53r9iZjhnJ63V/7RgBlQep5dGp5BB8oOzGV3oPzdHah4rs0y026lWhHAzkZc9v+NIub8ZBx2+KlKwzLgyIxNtN/JJNWA6znF7ofQ1PjgNHXN2wTXY86XHOZXeeaY0H3O00NnSo30lToNqXmq+wGd2WbvlYvymPUgO1A01+QfmcMzhTKXDABq89pa56AdkRijfn9WGI+AVUUb8IG4B0wKqd28ANC5dI87PzLjomx7AnGrBdDNyv42Tam9ks+5tW5NnpZmzQxydO4Y6qAsfL5+DTUJdWiX+PZNowwU2h2tVQzpHi5HN+k9YAYHPV5Xkmprl2+zGY6TqTYzhoayxDqw4TBZw8hns/r+/Si9EhksVYVYyz3lyKknS8ciB+31YOlLCWELxifVzFV8rdYgm8RxlgKxzAU+gFxBeb5M81Zoy6xbFDbHSgLft+XRT4XuGWgK9VOQQAxV8GkqdM4+mxcdC0H1yt2bP6LFnfi2zYhATTf8Jhi9cXGP2evefeC7kR2Fga9xf7F+/DF3g1Z+aDgefxO669qf6Yo6/vy9Hxx0B2zfFx31EPTuSpRYLo4swQ6MWoJXCgYJqdoiwhqcRwm0E7ySoMstp4jG1N3IzltnlnovDQhFQQWfnUXdT4ipx/4VLIhO6RrEeQib4Ff9iDEpzVqDlHce+14YG2EF1Afh832M2AjOaYEeX2CuDa8dcmVQFKcTkgpS8wmSSJ230NM0jNovDZU4lTfcIlqsU42hCH58cI2Xv/l99LPjeYGLvF9NCQrGZOUF1sXZ4fO73//1NURikS1Px8jqi07HNZNOneum0WhCa/8IDu3dGfNNbQ9v2djUDVJNhgbRE2MTA2KczqCCq9XsYHMk6nWajT/bemneKcDW8KNYIrzKGca/hadEuyxA7G9AIVU61Qbh7Ii8cPYLmvI7PmD9gGFoujcjvgd50Aawb2p2FX8BbZi1unuCZf6L0Ck77gKxc5hWmJ8D6lVdrwiufq9YXKdHESwyFFp2R9IyYNdRQ9qrc5Vygtup+Oem+gCao/2o2it/dK777hqGP2Q6ki+Lm9xOCSrHB8+39flNKjaxsOXP/vM/cv6ZFLu76uRR9d7b3Q5E3T4mmyc8bKPp8aBfFRwWz/f7g5qdmQJAzU71r9fdqFb2fXN3T812f0+5aNQgXoKt2wF36y4GS8cTzLorcLzTP+IlCy2q/LqQj2/7RSryNR3XjzMDPji8meR42i4B+QbB50cCtgb1By/jB7R2f9K8eW9PjBAg5y/raFBVd9HkZ4u5YqDgsQDEJLtArYwqy2daZcbkjplV4q7EmtoxVZRxFBsjZOhMF+EREhizUoowO6l8HFWTEnrVneknYREZIpIzRmAiDCgEeAZVTCmktrzEdYSsn9V0BkZE+6z8lEyfFjHisYWAi/E/v9smMX+SN6LaF9PS4/Pf7ztw9bnyjK4c1bgA7XEMxsn0oydDbeS78vK68aEPQGkok+Bzq4t4UyArvsjbhioDkBJrNBLz/P7z//58PQc6jEdpL/X4+Itnf/mmS71gBHYHH5Nj0QV3o49NE+usA7RLkhgTyxr0SSGvkcS/h8FYjOMAUo7pRn8LfaY6/xWVr59AvMavcAbQCN/SbwggcJp3Hm1e4bZyukXoyRRRPAx8ZfLl//jNw+uTkJk9KXFTV1OKeQ4RtNeYH9WGU+W5LfNgaqL36u00kPlHYKE3zkSCkek9zVIPUqPmVFxEpCa11vhzb4DzLRdaH9IQuZBBZXxCKgV9ZbAWQZGgF8Zh4KBXqFnZHVclO1bVLu4cx+FJGcgdwOXsuNTbVJULw8ld3CWodMItVyxDSlzrL4IJiQyIl0ownO0IB1+cxFSI2nNhShsOLB14sx0LMpvYrhCWWs5Q75+BAgWeITVyPYDgyDLLNBucLbUz71mdnFjxgMFE3PYZxXJBG9lFe3/W4Bjf1nNGRCsh6ZyceD3GHYx155+aRD6o9VhXq2kriO6W71hTzGL3zexsu3VU12NQX1wtca4Yg5SB6DlVivL8iVSsfCeZVyshD+ywvyS5yp2Of5KAWuHEPBd02jm9GnZcootuZyg8le7Q/GkOKPum0QpNsbsmKFN5hq3Jz0etN8HMtqMmzJqHMml+yKOLQvx1RJvAobDyc/4sxGekafE6TqPlmx8oVNqA9YovMPgMPRJRQ/UuafBIL3atjoxGpj54Er0Roq5vtjkTHSIP92EYxhpaogKlNqreYlqKpk1t40fUCFJsIbNDsJRhz4K0+IhBW+YyTQWUfV5+6L+b5bb2cKwP9GahCpRmbSATCJQjHCBuYujQ6WpKsA7XpZNFch1USRZYyWz2RWLeRzW3gKhGCDI0K7ffOV9PhRJlHQMPFipjJg4hSATVSAXtWyJxiP2/Av985VMQwAmrH5zndZVmh2722fRUHHunTEruqn541semaUEO6wJmSHEo5TX3ZQhSyRPIN6LAP2sZUuGKsDOxrKEfmZXVunbmhhLWCd4WfbByzcZ20FDUDp1MJFlnM9GV4rxIalA6qxCH4ho2GAcYccnLyi/jUkFgqY5LyiJ4MyHaxQrXmhcAZ691Xd5RgwanOp8L6pquYVNBP9IpECXTPPesqHrdZ1RPuTdR8VzHaqruWvrGCnxzZ5MJTRgdbTh1dCc6QG4DxvoZS+qnSDAk9aLViUVVDQn0Tuz4oKKdF+Ddfjg6ErwuefG+DhTN90L11nuOOReUOM7c6I4sOzpebHX5AEOoF6sY5eZgYXU2k70MNbHq8IhF/BoIoWRIaEr6u8jGxhICi00s0B4RUCgCkDfApUTEgaUQhZpLvETMo8NIhk8dPfLYjsJT49tl7ecYeCy7zf7Z/Vtvg1O0ao36ZVGm5hx2VuVs99oWgtQ7kfw0vtaGUwGzAq5Qe6Vn5xeyFKXXpBYr5w6s/JsWbCJqIBBt0J7WukmNIgzlUAOunbRi7axDzlfgRbBhS+nQQlyp3wRfcKOXSUsBO+vn32b2n0bFHSWX3lIj4qSleKAnL1RYePP+2//5QtHAH6flsBaetV/Kya8hzsuid672S1vtH/6vvwr/vDUTNjkNUzdUsjh1+l+Ynnj1bOFDTJuv42XV53J5Zff+TYpZAXwq33ZN4gVBBtWvCABMoU6LGDAs4EDjGCeOj79Y/vkFWfgDLKczKdP/80FjGeDIGLdXWVz5y+fPP+VnbqxxNNyoLyD875NGOKvaELdcw3P3pIa5LEfylRXPKQl0efX9p8+cpUsAmivMOF/lRcCk2bFTAHFGgzPvwnRkT1pwoSuFdEi0woOTGL+Jh5vIRHfAipyS2XElpDpQiS+BMetPLgJAISs3aLVV0ZRLfPmvFFm0KaHSzT4GRW6MqXv/B6jlA1MQs+EEyGEghNovANDUIS3AoGDHc6oTJFTNFB1QQMAt6KlO3D5kHGGN3KnBAa+RJGUm86rH5XfEJD1lU2GJVjTKNYyswzNEqUQeJYB48m8neY4q3wnvFVcoqGuzdgbQVDKPiiHsBdzgwPPazZ+yruaDm0kIlmOIhzYlhMPoOktI4+rhwpCTXb24k68uHS8HA0t0F1xwe3CFlmydqJo/xXE+AbfMbz7/ZobQRsN4liubPT9vFFSZjYAPf8lpr5SmFstJfaFyMt0/sbajouTQzz5ln1kvOnB/uFnjIGW0x4//OfLfr4kP5DhNhxMENWNCrmKZT/NybU9Vws5q3rdqSAl6yFFtjrtYt05W+QyO6/pRReCJxEIpiVWfXKKRPBoavJCOuMmHjmW3Koz8AC6aha0Tm7MV382u7iUmXU4T1lYXwlXqilmoFVYMyWxGE8rE44dvXn6/FKoPFFNYLalKVbCO7dC2wPpWZC0MxKaYx7MoY+ucoOltoYPPNAtGwiCAVc8ZVjbNyLchjQ4j9qUk348Op2bOUqUtG8f2hkIa621uHQKOOD2QTzE74AyRgG5ptr+24/F7+nis57DHwewup6NEnBws+XzyiZwf377z3qda9VUfh6rY1meuPbvzxBPWxN3B8L2TtBlDInXEjKzC3r0oQOD9IMMRNkohdfLOC7ZJxsj0UKxPrSo6rGlYaHay+ekyt8AvioqgJR/U2f6EYvXjl3akFRJMOx4PYyHd/M5kbeH+9Mr3sa3h3MbGfu/4pHrYhCvpJ+pjhxZ5EGcHCinmX2460nw82dxUM6+yra7LGqbzdM56qNhGzCfN465Ds/EmfiPk2xtbZ2EnLM2ewjRzB/lOsSiaVCZhe1WKjiMyYBG03cC2Qd4Fw3R1nI7y6n+inOi9m2IoLI/XNYs0PMbNr66s5huu30sbPZQMKoHr7eRCD7ixqB1lDF6Hfm0X7zuai3l/LWn/83A2LqgPQn9N0vScb6aHFoaPTgcu8/nFgAaO1kuwvocCcndbIRyFdSj8L5Ad6OEgoaATXw1e/oMAlZvWOMaelCyoCMon0iRT3WoUQDKkny7TxdkbajNzPzdtz35rG8Ri+DcFEXIvQk8B+RVaWM+HT1wmY6rJ+AQwJhMdzMgBNrb0qVR/E0yaMwLRehmO6nQTmpwxxl1VROp3JX0hES/LP/OaGkPl+f2TQkyboor5Z2g9WT8NIBM7C1ZD9gzxA1fKuj1NZf582R+Yoj2T58506FHibEFESQirkCRR6ac6UHstGuUwoKyxYHza0KQVy0t2wXW6p+ZodNoSU42LlWtLUzn2zSX0jSONXsnFVFoZkj9I2BCpocb0tDwsQq2tOlE5uB8gvUdXS6JeGGcjh4tv/6a6UVNjXo1TmOWLnvMouaoHB/hmvlHGlNjUMDurb0sjJqyQAkVaoNs4GC6zAxvBUwuqxS+NoW1c1SgUOmQbwT5taPfTzWt++HwPCinTNmrf9Yz4ReKGYbEYfv3j6loHysSgkqQjcxCX7Fx0obmKLSCH0XHQL9uqRE9Bp8HZ9SrHEeOxYAG2QctdHwkB8CG1EToVhhYyHV+X9UGFMPbxyT8/tzqlBgbcbey/EzCs5hmBRE7osiWpnB+6hNBc7fgsfdyB+CWZ4/Nv7/n9vNyRwQGJ835ABIgVOAD7p/E9j9/p338cGUP3j84ujRIBzbeds8lqBcx+gR+aBa5wOnlTGusY2dXNF7666LKIEFu4ueKbw7Z8iN+BQl0PGHJaWgQhbH+/LzKhoVelEQmGqBZwXogQ8TY3y913pBvA7SFdII6pMDxDdnz7YD4+afEt8sU/fuauSiaODKR4g5vY4Aq3vDncS/g3fbyB1gpGXx9XhEFffmnP9jlHcO5QNTLp/WAVAozRivyBXJypGyOfceqQQre1I5+opuN1nnOEQSGgbQyAjEXUn1QP7W+pDXvMh2/AUbPemZxGtSlq1nV+SKNOGCKj5n+1vWaRWzemJOYqeB7AE4/7MKTJqOWYBBXhHqfwDnPrzZRhJMw84a5ZKUDmEKOfFQMFJ16fGGGCQl7QIKrYIAun6HzRwNHqzidYtkO5sLsnJa2TSSLkdBFdQ5/EeLnnJtojO+wj2sACWeacK036+V2cW+eQI1gU23SCCzBs6O+0cFYjoau8zyujAsjmQYRbwpPz2x3+aPLDybi5FrW76ut75mUCoQe3AkscdZ6FBRiuXFG0rErNTagDD+vFtfxV7ei8J+fLudJ0XupbWHKIMBPIPauRWl55dhoioTqtA1LFtDKa9wIEMLo/7Unt25PNVkk/itNGffHJ339TjtoiGMajW0e2V87dNnmH7bg8Bv3ghHgd6NvjeFdV+ND/Un5PM8zoffl1ix8gsMQeoiWTej+Mdz9JtdhUcuzrKOq7d6b/lpF691v7Nm7Ss6ePM84Y/zLik89FDTrWtcNnqeHkx90CXp8v1whjwdZ0MM58ZPf/YZMe1MO4NwyUM8HJCUF6xbjOCYM44sDUSJrM9cnYLRyI+4juAUlJw4W43q4IzJOVIMJQKnxyK+FkLiLUA07RmyYI86rUCuarSqlnBzI+8nvW7NAYY1DnG2lE6QZdR1sxPpzADNTLs/OC6WaKix9Hwo8WXApocFJkWOlfYh5vhA4E1hJ6JcWyQfCLnLmhfQFL3G1HFqRxrhomVSFz/oKilCTEnszjuCicOpD2IRiJJSJ45RED+kKCnPQTiwYPFGmiLuqy63uNERN7vF5CZjk1AStTou/1yK4VoBChMQHPenhDxco+vZ9GKtDQnJJBhEyDHplLyrYH3TQ5zdGU4LbqKVt8Ijm62gahN/6/7L/A3es3O5jTf/1HRaw5XfTllCRI5M63rzij9sYtWBds62KzPmNG7WXrXO8wGUmwZLfxiN0+arL7nd6jKPqlcuMg1oVb25/rIc4JQvgsGW/CZf6yAKYhyMMqykMhQm5ll8xIDAx3U487aNoYa8JJPVpqj+RIKzTe+BDDC6Ph25v1GTMaLw/f0jtOKeZxXNQutQHdPsvncf/pSFNKzZ5yvVH2ou73RJwBTdQFdhB4e0Ci2uba8HWX9MJDDKhKS5R5oi/oY87oqcAzGzq6V4UVtOebyt0Chd0QsmkeyamWCG/chXsBufVmPGNGeNmt9I7TMhb1ngHlg/pzJCQt336H6pD+heby8LupbMA4/Db5pw9431AOfclI5j9VdOcrv0ksxusWiI/5AAwY0okJNxOe8LltmQo8z1XOzXgyhuPMU7oRMjeuQ79g6MPN+owZmcv6QO84JXMA4AYDsErxonYVq3KcqjdQqZXBV4R3BkxyXdO39uHUZnLoRVoboLGlI5P/Jq67bvtKEDE6HZ7319nnYGhvCMZsVF0XdayVh1h1HAR7+n5DNQgN9hJ2GBKVHTMOhEr8yCataJCTI0yAAsndseHjFPDxcyHMJ6sw25cJ1g9S1fA7iIA0ClkZUsTVqiKyR/GTM+tvDq/vh2AriRCGUJWqvFRsWY8gF9CfZKVfAlB2SnQzEM9CDAbaqVRPlbeJlQ6sKJOUeiNpOaxR4ThKU/ZZacwJWST9BswXJyiEaxnUftFEzgkDF/vzPi0Iw+ylvjKfHP1IryoGc9cNm++vP/l3LF9rR0VzGVIX3eLZ/Iyi4u6lGfmkc31zy+BJVQ/btkbfPsf52vXc8WtoDsFZaYC8hz8oDPG5lWcUfjVAConpYjXYe5Aj7ueOmj5kWoVhSm+kAYzh5xbn0GgiEvJR1UpyRAm2Wt+99351MFSynwypOOvWWrb1j0usmvsMpw4Mbt7rSbt2Nh83+1C/CIOq0gHKvBSTRjX4C6I9XL9ZI4JIvrloqF1Cx8fS2q2hv+4qVyisqLoROXAd8yhHxoNcWKtWEZFVhem7IH89VW1rJuL68Q+EQGkceAFw5iMjV+ZwFHuR6zPK5kVJeCdPvVGlyRqzUoYA3VFLbV3aJDp4EVXr17pLShCoxKqzg9SDXYiwgZ2SqXIavaCwW4ZaTahxdQ+RyiKCWECUqyFjoVx1or0QAkKKoHtcaqDUL7qjyDTqpigQLmw7bfZs5x1KbpS4HVzdnaRdmosZ7l2Us2yN2Gw1SCCC8BMgYMQHOoIxKQUs/I08SViSfodZGgfqpVPLGvXl3ujt/AhPPlmujj7h4OP5VvdLnhw5jWbe9mwcHpzxjA1FtBo0CPiWej+EoxHlZfXkNFyYOp611trH6ldsHadtkmLrX+KQj7PNzvHp+Q02TPH4k8sPYaH971BOqOdBAefHi3BUhIt8cd7D5PvFj990Mji7umdf+bQScH2Xxl4HHd2KDjYYvUpdiAZPlZypzswqLQ0szeF8f6gioeVhzHWLnS6phW9iheQ9TpCmw6pRiRP1PBj3Jj/9vr8+I/GiF26w7G/v3m/K8ytRoBtZREd0TUioOLle7e6PNr6j4mRx7cslUxtKfmFqYodB5qYCI53Ck7rHgCHRa5HBIpMbpcs5akV7ul2zdWcdoENi5uj9UHLU4VKE9So2K0nIBfasoO3fA+nEO97eWTzKo+rtTYMZl2QXpF8TKT+MQzkeRoHtnOD8hng8gaW1S3aNICCEBwSoyHOaGMkFAQDfo4AArLqDeiyy7xSzH99AmdhYw5KLR/927jRniomMSITo9ykuFs/3ydHu3kGXEeeb60/mBjjIqQ0B2UkWI5fARbE0VGXCAtzMHbcYPRq058ClmMvkBaX801PpQtEJ7DqHLDeO3fERBXqD86XyjAc5XHPgaNtaR1ujSZJmhDzPORQ0ZahfhOGq0iHKvOIVmhPdgZAQaW6w5k7DpPZkL226G8hJ8yDXPAptXAJlHHVoi24jnXDqj5Z64MPznYTD8f0CZQaknHoZ5rS56EkIbkcVsLJVQDBBopI34P6pFmVi8JfERnF5Hu3fTZ0iz/b76x8w/SQ/++vZoOqNcD7osbPXMHi6s5dKekAMvfrf1s03IlxJpNHO7n6HfW6sTkAMHQxbXa3gjUx8N7uXPYqnHqpniVj7MKlOhePybejWhY9rGjoId8dEfYADY8RKyboRueXdcHUWYHnd0V/Bkl7DKHr9o/46+xXgp4aJgAuRBB3BkSzqVsC0AwYyNwQRWaA4GZBj+n7xAjtIiUnfuVtKunLhdIYOGvyHQITSVKP8TWRpJPIAnmHGRygQY8QRjoMxSXLpo71hSCUK0tNzmnXIO+Q5aha+uTBcnTV1zMK7laBLc/3QMH4mmFaICNlqm/zPtVAkQ+/EHvsSqRXKzE1GzPzC4kF0Sbsi2ocOFYHUxzk8UOTDBfzAadmKuokZqW/NEkoVA6SkokPhFmKGkg6V8LFwmzBmILiuKKsgL16PHqsKF7XjzcBnsqMTirPoUHvtOqvVLukEUbcDX64EFKnEC9tT35LptgLbhnY9a2zuz4NBmaIQmkyNqZkf1PuGBh6oztGaHA1kIMC+TFGfCBrR4DgfahGq1FU9wkRpxZiwURkT2xWJX8w00a+UWogcSG1NuBAzBbD2ajatzboiFynKSGWAvbeLrGsDPwKKXLITqOUp0OHZYcyYTnBFZdb3CAlinoTfRpciTJ0ndcVezKHyfzraWie/EhKuo4iQWpP5fhTod8NFW2Gc3alpv6luoOkPKCTQ9CUyyAkbUa17gFIyJ9PaZeTTwMfJx2RA49gHtwecxqGGHMiZSQIGM/hJgTL3QazZyfQHU+V3UsAQEP3fF75o+psjphaG/5kyXmGY2mFmrLtADop1S9EwLYM9Op/l8w1nJU8geQXzENrccjeTrTdMO+AJEGRHbk4K4w2A2aNfqbCWaLPDUkbhOZIXEMeBJjFQInnUUwh9AJUnugW5M3opBZwAbspQVSOH6xR7xnHaINXy/kVHSQi0SvgIIZrJ65n09YNCic3Kg8jtIHCxVjBQ4BnWTkhFVePNemqoqt4vYh0wkVGLxZT2y//9oLvuPLFhHz28wCdTbb4Bk/MtDacquPiAZQ6T1myOTEoP/hdp/Fo2tqb6su+EueO//rz4/j/FfpFxBP6A3V5ffpqHug/VNEvQIAHrMMCaZisAwGxIuPwZPe98KvziR0qQwfc8/zX50in3PReN2yWP9R9brx+8Qn7maE8vrR9YzYYuvGC3lHwGAGzCsz8yPB56E1hwsUjpheGd07Q5xk1qcE5VxWqebYrV7YrF6Dfopl4rCXxHGVb1bpWfl9zaprk3UttFNqvZgq1SjFAJAaIY1oNbUh66z++Mu3REZsB9ueW9MhfTnH+z8FX+jVm9qvw5aa1TvT+YOVnmDgnas/W2zCyQI8evopDrTep+ZdyI/EuImvKpS5fMuhIJzPcKiXqQVM/hyQWAj+qCgIRwovwJybkd9YYAtWzaSIw7Sba9vonvAeAvM3+2G6UsonyEw0p5BMAeV7vn63eIwAQJeYD2Alf8YP4+Eer3uJbSGoS3bgtJWdRiSgUqIgC9ftAaU+BxnjUAyGTMwbYzHiSkV86btcuVEFZJMnJDGflT9EqQInAauIq4HbmPKmDUDQC8o9RkeJrkrxiluvJ6geBqIbgRUyqAxN/9VfIRQBHADAHcOmWnXuzQt0z1Qv6nxi4ho4TRQYrsbBBIq1ShWeLv3ibL+VsA7QQBe62Gg9BYTpWJpcYuAYmDHKTIThYBEhQ5rEeQbYdgYlq7pKogagLwbgw7HHglw35Uw6oMvAf4AErRuyFi9MUkCqX5RgLUCQLTCK1nWTMJeqQJQWBphEHoNwHfKFuHfrIAAOy9XeQWhJoDU3gNpmBnTm7u3AYHK2EAQBySAx4Cw6GRgAh2Ezg7MwSSOCxBCJiWIIWskqA0b5CgMcQSvEOGETc4PrU80iOQS7yKJ5dFlkquIBQ77aspqz/LoyLg1/aGc+IFjUTihBzQhfUAt4mNpyDKsM7ZuHYOyDVlZYbamZu++Go8bmaLiCzzUUpsSktLiXzqzYOUcvY4pbF6gI+1JRDyZv69A+AUzOEqiRgasbH2OiP49rN0rl8NkGN/lmYu13NsjLHOWZxoI1o0eukw6aHQ0lxhfQ9lqeH5oh5TdGPjeX1fIh5jTFEuiEUb6EHoKBQHBkYYWcNyyg5SUJQAyMadE+BTMxqEjleKOYG1cGlSB3bOGMShB2SihQZCTCqA67wchDUKqnMN/YcEkiSqPP9nwm8CZQMLlAPdW7qr+xY2+D1zC+Y9DCynvlxoGBWJXyOAQnZUsMR4xHg5OtU5v1Z+zD8Uw3MuuOSKa17wkle85g033HLHfYD8T3r/7ARJ0QyfFXAAai0KiScv3nz48kNGQUVDh0/zx8QSIFCQYCFChWELF4GD24LhVDSBGGCx7P93xOIlSCQhJSOnoKSipqGlk0QvmYGRSQqzVBZprNJlyGRj55DFKVuOXHmhIUstc9J6b3VZablt9hiu1eexJQaalOq3QY+z/l9muwm/er5jymUXTctXYLVCVxW55IobvnbNde8Uu+OmW/Yp8YN13133lPrgk17lylSoUqnaTjXqipk1lPtP2Gye91q0mm+Bhdocscsi7Tos9tFnx8zY77hkPfQovMMnfMMvyEEJatCCHozwD2awIsAsBzjEYc6Z4yDndbN3gU7xvwVFsBULqZSczq/9TjG7WTRvF05OC/ceH/K7ft+f+ws/8MIld+DP/YUf+KEfefHS3PHCpQXysRg051Mog+/6yMd+x/f8rt/z+/7Amy+5TupyWOlvXe8X5jWUDqQohsyLI/5Dw+C5xPyDG47wL8sE66f/KlL29nPYyv39HyDZexputo6ZSar/J3TYqECyjwSYiTFAzu6jZAxO8n9lP1KxVA6SXioKSS1pGcklJSCxJJ+guu2GwYOhR905qbpBoVmqJWQWG/edcKZDiRzb03sfcPW9s37TNwlPCX4B+s1uALh7AtVdz81M2AA=) format("woff2"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}@font-face{font-family:Din-Rundschrift-Eng;font-weight:400;font-style:normal;src:url(data:application/font-woff2;charset=utf-8;base64,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) format("woff2"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}@font-face{font-family:Din-Rundschrift-Mittel;font-weight:400;font-style:normal;src:url(data:application/font-woff2;charset=utf-8;base64,d09GMgABAAAAAFL0ABAAAAAAxoQAAFKQAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4GYACDEggwCYRlEQgKguhggrZUC4MwAAE2AiQDhlwEIAWFbAeFJQyCKRusqhXc8R4HCDpLMuAOw8ZhDsZsO4pg4wAQ8d9A8f/n5MaQgtaB6az2TxI7YFhkrHS96nh3n8VHO8jYuxI3oaCtG5xd3xFapD/SvxEcwVoQEiZDd1HiDPwhBx96KOSMgp60ygNPr59tXORAUy1BD7YeV2abNC80ZSnI9IqO0NgnuQP8NnsiFUF8iII2IqKYCAYGkiIlkioW2DErMHLW1K2dm3Pp4jbPxW1z4TJut/B6fbu7Xfzb/t38O9d/+GUUlHAJShayZhBMoBjSmCa+mXnjS/mHnIt2i/LtVnu2267beg91+m/FQLKiU9wQOOUkveZUUuEh0UfeBhgBhz3T/LfHw/PH3nNf/LC1roFSZCADirKBRtGsOApkAhXgA/zhf/r79R5Smge5mQt+w28RlQS16cV6Jl11wEttzXe3Kncqp6atx+OJXGCnCCxpAwcESfXR9u4l3bHEhoKBYgcYpN0C3+d1k/+dy/xXdan9kF42bnvHcnYTFgCEBtKbXTpgUgKVnDpn6PJSIcRhjHIuL3SZibKXfuoT5/n3B3feve8jpGSzWVcoUhM71Q0rhNqAcU8Cggb/L3/b//cG4OH/01+WZGyPab6M1G0CGTUAFO1y5Zsn9zy9Xoo2iSbIl0IgKGi/371vIiyqIYuHRiJSKikvrRPKhAgyYVNLi6YB/z+bWjtf8tirlyjMOuKi4eqq49dTe6U02pV2dndOZFrJQDJCQM6B7KDOUWJ33oSrA66ALIWloCHMh9SGKhftQVOnbw6K6oq2O///y2lt7/1Vhd4vq0OWPXm1w2nCcgcfUBW/CgG/kLsbJCtxZtSAE0jntLB6xrLsDjGtZrNQ6BDCakJebDZzOK2k8pZvqAHygD5gPQ2wIGaPJGtXts538rVWrPFKW747veKHgRfYIQ5G8W3tbQJ/tcUthEcI6OW215rVwcTgsIwiNtBAS1A3PV5bN8kpnb62vxY6iYQkMgf/I0EgELgU9GR/I8Io7R925a/N5JbaKcYA8doQYGAPZZhMBNlr5JVYD36HOlengcDjNaFfsmPbmsyCZ3cFqsmzHeI/5KKNzWxnub1cIORy/IFmJPSl6mR3GYM2ZGc2EAQalMG7gbBy1RGIgOqqjRYH/EfafYQiNNdO2x2x2p/e3T8cmqANdGD3++86dfzv2c3m1Mj9fraaZ25wwyFBYqWgyW6VQPBGcxG1Lae2H1Y/Y8G19Y12Z3Nre2d3b//g8Oj4JJ+enV9cXpUbN2/dvnP33mQ6my+Wh6v1Zrs7gpRYaSPW+RBTLrX1Mdc+6DkQf5ONUPhBJBaNJ9Opkkxptqy8srqqpq62qbG5haq6v4/6nxJ1T/RdUNVABS+MAaVvLDzf+bB8Jdur7IPs755Oge68H0aWnQd6oFptoG9vOf31D+mvv//5U9WoyaugnwKBKoFAjVLUOG/0v95uj/2OW3bGJd+64xvf+tn7GElX0iYbCBYyNgmWwErpQe+gRfeWQ8ANmfDKbZ1b/9UPHb2DpVRkGjChX/Byg5z0DNs2dtrAlo1MwpZBq7HFGTgywC6a9Z79px6cUi/a/+r3dpE13PFP0L7lCvePzzRwJW560sCT4yw8GrSgowvTCpYz8OV4/M1E496BJCdRVcQgFDo09YXv1YMj2IVdTHCKuhEMWr/iF+h1tFJp7ZSX+cPGbBphvCVRJcIRg1jo1auvxoUi8MunLVEHty9skqXlxYGMsk3sF32D/BR8zE3mu0Ytm2iiMTadAhy0K5viZiLs7Vr3mam1ok+/f9iep7oI1hjCRHc+lRemTxcK/L1sz4jSYM56sKiL1wqZ9uLeKC1wfmeOoCU5GqAk8APUXSnJv4js55sPh2xyCkL+K30TPWf38ifdByW1Vl3LcVM5tRrDxubmsOcqMTAHTdLHfdKyCMcsLxIsblYeMdGRuEWIdBJQwF9qPgkpNFODlpC1kmNRHRNIKsP6lczsVArQJ+9ueMQFfspolaMPPRNc2cj5sdH/gMiQsw8MPrc0yUJBJAyqxV94zqCsmQeG3FMwrxQMbGezBQGgUGBEidDmzwyqyAv8rj0MDMbOgxVDgdvnB4MgqF02CwxBm1o1fw8OUQdSS7k/QDHfAW8DgAM8JgCQ5ZXXEisnSd55dFxlDBvDq/Sayj+HrwLu4hquCHwfkF7p0gMFl+9UaE4kjYIDLjRTaXumowFtZXcjSiKqZaaIhzFTBoAHHh+XGMLCrZwReY10jaLTAi0n8PD1M/wagMucseIANEn+3kYACMwD7gJELqhIgMzyvASi6GzM8zUrQAO4hiNZVIkCPgOG4WPsgQcOSfaDR202G9XUSoEGHM0BWs7RKgdqAq+KEyYgUY6W3JEBhhGgIgr0ZOdSKdA7IMIwak/jZ0WAF3FQlHEb4MAdTolSgQUESwBGNi6FMN0EAMNqWLYBGsCVXQCKwCKK4L53n8HZz8lPH+Eo5rjizZTvlRKmSI9rWkym8wD6eLDCok0J54X4WOoDHmrlpQRqwiuXGEYv4QRUf6bGkSVClO20nJix0MowTBMzDKwFzoaPtl5ioQq06RSFxXnGhibeS2QVQFayscHJg5h7DQAiUEtBaPkJchwXeBPpwXJzS+1+VH1x3TlK7OljHbab02b+FpXj6h0nGXOYd6GKAvFKOmRmsS7+P2N5LeZvepEctk5eKMUt4ELNTqtRVZ/5YJfVJoIEaiHGGCDFLohpZWSdWCUmVmh388uHcItrhASXkb7qRRNWowgnOt78Rq7FBWb/sr5wlijG+rmTEQLQOC0mzvviMbEox97VejhFeMQq72vLS4wf86pGsbZMzqPbGrgU1uxt+8SFHk+GMptiD+KN0aDdptXQhkgDmb1fl9mkVdEWwx+uDgvRgUjAbJYr+WC0NnIB9eF+uZq3vq1bMU1KgQtCNSUgXwhoqoV4PdWFkrRIst1WLR2ZcH0vYzO0xOkqfafAgU7htVxWZOb0kDsWO8+54lC+mLliJ03jMdivexcUL4Ea8CAVzIVI1fXdtWkjUxOgdVFKUeFQzRxUHzLh+gknJGQtiyLmE73EeXn6RfV9nq2zsDjq0Dy9Dprv4nW3vk6LbokoWjQKKFhL8xJ1I5+kdRF4CMkFi8+T/TT0SpLdcGf5/U7g4ytKXxQczSD2Akie2yuEIJLc3UmJk3Y8YjY5G8kGz2aIh2U9yR3n4HFxRwSVmw1ksMTsPIUeOl44gUjGqevjuo4qKx7H2QolKp3zdsJSRJu4ajBXp+ZIpmBRnSM+CDvqJXntxIA8y0L2lBtRSRVo7eaC04g3XzZKNY19pMOp00UjcqLxgnIlnXM2pSzQ+VS08yF9nuEMuJFFlifE0z4kVVShPOld9c7fXaQD4/WDo4SP1dXGb8JC9K2iUFAb31YB8Cw0M5S3kjpZ8fcxFH+3gWB0Q1SseLAoB2250YopLZiMU7DDf9u7kFNLt0ju0v+8v79iZxfr2NTZqiYZyXNI3koTuIbPZpUYVU7K9RQSgDjMYfo3xrbvOM4rr/QfbNk2y5kH5iy+nKj3mntcLLRlU+G4OEpNwFFUbKRXYk5NLubeST1RuI3SnFn/ZmDOfMAvssr59BKUUmXWyp0lHQtq3kUaWAQQF12r0nvzRG7vr+lDGuwbAd/6TPtBde+6ON1lSfCnbYoVOLYtZQUqFcvp8dZiUvfd8R1hBkEK3NWaxlUnc1Lg81ZbYjmw1WL5tOpGyx7A+oIc4tj9u5J0c8aObU77w6Cc3q5nQ13JT0WAhwmXHA9IzArmLKGCeW5gFXItoXTsK7QOahINWRuzwHNddC22bd/K2RhzFhUWxFqerNOnSf+NBWZ3LiNTZiKPJuJ9U3rTkOzbmpsz9U8mr2gAtLf6zWFTt6fqc1qc6NH9qL7FyMsEhpCSZkc7hoJx7RXcAO7pJOF2Fgm3P2XbVEsLTaN4kBOqAKbl5z9aLBvERgLIyJXMqdWipG+Oz3NzOxg7tk7T+Go0KKRMlRgrCXBCsas3sRa/JSThl2gGdELOtk4NoGbvx+jlfoL0c1gDC2tRDS/HozMbnwZKRivTDwteP9mOeXMzdN0nFbnbw07ikeGAs6xlAx4RDibDACgC9carU/BzDeEo+85qviHZwqmDuVaBw5TIHQOZmReudvV/IjMBgW0qQIB8pqU+FWYWXjC3yHb3dvNyJEjSWrY0nur2Mq1WjsesF1oEvBjG9dIKvMgs+lw4VAT6apSEYQI1BwCZPQKTe/oOa/gv4QhCANCtCTJPwKfnqxuTVpN7Ymy7r1KruKk9qvlH3cDxhstd9ZBQtOQG/OaJNoe1EtpBSbQ2cEtvurhbsatcDg7T4mZTHsz2TSxzFdnrq0QNgdtedNR0i4BKm2YbLVBXixPAFcRpuPZqCxi0Qg/G8FsBSABGt6cZs64KNZdffMdcBTb0aThCrFoRBX+nSs9NaAbvRrZR800Yt5CN482KnzfdxlDdv8tawm28VZ021oOEDvRPjeZfE0qXCW+o1QAMpAzVlJAXNtgpZY2H25HXYCYeAurltuYpAvzTAux3qL5Nuvbqh9eqs5+vK5xVk9Koy2KCkYoAPxCEriJ7AVYwejMtPsYzNC2dU7jlhtvHGK3SsTBKjZzxuhQohkubWjk4CetceC/kzMLu9kqSiAt6o8gvEbGLzKnmsxWYINcw9vdnZI5uU6pa9NcB5/XfQRuT3F6MT44DsCMOGyCxNodHHdTQGTzrHHEoS5LlyWFLoI9nwYoDne6NlLoPQhLCcFW8H8CiWkytpqtez6ZeFY8MB6Tqlj3+3nWfawVBsSLvw5SUsYWRFDBVE1AC+cknla+iPK7EGKDE5NJ+kkcr28gyqCHWrd7nVboyzfvkPu+1XiCFPhnh1bbNJdOH5QCxy4DDkq+Oj1F8UdXHnrdcMqkzIzLRzDEtyM8mXBqAntQFD5lOT9GaeRH0kTANqFwb2d4RoyOKgLwpOWN8svGwHOaj+bw1nwpUuymEnK/xXIGpJ2Fe42tOhsD36f23R6lZYGZnOUDQ9b9ip5LgmQzSIlO2yXEWKJELm+RUOnDsw6OXZYmJWGW5L0KsouNSIJTexKkhIcSkwQOKbPlHckur0o5WyYBST5UaN2T6RkQIvQ7p5DF65IBuXcDrsui9+M1QJTLd6ZsqkhwEtNtOaUHmPtTSAAbAMvp8UTZdYHpVHv0zSZ3RiI30YvE8dPh4vZzqb7BWyE+Bx90vB6khLdjaoKFSGH/dV+pibU1Ob4ytsF8neZVczEfb0fdEibRfwkX763EUr8VcTFq78BmZp0hEfFN88TVH2zYfdBod/BeDv0Ay7XfWmXKHsaf+xuFCAfjE4qT61HD3Qxe6NaEc9RupZixqZJWgI2JvvbbyU2MaVZYLYYB4kK7JOaYCo1TLhO5ao6fGv/zgfiONPXhpmj7jrUn11/XOXvWjdR+n+jIlS0LEKgbY17vxo/+Q7y6E0KIR8aixUWQ6mmPpODPIk1ShvidOyCwuszud+iPgTJSrjvMWe58lWK4XWjK53nBjMh7yoLF+7K5lgW8A3KWUEJIpACxflnUacsVlL7+MzZ8M6sa0LKsLX8vP0d2RO39Rw+3up5I4sVaVHXgQdMAXF4BqEd4YhJzThl4t4sK0KHNrD/yYPi1GOJ08LW9UMYPwmoGptwf3ILgRb4aUhqoInL43nBuu56zEWzyVDp40Ic29VNqyJRRzqjn4jwc2fBgRwg/i/e/fvaUI2ChoNPNZ+5omNHhbSXgJU6HyzYVTFRXgCtRz/swxqh5M3me0Bal7nvS3D/8sudi3qOTXzQjCihdm7eNMo1ucvQWfce/QKsciwopKuq045+IuQVPwPCMddvOnmcJbgEKnhH/hDpVkxvTRbfOJn3k62t2EBhbxMV7k2wQOtR+0Roui9cJi+SJgDHMjBDd9OJyb1fLDB63nLjKdsq9hNaP4PoguixE/LVqNctHh5nqKjJ0Up7ktNGZ1OgmqcJ02jTCa+wltrD6+4qQ4zMpPneErbBhhbEIcIaunGPuCsTVTlyL8aB9PYeK1AUepNCGQOW1+og3XQQ0k3txk6DptTZQ3b8PY/olCoNSEgI3WcbMSY6safb3T8/CJP+R7X0P8nhe+KNG7igQDJlnnnfpyUvDSA9WwiO98kA67zSIuByoCnP3lbamuplwHj0HFXPvp7emDb+dpIyuPMWxTlyLQy7RQ6qvm5umJPlQOjBcfI4f+sJvLgo6281oJs22usOOkuWvNMeTPyKaHE3Je6B60qmbHg9wx+/KgmwHtr12ovkH1Oei2xN40KfOHCx2aCeQAXjZJKqIURk/XzA2szW8sxDZ3Fe4xhIj2+xl9buv/ZT6DD/MBoI81CWBDbggOmPSZWyOXBsAYNSVzNq5CclKz/SOLznpzulk+qYrYCkvafj+5NzqwyBePUaVmZG1zE8p12yGtZkRXBW0fFruuBV2kjlGF1fYmbM7Tz502z7uYqGEWf0H5iFU2o+xjru25bq+l6qm6GHTdGBPkNVZP7e50IevQVlQPLmfMJfczcjUDNSQpHjnOBHLTOfgPC7Kr92xnmbA/cB4xi9y3MFO3qADL7LS9E2PmrvPZielVkczOfa8dPpfPPebJxm95njGg5sKKmc26zWYUY3vw93DO6jSYpBkcRxOuNuZ+PUqL454BSXYFQQIxdjkmJDJi1UT7gDb8VEbZl5tU/OLNvk1QZk7paDKJP2P/ekbPmKPUcjkF9hVpnsudc+lIVNcjvoCgD2OXl0f9GJFNfx4runR1nF2Ae/bbSKP5Q/vBwV81+LOkul/V6pli/Tzx8kmr+LavF9Zdpiuu0eD24fG9IfK7+MlsTeUwyFGz9SC1vQ0eH5V4hAB0aN2r7/8Nf/rGdADMQgX2E44Q9gOwld2geSDjT4BCVQXADNBZVYQ2Ew5X5WzTc9WdY8TPgwpWMbcr9++diZ/Cc2CdVDAP2Ag8w+zgsHdxZjF5pIlaz6LacVIfVqE0K++qs7q4susMUIqZ5bjn1E6QhnpVYfW+LzCjvjHzfmPYdLBjZ51nwUTVomyydz6iCoy8RuiT5EJcU9fpeM7w1u4u0tBlPQf9jwxgxvwShGqS9VOrg9bPrEihGZUjCJUkhW/Xh3LDCO8uzyxKnNTO1vqP0aVTp+td7h608YtVfLUjHbf5u0by7NFmV4ynKVJTOq6uXhePIOTxKgMnGomyck/9qpdddtHoVklVy/WKwbJkakqMOFrUSlgz4vyBuECbL08XOT5ZnVsPM7daBYRcE8vzs9orkq0MLQ3pOe1liBVOyJGQyWD2MIrmgJ8N+SJY3IKkgilbFYlUf3cr9xl3ygFn95VVq0DPqw+MMHWUp8zQ2pBh7igbNykh+pfc60nZ7zwU1d0lKQnT1RiWqkoYSq8KXuGeqf62I31V+VEJ1UVZ0xmpBXdT26JUHaUcFN8Vg20mWADkvdRvqS7U1GNLec6TGOVwSdqepbyElrMvnn5/Li29MU0fLtWTwmfCZ1++bSrbPQJRfAYvTFrf72BxlKHeo77+B8sicQ+YToFbXCOE6vXSvZD/uPuScAhNwNPcC/oeX+R8E72icMI5wDoRlOKhgVgAjmhU+OEJsHEIRU6267KOcu2vey8IW5D2n37h9NULUd8A8M7vaugfhqBbfs3p3v7ToM/l74q6yU7ADBALzABO5O6iu5fDB48v5tJvDbEGQfSaxdUB4sO4olyy4yqyIymnCPyYeGDVR9yvMTS9AhKrEMCENUDEFSjdn6SKujcVojWjr5g7tMOrLuof6gJxGcC9birGDlkYwDqki9n4rs9b5nAxxBHSTaDob51c9VcxLqu55TRtHeGoKtBGGCcrdjl7JfKO4x06opWwteu7LmvIo/sVkHQIic+0oYNjwaZX4D0Q2Fzf7CQTEwz7QWZyiD2zDuIFmwVmgM/uHQ+Uy+qwij285APr/LxHIaqMK7tjSdOnpZQ3aULUbMJqvTNxgzgbBRpttRPHb4Xm+vLCU/6kyPCn1QPM5EvC6bg6/CTGE+MOISEAX9X65KSY6BBx2L0IiR8fIBAsqL1oYKhyjuR2AtLA4jQHh2E4fWGRjMIkbTtT0Xt2d+/2omTBUvCJULpGcKdjde9Q0p6UN9eONcf8v90fqNrLmcUMkMZr7dSG2glS2QvMjzrwQ0AKYBSgDlsOjwlYyJCEAIgF5FeIGQQAxSNsHKKSm3XDEdznoR5QB6Rnwui6XkkA9Tyy2UIrUJhxvE+am1WEReSTpBsx4RPGw5jZkbXqIG1I0eCpg03yAMSJA0kJXqqhc3u7gvo0WQthoQ1FGzxsrT91yoiKBvBwWwVCShYzxfyM2Y3X5tYm2dGCHISp5pEjCjLCpXp5qCY20LWwbP/PRbc9rU5EWHPUTswQabzWXkCvnSANBxCh/F9JgTzgg0HO7XXpUYpKlxi/nxMlxiQcSiwLfRLPq1zMlHF7vbpl3Ly/as8dbG/8qoNQpHniXVeXX/chcE8w+7pfKfMMs7xykc6N8GN+ohXCvqcgYr1K4pPrmcrNl2enEUv7VAleScN+6S0wE6Wgm2Jr9aZDQkz6F/fpNkp0K59K8YibOOb3iB270krTPl32Q61Itfy0HTs3eH+V4PbD2qZuW/WWVDZaobsidgz0GcgVGPRcJfxa5LVK+BwaU0bW90bsGO5Cg45/mbRIf6wEYWS5Ctho3AgsAVnyA0AyysoGGuwciPzPwU3LS1uazi9U1+SEJvXfPa+oTl3PJg2k1P3V86aEIjo/KLCwIhi132b8VIGaIPz7ZqPG9/tnTs5f6oLKhkGtR0xHYsvbv21oqKur45RH5EfP9R+iQBPxYnW2oFa5Kdb+maC0TGeK5obaIxH4Onw2MAOwKNSk8tqi6h2XunU9hlyPEs889wdHTOqK54jqH85vgSUP7yPmyeV727wakDHONas0iTFbyUzhYOUbSMffFD2c8Q390MmqY0emhETTTTqk15yYTdB8ZkxiG7GTDEL2Z+16h/W4Of+A5/5zuEcbcUjohPYDe4SY7TAiCnrFyqoQMtSMTNx93mRbrUTSni8VlG52t3JvkY5uz2JwlW3D7rR4P2DmyQNlZzQGBtce0s3EkLdrxd7okAqIRzoQIi5gcLkDVoHlt/PUgXzhcWTr10an1J+78GWa0lux7dHxMSpOixvDCXHUaIU4TiCQhZ+DO6JhMtORhscyfVLZFh8KVmAzi36KdlDaJXnyd6Uk91zrcqjckKxFGYs59vSE5fLgxYuH/IGZJ6u4Z9i7+XJkVgIvHmQFKRmTiaYUQjKNtODP0gUW1qoUKXvEEj0WrQaZwAU/ZhTgI+r8FnDVqfujnpwVZcRn3W2+0kUuOMF3xnzAzGJA3BlGgONgDJasfnPeJVV676673vthRBjI8Wel9W/Nf6LPaMhrC1rBBonAiluisou3K9r4oOFGl3PeP8V6d6Ad3rMVDu22VoxKQM0TqyfwHnikGeGcInk2WWPHMRVrm2mPlFZ/MfuuS9rl/oaR2mSGWBc6j9E4RWD7/u3J8G3oGuf+x//1UclU7re9k+QezGjCld9Oml8Kq7X49IGSg+QngUacjjh9GHraeUX5VXUm6sxrVcIoRpl9Xki650IMX+hqENJHMUzMKL1B2LUQTnQBVBQAYGn4l7Jrmu7gzwXYhvH/U3fN0ImT8FOSqVVLY/cvbt/29YntS3fPmNQ+6dlfGWkCJ2zc02iSD5FFVqv4Ov4S0gqJTznU+3OCQpkcE5kZUQv3mIPUmIBLU7eWD2WMcg5YerqYBMTvbr/GUYu5KfrG8YSpe5I1mxfzaia+PdmzkvhYlGzWxlj7PI/ibuKtKsIt7hOG8A7lRBze7F70VOWK+PtXO4EsDkK5a6xpz6PjblBfLQ3gGgUGvVglNPAzop6eMvlQitq6eyzn8j3jJdvecfIPzNIz1n5jmIKFD8ii2vyO9lHKFAkGQSsvUSr6RuHJkPwITVp8oCRJMthEjQldZ8waiVJvfnp+/JunbjtHPaZXcCjkROmh3jrFftZ4JyZoZevLYlZfqNLlyReuGipSa6qhH28YgQVgvPhhEUTMIjTcCyxEauN+TlGUnz1+WLwv4fPV4XKdpdNDN8/OpBxVGYlEVRgsx429zWEItwvbNj/DROuax+7CDTtsFwKwxQnWbY8HjOpB3Uocx80HCPG8BGhlNSnshhE351/rXimFJYkcAuZx64lbKZj7n9134XrG1dpUwqwsYW1Rx27HWwJ81THOLVQS9f/MaQs5jyJU4M5EnqnEJYxioDg9tCgM5BbUc8v4IdWpyFODqnjU9ylFwuGkbgupBzPLaWk4+CHb0cCZxfSQLN32F5gYB2AG6AZmAAewCziEz2jEMB2Ze3dvIAPxAYor32Y08eDuSXIwFKG4BmKJKygl+mVh+wrNBB1QRCW8fSOBMIsbe4TIwc354499JojJlkt/0MIe+jD3AgCsX9il8Kp3Ay/lduwm9DN0E1tu93LApQpdFPZp8MegH38tw9wqStZRNctZuiDn03dBUYUUNwOin/XFrbWPDmFwsefaClF1GkGClJWfO5Lmk1iMrwPojLISYHOA38IhWgxy2kEbis8+tr7dcnW+figmx8kO/Ygl15aN8ivE5TJPx2e1fnxOoEuH5JQHmQnUAX49xlqt77+fkL/KIbSoViAu6duPtxcyvoU0mNW52u6es/vX+iIiOKFhcX59QU9DgiP49CS5b3O8vH9jRlbb6SlslVeWwyg6m965jRb79GNwc0QEh5FY7eCKniLkA9icJHGutrvvzF6O9pQ1Eo1Vd7QWlSTIWX+hR4EZoHfZIMJhd0A9YIn1lTO0+Ll/AxlPZ/znpYMgYQTNbw7JY/p6PoyvdypRRVU1XjvU1X9uof3bRckctf10E7G9tI4SmgK5bG2NcStUiPhC3mTDUiehOOV5ev4HMutLy+ozYJTMX58SYXJ3ojqOtS2DmkrDaXG5+Do8PVE2l5B5hvEE+Br3IEJX9dqjcDTcJThDlh9Kri6QSWrZaASwkPoz/jHWXnNxul9qbL+43rbcK8thGh3sMzJPjX+0Pmga8YApTy6NqYnau+1ky7NNJPCz3zZHiiFOvlUUUlYcnVpSX/tJyZvc3IBVfF2CuELRloIVBDOvJHOm1rLikCghvbWrX6ln1PQShL4LuRhYS5D4IQZjxb3F+a11cxDuR7JkU061PYGAYoebtgJXImY84s8xKvL8jnECYG9Bl7kM/7TqrQuIt3n/uN951Hp9xBR3z5/u8ATPbPidPv5Iya9hw3XBlpkajoIIwJusnqNJLdvWMbQ4e96Hn8FDrMR1Ql5pgUjSu9aTKCkvnerPO2WzkYU5xQqO4vlISETzA9+YODcCnZan9VZBZGhlb0yGIJOYO7SXlIZE8untx12o8rXUnzvcn97OSecIiiyZpmE1jeumSJ8RZYysZTC/YnG3hrcH3PQP2+YfqdX/M3y38agfWUp1eWZPS0owJ3vl79JGXrxWgB7ptJ9rmyIORWXXNwddDw4N5zLStA+Zqrb23DKJpC7cCoaG/SMcpUk0QSeXFyYOGK0FzLUcBMgoRgxBMXyGKLIm+A2THRBQA01TegaWbuIxkpoUSbNNUA9hFC5w/9OxrKrTiO3y5WRJPjmt2WxA1zocjvPzCRNH0dmP/hbY39Q6Jfn9Ji6o+PLQWJtBKxJhdRSvAXS2z7YVn+ARetCLERFBQIzzEKgUZc1p6ix9T8uVDVXQ301cYAGwoygK9Nfmbv3wksvuhUb42QQu8A3rERraAQt8/a+L8rXmwa0w7GP9w9HFnXk5bw2DwJ4pFEErUhXpRsxoKV4I27lBN0oawk4yzNuEZWVa8zbGJHaANKqz7ayJ2onpxOyM8oCtbNC3OSpG01Z2SJKk5QG7cCnzqVT5NWFQV0YacGzTY3+v8ZuzqRvXlCRXxldKkt3hbrSZ8/Mt7F99tZntGna/6XG/s8VqW7x64WTYldR94dvQnc79j79uEruKXmw9MePUWa6defEk+0ru5bqWSNj343Wd5o987mCFqMI8yJjEDjmM6uw+RvLXPpGssOh+9FM0MYTv186YsrMHKGJGga02kv2433mWeAcU0lsvOhev5YQL8B4yESKuOOZquvXwmMnHYurf1nI2Vo3vUTK+DCqWmZ0UlPRflxB71NwJQl6CPBtud9XOqIFiLmzqnJFK/Ay7j/iJ9T6glHsJ0/auzyHml7EeEy83k5E9yCY+sUsDFtCWEbIEum5jZJt065axTJ9uU//25nOxM4ddrC8DTis0KZwCfq/yjPAoTxNg8En17N3es2eTx6ao+JTYEvl67Xn+RYFPVLrXw+vjWt2+/FLY0WRgfSf8PAi2sjtBWACem8v/xoBOVC/hp2ZT50I++X6xjVcOQAwTTnY+nWCxYNOpBuK4SYg2Qotg8wObq6r8uO1mtgAsO+u0vu4Mx/NSbPu7/2tvxxpX5ISmAgfxYUnkIL4OH2NzuYEp1zQzU3JnFYEbU19PQzVRGt069AboOkIvrg8Hz4iTjw4xdR3myIzIEn9PpbJsPXsL+gG+Dg/U4TcQjwgxcrfuhsIGW1iIbaUPJ7OYUunlP1yStfygNCS7JG3PpoY5/bGQxWCiKN3138eafbHaM/WvlWE5U1rAePcOoRWoewYndPm+uzfNnTk0lQtMfMMlVzhGKdu8470n7boPTH1JXWjH0jAbupc1Q9r6jnhaEZ07lLS8sfudz7vZvdTl3aO9kMku+f7RUflkSPf8+DJ145F33u+muveyB5Q17VJ62akh3vK2Xq9TbXcW+5O3KExDmrabhwf67h49Cr2XiZ8Bskjd3W1Kb8fZoZygJKWIN6vH78asT2CPdJvbc8Dgflp/wgSzdKBKxLvNZZDHe8PG6aOY3cBMk96a3xjrlPJb+llo/spcopL1BZ0Gr6MBC2JxZl+HsFW4Y++bLfhhr2J7E/a/rVhFoyZDw/OK85LHecDLWbOifcWBW1J9h1MVBZ1qzwdlG7Wy4qE2ZYv84Lbb5qBKV1k4DoMdsba1Yiw/rPblGTsUsnRzxCEjj+fy/wxawXScnmcUHB8IMicf+H9RT0wQ2ArMwxpTw1jrCh4ja4uCcHy8Tnscnr3Ub+OcCwDBQsbMTrt+NMM328zi7/N+feP9TZn09c33t7wor2+/uy1L+HAbbeSQ18sTs1/OwxDH50/s+S5UO7ELjvpip/k0Ny/uFqXH5qW3l+iJ6GdoDfoGmpiY7DPkuduk1ptwGGwuvA6GQ7ogYdBYdktjvtnADDd3VRxTdyGSa0JTDezPD4pP1/w0ApjoNStHt9fOpPwKwhJM5uiueVyoSNA0ZMmagRmAiwUlEMTd0GJesC68yKlbGOJnk/nCJRr9C9rJX+QxmBrhg0mgqIkuMsQ0c34M64OZH2NOIxRuVHO8526sz3u5hxrm1k5YGHvr+3aAegq5Gnuz1DNSdTQT2PiLuPdsfeCMFkP7Zi8rQHDB3zBHR+icUCqsy63py6XNvTcONzfkGrL1g7pN0qzePJV6uD41r6ddaRhoyijq6JTBdiISquDAqhrIxBqw1VXxjRtccRt+FE6dy4D90OmR0FRmUrfmyGQM+rzty0ZnDgYa6PYsAq/9tOGxW7TDJxLZGqDh6nA6G2adfM3F+r+pBZT69hLs92y0dzvu3MyS2SH3ohSoGZSdLCYzIowb4YEDsAYcE+chWVeaqWvLV6ZHSLWoHCmvpL40VMxJqFJiuA7TyGzTx7Wjt1j9iBQXpvrbFc8wOJuoxR/TdrHyYEgUwbhz3XAs5SdJHtn44U7oXLMTBIV3lmi5BzwsMGKk3RU99N7bgaOntxHj0IXWQJ13HeAXGsCQw6ObNAGUTtOtn1q17/vQq0ub538l7bCxkMZr+Wel7e2nTyusmikxfr6f5ZrIkQT7+CZQw+02/XxnQ0R9cqWgH0nGXR1gC5mIQoqqXC6Sjxuqi2u9xbAflvzRDzWlQq1thu+KeDMDNOfVkkkj35t1gSV0fg/NrxTrshW6CrPylSC3RiurkNpy2xgCUazglTPLRcBLEvtwYy7BLPFA71DqpUZ+4fxIj73MCR7vfd7LPNX2kdD7S/7Il5pyodY2HaEk/lbU8OptHoshWpywBE0ldjtXMB8NDgCfdpF22IhInb27rldnOGCCEyGejTeFo+BsmDYsHAWL88T63+OxPM0SsLAN5kWC0JnzPigfnt2jdRkeCS1lpqSWHJks1GMe/3DQuY4d76TxOYV8aq9pwHrui/vOqT9dlM4RNjrOFjUxEfEl0jYO+SzZ/VeShw0Fm2LjiT2dbH1rXmJ6uFGPyNGJi5rLQ8ThxpqCx12BR0LsccIhJI2Inw3R2gibUZTc+WiwKyGu7t55vaZcz0NMzhOLAH0I5m3mFDDzH6+aWZr+uz9KY43B5mP1ZOOBqnmlvJAeFxRQVB7C53JIFjXSyt5qLPRgPrARsFRK/pvhSE5Frh19qYniZkDWs47fXoOFqRpWgrr85FxIawaST8PWjt5m1SNlFK0tEzGcNV1N9MXdkdADl16IMIqsZy1coPo689pLrO29Tb9d2StoQMRaQb8AGQ7B9L9tpPAdfctonJKhDaBGkcTe/yCY1mfogCxeK4k0+uYwKEJAQnNFegBsbOfree4LjR9lf7zP1xI67W3UR6bL3PykT5kLp3DkA9g1DMKg7O3MyVzfYFD1tuanj9Rn6FgacURMkiwojN4+KkYph2ZPz7iW1ow4nwufwkfQSSlQSIdIRh8IRU8rEs6Da3H/tl4fUfk+Yr21xbn34a/HewXrkj9TRLhfKpX6cxdPGpXeiVuSypdBLubFCRXsp462LxAbFAnlHqYA4uX/SWoBQnWTGSbyFEIP8xCQJN2HSo7K/b4SI+Z+uquKkxDs4xtPDXdMTZn+KVxy1kmvdqotwyeOj2eEuIy7GJyDA3AAzkHcTUB0HQS3FGQ96+jttR+IDB5eZZa6Aifc/nGUmTHFI06bCsckmWEhaQGbUYwGRHiArR8g0jkuvAXoaYFyTnNTWzvt+G/FJuSfmwkxMBwepoX605i81qJKGcNtQCbXTgxsKRVpf9l3KcMKkGODeMiCQb63K1bFRf24cbxVxUJrHqGqhdFOPerB2q8H8oSOny/dJFl7yNelh2TA/r7BvMvD3VOCMHBFLIRwsrSz7DYC9SnuP5GwnI+BW/oFSkZSADXSRdKKZ1rfpAOKeLWUneWbw/DgOUhoAUgPwLsjF66NsO/TqUuEyAlLkIedl1VvW31IuTY7me70a7EVIAiL+nSw79ny942A1VBeL5JnwbXQjGJt6MQ/G7aMxurSu6JdOziHkeVLE+gClshqbu9yWlg/ixZMsMLPS4SeqJysLfR1Nuu4TNfo+w7x/Tv6O9jzt7+HRxyz7L2M//Al9Uu7D8vUZXEMlmbz32sMDfvfq3c+b8Wxy9SNdr+PrwSx/2Oj97IkNlYLXJxl53i7U5+mLd2/bJR7GVtyuKs5pQfhHn4/scxUD5orT7p071yW2ietJTPmZU/pdtafLy5QBLa/3B9sl5zQhQcKtbpY9CdffX6YhlfnRNVRBPj3d3t3NOfxfXDtKDcFCe+8sWM8Lq+jN+9Ls+w0ByXY7hyHJ3b+0uqTkdB9XKMbn3wJGkmOG33W72xlWMzIaEEnrsl2Wzvt+sOSUw94JcjOXNht3veHqhj/AicmrmEGuGjeFKSpM4FIsX/G8DwikihTqZAeiTTGxxnMN0CuZfwdUEFIOd5e2XVne01ztjZsCtRzkpuXL/TVJg/mk6yfWU+hrFGKxFbnYUjFe/QARANFJPE7AwURoXHB3Mi/ybBw8xL6GQjYljIBOo5h2oguuyz/RbQoz8CcwGXl57jMZJoS4EiG3/LWxI0juq/sbuDTfLXtUQ9YCdryprxNynR8UTtAldfCk1n4Onw5BLD7eDuOGuLmZXq3Zvlha1dYWfmO+VZLtnsG2axbOERTIKfawKPrO3TTkozuxLXN3/OtfsEGJQx6i6N5PGMITrq2H5mH6GfVwG3UqI1iihFauBsJ+rbgOWLgln7dFBAQknWioTYxpDVQReC/aipm5xCelaNQPAVl362k0LQgXVaqS9va3DabFwc1PYNyGdBZyLOs5KnO9g6VHPX6kAn1ZKwK0c8OznaFaK8zyuclJZdiLk7wc/u/DcQOagMheyXo+4XDTN/6Q4hAFHPtW6UTWEK6k7gl/ef2FW5o+usbvXiRNPrnFioWcdrK2ipImjZgmZJ18F82uBbWNIjko74Cv7/WKgJPMF3z25kb6Cn0XieM8w1cdg5ZPppVX1Faf0ru2yyR9c1kZLV9VYziONEv7WqhRYTlH3t7hqCDWmcpJQZFLgpxUhCREG59mIeAxs/R78+UGN/ez3JVRUhDaJ7kJZFTLdV/xKhOP7RPdqscP6gsPQ1aADInuAtYXvpBiFjUBJpJLhDkTNUvdZ0vqYVnRzAreEQVe79dqa5dK+3lqGVaUp83cqs10yip9l8lMez+ZVhN9bEiaKeOo7XtEsdbeb5pNfhnBe1DtSijqhpuLHZAPpEhp8fHNxg9dQTchc/WKUDbbmGVtY7MJ/b9BljorLoDWSPEnR/JgtUgIpy0XPSMYW1wVzxOXk5FEnL93E7E6Y9ogMbWP0SMRxru4/EJe4FcYCOPuB+jqa16VOjk2nzc3KdSCp4k8F8pJpJ/IlJdjz46XyJUJXDtjvzfa5OmaCoBulSX2Zuh+5NeNkhfxt54I6E8irr8g3rMVEhL5nZ7WjqU0peSxORweuHt3Hpj8JYXUlnfZmPOLq4yTvUNe00WupkVGcwNesFSsDisuBB9QWytYK85+pYRblJAEsPbLdWdHq6RsnbKH+kGsHpUvpaGc4v9aW2cdE5caeVs5vpzbYQ8DXyCb2fQUZtHEYiEIUKiuKFxBwtqENhy0UhtPPd5J83xsO0YTDCttZhXvVsZ2rmJ44oivyZYtT3qd06Br+U5SK0RDD0VuGWAmxSgZNDJ8zaMwLRckeaCPDRs1O3IL0Dz1G3dW9TPGhhK9ThtrYHdmNx05Uk8Ry8YcNmeLzSe8wzfe95ePYG+F6wox/3pK5/D4e93n5nluGu2gw1ynOOElhNnNEJXcaE8ACVpOVyO9Jk80iX/6bjJs5z5wsB1k5ZqQy7VFEKsba8Q3Xagm87u2P80isnh+RKuk2MKqnrc2tEtZ3/s0tb4eI5iNZ3gkzZ8YmRXQphVo2njxvenXxV5M6+lMZ/6Qtyr6x2AtGcNKtEN+aA7F1UY7y4k7rteXf9NxtlyVgFj0NQt5HwhzcpM8L3Xm9lcdBzW/HLiVKBWIOz2McbnlVQDilYP8nYUF2S6DB0l0jU65t/w1qCnIeew5iHhtzlm6ec/a4esrKn+F8mpE8yRLw3qXWpd6oGOtamuJEWWngVFzbzAgAe02C8ASyymg8OmLrl8IkXpnXjIkI5W9oaVlAVYWCdUzGCnuAgrK1rm5U2PZeqkjtNUClZjsyNztEkZQcOkzKUk917vcqhs5HIhBtO/At247y+r/45nQyQs95alndbvOSn3r+NX18lcYaiS6mC1aa/9v/cSG02xwh6sjfpvFarRGgqMEATRmRBkk0DyVyWQTJukrDk+Cbv9xWjH4oA4kkTy8r48EKBJLtWcpVNQfOAvo7vI4EBwyhOXtJ772e7eyKiOL16g0pz0JlL7YEpgR7PjIfxQO4VVmaK/8Z1vWQ8OqoS7P1P02yh1xEYAIW0kEOchhJ/vOZMc8gdJIBypQXogoYWlmLg5+9dqE+8wsWk1SW8YPQdTut+EpeiBgtxuimgw/9idM25KcNwGClQeqYNlJ4DFCH3EKWHpB8BpmJiozW2nJYETN2kSm8kzMmRY92PEnHrdvwdbJjSrSaKMbAD3rgrTjSYR6VLUBQkuSdP6UhUMb4yJcYw9gru8bo/E3jFnmY3Q6rETmKGOIrSlCqbWRLlKdrpCQMLUU3PCTlUhrHwR7jARR9UkxGgHBvspKt5/rjzagt+ftWaKrgC2eO2iK9orpVDs7exZN4HxsElWX746bNxDF4rk/rNzbzBvzRYPSBpSamQLA8hIkMhXIASYGUrlgz5Wp4Yj0UTeKYnEOk8+qI6SNbAPlqzuFJMMOvMGDzKr8IjYQ2kVIfRkGiDUp3VnLix1ZDrM0oTNYMSOxJ8iAhkCFT4MC0dgm4bpugjEelNMK9gFt8w5ep2Og6DcNLZ0/4PBuUDTAUT9JdSp/jj84v8rU3vXEobmxpz4O+jYPzTy9zeIBdn9+9b4m2ArGlfjkJY2qaXY85BblZOobpksx78CWDfWJHCR4xZg8NKQwAxhgjI8IroQazJW8ucCbHqQa+GsW73cn5G1VTJRzqJMw2VEIko3Wy5sqGMGOO5WVscyKs58BINuAJS7NOrQR9tYUzth4ow5gAT9zgaGUd359NqrwajQfRZwg8E7TzrpMXUPlHlYsha9EVl+72BSXNqVG0zkw2picKBsXIPmJqDX+q3pLhesGxOmvpB3xMFAUSpoOgEcMmIJzIlWLiGCD1qqHGJYJd3bCP2eIvRj5FNNIhMSPrNdfh27X1XSPmeNAKUbHBx3XjYaY28q1Le4zpZFHPcrI/rJt1N5E330wY2zFPCJE+WLtV61lu9tyby0BHWCHneSeIEsfREaMXqI6gNHscgBc9ohn+uIvSpJlNTrCxCmmv0ARkw0q02yg8Z2+arVlUQem6QzeB3gsnKC50or0MMABKldybontaEWJmsfioe/3z+rZFqKcftm+T/991MzcW2ijboRcyutV7QpCfKtI5trDVbHi6LlLCOBRDu2i2jCZhkdUbjPWpsdcfC1y4CWvypSlHgTaA2aVJOl+QG9ZYn5qDhFIC+NqT1VQjwfEZKSryQGCopVCKjScG3i/maGSYzeiqXEimjam4YdKY4GpQFbsZ4G40RTXsfk65UnQQECvxikmuORhNQf1/NL981qVBeNMpVirT1/xeW+jIRoLkYFOQZ74VRNvdsSkOCvEvWHAokcS/WVeFkHXQ1XbqU41xGqalDA9dDSocsz5JJdx0aN/VLUBPaGBx6eI2aD2B5QK3nNesvdZP+7ksdM5KZz9qaRGqgp6dpLaE1e1+z5+CKVvuWrG/13T645G81VYMgsuzbbowjpB1Ly+/fiuW6SN6OL+9PH15pgTv+4CDaVnjBt8KepXHepr0GOPvRVRxpMAbjbJFXeoHACTdNt2ARcSHP9axL6Rh4BiSLQSRVGw1QYAZQnmpnpESYQCr+AxLSqQyM0lnS2xwPDCZ3hS6pU9V34H3OSohT6HgdSLLc5WLpoPPNEYvMwAdSQOi91MgIA5EuMRc28pepixQoGvnxs44AoZCtWo6UL4+hZ2OkIIStpvpZHo33BSNcqaUcpRythqPIxKNtTaKRtq7QY9sHRrtP06shjFDdE8S5ZQokRWG5vlyFtJVNFY1PkiompiH26bxRBTWfn76yZEhgtbqut84Avj4jVjk0s+yrMT8vOJMqphn0I0YJzeGTBKfIEpXNBYorUioMCm5VQb6EAnPma+sY9agg1gJ6Ei4TRACgmHkeiP0e2yz0qJ1hchiPHZ0XJK2F1FmEGFeTz6ACi61xpyY07YMTM4SrDKcRI1liIHHGB9RyZ1vy2OGUgkPIqNGEqHILVwFzBQYWLUjgl2XbEqjO8NoJdIK9MGjQlQTgqBVBV64I5NpzJlRkc9vKRjRl5vJkMxiETiwSmqpXJrBCt0BJxsTICLNXzI9oBHN6YBoxaT1aqE9K9TGT3PKFQMdGa5yop1XsVlMa7KmYwAIj4okzQpfGH/YCTZjYQ1ZLvdUTlcKCyXkM3QtdblgMlhpdMhZa6CWmjDJBIWkg68sim27zPoOxGxzZXq0fsNrXVqMi7OBDziRgx6SWP2PQ/qERcMkFvNKkqE4/lpacNaGnWmfeWEzkoHRhZoXF+BMUpVYZGw5DjoUfKIbI6SgFRZh3mPJMoUFIiclqaClOFUhRmLcm7xprZgjRIspIpc7FNXMNUSUfWVh23tV7HhB/XZMZ2I4mH5iMlMUeyJUnnVyS7X3HZ2d5YQQZzEJPv1yVYUhJ5FGoczMI1O2SDsJi1eoYB5hFjr8QirJk6gQDUnhii2NOyGk/DijRGEojApb5IpbwZhQx2Fm4moQHKBKX9O1RCD9BpQtcwZLeNF37nv4cgJ9LX+0H5inS+ggCTwALmXHUkkuDzFC9Jt6WxK6q6m+pe6FROcoHLeawgYwttERS9TYdtfWHoyZi48peBOgqe4uzMq7wSB/KeM5+Gf1zSxDbVmbPsdbAw7ugeWhsVaMSL7WeCRwpExBFJakzg2wnCbmaXPixyqkk9oxpUtLyW6a5jEtecpRUAMRaFNiwQfhYjmJ5KJbmCVNVLwGq9ponyrRATHUHjU4JBiLNt2AN2IoaXurpqDyav0kJIu4kKR1FNIV6r1TChDPDixhYgpdK6E2GAZCXMoryCUc6KnbEu217RpTPktJtpdTruDARyGkonneF9AMINyCjY8jLOapixebDCZ322gvO05VeAuyJ9YqOaRksS0U7jDdmkijmtda2CNLIGCBuzRoQHpfE/VIqm48Cm6BDV9NqlwnsCWWWIiMyuN0SjsDlrhyqGkYPb0ruhDpXMYpudFmx2FHFotTZwtdbL0u+0o0+J1maQajQfGx6zDuz2oMFx5ogxh/6oBzXb2rngEz1b0gk9fASCjbLWxLR0ni5Os0pewTdg5EsiZU7E5chN4s5YAk0q9pZ4wOcBN7aMObFDybA1yiGvhB6XS41eANmglTCVv9lru1uRC1RGniDyfBR3NEksYOAM9TymIY0ckCOFR+eMVpF7p6e7ZA1Y8DZWFJxW4qVWOphChy5KxrWDVtoSDrW7BGLXEsDIUqQp5bLOjUsWpn3PjvJ6E9qCNQEjt7M8C3SKYAwZTiJ2KFFvZDMtiXAtT3qHImDQAZEBQyHOdFwMGM8UmgTpklTC0AgJ1IsvFIrXhNINMp6jg+KHNH1XbqgMVcq4ju17NxUBsV4KxAA6paqaAQGcAfNeiG5LF8YVFHNuGGlhOYRbWi1CCGoa1hPpCHXLLfzuho7LMAWNrVOsEQFoqa7NcJ5dprtE8baJDBMIXLF6Z3ZqLSGyyo2oJCmt+IcSJOxLpbRsYWGQu8Zx6CJqvn14qSpGA2WF1lEJKRlpTkfBRUW6pe48Qqak3fFwMxLLp6VqKIz2OR3dWDPREJXGRscyKnGkNf0RlB1U/PYwx/glx8NoKXbk+pVoUbkwdIb5eRxMKqAV9yek2trVGTwApstILJFanDMuBopJCUy9qRGVIWLoSOaI5HtHKxxLhrIYAWididD6kPpIKUKFn5UjUzOo0hpvydb7BVwKQ9sB2tZk6QHcUZRE8MHMAU+SEZhJMUAKJGsohKm+9k78vK55zGrGPlDoNyQ4Z2g4N0+Jui2RitaMYjX0DP68NEqwbFfbmE0EEs1+Zln95h3Glm2zpELKlE4vkwCJlcMi49jMaAjA2/Lxv1dokxlU5Bx62s6TmPsMOkOWEZZS0/bHJpduwAsXaIcIYGfVKPp11KMRXbEedq/J8nGj2mBHRGThZ2URGxRhdkLiMKtuJAfBN+RRvKsnvY+LL6yZQncC/aq2fvve5QdIhntoZe3g7OrB8uzGp5GcMnbPWurk8mhD+z2Z7urVweavH7SLL6D2VPbRdFYn/GS2PN5BLgLaOYGKXjpauo0QOCPO50NVG/dW1yPOEilcH5W90zFBpDPJdTasWGaNM7mPUsYe9/fmbC+Vvu17d4+WRydo4PpgOs1lXxnqu/zY0srm9tGJaMjF0vh3pdmT03Lzwfyx+PbGocLk4yMQd4D8sDa5sPQ2g1cb0teI/0ZfHhgOF6UGL5O/3yZPnrwDx0+OqxR9jZqMPMp2o60Qy+pGsUZu22S1P9wKyda1Y+9jYmsbRuJVZ+2UFgNoCWnIDyBwlQBnqYUsnOAWC6PKzkFfAjrmIWcmZNylMlHKkwGBsmmXjVZGDmXIuhD6Zfd8RCpsf2xu3GtsDldVb+2ah/PP7lZKosn45Be2pJe8KoVVo0n3Mu2R2dnj0zt3nzzH4vBDqNXi4UHPR3pKwASEnVSqyPwXz7DqhFdVznU4DlafcqU7HaxkaKJXAQpU6ETfJWCZ2yTOLOBj0QfOEhTSaSvFIp/uKXr4bBgeEXPHRBIWDkmSG5U0HwBQKwunEYikH9tmPusvloZmBXzLkXoaL6S/PNLF0sVOX7iLGbcSHim276IAulAgZ/dfLLeQylwRD7g/m51JJBvaCX4+Lpi0inhY6M00XU6ALkQ+gWtpIukUiIWB72YI+Z4ykR2MKe98xfK9W6Ip4fop85dvFHUKD4khXFCcgZKkPlCKhPsBVXsc2hU9sffIAqWsjJOoYPBV8InlSgjCWRkct62rrvx18SqWeRSZlFo8uFryRyLSBwQJEGS9VNkJHhHVRDJyegBzQJ5GQfzCWz5lumMYo5wUT59wbBLj6eRHOcObWtsTWo6M751SHp1AXrkDInmJs/xSigxlNMUJrZLlp41p4FmnNBrhnz6iyOQjvrT4SMOCPprmZD3gvhEa8zrb5rgs4CGxpSkSI+RqMkLeAjUfTazaFalYFfwBguWBVM+OCJ8s8kivcVmmUFDuVSI7vqe2ZbBihaLIY3N0DMlfg0RPxdmqDlPoMKurDcBl2Vui5EcQiQ8XizFXqLGvivSEHnStMp9BllJglQX2lSWTA12ptztiiPhJsSTuExlUSFBBA5c5uNsxUOJTDuV7pYVU/jInw39TCITpaGWKXymip5Ew79Z0XKMSZ5ZSi0Ft1VkQ3O8ZLNulkm2BojW+mLWlCJo5RofpH0G4iK6oSbOVEKiz81aUga9ChXmz83qAVW22REpngsQjTSZMF7RfAASGKquh2tOtdh6vKtleo/9R0jUPZ6+v/nTkXHsfvt6WrH/1fVl7WKxx+jyin65zVZjkbh5oRH7FhPHhG+HVRTl10ra7p3rkYnWYZ0zc5eXG+eFVORqQdKsTLr0WNAFNy8m8ylqPTqO62d3Dk3RR7n4LTzA8fHk/9+ixioV/Hp/3sW158HEqJm45znckvN3KaAtdd6ldnkcbbdqrl1a49ZnhE6hM/uy59Og0JizE6sbyd/qXJqLYTEu1N8ROh9+OExif+0/wQfjk+/DGG3Ljzjk+Ec/D0aYi/rmtHZfS2zWJV/AXoHpdBXg2AQp+jBZiFZIDh7A4aPLTNF74X/feIfv669nkk0/a9tMnPfL1CcffOY/xUpOcyE7uL1atYxNHJ35aPjr38BGW8HX44LJMbgy4vhoWHS77K2skAd3Vj3BG+Jjyk3lfLLfVxepiSW3Uy/sMGgfxFxUQb8enKopkRphFRCHGmnKC7pYfE82V5/I0Ym9IfV/RG0frsnu0Sm7zQBvd2eCwPSmLR+croug1spmIm4+2nNiGjmfcTlWqTnbR+gZ+vPt4R9w2tjbygf66vX/8Sqs2pnF4rd2KQ8OD2I+ij1DaiHKS8mMcLzsuxykFtoWvnqMYaC6xeAmFlpdKsNzavDKKnyHHjGmRzIwtr2mquFbgZ+4MlUxOvTbvsA+13C13+Kfu/OBaPL10G8VpR8YGg63VxgOt7ffWKjwmu2zg3Q5j/NwwqkCWcWutnL14pqcW0DyCpPHUbuaNKqoDU/TdOnHuhZs1IOEY/aDK6nHf9GpOJ151Olo5HwpvDfly39XNO0v+0BO4hzX6R/ny1oPd5fX+dmwi5weWbbT3Eq6zQ9BNI3zxUGHq5ieXWW89rjEmc+iW1f0/GPXyRhtYoHeEJFws6Z0jbh7QDkjtCOU3SHN3eDWZwe5Oe4vrObenYOZ59MmovKzhbDSV/B7Hsk54xnGv4ulSm04b1uBYebEzBaJq1OMx9njjswox1d1AKz+qUcunVJmaceG81HTlg+MU49oTkGmzLnb91cgXCjwmmvJqbFgrt7U1jGJs9pOUHFMj/ZGttywxxQwUzuqUvzY5anxp8b0xmKJHKN5rvhpNoBFqZde+rNUF7ZIDZh0X0gnIuRIw0+yQU/9w4QJVquXeJ1oGHmiEXpOqO7Soev27LXkbzxm9KhAH664hu7emAdd5oX98825W4lqFLqNysUHmVuY7mR2plah4nCup9j3C2m2t2jDKDCsWH1YVDHN6019K+fmoYRDB7A7CL0dA/jS5ACPj9Hn8vBXLmdByXsfOptdpoBG0OZeG1YRxm9SGio3v9IUWD1cBUK7LOUopi3Eo1/Dp9uEWm2jWom+msc1GeXeIoIuls+3taxuxTWxtObo+9zpKoCqRzQ6S7kJ7nlcZ331NdCfJJyENGtKFlCi7K5gaW9ohrFWFws05qp5nTFBCufOZlQvIMnMwJIuMmhnSMJqw4mEkoJyUPVVTdn9ZqypDIltKVlkmqi1EphO9TJ2YA1nFhFGTQuKhVINeTTqLHYSGR1Dx7PhxT1yQVsh0dk6h6yibO8gtLcyQi17/4MGTi7gCNPej1LePGrClUSs23/glBSi9BzOcLbVHUSvjEO9HrRmoh17mxLA3o1cy4/scjV4bo7aMtVquV5uyZMAUsLiL238zWqo70l5kCHa9GVGgqkYTJmrRnEVSAQecu6BfAWFjm0r7RBC0YI+2KFeqZW/mWm5iBVznsLkeixlAz7dSCYaZLwmTqIA1jRejiNFFOqtermTXggOQps7iCehNucEsbYVMVxaPC2lpJ6HWl5HKaDg4I4WyUzep1DYsj90t5exjOso7k7vNTbAJjvMON6+gt1quTramXAgclbWD6zuzmH7Mtw+/o7z2CgZeTMRHWfHmhOa11fz112h14Ah9yMrh0SZ98JDnyVPYoPAiuAgu8hkv+tY1b0PcrO2ipdX88vjaZr6PjezNbxrCVz4CJU68I4Oc0XfJKRLr6nj9HSLv8RIwl3c79xr3wT64xte5X669M4Pco4HSEK92p+nZePsuvNbv4NB/fiu7DtaXp97MU9ANbjKljO5z7UOh5X28jkhmSbJJkTZgznswqqA/bWG1zOM9s+3bCSn+u72x8aeobacS310Wxx3TZe7KwAx9bdriE+7FJ6Mf4xTnm7Y8BmfkUTjSjdCXp9o50up8cfqa3cS+N34ETxocU9+t3H64PkF84rL2gNT6ZG9rvLoGtcUFBn13yAbHsvX6g6bDZNQp4MNQmJTK6ln+1uJLZzTimbzl9tMU/YkHWzfZAo8aygaEq14nhX28V9rPiQU/lUdnhzzd2PxwwRnDIdRS781Zz+A9VduDA9zw2NKD/fbEeziP1pWw4FQqluarcsBve7zExHjeqOAi363vUvSZvmMeeUxb7pOS55K3RrrhxtP1hmM/ZAr3srX+zube0fndx1vpH/VVBfnBAnllsblr/vozQXTaBIYNa6jN4G08cHyY/ZJWFFqXvuOEEz9S0cTc6+YNuRBgORXrcRfsOykUncU771jLMc6DhfL0/PyCyG7MwyN/iaUpJXj1jg0GvIWLUnxfP53fm+VteGaBtdalTe0NdNFo3bi91Kstqy/rypHfQ88YyO6x9nIJ5/SSos9hWEl9MV+H7AQ2dtPBjuYKQp1twn9M3GNwwIfbLeHNvbM468L46rjZb4htCa2Oy8qLT4I30n/DGiALm+zNScRngzhNp6W1Vk/EnDK1ukbX10zeSBeB7b1bBYJBT1lN72cQ5MAjlT2soiu5WV/rvHW1MXu7pdTERQ6yHMuSh1ZH4NrF7O0hEYzo3+zGzPe6xmIJiYbRJ22m29NDT1MaH3fJFVXD82nBCiozQaEbLCqadGwmO14PU+W4vAJZsPmiiGnHSGc/ETJ3r06T8xGaMMcTOlaqlHS4Xq/vGaKbupEUMxwqN2BDctLA+nLUiXJly+Zxj4JfephYDKLKcKA/7S5Lk6PJbpCxTaxf6xW313WhkuVNgH+GifV2iacuTu4CQcfQ59mpT8nvZPq0jk3AIjU68ulTr5+Q2f6Ze4wfPtI2G1IDCLjj/4JSRGkPVAL+/Uryyc0G7f6aMUMmr6JYLsIsRlcBnalxrpz9w2AOVXjvuhy2XnFVPOyRgapmchQbrVWhkoXZhfgJ3Q6pyUuXxuYSOaF+acdxjmU4M/qAxtkmqGwkl3t0jubc2eNacy26jJDvpTumqkDL0Wt5rTl6m13cfJE59Y4h1/fYgqIFlgp3GrW0t2vUAqtsW4T/XdSmv5VjhJ59fCqCXTtAbbUHvMKZd0IUXaB04Zbn7sJuztfeKiGnssuwXplt+91D6B6pp7h7Fne+1ho72o7sBxUGx1q5l7m9jhdHx+z/6c60V3U2+zi0xbJsE6+knjDKOOFKvKk50q3LISRetePxQHC+dUXqTe7d/iHl5Oyjjim5A3Vncx87X43RiJl87PS35GzSjz7ZxYCq7cx/nOAzvPeBSDlnTgVxN+dsp8/GlSOrhroofO+IfgadB0inknssMnTPxQ5MCsfkcybuHaFSV9G3Hu7eRLnuc6ittUdbceE+Pluh9wx25g1qVmIvAHo7T8Qh7UhitjrYe8n0IrwkczDFuWhdzujxP67nr8nbP2LcSmeC/irgDO/7V4emKQvmGYBIIF0zdPWsvXit4f6LnILvpY/SWwLWB3LH96c348YviOrteI+Ibw/R/lodvmhx7KCIldiEJc1thr0pftolNY5mOiUl2ryxrKaOov5WVLZpj1hGw4RiT8syiUhizgDd9NGtRcL+TMO2u67mV0w/6Bu81tK0VGIb6LbkUyA6LqidDC9QA4x0r1fFN9jxTkK6ZOmkipZvqH8QWRq/Zd6MXCg2t9P1ON7hAHpdmH6RuJ7mYRFBHjNhdjsj9ViYkqIjEFfFm5RlfELawGrX4lVK29qlGWWY38V3Rvx8L+Eg6LSkOG1e4sk25NdchS82y3PbQqAuEbWByqii/KJAt7nYQYT8up8uAd4zPLJqHG/9enZD/oX87hr2rOhs6+pylyBxNP3EuJMrV6XV9ByrvS8hUnJFQl6DXDTOXdzm4lmNLMuas6IYtsEtKO4Ri65k03MTr3Zi4ptrpJzbxPriZCbDG+ue0EHUWqMjK5Zq5JGw/A4IiWiyEbAcN3uBZBXMCKtbLalCOuLlWGuSgkxBqp7vX0QKh0YzviGds0YRqouUAYXve7EJY2IwoWEHgq+9RnqlIE6SYRe8u4EmkY1xkB0X+KNKWHKBXhHsojxCvI1zOw83okC0rgXbIup1BG4AemQYvMIo2ErEtxngCfcZsQ6CApc2GNoFZAJz9YMJAmM2GypSywTD8D8TnHMQTAg+EWSywQ6DCSs0hk2riHHedEVQPDZdhU0teo0SxnbjL4PIyUvJY3Sac2VMclSqjgM3smixEKlUlSIFAs2EgaVKiRpd84HVytQbymXVLOcjL/VodaQMWzZRrNhCWYE8+WciozmM2KO1V+NsAeYkFO205g3IpuYdWrlLcwOVW1odzHZBitXnd9+d/9x9JFiDx9fVl3UYfVUKQprXHYppu9nEC2qQlZ4ol8PtBFF3US4gjRBMqKMlLRVJMp0oWr1XFsnl2iBbKPdVCcBFixl9W8rME6hbXy+HSa4NO+bMCzVpISpl7ny9bd2OSFu3KbdbSXhq4IlazZV1ScU4eBosNap5IX71hgpMCxRQyYq/llTQv+cvNHtf9yMgcIocJSroX2L97wsKmhVrGDawcGxRaAxWTh6HJxBJZIoClUZnMFlsjqKSsoqqmroGl6fJF2hp6+jqCUX6BmJDI2NxePgEhETE4kkkkJKRU1BKpJJETUNLR88gWYpURmnSZciUNQg7dbE4bYOXug0bsMWCufA90Wk8gmgbMqXXiudhZau9/vDRn2YdcMVlB5mYrZftmhyrrrrluhtueiXXPbfdcUieD0Y9dN8D+d54p0+hAkVKFCu1XZkK5SpVqVGtVp3X1mlQr1GzJkt2aNWiTbu33lPgx0QcFaJiVIrKUSVWYy3WYyM2Yyu2YycY9GuiEnuxHwcDnw8+fedF8yXBrxYMfj961SPlkWC87wnSlAc+w4EupP6awPAJzvgUn+FzfIEv8RUuCfeNJ8fJJ9f+qGnBk4fvv7j0zU+850/g/y/IujeD3Z79m723YD9B+wVHzvyTsZ/9z7s8faILnN2+TI+lvfjmbEOp3hfXkJLtxy/t3qOXUfvxv+z/P50gNEZfQmAMz4FvDFbBM/rz4Bq9CeQ0+I/lskk46OKhNitmJowZB8Hx33JJ7noVIUkThz6U8r2L+Cfv3ZDM+lf+P254Cf3lKVD9IYZCf+VD2q9QyNu/THsAAAA=) format("woff2"),url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAGuEABAAAAAAxoQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABbAAAABwAAAAcEICamEdERUYAAAGIAAAAHQAAAB4AJwDdT1MvMgAAAagAAABQAAAAYHcXjpJjbWFwAAAB+AAAAUoAAAGStCX+jmN2dCAAAANEAAAAMAAAADAPHxIEZnBnbQAAA3QAAAGxAAACZVO0L6dnYXNwAAAFKAAAAAgAAAAIAAAAEGdseWYAAAUwAABeGAAAtGAiMr23aGVhZAAAY0gAAAA2AAAANp13fG1oaGVhAABjgAAAACAAAAAkD5oHiWhtdHgAAGOgAAACJAAAA1zH9zvHbG9jYQAAZcQAAAGgAAABsJEsvc5tYXhwAABnZAAAACAAAAAgAfQBsm5hbWUAAGeEAAABdwAAAuwfcW0AcG9zdAAAaPwAAAHSAAACpUxlvu5wcmVwAABq0AAAALMAAAEpqQVkpgAAAAEAAAAA2odvjwAAAABV1QGlAAAAAOAkKWN42mNgZGBg4AFiMSBmYmAEwmtAzALmMQAADNABBQAAAHjaY2BhjmScwMDKwMJqzDqDgYFRHkIzX2VIYRLgYGBiYGVmgAEQiwnGcc4MTmNoYOBV/cOW9i+NgYHdh/ErUJgRrPA8axiQUmBgBAABsguleNpjYGBgZoBgGQZGBhDoAfIYwXwWhgIgLcEgABThALJ4GeoY1jL8V+BSEFHQV4hXWKP65/9/sB5eBgWGBQzrFRgUBJBkmP9////0/5H/hx8cfrDvwZIHpQ80b92C2oIVMLJBnAJmMwEJFnQFDAysbOwcnFzcPLx8/AKCQsIiomLiEpJS0jKycvIKikrKKqpq6hqaWto6unr6BoZGxiamZuYWllbWNrZ29g6OTs4urm7uHp5e3j6+fv4BgUHBIaFh4RGRUdExsXHxCYlJyQztHV09U2bOX7J46fJlK1atWb123Yb1Gzdt2bZ1+84de/fs289QnJaezVC5iCGXoTyHoXM2QwkDQ2YF2HV5tQwrdzelggKNIb+OIaW5bQYDw8VLIO4uhkMMDFfBqqqAuLW3pa97wsRJ/dOmM0ydO28OUKgIiKuBGAC5LWMbAAAAAAPPBVYAwgCcAKAAqACsALYAugC+AMYA4QDRANsA4QDnAO4BjwJgApsAlgBEBRF42l1Ru05bQRDdDQ8DgcTYIDnaFLOZkMZ7oQUJxNWNYmQ7heUIaTdykYtxAR9AgUQN2q8ZoKGkSJsGIRdIfEI+IRIza4iiNDs7s3POmTNLypGqd+lrz1PnJJDC3QbNNv1OSLWzAPek6+uNjLSDB1psZvTKdfv+Cwab0ZQ7agDlPW8pDxlNO4FatKf+0fwKhvv8H/M7GLQ00/TUOgnpIQTmm3FLg+8ZzbrLD/qC1eFiMDCkmKbiLj+mUv63NOdqy7C1kdG8gzMR+ck0QFNrbQSa/tQh1fNxFEuQy6axNpiYsv4kE8GFyXRVU7XM+NrBXbKz6GCDKs2BB9jDVnkMHg4PJhTStyTKLA0R9mKrxAgRkxwKOeXcyf6kQPlIEsa8SUo744a1BsaR18CgNk+z/zybTW1vHcL4WRzBd78ZSzr4yIbaGBFiO2IpgAlEQkZV+YYaz70sBuRS+89AlIDl8Y9/nQi07thEPJe1dQ4xVgh6ftvc8suKu1a5zotCd2+qaqjSKc37Xs6+xwOeHgvDQWPBm8/7/kqB+jwsrjRoDgRDejd6/6K16oirvBc+sifTv7FaAAAAAAEAAf//AA942rS9CXwb9Zk3PpdGGml0jEa3LNuyLMm2bMuWbMvybcdxHNtxHMdxnNuYkIRwBAiUTQMNIYQAIVB60pa2bNs/pZS3O6OohXZ3W+i5bXe32+02vN0u29K+fXfdgx4vn327kIj3eX4zOuwYAt39N0WaGcnS/J7z+xy/RxRDjVIUs9+wjWIpI9Wq0lSyL2fkPL9JqbzhX/pyLAOHlMriZQNezhl578W+HI3X01JYioal8ChTW6inHy0cMmx79bOj3N9R8JHUGEXR84Z5yk7VUGkqF6KohOpil+ETqQSt1CYVxwXVb1tWw3RC9Tskp2qyZ7PwTS7JqViybe1yrKuXTnmMrI1O0HWxONvZQS6EaBePF8aZoCvnCjJTdFAKSFV0Z0A+JQfIgyHqCoVcF3dKPp9U+Ny1eBUfKHJf02ya+ZF+X70UuR1FTudFC2XiEkowRa7op+Q+qQuq16Xdp5eC++QluM/L749eed45A/f3Cbi/CNzfbilI04fhwuNwIQwXFiX9JgsZvEn62+VjvMdxKs8d5o5RR6gT1ASl7EmqfVPptLrfsKx2HE2lcnv2mxPnh/bMCQllNKXckFSbj8PLHLesuurhZe4GfJkT4eWqFK3clVRP0gm85QwhYdcgPUDjvdpp3rPGucdtJCTmi+c6yeHcRkfidbFBuitWPMe16uexfrr4+dq5ofjx2tuN40xAflEMchkuKB70B0wRU8B/P5x3wvnVcB6H8yo5AO+6Ea6G4ewc8u4nYoAdZAO2fT4/+ZPT+kdcq/+JC990gPyF3wd/QT8s+P3n4BzffBb+mI2uk4NO8QlRjnqv99aXj4LyOjkgiwe80YC8Xg44LU+KMlPvO+yNyuKn8D2H9VfgPb76wMfx+gF8oGhq7PXb2FHDi9SN1DFKqUmq2Q3pNK0cSSo1F9QJ27JiSikTDpUSlxUqiUcH6YQSS+UXrZQN5Kw1pSw6VCdc60+p2+FNnSn1JpCwiRoQ/+uzykEpF4pcl81mlUWnal8Hz04pl5rdjVe2O9X0Vk0Gyzrh9Xg96VRXBq60MvEY/KtHdmQGaJ0r+CaPt5ou6g9chndF6ni84Kpm8APwH54aeaNt1RvjsTGb+XMWG2/yh7ds3MUwtMEmBpon5gqvPPpOWzAgS8AF+x2flMVPiLK1KrxpfJZmeVFwxfv3HJ1biA0O3GX36O86vXGOnvNbrDazv8Mh18ZH0/ebaq0e2QJ6HFp4pf/GL1ezNdYEsrXRHmKD+TurRVkWq+tjkfiO3n6j3yyJDsHr8NTGpjc/eGTHrvENbjpkb8E/SFrhD3YeRF03AI9e4p427CW63kz1URupc1TOgxrPp/ONHOUATvQk84McFYSjsWQ+rR1Zk/k6ckQrE2gA8rVWygvXax1qlE7kzdqZ2aG2wFm/dtbvUEfgLEPO1EngZS1YC0XKKlFJtfLZrDrSD9ajJw0czEiKn/BPAg51pUHjJBcfqYs5YxldFY1EtWQXsLRT6kA2uelVb85UvjjmCo0fuuruE3uvuft6l8g2cn5T3Ou0XPyhwWeMOmeikabaSIIRZXjX0qm79l196n0z0frGukiCPUGbW9NV07fsKPzHwvGbLn4jIhvajfY6+dXvmezsx6Zba2lzbVNr1cVu2pxMB6dv3kned7X2QmNLFQWeo//1l9llw2Gg8AS1k/oclWsHa3/e0d5jS6hDlmVlR1K1GpZpZRexpv3i8nlzP2VKqFOgJ0A3MK35uJWq5eBv4mG4Pm9dVuaTqsO6fL5mftSWyCckqgaouhuo2m8GqpqyypSU44w86sOoM98zZN28o96bVeYl1eWBa2Gn2tkNNI8n4N0t4FeG2iVnriXTjX+wQ/o8ZXY0j8/CXwATOjKoJvFWGnQHyesi4l9De+Ayl+kgFhFUwgVXUCFa8a1GjQOgcvinLF5wgnZxcNaJHOmf6H6HaDK2RD/zwF3n+xuuN/P8Yd7P8YKRExjbnS6/aTfL7ha9Ve8X3YKRD4qH3vXcT//Xvj3bszzDfdhSY7/z06yDtpglm9DR19PUQp+558btO4R628wtI4cffeDoocnOJaFW/IFIW52RZNWoXfTI//QzPsR/3t/gsNtsgjD54lf33DFlCgh0VhasNzHv3tzCBDxVBjY20xFLoX7Q6AvpOd0XrvR7DsIpo7SsSprrWOXt0Ls9qXu3JfBuld5M++zB18/Sz/NPUUFKpmilKqnQF1QbfF6IfJ6T6SJUJx/KSC6nl9CWr4vHmBE2Gh49Y/ALLklmD/cNGJx2Lyfw7A0PMnfQseXrfvQt3gaO/R2Fhm8U6r9ur+K4h+gh8p2T8J1/W/md/guqWPpObQ1dKa8nwGgmDpeScUodzIxBllycmWevfzDD1odH7we1ccO3X9fPHydfUHiu8FLhn5ev++dv8Hbw1x+iv/N1+l/Idy6wY8wxoOEGqkGzLflenYbjSWXgguJM6TZBCaTUjdriicdN0q00PqOgVdpocJceFDXwviBy1TR62SQd4yvtMbwWS9ILJrnWTwdqJcFSI0SsNd7GgDwoBxq91dZ6oUo0yiG/PyybxJBQZ4t64+TFuDdsq7OE2J/FQLY6bE5zXIpbBZMsegNBtJ/BgFeUTYIVLpsdtk6rZI5JjaLR6IQ3+PANPr9HdApGWyOsfZx6mTvDnaCS1CyltCSVKgAhxmXFlcq1cAhBWqJCIse1FNEIrbQllYYL4BrVMGi4I5ULN+BrYT+8rSGMhw2UkFDbNXahOoaJiSO0AbPngXPioCJhsHmSRg9iAsMACAMyvRfv8GZ8oJfwsfCx0oXCJwBZnJ0jr/nJhX/DR3Kh8Ety2aOBRJqaff0cnaS+BnoRohQuSdQBxNcE5sqcUgVbUSu8FZgUWTJL4KfVeMrf0v8D/Mg7hQA3b/fjZ87RzzIvM8eJroGDUTl2Gf/Dz1YpsGuCq6Rr2sKLC43NBWRmCD/t0nMAbn6xAs/CvcJDO7nXRipnRZQNn1o6KGqyIC6T/7RvyKzC0nDfp/FT4aGl/PE0xgb0q8Q+bNI+O8cR9K59pslJPk/pCnxp4NQfxil3wswpVKtNoZ9TBfd/corpOeY8RZuEVvgfrdLwrAwFaPz+FV4OWEf72KB9wOPnCv8GB/0ef4a7aHPXel/j4FHD7bOvX2R+bbiBcoG0tVM5Jy4waFkmMgU34wYM5XaoNUBJC6wTREitcYO/tdoIUspIAwwolRekCDhVB6tupcGBImgCQ4Qi1BmLgxy1wh0Zefes411fPibOto9Vf8fmG2jk7/r4zxnbgInZF+A4o93ChHsbg2buj+z1Syca3Fxb68jUxfc938sw7tOnLd1uhh3lrGwj7aCBX4LbEIh4OJHYW1iICegZQFvhQHoaCT2DSUUGS2VbzskiaoFMgxZUFYWhCM8rBR6lbdr1FVrmPqEHPS3+WX8zN7XkdRxjDQH5NQ6vc6aQ354BAURdpZifG5aAeoeonA+p5wA5McD3qzF2+XyLz2BK6MSEqEFtBHo2OtQ6oKPZhipNSNqIkKYmq9RJeavBUWtDl2t2go3F0M3h015skVSxNpsl946AhWBKI8QSlUINVixDo92L1ZUs2/iGke+f3rs3Xfi21VdFtFG+9A05wNPvD63bORSQz8gB9mLn9NGbFnbddMfc3KVf+Zs0UZWPO3jmmbaOA03ZTGRKk92J118h691C3UnlpnC9sgXoO0XoawCD04dLT7DL+XBwqs+aUMPG5fPpqT6kwiyhQhdRdYTqgkP1gKDXgwGHC4OpnGcjfownBGzaCmTxCCBpfVMALTZKyiiQIhyECyNjOhF0XatiqlkC0nHVsF7d6MMTQIoiEtct/ACTJrQCJ6VjdsAbgDsmfNL7IUZheTPvGehPT6yTXRZBPseIkq+zt1sThK13T9/3/E6REzuavn1u9jM1IZHONtp9sljL+HmXxSmZI+OZH2SbXadNlls+5Xf45OBAewbJmOm5br7j0/c9ft16oc4U3Tb6/bs/u6uvr1Pz5wD0xkF2s9Q+KpdE2eXR2XXZkrw1oVSn1S7TMgQ4OVsXksbmQXPfk1RS6AHVBEhTIJVLpPC1RASon0rgYQrNfS9QMJECgpkFTVc7y/ZBiyArXUBlQFrpElGoBlkaA8OzEBgWfgzB3xHdqAVkufRwWvcLwcJJG/uUKNd7Lz6JUR5N4o3CD/FxNz7cXnzQ7KwmT/NgCe+gcpPFbIZrEpfh4mBFrShPGdNyfig82QryNMQv58JDxL/FkRjTSaXpgtprJaFhbyk0hCMvEGAMBCuVUjdjlqFXcp6vzwxNonaNSUoXwtcw6Fb/anHiiDh1Sn0MxnyROh3SILlWeUoPiRy8xIYQ7DphMX6FN9MMx5t4f3aolTWYTfAcYUPGO3HhTKToNF3Chtn5dzvNvXPz1z3413Ra5s1mXmYl3maymm3GmsEOOsx6jbLFKdQkeYiVmRMlGhZegvc2Xj1Znyn83f7b29N/oedggJbLhv1UE9VPbaNyDUjNVogTupNqDeAHa1JxJVUDeq8B4ngDQJxESgk40AgBblAjJMBWB4Fa7QEA9oZQQxZNUE03kKkqSyIrsuIVEoL00WlRTZcoASg+kwYtjHeA9QctBPM//bnJLee+SrSpN9Ph85odwqbp4w8HO0Y/8eG/fWkgwy8xjDBcH+4ym+kkyz+zNfrZezQF6uwJVnnDhd9ZRM7LnLy58Ork+Pji//eBrvX8bS80mmpjdW5voyZPY0CIn4A8halrqZy96FtVr2k55yXgyVuDUlNHvFvQupwLUng1KIDGRDSv29/+m2H0ujbF6VDk58Dx/adifo46b7Y4ZeJzS0e63y0ji6Lnzei5mSKdxoB9gBKZwuOgR+dAj+g50KOHcG2H5ADXchGPToivnbK66r1cIyrOGKoIS3j6b2Bv66k24OphKleLXI2DjthxXT1gaDtaau2gGB2cxliKIMEosLI9pUQdaiOuKqWGROJukLdRdDeGrNIoqbV2sK4hp+IDLne0gIKw3gCvxW/gZSAGIx6lSxdztJy8S0tmoOEkwbImA0QbyifT0wIjzDisGwb/YuamgY2bBGHTV08ef87N//j2Q73tXf196ZuGE+khOvm7hWGh2rThxmeb6+u2THb2rrtFWRwW6o3DB//vO/7i1PXR+O23/y6Z7U/QN6YHb1Eae/riq2W9j9pD5WxIlRBQJWRDdobcQkJpSKptIPY9SZVHQNNPSCOB1QTS+FNKgrhhzBCBJ1YHgC51ENXmeFuMyHxbAxApqsk8cRuwQCLYlUEFiVMROMAriHzAqWC2iLgiY6TOPR3d+M7Nj/3N05OzD32V2MgelHvBLkzMHn/4Rc40Ggl3msUhkHw2QvODN+7s+OSjF199drZS8APeCO0wiywI/uMRG8q6O/ECSj6hwzyl0Gk2QvBvooiAlVASzaieZ0XNRo/r0zB2eE2sKq06ny/nfcsPL5ZQLP21VfnfecD2acZP7iNWvA9yA9IFhUqpPvhmUwBMsb90C/Kqr5RXwf6KW2AC8kmMAE76W+hTpW8ubC1FA3OSX/cn1Hmun3saYlUKPw8UUUu9QdTnpTWXHweQOiEJ7If9Mcly6VwoxBy1SDH/xQOCxBw9bg4Y6LNmf+BmMWAovCr2iIVXDQHxSMAn0A8ZAmStc/Q57r3sB8haA9pajRrNjWTJFeurxGbS5QEI+wtcwEUSIpaP6S/N4iE+0DdtkYNBGR+K68vB+j6L68to6+vA9aBQFtcHa41NSBbmaCh06RyujP2wIEnCxQP+2C9wVTQPq6J5fVWFWwx+M666cKvZr/ESaxc/BpvTCKhkP5XLED8CukUsaS2g2niGMyUUU5pAkaYLijulpsG8WFPnI+kmU0KlbOiDiTtJO9QqSwJjPAJI0hEAJJwfFSzeCodSoAjmNK8CfK/wLZjj1izKWjKC56N/+dE7vtZ5NkRQbCBxW3w0eZhIzI+0Kxq4bb/ji0/dets1W3+QniYR39DC7v4n0xPXNbbf3A7nF0crhZl5/f++fo7/tuEMtRt8yKcoZSGpjnHLubEFtCxj02BZIFALpNU0hJqL/LJyEFYKT/3gW9EEHya56j0ASPY41Kthze6GVCrfThJxSrtDzWipTjhTr4NXr94jOb/gC0QM/WMLiEzaJcWRVc0ZIM7kFqTTIlZxPJPZrHowLTnz7ebM8Ai+MSLlYs1tWUK/AaY+XQuwhSTZwEgBpI13aH44ruEWCBdK6RCwZGC4ujo7MP8cqQX37aimuXSqvpw7wnCNi9TWxxmDy6MnRMGs39/6gW/R3EM0Rd919dDxP/uzmw/1B4UgyzPj+0dvN3NH5pcGOKdP2i8HorM3X3/mvoM3Hiz89MLVt9z2Ndrw0Gdp73TCz/qMA1U+a8OemV2F33+g8G+Fjdd/mN3c0NUTy8y3s09f9eTpTefP33zypeN/1tcTtdRyLM3MzfTVuukXR28aNsCaJB/EL9+N3H7bn39z+466yPm5nxRe/cXHdh6aToQNlph/4pqOvulfv0AnTnV296bo/sZ0dz3I9Ajg7KcAF2DGulmrmylimoh03h0JceBA3SbgXktSbQXtVTkQVKUpWw6qvVqaMob5pcoqjY6l8TJvHKfXswHbcVuApcf4gPfd9iCbhMj7Bf35nDdAz3N+z36v39DOxRsMEI9bPR7ra5wn7Lb9xOYmD2H6997aWu8vPU6nh8I88Bw8RODeq6hOwMnzVM5PaYqoxZkTAI6zKb8BlpBFAzRNsE0IlK8rpYQ0ADCSUmW4IGhQWG6ExdlAtrIYHzisKEMZDd0WKxUu3dsbianKkAABUABITUaXm7ju9PGFDrjcpVU0kgj23GDb6JH3n5xY38OyJ1pmHo6MYwjw44A8t9ACII9jxiWXiYkQO7cQsvHRgWhUDON5Cwdg6PaJk4cmj4RoMz31yONXDZ8MmwIX5MAw7+XE4OPb4maWAY9AAypmaIa2hQ9uTXZ4jCa4RmzkzOuvsDVgv3qoHVSuC2lVB7SqIxFUXQJiCkI2cJDnrV0kPO8lFPOhj3SocQ0Lt2lYuA/IFYcIXDV0oTJa64BygTdEwkCQYji6skSEaVGijDNfmpn++P/02N9jd28eHl1PG4yiqXpqu8drdls/IdjkSPSJHWf+1memF5jnv743/sx7onaPxx7tH9/UfWnQ4BPcVlm2NEZqqxsiNrdV8G7emu7YdfpoRsMCFBsleaVqQIs5kUTnJl1KgijdNWShDliag8TeBBDUaoBAj25IGaTEctR7lHY3OGM6/Z4Xv/kXhR8QPo48tTQyrnPr2dOXsg9+M/BtOfAY862eSeAC8ABuaBnuJUltoHIteCf1Ft2DWEFeXaEWVDmXqZRpCtu01CWB4+FGsLKmlJbD1BOXmTXCrzc5j81omBuipcdIGpLUsQoEMdD7SRLkef3+A/JO8to38ZHkOgvfxsfriENAn0sxL8Fa4tQQlYuWYgpcR8gVxXWEcB0Na6wDwgp9EY1vdRFEnCbg5vvJnTxObrgiij5VumvtVp8rh4WilqOZA/kfBPmfo66ncjNI+06Qf8yJoSLkB8dmjHDPg/zyeWnGiPK/jdx5A9x5g0PtAfmHQGGSZGWVSYc64lxWRpLqPIjLCILiVFbpkc4b6zpnwA1R6mCnbimJSpQjBV0tIIjm48UgEZSDLytHqbpdlDvdYc3ZrBs2/uOd3wmKDvETokTTLGcwmY2hLXv9QRue8YLZWL19HyBpnXV0JwTIddf/8J1/H3LQu5mn+xLti0unDzesqxIlSaziXAaHwcpbzVZTvDEWiV2a4zycZLDxNotdSCQawm1fw0+ZIUR875aN6Y+cPtSr4a0F0KkEkeNBTY6VKs1rKK50XowSKRaNJSlu1ErUjQ7UKjQjCHfL8luRbanMvpTyj0TV9PMFgnkDMrm1k6WH4qkuAwUnWf/L+KglJxkTEe4/arIA90+niU0Ir5FrRvUv590zq+5oofy9+reRbyB02Qvx1y/gc0PoTYMoYybQb1MQpJ4yYR5QIl9TnVSsF1QPfEUN+YoBGiBdylsKnIrfR8xjfC/tut4Y4FO9S16PiXyvrfpv3vnw7Xti4rTBEGmJVcfZFwhK7t0f2Xt2p5Z/ZW+G+2hFi9dcyR8HwNMkyXNg8BMHi078ejPYckuk6PGKDMnI5dR50dNj/RHwaJEa40T11tt/wwWE26r8ttcplmHpYSEQOAOg+jtixg4uv5IzN0SkGvqvBEfCX+jig/ylan/MaaH/TxXnv42XMAUU0HPXmP/yIh3dSEdRt5O04ivyKCcQayJIYEf8lwlTpdGb1mMmrWSDad4i5yosmi7X3CB8byfcQS6NdPNV0K2LfHMS6JZ0YMYc6wAIXNUkpZWJqyRVFLJZxe1UrGADuDTmGWsqqeqVPakiVStFnC+3HrXSlcJ+Cqj4B7FP/BUEJqf0lGJ9QjjOBsS0GGCPC4n6svFzWi59rqaGmbU4S2If8vjN7sKXzE6nmR5zm/2eSz/X7Tfq8CKstZGaonJxXKtfX6sEa20ia8VYJeJQrbhWkNYEPEf0tVolpZqsNIQrjaP81K5caTV9mTavXt1pWN0fhaZIMaaF01eLp8UVKW4h4GVaiormFJg5tzngufQ9sg6G2PURsOsS1QDYRvPvvmJcFsVwu5GsxQlrcTrUIKzBBHxrguegE25b5LLF9oiKfEYcExfVtJ7z7OhqZUnW3D33w8c//s9fmdu7/7mGOvuLrNNVt3XLKE0zvEVITkzP0LPMs+/55rOPXxr/x6sb96zvGxnw++OexPZ1zLPGoMlpcQjdOwe0eBJcEBsG+vvhvkeonBetEMEkUfCg9pAXkavdVLp9BKqBlCITG6pabNoKamUNs5Z9aMnLlOgsE8uqexbeDQiAHjz8mfbwP/zFeDGDEZDHn5gb2qkTff9cf+s3P/iXoKyIFJj/LQdOfrd3nMBI7LV7/VfsR4DeYbD9+6hcFdK7AejtKS2gD4k+RO66Du66zqF266BqGJ67ASyqVQZQE0E6L9o8AeIvG6ok53mH1+7HIK5PUm2WrJ5lootc8ZQL1HpPRAWTMsUaN9rRcqfKNvW29/3MBgHSvMTa+s1R62YhYt5x9+b3pzLhF2mHIz0RcHM02wWvDlijdtG/Y8OWMfCVT+746KG/OnOpf6bRGOAGxUb7sMgKWZ42ZEdSHdfPVnsbnV0mWqCjYoN9xGYWRDtzfHRhxzrST0exVwNfo2BFgD4R1CxnWqNMClgbbIwga4PoHjWLUiNiMUOpIS0+pHKKRqUFu7O8SKWc1eYh2bcghl92kqLU6FMBnLB4I5dN9OUC0FWSACxe73z/C++12vhvgaHGrrWvgD0Z1M3LTwLykenJLWM36+LwxbMnnjhgqrde+q2/XhYZEfCUXHDAm1lBDuwYPTEyRbDtBOjhOMjFVupWHV/ZMR87gzbajjWLKFKgC+KLmpmoKaE292AP2xzJC/SLBCD0lwoV/Vq/WltKnYALDSl1G1DE2Q8yEoquR4SlTEjKGCbh7UCSsexbaE8rVrmu1JCm5wpiEzazorWgzW7cWdGC9ofOPe/e+tiLsvi4KItV4WnsPTNYBF+0f887tsxbbbPTX//Ojt1v2nM2cGyp/2vv1frMolHSZ2bykT4zn91TG5/c9O4jA9m2fTtveYdeC2shMXqP5gs1ywbgWhFTJJfou6BK4nJO8iGpJQDXOZ+Ehz4seF2edasUDR1exQaDMvNe5L9SKls9JQe5v9tdgtGvfYnUeMdKvnIe+I0YsI7K6B23Nt3qKm5gbKToprGgCUhKDYBc18OzJEjEaWgmt+iuS4a26C409daynfaq6o3rRsl9fe9DO/OxOi89wpKOiov+cDQcnesunp17frY/M0vuD3Mbt5L8QFjLDWjtt+jIQ0m1GmEP64dbMZf7f4nPqgQ9RJvGuID3nD1In8TcxGk6aH/IGzQU/oEN2P7MFmANNd5aj/3SAuYlmCftnrDnNQ6zF8U6JncJ7qGDatL61JRImtyGag+i9Hcm1S5yI9gwZnY3aXmr8s0U7wU0u3xflUihdDLCBjzvtQfZMcOk6TY2aN8Nx7ebpvgNcPxuT4D9O3g+A9dOGuJxw0k4OSn5WUPYU+OzX3o5wkWYAOZZLv0kYogwPruvxvUaJ3ncNmYW13Xpcza3x67FfOwpgvt7dNxfm86ZNNxPwD57QQ06tI6IIAvaanVEG4h9N7WA1cciAuaOujribOwyPGRkMRtdNGGxuuLa5ugQyxbM/gCihVvEHvEoYKHTAb+5wLJ0EK4j0nwIrp+D6/cH/IPMCd7PMx0ILAu/q6mhHRZnzH/pb+HipZNwUaBnQ6HC5wRnjPBoA6zpIJHjlIbZNTmxazJcfUH16oLrrUaQYyKN48HLBacsNyu0q3NG8PvPiEHuhGXIcooLimf8fqHwSy4g3ysHGIPfG5PFwukaupY+Lsox76VeTry0TKCbFwRQ64shtbso5gzQm6gBi17nMiE8iGktPTWuZUVOYZ5GrUGIhrWrAPoLNquYJJXzgsO1OxVPllQ5sBSnd0aUHMiqpolRjj5lCQQKvylWaLnCnXBOtxMM/RVwDsdFjn0KW72IgThk5S7OemM6nAZZKeTpZcMc2K0kpVQlVReHxVYtG6x1uvudJJkkWZfJoZAqGivpMmNVqsTjnU2A/1pfslNajf0v5UDhJX6MlIfw4dUX8bFbx7oreovEIo/X6C16/s7K3iL7c6qx1FtkNNm13iKjvVzj1NlflNpxzu/pBS2jg3AwAAdoHdy21zh8hPuYApr8mtCkm9CEBZqISVXWaVJzQbGnVJ+TZNyM1mXFmMSjGrhQU6yfeLW296LhrkwUIG06pyrJAmQKBglxSBnFEC7R5z+JOUfa7GJe5voMO6kgFaFImwWmfHNuHj2IOygkFFsK2xuLvZSx1anfsqre6rfT05xPeFHwcfS03R86Kni5i/Y2+0W4eJR5udnPyEar1XjpN/5m0USf83gKR41WvIelwiuG8OvHtB44MZlnSUO0/kS61qTi4itFtHMJPNI1xDt9RA7k8SChLQs+825uiX7FgJ/poRRLMs9YKPuKD3MS3tWUMth3yzULvJ/7gt3hzRjc7EuG9R0W/h+kqIn9utYT9grzMvtjKgtW8B1ULoXWryGt9oPTC9PFDg3SV+gCquWF8VQYYJ6ArciTSYW7oFSn1B4AMz0OtRmU1LoulVKjYFqm4KSHA0XtzirN0nnBF04Ri9mPWegkthCPS6DhaDm7+jBBpFUjEM7FNQxTbC4tQuUSwtGKHhxpHR5gdfznnu3v2ztzveQzGp2B1kSvhXUZH/V6OOfnT57+LrFKNm76yCOjBpOBZf51NBlqdIusT06c+TLvZ47clEo3+uTGZofNFWqqNdk97mseefLYpaNIdqdg4udvMUlWWbg90QcGoi6Qln27SR30FeYPei/arN4RVq2jhZyNXhmoBTUwGCS92qpLj9VIl5PNh9bXFoVDAQCwwkkQiq4EEqQJDDsu+HLbdCkemCelL7dp/Q33J+o87P6D9555/qWO3o7ugVR7D51gC8SWHBWMxvH+1Fhzoeb43Pz/eCDbM5Kg72/rH20kfXWwln8HOWjCHT2kmyQAKwmQ5tJALebRcT1OuOY04DUnaUZNaHt7YDHNRRtH2OXVlQi7QYx6u0Cp3qQtYXr6I1fd9WU76/U+InhZoSc+WO3o6G3uMjFO4YMuL2PfevDe+78CInDn+NnFR291O93m+rYWd3vhVLanPWqy+10Hxuc/S2K3bTofGuDeb6BydVqGQ02CQ3EgK4x4611mYEUf8eV6Yx7mOsQUyCsmPPqxNQ98uxInCQ9jHbIkiUFdTQOwpAuEFSJqxehUzSI8OyTFiqIb6ypV3FZnBcqiymaK4L1TQorYGPc8TZ+67oZJzhGQ70Pu3IfyOX7LhxosDjP/osUgSOuzaXpdU12r2/TXYoPA2LbeNc2bBPqRcvLPa+L5hY3ummrHh1t8ojXcnaA/1dDhbWwKVuh1jEpjvFZX6t6rI917PuwqRrK0s8v5JrEOU5tNqNQdWtVAxCwaFg4g5lKNcBZMqZ1w2OoA+CNynjoMVoySYqlIMhTz2qVmCaBGKfIAnS4HbBFQ17+954GvglR+VA5sqN/mZ93GL1m87g1j73/nF938Twg+vvEI2IWjx5WnTr6Ey72mJjNhslvEmt7k6Lp7bkjQ+/Bq+tixIi5mMPfZTW2ncq3oC23FXiBcpxJKq13glqJg9bNJpZ30zTSJ2BySa2pHkjTVgVNwpnLtTXjWjkFGD4JYLxoxoRyKdZVsVdGT43orW+pWRyEjAdklB0Z6FnfF7R6f1DgTkEmKYlyvWZOX2cURUpy4tast5rEfkHxTJNlNLl6KE7DyI71mTW0rHGFeYV+k+qjNaLNJ1Wsd8NZCE8iqbjITz9oMl5prcDXNUVTWGRR+pS5F4lIIRduAn44N2KYB8r8F94Wg/PdmlTbpvKWmsYvY63VdoAI07rjZJClcVrFgYqYk+FoNYGW5uVT+0kAEdsnoTTJa9MOUkhv4EcREoDp4okYudeu1m0yuIHp5T6jp7O6T35TAPjwquFihNzpebQYTfuPAO4Jm0fSvtM0R6NkgORnjSPSGPN9kYELtbS2CoXfCaBR4EjaJg9ti2alHbnY7nUJtQ7fU9ijPczv7E44q+2N+Z7UcijQ30Ucj5rqmY3rsB8TV7MhmKhdDK+JNVxjz6rIxr9OMeZ2WeCsa82CdXmq1Va8y5ZlVplxvI9SlJFKWmaIpn7x5+qRdQ9PXp/rJxWKq+TazYBrftd6ZvkQgD3PiyFjjpZNF2cAaQFbfj9KmVwFcjN4whZpQ2Sgkao1CYqlRaJUJW90otFButCg/tLC3EXKfhUfuMwfITkK8G4YaLxynnyb57jjgi1wVSQMKyzkzyqk7qTKCVknjL+Bt2OFualM53o4Sy3tLZTRvx6oKigYMOle3h4yL5qEWckeO4GO3ul2nyrf4gjjUy/6BWM7CUOfEARffTfY2LGmYHnNb/SviP72ukHMQgunlHsJzUuBRHRD35QQsLazN4oqgdmWFobwncJyA2UH5WS4gHAn57d/mWQNts/mrHrEEuEctbVKWNWrbCTS+X3p/nUwSYklv4UfGGqEg+ROSmR72Gz2TrNvw/XL9kn50ZY1BWFVjEK9QY6gk6gShX6zbxBhsgv9dj/+BI0L32u/SzQb6I2b7MV1vOAV8TR91kMr14HdWJdLpnBuVhrOl02q9GTtz9bY8tUtTni6HmgSlaRBJJRLTv2iHsDcv2UX0SGmQVNkBFK51Km7QKnc9RqpSZToeTa9ugUr7+kobWlZa4hU6dr8EOjZ247UbhBphy003Pqr163W29+NBcHCpr0KyJcZsMq2bEGjTxNmDl0aJzp1Od69ruHRcO0726cclGwK0iFPrtfqx4kkT86FwadTBUulYI0LYoQawSQNW3ojZpHDRgoT0PdyXr/TNDcf6G+4bjBK7cWOqt1I/eYR/i9FF3WqcvGG08dIJTU8RK/wO7tlJ1aIGYCet6tHNhRpC3BTWkvVwz7IDJQZA0DLZ2OCXgSf2FbWGcoc05rErcersVx/Ye3dX39Vzw9N7P7z4Ul/nUFN/Swa8LH36WK5vcP11heOLDzfUbnj3YnposJs+2To41EJ6HQrHgaYvQiTXhv2f3mJXbJGsLewy3CGttGvNMHBrpvpUsR1GdcJ5CtFdCKG2F3GdN0ySdUpcUgNV2axqaynumF9F7dJS4rHKvHM6tRJ627mZmxbv87a03Xh8He8ml17q7dvf396RLTzJvYoElwCszZ3Yeel7vZ0d2Y28QSjglirmsezQMfrOtv7h5hXr7MZ11uA6m3U+KFbShKZ4kgTAwDozwI2Mxg0hCV4c19mDLMF2Mq6G9HJ7YF1+DMC0dWLpTjEWM+yr/XZRU3S41uXS91qUlWn+5IEjEyYXES/y4OSnD888KHIv0ZxB4F0D61oG013pF5j0lrsnTIKZwNTXiDem3y8YjNN71tcf4CWz3SGEN/TQt7X3DbYWzrKU3kMyy/4zFaY6tZWXuOtFAayriKGwdxt4iIUEV1axSWvoSUbrBI1XGoEZouRu0653ufwGttZ35FbNvGrqIYlmfsJG+1yPGAy08Z7dl/6g+4bX/8D8nMTHR/XuSDN6sAzaTzMLKDqAShIHmBkP4LV4WN+14b2gNlmXlSatzpi2aj2RTV5wHFnZiI7DKn3e5AzUt2YQS6edueqaJKmHxM3AQG+a2LkKEEV6+LAaFI91atzzekpBFu92kUKS1haImxMYu/UDgo8RRxoy49W161vmt7Z1fuk9d+3YYGfrz0LEZe5vaM8OZDesH4nO7l06867vXBQlr6muub+xy+f32Kua093X3qzMb9he7xZq64ca29ocbm9ddPORO+cWPkgV88AMx/1P8Jvrir0yOgJtAaiNcxPKmxXFt7RZUcfX2AvquRKsHgzKToiajGf8zQE5hDwMlWCJUw6yS6T9c1oIcAt2f+gJ0gtKHGmUGMAf6z0TYPteYb9HtaC9bkR7XZNWpaLSedO00lr0mpjyx20DckqtAl1D5xXBrH8j8EzCLrvYShjAYwGGmIo140JQMQ1P0TQnCv7+64PFFFfQyW+4bv7dZuYPDClcXPqQIWj1ui01p5iDJaglO00Gfnb/lFPjxShgmCyso6IuQP9JdYEJPuA/Zwuw+w3xOL+fDdjO+gN84Y9cUDwlBjn2A946j7Ww6HE4PPTjVk+d9+JZq8tlLe7H4J6DeyjXBerT5DZUe9VldQHBs6ouUE6Zr7yxUmGgnDuPT/F+H97kvLCRn2KD9p32IDuNNYA5ODnr8/O/ZYPW2+HihGncNAHXjluDLPsBXxju/VwkQt9s97hthXNYBaCP2txh38Wzottto3dGIoUnbG63SNazBfuBYD0EF+J+LaUurYFXj1YXMIC3kbS6QMgAgbHdGW8iUZM5ib2WDbi+VCwjlysDNbQnVdyMSCoDcjFPF6vTukwP+62/5LgfAhA8bQ4Y5sSMdTcgxFNVfts/Gww/FQPBU3D5KrHLehAun0746Y8aq030nf6EQ3iqKvA0aUE5Zao2Fq7yNTmEb1YF/kZwIG8Kx4l8xDAfSkTDnla8IBmYbI8n1QbCmOpirLtGHYPmVw0o6YhPmzQ2HDSNmVBUznlBVL4/+pofN917UqNCC8Ow7/XVA9WP1tXR51BeXvvmS3bhAcHaXPco6+YInXFf5ZNwb6QWQDIVAbCxdhQcE19RC5DXqAXUvVktoDKVrNcCKjPu4zzdC3TW2gR/LcO9fx1OSXvVpVdxH6+DZzL+BBgRss1Z4i99C88Wi31Rg4UTzCOGI1Qa7hsCQ7XOtKw4k6rZrOVRWi4ofEqtkZYVdypXQ7Zw19iFhBLVUik1LaS9lFKdmGUythSb4zOlWIfcp03fZqXhKo+3jM3REILxH/Sbr378uUEImaWbxuvbRNoyN3mNMxSQd37mseZeUaa/u9dSwzaeppceOBGQr5ED3KarC7+Y3lcnxIXh9xV+fXCaDzp3y4F7PkRPbtzhZau0nqHCU/SEYQ7iSC9V6iADWRfK8wwu7yB7FOkED4UXeNJf959Kqa66glZtSZWFkEBOqgGTRiue1AiagVbVEAI2kxAwDbTyaLRq5glAo1SZBVpVNyOtMGuu9ZVlurTO91i8vGOH0ErfI1F2HYNAo40lGlUHgUYfa+oVnT7zVX/+/KAc/B1QZ/pqOlCkDu0+uAmoswepU8hPbPeCWSHUvLfwsQfepfWOAOZnkoZ59naQ3yZK8SfBSqAMnA+Z/aaEyps1CY6jgvHo2h0uvH1nrJg8SacG6AwZYlCq0kfqbLQRW0IWGHHzrsP3bf5Kfq51R1dECAoJs7l/143v3va1bzb07WttgSuNzE31tm19o2PrGpsjEKY0imFx49D06PpovAVO4yQvMFJYpGfZL5C8QD1VuWlo9RAp2kTQfJAuFWnX3o0xSQcl+EdPaVOkKrYOFR5hn8ApFhd3ukIh7lOH9K1vJD4aA3/7E8Mi+IqNVK4X/ZSFxKYbiITV25aVegcGgYqRDH3AQT8gGONwc/Wo8+uyygCo+ghOgHGqtbFS4HH5lJ7KHDRPtkFU7nhYNZwHUdXYPdfavGSLq9u671476/G8FzPT2Xg2czTRiXnpj8ouRnxg0eom7/JYp+/0ifRF+s6lp4KGkJU0Gi/ZQ6z73n0eP6arR5OFU0cxWe2R957xs1U2rcXSFuLch8dTRHZ6X/8J9zOI1w9TL1IkW62GcdOro4iTlC1JdQx0ZcyhjNRekNRthmXlUFJJp7GMhMN3mgFmXZdUliAgsC3nMkv4h5k2IXE+mlkC8bOASlmSalRazlmi+JoFEBfGDVV699v18LxkkZx5ll/Ycwi8l5qJwllzX//QNgSmVdKQ4Ai3dHSPjG3ZihfczpxrfCNBqtu2AEt2ZNWRMXB+fYP7FvH1Q9L57vGNS/hJYdRWi49YNs1tYG2nUxvCw3mLZYLOUqEAM4PVWhuhBvrgHagTxdgXk4aktlVUEzhA39lFhsa0MvhpvT5pwGo1dXh8Bzd/5JeP0lz/djPg+vvsfn6k6aH5u/cvRmbM4Dt/iCL6AU+VwVrbkOlmOOZo7+INR1seulGsNqaNvOWxT23/vOoZ29dmi1mGRJN95gBvq3adkH3MOfhLy3TnQHrnJ9t2b9t27IMuf8C+OJ3q6O29oWXmJslo80myL+KZPpPoTdAcSzfWR5csvP0aW7VwPJ2qqREM4ry9ydL96Da5JV3nQ/3cQr3LcIT7T4iD9lDnKaUrqc5BTNE1hyzrSgLLdiVVG1yx7SJ7w70YZexNKhsvqFusy7mNW/DqxhF4H5VStjjUBdziCC/ULRQ3QuDslH1wdctGyfmFXr5/dGzTZmTXgnTe6Epl8bDO+YzHHaqJNSTbCYqZ65KczzQ0taezvSOj+IZd0vnq2PpNeGhzPkMZBacrGNpMtpA6O7ShK9VgyhiSBUCIkEKjhrgG4xKeNLvhOV9XbHaDuFo7jZEZDbpwAEtJDUGfBMRvsQ+Yo2bFWGceGL6lb/PJjeY64XNi1JKVpA+KvDDf0CTw4kfs9l5LVPy0EDaffvqR95jrhSfFqLnPbn/UwgkzTc1A9Mfp6D8+sONjV3/v7P0/4O5psnUItPlRI2eoCvoB7LLGR83mlD1uPWOJ2t559/j1w7aI5YytwZa2WN4jsPz0NLzlfRZL2haznbHExXecnLypH95yf2HdXermh+buyuU1f9APuDEHOr0d97kPFG0cBBP5sakBizWhtMKRpr2dqTy7jVyLlTS6BjR6IakMX8DCaq5nGDnYE8HNBT0pCJyGe/DCMIUXhjdC+LQDS63DoGmYLKNUC2bxnRUqx67RzcHqY+rKU+qQde61Iy09MNN3Q8X6A/JVfr9wco0OkFNwbVEKBKQnxIAhI3j9B/DkWKlyTwqq+wIBoZsNiE9g1UMKxL30zKp2kYLijQckOSBZ3u2tZxgGjwNy4XoC1N5HwvVAvf99Zqee8y5hlRoqRBGnZicJbpNEEtx+qbQNdVW2w0+/IYYpP9AiQYTfJRs3/8Bo3daf0Pt0+wt57pRhlJqjrqW+QAGUUddzy7n1Hcij9X2gdv5kXiQF/5yfDCbxy6i6h5OKCYIH6/L5bSGTKZGntC2DVDK/TTsyOZQs2Pv8kHYachAf2AZ/cFXbOPxBQ3lX4dA2CKdY3gAmWR0PSc4hs1es61g/s3vP/oOoqldJ5xOe1hY8bHMqDhAR/3qw16a23Qf06V1keFdMGzWyunbr8kIYW60rsK2cYCC7xQntyumJVkOcbBT3kDkxKW2SV7w+DiC2//AOkbWMn7rrz5/6tZP1updstaz9jn1z60bS4Zs/GbzhY+ns4Tmb0Tx/8sTnPv799hrbwxYn21x928juU/uDXdF1tYveDy3seWZ/b+E+jjbT6/YcGyj88Xr76HZm5/Z7olyNeXzx/rGxjz3sDtXaN2+LRjcN13m6Nohtu3sHd03fE+FrLZuuPzczvf/opm67KJn7e+OJzVN7exwhudrWYB5Zt/7Btp3VxwZphrHvznQe9t/e7pwnuUfuLPMlwK0oW524/1epSuc5C1XP4c4Z/ajY+iNYSZLAgVDK+kZbn6OX774+gP0sB0DSPqXVTvCBe/YBPFr5QJE9gqOv/xv/sH5Ps1SeyqUhVMpHifXIpYmXT7eApaDJeByy+1FrVJpJ5rPau7KkgTU7gPMtkzj2kla2kjF9Dm3QloNk5IsIDOBCL+lbza/TLjSklHUO1QfvMGnD+uZgyb0Zyfl50VUV5Ugr6zpJmcRthzNgjiazSlr6PGVy+JonNJlzZLrCtV6P5DDy4VqsDXs94Vptn2q41sjTl2+5K6I4XexweofNoNUaR3/1W3qKnvzVb3/1ciFf+MLvf6U8+yWao/lnnn322cJrhT9+4Vn6o10dB/febRPmBOuOhsat220HDCaa5jiTyejd0X31aeZpOvb33/vePxT+pfDi97///e/R0X//5JNPfuZn//7JJz71ycJm+omxwaEbt3sEGwS2M611hZ1LS3bRxNmNIaObcxjtolDfcQvu32QW6JcNNwNvhqjN1IMoMXlOs+t9yfw67WidQ+eDMpXMe7Sj6mQ+ofGmmsx1qS7WbB24pz4/rBF+2IEpFDWwIZXKJ7VLphQp3g4jdq+Lk16FnCfRRwBatg9MQyrTky3tvK7oM9KCzWIP9ZU6bohie9OlzVzavs9eYpi/IQeYjV2u1rRgr6nyx02MyE35ZN523cTc8YA8ZJNsXHykfbuROZO2xqvtQrAlypwmaWF8oFvXte0TOMnsq0n4nQZBcmc3L00VIJCQrAzPGlqyzeJYSqRrQ/2CwxvW+vV3U6+wz7KfhugUszMkG0NfUK0Aga00ks8KZhbCb8WqZcij8ELUjy9EEQtVp/Sko7OjODWgOCtOmxpQ/wbXd0v0pCdl5p6UpCc5c9pbeIb+tJ2e9rSbuafs9id5c8pbyDM9DVa63uUNTfF+7r32But7OT8/XeNx0RF7g52uc7lryCvWJnjFZ9Re0eaQcWPMCKypSavcYpGUwyKpj4RpgmM55xBwEQ6qVLkrcnX1LLdZcFYfRhK/m/griMfp/CLpm/OXtkiumKlGvY2hafB33HeZ/zA0wt9FK2Rcf3qLE9lIA8SlZ8HW/VEbtaX71HHmVeYV8OdWyk9NUYo5mZc0HfEmdYxEKwFirWyaCtgcqgtsEU/OtJK8DbSBNZNijwSHFK8HIfp0yoriFBH98S89dt/fH7zmwfnHlg49vOvgfQ/uu+4UV3PHF3N3vnPHwtT9s1vfeffmhTvv0WRvAlZ/lvsj2Se4j8JhAB3G5bc0vG9o7eF9WRBJX6qYEm8jKB53lfwJI/xW03miuD+MQC96sbzP9GhppF/lPAqW1+b7ecmry+X5fr8jl3GDxKWH5oqX9RmYTIShDHupVup2SttlX69ZsnpChXrUOE8yb9NZlyT9B4EUYhj0NVr1V/ckOOoKG1MaKK1EVyvlLZytWkSPYnKqZjLh2ubRXqyXVHP1yqESRWRbOSRNLhq4ojeZvnNp612RJ+2+KgJNC0/JAf6irdYfCPvs81YXdyo8cdOBqanmnsJvsbhA2m+yEk9/0F/T762qkuN2n4usO0gXDLupUepRKteG667T1l3XRqKuBlj3EFk3wj8bGWRl4wRU63yVToz1hBjNqbygLb8+pe8sgDAg36ddS6eUPofSjeG/D+TGl1S7AV2M4a4DHwA5W13bEEbbfTi5CclThVP7urIrR6e5qhltblpFFpd41coZHOWJadqekQhmpqcd4rWClbEE3DVVU06jxWxyTmWGnLYFu+vY4vzJTp42dh7p7J241cowL4UsDvCQLo/fEq+6s9NimjaZBxaz2bDd5bKHNx65dvPebDPv55tHbjjW6ZsZNqH8HOCW6BeKPa32ZJ6/rKc1Vp6vjT7qHQ57HkzqzpDL8zPWZejilqLSP/CWDtfXWRPm4wrPM39gv0dlsResRdufoDqF5VyLk2hlRm9+U4LaVBN9R0eKkB5HAnhTaq2oFeziWOFpwywttnw0taWy2ZWtmbxWJR1g1qjz1K0qHWv7Psi+OpN/MJJ0G4PFpFnQxIS2DQVZgWwrLbzM5bXKD4djAFxCjbepIVBZ/QkyzISN4TkydxNjztf93FGyN3aeIruydAlTLKlcFenYrKoXsHZF9C9O5jHbtHnMlEw2J9WSKWoIAOF6zuElfgZHZbUVQ6cMsSxrxogr7ZARVp9/fOQwY5F9Pq15mfRok9AtIgdsZv9nf8/++uyXvWZfzBeQXyW2yEBGlWvHbKPFynwbeUnfQJ9mzoBsxDU/Q2RDf9IT03mTRHnA8OueJlMpKnWxvaMGv/W0P2DSn+knn8ORdc+Lznr4/KsKi8x+sGKNWHvADl4lnswbNdLB14V1NW1KKuYL+XrNwSQwlWs1gjxwjnqs5IYltEY+bW6aEwGUt+RajHxcG1Krj4dPay4IBeM6s5GvtS3N9E5Mdjt77NVmzrTT4DcG7FYhw/GZyJab33fr9bcXHgzYrFZDTaqhKSaanMaA+ajBEhTHOMv02KYdcc3+0kdJH3KMqhyHmReJ/ShOxKQqJ2JidmbNiZg2/gjv2Kf3HrZ4zZ4o92yL4DXghme9ETFe5bfxVpc2rwTw7s8J3q0GGs5W4t1gkXxIUleZkBqgrdHkr4bUVPO+EpYlu3FrwIAFXaUB7ZdNVkqVxpKVp5IRPNpJ7DmE6sem5285uG3qFunk2GB9aLQSbl69PH3N/s3Lo++YGm4ZHV2uio2Q/Y2vsJ9YiSeNZHtqzigj9YyilluTtQGpCXihhuD0mnrivCuK2FgaS5bmNHmw7ESCvrWujxehZMpLT0hSIe9pp79Qhpf0pN1eOO9J0Y0roaTbVfhXOCn82OULrfWKvfCiS5sn009RBjORjSZqP/VxKteEMr4jTeRECafVq5octc8lldl0vldj1mQq13sVrqx3HaaYetMIXK5ZW54U0aHuAYM5mMrPa75qQyo3vwdfnt8MVnbPPPmVBQAA6gGg2h4RxzK2d2f1OeMZMmfF2Is9RMmiu3oDwVw92B0p2rkyndW1clybLiMrRlySZzt/M+8goGidJuKx7bLIRg1eIeqRxYs/xgPmMPtlsBdjfr/whMnjJSmgMTkg260u2WaXtZl98rNyELTD6F9DO167qk4y2HlbnfTq73nbk/20nWaqwfD4C2l3bUAmtu6D4BWtnXb4xJaijUSejUAc8COdZwvUZ6ncMPKsMV0M3nXW5ZObh43WRD6pXd2cRFpv3obs2vHG7AL9Utan8rMau2YdOGc/n9YH8KfUncCmWZz4Pp5VJqXPJ7vqsxv1BhW1s4fElMPaq5ul87K9cyMiD2OS9OK8Lf7RbwGylXk3QszSYgXPovOX8+zYiaXZE5Enbf4qMnm08DTBdXWpWp99wSa/kR1bySlmUQN/HanCy96WtcGfrOVhgE+Gc4D/1lFbqXN0LZXbiny6O51rRwZNpEtwkDSY1zWCFjywlWjb8XR+v6Ztt6Zy+x/Al/dfj9q2f7eQyA/btrYDX4d13DhcxI35oIu8ENRt6UMEO7aUsGM0pWefIL4t/qZCB+4/JqlE1QvY0ZtUs1bS/X0vvO1QKn9Ce9tNqdyJe/F7TvwZqO29J/Dw3jm44YexSdwrOfO2uvbh9cjs/iwwuyer3Cud37TzKqzzKCec6uI+lI3h/aDKC1dls1oAtgOQnxIEPe9ZA4teBkVXze9dC4z+9xmBEYf5Og3U9k45TBbR6JgKBWprZdtOq3xscftdXYBqu27u7N79jh+BnIXBLcc9TgvImc8UYQ4yRdvwKZNPsw3gLF12q+y02V161/5fQWT182AJDq8/Dmh4hgc0HAjX+cNoRgAPH5rZ291i8vLxDdfdmfYdvnS8ViaiKL/6fyqNhreQ9oTLRkO2rTIamIdOMz9kP0Dm+O2gsODssyznfDGyY7oaS35JnOtH8G5jada3wZJQmlKqTUT0ez5gM5gSOB2DIF+bm7Q0UWoGR2IJjFZz16b0Vc5u1OhceREYdVl3dn/X2RpSBAgmbo2OtF5HkPBffvSOr/+0vLMve/W2H3RNkg37g9v3DDzZtulwY/tNKTxP3fHFz97Kfu4QJjC0UrKmf+xT/PfJXsy+yye9pcuT3iBEHyATYdJEdq886W31Ljr57U1+e0yuWTD6uGfskrbp7lNXHgTH39Fh5r9P9uW9dv/KmXDldTavtc7IGuv8kybaMavCrLc74S4oQVjmM2JY9hLrNnReceId8+Wo9H3erMVtxXW+SH5Vahyi6lXrHCyuU+lM5mOaae0kAt6JBdIeCG02JtUJsv5BfX7CFflcWnKZ18VOrLfLc5f0OVj9I8D3p2S5agSeb7c12o4afPzg41fmv+GJhOtbOBf6G56Emb9fku43WC5OVghCkT5PA30GqElqbjV9Rkr06UrqrkdJpM7H6rpMiXxK9xlTSXUTodAIUGhjVklJam8fJo0xdXBlesnFMnypk0Krw+up47dJslubHhmemY/2BVgHn7aIrGvjxp49ByLrXazTGJZd//4WqPabj7Ukx40Wu3nTfKJlwmT3XvRU0IzTaXZOtxFTOLn/DawEJvA2pvP1FqoVE+0gTZsgKL6gNlrJbkHcIDhmXVansZW8FiyiLwBk65fUdgCxyphTdZLq61u2MJdNxK0k3WV7W65IypNaiw0+/LCSbB/Vx/vDwxtQ8Av34+v4cHG6rJk/Ll1FrKPT0ThFJg9nQDdPrKZjb4mOjUkdkqKeRsp5rtoL+WYtzGt2YEd+PqaF05jIai5RNCWdb4xkBxBWxEpEhQhBGcmqndhWGat9S4LaUYqzY5WJ3rcpoc/df83iI/cf2vvuxW3Zga3b+gZmut6CKV/YfM/xhS13vXN75/imtsz49GuHKmSSwRmfhkcA3w+CFt+iZ6j60iuHJnasI+PmOlbNT5wiexc3lBuq24uNQqVBipp+1+NkCpwYq3SAiOLvOFnxZwEndNK9neGKxYLPKp9BCkOLzIOcX2Bmi7lkCMEbyfELFZPJnsfHP1oC3FEuYDld5adfEAlC32Af4V4THG82klGGUF4y/9YsNdJ/wN/muRhx1GpzPwuLgMqWqH3Ue6nSjE9lJJmf0kRvtljqVPpSijVJK4va3E+RTCGIaAP7mrUJfpux0D6oCeNVIIw+CvDu2MT89t0ohZulIdFlqE5l+kamti3s2EVaY2anJGducOM2JHBWUrZnFaszXx3vXditlTffaGJoea7TqoGh8H/swkgP0qX0UCu9KpFEfiWQtKrN/NXMzEe1yaLTI8NjjE0KTJfmirqaax9cz4e4btbAiuuY2Zvfd+sNt9sEIx+27dvSO7mx29flabJnrU7P3O1OMnz0G3sqho9u7rpU75NqvfHy4NGd471Nc0bGzm1gecZI0k6GiqSUpdE7ITWbqm7a0kHqI4vw8CrgFayPbL7SRNChK00ExelaYUrLwr79yaCrgdxisahV+AiR0FZy/I/k+JpisSvqrNkJ7jtvt3sIfLvi5FD+7s4ieNNmoDHL+vo3/Hes/09Z9yos95YmpL7isGkATtYA3BXXbXi8AsAR3u+Fh/8ADJcE23btm68dfEK+S4Nx68m83vWDsO6JFLFyb06TTbpMqO0bstn/EnUuh317gVIDZJkf1SmFRVONUlcTSn1VDtRXgj1X1XAl2Lsy1f7H5VAP8Z0mN+d0vbnjCtTrTypT6XyHBldGU6RXgLqAw8U0wmGgn8sS4mU14uFuwyGg3Eartt8bfxHlvNUVqkczt1HKi76qqBvN29sn6JWaXN6S+PFlrIKdMEU8c2V6/nUJrJQfQBZPoECCHmKfTFTDK2Qv9Fptz4opu8bwlNU97ifKhqHb4GJferg8NZV/rGQC/vNTlRNUGUCdFP1P5fuomMxaW5rMivchaL92ucZG7NXaPFX+3sZKnXUZuiqnt65QT003VdDNIGC4QW23U66WTDZL5nlNEfUBOXbSL0orzUml6gI2T5AZftEqnE4vE41708Bp1d3fLIOyeI3v0ZVlxOgFZWmy3QLKMvRQeSWGb12uFq8eWDGMlqVw+PXHQEfsBNGvq+Aq9mY1k96sVlJHLe7bLjZlWRLIcMWv7TUGVL9y31kZiK+6+9WvZ8pS+o3yzb8UkEl1Dh4ML5SE8NVrK7nx1yswNZEL9hNkBt4AdYzKuVDbI6blnJX8rBZoe6rXZbXibnQ1xS8rHCxpEOfiIcirJT+rlasl0/FqsaLpqy1Ox8NSXgyrw8C3IQSDERfZLqP04o+mkh+K0medVs616Fw1FLzY/UmvHA6+6vej3CCKRJnLE8PJBXp/QB56cmmIpMl79AfmsY3krb8szRGXGTf+uMfO0jjxwt/jOyblQFAuzjNgFyHmxfrc3ZdNdAV65Js1mNeROt/WPAiRbq8ecYyvNet1oz7rNWfaMKztwcxXN7f1DuqN7aFUhvRNlSa/AsnU0fXwPIgByNuZA1uKlLvWCpSvMCV2rO2B0Zmt0Z5qk5S2WCEunuxaOhAe8bEyxMXyW5kha3gFAuMJh928eU6Li7FWhzNlwQ5JVJjqxumsYnHKKfEvnZgezFYOOE3oU2VxW3EdRdqKlYSUE7lA9g2my15mQK84bfaqVamyA1eePmu4v5Qqe/Xba06irVxrQ8VaV07Qza41QbdHn6ALq8QNiopJUlJvY5Luakt9hcm6c6tSZm9p0i6tVKKu4lpfhLW2wEqv1teaLq51EAKjeDLv0yx83Ffcpky2jqwjNGhFa+IgW62QBqM46QfhlQwkUDql82J9I6d14CjVb8D4N/MHOAjzDUTgyw110lVrZc6arDcjmFq0V9V94k2EYT2nXO41XjsbSYRXC0WRTk8DndrAmhzT6ZQp0mkU6NRQrFQrodR5n6vBVOxlKtqTdvytLTI4n1AK7Uk7UqoNKdUjfV50+eobdFqpgVo0JvUcvN7SmsWBFkoiuxb1rpRWu6IWZZseGZyZj1dm0toPLMVHXcRiuJ66slJxr5YzaS0JtBivza+pW5xOx3O6HRmnjqxhSfDnJ9an8x7NG/eT3GzZsihBLEg5rWS/ZNBaaWy0WtUIuOcJuJANknlTDZ1I0YSkxYBr0G+1D1+LYPSqN60g4GgZb37ocmKZK5DpZYT7Wsmtv/bQWtr6d2W3T1Pb6Xr2f3MTBONjpkwijSy5RjLatrFFQOSSkxrJzFurgD3miGO0qTO4yfw8zwar9R03mWhXRzyKO2e6Ul6DJwXnZMON0cC74JxstIHX6+C8Lklvt9NGu73wmt0+LsZE2ilGRVqGh3FJep2SJJrCF6Lmwm/gWuGX5pg4Qd/RZPtfENX8xNpoG7RYfm82/95iGbTHbT+3xu0/szVYhyyWVyyW/7BYhkidYuPrf8/eZbiJagKUth5/M5Ts5e0BqcCBchqs6YAz8OygT2NkCwT+QFvCQX6qrhr88wbsrTDhb9Nx9Y3I80HpvLWuDQuPSrXzvN3l85P8S08d/mQhE9USXPkAH2whP5RkdaoOL+YHPTGyQxlRjD4gBs5x0Db+2o0uOdrmo7iMA3u69H2CMplUR2ZeGFl+3mrJsGz130zvftcBa9wYlNIRexfL1nx1bs+7rrI3GoOutp+ut/9QMIjbk+vnzYlDmW0mZr39BxZXTD5grOX79zDP/tOe6LDA25Meptm7nw+b1k1eGv/BUuOgYLK3x7zMNyJSLX3OaW7Ibh+8xC2saxCj9HzEWVO43an91torbAL8GM5xHVxrInF6rYnEHcVoIpJVJEkNJbJvcTLxav/9RpOKt2leuxQIvfnkYsMjJYf9X1sTTllWQ/XA9ICkNL/FNVGrXLK2JjFUPblq+nK0GErpbYXlRdXX11y2KO5zq3Mf2rpehHUNoBdevS6lO5lv1JxwN1Hw7pSgmcbBtdY7pPNQre/JIhdzIWzphJU71WTnW+bnm7jlN+Ltdpf0NJDhveiOJVeA5DasCSvJbbw5n7m/1H3xt1zlxAar0+Uc4fcIdc0alIFIbTCdj2vOIlOCJRpFlGb0CBHwEpGk2mytJJKSxpf6rBpkSePvfdhCb5U2b2Fjzppyki2HepimKB2/ubR8d+0cBZnTrOtCx+pJzenSpOYOfVJzzmKqz77dWc2X5QLfbHZzk2RbgUivNMuZPbAixzBLfr9sAZBBO04lrinmOvLeaA1mrrwQ1oqt5FDE9GeqONhHNdWlyHhUnNkkA0fTGKXjeFSrJ1uZEyH9Bt43/kmI8i8CFH+TffG6J/F3IcbKvwQwtjizZ3gBU0sF/dcXmau3FX8e4lc4mAmi1c2TuZ6NpT3+ZDbgEtWPM85In2hPGodnaLOF02zx91hxFzbulwrTCSWZIhBHSOXCpPE4jHOHG7TfZQ1ngH98VnFK5EdVqvGHvzO4Syon2rXWbVivthOHNL+Uxmrp5QQ9JI+30isbaEqtxib3M7fc84/zZlqYT3RlD/ktNotpujFssvMsP7u+Yzil/RwJ+8fW1K67//y2O/d3m8Km4YOFR9fPN7XYLB80zdAnqmpYxi6cZQzrTiV7hnsumrTfqSWzRQ3HqCy1kdpJvas8NXjTG00NXihPDd5VnBqMP4EwoU8N3qpPDd4NJxMIl7vR5pXnBitRDL8pdVNpevDCf3F68OWB6p88TXhRm7BcimAP/YnThbmPliYzv/Zy5aRhkhsGmv+a0HwCaH7n25vUvOvNJjXvXjGpOY8Un9JJPvf/58Dmy6xS//DOzTrJmxN9ZiD5hzWS3/sdMhrJxk3eBCQXDBzzUyBxg1tkfFLiTBi9tp/fWSN7idf+ChekgeQdDUWSJ2o0kn/6nRrJ3SaekFx0lQY6d0q+3ayTbCLolHV/zuq/O3wnoNmt1H7qw2WabwdS15ZoTvJurgDSfClVq9Fc2ZTMD2i+ftMAvr5pA+j+bIp00gIvQil1Dngxp/Nij84LbJKdA17kMtnNWaIBnxe8tanJaY0h6ugE2v7tyBIKeKIsSQq9BkOwRLiSH9qPda9kCHOFmL2SWdO9GnOw0jgP6uA2fhB5k797/kOLZIiVxhyj2TCkBfPv4RE9yIER0Ix3WBNaZeRUBdtylmquyKaAXC2XNGPizEwln8xeB/u95iKsaLZosEK8+MUK1mk2iWUNu0E/FqhrqfNlXu0GFvWhQ4VodIZw5PxQ3wzE9VqheG3dOVjWncNF3dkB/Nqh82tJ5xduv94B/DrfvdBHNr0iw0CBBnSG5YbWTRF3vbukRQc1LVKnwnBl2zxcmZGUrX+6Vq1MHZQHyJRSB3+yXQu0PVDOKbSmRVPDTOrAUnRMyynI3/lTzZxHSzQs+SwZTDTYPBePVlo7Tvcvh3T/cpj6xNvxMDhJ5mA6P6BhyX3adJSeC+o68MQTZNsyB4zkAFml8aTS/ShXkx9R3wXv3JUkg1F0u6g2rwMel2bY//d5ocvzFiu4tfrl2cH+XW+Vew3lhMYXKjj1u/IOc8K0I+myoXwzppnLXUJ3VXCLXVrVJ6Tx7ifAu/XUFmqJ+nKZd9veiHeLJd6tS+Y3aum3zcl8v554u7qogbPi8vmxWQ50t0frI+pJ5se0o1mdk7s0Tp6fijbD24a0no79lZyclZzPICf7123cTLi57f/1drUxbV1n+F6uv7/gXhtjCAYSwBgbuOReDLaxMdiYBEzAIV8jbaMUrU3WDrYSdWkSRV3bsa5p1y7TpGof7TRpnSatmnyN021au3aVqmqVWu3Pqkn5EbXSNKXaj2nqj7Wj6c57zv2ysfmq1D/k2sTAec57znnPe57zPGpvnpWH5vw0emc8/kX6tRb7aO+j8dxT95394bXzZ35w7/FYauFEIpn37nUAfrWSnvShfvzhXMPwa+YmmkkfoC5Sr1LFHPTgcREs0Ap3C8VEDvoukbaGiwG4RtcvSs3oOw8LxWZMx2zuQL26EskFnOHC/aK0gjrWjMbhI/h8ulOdSZdouJ0mxdCrB4VCrEFaBYULlD5nBekSqBItslzJ7A8sHIfJNMauB8NzR+FxlVuP9I/nsKAFWxhCfZjIod6dh1K1NHQW9WCgGesyEiE49ZK7Yk9a1n2KdHC5ev2wJl8vq5kfIEVZ5dqw7FaO9xm0Xtg+nxxKxjP3u300XccYTVZjsxiK2mm3RU5mLpyydlmPLWPx+xfdLZme3nELw5peszV6n3l+9gne0mYOXjlyPdzZ8EFCbBtBIw+tltk0/Ue8d3lo5dby8gjvbUSdXscxLsZutFvspvZQh7kBujtrYswTLxPB/Lu7RvvbTfV222DfwHcnY3b78KFsIrrKR5s5Q1PvadYX5mk/kBsisob+3J2z2AMiT/2W6J/j85Iqxg9A7EuRcZpVD+B41MVH8RbIi/rQ2yCl6XBJICNwAXWnl2K5G7HkoekZvDim2XE7Z/QFwnwklc3hjFPg1hvqW/fhUZlNgXJB4jDJggozwAYsDuRgNS34WGkOpUcFjpPa2vWGeltIfoGMFBa62RHDau7IT+799htgToElwKI9sagsAfZjj5d25BfPmVqNcYPdkWHIJT2XzWxqdy0djc1OR1uGm4MNKYeLO30B7Cumr8n2Fd28qgfW5Fmambc6jDlrOZ1K7AkFHKZu74Krx9TxI33eH6CGqQzsPWs6OUwwt0tx4uQQh8RlUnVyGMFODmOak0MWLnVQxOxijNX8HDjJzsd24ehQZROlGwjg8LAPXzbPdp1qpj0WcHjITj1/6Q8ey0mP6koD9cMPH8aH6CvL5Y4PHcMz5ga7o0ccyGbWvt5jiKkbpM/GVPMHPUYiwmhpF24Xk7XdLrKy20UJ0IkQuwvJnozt1fBi03ZnK3g+kOHwKhedZULWlvAQdhLChH5Ddx1a3a9fRfikqXlqbQt8UHpVmiL4TKFZO8GX+kmWnMAiBolhK2FG51XcMhi3GQ23o3JsScGxGPgZ3gD84kkSX0W7GIvtKsK23qLs0E8kqq9okj0JHDDiPcn3d+I1wpzcvAO5Y9X8RwxyDH6D6qKGqAmU+Ty+BcophHKUoBxFKAt8YU4s9RJNoSmE7oKCrtQfETC+3Sgl7ebhKYEWzbSggJ1z3paOIcATeluW3G5sWapkoBqold/Mv/f4pphtdE9PPX/9Nd8+Ja/c9xc5eG/qDs0QuJelirjtGwhNZ9YNrKpu9Nk7MqJ1Xp3iUR3KQSj6I6wPAPpeMuOH3sTj2gF/62LFtHNBE63U+WJ9uqGztJA9Nf4q/36Vv0V/Ef7WV7Tf66sY4mV2God1A1nmb6FxXMbfor98/pbJV8bfUlpiuL9POYlXB8n/3tZDieYi0Az/lXFZ5m9NybcIVOpW13bULbtG3ZKcft21091QuFJasL6l/f23tHg1vPIUJEb4TPcagxPoDbh8Z/iZ+j7qj7nP/1H3T2MAjfd56hSFZkspi9LgWV6ygAsumSPTaKCmiXhb1EVol2ngH3Gt+0lN7YaFDYYTWN8kyhX7RKIBb5nV/B+wOixOVGH3AXdpeyKBYSKXKGsLNIEGm3zACfclOdRSwiHokfcfSnl4rs7h8q8cnZlwNNCu+aYDa84um91Uf6Xe4EzNuAzOdlOL+cHT1k7rE4280XvabXadu+fIC/e9NJF2eT6IR+JCJDI6vEF7u9uHfOKUm3E5zlxt8yxYzE7G2WmdtXa4El0Wv6XRwDDBCTNjyjuaQ2zMFmYv33nvhVu5a/fkF1p7jgwlJwZvRVJpgZyb4dr63dgz40nNNSMEVRtBlPeB6wOhJNrSyVegyxw1pmo4ahySWcLFbCiJT87YoqtvFJ7cKJeM4JVIcdpA+wspnYEbPVxhfBe+G1vTvGq7cnCh58aPHQsQhhfwNXIRheHV7vZs49lh+OWLfP9Mg8s2fwLIXS4vqVcqdXk31UkdhLFVrzhl4GVnwKaet3Q5sM5uSHbyEBV5XU+sEGKxn0fBBmoW1Vw9qud95TYf9zxGbD4uvdloWiTlcfWo+JvJoYlwkie+H5elRCq9Qnw/HjvfbchoJfBPhQnVBETfNjhZSstta1La1qa1zYPa5iFBoLStxYOCoN6A7XpswMGp0a5yu5LKSbuiXbeUdjQrBWiuCTNwq7SrV2sLXdSVmUm7/o3mdI4aoBJwNorbJSjtitkwJ6mZRH0QK5gFwamsX7XT4VF7ecLdsikGOpB/eWTuVn2AcLdsnNTeXcuoZdtScA0Tl2gFdUufWT1X2+CF+enmpWLjLb3rixLPn6B5wU0NUmNw5oGxAQaJF6aGNrEUJFNDi1cjahHcRiEeyLH6QQdmbI3I+IzLjK3ioDcI8TCCEPIFZISKLa3keLUWZ6ssXMrGPpqXNxdea42JhsGnx4/le/Ho7xts6j4e0eidnr9tMUCYV/HIP9MzQgb+xqO6UULpaqdkDphAOcPmWQDsfMbEko+USIdRJKXVWaFVgInBgxZeDy9PEQVBwMiNonU3Ax4mXVt4/gAs1YqaKhKbaprlyPi1+uSbCg46bnU1SApaafIZDY26Ol1lEu5W/NfwlOE6yjv2oXVGRKsMgNFuQVkFL7kttzXdGuzQ1PA+QkLyAjNNkH3IKoVoaF2Nj9U951vczC2cMexHf+8ro32hsRgfSib6e5Ox/vBY3atYzBa+3PnNgehQoCsaYWydI/iBxP2pzz9mDMxNfNMyTX1H9kcGHlUI86jgLx+yKTyqDF+wgqKO1Oe4XepVL1gmwGLARYgRvUCbqTOSUkp3rJDg1judBzFhqh2Fv9tHai7xTvTfTAFyZ3AgFSN0qlZcBw3I8swqnQoqJ0q6ofGpzI2YT4VSEcK5cxNpAMhaluz2ZgPN+F+fOvTAHJriHUHWbXPgt16ZyK2cdAbNrPDOKHvVbm9LiInGA2Nfi7GP1jcH3J3m/eZ0ll773Yl23mqr52iLNeDuRm+m0neu/GmxA9S661rZuqZ2ruXPnLM/E7ojhi88Ca+8lOrTeonqp5JoZ1bd5WWshstLSsnrB2KFTrbQGyu0coXhPTu+VOFX6Rxg9MZKxAFmscK9d0eOMIbndBa/Fe0/sof2g8uN1Avnja1sYWTvbd/Mw9qy7Z9UqLztqO3My/rah9L2q2h1naEektWPOkRcz8Rt94mFSb4UIUvHZATW10lQxZ0WsMGxhkkXDWRM7C42qzCzBqdiIEJYDKWzsJT4OWl0AlYPLoRraxX4MDvGpypXa01Vjks+oLnGcoZDyyeftdXFSYkDjl1flkscjzj7CIdaBU4RkytHzmwiyBX0NY6n62FNJvMRwfA8wnCMmoMb9NVQTPCFnFgSyZqSQejNq+iNYF0aHk2mPC9DKXlSAgHzMFpV8pB/WrFkxV7B2wGZ60kVwNHKaHvWZtAtPPrLZ9tgR6Kui/moGrsL4g/77hiv4PptFeedEV6K7sV5p3Is7ciJh3XdUPPURmNka2ceA6/LU2VvOuNJnFWc03nwafaoA7ILn7DJhS8ku/BBKh7awoVvYBsD7JpufMPb2/EJybHBMQH8+Ez4ytad8zUM+eIplEE8ih35IPZJ/z2E+28K8vPyHgTvmoxYCpPKxaiAjUx6QN0UtNoLgyTvHEcxjuXb4VqRuZ1knRZ7AF+8HOckpwNT+nYZA8w2Ib+TmLhZncu4TWisVZMm/wJawl/+5wzHa3wu6Ge+5Q8G/RvX/MEqn7PU+lw+bvpXPJ+Pf+KJ5ys/N/X5x4Ye4xJ1iXqdKi7DyFlEI2dxGRabxSVruOivI06PpYuGZb8TTZ+idNFwu5ATSh4nfmNUxPrtorDevey3oKTvMl9YfV+y+NAkmkdJHo9m02J+FX5g/jCIPQnFVazwvgrXARuEQr5BOkNj8uE5F9jsSldQOJ7Js9wNv5jIzC5DIJ5j14dGJ3M4Fby4iGJxNSZ1yzcH++DmYJlHX0Afj3BGXkXvAJec91eUoMtfyzP7ZkEExWIA/54pkNpr0b78Pp//+d+99dfrvfMTk9kWN31S0fHVP9M0Y3ba2maPeZsdXucvrK7Grs6XFr/3rs+Cfwj9H1xWwSdJ+Gn57bt0OghHosvqd7T/M27aZ/exPkdvZ2dbN1FHmD0xNHTX2oW+8XHZ4wgmjneZd9HsEaGK6EW4RNspM8ovdM80UFCo90uMB17J/0hGvNM4yO5n4QdsiOgD/wf8v63WAAEAAAABBum6Yx2KXw889QAfCAAAAAAAVdUBpQAAAADgJClj//f+MwhUB0wAAAAIAAIAAAAAAAB42mNgZGBg9/nHzcDAsfz/9///OUIYgCIo4DoAmy8HNXjabZI/aFNRFMa/d+99rYgUcXRwcOjWQaRkCCGk5l+TGGqM8aGlqIOCSHHQCg5KLUXESUKH4iAuCuJQHKQ4ZXCSEoIK4uDUQUSliEgHB/3dmzSo+ODLOffe8+c734n5orz4zBOFz/ifrhTdV9GOq+6eqWxvq+i+gYwy0UPVzW5lzZiqpqfEdVWOFtWwOTWjJTVMRnmbxbZUtxPkTqhCfjbYFHcHqXsYix/dVSu6o5ZbVsV9VNNbe0D50T2/tu1nTdkFNe28Zux1tYifCTXa3C0pITfhPGdf0eMQPFc4r4MV3i8T+4M+67y1yblI/0VqPNdUnMbf4G5NJbjkzaQqnrNJqeZWdTpe1jlzSrf8DLZEziRcCzoRZlqAUxWf++geHL5Tf5X5N1WJR4j18blBHjAPAueyOULPo3C7oTxxReY5hl80W7z1lEXTxNv4qVpB+zZ90CkeVzruELsVdE9cRxm7V62R1/BFb/tTs8wdtIdX06ZVdm+Zp8qOpkGi856HWyP/A3xe6GzU4T6F1lI5LikT70eTLv32Udtr/h/EvYGmOZ0Je8iiO9Yc1032XLNjmjPvlLJf8Xd28A9cWiftS02HPfwJv4crzFDA95pnQ5960LF/brht7vx/JoPto+GtKegasyah/yYa+12VhnX+gntP3iwcBrsZgj0M7SNptCbtWDPPLt6AVB/6hL2KvUCM13wA91jNXcC/+Xh3iVob0m83XaEkeNpjYGDQQYIVDKcY5zDlMSsx/2PRYUljWcAqx9rFuoX1ARsfWwjbNrYv7DkcIhxTOK0493CpcG3gNuGu4N7D/Y5HhyeO5x7vCT41vn38VvwN/M8E7ASeCLoIFghuERIRChA6Jqwl3Cb8SKRI5J3oLNFnYmZiFWIPxL3EZ4l/k7CRaJA4JckjaSYZJ/lHKknqgLSX9CEZC5knsm6yPbIP5NzkGuTZ5BPkNyioKCxSeKdYo3hPyUmpRemNcpDyAuU/Klkqk1QZVIOAcJqanLqSBofGAY1/mu+0LLTZtHfpqOjE6VTprND5odug+0dvgd4JfSf9dfr3DBwM6gweGfoZaRj9MXEy2WNqYLrEzMTsnHmRhYTFLssOKw6rNmsV6zM2AjYhNttsZWzX2YXYnbJ3sL/iUOEo5tjipOc0w5nFeYKLnEubyyfXCjcjtzfuhzxWeLZ5ZXin+Oj5HPAN8GPy2+D3wd/Ef5r/n4AFgS6Bm4LkgtYEuwVfCtEIuRAaEHourCCcL7wo/F1ECw64IGJPxI2IL5ECIBjFEWUAAI5Tjc8AAQAAANcAjgAFAAAAAAACAAEAAgAWAAABAAEgAAAAAHjalVJLSgNBFKyeRFHQWUkWItILFxFCEj+J4k4UQYkGjKjbZDImg8PkN3oC1x7CA3gIV34uoDfwGFa/7kjcKNJMd71PVb/3egD4eEQGKjsL4I6fxQrLtCz2MIcHhzPY+c7PooBPh6ewpBYcnkZelR2eR1VdOuxjU907/IycenL4BWX17vArfG/G4TfinMUfGSx6K8gjwCo0TtFDCyGGSGkdoUkrpi/BCNeIUMIefQlXTzIOiVJijQb6jATkahwIIyWnQGuXCrFoR+igK35jhTzNTbfc2yhin2onErkhu81owOwhWVfkHPNMuUJq/Z6pf+Rq6q9RvYx1bP2LeS7Vjegx3egJFe10/q60wbwa8+ucTigq49lo+iOZVyJz0HyDOqM1vkNX+H3+ESUuo260+zK5olQU8+zR22Hcsi6o0eL9Y3Vb7RkrtC9ioprVb0usSu0KOzF7Rfymsw32ElKjSVYsFdgJhLRHE5U3MKAnYmxouvwCF7BwjwB42m3QR0xUcRDH8e/AsgtL79WOCIL63luWYt8F1oIVRRQrCuyuIuDiqtjQWKIxGo2JJiYQCxdI0EQvxIQTBxUUMbbEg2d7PKhHI/L+3pzLJzOZ+R2GEMbr9w0a+V+9BQmRULFIGKFYCMOKjXAisBNJFNHEEEsc8SSQSBLJpJBKGulkkEkWE5jIJCYzhalMI5vp5DCDXPKYST4FzGI2c9DQMXBQiJMiiimhlLnMYz4LWMgiFuPCTRnlVOBhCUtZxnIqWcFKVrGaNaylinWsp5oN1LCRTdSymS1sZRvb2UGdWLnDac4wwDU+cJZLXKCTHrrFxjtOcVXCJYKLXOccg7wXO1308pMf/OI2fTzhEXfZyS4uU88wDTxmiOc85RkjfBz730tGecE9vHznCm94xWt8fOYr59mNnz3spYlmbtLCPloJ0EaQ/RzgIJ84xGHaOcIxjtLPLTo4zglO8oVvPJRIiZJoiZFYiZN4SZBESZJkSZFUSeM+DyRdMiRTsqzepvZWn25imDhswWa/pmnlpi5NqXq3oVR77tK/GmMHSl1pKB3KQqVTWaQsVpYo/+W5THWVq+v2Rr83GGior2vzmSPDY+r0WCqCgZbxxukp+wMM1YzkAAB42j3Nqw7CQBAF0N0ufb8flmQRqDVoNMU0IQRBuoTvwIIACd8yRRGQ/BSuTMmwbs7NvZkH7y/Ar6wBb912nN90t3RUO4FMN1Bt8DjpMThq3zIQsgahFhDI+i4+lvrBRwRngofwdwQX4c0JDsKdEWyEMyWMZP1kNpeMHA4WPCZziOhtgqvoZalOLA/IGJmsDNNhFh17ZpIMC+nbMEdmW8MCmYeGJbJwDStkWf6poVJf5RVTfQA=) format("woff")}@font-face{font-family:Exo2-regular;font-weight:400;font-style:normal;src:url(data:font/truetype;charset=utf-8;base64,AAEAAAASAQAABAAgRkZUTZDvHzwAAAEsAAAAHEdERUYGQwcuAAABSAAAAEJHUE9TI5wknwAAAYwAAABAR1NVQhwJ6z4AAAHMAAAHzk9TLzJ6Y68pAAAJnAAAAGBjbWFwDdDjNwAACfwAAAIKY3Z0IDygIroAAAwIAAAAqGZwZ21iLwN/AAAMsAAADgxnYXNwAAAAEAAAGrwAAAAIZ2x5Zl3Th9MAABrEAADAqGhlYWQds/phAADbbAAAADZoaGVhEIQHGwAA26QAAAAkaG10eO9FfBAAANvIAAAE5GxvY2FlRJY0AADgrAAAAnRtYXhwApQCZwAA4yAAAAAgbmFtZWpADjoAAONAAAAEPXBvc3R5F8KDAADngAAABoFwcmVwBMWYFQAA7gQAAADWAAAAAQAAAADah2+PAAAAANZXCRQAAAAA4BCmmAABAAAADAAAADoAAAACAAcAAQD3AAEA+AD4AAIA+QD6AAEA+wD8AAIA/QD/AAEBAAEFAAIBBgE4AAEABAAAAAIAAAAAAAEAAAAKADwAPgADREZMVAAUY3lybAAebGF0bgAoAAQAAAAA//8AAAAEAAAAAP//AAAABAAAAAD//wAAAAAAAAABAAAACgGqArAAA0RGTFQAFGN5cmwAPGxhdG4AZAAEAAAAAP//AA8AAAABAAIAAwAEAAUABgANAA4ADwAQABEAEgATABQABAAAAAD//wAPAAAAAQACAAMABAAFAAYADQAOAA8AEAARABIAEwAUADQACEFaRSAAWENBVCAAfkNSVCAApEtBWiAAyk1PTCAANFJPTSAANFRBVCAA8FRSSyABFgAA//8ADwAAAAEAAgADAAQABQAGAA0ADgAPABAAEQASABMAFAAA//8AEAAAAAEAAgADAAQABQAGAAcADQAOAA8AEAARABIAEwAUAAD//wAQAAAAAQACAAMABAAFAAYACAANAA4ADwAQABEAEgATABQAAP//ABAAAAABAAIAAwAEAAUABgAJAA0ADgAPABAAEQASABMAFAAA//8AEAAAAAEAAgADAAQABQAGAAoADQAOAA8AEAARABIAEwAUAAD//wAQAAAAAQACAAMABAAFAAYACwANAA4ADwAQABEAEgATABQAAP//ABAAAAABAAIAAwAEAAUABgAMAA0ADgAPABAAEQASABMAFAAVYWFsdACAY2NtcACI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A+EAWgS4AJgDlQCTBGwAbwMzAH0C5wBqBLQAmgNPAHUDQQBzAoMAZASdAKAEvgBSAeMAkwHfAEYCWgA9A40AeQPhAG0G5wBOBxgATgehAHMEAABUBPkAFAT5ABQE+QAUBPkAFAT5ABQE+QAUB03//gSPAH0EegCmBHoApgR6AKYEegCmAhj/vAIYAHsCGP++AhgACAVaAC0FowCyBVgAfQVYAH0FWAB9BVgAfQVYAH0D3wBeBVgAfQVTAKgFUwCoBVMAqAVTAKgEjQAXBLwAsgVmADkEZABoBGQAaARkAGgEZABoBGQAaARkAGgG9wBoA+kAbwRLAG8ESwBvBEsAbwRLAG8B/f+wAf0AbwH9/7IB/f/8BHgAcQSlAKAEiwBxBIsAcQSLAHEEiwBxBIsAcQSRAIcEiwBxBI8AmgSPAJoEjwCaBI8AmgQ7ACUElwCgBDsAJQH9AKgHTQB9B0EAcQSNABcCAAA3A1wAYgNaAF4DvAAAB3kAAAO8AAAHeQAAAn0AAAHeAAABPgAAAT4AAADvAAABfgAAAGoAAAOXAJMDlwCTA5cAkwS8AJMHKwCTAbwAhQG2AH8B0gCNAvMAhQLvAH8DDACNAucAugbCAIUBfgAAAkcASgJLAFgBR/6cAd4AAAM9AHEDYABHAwYAbQNFAIEC+QBcA3AAiQNDAIcDPQBxAloAPQNPAHUDQQBzA2AARwMGAG0DRQCBAvkAXANwAIkDQwCHBRwAbQiLALIHtgCJA+EAAATZADkFWAA5B24AOQgAADkB/QCoBqEAbwmhADkFuAA5BvsAOQXQADcHKAA3BLwAcwLb/+MEHgBqBBAAVAS2AEUD9wBaBGgAiQPSAD8EhQB3BGAAbwT1AJYE9QDDBPUAqAT1ALYE9QBCBPUAxwT1AK4E9QC2BPUAmgT1AK4DPQBxAloAPQNPAHUDQQBzA2AARwMGAG0DRQCBAvkAXANwAIkDQwCHA0kAcQJmAD0DXAB1A0sAcwNsAEcDEgBtA08AgQMGAFwDegCJA08AhwM9AHECWgA9A08AdQNBAHMDYABHAwYAbQNFAIEC+QBcA3AAiQNDAIcAVv+gAAAALAAsACwALABoAJABCAHCAnIC+gMWAzoDXgOaA9oECAQmBE4EagSsBNIFIAWIBcwGLAaiBswHTgfGCAoIVAhsCJgIsAkuCdoKGgqECtILGAteC5YMAAwqDEQMcAywDNwNMA1yDb4ODA5sDsIPKA9MD34PtBAWEFAQghCsEOQRABE6EWIRghGUEg4SZBKkEwgTYBO0FFIUkBTUFR4VYBWOFfAWOhZ2FuoXPBd8F94YGhheGI4Y8hksGWoZlBnmGgAaUBqgGqAbLhuCG+AcQhycHModVh2UHh4emB7AHvAfDh+aH7wf/CA2IH4g4CDyIWIhmiHGIfIiGCJSInwi5CNgJGwk5iUyJX4l1iY8JqgnFid8KAAoUiimKQQpdCmaKcAp9io6KpAq+CtQK6YsDCx8LPAtFi2ELcQuAi5SLrAu7i9AL+YwbDDyMZwyXjMKM7g0UjTKNS41kjYYNpw2wjboNy43dDfcOGg4sDj2OWI5xDoqOoI66Ds4O4g7+DxwPLo9FD1+PZg+fD8EP2A/gj+qP9w/3D/cP9w/3D/cP9w/3D/cP9w/3D/cP+o/+EAGQCRAQkByQKJA0EEeQWxBtkHiQjxCPEJUQm5CikKKQsJC/kNWQ7xD5kRGRKpE4kUIRVBFskXsRkRGqEbSRzJHlkf+SIJI7EkCSYxKFksCTBxMTkzKTbxOXk74T1BP6lA6UGBQrlEWUVpRuFIyUmBS4FNUU5pTxlQWVH5UwlUiVZhVwlZEVrpW9FccV2RXxlgWWG5Y1FkCWWRZyloCWihablrOWwpbYFvGW/BcUFyyXPxdJF18XfBeLl6EXxZfRF+4YDBgVAABAAABOQBNAAUAAAAAAAIAPAByAI0AAACMAaYAAAAAAAAAFAD2AAEAAAAAAAEAAAAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAAABAAEAAAAAAAQAFQABAAEAAAAAAAYAAQAWAAMAAQQJAAABdAAXAAMAAQQJAAEABAGLAAMAAQQJAAIAAAGPAAMAAQQJAAMAAAGPAAMAAQQJAAQABAGPAAMAAQQJAAUAeAGTAAMAAQQJAAYAAgILAAMAAQQJAAkAGgINAAMAAQQJAAwAJgInAAMAAQQJAA4AfgJNAAMAAQQJAMgAFgLLAAMAAQQJAMkAMALhAAMAAQQJAMoADgMRAAMAAQQJAMsADgMfAAMAAQQJ2QMAGgMtf0V4byAyIFJlZ3VsYXIgV2ViZm9udH8AQwBvAHAAeQByAGkAZwBoAHQAIACpACAAMgAwADEAMwAsACAATgBhAHQAYQBuAGEAZQBsACAARwBhAG0AYQAgACgAdwB3AHcALgBuAGQAaQBzAGMAbwB2AGUAcgBlAGQALgBjAG8AbQAgAC4AIABpAG4AZgBvACgAYQB0ACkAbgBkAGkAcwBjAG8AdgBlAHIAZQBkAC4AYwBvAG0AKQAsACAAdwBpAHQAaAAgAFIAZQBzAGUAcgB2AGUAZAAgAEYAbwBuAHQAIABOAGEAbQBlACAARQB4AG8ALgAgAFQAaABpAHMAIABGAG8AbgB0ACAAUwBvAGYAdAB3AGEAcgBlACAAaQBzACAAbABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABTAEkATAAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAVgBlAHIAcwBpAG8AbgAgADEALgAxAC4ALgB/AC4AfwBWAGUAcgBzAGkAbwBuACAAMQAuADAAMAAxADsAUABTACAAMAAwADEALgAwADAAMQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADgAOAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADYANAA3ADcANQB/AE4AYQB0AGEAbgBhAGUAbAAgAEcAYQBtAGEAdwB3AHcALgBuAGQAaQBzAGMAbwB2AGUAcgBlAGQALgBjAG8AbQBoAHQAdABwADoALwAvAHMAYwByAGkAcAB0AHMALgBzAGkAbAAuAG8AcgBnAC8AYwBtAHMALwBzAGMAcgBpAHAAdABzAC8AcABhAGcAZQAuAHAAaABwAD8AcwBpAHQAZQBfAGkAZAA9AG4AcgBzAGkAJgBpAGQAPQBPAEYATABXAGUAYgBmAG8AbgB0ACAAMQAuADAATQBvAG4AIABGAGUAYgAgADEAMwAgADIAMQA6ADQANgA6ADQAOAAgADIAMAAyADMAZABlAGYAYQB1AGwAdABwAGUAcgBzAGUAdQBzAEYAbwBuAHQAIABTAHEAdQBpAHIAcgBlAGwAAAAAAgAAAAAAAP9nAGYAAAAAAAAAAAAAAAAAAAAAAAAAAAE5AAABAgEDAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQEEAKMAhACFAL0AlgDoAIYAjgCLAJ0AqQCkAQUAigDaAIMAkwEGAQcAjQCXAIgAwwDeAQgAngCqAPUA9AD2AKIArQDJAMcArgBiAGMAkABkAMsAZQDIAMoAzwDMAM0AzgDpAGYA0wDQANEArwBnAPAAkQDWANQA1QBoAOsA7QCJAGoAaQBrAG0AbABuAKAAbwBxAHAAcgBzAHUAdAB2AHcA6gB4AHoAeQB7AH0AfAC4AKEAfwB+AIAAgQDsAO4AugDXALAAsQC7AQkA2ADZAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwCyALMAtgC3AMQAtAC1AMUAhwCrARgAvgC/ALwBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAIwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUBZgFnAWgBaQFqAWsGZ2x5cGgxBmdseXBoMgd1bmkwMEEwB3VuaTAwQUQHdW5pMDBCMgd1bmkwMEIzB3VuaTAwQjkHdW5pMDIzNwd1bmkyMDAwB3VuaTIwMDEHdW5pMjAwMgd1bmkyMDAzB3VuaTIwMDQHdW5pMjAwNQd1bmkyMDA2B3VuaTIwMDcHdW5pMjAwOAd1bmkyMDA5B3VuaTIwMEEHdW5pMjAxMAd1bmkyMDExCmZpZ3VyZWRhc2gHdW5pMjAyRgd1bmkyMDVGB3VuaTIwNzAHdW5pMjA3NAd1bmkyMDc1B3VuaTIwNzYHdW5pMjA3Nwd1bmkyMDc4B3VuaTIwNzkHdW5pMjA4MAd1bmkyMDgxB3VuaTIwODIHdW5pMjA4Mwd1bmkyMDg0B3VuaTIwODUHdW5pMjA4Ngd1bmkyMDg3B3VuaTIwODgHdW5pMjA4OQRFdXJvB3VuaTIxMTYHdW5pMjVGQwd1bmlGQjAxB3VuaUZCMDIHdW5pRkIwMwd1bmlGQjA0BmkubG9jbAhjX3QuZGxpZwpmX2ZfeS5kbGlnCGZfdC5kbGlnCGZfeS5kbGlnCHRfdC5kbGlnCHRfeS5kbGlnDXplcm8ub2xkc3R5bGUMb25lLm9sZHN0eWxlDHR3by5vbGRzdHlsZQ50aHJlZS5vbGRzdHlsZQ1mb3VyLm9sZHN0eWxlDWZpdmUub2xkc3R5bGUMc2l4Lm9sZHN0eWxlDnNldmVuLm9sZHN0eWxlDmVpZ2h0Lm9sZHN0eWxlDW5pbmUub2xkc3R5bGUJemVyby50bnVtCG9uZS50bnVtCHR3by50bnVtCnRocmVlLnRudW0JZm91ci50bnVtCWZpdmUudG51bQhzaXgudG51bQpzZXZlbi50bnVtCmVpZ2h0LnRudW0JbmluZS50bnVtCXplcm8uc2luZghvbmUuc2luZgh0d28uc2luZgp0aHJlZS5zaW5mCWZvdXIuc2luZglmaXZlLnNpbmYIc2l4LnNpbmYKc2V2ZW4uc2luZgplaWdodC5zaW5mCW5pbmUuc2luZgl6ZXJvLmRub20Ib25lLmRub20IdHdvLmRub20KdGhyZWUuZG5vbQlmb3VyLmRub20JZml2ZS5kbm9tCHNpeC5kbm9tCnNldmVuLmRub20KZWlnaHQuZG5vbQluaW5lLmRub20JemVyby5udW1yCG9uZS5udW1yCHR3by5udW1yCnRocmVlLm51bXIJZm91ci5udW1yCWZpdmUubnVtcghzaXgubnVtcgpzZXZlbi5udW1yCmVpZ2h0Lm51bXIJbmluZS5udW1yE3BlcmlvZGNlbnRlcmVkLmFhbHQAAAAAS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAdCtgAAPy8hBQAqsQAHQkAMTAREBDQIJgcYBwUKKrEAB0JADFACSAI8Bi0FHwUFCiqxAAxCvhNAEUANQAnABkAABQALKrEAEUK+AEAAQABAAEAAQAAFAAsquQADAABEsSQBiFFYsECIWLkAAwBkRLEoAYhRWLgIAIhYuQADAABEWRuxJwGIUVi6CIAAAQRAiGNUWLkAAwAARFlZWVlZQAxOAkYCNgYoBRoFBQ4quAH/hbAEjbECAESzBWQGAEREAAA=) format("truetype")}@font-face{font-family:Fira-Sans-Book-Italic;font-weight:400;font-style:normal;src:url(data:@file/vnd.ms-opentype;base64,T1RUTwAMAIAAAwBAQ0ZGICCSu6MAAIdsAAS9+EdERUZZxFvcAAVFZAAAAehHUE9Tm1OqRQAFR0wAAlpYR1NVQpoX0VUAB6GkAABWbE9TLzI8VPXcAAAuSAAAAGBjbWFwQbn49wAAOCAAAE8qaGVhZA+Z+wEAAADUAAAANmhoZWEHBxKoAAAuJAAAACRobXR4djJLgQAAAQwAAC0YbWF4cAtGUAAAAADMAAAABm5hbWUCls9MAAAuqAAACXVwb3N0/7AAMgAAh0wAAAAgAABQAAtGAAAAAQAAAARNDoBxFjlfDzz1AAMD6AAAAADW1rUcAAAAANbWtRz9R/6iBYkEOQACAAMAAgAAAAAAAAKVACMCBv/kAgb/5AIG/+QCBv/kAgb/5AIG/+QCBv/kAgb/5AIG/+QCBv/kAgb/5AIG/+QCBv/kAgb/5AIG/+QCBv/kAgb/5AIG/+QCBv/kAgb/5AIG/+QCBv/kAgb/5AIG/+QCZAA5Agb/5AIG/+QCBv/kAgb/5AIG/+QCBv/kAtf/1gLX/9YC1//WAiQANAIkADQCJAA0AiEAGQJtADUCLQAHAgUANAH4ADkB+AA5AfgAOQH4ADkB+AA5AfgAOQHX/84B9QA5AfgAOQJIADQEAAA0BAAANAJQABwCUAAcAkgANAJIADQCUAAcAkgANAJIADQCkgA1AkgANAIGABQDwwA0A8MANAHXADQB1wA0AdcANAHXADQB1wA0AdcANAHXADQB1wA0AdcANAHXADQB1wA0AdcANAHXADQB1wA0AdcANAHXADQB1wA0AdcANAHXADQB1wA0AdcAHwHXAAcBxgADAdcANAHXADQByv/yAcr/8gHLABkBsgA0AbIANAGy/4QCNwA4AjcAOAI3ADgCNwA4AjcAOAI3ADgCNwA4Ag4AOAGmADwCPwA4Ab8AAAJdADQCXwA1Al0ANAJdADQCXQA0AqYANQIjADkDYAA0AQUANAIWADQBBQA0AQUANAEFADQBBQA0AQUAKgEFADQBBQA0AQUANAEFABMBBQA0AQUANAEFADQBBQA0AQX/sQE8ADoBGwAYAQUANAER/9UBEf/VASj/iQEe/9kCDAA0AgwANAIMADQCLAA0AbQANAKzADQBtAA0AbwAGQHlABkBtAA0AbQALAG0ADQBtAA0AbQANAKgADQBwwAYAsAAFwLAABcCwAAXAz4AQAJfADQDbwA0Al8ANAJfADQCXwA0Al8ANAJfADQCXwA0Al8ANAJfADQCX/+EA1oANAJTADQCXwA0AnAAOAJHACoCcAA4AnAAOAJwADgCcAA4AnAAOAJwADgCcAA4AnAAOAJwADgCcAA4AnAAOAJwADgCcAA4AnAAOAJwADgCcAA4AnAAOAJwADgCfQA4An0AOAJ9ADgCfQA4An0AOAJ9ADgCcAA4AzwAOAJwADgCcAA4AnAAOAJwADgC/QA6AnAAOAJwADgB+//1AnAAOAJwADgCcAA4AnAAOAJwADgDHAA4AgAANAIAADQCAAA0AkkANQIDADQCbgA4Al8AOQIcADQCHAA0AhwANAIcADQCHAA0AhwANAIcADQCJgAYAhwAKAHo//oB6P/6AMkAUgHo//oB6P/6Aej/+gHo//oB6P/6Aej/+gJMADQCRwAsAcsAPgHLAD4BywA+AcsAPgHLABYBywA+AcsANgHLAD4BywA+Ae0ANQHLADgBzP//AgMAOAHcABoBywA+AksAQwJLAEMCYgBCAksAQwJLAEMCSwBDAksAQwJLAEMCSwBDAksAQwJLAEMCSwBDAksAQwJLAEMCSwBDAloAQwJaAEMCWgBDAloAQwJaAEMCWgBDAksAQwJLAEMCSwBDAksAQwJ2ADsCSwBDAksAQwJLAEMB9gBFAfYARQJBAEMCBv/kAuUAVQLlAFUC5QBVAuUAVQLlAFUDAwBVAgIANAHe/98B6ABBAegAQQHoAEEB6ABBAegAQQHoAEECAQBBAegAQQHoAEECHgA0AegALwHoAEEB0P/2AdD/9gHQ//YB0P/2AdD/9gHQ//YB0P/2Agb/5AHXADQBBQA0AnAAOAJLAEMB+AA5Al8ANAJwADgB6P/6AdD/9gJVADQCVf+EAXAAKAIFADQCGQAvAeAAMAH2AC8B9QAuAhAAMAEf/+0BfwAwAhIAMAKZAC4B1AAwAdYAMAGqADACBQAsAgUALAIFACwCBQAsAgUALAIFACwCBQAsAgUALAIFACwCBQAsAgUALAIFACwCBQAsAgUALAIFACwCBQAsAgUALAIFACwCBQAsAgUALAIFACwCBQAsAgUALAIFACwCBQAsAgUAKgIFACwCBQAsAgUALAIFACwCBQAsAgUALAHkAEAC6QAXAukAFwLpABcCDQAzAg0AMwINADMCFgASAg0AMwE2//kCywA6AaUAIQIVADoCDQAzAaoALgGqAC4BqgAuAaoALgGqAC4BtAAuAaoALgGo/8YBqgAuAb0ALgGqAC4CEQAtAgsAKwL/AC4CKwAtAhEALQIaAC0CjgAtAhEALQIRAC0CBwAgA0wALQIRAC0CEQAtAhIALQIRAC0DlgAtAyoALQOWAC0DOgAtAdgALgHYAC4B2AAuAdgALgHYAC4B2AAuAdgALgHYAC4B2AAuAdgALgHYAC4B2AAuAdgALgHYAC4B2AAuAdgALgHYAC4B2AAuAdgALgHYAC4BtQAjAgAAIgG8//0B9QAuAoD//QHYAA0A+v99ART/ggEe//8BhwAgAdgALgHYAC4B2AAXAdgAFwKdABcBrP/NAaz/zQGs/7cBrv/0AaD/6AEl/8cBJf/HASX/xwEl/8cDEv/HAggAFQIIABUBuAAwAggAFQIIABUCCAAVAggAFQIIABUCDAAVAcX//AGOADEBxf/8AYsAOgGKAB8BjgAqAYsAOgIIABUB7gAVAbIAEwIKADACEQA3AgoAMAIKADACCgAwAgsAMQILADECBgA9AmAALgJhAC4DFgAwAPoAMAD6ADAA+gAwAPoAMAD6ACoA+gAiAPoAFAD6ACwA+gAjAPoAMAD6AA0A+gABAPoAMAD6ADAA+gAqAfUAMAD6ADAA+v+kAQQANwEVAA4A+gAlAPv/vQD7/70A+/+9APv/vQEu/4IBGf/NATb/0QEZ/80B6wAwAesAMAHrADABygAwAesAMAHH//MBBQA4AQUAOAG0//ABFgAYAUcAEwEFADgBBf/dAQUAKQFwADMBJQA4AQUAOAJQADgA+gAkAgAAOAFQ/+8CUgBCAQ4AGAJLADcC/AAwAvwAMAL8ADAC/AAwAvcAPQL8AD0CCgAwAgoAMAJpAE8CCgAwAgoAMAIKADACiwAwAgoAMAIKADACCgAwAgoAMAIK/34CCgAwAwUAMAIKADACCgAwAgoALgIKAC4CCgAuAgoALgIKAC4CCgAuAgoALgIKAC4CCgAuAgoALgIKAC4CCgAuAgoALgIKAC4CCgAuAgoALgIKAC4CCgAuAgoALgIWAC4CFgAuAhYALgIWAC4CFgAuAhYALgIKAC4CvgAuAgoALgIKAC4CCgAuAgoALgK5ADMCqwAqAgoALgIKAC4Brv/4AgoALgIKAC4CCgAuAgoALgIKAC4CAwAqAyUALgINABICDQASAg0AEgI2ACYCDgATAg4AEgIHACwCCgAsAggALAL/AC4BWAAwAVgAMAHaACQBWAAwAVj/+QFYADABWAAOAUcAKwFKAC4BWAAkAVj/5AFYADABWQASAVj/5AFkAAsBWP/kAab/+gGm//oAxgBWAab/+gGm//oBpv/6Aab/+gGm//oBpv/6Ag//vQGm/+cBqf/+ASX/xwFCACcBQgAZAUIAJwKtACcBQgAnAUIACgFCACcBfAAnAUH/+gFCACcBQgAnAfsAJwFCACcBQgAnAZD//gHKADEBpQARAUIAHQFDACcCbgAnAUMAAQIGAD0CBgA9Ah0AGAIGAD0CBgA9AgYAPQIGAD0CBgA9AgYAPQIGAD0CBgA9AgYAPQIGAD0CBgA9AgYAPQIiAD0CIgA9AiIAPQIiAD0CIgA9AiIAPQIGAD0CBgA9AgYAPQJlAEkCaQAtAXD/2AMmAAcCNgAHAg3/mQGaAAkBkQAJAbD//wFY/+MBj//5AhEALQIGAD0CCwAsAgYAPQIGAD0CBgA9AbgAMAICAD8BwgAwAbj/5gKGADsChgA7AoYAOwKGADsChgA7Ao0AOwKG//ECDwASAbD/4QG4//QBuP/0Abj/9AG4//QBuP/0Abj/9AG2//QBuP/0Abj/9AG7//UBuP/0Abj/5gGE//EBhP/xAYT/8QGV//EBhP/xAYT/8QGC//EBhP/xAYT/8QF///EBJQAqASUAKgIFACwB2AAuAPoAMAIKAC4CBgA9AaoALgIKADACCgAuAab/+gGE//ECEwASAiz/xwMS/8cDE//HAyT/xwIs/8cDTv/HAgv/xwIM/8cCHf/HAkf/xwIL/8cCHf/HAi0AKgIsACoDEgAqAxMAKgMkACoCCwAqAgwAKgIeACoCCwAqAh4AKgIlADAB8QAZAaf/0gIXACcBjv+CAmMAJAHyADADCQA0AT4AOwEn/4kBwAAPAiAANQLMADYB7QA0AesAKAIyADMBvQAzAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAiUAMAHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AKB/9YCgf/WAoH/1gHzADUB8wA1AfMANQIqACQB7gADAdcANAHDADIBwwAyAcMAMgHDADIBwwAyAcMAMgG/ADIBwwAyAhUANQIXACcCFQA1AhUAIgIXACcCFQA1AkwAJAIVADUCFwAnAdYADgOkADUDpAA1Aa0ANAGtADQBrQA0Aa0ANAGtADQBrQA0Aa0ANAGtADQBrQA0Aa0ANAGtADQBrQA0Aa0ANAGtADQBrQA0Aa0ANAGtADQBrQA0Aa0ANAGtADQBpgAaAa4ABgGYAAIBrQA0Aa0ANAIJACUCCQAlAaL/8QGi//EBowAVAY4ANAKRADQDHAA0AY4ANAKRADQDHAA0AgAAMQIAADECAAAxAgAAMQIAADECAAAxAgAAMQH8ADEBeAAsAgQAMQGU//MCLAA0AiYAMQIsADQCLAA0AiwANAEEADQBBAA0AQQANAEEADQBBAAzAQQAKQEEAB8BBAA0AQQALgEEADQBBAASAQQANAEEADQBBAA0AgUANAEEADQBBP+vARsAEAEEADABAf/XAQH/1wET/9wB3AA1AdwANQHcADUB3AA1AeYANQGOADQBjgA0AZkAEAGOADQBjgAdAY4ANAGOADQBjgA0AoEANAHJ/+QBrQA0AQQANAItADECGQBBAcMAMgIsADUCLQAxAbb/+AGg//YBkgAOAnkAFwJ5ABcCeQAXAuoAPAIsADUCLAA1AiwANQIsADUCLAA1AiwANQIsADUCLAA1AiwANQIsADUCLP+EAy0ANQIsADUCLQAxAi0AMQItADECLQAxAi0AMQItADECLQAxAi0AMQItADECLQAxAi0AMQItADECLQAxAi0AMQItADECLQAxAi0AMQItADECLQAxAlIAMQJSADECUgAxAlIAMQJSADECUgAxAi0AMQLmADECLQAxAi0AMQItADECLQAxAi0AMQItADEBx//0Ai0AMQItADECLQAxAi0AMQItADECCgAmAsIAMQHSADUB0gA1AdIANQIIACQB1AA1AiUAMQIkADAB6wA1AesANQHrADUB6wA1AesANQHrADUB6wAoAesANQHmABABtv/4Abb/+AG2//gBtv/4Abb/+AG2//gBtv/4Abb/+AIZADUBlAAtAZQALQGUAC0BlAAtAZT//AGUAC0BlQAhAZQALQGUAC0BtQAkAZQAHQGl//wB0AA0AacAFgGUAC0CGQBBAhkAQQIfADACGQBBAhkAQQIZAEECGQBBAhkAQQIZAEECGQBBAhkAQQIZAEECGQBBAhkAQQIZAEECKQBBAikAQQIpAEECKQBBAikAQQIpAEECGQBBAhkAQQIZAEECGQBCAhkAQQIZAEECGQBBAbsAMwIPAD8Byf/kAo4AQwKOAEMCjgBDAo4AQwKOAEMCmgBDAdMANAGm/98BsAAvAbAALwGwAC8BsAAvAbAALwGwAC8BsQAvAbAALwGwAC8BsQAfAbAALwGg//YBoP/2AaD/9gGg//YBoP/2AZ//9gGg//YBVAAoAiAANQIi/4QB6AAoAdcANAHBABUBwQAUAeMAGQIFADEBGwAPAP0ANAGhADQBKwA7ARkANAEaADQAvQAsAKwAOwEWADQA3QA0ARcAOQG6//wBpQBZATsANAE6AD4CUQA0Agb/5AIFADQCJAA0AccANQHHADUByAA1Aif/vQHXADQB1wA0AdcANALo/+wB1v/0Al8ANAJfADQCXwA0AmsANAIWADQCFgA0Akr/9ALAABcCXQA0AnAAOAJYADQCAAA0AfgAOQHLAD4B3wA2Ad8ANgLjADAB3v/fAiMAOQJRADQDNQA0AzUANAJRADQB/wA0AmIAPgLbADQDJf/0A0kANAHo//oB/QA5Ae3/+wEFADQBBQA0ARH/1QKBAD4DIwA0AiL//AKBAD4C/QA6AjMAJQLGADQCFP/kAtcANAKn/+QDFAA0AcD/9wJuADMCcAA4AhYARQIWAEUEKAA4AcwAFQIfADQC6//sAdb/9AIdADQCHAA0Ah8AOgJ4AD4CXQA0AucANANtADQCWQA0AoQAOQH4ADkBywA+Ad7/3wK1AD4CIgA5AiMAOQIeADQCVQA0ApcAFwKXABcBBQA0Auj/7AIcADUCV//0Al0ANAJqADQCIwA5AusAFwIG/+QCBv/kAtf/1gHXADQCRwAsAkcALALo/+wB1v/0Acr/8gJfADQCXwA0AnAAOAJwADgCcAA4Ae3/+wHfADYB3wA2Ad8ANgIjADkBxwA1AtsANAHM/9oB3v/fAd7/3wIAAA4C8gANAqUARgGyAEoDQP/0A1EANAI3ADgCXQA+AdcAHwJK//QC5f/0ArQANAL0//wCbgA4AuUAVQIaADQDY//0A3gANAIJADkCAAA0Al3/hANb/70CZf/tAkv/9AH9/8QCBv/kAu0AOQLu/+QBxwA1AlkANANH/8QCOP//Agr/5AJB/+QCXQA0AcwAFQHe/98DEf/kAgj/5AKu/+QDKf/kAl0ANAIFACwCCwA3AeIALgGlABEBpQARAZIAMAIBAC0B2AAuAdgALgHYAC4CpQADAbz//QIGAD0CBgA9AgYAPQIXAD0B4wAwAeMAMAICAAUCXAAUAhAAMAIKAC4CCgAwAg0AEgGqAC4C/AAwAbj/9AG4//QC5wAvAbD/4QHtADcCEAA9AvwAPQMEAD0CBgA9AcoAMgIWACECigAyAsQABQLWADABpv/6Aa0ALgGw//oA+gAwAPoALAD7/70CEQA3AsEAMAHs//wCEgA3ArkAMwHTADYCdAAwAdH/5gJ8ADACdgACAq0AMAGg/+gCsABFAgoALgHCADABwgAwA78ALgGmABEB6QAwAqcAAwG8//0B5QAwAfAAMAHsADgCGQAhAhoAMAJdADACGQAwAv0AMAIeAC4BqgAuAwwAMAHJ/+ECSAAQAfYANwHtADcCAwAwAhgAMAIgAA0CIAANAQUAOAKlAAMB4AAwAhMABQIQADACIQAwAe0ANwJ7ABQCBQAsAgUALALpABcB2AAuAdkAFgHZABYCpQADAbz//QGs/80CBgA9AgYAPQIKAC4CCgAuAgoALgGw//oBuP/0Abj/9AG4//QB7QA3AaUAEQKKADIBpQARAcv/4QGw/+ECEQAtAwwALQJjADoBigA6AvoABQMKADAB9gAvAisAEAG1ACMCAgAFAnsABQLiABIC0f/8AgcALAKGADsB5AAwAvEABQL+ADAB2AAvAg0AEgIQ/34DTP/5Aiv/4QIMAAUCEQAzAZL/fgIIABUCpQADAeIAMAHiADABuP/mAnv/5gLAAD4BpQARAqQAAwHiADAB8AAwAhoAMAIZADACTwAQA0wAEAJ8AEMB2f/mAqUAAwHnADAB6//mAhoAMAGaABAByf/hAqP/5gPzADABuv/mAlv/5gK9/+YCGgAwAgcALQD6ADACCAAVAgYAPQL8AD0CDgAwAYwANAIyADQCNwA0AYYACQG6/98CNwA0Acn/5AHXADQB8wA1AYwANAGMADQBjAA0Aef/vQGtADQBrQA0Aa0ANAKQ/+kBp//yAiwANQIsADUCLAA1AjEANQHlADQB5QA0Ag3/9AJ5ABcCLAA0Ai0AMQIoADQB0gA1AcMAMgGUAC0BpQAqAaUAKgKTACgBpv/fAfIAMAI1ADQC5wA0AvIANAIrADQB0QA0AgYALgKcADQCwP/0AuoANQG2//gByAAyAbj/+QEEADQBBAA0AQH/1wItAC4C2AA0AfL//AIuAC4CzAA2AfAAJgKKADUB1//kApsANAJU/+QCxwA1AY3/8gIsACsCLQAxAcgAMwHIADMDzAAxAYYACQHuADQCoP/pAaf/8gHxADQB5QA0AdMAIgIaAC4CNwA0AnIANAIyADQDEwA0AkYAMgHDADIBlAAtAbr/3wIJADwB8gAwAe4ANQIvADUCLP+CAvf/vQIe/+0CGP/0AmAADwJgAA8BBAA0ApD/6QHwADQCEv/0AiwANAIvADQB8gAwApwAFwHJ/+QByf/kAoH/1gGtADQCCQAlAgkAJQKQ/+kBp//yAaL/8QIsADUCLAA1Ai0AMQItADECLQAxAbj/+QGlACoBpQAqAaUAKgHyADABjAA0ApwANAGG/84BqP/fAab/3wHQAAgCngAHAlsAOgF8ADsC1//0AvkANAIAADECGgAtAaYAGgIN//QChv/0AlwANQKc//wCJQAxAo4AQwHlADQC+P/0AxYANAHTADcB1wA1Ac//xAHJ/+QCoAAxAqn/5AMG/8QCBwAHAeb/5AID/+QCyv/tAcz/5AJL/+QCyP/kAisANAIJADABEf/VAgb/5AIkADQBxwA1Ag//5AHXADQB0P/2Al0ANAJwADgBBQA0AgwANAIG/+QCwAAXAl8ANAHHAAQCcAA4AlgANAIAADQBxgADAcsAPgHoAEEC1gAqAd7/3wJuADMCdgAkAg7/7QIrADkCsAA5AVkAOQKtADkCWQAsArEAOQEFADQB6ABBAdAANAIEACECXwA0AnAAOAHoAEEB0wA1AaEAJAIN/+QCIAA0AgEAQQJ6AEgCAQBBAnAAOAIDADQCDAA5AsAAFwIU//UCDAA5AhT/9QIO/+0CFf/zAoEAMAKLAEcCaQAwAn0ARwKSAEMCkABDAhj/9gIR/+8CBv/kAgb/5AIG/+QCDv/tAhX/8wKBADACiwBHAmkAMAJ9AEcCkgBDApAAQwIkADgCKgBOAqQANwKnAE0CjgA3Ap4ATQI1AFQCJwA6AqkAOAKwAE4DKgA3Ay0ATQMUADcDJABNA1gASgNYAEoCuwBUAqwAOgJdADQCqQA4ArAATgMqADcDLQBNAxQANwMkAE0DWABKA1gASgFSADgBWABOAdIANwHWAE0BvQA3AcwATQIAAEoCAABKAWMAVAFVADoBBQA0AQUANAKuADgCyABPAzwANwNLAE4DGQA3Ay8ATgLIAFQCrwA6AlMATgJhAEIC2QBBAugAQQMYAD0CYQBIAnEALQHoAEEB6ABBArIAOALPAE8DQgA3A1AATgMhADcDMwBOAzwASgM9AEoC1gBUArgAOgJ2ACQCsgA4As8ATwNCADcDUABOAyEANwMzAE4DPABKAz0ASgIcACwCFgASAa8AIQIHAC0BtQAjAVgAIgIQADYCBwA5APUAOgHhADYBtP/wAg0AEgGvACEBhwAsAgoALgILAC4CCQAJAZ8AMQIPAC4BjwAXAf0AQAKRADUBl/+7ArAARQK5ADMA9QA6APUAKAD1AB0B/QBAAf0AQAH9AEACCgAuArkAMwIcACwBtQAjAhAANgGsADYBpQAXAhEAMAHM//kBxQAvAcz/+QIKAC4BowAzAYkADgGUABgCIv/hAgsAMwIBADQB4wAlAjYAJgKNADcCCwAzAggAJgHFAC8A+/+9Aa0ALgIOABICXv/pAgn/0gIcACwCHAAsAhwALAIcACwCHAAsAhwALAIcACwCHAAsAhwALAIcACwCHAAsAhwALAIcACwCHAAsAhwALAIcACwCHAAsAhwALAIcACwCHAAsAhwALAIcACwCHAAsAhwALAIcACwBtQAjAbUAIwG1ACMBtQAjAbUAIwG1ACMBtQAjAbUAIwIQADYCEAA2AhAANgIQADYCEAA2AhAANgIQADYCEAA2AhAANgIQADYCEAA2AhAAKQIQACkCEAApAhAAKQIQACkCEAApAhAAKQIQACkCEAApAhAAKQIQACkCEAApAPUAOgD1ADoA9QAyAPUAJwD1ADoA9QA6APUAOgD1ABkA9QA6APUAOgD1ACIA9QA4APUAOgD1ACIA9QAfAPUAIwIKAC4CCgAuAgoALgIKAC4CCgAuAgoALgIKAC4CCgAuAgkACQIJAAkB/QBAAf0AQAH9AEAB/QBAAf0AQAH9AEAB/QBAAf0AQAH9AEAB/QBAAf0AQAH9AEAB/QBAAf0AQAH9AEAB/QBAArkAMwK5ADMCuQAzArkAMwK5ADMCuQAzArkAMwK5ADMCuQAzArkAMwK5ADMCuQAzArkAMwK5ADMCuQAzArkAMwK5ADMCuQAzArkAMwK5ADMCuQAzArkAMwK5ADMA8//tAgEANAFYACICDQAuAcn/5AHzADUBjAA0AdH/5AGtADQBoP/2AiwANAItADEBBAA0AdwANQHJ/+QCeQAXAiwANQGbAAUCLQAxAigANAHSADUBmAACAZgAAgGUAC0BsAAvAocAIgGm/98CLAArAjMAHQEEADQBBAA0AQQANAGwAC8BsAAvAbAALwItADECMwAdAcn/5AGtADQCLAA0AZsANAHIABcCLAA1Adv/9AHaADIB2//0Ai0AMQG7ADUBmAA0AXUAGwHE/+QB8wA1AfMANQItADEBsQAvAbEALwGxAC8ChwAiAigANAHcADUB0gA1AdoAMgEB/9cByAAyAdQANQJ5ABcB5AAOAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AHJ/+QByf/kAcn/5AGtADQBrQA0Aa0ANAGtADQBrQA0Aa0ANAGtADQBrQA0AiwANAIsADQCLAA0AiwANAIsADQCLAA0AiwANAIsADQCLAA0AiwANAIsADQCLAA0AiwANAIsADQCLAA0AiwANAIsADQCLAA0AiwANAIsADQCLAA0AiwANAIsADQBBAA0AQQANAEEADQBBAA0AQQANAEEADQBBAA0AQQANAEEADQBBAA0AQQANAEEADQBBAA0AQQANAEEADQBBAA0Ai0AMQItADECLQAxAi0AMQItADECLQAxAi0AMQItADEB0gA1AdIANQGwAC8BsAAvAbAALwGwAC8BsAAvAbAALwGwAC8BsAAvAbAALwGwAC8BsAAvAbAALwGwAC8BsAAvAbAALwGwAC8CMwAdAjMAHQIzAB0CMwAdAjMAHQIzAB0CMwAdAjMAHQIzAB0CMwAdAjMAHQIzAB0CMwAdAjMAHQIzAB0CMwAdAjMAHQIzAB0CMwAdAjMAHQIzAB0CMwAdAjMAHQDz/+0CCAAVASwAQwEyAEoCBAA6AYYAQgG6//wBv//sAdsAFgHC//4B6AA3AY0AJgHwAB0B2QAsAikAKQF2ADMBv//3Ab3/3wG2//UBu//uAd8ALwGQABgB8QAeAdoAHgIpACkB+AA0AfgAPAH4AA8B+AAFAfgAJAH4ABoB+AA5AfgAVgH4ACEB+AA4AfgANAH4ABoB+AA5AfgAEgH4//sB+AAVAfgACgH4ADoB+ABIAfgAIQH4ACwB+AAaAgQAOgFkAAIBZAAnAWT/+QFk//ABZP/0AWT/9QFkAAIBZAAaAWT/9AFkAAsBZAAeAWQAQwFkABUBZAAMAWQAEAFkABEBZAAeAWQANgFkABABZAAnAWQARAFkAGkBZAA7AWQAMgFkADYBZAA3AWQARAFkAFwBZAA2AWQATQFkAEsBZABwAWQAQgFkADkBZAA9AWQAPgFkAEsBZABjAWQAPQFkAFQAcf82AdUAaQM6AGkDOgBpAzoAOwM6AGkDOgAyAzoAaQM6ADsDOgAyAzoANgM6AGkDOgA3AzoAaQM6ADIDOgA3AvUAVADWABEA1f/qANcAEQDa/+oCigARAOEAGADhAAYBoABPAaD/8QDWADYBKgA+AZUARAIVAF4BzwAAAdcAMAHVAKwB3AAsAlr/0QDiACYBnwANAc8AAAH4ABUB+AAVAWQAPgFkABoBIAAoASD/8AEiACABIv/2AR4ABwEf//oBZACCAWQAXgEhACcBIP/uASIAHgEi//UBHwAFAR//+QFrADoBawA6AdUAIgLEACIB9gAfAdUAIgFuADoBbgA6Adf/3QFrAEABawBAAdUAKQLEACkB9gAfAfgAIAH4ACAA0P/uAXv/7gF7AFcBewBKANAAVwDQAEoCDgA2Ag4AHAE3ADYBNwAcAXQAXADGAFwCDgA8Ag4AIgE3ADwBNwAiAWQAWwFkADcBZACCAWQAXgDWADYA2v/qAfMAAAFGAAAA6gAAAOsAAAAAAAAAHwAAAAD/vAAA/7sAAP+7AAD/uwDqAAAAAAAAAhcANAGqAC4B6wA4AfgAIQHc//oCGgAtBB0AMgIKABYBJf/HAeMAFAHnACUCTwAVAfUAFQHdADsDNAAzAdEABALPABUB2wA5AhcANAGqAC4B6wA4AfgAIQHc//oCGgAtBB0AMgIKABYB4wAUAecAJQJPABUB9QAVAd0AOwM0ADMB0QAEAs8AFQHbADkB+AANAfgATAH4ADgB+AAlAfgABgH4AB4D3gA3AfgAGAH4ACAB+AA5Afj//wH4ACcB+ABaA0wAPwH4ABYDTABSAfgARwH4AA0B+ABMAfgAOAH4ACUB+AAIAfgAHgPeADIB+QAlAfgAHwH4ADYB+P/+AfgAJgH4AFcDTAA/AfgAKANMAFQB+ABIANYANgBx/zYA1gA2AskAGALJAGEBZAAYAWQAYQHFAEABxABAAcYAOQHEAEABxAAyAcQALwHDACQBxAAzAcMAFgHEABYBxQAXAbgAHAG4ACgBxwA+AecATgN3AFQDJQA8AVP/oQJ2ACQCD//kAhwANQHEAAoB+ABKAg0AEgHQABMC4wBPBCkAUAFlABgBZQBhAnQAVQMkAEEBxQBAAcQAQAHGADkBxABAAcQAMgHEAC8BwwAkAcQAMwHDABYBxAAWAcUAFwG4ABwBuAAoAccAPgMlADwBU/+hAhwANQHEAAoB+ABKAdAAEwLjAE8EKQBQAfgAWgH4AFkB+ABSAfgAWgH4AE0B+ABKAfgAPwH4AE0B+AAxAfgAMQH4ADAB+AA7AfgASQH4AFcDKgA/Afj/9AH4ACQB+AAcAfgASgH4ACkDKgB1BBQAUAH4AFoB+ABZAfgAUgH4AFoB+ABNAfgASgH4AD8B+ABNAfgAMQH4ADEB+AAwAfgAOwH4AEkB+ABXAyoAPwH4//QB+AAkAfgAJQH4AEoB+AApAyoAcwQUAEcDhACfAxwAewOFAIgDRwCvA4QAiwOEAOADhACCA0gAnwUEAIIDyQC6AtAAYgPAADUC0AA0A8AAKgLQAGIC0AA0A+gAPgPoAEgDbQBXAdgAKQISAF4DbgBFA24AgwNuAEUDbgBgAlgAYwJYADsB9QAjAfQAYgH1ACMB9ABCAdgAKQH4ADQB+AA3AyMANAOcADwClABFAo8AcQHsACIC2gBtAkAAXgMXAFYB0gBcAWsAXgFrAF4BewANAc4AQwHQABwDsgBHA90ANASrAFgDYQAyAtAAYgTYAHEFtABaBeEAnQW0AIUD6AAjAewAIgHSAFwBzgBDAdAAHAMmADEB+AAjAfgAcgH4AFMB+AAuAfgAKAH4AG8B+ABZAfgAMQDLABABXgBNAaMAOwGjADsBWAA3AaMAMAEzAFIBM//6ATMAPAEzABIBMwAnAX8AMQFlADUBZAA1AskANQFlAFwBZABcAskAXAEqAFgBsP/6ARMAUQETAAIBSgBhARH/4wDYAE4A2QAKALcAVAFvADUBDQBfAO8AbAEL/+gBEwBRAKQAXwERAFkAiP/PAIgAUQAA/wMAAP+zAAD/UgAA/0gAAP79AAD++AAA/wEAAP8iAAD/WgAA/vgAAP8sAAD+2wAA/30AAP/JAAD/HwAA/w0AAP+tAAD/pgAA/t0AAP7SAAD+6wAA/tsAAP+AAAD/iQAA/z8AAP6JAAD+nAAA/rsAAP68AAD+ugAA/zsAAP6NAAD+2wAA/yoAAP7iAAD++AAA/0cAAP6jAAD+aQAA/okAAP6AAAD+mgAA/oIAAP63AAD+PgAA/nAAAP7PAAD9RwAA/zAAAP6iAAD+pAAA/lwAAP8YAAD+ngAA/wUBEABYAAD+sgAA/t0BQwBlAWAAYQD5/9sBYABYAVkAXACrAF4BDQBfAAD+uwAA/ukBSgBRASsAVwAA/toAAP7jAO//5wEFAF8BYgBaAPj/2wDw/9sAfQBeAAD/FgAA/8UAAP9iAAD/WAAA/xEAAP8JAAD/EgAA/zEAAP9sAAD/CQAA/z4AAP+SAAD/MAAA/6EAAP8qAAD+4gEOAGkBQwB0AV8AcgD5/9sBXwBpAVgAbgCoAG8BEABuAUoAYwErAGkBBQBxAWIAawAA/3oA1wBRAAD/jgDWAGQAAP96ANYAUQAA/44A1gBkAVkAYQCrAGIBDQBjARAAXAFUAFUBYABcAWAAZQFDAGoBBQBjAWIAXgErAFwApv/QAPn/2wDv/+cBEQBdAUMAagFgAGUA+f/bAWAAXAFZAGEAqQBiAQ0AYwFLAFUA1wBUANcAVAErAFwA7//nAQUAYwDw/+gBYgBeAPv/9gAA/vgAAP75AJMATQCTAD8BZgBYAKUASwCmAD0ApQBLAKMAYQCkAFQBIABLAScAYQEnAFMBHgBLAR4APQEtAGEBLQBTAWIAZwFiAFABYgBnAWIAUAFZAFkBWQBYAWgAZACvAGcAtwBaAKoATQCxAD8BYgBaASAAPQD4/9sAq//8APj/2wCr//gA0ABKA0QAMANhADIBJgBkAqoAZAFX//UBQf/0AegAQQHoAEEBuAAwAbgAMAGwAC8BsAAvASsAVwFDAGQBQwB1AUMAaAAAAAAA8P/bAKv/5QFZAFgBWQBZAKv//gFDAF4BRgBhAUMAXgF7AGcBtQBRAbkAbgGyAFEBZQBRAUMAcgFGAHQBQwByAWIAfAG0AGMBuQCBAbYAYwFlAGQA1wBVANUAYwF8AFwBZQBiAVkAaQFZAGkBYgBwAVkAWAFZAGkBKwBQASsAUAFiAFEBYgBoASsAZAErAGQBFf+CAWgAZAEk/+QBPQBFAT0ARgEk/+UAvQA1AST/8AEk//EAwABMAVgANwErAGUBKwB3ARcAawEbAH4BYgBRAWIAaAF/AHcAsP/qALD/6QHA//cBjf/yAXwAVwABAAADp/73AAAF4f1H/qIFiQPoAI0AAAAAAAAAAAAAAAALRgAEAfYBXgADAAACigJY//UASwKKAlgAMQFeADIBOwAAAgsFAwUAAAIABGAAAv8CAAABAAAAAAAAAABiQiAgAIEADf//A6f+9wAAA6cBCSAAAZ8AAAAAAg4CsAAAACAABAAAACIBngABAAAAAAAAAJgAAAABAAAAAAABABMAmAABAAAAAAACAAsAqwABAAAAAAADACcAtgABAAAAAAAEAB8A3QABAAAAAAAFADwA/AABAAAAAAAGABwBOAABAAAAAAAHADQBVAABAAAAAAAIADsBiAABAAAAAAAJADsBiAABAAAAAAALABgBwwABAAAAAAAMABgBwwABAAAAAAANADoB2wABAAAAAAAOABoCFQADAAEECQAAATACLwADAAEECQABADADXwADAAEECQACAAwDjwADAAEECQADAE4DmwADAAEECQAEAD4D6QADAAEECQAFAHgEJwADAAEECQAGADgEnwADAAEECQAHAGgE1wADAAEECQAIAHYFPwADAAEECQAJAHYFPwADAAEECQALADAFtQADAAEECQAMADAFtQADAAEECQANAHQF5QADAAEECQAOADQGWQADAAEECQAQACYGjQADAAEECQARABYGswADAAEECQEAAHIGyQADAAEECQEBADYHOwADAAEECQECADYHcQADAAEECQEDADAHp0RpZ2l0aXplZCBkYXRhIGNvcHlyaWdodCAyMDEyLTIwMTgsIFRoZSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIFRlbGVmb25pY2EgUy5BLiwgYkJveCBUeXBlIEdtYkggYW5kIENhcnJvaXMgQ29ycG9yYXRlIEdiUiwgd2l0aCBSZXNlcnZlZCBGb250IE5hbWUgIkZpcmEiRmlyYSBTYW5zIENvbmRlbnNlZEJvb2sgSXRhbGljNC4zMDE7YkIgIDtGaXJhU2Fuc0NvbmRlbnNlZC1Cb29rSXRhbGljRmlyYSBTYW5zIENvbmRlbnNlZCBCb29rIEl0YWxpY1ZlcnNpb24gNC4zMDE7UFMgMDA0LjMwMTtob3Rjb252IDEuMC44ODttYWtlb3RmLmxpYjIuNS42NDc3NUZpcmFTYW5zQ29uZGVuc2VkLUJvb2tJdGFsaWNGaXJhIFNhbnMgaXMgYSB0cmFkZW1hcmsgb2YgVGhlIE1vemlsbGEgQ29ycG9yYXRpb24uYkJveCBUeXBlIEdtYkggJiBDYXJyb2lzIENvcnBvcmF0ZSBHYlIgJiBFZGVuc3BpZWtlcm1hbm4gQUdodHRwczovL3d3dy5iYm94dHlwZS5jb21MaWNlbnNlZCB1bmRlciB0aGUgT3BlbiBGb250IExpY2Vuc2UsIHZlcnNpb24gMS4xIG9yIGxhdGVyaHR0cDovL3NjcmlwdHMuc2lsLm9yZy9PRkwARABpAGcAaQB0AGkAegBlAGQAIABkAGEAdABhACAAYwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAyAC0AMgAwADEAOAAsACAAVABoAGUAIABNAG8AegBpAGwAbABhACAARgBvAHUAbgBkAGEAdABpAG8AbgAgAGEAbgBkACAAVABlAGwAZQBmAG8AbgBpAGMAYQAgAFMALgBBAC4ALAAgAGIAQgBvAHgAIABUAHkAcABlACAARwBtAGIASAAgAGEAbgBkACAAQwBhAHIAcgBvAGkAcwAgAEMAbwByAHAAbwByAGEAdABlACAARwBiAFIALAAgAHcAaQB0AGgAIABSAGUAcwBlAHIAdgBlAGQAIABGAG8AbgB0ACAATgBhAG0AZQAgACIARgBpAHIAYQAiAEYAaQByAGEAIABTAGEAbgBzACAAQwBvAG4AZABlAG4AcwBlAGQAIABCAG8AbwBrAEkAdABhAGwAaQBjADQALgAzADAAMQA7AGIAQgAgACAAOwBGAGkAcgBhAFMAYQBuAHMAQwBvAG4AZABlAG4AcwBlAGQALQBCAG8AbwBrAEkAdABhAGwAaQBjAEYAaQByAGEAIABTAGEAbgBzACAAQwBvAG4AZABlAG4AcwBlAGQAIABCAG8AbwBrACAASQB0AGEAbABpAGMAVgBlAHIAcwBpAG8AbgAgADQALgAzADAAMQA7AFAAUwAgADAAMAA0AC4AMwAwADEAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA4ADgAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA2ADQANwA3ADUARgBpAHIAYQBTAGEAbgBzAEMAbwBuAGQAZQBuAHMAZQBkAC0AQgBvAG8AawBJAHQAYQBsAGkAYwBGAGkAcgBhACAAUwBhAG4AcwAgAGkAcwAgAGEAIAB0AHIAYQBkAGUAbQBhAHIAawAgAG8AZgAgAFQAaABlACAATQBvAHoAaQBsAGwAYQAgAEMAbwByAHAAbwByAGEAdABpAG8AbgAuAGIAQgBvAHgAIABUAHkAcABlACAARwBtAGIASAAgACYAIABDAGEAcgByAG8AaQBzACAAQwBvAHIAcABvAHIAYQB0AGUAIABHAGIAUgAgACYAIABFAGQAZQBuAHMAcABpAGUAawBlAHIAbQBhAG4AbgAgAEEARwBoAHQAdABwAHMAOgAvAC8AdwB3AHcALgBiAGIAbwB4AHQAeQBwAGUALgBjAG8AbQBMAGkAYwBlAG4AcwBlAGQAIAB1AG4AZABlAHIAIAB0AGgAZQAgAE8AcABlAG4AIABGAG8AbgB0ACAATABpAGMAZQBuAHMAZQAsACAAdgBlAHIAcwBpAG8AbgAgADEALgAxACAAbwByACAAbABhAHQAZQByAGgAdAB0AHAAOgAvAC8AcwBjAHIAaQBwAHQAcwAuAHMAaQBsAC4AbwByAGcALwBPAEYATABGAGkAcgBhACAAUwBhAG4AcwAgAEMAbwBuAGQAZQBuAHMAZQBkAEIAbwBvAGsAIABJAHQAYQBsAGkAYwBTAHQAeQBsAGkAcwB0AGkAYwAgAHYAYQByAGkAYQBuAHQAcwAgAEIAdQBsAGcAYQByAGkAYQBuACwAIABkAGkAZgBmAGUAcgBlAG4AdAAgAEEAZgByAGkAYwBhAG4AIABsAGEAbgBnAHUAYQBnAGUAcwBTAHQAeQBsAGkAcwB0AGkAYwAgAHYAYQByAGkAYQBuAHQAcwAgAEwAaQBiAGUAcgBpAGEAbgBTAHQAeQBsAGkAcwB0AGkAYwAgAHYAYQByAGkAYQBuAHQAIABhAG0AcABlAHIAcwBhAG4AZABTAHQAeQBsAGkAcwB0AGkAYwAgAHYAYQByAGkAYQBuAHQAcwAgAEcAcgBlAGUAawAAAAAAAAQAAAADAAAAJAADAAEAAAAkAAAABAAAEFYAAwAK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AXMBeAGIAbIBpAGoAa8B+gHwAfMB9QGRAjgCSgI6Aj4CXwJFCX4CXQKtAqECpQKnAtcCaQLZABoBcQADAVkAGwFyACsBhgAuAYkALwGLACwBhwA4AZMAOgGVAFQBtQBEAaUATwGwAFUBtgBFAaYAZQHVAGMB0wBnAdcAZgHWAG8B5gBtAeQAhgICAIIB/gB3AfEAgwH/AH0B7wB1Af0AiAIGAI0CDQIOAJECEgCWAhgAlAIWAJcCGgCaAiEAoQIqAKQCLgCiAiwCKwCoAjMAygJVALACPADHAlIA1gJjAN8CbwDhAnIA4AJxAOgCfwDsAoMA6wKCAOoCgQD1Ao8A9AKNAPMCjAEcAscBGAK3AQQCowEbAsYBFgK1ARkCxAEkAs8BLALYAS0BNwLjATkC5gE4AuQCigGDACcAKQGEAP4CmgDQADEBjQA2AD0APwGeAZkAVwDxAFYAYAk3AGgBHwHtAIQAhQCOAg8CFAITAJ4AqQI3ALIAwQJMAMgCUwDaAmgBMwD/ApsAWAG/ApwA+wKXAQABEAKvARoBIAEwAtwBPALqAFsAXQHJAcoEbgD9ApkB2QLUBGQEZQRjBGYANQBBAaEAkACZAh4AoACqAjYACQFfAHgB8gCxAj0BBQKkAQwCqwEJAqgBCgKpAQsCqgHDABIBaAAVAWsAIgF6AGoB4QBkAdQAjAIMAM4CWgDPAlsAXAHHAgUANABAAZ8AYgHRAHMBKACnAjIAHQF0ACEBeQDSAl4AEAFmABgBbgBNAa4AUwG0AHoB9ACBAfwAuQJEAMkCVADiAnMA5AJ5AQcCpgEXArYA7QKEAPcCkQBrAeIAbgHlAKsBlgCuAmIBOwLoABMBaQBGAacAuwJGANUCYQC8AkcAvQJIATIC3gIZAi8CkgIEAZICbQAeADIBjwCSAPgCiQLrAGkB3QAoAQMBIQBZAcEAigIKAN0CbADlAnwBNALfAXcBbwFwAX8CXAGKAZ0BmwG8AcQBxQG3AbkBuwG6AggB2AHgAU0B0gJwAeoB6QHoAgECAAFQAh8CFQIdAhwCKAInAiYCNAI1AVICOwFTAlkCZwJ9AnsCeAJ6AncCdQJ2AVQBVQKIAb0CCQHAAb4CnwKdAqICxQLKAswC0wLhAVYC6QLlAcYByAHaAdwB2wGOAYEBTAG4AU4BTwIHAhABUQJrAd4B3wGgAZoBogKeApYCjgHPAiACIgGCAYAB6wHsBGgEZwRpBG8EcQpCCj4KPQr5CkMKQAqECoIKRgpECj8KRQpBCjoKPAo7CiYKJQqBCoYKjwqOCpAKigonCjkEagRtBHAKNQopCisKLQosCioKSQpKCkwKUApRClIKTgpICkcKUwpPCksKTQpUBokHIAaKByEKNwo4BosHIghtByMHJAclCSIGZwrZCtsGgAkhBoEGggaDBoUGhgcXBocGiAcdBx4HHwcVBxoHFgcZBxsHGAccBpEHLActBpIGkwaUBy4HLwcrBowHJgaNBycGjgcoBo8HKQaQByoHMAcxBzIHMwaVBzQKNgaWBzUGlwaYBzYHNwaZBpoGmwR7BHwEpAR3BJwEmwSeBJ8EoASZBJoEoQSEBIEEjgSVBHMEdAR1BHYEeQR6BH0EfgR/BIAEgwSPBJAEkgSRBJMElASXBJgElgSdBKIEowUZBRoFIwUvBTAFMgUxBTMFNAU3BTgFNgU9BUIFQwUbBRwFRAUXBTwFOwU+BT8FQAU5BToFQQUkBSEFLgU1BKUFRQSmBUYEpwVHBKgFSASpBUkEqgVKBKsFSwSsBUwErQVNBK4FTgSvBU8EsAVQBLEFUQSCBSIE+wWbBPwFnAR4BRgEsgVSBLMFUwS0BVQEtQVVBLYFVgS3BVcEuAVYBLkFWQS6BVoEuwVbBLwFXQS+BV4EvwVfBMAFYAsACwILAQsDBMEFYQTCBWIEwwVjBMQFZATFBWUExwVnBMgFaATJBMoFagTLBWsEzAVsBM0FbQTOBW4EzwVvBNAFcAVpBNEFcQTSBXIE0wVzBNQFdATVBXUE1gV2BNcFdwTYBXgE2QV5BNoFegTbBXsE3AV8BN0FfQTeBX4E3wV/BOAFgAThBYEE4gWCBOMFgwTkBYQE5QWFBOYFhgTnBYcE6AWIBOkFiQTqBYoE6wWLBOwFjATtBY0E7gWOBO8FjwTwBZAE8QWRBPIFkgTzBZME9AWUBPUFlQT2BZYE9wWXBPgFmAT5BZkE+gWaBL0FXATGBWYE/QWdBP4FngT/BZ8FAAWgCowKiQqNCoAKiAp/ACQBfAAlAX0AOwGXADwBmAA+AZwAOQGUAF8BzQBwAecAfAH2AJgCGwCVAhcAnAIkAJ0CJQClAjAApgIxAKMCLQDUAmAAzAJXAMsCVgDYAmUA2QJmAOMCdADuAoUA7wKGAPkClAD6ApUA/AKYAPYCkAEdAsgBJgLRASMCzgElAtABOgLnABQBagAXAW0ACwFhAA0BYwAOAWQADwFlAAwBYgAEAVoABgFcAAcBXQAIAV4ABQFbAFABsQBSAbMAWgHCAEgBqQBKAasASwGsAEwBrQBJAaoAgAH7AH4B+AC+AkkAwAJLALQCPwC2AkEAtwJCALgCQwC1AkAAwgJNAMQCTwDFAlAAxgJRAMMCTgENAqwBDwKuARECsAETArIBFAKzARUCtAESArEBLwLbAS4C2gExAt0BNQLgBuQHQAdBB1cHWAdhB2IHeAd5B4YHhweSB5MHogejB0MHRAdGB0UHRwdCB1AGpganBqQGpQaoCt4HsQrcCvMK7gdlB2QHZgdjB28Gtwa4BsEGwgbDCuEK5AroB3oHfwbWBtcG1AbVCuIK5grqB5UHlgeXB5gHiAeJB5QHmQbnBugG5QbmBuAK7ArtCu8HpgelB6cHpAewBt4G3wbxBvIG8wrxCt8JJwksCSsJKQkqCQMJBAkBCP8JAAkCCOIJEQkSCQ0JDwkQCQ4KCgoLCOAJlwl6CXgI9Qj2BGsJlgl5CXcI7QjuCT8JPQk0CTYJPAk5CMgIyQniCdwJ3gngCeQJ5QnjCd0J3wnhCekJ5gnnCegKEAmKCY4JkAl8CXQJkQmECYMKEwoRChQA5gF1ApMCywEnAtIKIwooAOkCgAByAJMK/gCJADAAJgF+AM0CWAAMAAAAAD7UAAAAAAAABTsAAAANAAAADQAACS0AAAAgAAAAIAAACSUAAAAhAAAAIQAACNsAAAAiAAAAIgAACRcAAAAjAAAAIwAACOMAAAAkAAAAJAAACTMAAAAlAAAAJQAACZQAAAAmAAAAJgAACgAAAAAnAAAAJwAACRgAAAAoAAAAKQAACO8AAAAqAAAAKgAACOEAAAArAAAAKwAACXsAAAAsAAAALAAACNcAAAAtAAAALQAACP0AAAAuAAAALgAACNYAAAAvAAAALwAACOQAAAAwAAAAOQAACHEAAAA6AAAAOwAACNgAAAA8AAAAPAAACYIAAAA9AAAAPQAACX8AAAA+AAAAPgAACYEAAAA/AAAAPwAACN0AAABAAAAAQAAACf8AAABBAAAAQQAAAAEAAABCAAAAQgAAACMAAABDAAAAQwAAACoAAABEAAAARAAAADMAAABFAAAARQAAAEIAAABGAAAARgAAAF4AAABHAAAARwAAAGEAAABIAAAASAAAAGwAAABJAAAASQAAAHQAAABKAAAASgAAAIcAAABLAAAASwAAAIsAAABMAAAATAAAAI8AAABNAAAATQAAAJsAAABOAAAATgAAAJ8AAABPAAAATwAAAK0AAABQAAAAUAAAANcAAABRAAAAUQAAANwAAABSAAAAUgAAAN4AAABTAAAAUwAAAOcAAABUAAAAVAAAAPIAAABVAAAAVQAAAQEAAABWAAAAVgAAAR4AAABXAAAAVwAAASIAAABYAAAAWQAAASkAAABaAAAAWgAAATYAAABbAAAAWwAACPMAAABcAAAAXAAACOUAAABdAAAAXQAACPQAAABeAAAAXgAACYkAAABfAAAAXwAACQUAAABgAAAAYAAACocAAABhAAAAYQAAAVcAAABiAAAAYgAAAXsAAABjAAAAYwAAAYUAAABkAAAAZAAAAZAAAABlAAAAZQAAAaMAAABmAAAAZgAAAcsAAABnAAAAZwAAAdAAAABoAAAAaAAAAeMAAABpAAAAaQAAAe4AAABqAAAAagAAAgMAAABrAAAAawAAAgsAAABsAAAAbAAAAhEAAABtAAAAbQAAAiMAAABuAAAAbgAAAikAAABvAAAAbwAAAjkAAABwAAAAcAAAAmQAAABxAAAAcQAAAmoAAAByAAAAcgAAAm4AAABzAAAAcwAAAn4AAAB0AAAAdAAAAosAAAB1AAAAdQAAAqAAAAB2AAAAdgAAAskAAAB3AAAAdwAAAs0AAAB4AAAAeQAAAtUAAAB6AAAAegAAAuIAAAB7AAAAewAACPEAAAB8AAAAfAAACgcAAAB9AAAAfQAACPIAAAB+AAAAfgAACYcAAACgAAAAoAAACSYAAAChAAAAoQAACNwAAACiAAAAogAACTAAAACjAAAAowAACT4AAACkAAAApAAACTIAAAClAAAApQAACUAAAACmAAAApgAACggAAACnAAAApwAACgIAAACoAAAAqAAACoUAAACpAAAAqQAACgMAAACqAAAAqgAABF8AAACrAAAAqwAACRMAAACsAAAArAAACYgAAACtAAAArQAACP4AAACuAAAArgAACgQAAACvAAAArwAACosAAACwAAAAsAAACgYAAACxAAAAsQAACYUAAACyAAAAswAACL0AAAC0AAAAtAAACn4AAAC1AAAAtQAACZIAAAC2AAAAtgAACgEAAAC3AAAAtwAACN8AAAC4AAAAuAAACoMAAAC5AAAAuQAACLwAAAC6AAAAugAABGAAAAC7AAAAuwAACRQAAAC8AAAAvAAACMoAAAC9AAAAvQAACMcAAAC+AAAAvgAACMsAAAC/AAAAvwAACN4AAADAAAAAwAAAABYAAADBAAAAwQAAAAIAAADCAAAAwgAAAAoAAADDAAAAwwAAAB8AAADEAAAAxAAAABEAAADFAAAAxQAAABwAAADGAAAAxgAAACAAAADHAAAAxwAAAC0AAADIAAAAyAAAAFEAAADJAAAAyQAAAEMAAADKAAAAygAAAEcAAADLAAAAywAAAE4AAADMAAAAzAAAAH8AAADNAAAAzQAAAHYAAADOAAAAzgAAAHkAAADPAAAAzwAAAHsAAADQAAAA0AAAADcAAADRAAAA0QAAAKwAAADSAAAA0gAAAL8AAADTAAAA0wAAAK8AAADUAAAA1AAAALMAAADVAAAA1QAAANMAAADWAAAA1gAAALoAAADXAAAA1wAACX0AAADYAAAA2AAAANEAAADZAAAA2QAAAQ4AAADaAAAA2gAAAQIAAADbAAAA2wAAAQYAAADcAAAA3AAAAQgAAADdAAAA3QAAASsAAADeAAAA3gAAANsAAADfAAAA3wAAAocAAADgAAAA4AAAAWwAAADhAAAA4QAAAVgAAADiAAAA4gAAAWAAAADjAAAA4wAAAXYAAADkAAAA5AAAAWcAAADlAAAA5QAAAXMAAADmAAAA5gAAAXgAAADnAAAA5wAAAYgAAADoAAAA6AAAAbIAAADpAAAA6QAAAaQAAADqAAAA6gAAAagAAADrAAAA6wAAAa8AAADsAAAA7AAAAfoAAADtAAAA7QAAAfAAAADuAAAA7gAAAfMAAADvAAAA7wAAAfUAAADwAAAA8AAAAZEAAADxAAAA8QAAAjgAAADyAAAA8gAAAkoAAADzAAAA8wAAAjoAAAD0AAAA9AAAAj4AAAD1AAAA9QAAAl8AAAD2AAAA9gAAAkUAAAD3AAAA9wAACX4AAAD4AAAA+AAAAl0AAAD5AAAA+QAAAq0AAAD6AAAA+gAAAqEAAAD7AAAA+wAAAqUAAAD8AAAA/AAAAqcAAAD9AAAA/QAAAtcAAAD+AAAA/gAAAmkAAAD/AAAA/wAAAtkAAAEAAAABAAAAABoAAAEBAAABAQAAAXEAAAECAAABAgAAAAMAAAEDAAABAwAAAVkAAAEEAAABBAAAABsAAAEFAAABBQAAAXIAAAEGAAABBgAAACsAAAEHAAABBwAAAYYAAAEIAAABCAAAAC4AAAEJAAABCQAAAYkAAAEKAAABCgAAAC8AAAELAAABCwAAAYsAAAEMAAABDAAAACwAAAENAAABDQAAAYcAAAEOAAABDgAAADgAAAEPAAABDwAAAZMAAAEQAAABEAAAADoAAAERAAABEQAAAZUAAAESAAABEgAAAFQAAAETAAABEwAAAbUAAAEUAAABFAAAAEQAAAEVAAABFQAAAaUAAAEWAAABFgAAAE8AAAEXAAABFwAAAbAAAAEYAAABGAAAAFUAAAEZAAABGQAAAbYAAAEaAAABGgAAAEUAAAEbAAABGwAAAaYAAAEcAAABHAAAAGUAAAEdAAABHQAAAdUAAAEeAAABHgAAAGMAAAEfAAABHwAAAdMAAAEgAAABIAAAAGcAAAEhAAABIQAAAdcAAAEiAAABIgAAAGYAAAEjAAABIwAAAdYAAAEkAAABJAAAAG8AAAElAAABJQAAAeYAAAEmAAABJgAAAG0AAAEnAAABJwAAAeQAAAEoAAABKAAAAIYAAAEpAAABKQAAAgIAAAEqAAABKgAAAIIAAAErAAABKwAAAf4AAAEsAAABLAAAAHcAAAEtAAABLQAAAfEAAAEuAAABLgAAAIMAAAEvAAABLwAAAf8AAAEwAAABMAAAAH0AAAExAAABMQAAAe8AAAEyAAABMgAAAHUAAAEzAAABMwAAAf0AAAE0AAABNAAAAIgAAAE1AAABNQAAAgYAAAE2AAABNgAAAI0AAAE3AAABOAAAAg0AAAE5AAABOQAAAJEAAAE6AAABOgAAAhIAAAE7AAABOwAAAJYAAAE8AAABPAAAAhgAAAE9AAABPQAAAJQAAAE+AAABPgAAAhYAAAE/AAABPwAAAJcAAAFAAAABQAAAAhoAAAFBAAABQQAAAJoAAAFCAAABQgAAAiEAAAFDAAABQwAAAKEAAAFEAAABRAAAAioAAAFFAAABRQAAAKQAAAFGAAABRgAAAi4AAAFHAAABRwAAAKIAAAFIAAABSAAAAiwAAAFJAAABSQAAAisAAAFKAAABSgAAAKgAAAFLAAABSwAAAjMAAAFMAAABTAAAAMoAAAFNAAABTQAAAlUAAAFOAAABTgAAALAAAAFPAAABTwAAAjwAAAFQAAABUAAAAMcAAAFRAAABUQAAAlIAAAFSAAABUgAAANYAAAFTAAABUwAAAmMAAAFUAAABVAAAAN8AAAFVAAABVQAAAm8AAAFWAAABVgAAAOEAAAFXAAABVwAAAnIAAAFYAAABWAAAAOAAAAFZAAABWQAAAnEAAAFaAAABWgAAAOgAAAFbAAABWwAAAn8AAAFcAAABXAAAAOwAAAFdAAABXQAAAoMAAAFeAAABXgAAAOsAAAFfAAABXwAAAoIAAAFgAAABYAAAAOoAAAFhAAABYQAAAoEAAAFiAAABYgAAAPUAAAFjAAABYwAAAo8AAAFkAAABZAAAAPQAAAFlAAABZQAAAo0AAAFmAAABZgAAAPMAAAFnAAABZwAAAowAAAFoAAABaAAAARwAAAFpAAABaQAAAscAAAFqAAABagAAARgAAAFrAAABawAAArcAAAFsAAABbAAAAQQAAAFtAAABbQAAAqMAAAFuAAABbgAAARsAAAFvAAABbwAAAsYAAAFwAAABcAAAARYAAAFxAAABcQAAArUAAAFyAAABcgAAARkAAAFzAAABcwAAAsQAAAF0AAABdAAAASQAAAF1AAABdQAAAs8AAAF2AAABdgAAASwAAAF3AAABdwAAAtgAAAF4AAABeAAAAS0AAAF5AAABeQAAATcAAAF6AAABegAAAuMAAAF7AAABewAAATkAAAF8AAABfAAAAuYAAAF9AAABfQAAATgAAAF+AAABfgAAAuQAAAF/AAABfwAAAooAAAGAAAABgAAAAYMAAAGBAAABgQAAACcAAAGCAAABggAAACkAAAGDAAABgwAAAYQAAAGEAAABhAAAAP4AAAGFAAABhQAAApoAAAGGAAABhgAAANAAAAGHAAABhwAAADEAAAGIAAABiAAAAY0AAAGJAAABiQAAADYAAAGKAAABigAAAD0AAAGLAAABiwAAAD8AAAGMAAABjAAAAZ4AAAGNAAABjQAAAZkAAAGOAAABjgAAAFcAAAGPAAABjwAAAPEAAAGQAAABkAAAAFYAAAGRAAABkQAAAGAAAAGSAAABkgAACTcAAAGTAAABkwAAAGgAAAGUAAABlAAAAR8AAAGVAAABlQAAAe0AAAGWAAABlwAAAIQAAAGYAAABmAAAAI4AAAGZAAABmQAAAg8AAAGaAAABmgAAAhQAAAGbAAABmwAAAhMAAAGcAAABnAAAAJ4AAAGdAAABnQAAAKkAAAGeAAABngAAAjcAAAGfAAABnwAAALIAAAGgAAABoAAAAMEAAAGhAAABoQAAAkwAAAGiAAABogAAAMgAAAGjAAABowAAAlMAAAGkAAABpAAAANoAAAGlAAABpQAAAmgAAAGmAAABpgAAATMAAAGnAAABpwAAAP8AAAGoAAABqAAAApsAAAGpAAABqQAAAFgAAAGqAAABqgAAAb8AAAGrAAABqwAAApwAAAGsAAABrAAAAPsAAAGtAAABrQAAApcAAAGuAAABrgAAAQAAAAGvAAABrwAAARAAAAGwAAABsAAAAq8AAAGxAAABsQAAARoAAAGyAAABsgAAASAAAAGzAAABswAAATAAAAG0AAABtAAAAtwAAAG1AAABtQAAATwAAAG2AAABtgAAAuoAAAG3AAABtwAAAFsAAAG4AAABuAAAAF0AAAG5AAABugAAAckAAAG7AAABuwAABG4AAAG8AAABvAAAAP0AAAG9AAABvQAAApkAAAG+AAABvgAAAdkAAAG/AAABvwAAAtQAAAHAAAABwQAABGQAAAHCAAABwgAABGMAAAHDAAABwwAABGYAAAHEAAABxAAAADUAAAHFAAABxQAAAEEAAAHGAAABxgAAAaEAAAHHAAABxwAAAJAAAAHIAAAByAAAAJkAAAHJAAAByQAAAh4AAAHKAAABygAAAKAAAAHLAAABywAAAKoAAAHMAAABzAAAAjYAAAHNAAABzQAAAAkAAAHOAAABzgAAAV8AAAHPAAABzwAAAHgAAAHQAAAB0AAAAfIAAAHRAAAB0QAAALEAAAHSAAAB0gAAAj0AAAHTAAAB0wAAAQUAAAHUAAAB1AAAAqQAAAHVAAAB1QAAAQwAAAHWAAAB1gAAAqsAAAHXAAAB1wAAAQkAAAHYAAAB2AAAAqgAAAHZAAAB2QAAAQoAAAHaAAAB2gAAAqkAAAHbAAAB2wAAAQsAAAHcAAAB3AAAAqoAAAHdAAAB3QAAAcMAAAHeAAAB3gAAABIAAAHfAAAB3wAAAWgAAAHgAAAB4AAAABUAAAHhAAAB4QAAAWsAAAHiAAAB4gAAACIAAAHjAAAB4wAAAXoAAAHkAAAB5AAAAGoAAAHlAAAB5QAAAeEAAAHmAAAB5gAAAGQAAAHnAAAB5wAAAdQAAAHoAAAB6AAAAIwAAAHpAAAB6QAAAgwAAAHqAAAB6gAAAM4AAAHrAAAB6wAAAloAAAHsAAAB7AAAAM8AAAHtAAAB7QAAAlsAAAHuAAAB7gAAAFwAAAHvAAAB7wAAAccAAAHwAAAB8AAAAgUAAAHxAAAB8QAAADQAAAHyAAAB8gAAAEAAAAHzAAAB8wAAAZ8AAAH0AAAB9AAAAGIAAAH1AAAB9QAAAdEAAAH2AAAB9gAAAHMAAAH3AAAB9wAAASgAAAH4AAAB+AAAAKcAAAH5AAAB+QAAAjIAAAH6AAAB+gAAAB0AAAH7AAAB+wAAAXQAAAH8AAAB/AAAACEAAAH9AAAB/QAAAXkAAAH+AAAB/gAAANIAAAH/AAAB/wAAAl4AAAIAAAACAAAAABAAAAIBAAACAQAAAWYAAAICAAACAgAAABgAAAIDAAACAwAAAW4AAAIEAAACBAAAAE0AAAIFAAACBQAAAa4AAAIGAAACBgAAAFMAAAIHAAACBwAAAbQAAAIIAAACCAAAAHoAAAIJAAACCQAAAfQAAAIKAAACCgAAAIEAAAILAAACCwAAAfwAAAIMAAACDAAAALkAAAINAAACDQAAAkQAAAIOAAACDgAAAMkAAAIPAAACDwAAAlQAAAIQAAACEAAAAOIAAAIRAAACEQAAAnMAAAISAAACEgAAAOQAAAITAAACEwAAAnkAAAIUAAACFAAAAQcAAAIVAAACFQAAAqYAAAIWAAACFgAAARcAAAIXAAACFwAAArYAAAIYAAACGAAAAO0AAAIZAAACGQAAAoQAAAIaAAACGgAAAPcAAAIbAAACGwAAApEAAAIcAAACHAAAAGsAAAIdAAACHQAAAeIAAAIeAAACHgAAAG4AAAIfAAACHwAAAeUAAAIgAAACIAAAAKsAAAIhAAACIQAAAZYAAAIiAAACIgAAAK4AAAIjAAACIwAAAmIAAAIkAAACJAAAATsAAAIlAAACJQAAAugAAAImAAACJgAAABMAAAInAAACJwAAAWkAAAIoAAACKAAAAEYAAAIpAAACKQAAAacAAAIqAAACKgAAALsAAAIrAAACKwAAAkYAAAIsAAACLAAAANUAAAItAAACLQAAAmEAAAIuAAACLgAAALwAAAIvAAACLwAAAkcAAAIwAAACMAAAAL0AAAIxAAACMQAAAkgAAAIyAAACMgAAATIAAAIzAAACMwAAAt4AAAI0AAACNAAAAhkAAAI1AAACNQAAAi8AAAI2AAACNgAAApIAAAI3AAACNwAAAgQAAAI4AAACOAAAAZIAAAI5AAACOQAAAm0AAAI6AAACOgAAAB4AAAI7AAACOwAAADIAAAI8AAACPAAAAY8AAAI9AAACPQAAAJIAAAI+AAACPgAAAPgAAAI/AAACPwAAAokAAAJAAAACQAAAAusAAAJBAAACQQAAAGkAAAJCAAACQgAAAd0AAAJDAAACQwAAACgAAAJEAAACRAAAAQMAAAJFAAACRQAAASEAAAJGAAACRgAAAFkAAAJHAAACRwAAAcEAAAJIAAACSAAAAIoAAAJJAAACSQAAAgoAAAJKAAACSgAAAN0AAAJLAAACSwAAAmwAAAJMAAACTAAAAOUAAAJNAAACTQAAAnwAAAJOAAACTgAAATQAAAJPAAACTwAAAt8AAAJQAAACUAAAAXcAAAJRAAACUgAAAW8AAAJTAAACUwAAAX8AAAJUAAACVAAAAlwAAAJVAAACVQAAAYoAAAJWAAACVgAAAZ0AAAJXAAACVwAAAZsAAAJYAAACWAAAAbwAAAJZAAACWgAAAcQAAAJbAAACWwAAAbcAAAJcAAACXAAAAbkAAAJdAAACXQAAAbsAAAJeAAACXgAAAboAAAJfAAACXwAAAggAAAJgAAACYAAAAdgAAAJhAAACYQAAAeAAAAJiAAACYgAAAU0AAAJjAAACYwAAAdIAAAJkAAACZAAAAnAAAAJlAAACZQAAAeoAAAJmAAACZgAAAekAAAJnAAACZwAAAegAAAJoAAACaAAAAgEAAAJpAAACaQAAAgAAAAJqAAACagAAAVAAAAJrAAACawAAAh8AAAJsAAACbAAAAhUAAAJtAAACbQAAAh0AAAJuAAACbgAAAhwAAAJvAAACbwAAAigAAAJwAAACcAAAAicAAAJxAAACcQAAAiYAAAJyAAACcwAAAjQAAAJ0AAACdAAAAVIAAAJ1AAACdQAAAjsAAAJ2AAACdgAAAVMAAAJ3AAACdwAAAlkAAAJ4AAACeAAAAmcAAAJ5AAACeQAAAn0AAAJ6AAACegAAAnsAAAJ7AAACewAAAngAAAJ8AAACfAAAAnoAAAJ9AAACfQAAAncAAAJ+AAACfwAAAnUAAAKAAAACgQAAAVQAAAKCAAACggAAAogAAAKDAAACgwAAAb0AAAKEAAAChAAAAgkAAAKFAAAChQAAAcAAAAKGAAAChgAAAb4AAAKHAAAChwAAAp8AAAKIAAACiAAAAp0AAAKJAAACiQAAAqIAAAKKAAACigAAAsUAAAKLAAACiwAAAsoAAAKMAAACjAAAAswAAAKNAAACjQAAAtMAAAKOAAACjgAAAuEAAAKPAAACjwAAAVYAAAKQAAACkAAAAukAAAKRAAACkQAAAuUAAAKSAAACkgAAAcYAAAKTAAACkwAAAcgAAAKUAAAClAAAAdoAAAKVAAAClQAAAdwAAAKWAAAClgAAAdsAAAKXAAAClwAAAY4AAAKYAAACmAAAAYEAAAKZAAACmQAAAUwAAAKaAAACmgAAAbgAAAKbAAACnAAAAU4AAAKdAAACnQAAAgcAAAKeAAACngAAAhAAAAKfAAACnwAAAVEAAAKgAAACoAAAAmsAAAKhAAACogAAAd4AAAKjAAACowAAAaAAAAKkAAACpAAAAZoAAAKlAAACpQAAAaIAAAKmAAACpgAAAp4AAAKnAAACpwAAApYAAAKoAAACqAAAAo4AAAKpAAACqQAAAc8AAAKqAAACqgAAAiAAAAKrAAACqwAAAiIAAAKsAAACrAAAAYIAAAKtAAACrQAAAYAAAAKuAAACrwAAAesAAAKwAAACsAAABGgAAAKxAAACsQAABGcAAAKyAAACsgAABGkAAAK0AAACtAAABGwAAAK3AAACtwAABG8AAAK4AAACuAAABHEAAAK5AAACuQAACkIAAAK6AAACugAACj4AAAK7AAACuwAACj0AAAK8AAACvAAACvkAAAK/AAACvwAACkMAAALAAAACwAAACkAAAALGAAACxgAACoQAAALHAAACxwAACoIAAALIAAACyAAACkYAAALKAAACygAACkQAAALLAAACywAACj8AAALMAAACzAAACkUAAALOAAACzgAACkEAAALPAAACzwAACjoAAALQAAAC0AAACjwAAALRAAAC0QAACjsAAALUAAAC1AAACi4AAALWAAAC1gAACiYAAALXAAAC1wAACiUAAALYAAAC2AAACoEAAALZAAAC2QAACoYAAALaAAAC2gAACo8AAALbAAAC2wAACo4AAALcAAAC3AAACpAAAALdAAAC3QAACooAAALeAAAC3gAACicAAALgAAAC4AAACjkAAALhAAAC4QAABGoAAALiAAAC4gAABG0AAALjAAAC4wAABHAAAALkAAAC5AAACjUAAALlAAAC5QAACikAAALmAAAC5gAACisAAALnAAAC5wAACi0AAALoAAAC6AAACiwAAALpAAAC6QAACioAAALuAAAC7gAACiQAAAMAAAADAQAACkkAAAMCAAADAgAACkwAAAMDAAADBQAAClAAAAMGAAADBgAACk4AAAMHAAADBwAACkgAAAMIAAADCAAACkcAAAMJAAADCQAAClMAAAMKAAADCgAACk8AAAMLAAADCwAACksAAAMMAAADDAAACk0AAAMNAAADDQAAClQAAAMPAAADDwAAClUAAAMRAAADEwAAClYAAAMWAAADIQAAClkAAAMjAAADLQAACmUAAAMvAAADMgAACnAAAAM0AAADNgAACnQAAAM5AAADPQAACncAAANCAAADQgAACtcAAANFAAADRQAACtgAAANcAAADXAAACnwAAANhAAADYQAACn0AAANwAAADcAAABokAAANxAAADcQAAByAAAANyAAADcgAABooAAANzAAADcwAAByEAAAN0AAADdQAACjcAAAN2AAADdgAABosAAAN3AAADdwAAByIAAAN6AAADegAACG0AAAN7AAADfQAAByMAAAN+AAADfgAACSIAAAN/AAADfwAABmcAAAOEAAADhAAACtkAAAOFAAADhQAACtsAAAOGAAADhgAABoAAAAOHAAADhwAACSEAAAOIAAADigAABoEAAAOMAAADjAAABoQAAAOOAAADjwAABoUAAAOQAAADkAAABxcAAAORAAADoQAABmgAAAOjAAADqQAABnkAAAOqAAADqwAABocAAAOsAAADrgAABx0AAAOvAAADrwAABxUAAAOwAAADsAAABxoAAAOxAAADyQAABvwAAAPKAAADygAABxYAAAPLAAADywAABxkAAAPMAAADzAAABxsAAAPNAAADzQAABxgAAAPOAAADzgAABxwAAAPPAAADzwAABpEAAAPQAAAD0QAABywAAAPSAAAD1AAABpIAAAPVAAAD1gAABy4AAAPXAAAD1wAABysAAAPYAAAD2AAABowAAAPZAAAD2QAAByYAAAPaAAAD2gAABo0AAAPbAAAD2wAABycAAAPcAAAD3AAABo4AAAPdAAAD3QAABygAAAPeAAAD3gAABo8AAAPfAAAD3wAABykAAAPgAAAD4AAABpAAAAPhAAAD4QAAByoAAAPwAAAD8wAABzAAAAP0AAAD9AAABpUAAAP1AAAD9QAABzQAAAP2AAAD9gAACjYAAAP3AAAD9wAABpYAAAP4AAAD+AAABzUAAAP5AAAD+gAABpcAAAP7AAAD/AAABzYAAAP9AAAD/wAABpkAAAQAAAAEAQAABHsAAAQCAAAEAgAABKQAAAQDAAAEAwAABHcAAAQEAAAEBAAABJwAAAQFAAAEBQAABJsAAAQGAAAECAAABJ4AAAQJAAAECgAABJkAAAQLAAAECwAABKEAAAQMAAAEDAAABIQAAAQNAAAEDQAABIEAAAQOAAAEDgAABI4AAAQPAAAEDwAABJUAAAQQAAAEEwAABHMAAAQUAAAEFQAABHkAAAQWAAAEGQAABH0AAAQaAAAEGgAABIMAAAQbAAAEIwAABIUAAAQkAAAEJQAABI8AAAQmAAAEJgAABJIAAAQnAAAEJwAABJEAAAQoAAAEKQAABJMAAAQqAAAEKwAABJcAAAQsAAAELAAABJYAAAQtAAAELQAABJ0AAAQuAAAELwAABKIAAAQwAAAEMwAABRMAAAQ0AAAENQAABRkAAAQ2AAAEOQAABR0AAAQ6AAAEOgAABSMAAAQ7AAAEQwAABSUAAAREAAAERQAABS8AAARGAAAERgAABTIAAARHAAAERwAABTEAAARIAAAESQAABTMAAARKAAAESwAABTcAAARMAAAETAAABTYAAARNAAAETQAABT0AAAROAAAETwAABUIAAARQAAAEUQAABRsAAARSAAAEUgAABUQAAARTAAAEUwAABRcAAARUAAAEVAAABTwAAARVAAAEVQAABTsAAARWAAAEWAAABT4AAARZAAAEWgAABTkAAARbAAAEWwAABUEAAARcAAAEXAAABSQAAARdAAAEXQAABSEAAAReAAAEXgAABS4AAARfAAAEXwAABTUAAARgAAAEYAAABKUAAARhAAAEYQAABUUAAARiAAAEYgAABKYAAARjAAAEYwAABUYAAARkAAAEZAAABKcAAARlAAAEZQAABUcAAARmAAAEZgAABKgAAARnAAAEZwAABUgAAARoAAAEaAAABKkAAARpAAAEaQAABUkAAARqAAAEagAABKoAAARrAAAEawAABUoAAARsAAAEbAAABKsAAARtAAAEbQAABUsAAARuAAAEbgAABKwAAARvAAAEbwAABUwAAARwAAAEcAAABK0AAARxAAAEcQAABU0AAARyAAAEcgAABK4AAARzAAAEcwAABU4AAAR0AAAEdAAABK8AAAR1AAAEdQAABU8AAAR2AAAEdgAABLAAAAR3AAAEdwAABVAAAAR4AAAEeAAABLEAAAR5AAAEeQAABVEAAASKAAAEigAABIIAAASLAAAEiwAABSIAAASMAAAEjAAABPsAAASNAAAEjQAABZsAAASOAAAEjgAABPwAAASPAAAEjwAABZwAAASQAAAEkAAABHgAAASRAAAEkQAABRgAAASSAAAEkgAABLIAAASTAAAEkwAABVIAAASUAAAElAAABLMAAASVAAAElQAABVMAAASWAAAElgAABLQAAASXAAAElwAABVQAAASYAAAEmAAABLUAAASZAAAEmQAABVUAAASaAAAEmgAABLYAAASbAAAEmwAABVYAAAScAAAEnAAABLcAAASdAAAEnQAABVcAAASeAAAEngAABLgAAASfAAAEnwAABVgAAASgAAAEoAAABLkAAAShAAAEoQAABVkAAASiAAAEogAABLoAAASjAAAEowAABVoAAASkAAAEpAAABLsAAASlAAAEpQAABVsAAASmAAAEpgAABLwAAASnAAAEpwAABV0AAASoAAAEqAAABL4AAASpAAAEqQAABV4AAASqAAAEqgAABL8AAASrAAAEqwAABV8AAASsAAAErAAABMAAAAStAAAErQAABWAAAASuAAAErgAACwAAAASvAAAErwAACwIAAASwAAAEsAAACwEAAASxAAAEsQAACwMAAASyAAAEsgAABMEAAASzAAAEswAABWEAAAS0AAAEtAAABMIAAAS1AAAEtQAABWIAAAS2AAAEtgAABMMAAAS3AAAEtwAABWMAAAS4AAAEuAAABMQAAAS5AAAEuQAABWQAAAS6AAAEugAABMUAAAS7AAAEuwAABWUAAAS8AAAEvAAABMcAAAS9AAAEvQAABWcAAAS+AAAEvgAABMgAAAS/AAAEvwAABWgAAATAAAAEwQAABMkAAATCAAAEwgAABWoAAATDAAAEwwAABMsAAATEAAAExAAABWsAAATFAAAExQAABMwAAATGAAAExgAABWwAAATHAAAExwAABM0AAATIAAAEyAAABW0AAATJAAAEyQAABM4AAATKAAAEygAABW4AAATLAAAEywAABM8AAATMAAAEzAAABW8AAATNAAAEzQAABNAAAATOAAAEzgAABXAAAATPAAAEzwAABWkAAATQAAAE0AAABNEAAATRAAAE0QAABXEAAATSAAAE0gAABNIAAATTAAAE0wAABXIAAATUAAAE1AAABNMAAATVAAAE1QAABXMAAATWAAAE1gAABNQAAATXAAAE1wAABXQAAATYAAAE2AAABNUAAATZAAAE2QAABXUAAATaAAAE2gAABNYAAATbAAAE2wAABXYAAATcAAAE3AAABNcAAATdAAAE3QAABXcAAATeAAAE3gAABNgAAATfAAAE3wAABXgAAATgAAAE4AAABNkAAAThAAAE4QAABXkAAATiAAAE4gAABNoAAATjAAAE4wAABXoAAATkAAAE5AAABNsAAATlAAAE5QAABXsAAATmAAAE5gAABNwAAATnAAAE5wAABXwAAAToAAAE6AAABN0AAATpAAAE6QAABX0AAATqAAAE6gAABN4AAATrAAAE6wAABX4AAATsAAAE7AAABN8AAATtAAAE7QAABX8AAATuAAAE7gAABOAAAATvAAAE7wAABYAAAATwAAAE8AAABOEAAATxAAAE8QAABYEAAATyAAAE8gAABOIAAATzAAAE8wAABYIAAAT0AAAE9AAABOMAAAT1AAAE9QAABYMAAAT2AAAE9gAABOQAAAT3AAAE9wAABYQAAAT4AAAE+AAABOUAAAT5AAAE+QAABYUAAAT6AAAE+gAABOYAAAT7AAAE+wAABYYAAAT8AAAE/AAABOcAAAT9AAAE/QAABYcAAAT+AAAE/gAABOgAAAT/AAAE/wAABYgAAAUAAAAFAAAABOkAAAUBAAAFAQAABYkAAAUCAAAFAgAABOoAAAUDAAAFAwAABYoAAAUEAAAFBAAABOsAAAUFAAAFBQAABYsAAAUGAAAFBgAABOwAAAUHAAAFBwAABYwAAAUIAAAFCAAABO0AAAUJAAAFCQAABY0AAAUKAAAFCgAABO4AAAULAAAFCwAABY4AAAUMAAAFDAAABO8AAAUNAAAFDQAABY8AAAUOAAAFDgAABPAAAAUPAAAFDwAABZAAAAUQAAAFEAAA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COcAACBEAAAgRAAACMUAACBKAAAgSgAACOYAACBwAAAgcAAACLsAACB0AAAgeQAACL8AACB6AAAgegAACZcAACB7AAAgewAACXoAACB8AAAgfAAACXgAACB9AAAgfgAACPUAACB/AAAgfwAABGsAACCAAAAgiQAACJ0AACCKAAAgigAACZYAACCLAAAgiwAACXkAACCMAAAgjAAACXcAACCNAAAgjgAACO0AACChAAAgoQAACTEAACCmAAAgpgAACToAACCpAAAgqQAACT8AACCqAAAgqgAACT0AACCrAAAgqwAACTQAACCsAAAgrAAACTYAACCvAAAgrwAACTUAACC0AAAgtAAACTgAACC5AAAguQAACTwAACC6AAAgugAACTkAACC9AAAgvQAACTsAACEKAAAhCgAACG4AACETAAAhEwAACgkAACEWAAAhFgAACg0AACEiAAAhIgAACgUAACEmAAAhJgAACY0AACEuAAAhLgAACgwAACFTAAAhVAAACMgAACFVAAAhXgAACMwAACFfAAAhXwAACMYAACGQAAAhkAAACeIAACGRAAAhkQAACdwAACGSAAAhkgAACd4AACGTAAAhkwAACeAAACGUAAAhlQAACeQAACGWAAAhlgAACeMAACGXAAAhlwAACd0AACGYAAAhmAAACd8AACGZAAAhmQAACeEAACHmAAAh5gAACekAACHnAAAh6QAACeYAACHqAAAh6gAAChAAACICAAAiAgAACZMAACIFAAAiBQAACYoAACIGAAAiBgAACY4AACIPAAAiDwAACY8AACIRAAAiEQAACZAAACISAAAiEgAACXwAACIVAAAiFQAACXUAACIZAAAiGQAACXQAACIaAAAiGgAACZEAACIeAAAiHgAACYsAACIrAAAiKwAACYwAACJIAAAiSAAACYYAACJgAAAiYAAACYAAACJkAAAiZAAACYQAACJlAAAiZQAACYMAACLFAAAixQAACXYAACMmAAAjJgAAChMAACMnAAAjJwAAChEAACMoAAAjKAAAChQAACMrAAAjKwAAChIAACPOAAAjzgAAChUAACP7AAAj/gAACvoAACWvAAAlrwAACfAAACWyAAAlsgAACfEAACW0AAAltAAACfcAACW2AAAltgAACfIAACW4AAAluAAACfgAACW6AAAlugAACfUAACW8AAAlvAAA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UM1Q1FDdUORQ61D4UP9RBlENURRRG1EiUSlRMFE3UT5RRVFMUVNRWlFhUWhRb1F7UYJRiVGQUZdRnlGlUaxRs1G6UcFRyFHPUdZR3VHkUetR8lH5UgBSB1IOUhVSHFIjUipSMVI4Uj9SRlJNUltSZFJ0UoBSjFKaUqhStFLAUsxS2FLkUvBTAlMOUxxTJlMyUz5TSlNUU2BTalN5U4ZTl1OhU69TulPHU9BT2lPrVAFUE1QpVDpUR1RRVGNUbVR5VINUj1SZVKNUrVS3VMFUy1TXVOFU6VTzVPtVA1UNVRpVJlUxVTlVSVVYVWhVcVV6VYhVj1WXVaJVqVWwVbVVv1XMVdNV31XmVe1V+VYAVgdWE1YaViZWLVY5VkBWR1ZTVl9WZlZtVnRWe1aHVpNWmlahVq1WuFbGVtFW4FbzVvpXAVcRVyFXLlc4V0JXTFdcV2hXeleKV5ZXolepV7NXt1fGV9hX6Vf6WBFYG1glWDNYQlhRWFtYblh9WIxYm1iuWL1Y0VjpWP1ZBVkZWSFZKVk/WVVZZll8WY5ZpVm2WcdZ0VngWfNaAFoWWixaNlpGWlVaZFp5WohanFqvWr5ay1rdWupa/FsGWxpbKVs7W0pbVVtjW3NbelwSXDFBYnJldmV1bmkxRUFFdW5pMUVCNnVuaTFFQjB1bmkxRUIydW5pMDFDRHVuaTFFQTR1bmkxRUE2dW5pMUVCNHVuaTFFQTh1bmkxRUFDdW5pMDIwMHVuaTFFQUF1bmkwMURFdW5pMDIyNnVuaTAxRTB1bmkxRUEwdW5pMUVBMnVuaTAyMDJ1bmkyQzZEQW1hY3JvbnVuaTAyM0FBcmluZ2FjdXRlQW9nb25la3VuaTAxRTJBRWFjdXRldW5pMUUwMnVuaTFFMDR1bmkwMTgxdW5pQTdCNHVuaTAxODJ1bmkwMjQzQ2FjdXRlQ2Nhcm9uQ2RvdGFjY2VudHVuaTAxODdDY2lyY3VtZmxleHVuaUE3QjN1bmkwMjNCdW5pMDFGMXVuaTAxODl1bmkwMUM0RGNhcm9uRGNyb2F0dW5pMUUxMnVuaTFFMEF1bmkxRTBDdW5pMDE4QXVuaTAxRjJ1bmkxRTBFdW5pMDE4QnVuaTAxQzVFYnJldmVFY2Fyb251bmkxRUJFdW5pMDIyOHVuaTFFQzZ1bmkxRUMwdW5pMUVDNHVuaTFFQzJ1bmkwMjA0dW5pMUVCOEVkb3RhY2NlbnRFbWFjcm9udW5pMDIwNnVuaTFFQkFFb2dvbmVrdW5pMDE4RXVuaTAxQTl1bmkwMTkwdW5pMDI0NnVuaTFFQkN1bmkwMUI4dW5pMDFFRXVuaTAxQjd1bmkwMUY0dW5pMDE5MXVuaTFFMUVHYnJldmVHY2Fyb251bmkwMTIyR2RvdGFjY2VudEdjaXJjdW1mbGV4dW5pMDE5M3VuaTAyMUN1bmkwMjQxdW5pMDFFNHVuaTFFMjRIY2lyY3VtZmxleHVuaUE3QUF1bmlBNzhEdW5pMDIxRUhiYXJ1bmkwMUY2SUpJYnJldmV1bmkwMUNGdW5pMDIwOHVuaTFFMkVJZG90YWNjZW50dW5pMDIwQXVuaTFFQzh1bmkxRUNBSW1hY3JvbklvZ29uZWt1bmkwMTk3dW5pMDE5Nkl0aWxkZXVuaUE3QjJKY2lyY3VtZmxleHVuaTAyNDh1bmkwMUU4dW5pMDFDN3VuaTAxMzZ1bmkwMTk4dW5pMDIzRExhY3V0ZXVuaUE3QURMY2Fyb251bmkwMTNCdW5pMUUzQ0xkb3R1bmkxRTM2dW5pMDFDOHVuaTFFNDB1bmkxRTNFdW5pMDE5Q05hY3V0ZXVuaTAxQ0FOY2Fyb251bmkxRTQ0dW5pMDE0NXVuaTFFNEF1bmkxRTQ2dW5pMDFGOHVuaTAxOURFbmd1bmkwMUNCdW5pMDIyMHVuaTAyMjJ1bmkwMUQxT2JyZXZldW5pMDE5RnVuaTFFRDB1bmkxRUQ4dW5pMUVENHVuaTFFRDJ1bmkwMjBDdW5pMUVENnVuaTAyMzB1bmkwMjJFdW5pMDIyQXVuaTFFQ0N1bmkxRUNFT2hvcm51bmkxRUUydW5pMUVERXVuaTFFREF1bmkxRURDdW5pMDIwRU9tYWNyb251bmkxRUUwT2h1bmdhcnVtbGF1dHVuaTAxQTJ1bmkwMUVBdW5pMUU1MHVuaTFFNTJ1bmlBN0I2dW5pMDFFQ3VuaTFFNEN1bmkwMTg2T3NsYXNoYWN1dGV1bmkwMjJDdW5pMUU1NHVuaTFFNTZ1bmkwMUE0UmNhcm9uUmFjdXRldW5pMDI0QXVuaTAyMTB1bmkwMTU2dW5pMUU1QXVuaTAyMTJ1bmkwMjRDdW5pMkM2NFNhY3V0ZXVuaUE3OEJTY2VkaWxsYXVuaTFFNjJ1bmkwMjE4U2NpcmN1bWZsZXh1bmkxRTYwdW5pMUU5RXVuaTAxOEZUYmFydW5pMDE2MlRjYXJvbnVuaTFFNzB1bmkxRTZBdW5pMDIxQXVuaTAyM0V1bmkxRTZDdW5pMDFBQ3VuaTFFNkV1bmkwMUJDdW5pMDE4NHVuaTAxQTd1bmkwMUFFdW5pMDI0NFVicmV2ZXVuaTAxRDN1bmkwMjE0dW5pMDFEQnVuaTAxRDd1bmkwMUQ5dW5pMUVFNHVuaTAxRDV1bmkxRUU2dW5pMUVFOFVob3JudW5pMUVGMHVuaTFFRUN1bmkxRUVBdW5pMUVFRVVodW5nYXJ1bWxhdXR1bmkwMUIxdW5pMDIxNlVtYWNyb25Vb2dvbmVrVXJpbmdVdGlsZGV1bmkwMUIydW5pMUU3OHVuaTAxOTR1bmkwMjQ1V2FjdXRlV2RpZXJlc2lzV2NpcmN1bWZsZXh1bmkyQzcyV2dyYXZldW5pMDFGN1lncmF2ZXVuaTFFRjR1bmkxRUY2dW5pMDFCM1ljaXJjdW1mbGV4dW5pMDFBNnVuaTAyMzJ1bmkxRUY4WmFjdXRldW5pMDI0RVpkb3RhY2NlbnR1bmkxRTkyQWFjdXRlLmxvY2xIVU5FYWN1dGUubG9jbEhVTnVuaTAyMjR1bmkwMUI1T2FjdXRlLmxvY2xIVU5JYWN1dGUubG9jbEhVTlVhY3V0ZS5sb2NsSFVOQ2FjdXRlLmxvY2xQTEtPYWN1dGUubG9jbFBMS05hY3V0ZS5sb2NsUExLWmFjdXRlLmxvY2xQTEtTYWN1dGUubG9jbFBMS3VuaTAxODEuc3MwMkVuZy5zczAxdW5pMDE5RC5zczAxdW5pMkM2NC5zczAxdW5pQTc4RC5zczAydW5pMDI5OXVuaTAyNjJ1bmkwMjlDdW5pMDI5QnVuaTAyNkF1bmkwMjlGdW5pMDI3NnVuaTAyNzR1bmkwMjgwdW5pMDI4MXVuaTAyOEZhYnJldmV1bmkxRUFGdW5pMUVCMXVuaTFFQjd1bmkxRUIzdW5pMUVCNXVuaTAxQ0V1bmkxRUFEdW5pMUVBNXVuaTFFQTd1bmkxRUE5dW5pMDFERnVuaTFFQTF1bmkwMjI3dW5pMUVBQnVuaTAyMDF1bmkwMUUxdW5pMDI1MXVuaTFFQTN1bmkwMjAzdW5pMDI1MmFvZ29uZWthbWFjcm9udW5pMDI1MGFyaW5nYWN1dGV1bmkyQzY1dW5pMDFFM2FlYWN1dGV1bmkxRTA1dW5pMUUwM3VuaTAyNTN1bmlBN0I1dW5pMDJBRHVuaTAyQUN1bmkwMjk4dW5pMDE4MGNjYXJvbnVuaTAxODNjYWN1dGVjZG90YWNjZW50dW5pMDI1NWNjaXJjdW1mbGV4dW5pQUI1M3VuaTAyOTd1bmkwMjNDdW5pMDE4OHVuaTFFMTNkY2Fyb251bmkwMjM4ZGNyb2F0dW5pMUUwRHVuaTFFMEJ1bmkwMjIxdW5pMDE4RHVuaTAyNTd1bmkwMkE0dW5pMUUwRnVuaTAyNTZ1bmkwMUYzdW5pMDE4Q3VuaTAxQzZ1bmkwMkEzdW5pMDJBNWVicmV2ZXVuaTAyMjllY2Fyb251bmkxRUJGdW5pMUVDMXVuaTFFQzd1bmkxRUMzdW5pMUVDNXVuaTAyMDVlZG90YWNjZW50dW5pMUVCOXVuaTFFQkJlbWFjcm9uZW9nb25la3VuaTAyMDd1bmkwMjVCdW5pMDI1Q3VuaTAyNUV1bmkwMjlBdW5pMDI1RHVuaTAyODZ1bmkwMjU4dW5pMDI4M3VuaTFFQkR1bmkwMjQ3dW5pMDFBQXVuaTAyODV1bmkwMUREdW5pMDI1OXVuaTAyOTJ1bmkwMjVBdW5pMDFFRnVuaTAyOTN1bmkwMUI5dW5pMDFCQWZfc2hvcnRmZG90YWNjZW50X3Nob3J0dW5pMUUxRnVuaTAyQTl1bmkwMUY1Z2Nhcm9udW5pMDI2M2dicmV2ZWdjaXJjdW1mbGV4dW5pMDFCRXVuaTAxMjNnZG90YWNjZW50dW5pMDI2MHVuaTAyOTR1bmkwMjQydW5pMDI5NXVuaTAyOTZ1bmkwMkExdW5pMDFFNXVuaTAyNjF1bmkwMkEydW5pMDIxRGhjaXJjdW1mbGV4dW5pMDIxRmhiYXJ1bmkxRTI1dW5pMDI2NXVuaTAyQUV1bmkwMjY3dW5pMDI2NnVuaTAyQUZ1bmkwMTk1aWJyZXZldW5pMDFEMHVuaTFFMkZ1bmkwMjA5aS5sb2NsVFJLdW5pMUVDOXVuaTFEN0J1bmkxRUNCdW5pMDIwQmlvZ29uZWtpamltYWNyb251bmkwMjY5dW5pMDI2OGl0aWxkZXVuaTAyMzd1bmkwMUYwdW5pMDI5RGpjaXJjdW1mbGV4dW5pMDI1RnVuaTAyODR1bmkwMjQ5dW5pMDFFOXVuaTAxMzd1bmkwMTk5a2dyZWVubGFuZGljdW5pMDI5RXVuaTAxOUJsYWN1dGV1bmkwMTlBbGNhcm9udW5pMDI2Q3VuaTFFM0R1bmkwMTNDdW5pMUUzN3VuaTAyMzRsZG90dW5pMDI2RXVuaTAyNkR1bmkwMUM5dW5pMDI2QnVuaTAyQUF1bmkxRTNGdW5pMDJBQnVuaTAyNzF1bmkxRTQxdW5pMDI3MHVuaTAyNkZuY2Fyb25uYXBvc3Ryb3BoZW5hY3V0ZXVuaTFFNEJ1bmkwMjM1dW5pMUU0NXVuaTAxNDZ1bmkxRTQ3dW5pMDI3MmVuZ3VuaTAxRjl1bmkwMjczdW5pMDFDQ3VuaTAxOUVvYnJldmV1bmkwMjc1dW5pMDFEMnVuaTFFRDl1bmkxRUQxdW5pMUVEM3VuaTAyMER1bmkxRUQ3dW5pMUVENXVuaTAyMzF1bmkwMjJCdW5pMDIyRnVuaTFFQ0R1bmkxRUNGb2hvcm51bmkxRURGdW5pMUVEQnVuaTFFRTN1bmkxRUREb2h1bmdhcnVtbGF1dHVuaTFFRTF1bmkwMjBGdW5pMDFBM29tYWNyb251bmkxRTUzdW5pMDFFQnVuaTAyNzd1bmkxRTUxdW5pQTdCN3VuaTAxRUR1bmkwMjU0b3NsYXNoYWN1dGV1bmkxRTREdW5pMDIyM3VuaTAyMkR1bmkxRTU1dW5pMDI3OHVuaTFFNTd1bmkwMUE1dW5pMDI0QnVuaTAyQTB1bmkwMjY0dW5pMDIzOXJhY3V0ZXVuaTFFNUJ1bmkwMTU3dW5pMDIxMXVuaTAyN0Z1bmkwMjdFcmNhcm9udW5pMDI3QnVuaTAyN0R1bmkwMjEzdW5pMDI3Q3VuaTAyNER1bmkwMjdBdW5pMDI3OXVuaUE3OENzYWN1dGVzY2lyY3VtZmxleHNjZWRpbGxhdW5pMDIxOXVuaTFFNjF1bmkxRTYzdW5pMDI4MnVuaTAyM0Zsb25nc3RiYXJ1bmkwMkE4dGNhcm9udW5pMUU3MXVuaTAxNjN1bmkwMjFCdW5pMDIzNnVuaTFFNkJ1bmkyQzY2dW5pMUU2RHVuaTFFNkZ1bmkwMUJEdW5pMDFBRHVuaTAyQTd1bmkwMjg4dW5pMDFBQnVuaTAxODV1bmkwMUE4dW5pMDI4N3VuaTAyQTZ1bmkwMjg5dWJyZXZldW5pMDFENHVuaTAyMTV1bmkwMURDdW5pMDFEQXVuaTFFRTV1bmkwMUQ4dW5pMDFENnVuaTFFRTl1aG9ybnVuaTFFRjF1bmkxRUU3dW5pMUVFQnVuaTFFRUZ1aHVuZ2FydW1sYXV0dW5pMUVFRHVuaTAyMTd1bWFjcm9udW5pMUQ2RHVuaTFENkN1bmkxRDZFdW5pMUQ2RnVuaTFENzB1bmkxRDcydW5pMUQ3MXVuaTFENzZ1bmkxRDc0dW5pMUQ3M3VuaTFENzV1b2dvbmVrdW5pMUQ5MXVyaW5ndXRpbGRldW5pMDI4QXVuaTJDNzF1bmkxRTc5dW5pMDI4Q3VuaTAyOEJ3Z3JhdmV3YWN1dGV3Y2lyY3VtZmxleHdkaWVyZXNpc3VuaTJDNzN1bmkwMUJGdW5pMDI4RHljaXJjdW1mbGV4dW5pMUVGNXlncmF2ZXVuaTFFRjd1bmkwMUI0dW5pMDI4RXVuaTFFRjl1bmkwMjRGdW5pMDIzM3pkb3RhY2NlbnR1bmkxRTkzdW5pMDI5MXphY3V0ZXVuaTAyMjVmLmxvY2xFV0V1bmkwMUI2dW5pMDI0MHVuaTAyOTBmLmxvY2xFV0Vfc2hvcnRvYWN1dGUubG9jbEhVTmVhY3V0ZS5sb2NsSFVOYWFjdXRlLmxvY2xIVU5pYWN1dGUubG9jbEhVTnVhY3V0ZS5sb2NsSFVOb2FjdXRlLmxvY2xQTEtuYWN1dGUubG9jbFBMS2NhY3V0ZS5sb2NsUExLc2FjdXRlLmxvY2xQTEtmX2ZfaWZfZnVuaTAxQTUuc3MwMWZfZl9qemFjdXRlLmxvY2xQTEtmX2Zfc2hvcnRmX2ZfbGZfZl90Zl9sZl9qZl9pZl90Zl9mLmxvY2xFV0Vfc2hvcnRmX2ZfbC5sb2NsRVdFZl9mX2oubG9jbEVXRWZfZl9pLmxvY2xFV0VmX2YubG9jbEVXRWZfaS5sb2NsRVdFZl9qLmxvY2xFV0VmX2wubG9jbEVXRWZpLmxvY2xFV0VmbC5sb2NsRVdFdW5pQTdCNC5zY3VuaTJDNkQuc2N1bmlBN0FBLnNjdW5pMDE5MS5zY3VuaUE3OEQuc2N1bmkwMTg5LnNjdW5pQTdCMy5zY3VuaTAxRjYuc2N1bmkwMTk2LnNjdW5pMDIyMC5zY3VuaUE3QjIuc2N1bmlBN0FELnNjdW5pQTdCNi5zY3VuaTAyODAuc2N1bmkwMUIxLnNjdW5pMkM2NC5zY3VuaTAxOTQuc2NhLnNjYWFjdXRlLnNjdW5pMUVCMS5zY3VuaTFFQjcuc2N1bmkxRUFGLnNjdW5pMUVCMy5zY3VuaTFFQjUuc2N1bmkwMUNFLnNjYWJyZXZlLnNjdW5pMUVBNS5zY2FjaXJjdW1mbGV4LnNjdW5pMUVBRC5zY3VuaTFFQTcuc2N1bmkxRUE5LnNjdW5pMDFERi5zY3VuaTFFQUIuc2N1bmkwMjAxLnNjYWRpZXJlc2lzLnNjdW5pMDIyNy5zY3VuaTFFQTEuc2N1bmkwMUUxLnNjYWdyYXZlLnNjdW5pMDIwMy5zY3VuaTFFQTMuc2N1bmkwMjUxLnNjYW1hY3Jvbi5zY2FyaW5nLnNjYXJpbmdhY3V0ZS5zY2FvZ29uZWsuc2N1bmkyQzY1LnNjYWUuc2NhZWFjdXRlLnNjYXRpbGRlLnNjdW5pMDFFMy5zY3VuaTFFMDUuc2N1bmkxRTAzLnNjYi5zY3VuaTAxODAuc2N1bmkwMjUzLnNjdW5pMDE4My5zY2Muc2NjY2Fyb24uc2NjYWN1dGUuc2N1bmkwMTg4LnNjY2NpcmN1bWZsZXguc2NjY2VkaWxsYS5zY2Nkb3RhY2NlbnQuc2N1bmkwMjNDLnNjdW5pMUUxMy5zY2Rjcm9hdC5zY3VuaTFFMEQuc2NkY2Fyb24uc2NldGguc2NkLnNjdW5pMDI1Ny5zY3VuaTAxOEMuc2N1bmkxRTBGLnNjdW5pMDFGMy5zY3VuaTAyNTYuc2NlLnNjdW5pMDFDNi5zY2VhY3V0ZS5zY2VicmV2ZS5zY2VjYXJvbi5zY3VuaTAyMjkuc2NlY2lyY3VtZmxleC5zY3VuaTFFQkYuc2N1bmkxRUM3LnNjdW5pMDIwNS5zY3VuaTFFQzEuc2N1bmkxRUM1LnNjdW5pMUVDMy5zY2VkaWVyZXNpcy5zY2VncmF2ZS5zY2Vkb3RhY2NlbnQuc2N1bmkxRUJCLnNjdW5pMDIwNy5zY3VuaTFFQjkuc2NlbWFjcm9uLnNjdW5pMDI1OC5zY2VvZ29uZWsuc2N1bmkwMjVCLnNjdW5pMDFERC5zY3VuaTAyNTkuc2N1bmkwMjQ3LnNjdW5pMDI4My5zY3VuaTFFQkQuc2N1bmkwMjkyLnNjZi5zY3VuaTAxRUYuc2N1bmkwMUI5LnNjdW5pMUUxRi5zY2ZpLnNjZl9sLnNjZl9pLnNjZ2JyZXZlLnNjdW5pMDFGNS5zY2cuc2NmbC5zY2dkb3RhY2NlbnQuc2NnY2Fyb24uc2N1bmkwMTIzLnNjZ2NpcmN1bWZsZXguc2N1bmkwMjYwLnNjdW5pMDI5NC5zY3VuaTAyMUQuc2N1bmkwMUU1LnNjaC5zY2hiYXIuc2NpLnNjaGNpcmN1bWZsZXguc2N1bmkwMjFGLnNjdW5pMUUyNS5zY2RvdGxlc3NpLnNjaWFjdXRlLnNjaWNpcmN1bWZsZXguc2N1bmkwMUQwLnNjaWJyZXZlLnNjdW5pMDIwOS5zY2lkaWVyZXNpcy5zY3VuaTFFMkYuc2NpLnNjLmxvY2xUUkt1bmkxRUNCLnNjaWdyYXZlLnNjaWouc2NpbWFjcm9uLnNjdW5pMDIwQi5zY3VuaTFFQzkuc2NpdGlsZGUuc2N1bmkwMjY4LnNjaW9nb25lay5zY2ouc2NqY2lyY3VtZmxleC5zY3VuaTAxRTkuc2NrLnNjdW5pMDI0OS5zY3VuaTAxMzcuc2NrZ3JlZW5sYW5kaWMuc2N1bmkwMTk5LnNjbC5zY3VuaTFFM0Quc2NsYWN1dGUuc2N1bmkwMTlBLnNjdW5pMDEzQy5zY2xjYXJvbi5zY2xkb3Quc2N1bmkwMUM5LnNjdW5pMUUzNy5zY2FhY3V0ZS5sb2NsSFVOLnNjZWFjdXRlLmxvY2xIVU4uc2NpYWN1dGUubG9jbEhVTi5zY29hY3V0ZS5sb2NsSFVOLnNjbmFjdXRlLmxvY2xQTEsuc2N1YWN1dGUubG9jbEhVTi5zY29hY3V0ZS5sb2NsUExLLnNjY2FjdXRlLmxvY2xQTEsuc2NzYWN1dGUubG9jbFBMSy5zY3phY3V0ZS5sb2NsUExLLnNjbS5zY2xzbGFzaC5zY3VuaTFFM0Yuc2N1bmkxRTQxLnNjbmFwb3N0cm9waGUuc2N1bmkwMjZGLnNjbi5zY25hY3V0ZS5zY25jYXJvbi5zY3VuaTFFNEIuc2N1bmkwMTQ2LnNjdW5pMUU0Ny5zY3VuaTFFNDUuc2N1bmkwMjcyLnNjZW5nLnNjdW5pMDFGOS5zY3VuaTAxQ0Muc2N1bmkwMjc1LnNjby5zY250aWxkZS5zY29hY3V0ZS5zY29icmV2ZS5zY3VuaTFFRDkuc2N1bmkwMUQyLnNjb2NpcmN1bWZsZXguc2N1bmkxRUQxLnNjdW5pMUVEMy5zY3VuaTFFRDUuc2N1bmkxRUQ3LnNjdW5pMDIwRC5zY3VuaTAyMkIuc2NvZGllcmVzaXMuc2N1bmkwMjJGLnNjdW5pMDIzMS5zY3VuaTFFQ0Quc2NvZ3JhdmUuc2N1bmkxRUNGLnNjb2hvcm4uc2N1bmkxRUUzLnNjdW5pMUVEQi5zY3VuaTFFREQuc2N1bmkwMUEzLnNjdW5pMUVERi5zY29odW5nYXJ1bWxhdXQuc2N1bmkxRUUxLnNjdW5pMDIwRi5zY29tYWNyb24uc2N1bmkwMUVCLnNjdW5pMUU1MS5zY3VuaTFFNTMuc2N1bmkwMUVELnNjdW5pMDI1NC5zY29zbGFzaC5zY290aWxkZS5zY29zbGFzaGFjdXRlLnNjb2Uuc2N1bmkxRTRELnNjdW5pMDIyRC5zY3VuaTAyMjMuc2NwLnNjdW5pMUU1NS5zY3VuaTFFNTcuc2N1bmkwMUE1LnNjdGhvcm4uc2NxLnNjdW5pMDI0Qi5zY3JjYXJvbi5zY3JhY3V0ZS5zY3Iuc2N1bmkxRTVCLnNjdW5pMDIxMS5zY3VuaTAyN0Quc2N1bmkwMTU3LnNjc2FjdXRlLnNjdW5pMDI0RC5zY3VuaTAyMTMuc2NzLnNjdW5pMDIxOS5zY3NjZWRpbGxhLnNjc2Nhcm9uLnNjc2NpcmN1bWZsZXguc2N1bmkxRTYzLnNjdW5pMUU2MS5zY2dlcm1hbmRibHMuc2N0LnNjdGJhci5zY3RjYXJvbi5zY3VuaTJDNjYuc2N1bmkwMTYzLnNjdW5pMUU3MS5zY3VuaTAyMUIuc2N1bmkxRTZCLnNjdW5pMUU2RC5zY3VuaTAxQUQuc2N1bmkxRTZGLnNjdW5pMDE4NS5zY3VuaTAxQTguc2N1bmkwMUJELnNjdW5pMDI4OC5zY3VhY3V0ZS5zY3Uuc2N1bmkwMjg5LnNjdWJyZXZlLnNjdW5pMDFENC5zY3VjaXJjdW1mbGV4LnNjdW5pMDIxNS5zY3VkaWVyZXNpcy5zY3VuaTAxREEuc2N1bmkwMUQ4LnNjdW5pMDFEQy5zY3VuaTAxRDYuc2N1bmkxRUU3LnNjdWdyYXZlLnNjdW5pMUVFNS5zY3Vob3JuLnNjdW5pMUVFQi5zY3VuaTFFRUQuc2N1bmkxRUYxLnNjdW5pMUVFOS5zY3VuaTFFRUYuc2N1bWFjcm9uLnNjdWh1bmdhcnVtbGF1dC5zY3VuaTAyMTcuc2N1b2dvbmVrLnNjdW5pMUU3OS5zY3VyaW5nLnNjdi5zY3V0aWxkZS5zY3cuc2N1bmkwMjhDLnNjdW5pMDI4Qi5zY3dncmF2ZS5zY3dhY3V0ZS5zY3djaXJjdW1mbGV4LnNjd2RpZXJlc2lzLnNjdW5pMkM3My5zY3guc2N1bmkwMUJGLnNjeS5zY3lhY3V0ZS5zY3ljaXJjdW1mbGV4LnNjeWRpZXJlc2lzLnNjdW5pMUVGNS5zY3lncmF2ZS5zY3VuaTAxQjQuc2N1bmkxRUY3LnNjdW5pMDIzMy5zY3VuaTAyNEYuc2N1bmkxRUY5LnNjei5zY3VuaTFFOTMuc2N6ZG90YWNjZW50LnNjemNhcm9uLnNjdW5pMDIyNS5zY3phY3V0ZS5zY3VuaTAyNzIuc2Muc3MwMXVuaTJDNjQuc2Muc3MwMXVuaTAxQjYuc2Nlbmcuc2Muc3MwMXVuaUE3OEQuc2Muc3MwMnVuaTAyNTMuc2Muc3MwMm9yZGZlbWluaW5lLjAwMW9yZG1hc2N1bGluZS4wMDF1bmkwMUMzdW5pMDFDMnVuaTAxQzF1bmkwMUMwdW5pMDJCMXVuaTAyQjB1bmkwMkIydW5pMDJFMXVuaTAxQkJ1bmkyMDdGdW5pMDJCNHVuaTAyRTJ1bmkwMkI4dW5pMDJCN3VuaTAyRTNUc2VIZWxwZXJjeXVuaTA0MTB1bmkwNDExdW5pMDQxMnVuaTA0MTN1bmkwNDE1dW5pMDQwM3VuaTA0OTB1bmkwNDE0dW5pMDQwMHVuaTA0MDF1bmkwNDE3dW5pMDQxNnVuaTA0MTl1bmkwNDE4dW5pMDQwRHVuaTA0OEF1bmkwNDFBdW5pMDQwQ3VuaTA0MUJ1bmkwNDFDdW5pMDQxRHVuaTA0MUV1bmkwNDIwdW5pMDQxRnVuaTA0MjF1bmkwNDIydW5pMDQyM3VuaTA0MEV1bmkwNDI0dW5pMDQyNXVuaTA0Mjd1bmkwNDI2dW5pMDQyOHVuaTA0Mjl1bmkwNDBGdW5pMDQyQnVuaTA0MkN1bmkwNDBBdW5pMDQyQXVuaTA0MDl1bmkwNDA1dW5pMDQwN3VuaTA0MDZ1bmkwNDJEdW5pMDQwNHVuaTA0MDh1bmkwNDBCdW5pMDQyRXVuaTA0NjB1bmkwNDAydW5pMDQyRnVuaTA0Njh1bmkwNDY2dW5pMDQ2MnVuaTA0NjR1bmkwNDZBdW5pMDQ2Q3VuaTA0NzJ1bmkwNDZFdW5pMDQ3MHVuaTA0NzR1bmkwNDc4dW5pMDQ3NnVuaTA0OTJ1bmkwNDk0dW5pMDQ5OHVuaTA0OTZ1bmkwNEEwdW5pMDQ5QXVuaTA0OUN1bmkwNDlFdW5pMDRBNHVuaTA0QTJ1bmkwNTI0dW5pMDRBNnVuaTA0QUF1bmkwNEE4dW5pMDRCMnVuaTA0QUN1bmkwNEI0dW5pMDRCNnVuaTA0Qjh1bmkwNTI2dW5pMDRCQXVuaTA0QzF1bmkwNEJDdW5pMDRCRXVuaTA0QzV1bmkwNEMzdW5pMDRDMHVuaTA0Q0R1bmkwNEM3dW5pMDRDOXVuaTA0Q0J1bmkwNEQwdW5pMDREMnVuaTA0RDh1bmkwNEQ0dW5pMDRENnVuaTA0REF1bmkwNERDdW5pMDRERXVuaTA0RTJ1bmkwNEUwdW5pMDRFQXVuaTA0RTR1bmkwNEU4dW5pMDRFNnVuaTA0RUN1bmkwNEVFdW5pMDRGNHVuaTA0RjJ1bmkwNEYwdW5pMDRGNnVuaTA0RkV1bmkwNEZDdW5pMDRGOHVuaTA0RkF1bmkwNTAwdW5pMDUwMnVuaTA1MDZ1bmkwNTA0dW5pMDUwOHVuaTA1MEF1bmkwNTBDdW5pMDUxMHVuaTA1MEV1bmkwNTE0dW5pMDUxMnVuaTA1MTZ1bmkwNTE4dW5pMDUxQXVuaTA1MUN1bmkwNTFFdW5pMDUyMnVuaTA1MjB1bmkwNDhDdW5pMDUyOHVuaTA0OEV1bmkwNTJBdW5pMDUyQ3VuaTA0MTQubG9jbEJHUnVuaTA1MkV1bmkwNDFCLmxvY2xCR1J1bmkwNDI0LmxvY2xCR1J1bmkwNDA5LmxvY2xCR1J1bmkwNDk0LmxvY2xCR1J1bmkwNEE2LmxvY2xCR1J1bmkwNTJBLmxvY2xCR1J1bmkwNTJFLmxvY2xCR1J1bmkwNTJDLmxvY2xCR1J1bmkwNEM1LmxvY2xCR1J1bmkwNEM3LmxvY2xCR1J1bmkwNEZDLmxvY2xCR1J1bmkwNEZBLmxvY2xCR1J1bmkwNTA4LmxvY2xCR1J1bmkwNTEyLmxvY2xCR1J1bmkwNTE0LmxvY2xCR1J1bmkwNTIwLmxvY2xCR1J1bmkwNTIyLmxvY2xCR1J1bmkwNDMxdW5pMDQzMHVuaTA0MzN1bmkwNDMydW5pMDQ1M3VuaTA0OTF1bmkwNDM1dW5pMDQzNHVuaTA0NTB1bmkwNDUxdW5pMDQzNnVuaTA0Mzd1bmkwNDM4dW5pMDQzOXVuaTA0NUN1bmkwNDVEdW5pMDQ4QnVuaTA0M0F1bmkwNDNCdW5pMDQzQ3VuaTA0M0Z1bmkwNDNEdW5pMDQzRXVuaTA0NDN1bmkwNDQydW5pMDQ0MXVuaTA0NDB1bmkwNDQ0dW5pMDQ1RXVuaTA0NDd1bmkwNDQ1dW5pMDQ0OHVuaTA0NDZ1bmkwNDRBdW5pMDQ0OXVuaTA0NUZ1bmkwNDRCdW5pMDQ0Q3VuaTA0NTR1bmkwNDU1dW5pMDQ1OXVuaTA0NUF1bmkwNDREdW5pMDQ1NnVuaTA0NTd1bmkwNDU4dW5pMDQ0RnVuaTA0NUJ1bmkwNDRFdW5pMDQ2M3VuaTA0NjF1bmkwNDUydW5pMDQ2NXVuaTA0NkR1bmkwNDY5dW5pMDQ2N3VuaTA0NkJ1bmkwNDc1dW5pMDQ3M3VuaTA0Nzd1bmkwNDcxdW5pMDQ2RnVuaTA0Nzl1bmkwNDk3dW5pMDQ5NXVuaTA0OTN1bmkwNDlGdW5pMDRBMXVuaTA0OUR1bmkwNDlCdW5pMDQ5OXVuaTA0QTN1bmkwNEE1dW5pMDUyNXVuaTA0QTd1bmkwNEE5dW5pMDRBRHVuaTA0QUJ1bmkwNEIzdW5pMDRCNXVuaTA1Mjd1bmkwNEI3dW5pMDRCQnVuaTA0Qjl1bmkwNEJEdW5pMDRCRnVuaTA0Q0Z1bmkwNEM2dW5pMDRDNHVuaTA0QzJ1bmkwNENFdW5pMDRDQXVuaTA0Q0N1bmkwNEM4dW5pMDRENXVuaTA0RDN1bmkwNEQxdW5pMDREN3VuaTA0RER1bmkwNERCdW5pMDRERnVuaTA0RDl1bmkwNEU3dW5pMDRFNXVuaTA0RTF1bmkwNEUzdW5pMDRFOXVuaTA0RjF1bmkwNEVCdW5pMDRFRHVuaTA0RUZ1bmkwNEYzdW5pMDRGNXVuaTA0Rjl1bmkwNEY3dW5pMDRGQnVuaTA0RkZ1bmkwNEZEdW5pMDUwN3VuaTA1MDF1bmkwNTAzdW5pMDUwNXVuaTA1MDl1bmkwNTExdW5pMDUwQnVuaTA1MER1bmkwNTBGdW5pMDUxOXVuaTA1MTN1bmkwNTE1dW5pMDUxQnVuaTA1MTd1bmkwNTFEdW5pMDUxRnVuaTA1MjF1bmkwNDhEdW5pMDUyM3VuaTA0OEZ1bmkwNTJEdW5pMDUyQnVuaTA1Mjl1bmkwNTJGdW5pMDQzNC5sb2NsQkdSdW5pMDQzQS5sb2NsQkdSdW5pMDQzNi5sb2NsQkdSdW5pMDQzMi5sb2NsQkdSdW5pMDQ5MS5sb2NsQkdSdW5pMDQ1Qy5sb2NsQkdSdW5pMDQzQi5sb2NsQkdSdW5pMDQ1OS5sb2NsQkdSdW5pMDQ0RS5sb2NsQkdSdW5pMDQ5Ny5sb2NsQkdSdW5pMDQ5NS5sb2NsQkdSdW5pMDQ5Qi5sb2NsQkdSdW5pMDQ5RC5sb2NsQkdSdW5pMDRBNy5sb2NsQkdSdW5pMDRCNS5sb2NsQkdSdW5pMDRBNS5sb2NsQkdSdW5pMDUyQi5sb2NsQkdSdW5pMDUyRC5sb2NsQkdSdW5pMDRDMi5sb2NsQkdSdW5pMDUyRi5sb2NsQkdSdW5pMDRDNC5sb2NsQkdSdW5pMDRDNi5sb2NsQkdSdW5pMDRGRC5sb2NsQkdSdW5pMDRGQi5sb2NsQkdSdW5pMDRDOC5sb2NsQkdSdW5pMDUwOS5sb2NsQkdSdW5pMDUwRi5sb2NsQkdSdW5pMDUxNS5sb2NsQkdSdW5pMDUxMy5sb2NsQkdSdW5pMDUyMS5sb2NsQkdSdW5pMDUyMy5sb2NsQkdSdW5pMDQzRi5sb2NsU1JCdW5pMDQzMy5sb2NsU1JCdW5pMDQzMS5sb2NsU1JCdW5pMDQzNC5sb2NsU1JCdW5pMDRBNy5zYy5sb2NsQkdSdW5pMDQ5NS5zYy5sb2NsQkdSdW5pMDQzRi5vbGR1bmkwNDQyLmxvY2xTUkJ1bmkwNTIzLnNjLmxvY2xCR1J1bmkwNEZCLnNjLmxvY2xCR1J1bmkwNEM4LnNjLmxvY2xCR1J1bmkwNEZELnNjLmxvY2xCR1J1bmkwNDMxLnNjdW5pMDQzMC5zY3VuaTA0MzIuc2N1bmkwNDMzLnNjdW5pMDQ5MS5zY3VuaTA0NTMuc2N1bmkwNDM0LnNjdW5pMDQzNS5zY3VuaTA0NTEuc2N1bmkwNDUwLnNjdW5pMDQzNi5zY3VuaTA0NUQuc2N1bmkwNDM4LnNjdW5pMDQzNy5zY3VuaTA0Mzkuc2N1bmkwNDNCLnNjdW5pMDQzQS5zY3VuaTA0NUMuc2N1bmkwNDhCLnNjdW5pMDQzRS5zY3VuaTA0M0Quc2N1bmkwNDNDLnNjdW5pMDQzRi5zY3VuaTA0NDEuc2N1bmkwNDQwLnNjdW5pMDQ0My5zY3VuaTA0NUUuc2N1bmkwNDQ0LnNjdW5pMDQ0Mi5zY3VuaTA0NDUuc2N1bmkwNDQ4LnNjdW5pMDQ0Ni5zY3VuaTA0NDcuc2N1bmkwNDQ5LnNjdW5pMDQ0Qy5zY3VuaTA0NUYuc2N1bmkwNDRBLnNjdW5pMDQ1OS5zY3VuaTA0NEIuc2N1bmkwNDVBLnNjdW5pMDQ1NS5zY3VuaTA0NEQuc2N1bmkwNDU0LnNjdW5pMDQ1Ny5zY3VuaTA0NTYuc2N1bmkwNDRGLnNjdW5pMDQ1Qi5zY3VuaTA0NTguc2N1bmkwNDRFLnNjdW5pMDQ2MS5zY3VuaTA0NTIuc2N1bmkwNDY1LnNjdW5pMDQ2My5zY3VuaTA0Njcuc2N1bmkwNDZCLnNjdW5pMDQ2RC5zY3VuaTA0Njkuc2N1bmkwNDcxLnNjdW5pMDQ2Ri5zY3VuaTA0NzMuc2N1bmkwNDc1LnNjdW5pMDQ3Ny5zY3VuaTA0Nzkuc2N1bmkwNDk1LnNjdW5pMDQ5My5zY3VuaTA0OTcuc2N1bmkwNDlGLnNjdW5pMDQ5OS5zY3VuaTA0OUQuc2N1bmkwNDlCLnNjdW5pMDRBMS5zY3VuaTA1MjUuc2N1bmkwNEE1LnNjdW5pMDRBMy5zY3VuaTA0QTkuc2N1bmkwNEE3LnNjdW5pMDRBRC5zY3VuaTA0Qjcuc2N1bmkwNEFCLnNjdW5pMDRCMy5zY3VuaTA0Qjkuc2N1bmkwNTJCLnNjdW5pMDRCQi5zY3VuaTA1Mjcuc2N1bmkwNTI5LnNjdW5pMDUyRC5zY3VuaTA1MkYuc2N1bmkwNEJELnNjdW5pMDRCRi5zY3VuaTA0Q0Yuc2N1bmkwNEMyLnNjdW5pMDRDNC5zY3VuaTA0Qzguc2N1bmkwNEM2LnNjdW5pMDRDQS5zY3VuaTA0Q0Muc2N1bmkwNEQxLnNjdW5pMDREMy5zY3VuaTA0Q0Uuc2N1bmkwNEQ1LnNjdW5pMDRERC5zY3VuaTA0RDkuc2N1bmkwNERCLnNjdW5pMDRENy5zY3VuaTA0REYuc2N1bmkwNEU3LnNjdW5pMDRFMS5zY3VuaTA0RTMuc2N1bmkwNEU1LnNjdW5pMDRFOS5zY3VuaTA0RUIuc2N1bmkwNEVELnNjdW5pMDRGNS5zY3VuaTA0RjMuc2N1bmkwNEVGLnNjdW5pMDRGMS5zY3VuaTA0Rjcuc2N1bmkwNEZGLnNjdW5pMDRGQi5zY3VuaTA0Rjkuc2N1bmkwNEZELnNjdW5pMDUwMS5zY3VuaTA1MDMuc2N1bmkwNTA3LnNjdW5pMDUwNS5zY3VuaTA1MDkuc2N1bmkwNTExLnNjdW5pMDUxMy5zY3VuaTA1MEYuc2N1bmkwNTBELnNjdW5pMDUwQi5zY3VuaTA1MTcuc2N1bmkwNTE1LnNjdW5pMDUxQi5zY3VuaTA1MTkuc2N1bmkwNTFGLnNjdW5pMDUxRC5zY3VuaTA1MjMuc2N1bmkwNTIxLnNjdW5pMDQ4Ri5zY3VuaTA0OEQuc2N1bmkwNDNCLmxvY2xCR1Iuc2N1bmkwNDM0LmxvY2xCR1Iuc2N1bmkwNDU5LmxvY2xCR1Iuc2N1bmkwNDQ0LmxvY2xCR1Iuc2N1bmkwNTJELmxvY2xCR1Iuc2N1bmkwNTJCLmxvY2xCR1Iuc2N1bmkwNTJGLmxvY2xCR1Iuc2N1bmkwNEM2LmxvY2xCR1Iuc2N1bmkwNTA5LmxvY2xCR1Iuc2N1bmkwNTEzLmxvY2xCR1Iuc2N1bmkwNTE1LmxvY2xCR1Iuc2N1bmkwNTIxLmxvY2xCR1Iuc2N0c2VoZWxwZXJjeS5zY3RzZWhlbHBlcmN5dW5pMDM3RkFscGhhQmV0YUdhbW1hRXBzaWxvbnVuaTAzOTRFdGFaZXRhSW90YVRoZXRhS2FwcGFMYW1iZGFOdU11WGlPbWljcm9uUGlTaWdtYVJob1RhdVVwc2lsb25DaGlQaGlQc2l1bmkwM0E5RXBzaWxvbnRvbm9zQWxwaGF0b25vc0V0YXRvbm9zSW90YXRvbm9zT21pY3JvbnRvbm9zVXBzaWxvbnRvbm9zT21lZ2F0b25vc0lvdGFkaWVyZXNpc1Vwc2lsb25kaWVyZXNpc3VuaTAzNzB1bmkwMzc2dW5pMDM3MnVuaTAzRDh1bmkwM0RDdW5pMDNEQXVuaTAzREV1bmkwM0QydW5pMDNDRnVuaTAzRTB1bmkwM0QzdW5pMDNGN3VuaTAzRjl1bmkwM0Q0dW5pMDNGNHVuaTAzRkF1bmkwM0ZFdW5pMDNGRnVuaTAzRkR1bmkxRjA4dW5pMUYwQnVuaTFGMEF1bmkxRjA5dW5pMUYwRnVuaTFGMEN1bmkxRjBFdW5pMUYwRHVuaTFGQkF1bmkxRkJCdW5pMUZCOHVuaTFGQjl1bmkxRkJDdW5pMUY4OHVuaTFGOEF1bmkxRjg5dW5pMUY4Q3VuaTFGOEJ1bmkxRjhFdW5pMUY4RHVuaTFGMTh1bmkxRjhGdW5pMUYxQXVuaTFGMTl1bmkxRjFCdW5pMUYxQ3VuaTFGMUR1bmkxRkM4dW5pMUZDOXVuaTFGMjh1bmkxRjI5dW5pMUYyQXVuaTFGMkJ1bmkxRjJDdW5pMUYyRHVuaTFGMkV1bmkxRkNBdW5pMUYyRnVuaTFGQ0N1bmkxRkNCdW5pMUY5OHVuaTFGOTl1bmkxRjlBdW5pMUY5QnVuaTFGOUR1bmkxRjlDdW5pMUY5RXVuaTFGMzh1bmkxRjlGdW5pMUYzOXVuaTFGM0N1bmkxRjNEdW5pMUYzQXVuaTFGM0J1bmkxRjNFdW5pMUYzRnVuaTFGREF1bmkxRkRCdW5pMUZEOHVuaTFGRDl1bmkxRjQ4dW5pMUY0OXVuaTFGNEF1bmkxRjRDdW5pMUY0QnVuaTFGNER1bmkxRkVDdW5pMUZGOXVuaTFGRjh1bmkxRjU5dW5pMUY1QnVuaTFGNUR1bmkxRjVGdW5pMUZFQXVuaTFGNjh1bmkxRkU4dW5pMUZFQnVuaTFGRTl1bmkxRjY5dW5pMUY2Q3VuaTFGNkJ1bmkxRjZBdW5pMUY2RHVuaTFGNkV1bmkxRkZBdW5pMUY2RnVuaTFGRkJ1bmkxRkZDdW5pMUZBQXVuaTFGQTh1bmkxRkE5dW5pMUZBQnVuaTFGQUV1bmkxRkFDdW5pMUZBRHVuaTFGQUZnYW1tYWJldGFkZWx0YWFscGhhdGhldGFldGFlcHNpbG9uemV0YWlvdGFrYXBwYWxhbWJkYW51eGl1bmkwM0JDcmhvdW5pMDNDMm9taWNyb25zaWdtYXRhdXBpdXBzaWxvbmNoaXBoaXBzaWlvdGFkaWVyZXNpc2lvdGF0b25vc29tZWdhaW90YWRpZXJlc2lzdG9ub3NvbWljcm9udG9ub3N1cHNpbG9uZGllcmVzaXN0b25vc3Vwc2lsb250b25vc3Vwc2lsb25kaWVyZXNpc29tZWdhdG9ub3NhbHBoYXRvbm9zZXBzaWxvbnRvbm9zZXRhdG9ub3N1bmkwMzcxdW5pMDM3QnVuaTAzNzN1bmkwMzc3dW5pMDM3Q3VuaTAzRDl1bmkwMzdEdW5pMDNEQnVuaTAzRER1bmkwM0RGdW5pMDNEN3VuaTAzRDB1bmkwM0UxdW5pMDNEMXVuaTAzRDZ1bmkwM0Q1dW5pMDNGMHVuaTAzRjJ1bmkwM0YzdW5pMDNGMXVuaTAzRjV1bmkwM0Y4dW5pMUYwMHVuaTAzRkN1bmkwM0ZCdW5pMUYwMXVuaTFGMDJ1bmkxRjA1dW5pMUYwNHVuaTFGMDN1bmkxRjA2dW5pMUZCNnVuaTFGNzF1bmkxRjcwdW5pMUYwN3VuaTFGQjB1bmkxRkIydW5pMUY4MHVuaTFGQjN1bmkxRkIxdW5pMUZCNHVuaTFGODF1bmkxRjgzdW5pMUY4NHVuaTFGODJ1bmkxRjg1dW5pMUZCN3VuaTFGODd1bmkxRjg2dW5pMUYxMHVuaTFGMTR1bmkxRjEydW5pMUYxMXVuaTFGMTN1bmkxRjE1dW5pMUY3M3VuaTFGNzJ1bmkxRjIxdW5pMUYyMHVuaTFGMjJ1bmkxRjI2dW5pMUYyM3VuaTFGMjd1bmkxRjI1dW5pMUYyNHVuaTFGQzN1bmkxRjc1dW5pMUY3NHVuaTFGQzZ1bmkxRjkxdW5pMUY5MHVuaTFGQzJ1bmkxRkM0dW5pMUY5MnVuaTFGOTV1bmkxRjk0dW5pMUY5M3VuaTFGOTZ1bmkxRjMwdW5pMUZDN3VuaTFGOTd1bmkxRjMxdW5pMUYzNXVuaTFGMzJ1bmkxRjMzdW5pMUYzNHVuaTFGMzZ1bmkxRjM3dW5pMUZENnVuaTFGNzZ1bmkxRjc3dW5pMUZEMHVuaTFGRDJ1bmkxRkQxdW5pMUZEM3VuaTFGRDd1bmkxRjQwdW5pMUY0MnVuaTFGNDF1bmkxRjQzdW5pMUY3OHVuaTFGNDV1bmkxRjQ0dW5pMUY3OXVuaTFGRTV1bmkxRkU0dW5pMUY1MHVuaTFGNTN1bmkxRjU0dW5pMUY1MnVuaTFGNTF1bmkxRjdBdW5pMUY1N3VuaTFGNTZ1bmkxRjU1dW5pMUZFMXVuaTFGN0J1bmkxRkU2dW5pMUZFMHVuaTFGRTJ1bmkxRjYxdW5pMUZFM3VuaTFGRTd1bmkxRjYwdW5pMUY2NXVuaTFGNjN1bmkxRjYydW5pMUY2NnVuaTFGNjR1bmkxRjdDdW5pMUY2N3VuaTFGRjJ1bmkxRkY2dW5pMUY3RHVuaTFGRjN1bmkxRkY0dW5pMUZBMXVuaTFGQTB1bmkxRkEzdW5pMUZBMnVuaTFGQTV1bmkxRkE0dW5pMUZBN3VuaTFGQTZ1bmkxRkY3dW5pMUZCRWFscGhhLnNjc2lnbWEuc3MxMGJldGEuc3MxMHpldGEuc3MxMGdhbW1hLnNjYmV0YS5zY2Vwc2lsb24uc2N6ZXRhLnNjZGVsdGEuc2NldGEuc2N0aGV0YS5zY2thcHBhLnNjaW90YS5zY2xhbWJkYS5zY3VuaTAzQkMuc2N4aS5zY251LnNjb21pY3Jvbi5zY3VuaTAzQzIuc2NyaG8uc2NwaS5zY3NpZ21hLnNjcGhpLnNjdXBzaWxvbi5zY3RhdS5zY2NoaS5zY2lvdGF0b25vcy5zY3BzaS5zY29tZWdhLnNjaW90YWRpZXJlc2lzLnNjaW90YWRpZXJlc2lzdG9ub3Muc2N1cHNpbG9udG9ub3Muc2N1cHNpbG9uZGllcmVzaXN0b25vcy5zY3Vwc2lsb25kaWVyZXNpcy5zY29taWNyb250b25vcy5zY2V0YXRvbm9zLnNjYWxwaGF0b25vcy5zY29tZWdhdG9ub3Muc2NlcHNpbG9udG9ub3Muc2N1bmkwMzcxLnNjdW5pMDM3Qi5zY3VuaTAzNzcuc2N1bmkwMzczLnNjdW5pMDM3Qy5zY3VuaTAzN0Quc2N1bmkwM0Q5LnNjdW5pMDNERC5zY3VuaTAzREIuc2N1bmkwM0RGLnNjdW5pMDNEMC5zY3VuaTAzRDcuc2N1bmkwM0UxLnNjdW5pMDNEMS5zY3VuaTAzRDIuc2N1bmkwM0QzLnNjdW5pMDNENC5zY3VuaTAzRDYuc2N1bmkwM0Q1LnNjdW5pMDNGMC5zY3VuaTAzRjEuc2N1bmkwM0YzLnNjdW5pMDNGMi5zY3VuaTAzRjUuc2N1bmkxRjAwLnNjdW5pMDNGQi5zY3VuaTAzRkMuc2N1bmkwM0Y4LnNjdW5pMUYwMy5zY3VuaTFGMDQuc2N1bmkxRjAxLnNjdW5pMUYwMi5zY3VuaTFGMDUuc2N1bmkxRjcwLnNjdW5pMUYwNy5zY3VuaTFGMDYuc2N1bmkxRjcxLnNjdW5pMUZCNi5zY3VuaTFGQjEuc2N1bmkxRkIwLnNjdW5pMUZCMy5zY3VuaTFGODAuc2N1bmkxRkI0LnNjdW5pMUZCMi5zY3VuaTFGODEuc2N1bmkxRjgzLnNjdW5pMUY4NC5zY3VuaTFGODIuc2N1bmkxRjg1LnNjdW5pMUYxMC5zY3VuaTFGQjcuc2N1bmkxRjg3LnNjdW5pMUY4Ni5zY3VuaTFGMTEuc2N1bmkxRjE1LnNjdW5pMUYxMi5zY3VuaTFGMTMuc2N1bmkxRjcyLnNjdW5pMUYxNC5zY3VuaTFGMjAuc2N1bmkxRjczLnNjdW5pMUYyMi5zY3VuaTFGMjEuc2N1bmkxRjI1LnNjdW5pMUYyMy5zY3VuaTFGMjQuc2N1bmkxRjI2LnNjdW5pMUY3NC5zY3VuaTFGMjcuc2N1bmkxRjc1LnNjdW5pMUZDNi5zY3VuaTFGQzMuc2N1bmkxRkMyLnNjdW5pMUY5MS5zY3VuaTFGOTIuc2N1bmkxRjkwLnNjdW5pMUZDNC5zY3VuaTFGOTMuc2N1bmkxRjk3LnNjdW5pMUY5NS5zY3VuaTFGOTQuc2N1bmkxRjk2LnNjdW5pMUYzMC5zY3VuaTFGMzEuc2N1bmkxRjMyLnNjdW5pMUZDNy5zY3VuaTFGMzMuc2N1bmkxRjM2LnNjdW5pMUYzNC5zY3VuaTFGMzUuc2N1bmkxRjc2LnNjdW5pMUYzNy5zY3VuaTFGRDYuc2N1bmkxRjc3LnNjdW5pMUZEMy5zY3VuaTFGRDIuc2N1bmkxRkQxLnNjdW5pMUZEMC5zY3VuaTFGNDIuc2N1bmkxRjQxLnNjdW5pMUZENy5zY3VuaTFGNDAuc2N1bmkxRjQ1LnNjdW5pMUY0NC5zY3VuaTFGNzguc2N1bmkxRkU0LnNjdW5pMUZFNS5zY3VuaTFGNDMuc2N1bmkxRjUxLnNjdW5pMUY3OS5zY3VuaTFGNTAuc2N1bmkxRjUyLnNjdW5pMUY1NS5zY3VuaTFGNTMuc2N1bmkxRjU0LnNjdW5pMUY1Ni5zY3VuaTFGN0Iuc2N1bmkxRjU3LnNjdW5pMUY3QS5zY3VuaTFGRTAuc2N1bmkxRkU2LnNjdW5pMUZFMi5zY3VuaTFGRTEuc2N1bmkxRkUzLnNjdW5pMUZFNy5zY3VuaTFGNjAuc2N1bmkxRjYyLnNjdW5pMUY2MS5zY3VuaTFGNjMuc2N1bmkxRjY3LnNjdW5pMUY2NS5zY3VuaTFGNjQuc2N1bmkxRjY2LnNjdW5pMUZGNi5zY3VuaTFGN0Quc2N1bmkxRkYzLnNjdW5pMUY3Qy5zY3VuaTFGRjQuc2N1bmkxRkYyLnNjdW5pMUZBMS5zY3VuaTFGQTAuc2N1bmkxRkEzLnNjdW5pMUZBMi5zY3VuaTFGQTQuc2N1bmkxRkE1LnNjdW5pMDM3QXVuaTFGQTcuc2N1bmkxRkE2LnNjdW5pMUZGNy5zY3VuaTIxMEF1bmkxREJGdW5pMUQ0QXplcm8ub3NmdHdvLm9zZm9uZS5vc2ZzaXgub3NmZml2ZS5vc2Z0aHJlZS5vc2Zmb3VyLm9zZm5pbmUub3NmemVyby5vc2YuemVyb2VpZ2h0Lm9zZnNldmVuLm9zZnR3by50Zm9uZS50Znplcm8udGZ0aHJlZS50ZnNldmVuLnRmZml2ZS50ZmZvdXIudGZzaXgudGZlaWdodC50Znplcm8udG9zZnplcm8udGYuemVyb25pbmUudGZmb3VyLnRvc2Z0aHJlZS50b3NmdHdvLnRvc2ZvbmUudG9zZmZpdmUudG9zZnNldmVuLnRvc2ZzaXgudG9zZmVpZ2h0LnRvc2Z6ZXJvLnplcm9uaW5lLnRvc2Z6ZXJvLnRvc2YuemVyb3VuaTIwODB1bmkyMDgydW5pMjA4MXVuaTIwODN1bmkyMDg0dW5pMjA4NnVuaTIwODV1bmkyMDg3dW5pMjA4OHR3by5kbm9tdW5pMjA4OW9uZS5kbm9temVyby5kbm9tdGhyZWUuZG5vbWZvdXIuZG5vbXNpeC5kbm9tZml2ZS5kbm9tZWlnaHQuZG5vbXNldmVuLmRub21uaW5lLmRub216ZXJvLm51bXJvbmUubnVtcmZvdXIubnVtcnRocmVlLm51bXJ0d28ubnVtcmZpdmUubnVtcmVpZ2h0Lm51bXJzZXZlbi5udW1yc2l4Lm51bXJuaW5lLm51bXJ1bmkwMEIydW5pMjA3MHVuaTAwQjl1bmkwMEIzdW5pMjA3N3VuaTIwNzV1bmkyMDc2dW5pMjA3NHVuaTIxNUZ1bmkyMDc5dW5pMjA3OHVuaTIxNTR1bmkyMTUzdW5pMjE1NXVuaTIxNTZ1bmkyMTU3dW5pMjE1OHVuaTIxNTl1bmkyMTVBdW5pMjAxNnVuaTIwM0Z1bmkyMDRBZXhjbGFtZG93bi5jYXNlbnVtYmVyc2lnbi5vc2ZudW1iZXJzaWduLnRmcXVlc3Rpb25kb3duLmNhc2VudW1iZXJzaWduLnRvc2Z1bmkyMDhFdW5pMjA4RHVuaTIwN0R1bmkyMDdFcGFyZW5sZWZ0LmNhc2VwYXJlbnJpZ2h0LmNhc2VicmFjZXJpZ2h0LmNhc2VicmFjZWxlZnQuY2FzZWJyYWNrZXRsZWZ0LmNhc2VicmFja2V0cmlnaHQuY2FzZXVuaTAwQUR1bmkyMDEwdW5pMjAxNXVuaTIwMTFoeXBoZW4uY2FzZWVuZGFzaC5jYXNldW5pMDBBRC5jYXNlZmlndXJlZGFzaC50ZmZpZ3VyZWRhc2gub3NmZW1kYXNoLmNhc2VmaWd1cmVkYXNoLnRvc2ZndWlsbGVtb3RsZWZ0LmNhc2VndWlsbGVtb3RyaWdodC5jYXNlZ3VpbHNpbmdsbGVmdC5jYXNlZ3VpbHNpbmdscmlnaHQuY2FzZXBhcmVubGVmdC5kbm9tcGFyZW5sZWZ0Lm51bXJwYXJlbnJpZ2h0LmRub21wYXJlbnJpZ2h0Lm51bXJhbm90ZWxlaWF1bmkyMDA3dW5pMDM3RXVuaTIwMDh1bmkyMDBCdW5pMDBBMHNwYWNlLmZyYWN1bmkyMDBGdW5pMjAwRXVuaTIwMEN1bmkyMDBEQ1J1bmlGRUZGdW5pMEUzRkV1cm91bmkyMEFGZG9uZ3VuaTIwQkF1bmkyMEE2dW5pMjBCNHVuaTIwQkR1bmkyMEFBdW5pMjBCOXVuaTIwQTljZW50Lm9zZmNvbG9ubW9uZXRhcnkub3NmdW5pMEUzRi5vc2Zkb2xsYXIub3NmY3VycmVuY3kub3NmdW5pMjBCNC5vc2Z1bmkyMEJBLm9zZnVuaTIwQUYub3NmZG9uZy5vc2ZFdXJvLm9zZnVuaTIwQkQub3NmdW5pMjBCOS5vc2Z1bmkyMEE2Lm9zZnVuaTIwQUEub3Nmc3Rlcmxpbmcub3NmdW5pMjBBOS5vc2Z1bmkwRTNGLnRmeWVuLm9zZmNvbG9ubW9uZXRhcnkudGZjZW50LnRmY3VycmVuY3kudGZkb2xsYXIudGZ1bmkyMEFGLnRmZG9uZy50ZkV1cm8udGZ1bmkyMEI0LnRmdW5pMjBCQS50ZnVuaTIwQTYudGZ1bmkyMEJELnRmdW5pMjBBQS50ZnVuaTIwQjkudGZzdGVybGluZy50ZnVuaTBFM0YudG9zZnVuaTIwQTkudGZ5ZW4udGZjZW50LnRvc2ZjdXJyZW5jeS50b3NmZG9sbGFyLnRvc2Zjb2xvbm1vbmV0YXJ5LnRvc2Zkb25nLnRvc2Z1bmkyMEFGLnRvc2ZFdXJvLnRvc2Z1bmkyMEI0LnRvc2Z1bmkyMEJBLnRvc2Z1bmkyMEI5LnRvc2Z1bmkyMEE2LnRvc2Z1bmkyMEJELnRvc2Z1bmkyMEFBLnRvc2ZzdGVybGluZy50b3NmeWVuLnRvc2Z1bmkyMjE5dW5pMjBBOS50b3NmdW5pMjIxNXVuaTIwOENkb3RtYXRodW5pMjA3Q3VuaTIwOEJ1bmkyMDdCbm90ZXF1YWxsZXNzZXF1YWxhcHByb3hlcXVhbGdyZWF0ZXJlcXVhbGVtcHR5c2V0aW5maW5pdHlpbnRlZ3JhbHByb2R1Y3R1bmkyMjA2dW5pMjEyNnBhcnRpYWxkaWZmc3VtbWF0aW9ucmFkaWNhbHVuaTAwQjV1bmkyMDhBdW5pMjA3QXVuaTI5ODFpbmZpbml0eS5jYXNlcGx1cy5vc2ZkaXZpZGUub3NmbXVsdGlwbHkub3NmbWludXMub3NmZXF1YWwub3NmZ3JlYXRlcmVxdWFsLm9zZm5vdGVxdWFsLm9zZmxlc3Mub3NmZ3JlYXRlci5vc2ZwbHVzbWludXMub3NmbGVzc2VxdWFsLm9zZmFzY2lpdGlsZGUub3NmYXBwcm94ZXF1YWwub3NmcHJvZHVjdC5vc2ZpbnRlZ3JhbC5vc2ZpbmZpbml0eS5vc2Zsb2dpY2Fsbm90Lm9zZnN1bW1hdGlvbi5vc2ZwYXJ0aWFsZGlmZi5vc2ZwZXJjZW50Lm9zZnJhZGljYWwub3NmcGVydGhvdXNhbmQub3NmbXVsdGlwbHkudGZwbHVzLnRmbWludXMudGZkaXZpZGUudGZncmVhdGVyLnRmZXF1YWwudGZub3RlcXVhbC50Zmxlc3MudGZncmVhdGVyZXF1YWwudGZhcHByb3hlcXVhbC50ZnBsdXNtaW51cy50Zmxlc3NlcXVhbC50ZmFzY2lpdGlsZGUudGZsb2dpY2Fsbm90LnRmaW5maW5pdHkudGZwcm9kdWN0LnRmaW50ZWdyYWwudGZzdW1tYXRpb24udGZwZXJjZW50LnRmcGFydGlhbGRpZmYudGZyYWRpY2FsLnRmcGVydGhvdXNhbmQudGZtdWx0aXBseS50b3NmbWludXMudG9zZnBsdXMudG9zZmdyZWF0ZXIudG9zZmVxdWFsLnRvc2ZkaXZpZGUudG9zZm5vdGVxdWFsLnRvc2ZwbHVzbWludXMudG9zZmxlc3MudG9zZmxlc3NlcXVhbC50b3NmZ3JlYXRlcmVxdWFsLnRvc2Zsb2dpY2Fsbm90LnRvc2ZpbmZpbml0eS50b3NmYXNjaWl0aWxkZS50b3NmYXBwcm94ZXF1YWwudG9zZmludGVncmFsLnRvc2Zwcm9kdWN0LnRvc2ZzdW1tYXRpb24udG9zZnJhZGljYWwudG9zZnBhcnRpYWxkaWZmLnRvc2ZhcnJvd3VwcGVyY2VudC50b3NmcGVydGhvdXNhbmQudG9zZnVuaTIxOTh1bmkyMTk3YXJyb3dyaWdodGFycm93ZG93bmFycm93Ym90aHVuaTIxOTZhcnJvd2xlZnR1bmkyMTk5dW5pMjFFOXVuaTIxRTdhcnJvd3VwZG51bmkyMUU4dW5pMjFFNnVuaTJCMDV1bmkyN0ExdW5pMkIwN3VuaTJCMDZ0cmlhZ3VwdW5pMjVBRnVuaTI1Q0Zsb3plbmdldHJpYWdkbnVuaTI1QjZ0cmlhZ3J0dW5pMjVDMHVuaTI1QjR1bmkyNUI4dW5pMjVCRXRyaWFnbGZ1bmkyNUMybG96ZW5nZS50b3NmdW5pRjhGRmxvemVuZ2UudGZsb3plbmdlLm9zZnVuaTIxMTN1bmkyMTE2ZXN0aW1hdGVkdTFGMzEwdW5pMjMyN3VuaTIxRUF1bmkyQjU4dW5pMjMyOHVuaTIzMkJ1bmkyM0NFdW5pMjMyNnNlY3Rpb24ub3NmZGFnZ2VyLm9zZmRhZ2dlcmRibC5vc2ZkZWdyZWUub3NmZGVncmVlLnRmc2VjdGlvbi50ZmFtcGVyc2FuZC5zczAzZGFnZ2VyLnRmZGFnZ2VyLnRvc2ZkZWdyZWUudG9zZnNlY3Rpb24udG9zZmRhZ2dlcmRibC50ZnVuaTAyRDd1bmlBNzg5dW5pMDJFRWRhZ2dlcmRibC50b3NmdW5pMDJENnVuaUE3OEF1bmkwMkU1dW5pMDJERXVuaTAyRTl1bmkwMkU4dW5pMDJFNnVuaTAyRDR1bmkwMkU3cGx1cy5udW1yZXF1YWwuZG5vbXBsdXMuZG5vbW1pbnVzLmRub211bmkwMkU0bWludXMubnVtcnVuaTAzRjZlcXVhbC5udW1ydW5pMDM3NXVuaTAzNzR1bmkwMkQxdW5pMDJEMHVuaTAyQ0Z1bmkwMkUwdW5pMDJCQXVuaTAyQkJ1bmkwMkNCdW5pMDJDMHVuaTAyQjl1bmkwMkNFdW5pMDJCRnVuaTAyQ0F1bmkwMkM4dW5pMDJDQ3VuaTAzMDd1bmkwMzA4Z3JhdmVjb21iYWN1dGVjb21idW5pMDMwQnVuaTAzMEN1bmkwMzAydW5pMDMwQXVuaTAzMDZ0aWxkZWNvbWJ1bmkwMzA1dW5pMDMwNGhvb2thYm92ZWNvbWJ1bmkwMzBEdW5pMDMxMXVuaTAzMEZ1bmkwMzEydW5pMDMxM3VuaTAzMTZ1bmkwMzE3dW5pMDMxOXVuaTAzMTh1bmkwMzFBdW5pMDMxQnVuaTAzMUZ1bmkwMzFDdW5pMDMxRXVuaTAzMUR1bmkwMzIwdW5pMDMyMWRvdGJlbG93Y29tYnVuaTAzMjR1bmkwMzI1dW5pMDMyOHVuaTAzMjd1bmkwMzI2dW5pMDMyOXVuaTAzMkR1bmkwMzJGdW5pMDMyQnVuaTAzMkN1bmkwMzJBdW5pMDMzMXVuaTAzMzR1bmkwMzMydW5pMDMzMHVuaTAzMzV1bmkwMzNBdW5pMDMzNnVuaTAzMzl1bmkwMzNCdW5pMDMzRHVuaTAzNUN1bmkwMzYxdW5pMDMzQ3VuaTFEQzd1bmkxREM5dW5pMURDOHVuaTFEQzR1bmkxREM1dW5pMURDNmNlZGlsbGEuc2MuQUxUY2Fyb24uYWx0Y2VkaWxsYS5jYXNlLkFMVHVuaTAzMDguY2FzZXVuaTAzMDcuY2FzZWFjdXRlY29tYi5jYXNlZ3JhdmVjb21iLmNhc2V1bmkwMzBCLmNhc2V1bmkwMzBDLmNhc2V1bmkwMzBBLmNhc2V1bmkwMzAyLmNhc2V1bmkwMzA2LmNhc2V1bmkwMzBGLmNhc2Vob29rYWJvdmVjb21iLmNhc2V1bmkwMzA0LmNhc2V0aWxkZWNvbWIuY2FzZWFjdXRlLmNhc2V1bmkwMzI2LmNhc2V1bmkwMzI3LmNhc2V1bmkwMzFCLmNhc2VjYXJvbi5jYXNlY2VkaWxsYS5jYXNlYnJldmUuY2FzZWNpcmN1bWZsZXguY2FzZWRpZXJlc2lzLmNhc2VodW5nYXJ1bWxhdXQuY2FzZWdyYXZlLmNhc2Vkb3RhY2NlbnQuY2FzZW1hY3Jvbi5jYXNlYWN1dGUubG9jbEhVTnJpbmcuY2FzZXRpbGRlLmNhc2VhY3V0ZWNvbWIubG9jbEhVTmFjdXRlY29tYi5jYXNlLmxvY2xIVU5hY3V0ZS5jYXNlLmxvY2xIVU5hY3V0ZWNvbWIuY2FzZS5sb2NsUExLYWN1dGVjb21iLmxvY2xQTEthY3V0ZS5sb2NsUExLdW5pMDMwOC5zY2FjdXRlLmNhc2UubG9jbFBMS3VuaTAzMDcuc2NncmF2ZWNvbWIuc2N1bmkwMzBCLnNjYWN1dGVjb21iLnNjdW5pMDMwQS5zY3VuaTAzMDIuc2N1bmkwMzA2LnNjdW5pMDMwQy5zY3VuaTAzMDQuc2N1bmkwMzI3LnNjdGlsZGVjb21iLnNjdW5pMDMyNi5zY2Nhcm9uLnNjdW5pMDMyOC5zY2JyZXZlLnNjYWN1dGUuc2NjZWRpbGxhLnNjY2lyY3VtZmxleC5zY2RvdGFjY2VudC5zY2RpZXJlc2lzLnNjZ3JhdmUuc2NhY3V0ZS5sb2NsUExLLnNjaHVuZ2FydW1sYXV0LnNjYWN1dGUubG9jbEhVTi5zY21hY3Jvbi5zY29nb25lay5zY29nb25lay50aGluLnNjcmluZy5zY3RpbGRlLnNjb2dvbmVrLnRoaW51bmkwMzQ1dW5pMDM0MnRvbm9zdG9ub3MuY2FzZWRpZXJlc2lzdG9ub3N1bmkxRkJGdW5pMUZCRi5jYXNldW5pMUZCRHVuaTFGRkV1bmkxRkZFLmNhc2V1bmkxRkNEdW5pMUZDRXVuaTFGREQuY2FzZXVuaTFGRER1bmkxRkNFLmNhc2V1bmkxRkNGdW5pMUZERS5jYXNldW5pMUZERXVuaTFGRUR1bmkxRkRGLmNhc2V1bmkxRkNGLmNhc2V1bmkxRkRGdW5pMUZDMXVuaTFGRUV1bmkxRkVGdW5pMUZFRi5jYXNldW5pMUZGRC5jYXNldW5pMUZGRHVuaTFGQzB1bmkxRkNELmNhc2VkZXNjUm91bmRjeWRlc2NTdHJhaWdodGN5UG93ZXJTeW1ib2xkZXNjUm91bmRjeS5BTFRkZXNjU3RyYWlnaHRjeS5jYXNldW5pMDJCQ3VuaUE3QUVwb3dlclNsZWVwU3ltYm9scG93ZXJPbk9mZlN5bWJvbHBvd2VyT25TeW1ib2x1bmlBN0FFLnNjVXN0cmFpdC1jeXVzdHJhaXQtY3lVc3RyYWl0c3Ryb2tlLWN5bWFjcm9uY29tYmN5dXN0cmFpdHN0cm9rZWN5LnNjdXN0cmFpdHN0cm9rZS1jeXVzdHJhaXRjeS5zY2JyZXZlY3kuY2FzZWJyZXZlY3licmV2ZWN5LnNjbnVsbGNlZGlsbGFUY2VkaWxsYWRlc2NTdHJhaWdodGxlZnRjeWRpZXJlc2lzYWN1dGVjb21iZGllcmVzaXNncmF2ZWNvbWJkZXNjU3RyYWlnaHRsZWZ0Y3kuY2FzZWJyZXZlYWN1dGVicmV2ZWdyYXZlYnJldmVob29rYWJvdmVjaXJjdW1mbGV4Z3JhdmVjaXJjdW1mbGV4YWN1dGVicmV2ZXRpbGRlY2lyY3VtZmxleGhvb2thYm92ZWNpcmN1bWZsZXh0aWxkZWJyZXZlZ3JhdmUuY2FzZWJyZXZlYWN1dGUuY2FzZWJyZXZlaG9va2Fib3ZlLmNhc2VicmV2ZXRpbGRlLmNhc2VjaXJjdW1mbGV4YWN1dGUuY2FzZWNpcmN1bWZsZXhob29rYWJvdmUuY2FzZWNpcmN1bWZsZXhncmF2ZS5jYXNlYWN1dGVkYmxjaXJjdW1mbGV4dGlsZGUuY2FzZWdyYXZlZGJsdGlsZGVkYmxkaWVyZXNpc2dyYXZlY29tYi5jYXNlZGllcmVzaXNhY3V0ZWNvbWIuY2FzZWRpZXJlc2lzY2Fyb25jb21iZGllcmVzaXNjYXJvbmNvbWIuY2FzZWRpZXJlc2lzbWFjcm9uY29tYmRpZXJlc2lzbWFjcm9uY29tYi5jYXNlbWFjcm9uYWN1dGVzaW5nbGVtYWNyb25ncmF2ZXNpbmdsZXRpbGRlYWN1dGV0aWxkZWFjdXRlLmNhc2VqY3Jvc3NlZHRhaWxkb3RsZXNzZGllcmVzaXN0aWxkZW1hY3JvbmdyYXZlc2luZ2xlLmNhc2VtYWNyb25hY3V0ZXNpbmdsZS5jYXNlaG9va0hFTFBFUmhvb2thYm92ZUhFTFBFUjJob29rYWJvdmVIRUxQRVJob29rSEVMUEVSLmNhc2Vob29rYWJvdmVIRUxQRVIyLmNhc2Vob29rSEVMUEVScmlnaHRob29rSEVMUEVScmlnaHQuY2FzZWhvb2thYm92ZUhFTFBFUjIuc2Nob29rcmlnaHRIRUxQRVJkb3RtYWNyb25jb21icmluZ2FjdXRlY29tYi5jYXNlcmluZ2FjdXRlY29tYmRvdG1hY3JvbmNvbWIuY2FzZWRlc2NUYWlsY3l0aWxkZW1hY3JvbmNvbWIuY2FzZXRpbGRlbWFjcm9uY29tYmRpZXJlc2lzdGlsZGUuY2FzZWRlc2NUYWlsY3kuY2FzZUtzaWN5SEVMUEVSa3NpY3loZWxwZXIuc2NtYWNyb25sb25nY29tYmN5MDA0LjMwMURpZ2l0aXplZCBkYXRhIGNvcHlyaWdodCAyMDEyLTIwMTgsIFRoZSBNb3ppbGxhIEZvdW5kYXRpb24gYW5kIFRlbGVmb25pY2EgUy5BLiwgYkJveCBUeXBlIEdtYkggYW5kIENhcnJvaXMgQ29ycG9yYXRlIEdiUiwgd2l0aCBSZXNlcnZlZCBGb250IE5hbWUgIkZpcmEiRmlyYSBTYW5zIENvbmRlbnNlZCBCb29rIEl0YWxpYwAAAAAiAKsBhwGIAYkBigGLAY8BjACsAY0BkQGOAZABkwGSAK0BlAGVAZcBlgCuAZgBmQGaAZsBngCvAZ0BnACwAIoBoAGfACMBoQGiAaQBowGmAaUAJAGnAagAsQGrAakBrAGqAa0AJQGuAbABrwCaAbEBswGyAbQBtQG2AbgBuQG3AboAJgCyAbsBvAG+ALMBvQG/AcABwgHBAcMAtAHFAcQAtQHIAccBxgHJAcwBygHLAc0BzgHRAdABzwAnAdQB0wAoAdIB1QHWAdkB1wHYAdoB3AHdAdsAKQHjAeIB3wHeAeAB4QHkACoB5QC2AeYB5wC3AegAuAHpAeoB7QC5AewB6wHuAe8B8QHwAfIAKwH0AfMB9QAsAfYB+AH5AC0B9wH7AfoB/AH9Af8B/gIAAgECAgCMAC4CBAIDAgUALwIHAgYCCAILAgoCCQIMAg0CDwIOAhACEQC6ADACEgC7AhQCEwIVALwCFgIXAhkCGAIbAhoAvQIeAh0CHAIfAL4CIAIhAiQCIgIlAiMCKAIpAioCJgInAi0CLAIuAisCLwIxAI0CMgC/AjACMwCOADECNAI1AjYAnQAyAjkAMwI4AjcCOwI6AjwCPQI+Aj8ANAJAAkEAwAJCAkUCRAJGAkMCRwJIADUCSQJLAkoCTAJOAk8CTQJQAlECUgJTAlQCVQJWADYAwQJXAlgCWQDCAloAwwJcAl0CWwJfAl4AxAJgAmICYQJjAmUCZAJmAmcCaQJqAmsCaAJsAm0CbwA3AnACbgJxADgCcgJ0AnMCdgJ1AncAOQA6AMUCfADGAnkCeAJ7AnoCfgJ9AoECfwA7AoAAxwKCAoMChgKHAoQChQKJAogCigKLAo0CjAKPAo4CkQKSApMCkAKUApUClgKYApcCmQKaApwCmwKdAp4CnwBCAMgCoAKhAqMCogKkAqUCpgDJAqgCpwKpAqoCrgKvAMoCqwKtAqwCsADLArICswKxArQCtgK1AMwCuAK5AM0CtwCQArsCugBDAr0CvAK/Ar4CwALCAsECwwLFAEQCxgLEAM4CyQLIAscCygLNAssCzABFAKcC0ALPAs4C0QLUAtMC0gLVAtcC1gLYAtkC2wLaAt0C3ALeAEYAzwLfAuEC4ADQAuIC5ALjAuUC5gLnANEC6ALpANIC6gLtAusC7ALuAvEC7wLwAvIC9AL1AvMC+AL5AvcC9gL6AvsC/QL8Av4C/wMAAwEARwMCAwQDAwMFAEgDBgMIAwkDBwMKAwwDDQMOAwsDDwMSAxEDEAMTAxYDFQMUAxcASQMaAxkDGAMbAx4DHwMcAx0DIAMhAEoAkQDTAyIDIwDUAyUA1QMkAyYDKQMoANYDJwMqAywDLQMrAy4DLwMwAEsDMQMyAzQDMwM1AzYDNwBMAzgDOQM7AzoDPABNAz4DPQM/A0EDQANCA0MDRQNGA0QDRwNIA0kDSgNLAJIDTQBOA0wDTwNOA1ADUQBPA1QDUwNSA1UDWANWA1cDWQNcA1sDWgNdA14DXwDXAFAA2ANhA2ADYgDZA2QDYwNlA2gDZwNmANoDagNrA2kDbADbA20DbgNwA3EDcgNvA3QDcwN2A3UDdwN4A3sDfAN6A3kDfQN+AJMDfwDcA4ADggOBAJQAUQODA4UDhAOGAKIAUgOIA4cDigBTA4sDiQORA40DjgOMA5ADjwOTA5IDlAOVA5cDlgOYAFQDmgOZAN0DnAObA50DngOfAJUDoAOhA6IAVQOjA6UDpAOnA6YDqAOpA6sDqgOsA7ADrwOtA64DswO0A7IDsQO2A7UAVgDeA7cDuAO5AN8DugDgA74DvAO7A78DvQDhA8MDwQPAA8IDxAPHA8UDxgPIA8kDywPKA8wDzQPOA9ADzwPTA9ID1APRA9YD1QPZA9cD2APbAFcD3QPaA9wAWAPfA+AD4QPeA+ID5APjAFkAWgDiA+UA4wPmA+cD6QPoA+0D7APrA+oAWwPxAOQD8APuA+8D8gP2A/QD9QPzA/cD+gP5A/sD+AP8A/8D/gP9BAAEBQQDBAIEAQQEBAcEBgQIBAsECgQJBAwAbQBuBA0EEQQQBA8EDgQSBBMEFAQVBBYEGAQXBB0EHAQaBBkEGwQeBB8EIQQiBCAEIwQkBCYEJQQnBCgEKQQwBCwEKwQqBC0ELgQvBDIEMQQzBDQENQQ3BDgEOQQ2BDoEOwQ8BD0EPwQ+BEAEQQREBEIEQwRFBEgERgRHBEkETARLBEoETgRNBE8EUARSBFEEVQRUBFYEUwRXBF0EXARbBFgEWQRaBF4EYARiBF8EYQRkBGMEZQRmBGcEaARpBGoEawRtBG8EbgRsBHAEcgR1BHEEcwR0BHYEeAR5BHcEfQR8BH4EegR7BH8EgQSCBIAEhgSFBIMEhASKBIkEiASHBIwEjgSNBIsEjwSQBJIEkQSTBJQElwSWBJgElQSZBJoEnQScBJsEngSfBKAEoQSiBKMEpwSmBKQEpQSqBKkEqASrBKwErwSuBK0EsASxBLIEswS1BLYEuAS0BLcEuQS7BLoEvAS9BL4EvwTBBMMEwATCBMQExQTHBMYEyATJBMsEzATNBMoEzgTPBNAE0gTRBNUE1ATTBNYE2QTYBNoE1wTbBN0E3gTfBNwE4AThBOIE4wTlBOQE5gTnBOgE6QTqBOsE7QTsBO4E8ATyBPEE7wTzBPQE9wT2BPUE+AT5BPoE/AT7BP4E/wUABP0FAQUCBQMFBAUFBQYFBwUKBQkFCAUOBQwFCwUNBREFEAUSBQ8FFQUUBRYFEwUYBRcFGQUaBRsFHAUeBR8FIAUdBSEFIgUjBSQFJwUlBSYFKAUqBSkFKwUsBS0FLgUvBTAFMgUxBTMFNAU3BTYFNQU4BTwFOwU5BToFPQU/BUAFPgVBBUMFRQVCBUQFSAVHBUYFSgVLBUwFSQVNBU8FTgVQBVEFUgVTBVQFVQVWBVcFWAVZBVoFWwVgBV4FXQVcBV8FYwViBWQFYQVlBWYAiwCPBWcFaAVqBWwFawVpBW0FbgVvBXAFcgVzBXQFcQV2BXcFdQV4BXkFegV7BXwFfgV/BYAFfQWBBYIFhAWDBYYFhQWHBYgFiQWKBYsFjAWNBY4FkAWPBZEFkgWTBZQFlQWWBZcFmAWZBZoFmwWdBZ8FnAWgBZ4FoQWlBaQFowWiBaYFpwWoBasFqgWpBa4FrwWtBawFsAWxBbMFtAWyBbUFtwW2BbgFuQW7BboFvQW+Bb8FvAXBBcAFwwXCBcUFxAXHBcYFyAXJBcoFzAXLBc4FzwXSBc0F0QXQBdQF1QXWBdMF1wXYBdoF2wXZBdwF3QXeBeAF3wXiBeQF4wXhBeUF5gXpBegF5wXqBe0F7gXsBesF7wXwBfIF8QXzBfQF9QX3BfYF+QX4BfoF+wX8Bf0F/gYABf8GAQYDBgIGBAYFBgcGBgYIBgkGCgYLBgwGDQYPBg4GEAYRBhMGEgYUBhUGFgYXBhgGGgYZBhwGGwYdBh4GIAYfBiEGIgYjBiQGJQYmBigGKQYqBicGKwYsBi4GLwYtBjMGMgYxBjAGNQY0BjcGNgY5BjgGOwY8Bj4GOgY9BkEGQgZABj8GQwZEBkUGRgZIBkkGRwZMBksGSgZNBlAGTwZRBk4GVgZVBlMGUgZUBlcGWgZZBlgGXwZeBl0GWwZcBmAGYQZiBmMGZAZmBmUGZwZoBmoGbAZrBmkGbQZuBm8GcgZxBnAGdgZ0BnUGcwZ5BngGdwZ6Bn4GfAZ7Bn0GgQaCBoAGfwaDBoUGhgaHBoQGiAaJBosGigaMBo4GjQaQBpEGkgaPBpMGlQaWBpcGlAaZBpoGnAaYBpsGnQaeBp8GoQagBqIGpQakBqMGpgaqBqsGpwapBqgGrAatBq4GrwaxBrAGsgazBrYGtAa1BrcGuAa6BrkGuwa8Br8Gvga9BsAGwQbDBsIGxAbFBsgGxwbJBsYGzQbMBssGygbQBs8G0QbOBtMG0gbUBtUG1wbWBtgG2QbbBtoG3AbfBt4G4AbdBuQG4gbjBuEG5wbmBuUG6AbqBukG7gbrBuwG7QbvBvIG8QbwBvMG9Qb0BvYG+Ab3BvkG+gb8BvsG/gb9BwEHAAcCBv8HBAcDBwYHBQcHBwoHCAcJBwwHCwcNBw4HDwcQBxIHEQcTBxUHFwcWBxQHGAcbBxoHGQcdBxwHIAceByEHHwciByQHJQcmByMHJwcoBykHKgcrBywHLQcvBy4HMAcxBzQHMgczBzUHOQc3BzgHNgc6BzwHPQc+BzsHPwdAB0EHRAdFB0MHQgdGB0kHSAdKB0cHSwdMB04HTQdPB1QHUwdSB1AHUQdWB1UHWAdXB1oHWQdcB1sHXgddB2AHXwdiB2EHZAdjB2UHZgdnB2gHaQdqB2sHbAdtB24HbwdwB3IHcQd0B3MHdgd1B3cHeAd6B3kHewd8B30Hfwd+B4AHgQeDB4IHhAeFB4cHhgeIB4kHigeLB4wHjQeOB48HkQeQB5IHlAeTB5UHmAeXB5YHmQecB50HmgebB54HoQefB6AHogelB6QHowenB6kHqAemB6oHqwesB60HrgevB7EHsAezB7IHtQe0B7cHtge5B7gHuge7B7wHvQe+B78HwAfBB8IHwwfEB8UHxwfGB8kHyAfKB8sHzAfNB88HzgfQB9IH0QfTB9YH1wfUB9UH2AfZB9oH2wfcB90H3gffB+AH4gfhB+MH5gflB+QH5wfoB+kH6gfrB+4H7QfvB+wH8AfzB/IH8Qf0B/UH9wf2B/gH+Qf7B/wH+gf9B/8IAAf+CAEIBQgDCAIIBAgICAkIBwgGCAoICwgMCA8IDQgOCBIIFQgQCBEIEwgUCBYIGAgXCBkIHAgbCBoIHQggCCEIHwgeCCIIIwgkCCUIJggoCCkIJwgqCCwIKwgtCC4ILwgyCDAIMQgzCDUINAg2CDkINwg4CDoIOwg+CD0IPAg/CEAIQwhCCEEIRAhICEcIRghFCEkITQhMCEoITghLCE8IUghQCFEIUwhWCFUIVAhXCFoIWQhbCFgIXAheCF0IYAhfCGEIYwhmCGUIYghkCGkIaAhqCGcIbQhuCGwIawhvCHIIcQhwCHMIdgh1CHQIdwh5CHoIewh4CHwIfQh/CIAIfgiBCIMIggiECIUIhgiICIcIiQiMCIsIigiNCI8IjgiQCJQIkwiRCJIImAiXCJYIlQiaCJsInAiZCJ0InwigCKEIngikCKMIpgiiCKUIqAinCKsIqgisCKkIrQivCK4IsQiwCLMIsgi1CLQItgi3CLoIuwi5CLgIvQi8CMAIvgi/CMEIwgjECMMIxQjGCMgIxwjJCMwIywjKCM0I0AjPCM4I0QjTCNQI0gjVCNYI1wjZCNgI2gjdCNwI3gjbCN8I4gjhCOAI4wjkCOUI5wjmCOgI6wjqCOkI7AjtCO4I7wjxCPAI8gjzCPUI9Aj2CPoI+Aj5CPcI/Qj+CPsI/Aj/CQIJAQkACQMJBAkGCQUJBwkKCQkJCAkLCQ4JDAkNCQ8JEwkSCREJEAkUCRYJFwkZCRUJGAkbCRoJHQkcCR8JIAkeCSEJIwkiCSQJJQkmCScJKwkqCSgJKQksCS8JLgkwCS0JNAkxCTIJMwk1CTcJOAk2CToJOQk8CTsJQAk/CT4JPQlDCUQJQglBCUoJRglFCUcJTAlICUkJTQlLCU4JUAlRCU8JUglUCVUJUwlXCVYJWQlYCVoJWwlcCV4JXQlfCWIJYQljCWAJZwllCWQJZglpCWgJawlqCW0JbAluCW8JcglxCXMJcAl0CXYJdQARABIAEwAUABUAFgAXABgAGQAaCXcJeQl4CXwJfQl7CXoJgQmACX4JfwmECYMJggmFCYgJhwmJCYYJigmNCYwJiwmRCZAJjwmOCZIJlAmTCZUJlwmYCZYJmQmbCZoJnAmdCZ8JngmgCaEJowmlCaQJogmmCacJqQmoCasJqgmsCa0JrgmxCbAJrwmyCbUJtAmzCbYJuAm5CbcJugm+CbwJvQm7CcEJwABjCb8AmwnDCcIAngCjCcQJxQnGCccJyAnJAUABQQFCAUMADwANABsAHAB5AAIAYAAgAHsAcgB0AAsJygAEABAAPQnMCcsJzQnQCc4JzwnRCdMJ0gAJAAoAXABeADwAPgnUCdUJ1gnXCdkJ2AnaCdsADgncAG8AiQE6Cd4J3QnfAEAJ4AniCeEJ5QnkCeMJ5gB1AHYAaQB3AEEACABqAHgAawBsAAMAaAnnCegJ6QnqCesJ7QnsCe4J7wnxCfAJ8gABCfQJ8wn1CfcJ9gn5CfgJ+gn7CfwAYQEsAGcABQn/Cf4J/QBlCgIKAAoBCgMKBQoEAGIKBgBkCgkKBwoICgsKCgoPCg4KEAoMCg0KEwoRChIKFAoVChYKGAoXChoKGQobChwKHgodCh8KIAohCiIKIwolCiQKJgooCikKJwoqCi0KKwosCi4KLwowCjEKMgo0CjUKMwo2CjcKOgo4CjkKOwo9CjwKPgo/CkAADACmAKgAnwAeCkEAHwAdCkQKQgCcCkMAXwCXAD8KRQpGCkcKSgpJCkgKTApNCk4KSwAGAHoKTwpQClEKUgpTClYKVQpUClcKWQpbCloKWApdClwKXwpeCmMKYgphCmAKZApnCmUKZgpoCmoKawppCmwKbgpvCm0KcApxCnQKcwpyCnUKdgp3CnkKeAp6Cn0KfAp7Cn4KgQqACn8KhAqDCoUKggqHCokKiAqGCo0KjAqKCosKjgqPCpAKkQqSCpQKlQqTCpcKmAqWCpkKnQqcCpsKmgqgCp8KoQqeCqIKpgqlCqMKpAqpCqoKqAqnCqwKqwquCq0KsgqvCrAKsQqzCrcKtgq0CrUAIQAHAHMAZgCqAKUAmQChAF0AoAq4AHAAcQq6CrkKuwq+Cr0KvArACsIKvwrBCsMKxgrECsUKyQrICscKygrOCs0KzArLCtIK0ArRCs8K0wrWCtQK1QrXCtkK2ArbCtoK3grfCt0K3ArhCuMK4AriCuUK5ArpCugK5grnCusK6grsCu0K7wruCvAK8QrzCvIK9Qr0CvYK9wr4CvoK+Qr8CvsK/Qr/Cv4LAAsBCwMLAgsECwULBgsHCwkLCAsKCwsLDQsPCw4LDAsQCxELEgsTCxQLFwsWCxULGAsdCxsLHAsZCxoLIQseCyALHwsiCyQLJQsjCyYLKgsnCygLKQB9CywLKwCBAIgAhQB+AIMAggB8Cy0LLwCGAIALLgswAIcAhAB/CzMLMQsyCzQLNQs3CzYLOAs7CzkLPAs6C0ALPws+Cz0LRAtCC0MLQQtHC0ULRgtIC0kLTAtLC0oLTQtPC1ALUQtOC1ILUwtVC1YLVAtYC1cLWQtaC1wLWwteC2ALXwtdC2MLYQtkC2ILZgtoC2cLZQtpC2oLbAtrC20LbwtwC24LcQtyC3QLcwt1C3YLeAt3C3kLegt7C3wLfQt+C38LgAuBC4QLgwuCC4ULiAuHC4YLiwuMC4oLiQuOC40LjwuQC5ILkQuTC5QLlQuWC5gLmQuaC5cL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LYvK91bK90jKAb/4CgP4PvjHFfu6Bjv8xwX3vQaUygX7bQam91YF90cGlMoF+0YGpPdIBfdgBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsGO/zHBdsGsfebBfdrBmf7mwXbBg6soHb3m833fncBv/hcA/iQ+McVOwZq+34F+2wGrPd+BTsG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AAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAABAAAAAAACAAEAAgAAAAIAAQACAAAAAgABAAIAAAACAAEAAgAAAAIAAQACAAAAAgABAAIAAAACAAEAAgAAAAIAAQACAAAAAgABAAIAAAACAAEAAgAAAAIAAQACAAAAAgABAAIAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAEAAMABAAFAAYAAAAFAAcACAAJAAoACwAAAAUABwAIAAkACgALAAAABQAHAAgACQAKAAsAAAAFAAcACAAJAAoACwAAAAUABwAIAAkACgALAAAABQAHAAgACQAKAAsAAAAFAAcACAAJAAoACwAAAAUABwAIAAkACgALAAAABQAHAAgACQAKAAsAAAAFAAcACAAJAAoACwAAAAUABwAIAAkACgALAAAABQAHAAgACQAKAAsADAAaACIAMABaAGIAagByAHoAggCKAJIAmgABAAAAAQCIAAkACAAEAIoAkgCaAKIACQAIABIAnACkAKwAtAC8AMQAzADUANwA5ADsAPQA/AEEAQwBFAEcASQACQAAAAEBAgAJAAAAAQECAAkAAAABAQIACQAAAAEBAgAGAQAAAQECAAYCAAABAyAABgMAAAEG2gAGAQAAAQcgAAYCAAABCEgAAQo4AAUABQAKAAEAAgAAC7IAAQACAAAMTgABAAIAABjuAAEAAgAAIo4AAQACAABRRgABAAIAAGC4AAEAAgAAYZAAAQACAABjFAABAAIAAKugAAEAAgAAwDgAAQACAAD9CgABAAIAARz4AAEAAgABL2gAAQACAAFhpAABAAIAAWIMAAEAAgABgC4AAQACAAGNYgABAAIAAZikAAEAAgABms4AAQACAAGskAABAAIAAbliAAEAAgABvF4AAQAEAAHDMgABAAQAAcrGAAEABAAB7N4AAQAEAAIOkAABCXQJnAABAAwAigAfAAAAxAAAAMoAAADQAAAA1gAAANwAAADiAAAA6AAAAO4AAADK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//MAFAALAAoACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//b/7P/2/+IAAAAA/+wAAP/2/+wAAP/4//v//f/fAAD/4v/s/+z/2AAAAAAAAAAA//YAAP/lAAAAAAAA//YAAAAA/+4AAAAA/+wAAAAAAAD/zv/xAAAAAAAAAAD/9v/sAAD/nAAA//b/9v/sAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAADAAA/9gAAAAAAAAAAAAAAAAAAP/Y/+wAAAAA//b/7AAA//b/7AAAAAAAAAAAAAAAAP/vAAAAAAAA/+wAAAAAAAAAAP/IAAD/2AAA//QAAP/s//b/9//2//YACv/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2wAAAAAAAAAA/+IAAAAA/9gAAP/s//YAAP/bAAD/2P/s/+z/zgAAAAD/9gAA//H/+f/vAAAAAAAA//YAAP/6AAD/6QAA/+L/9gAAAAD/2AAA/+z/9gAA/+v/7AAA//b/sAAA//b/8f/s//EACgAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAP/iAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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//YAAP/1AAAAAP/7AAAAAP/2AAAAAP/3AAD/7AAA//T/7P/xAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAAAAD/+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAD/9gAAAAAAAAAA/+IAAP/s//YAAP/l/+z/4gAAAAD/2AAAAAD/7AAAAAAAAP/iAAAAAAAAAAAAAP/xAAD/6gAA/9j/9v/sAAAAAAAA//cAAP/2//f/7AAAAAAAAAAA/+wAAAAAAAAAAAAUAAAAAAAAAAAAAAAA//EAAP/2//MAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4v/xAAD/9v/s//YAAAAA/+wAAP/x//YAAP/iAAD/4gAAAAD/7P/sAAAAAP/x/+IAAP/iAAD/9gAAAAD/+AAA/+gAAP/2//YAAP/wAAAAAP/4AAD/+P/2AAAAAAAAAAAAAP/4//H/8QAAAAAAAAAAAAD/8AAAAAD/7P/jAAAAAAAAAAAAAAAAAAAAAP/7AAAAAAAAAAAAAAAA//0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2//f/6gAA//EAAAAAAAAAAAAA/+z/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2AAAAAD/9v/xAAAAAAAA/+IAAP/s//EAAP/Y/+wAAAAAAAD/zv/2AAAAAAAA/+L/6v/iAAD/9gAAAAAAAP/rAAD/4QAA/9j/8f/s//YAAAAA/+7/7P/u/+b/7AAAAAAAAAAA/+z/4gAAAAAAAAAAAAD/7gAA//f/7P/x//H/9v/u/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//b/8wAA//kAAAAA/+wAAAAA/+IAAP/sAAD//f/s/+wAAP/p/+z/9gAAAAAAAAAAAAAAAP/0AAAAAAAA//b/9wAA/+YAAAAA/+z/9gAAAAD/4v/tAAAAAAAAAAD/7P/1AAD/4gAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAA//YAAP/9AAAAAAAA//n/9gAAAAAAAAAAAAAAAP/3AAAAAAAAAAAAAAAAAAAAAP/0AAD/7AAA//sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAA/8T/2P/s/+IAAP+9AAD/4gAAAAD/sAAD//YAAAAF/+IAAP/v/+wAAAAAAAAAAAAD/8QAAAAA/9j/zv/zAAAAAP/s/9j/7P/s/+L/7AAAAAD/7P/2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APEA8QB5APIA+gAMAPsA+wANAPwA/AAMAP0A/QBOAP8A/wBuAQABAAAMAQEBGQCqARoBGgB5ARsBHQCqAR4BHgAPAR8BHwARASABIACqASEBIQBUASIBJwBKASkBKQAQASoBMgARATQBNQARATYBPABYAT0BPQBUAUABQAB5AUEBQQCqAUIBQgB5AUQBRAB5AUUBRQALAUYBRgBYAUsBSwBJAUwBTACGAU0BTgCIAU8BUgCGAVMBUwCIAVQBVQCGAVYBVgA1AVcBbwCIAXABcACGAXEBdgCIAXcBdwCPAXgBegBvAYEBgQB5AYUBiwCIAYwBjAAYAY0BjQCIAY8BtgCIAbcBuACBAbkBuQA5AboBugCIAbsBuwCKAbwBvACIAb0BvgCtAb8BvwBhAcABwAApAcEBxQCIAcYByAAbAckByQBjAcoBygAbAcsBzwBMAdAB0QCIAdIB0gA1AdMB2ACIAdkB2QCKAdoB2gAdAdsB2wCKAdwB3AAeAd0B3QCKAd4B3gAdAd8B3wAeAeAB4QCIAeIB4gA3AeoB6gCPAesB7AApAe8B7wCGAfAB9gB1AfoB+gB1AfwB/AB1Af4B/gB1AgACAACPAgICAgB1AgMCBABmAgUCBgB1AgcCBwBnAggCCgBmAg4CDgCGAhACEABTAhMCEwAhAhQCFQCFAh8CHwCFAiECIQCFAiMCJgCGAicCKACPAikCKgCGAisCKwAoAiwCMwCGAjQCNACtAjUCOACGAjkCWwCIAlwCXACKAl0CYwCIAmQCZACGAmYCZgCGAmcCZwCIAmoCbQCIAm4CbwCGAnACcAA1AnECdQCGAnYCdgApAncCdwCGAngCeABqAnkCegCGAnsCewBqAnwCfACGAn0CfQBqAn4CfwBrAoACgAAoAoEChgBrAocChwBmAogCiQBrAooCigBMAosCmACiApkCmgCGApsCmwCYApwCngCiAqACtwCPArkCuQCIAr0CvQCGAsMCwwCIAsQCxACPAsUCxQCQAsYCyACPAskCyQA1AsoCygCPAssCywA1AswCzABsAs0C0gCkAtMC0wBsAtQC1ACGAtUC1QBTAtYC4AA1AuEC4QBsAuIC6wBtAuwC7QBNAu4C7gBvAu8C7wCIAvAC8AB1AvEC8QCIAvIC8gCPAvMC8wCIAvQC9ACGAvUC9QCIAvYC9gBrAvcC9wBtAvkDDgBMAw8DDwCJAxEDEQCRAxQDFACOAxUDFQBdAxsDGwCJAx4DHgCJAx8DHwBFAyADNwB7AzgDOACJAzkDPgB7Az8DQQBZA0UDRQCOA0gDTwCJA1YDVgCOA1kDWQB/A3IDcgChA3UDdgCJA3cDeAB0A4ADhwCJA4gDiACZA4kDiQCJA4oDigCdA6MDowCDA6UDpQCDA7QDtAB7A7cDtwCJA7kDuQCJA7sDuwCJA7wDvACMA70DvQCoA78DwQCuA9AD0QCJA9ID0gB5A9MD8ACJA/ED8QCnA/ID+ACJA/wD/ACOA/4D/wCJBAkEEACMBBIEGgCjBBsEGwCOBBwEHACjBCAEIACjBD0EPQBzBD8EPwB7BEAERQClBEcERwCRBEgEUgBFBFMEWQCoBF0EXQBdBGEEYQBvBGIEYgCIBHMEcwBUBHkEeQA7BH0EfQAQBH4EfgAVBIUEhQBXBIgEiAB5BIsEiwB5BIwEjAAMBI0EjgAOBI8EjwB5BJAEkAAQBJEEkQBJBJcElwAMBJkEmQBXBJsEmwALBJwEnAB5BJ0EnQAVBKAEoAAFBKEEoQAMBKMEowB3BKQEpAAMBKUEpQB5BKYEpgASBKgEqABUBKoEqgAUBKwErAAVBK0ErQAKBK4ErgB5BK8EsAAPBLEEsQB5BLQEtAAQBLUEtQAVBLkEuQAMBL4EvwB5BMAEwAAMBMEEwQAQBMIEwgAMBMMExABJBMcEyAACBMoEygAQBMwEzABXBM8EzwBJBNEE0gBUBNME0wBVBNUE1gB5BNcE1wAQBNgE2QAVBNwE3gB5BOAE4gAOBOME4wBJBOcE6AAQBOkE6gB4BOsE7AAHBO0E7QBXBO8E7wB5BPAE8AAMBPEE8QCpBPIE8wBXBPUE9QB3BPYE9gB5BPcE9wBKBPkE+QBXBP4E/gA7BP8E/wBWBQAFAABXBQEFAgBUBQMFAwB5BQQFBABUBQcFBwBUBQgFCABWBQkFCgBUBQ0FDQAQBQ4FEQBUBRMFEwCIBRQFFABbBRUFFQCIBRYFFwCYBRgFGACGBRkFHACIBR0FHQBTBR4FHgA5BR8FIgCPBSMFJACGBSUFJQBfBSYFJgCABScFJwCGBSgFKACIBSkFKQCGBSsFKwCIBSwFLACGBS0FLgA1BS8FLwCIBTAFMABTBTEFMQA9BTIFNQCPBTYFNgCGBTcFNwAvBTgFOACGBTkFOQBfBToFOgCGBTsFOwBrBTwFPACIBT0FPQA5BT8FPwB1BUAFQABmBUIFQgCGBUMFQwBlBUcFRwCGBUgFSABsBUkFSQCGBUoFSgA4BUsFSwCGBU0FTQCPBU4FTgCIBU8FUAA1BVEFUQCIBVIFUgCYBVMFUwCGBVQFVABTBVUFVQA5BVYFVwCGBVkFWQAvBVoFXQCGBV4FXwCIBWAFYACGBWEFYQBTBWIFYgAvBWMFZAA9BWcFaAAXBWoFagBTBWsFawCGBWwFbABfBW0FbgCGBW8FbwA9BXAFcACABXEFcgCIBXMFcwBvBXQFdgCIBXcFdwBTBXgFeAA5BXkFeQAbBXoFewCPBXwFfgCIBYAFggA1BYMFgwA9BYQFhACYBYUFhgCGBYcFiABTBYkFigCIBYsFjAAfBY0FjQBfBY4FjgCGBY8FjwCIBZAFkAAvBZEFkQCBBZIFkwBfBZQFlACGBZUFlQBlBZYFlgCIBZcFlwCkBZgFmACGBZkFmQBfBZoFnQCGBZ4FngBfBZ8FnwCGBaAFoABfBaIFogCtBaMFowCIBaQFpABTBacFqABsBaoFqgCYBasFqwBTBa4FrwCGBbAFsAAvBbEFsQCIBbIFsgA9BbMFswBsBbQFtABTBbYFtgBsBbcFuACGBbkFuQBTBboFugBsBbsFuwCGBbwFvgBsBb8FvwCGBcAFwABbBcEFwQCYBcIFwgCIBcMFxQCGBcoFygCRBcwFzAB7BdYF1gCRBdcF1wB0Bd4F3gBgBd8F3wCuBeEF4QCJBeQF5ACJBeUF5QCjBeYF5wBSBegF6ACJBekF6QCRBeoF6gBdBfAF8ACjBfIF8gBgBfQF9ACMBfUF9QCJBfYF9gB0BfkF+QCDBfoF+gCjBfwF/ACVBf0F/QCjBf4F/gCJBf8F/wCcBgEGAQB7BgMGAwCSBgUGBQB0BgYGBgBpBgcGBwCJBggGCQBzBgoGCgCJBg0GDQCRBg4GDgB0BhIGEgCjBhcGGACJBhkGGQCjBhoGGgCRBhsGHABdBiIGIgBgBiMGJACXBiYGJgCRBigGKABgBisGKwBdBiwGLACuBi0GLgB7Bi8GLwBZBjEGMgCJBjMGMwCRBjQGNQB0BjgGOgCJBjwGPgBSBj8GPwBdBkMGRACRBkUGRgBxBkcGSACfBkkGSQBgBksGSwCJBkwGTACjBk4GTwBgBlEGUQCVBlIGUgCJBlMGUwClBlUGVQBgBlkGWgB7BlsGWwCJBlwGXQB7Bl8GZAB7BmYGZgCGBmcGZwAFBmgGaABUBmsGawBUBm0GbQBYBm8GbwB5BnIGcgBUBnUGdQADBnYGdgB5BnoGegAMBnsGewARBnwGfAB5Bn0GfQAQBn4GfgAKBn8GfwB6BogGiAARBooGigABBowGjQB5Bo8GjwAIBpAGkABUBpIGlAARBpUGlQB5BpcGlwB5BpkGmQAJBpoGmgB5BpsGmwAJBqYGqABUBucG6AARBvwG/ACIBv4G/gA1Bv8G/wCIBwAHAACBBwEHAQCUBwIHAgCGBwMHAwCbBwQHBACPBwUHBQCGBwYHBgAhBwcHBwCGBwgHCAA1BwkHCgCIBwsHCwAmBwwHDACLBw0HDgCIBw8HDwAuBxAHEACPBxEHEQCIBxIHEgAYBxMHEwCPBxQHFACIBxYHFwB1BxgHGgCPBxsHHQCIBx4HHgCBBx8HIACGByEHIQAuByIHIgCGByMHIwCKByQHJACIByUHJQCKByYHJwCIBygHKACLBykHKQAgByoHKgArBysHKwCGBywHLABbBy4HLgCIBy8HLwCaBzAHMACGBzEHMQCLBzIHMgCIBzMHMwBmBzQHNACIBzYHNgCABzcHNwCLBzgHUACIB1EHWACBB1kHbwCGB3AHcQCPB3IHeAB1B3oHfwB1B4AHhwCIB4gHiQCLB4oHmQCPB5oHsACIB7IHsgBbB7MHswCUB7QHtACIB7UHtQB7B7gHuAB7B7oHugCoB7wHvACJB78HvwB7B8AHwACuB8MHwwCJB8YHxwChB8gHyACjB8kHyQBFB8oHygCJB8sHywCRB8wHzABpB80HzQCWB9EH0wBFB9QH1ACJB9UH1QCWB9YH1gB7B9oH2gBaB9wH3ACnB90H3QCJB94H3gCnB98H4ACJB+IH4gCEB+MH4wB7B+UH5QB5B+YH5gCJB+cH6QBFB+oH6gCJB+sH6wCaB+0H7QCLB+4H7gCJB+8H7wCDB/AH8ACJB/IH8gCuB/QIDAB7CDwIQwCJCEYIVQBFCFYIbACWCG4IbgCICHEIcQCTCHIIcgAkCHMIcwAyCHQIdABRCHUIdQBwCHYIdgBOCHcIdwBECHgIeAAsCHkIeQA/CHoIegAiCHsIewBHCHwIfAAlCH0IfQAzCH4IfgAwCH8IfwBkCIAIgAAcCIEIgQBECIIIggAtCIMIgwA/CIQIhAAjCIUIhQBHCJwInACTCJ0IpgBICKcIsAA6CLEIxABGCMYI1QBGCNYI1wBoCNgI2QBeCNoI2gBoCNsI2wBiCN0I3QAnCN4I3gCgCN8I3wBBCOAI4AA8COEI4QBLCOMI4wCHCOQI5ABQCOUI5QAWCOYI5gAtCOcI5wA0COoI6gCHCO0I7gBICPAI8ACvCPII8gCrCPQI9ABcCPUI9gBGCPgI+ACvCPoI+gCrCPwI/ABcCP0JBABBCQUJBQA0CQYJCgBBCQ0JDgBoCQ8JEgAoCRMJEwBACRQJFABPCRUJFQBACRYJFgBPCRcJGAAoCRkJGQBACRoJGgBPCRsJGwBACRwJHABPCR0JHgA6CR8JIABGCSEJIQBBCSIJIgBeCTAJMACICTEJMQB5CTMJMwALCTQJNACICTUJNQANCTYJNgAaCTcJNwBMCTgJOACCCTkJOQBCCTsJOwByCTwJPAAqCT4JPgCNCT8JPwCmCUAJQAA2CUIJQgCICUMJQwB5CUUJRQALCUYJRgCICUcJRwAZCUgJSAAaCUkJSQCCCUoJSgBCCUwJTAByCU0JTQAqCU8JTwCNCVAJUACmCVEJUQA2CXQJdABBCXYJdgBBCXcJdwBICXgJeABGCXkJeQBICXoJegBGCXsJfABBCX4JfgBBCYcJiABBCY0JjQB6CY4JjgBUCZEJkQCwCZIJkgCGCZQJlQBDCZYJlgBICZcJlwBGCZoJmwBBCZ0JnQBBCaYJpwBBCawJrACwCa4JrwBDCf8J/wB+CgAKAAB8CgMKAwCsCgQKBABLCgUKBQAxCgYKBgA+CgoKCgCeCgwKDAB5ChcKFwA+ChgKGACeChoKGgB9CiMKIwBeCiQKJAAoCiUKJgBBCi8KMQA6CjIKNABGCjYKNgA5CjcKNwAoCjgKOABoCjsKOwBBCjwKPABeCj4KPgAoCkIKQgAoCnUKdQBBCwALAQARCwILAwA1CwQLBQBFCy8LLwBnAAENvgAEAAAA3AHCAdAB3gHsAfoCCAIWAjwCSgJYAmICfAKCApgCngK4AtIC2ALeAuQC6gLwAvYC/AMCAwgDDgMUA5IDoAOmA6wDsgO4A74DxAPKA9AD1gPcA+ID6APuA/QD+gQABAYEDAQSBBgEHgQkBCoEMAQ2BDwEQgRIBE4EVARaBGAEagR0BH4EiASSBJwEpgTIBM4E1ATaBOAE5gTsBPIE+AT+BQQFCgUQBRYFHAUiBSgFLgU0BToFQAVGBUwFUgVYBV4FZAVqBXAFdgV8BYIFiAWOBZQFmgWgBaYFrAWyBbgFvgXEBcoF0AXWBdwF4gX8BgIGHAYmBywHYgd8B4IHiAeOB5QHmgegB6YHrAeyB7gH0gfsCGoIhAiKCJAIlgicCKIIqAiuCLgIvgjICNII2AjeCOgI8gj8CQ4JMAlSCVwJdgmACYYJjAmSCZgJngmkCaoJvAneCfAKAgoMClIKkArSCxgLVguYC94L6AvyC/wMBgwQDBoMJAwuDHQMfgyIDJIMnAymDLgMygzUDNoM6AzuDPQM+g0IDQ4NGA0iDSwNNg1ADUoNVA1eDWgNcg18DYYNjA2eDagNsg24AAMG/v+6Bwj/ugj9/8QAAwb+/7oHCP+6CP3/xAADBv7/ugcI/7oI/f/EAAMG/v+6Bwj/ugj9/8QAAwb+/7oHCP+6CP3/xAADBv7/ugcI/7oI/f/EAAkG/v+6Bwj/ugjwAG4I8gBoCPQAbgj4AG4I+gBoCPwAbgj9/8QAAwb+/7oHCP+6CP3/xAADBv7/ugcI/7oI/f/EAAIIgv/ECOb/xAAGCPAAbgjyAGgI9ABuCPgAbgj6AGgI/ABuAAEBv//5AAUBv//KCPIAAAj0AAAI+gAACPwAAAABAZH/8QAGCPAAAwjyAAwI9AAMCPgAAwj6AAwI/AAMAAYI8AA2CPIAKQj0ACkI+AA2CPoAKQj8ACkAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAAQUZ/8sAHwjf/+YI/f/mCP7/5gj//+YJAP/mCQH/5gkC/+YJA//mCQT/5gkG/+YJB//mCQj/5gkJ/+YJCv/mCSH/5gl0/+YJdv/mCXv/5gl8/+YJfv/mCYf/5gmI/+YJmv/mCZv/5gmd/+YJpv/mCaf/5gol/+YKJv/mCjv/5gp1/+YAAwb+/7oHCP+6CP3/xAABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAsX/9gABAsX/9gABAsX/9gABAsX/9gABAsX/9gABAsX/9gABAsX/7gABAsX/9gABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAb//+QABAZH//gABAZH//gABAZH//gABAZH//gABAb//+QABAb//+QABAb//+QABAb//+QACAcgAAAUZAA8AAgHIAAAFGQAPAAIByAAABRkADwACAcgAAAUZAA8AAgHIAAAFGQAPAAIByAAABRkADwACAcgAAAUZAA8ACAjnAEsI8AA9CPIAMAj0ADAI+AA9CPoAMAj8ADAJBQBLAAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBUAAHAAEBUAAHAAEBUAAHAAEBUAAHAAEBUAAHAAEBUAAHAAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAEBv//5AAYI8AAHCPIACwj0AAsI+AAHCPoACwj8AAsAAQG///kABgjwAAoI8gAKCPQACgj4AAoI+gAKCPwACgACCPQAIgj8ACIAQQDpAAcCKwAHAoAABwixAAkIsgAJCLMACQi0AAkItQAJCLYACQi3AAkIuAAJCLkACQi6AAkIuwAJCLwACQi9AAkIvgAJCL8ACQjAAAkIwQAJCMIACQjDAAkIxAAJCMYACQjHAAkIyAAJCMkACQjKAAkIywAJCMwACQjNAAkIzgAJCM8ACQjQAAkI0QAJCNIACQjTAAkI1AAJCNUACQjwABMI8gAVCPQAFQj1AAkI9gAJCPgAEwj6ABUI/AAVCQ8ABwkQAAcJEQAHCRIABwkXAAcJGAAHCR8ACQkgAAkJeAAJCXoACQmXAAkKJAAHCjIACQozAAkKNAAJCjcABwo+AAcKQgAHAA0A6QAAAisAAAKAAAAJDwAACRAAAAkRAAAJEgAACRcAAAkYAAAKJAAACjcAAAo+AAAKQgAAAAYI8AAKCPIACwj0AAsI+AAKCPoACwj8AAsAAQFQ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AAD/9AAAAAAAAAAA//YAAAAA//MAAAAA//sAAAAAAAAAAAAA//b/2P/YAAAAAP/zAAAAAP/z/+wAAAAA/+L/5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAIAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAAAAAAAAAAAAAAAAAAD/0QAA/8oAAP/oAAD/xP/K//j/+AAA/+L/0QAA/9j/7AAA/8T/vQAAAAD/xP/lAAAAAAADAAAAAAAD/87/6QAK/9j/2//LAAAAAP/v/+//yv/YAAMAAAAA/9H/sP/E//H/5P/iAAAAAP/R/9EAAAAA/9gAAAAA/8sABwANAAAAAP/zAAAAAP/5AAD/+AAAAAAAAAAAAAD/2wAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAAAAP/5AAD/4v/2//gAAAAAAAD/9v/sAAAAAAAAAAD/9gAA/98AAP/v/+8AAAAA/8r/3wAAAAAAAAAAAAAAAAAAAAD/+QAA/+gAAP/v//MAAAAAAAAAAP/z/+oAAAAA//kAAAAA//n/6f/vAAr/8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAABwAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAcAAAAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAA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//kAAP/5/+cAAP/sAAAAAAAA/+wAAwAH/+wAAAAAAAAAAAAAAAAAAP/s/+wAAP/2AAD/6QAAAAD/+wAA//f/8AAAAAAAAP/sAAAAAP/x//YAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAcAAAAAAAD/9gAA//j/+QAAAAAAAAAA//n/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v/9AAAAAAAA//b/9gAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7//s/+IAAAAAAAD/6v/pAAAAAP/4/+z/7P/i//EAAAAAAAD/4gAAAAAAAP/2AAAAAAAAAAAAAAAA/+IAAAAA//H/9gAAAAAAAP/vAAD/5f/pAAAAAAAA/+z/9v/p/+7/4v/xAAD/7P/0//H/9gAA/+cAAAAA/+z/9v/7//b/9v/9/+L/9v/0AAD/9v/5AAD/8f/xAAD/9gAA//MAAAAA/+z/4v/5AAAAAAAA/+wAAP/2AAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAP/2//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAA//sAAAAAAAAAAAAAAAD/6AAAAAD/9gAAAAD/8QAAAAAAAAAAAAD/9gAAAAAAAAAAAAD/9wAA/+AAAAAA//cAAAAAAAAAAP/4AAD/8P/s//YAAP/sAAAAAP/i/+IAAAAAAAAAAAAAAAD/4v/uAAAAAP/s/84AAP/s/+z/7P/j/9gAAP/2AAAAAAAK/9EAAP/2/+z/y//L/9EAAAAAAAD/6v/2AAAAAAAAAAAAAAAA//0AAAAAAAAAAAAAAAAAAP/6AAAAAP/pAAAAAAAAAAD/9gAAAAD/9AAAAAD/0gAAAAAAAAAAAAD/8QAAAAAAAP/p/+0AAAAA/98AAAAA/+b/7AAAAAAAAP/z//gAAAAA/+wAAP/zAAAAAP/Y/+4AAAAAAAAAAAAAAAD/7P/3AAD/6P/u/+z/5wAA/+4AAAAA/+z/5P/2AAD/8gAAAAD/9gAAAAAAAP/s//EAAAAAAAAAAAAAAAAAAAAA//oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//P/9v/i/+wAAP/0/8v/2AAAAAD/2P/p/8T/2P/dAAAAAP/i/84AAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAAAAP/i/+kAAP/7AAD/7gAA/9H/4gAAAAAAAP/R/+L/7//Y/+L/6QAA//P/9P/E/+4AAP/pAAAAAP/2//YAAP/7AAD/+f/v//P/8f/x//P/7P/s/+7/7AAA//3/8f/2AAAAAP/i/+z//f/4//n/9v/i//b/7P/z//3/+wAA//n/4v/x//kAAAAAAAAAAP/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/5AAAAAAAAAAAAAAAA//0AAAAAAAAAAAAAAAAAAAAA//YAAAAF//EAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAP/dAAAAAAAA/+wAAAAAAAAAAAAAAAD/4gAAAAP/4gAAAAf/zv/k/8QAAP/YAAAAAAAD/8T/zv/EAAD/0v/O/+L/7P/s/9j/7v/Y/8QAAAAAAAAACv/YAAAAAAAA/87/zv/EAAAAAP/i/+wAAAAAAAD/zv/O/7cAAP/z/+UAAP/sAAAAAAAA/9r/7gAA/9H/zv/s/63/zv/S/9j/zv/L/9//7AAA/8QAAP/EAAD/2P/z/+n/zv/OAAD/2P/n//b/y//m/+z/zv/Y/87/4v/i/87/7P/OAAAAAP/Y/9j/0gAAAAD/2P/sAAD/3v/OAAD/4v/iAAD/9//T/+X/4v/J/84AAP/O/9j/zv/Y/9wAAP/x/9gAAAAA/84AAP/i/9j/4v/Y//b/4gAA/9z/vf/I/9YAAP/OAAD/xP/X/87/4v/4/8T/zgAAAAAAAAAAAAAAAAAKAAAAAAAAAAD/0QAAAAAAAP/Y//EAAAAAAAD/6f/RAAD/2AAAAAAAAP/YAAAAAAAAAAAAAAAAAAAAAAAAAAD/5v/w/+L/4gAAAAAAAAAA//YAAP/fAAD/sAAAAAD/3//2AAD/zv/uAAAAAAAAAAD/4v/i//H/8//sAAAAAP/E/+z/zv/n/+//2P/b/+z/4v/z/94AAP/d/87/3//2//b/xP/r/87/7P+c/+X/9v/xAAD/7AAAAAAAAAAAAAAAAAAA/9j/2AAA/+7/8QAAAAD/8//a/+wAAAAAAAAAAP/x/+wAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAA//MAAAAA/+IAAP/sAAAAAAAAAAAAAP/uAAAAAAAAAAAAAAAAAAD/9gAAAAD/7AAAAAAAAAAAAAD/7P/VAAD/9gAA/+wAAAAA//b/7P/xAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAP/4//MAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAP/o/+IAAP/iAAAAAAAAAAAAAP/2//j/9AAAAAAAAAAAAAAAAP/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v/zAAAAAAAA//j/+QAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAA//YAAAAAAAD/9v/2//b/7P/2AAAAAAAAAAAAAAAAAAAAAP/xAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7P/2/+wAAP/9/+//8f/5AAAAAP/9AAD/9gAAAAAAAAAA/+QAAAAAAAD/4v/5AAAAAAAAAAAAAP/7AAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAA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AAgA+wD7AAkA/AD8AAgA/QD9AE4A/wD/AAoBAAEAAAgBAQEZAAsBGgEaAAYBGwEdAAsBHgEeAA0BHwEfAA4BIAEgAAsBIQEhAD8BIgEnAEcBKQEpAEgBKgEyAA4BNAE1AA4BNgE8AEoBPQE9AD8BQAFAAAYBQQFBAAsBQgFCAAYBRAFEAAYBRQFFAEUBRgFGAEoBSwFLAAIBTAFMAIMBTQFOAIQBTwFSAIMBUwFTAIQBVAFVAIMBVgFWAGIBVwFvAIQBcAFwAIMBcQF2AIQBdwF3AI4BeAF6AGgBewF/AHkBgQGBAAYBgwGEAHkBhQGLAIQBjAGMAE0BjQGNAIQBjgGOAJwBjwG2AIQBtwG4AG8BuQG5AFoBugG6AIQBuwG7AKcBvAG8AIQBvQG+AJ4BvwG/AB0BwAHAADABwQHFAIQBxgHIAB8ByQHJAJ8BygHKAB8BywHPAHIB0AHRAIQB0gHSAGIB0wHYAIQB2QHZAKcB2gHaACIB2wHbAKcB3AHcAHYB3QHdAKcB3gHeACIB3wHfAHYB4AHhAIQB4gHiAFgB4wHpAHkB6gHqAI4B6wHsADAB7QHtAHkB7gHuAKAB7wHvAIMB8AH2AJkB9wH4AKAB+gH6AJkB+wH7AKAB/AH8AJkB/QH9AKAB/gH+AJkB/wH/AKACAAIAAI4CAQIBAKACAgICAJkCAwIEAH0CBQIGAJkCBwIHAKECCAIKAH0CCwINAHkCDgIOAIMCDwIPAHkCEAIQAFUCEQIRAIACEgISAHkCEwITAIECFAIVAIICFgIYAHkCGQIZAIACGgIbAHkCHAIcAIACHQIeAHkCHwIfAIICIAIgAIACIQIhAIICIgIiAIACIwImAIMCJwIoAI4CKQIqAIMCKwIrAC8CLAIzAIMCNAI0AJ4CNQI4AIMCOQJbAIQCXAJcAKcCXQJjAIQCZAJkAIMCZgJmAIMCZwJnAIQCaAJpAHkCagJtAIQCbgJvAIMCcAJwAGICcQJ1AIMCdgJ2ADACdwJ3AIMCeAJ4AE8CeQJ6AIMCewJ7AE8CfAJ8AIMCfQJ9AE8CfgJ/AIkCgAKAAC8CgQKGAIkChwKHAH0CiAKJAIkCigKKAHICiwKYAIsCmQKaAIMCmwKbAHUCnAKeAIsCoAK3AI4CuAK4AHkCuQK5AIQCvQK9AIMCwwLDAIQCxALEAI4CxQLFAJECxgLIAI4CyQLJAGICygLKAI4CywLLAGICzALMAFQCzQLSAJMC0wLTAFQC1ALUAIMC1QLVAFUC1gLgAGIC4QLhAFQC4gLrAJQC7ALtAHMC7gLuAGgC7wLvAIQC8ALwAJkC8QLxAIQC8gLyAI4C8wLzAIQC9AL0AIMC9QL1AIQC9gL2AIkC9wL3AJQC+QMOAHIDDwMPAIUDEAMQAHoDEQMRAFYDEgMTAHoDFAMUADYDFQMVABgDFgMWAHoDFwMXAJADGQMaAHoDGwMbAIUDHQMdAHoDHgMeAIUDHwMfADoDIAM3AEwDOAM4AIUDOQM+AEwDPwNBAJsDQgNEAHoDRQNFADYDRgNHAHoDSANPAIUDUANVAHoDVgNWADYDVwNYAHoDWQNZAG0DWgNvAHoDcQNxAHEDcgNyAKUDcwN0AHoDdQN2AIUDdwN4ADwDegN6AHoDfQN/AHoDgAOHAIUDiAOIACMDiQOJAIUDigOKADsDiwORAHoDmQOaAHoDnAOcAHoDngOeAHoDoAOhAHoDowOjAH4DpQOlAH4DpgOrAHoDrQOzAHoDtAO0AEwDtQO1AHoDtwO3AIUDuAO4AJADuQO5AIUDugO6AHoDuwO7AIUDvAO8AFADvQO9AJoDvgO+AHoDvwPBAKIDwgPCAJADwwPPAHoD0APRAIUD0gPSAAYD0wPwAIUD8QPxAKQD8gP4AIUD+QP7AHoD/AP8ADYD/QP9AHoD/gP/AIUEAAQIAHoECQQQAFAEEQQRAHoEEgQaADMEGwQbADYEHAQcADMEHQQfAHoEIAQgADMEIQQ8AJAEPQQ9AJIEPgQ+AJAEPwQ/AEwEQARFAKoERgRGAHoERwRHAFYESARSADoEUwRZAJoEWgRcAHoEXQRdABgEXgReAHoEYQRhAGgEYgRiAIQEcwRzAD8EeQR5AJgEfQR9AEgEfgR+AEsEhQSFAFwEhgSGAGcEiASIAAYEiwSLAAYEjASMAAgEjQSOAAwEjwSPAAYEkASQAEgEkQSRAAIElwSXAAgEmQSZAFwEmwSbAEUEnAScAAYEnQSdAEsEoASgAEIEoQShAAgEowSjAF0EpASkAAgEpQSlAAYEpgSmAA8EqASoAD8EqgSqAEkErASsAEsErQStAAcErgSuAAYErwSwAA0EsQSxAAYEtAS0AEgEtQS1AEsEuQS5AAgEvgS/AAYEwATAAAgEwQTBAEgEwgTCAAgEwwTEAAIExwTIAAMEygTKAEgEzATMAFwEzwTPAAIE0ATQAGcE0QTSAD8E0wTTAEAE1QTWAAYE1wTXAEgE2ATZAEsE3ATeAAYE4ATiAAwE4wTjAAIE5wToAEgE6QTqAGUE6wTsAAUE7QTtAFwE7wTvAAYE8ATwAAgE8QTxAGQE8gTzAFwE9QT1AF0E9gT2AAYE9wT3AEcE+QT5AFwE/gT+AJgE/wT/AFsFAAUAAFwFAQUCAD8FAwUDAAYFBAUEAD8FBwUHAD8FCAUIAFsFCQUKAD8FDQUNAEgFDgURAD8FEwUTAIQFFAUUAGsFFQUVAIQFFgUXAHUFGAUYAIMFGQUcAIQFHQUdAFUFHgUeAFoFHwUiAI4FIwUkAIMFJQUlAF8FJgUmAJ0FJwUnAIMFKAUoAIQFKQUpAIMFKwUrAIQFLAUsAIMFLQUuAGIFLwUvAIQFMAUwAFUFMQUxAGwFMgU1AI4FNgU2AIMFNwU3ADUFOAU4AIMFOQU5AF8FOgU6AIMFOwU7AIkFPAU8AIQFPQU9AFoFPgU+AKAFPwU/AJkFQAVAAH0FQQVBAHkFQgVCAIMFQwVDAHsFRAVEAHkFRgVGAHkFRwVHAIMFSAVIAFQFSQVJAIMFSgVKAFkFSwVLAIMFTQVNAI4FTgVOAIQFTwVQAGIFUQVRAIQFUgVSAHUFUwVTAIMFVAVUAFUFVQVVAFoFVgVXAIMFWAVYAHkFWQVZADUFWgVdAIMFXgVfAIQFYAVgAIMFYQVhAFUFYgViADUFYwVkAGwFZQVmAHkFZwVoABkFaQVpAHkFagVqAFUFawVrAIMFbAVsAF8FbQVuAIMFbwVvAGwFcAVwAJ0FcQVyAIQFcwVzAGgFdAV2AIQFdwV3AFUFeAV4AFoFeQV5AB8FegV7AI4FfAV+AIQFgAWCAGIFgwWDAGwFhAWEAHUFhQWGAIMFhwWIAFUFiQWKAIQFiwWMACUFjQWNAF8FjgWOAIMFjwWPAIQFkAWQADUFkQWRAG8FkgWTAF8FlAWUAIMFlQWVAHsFlgWWAIQFlwWXAJMFmAWYAIMFmQWZAF8FmgWdAIMFngWeAF8FnwWfAIMFoAWgAF8FoQWhAHkFogWiAJ4FowWjAIQFpAWkAFUFpQWmAHkFpwWoAFQFqQWpAHkFqgWqAHUFqwWrAFUFrAWtAHkFrgWvAIMFsAWwADUFsQWxAIQFsgWyAGwFswWzAFQFtAW0AFUFtQW1AHkFtgW2AFQFtwW4AIMFuQW5AFUFugW6AFQFuwW7AIMFvAW+AFQFvwW/AIMFwAXAAGsFwQXBAHUFwgXCAIQFwwXFAIMFxgXJAHoFygXKAFYFywXLAHoFzAXMAEwFzQXRAHoF0wXVAHoF1gXWAFYF1wXXADwF2AXdAHoF3gXeABwF3wXfAKIF4AXgAHoF4QXhAIUF4gXjAHoF5AXkAIUF5QXlADMF5gXnAI8F6AXoAIUF6QXpAFYF6gXqABgF6wXvAHoF8AXwADMF8QXxAHoF8gXyABwF8wXzAHoF9AX0AFAF9QX1AIUF9gX2ADwF9wX3AHoF+QX5AH4F+gX6ADMF+wX7AHoF/AX8AHwF/QX9ADMF/gX+AIUF/wX/AFcGAAYAAHoGAQYBAEwGAgYCAHoGAwYDAKwGBAYEAHoGBQYFADwGBgYGAC0GBwYHAIUGCAYJAJIGCgYKAIUGCwYMAHoGDQYNAFYGDgYOADwGDwYRAHoGEgYSADMGEwYUAHoGFgYWAHoGFwYYAIUGGQYZADMGGgYaAFYGGwYcABgGHQYfAHoGIgYiABwGIwYkABoGJQYlAHoGJgYmAFYGJwYnAHoGKAYoABwGKQYqAHoGKwYrABgGLAYsAKIGLQYuAEwGLwYvAJsGMAYwAHoGMQYyAIUGMwYzAFYGNAY1ADwGNgY3AHoGOAY6AIUGPAY+AI8GPwY/ABgGQAZCAHoGQwZEAFYGRQZGAKsGSQZJABwGSgZKAHoGSwZLAIUGTAZMADMGTgZPABwGUAZQAHoGUQZRAHwGUgZSAIUGUwZTAKoGVAZUAHoGVQZVABwGVgZYAHoGWQZaAEwGWwZbAIUGXAZdAEwGXwZkAEwGZgZmAIMGZwZnAEIGaAZoAD8GawZrAD8GbQZtAEoGbwZvAAYGcgZyAD8GcwZzAGcGdQZ1AEEGdgZ2AAYGeQZ5AEYGegZ6AAgGewZ7AA4GfAZ8AAYGfQZ9AEgGfgZ+AAcGfwZ/AF4GiAaIAA4GigaKAAEGjAaNAAYGjwaPAGYGkAaQAD8GkgaUAA4GlQaVAAYGlwaXAAYGmAaYAGcGmQaZAEQGmgaaAAYGmwabAEQGpgaoAD8G5wboAA4G/Ab8AIQG/Qb9AHkG/gb+AGIG/wb/AIQHAAcAAG8HAQcBAJcHAgcCAIMHAwcDAIwHBAcEAI4HBQcFAIMHBgcGAIEHBwcHAIMHCAcIAGIHCQcKAIQHCwcLACwHDAcMAIgHDQcOAIQHDwcPADQHEAcQAI4HEQcRAIQHEgcSAE0HEwcTAI4HFAcUAIQHFgcXAJkHGAcaAI4HGwcdAIQHHgceAG8HHwcgAIMHIQchADQHIgciAIMHIwcjAKcHJAckAIQHJQclAKcHJgcnAIQHKAcoAIgHKQcpACYHKgcqAFEHKwcrAIMHLAcsAGsHLQctAI0HLgcuAIQHLwcvAIcHMAcwAIMHMQcxAIgHMgcyAIQHMwczAH0HNAc0AIQHNQc1AHkHNgc2AJ0HNwc3AIgHOAdQAIQHUQdYAG8HWQdvAIMHcAdxAI4Hcgd4AJkHegd/AJkHgAeHAIQHiAeJAIgHigeZAI4HmgewAIQHsgeyAGsHswezAJcHtAe0AIQHtQe1AEwHtge3AHoHuAe4AEwHuQe5AHoHuge6AJoHuwe7AHoHvAe8AIUHvQe+AHoHvwe/AEwHwAfAAKIHwQfBAHoHwgfCAHEHwwfDAIUHxAfFAHoHxgfHAKUHyAfIADMHyQfJADoHygfKAIUHywfLAFYHzAfMAC0HzQfNAIYHzgfOAHoH0QfTADoH1AfUAIUH1QfVAIYH1gfWAEwH1wfZAHoH2gfaABIH2wfbAHoH3AfcAKQH3QfdAIUH3gfeAKQH3wfgAIUH4QfhAHoH4gfiAH8H4wfjAEwH5AfkAHoH5QflAAYH5gfmAIUH5wfpADoH6gfqAIUH6wfrAIcH7QftAIgH7gfuAIUH7wfvAH4H8AfwAIUH8QfxAHoH8gfyAKIH8wfzAHoH9AgMAEwIDQg7AHoIPAhDAIUIRAhFAHoIRghVADoIVghsAIYIbghuAIQIcQhxAJUIcghyACkIcwhzADgIdAh0AGEIdQh1ACAIdgh2AE4Idwh3AIoIeAh4ADEIeQh5AG4Iegh6ACcIewh7AJYIfAh8ACoIfQh9ADkIfgh+AFIIfwh/ACEIgAiAAHQIgQiBAIoIggiCADIIgwiDAG4IhAiEACgIhQiFAJYInAicAJUInQimAD4IpwiwAKYIsQjEAD0IxgjVAD0I1gjXACsI2AjZABsI2gjaACsI2wjbAB4I3QjdAC4I3wjfACQI4AjgABcI4QjhABMI4wjjAKMI5AjkAGAI5QjlABQI5gjmADII5wjnAFMI6AjoAK4I6gjqAKMI7QjuAD4I8AjwAKgI8gjyABUI9Aj0ABYI9Qj2AD0I+Aj4AKgI+gj6ABUI/Aj8ABYI/QkEACQJBQkFAFMJBgkKACQJDQkOACsJDwkSAC8JEwkTAHcJFAkUAHgJFQkVAHcJFgkWAHgJFwkYAC8JGQkZAHcJGgkaAHgJGwkbAHcJHAkcAHgJHQkeAKYJHwkgAD0JIQkhACQJIgkiABsJMAkwAIQJMQkxAAYJMwkzAEUJNAk0AIQJNQk1AAkJNwk3AHIJQAlAAK0JQglCAIQJQwlDAAYJRQlFAEUJRglGAIQJUQlRAK0JdAl0ACQJdgl2ACQJdwl3AD4JeAl4AD0JeQl5AD4Jegl6AD0Jewl8ACQJfQl9AHAJfgl+ACQJfwmCAHAJhwmIACQJiwmLAHAJjQmNAF4JjgmOAD8JkAmQAEYJkgmSAIMJlgmWAD4JlwmXAD0JmQmZAHAJmgmbACQJnAmcAHAJnQmdACQJngmeAHAJpgmnACQJqwmrAEYJ/wn/AGoKAAoAAGkKAwoDAKkKBAoEABMKBQoFADcKDAoMAAYKGgoaABEKIwojABsKJAokAC8KJQomACQKLwoxAKYKMgo0AD0KNgo2AFoKNwo3AC8KOAo4ACsKOwo7ACQKPAo8ABsKPgo+AC8KQgpCAC8KdQp1ACQLAAsBAA4LAgsDAGILBAsFADoLLwsvAKEAAgUuAAQAAAayCN4ABQCDAAD/8//p//v/6f/9//3/6f/2/+z/7P/x/9j/5f/i/+L/7P/Y/9j/4v/i//H/6f/s/+L//f/2/+z/+//5/+L/7P/7/+z/7AAH//b/9v/x//H/z//x/+z/9v/s/+L/5f/s/+z/9v/b/+v/7P/5/+f/7P/5/+z/9f/s//j//f/+//j/7//n/+n/7P/5//H/9gAD//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAA//b/zv/vAAAAAP/2/9j/4v/s//b/2//iAAD/9gAA//H/9P/O/+wAAP/x/9j/9v/p/+wAAAAA/9j/2AAAAAD/3f/o/+z/4v/s/+z//f/7AAD/9QAAAAD/6v/s//n/5wAAAAD/+wAA//f/+//s//b/9v/2/+L/7P/x/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAA/+IAAAAA/+z/2AAU//YAAAAAAAoAAAAAAAoAAAAKAAAAAP/i//YAAAAKAAAADQAAAAD/4gAUAAD/9gAAAAAAAAAoABQAAP/sAAAAAAAAAAAAAwAAAAAAAP+cAAD/9v/iAAf/nAAKAAoACgAAAAAAAP+cAAD/xAAAAAAAAAAKAAD/zv/2AAAAAP/OAAAAAP/x/9gAAP/sAAD/nAAUAAAAAP+c/+L/xAAU/93/4v/YABQACv/2/9j/sP/2/+wACgAK/90AFP/i//H/4v/2/9j/7P/2/9j/2P/x/+L/9gAK/5z/xP/2//b/4gAKAAoAFP/s//b/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/iAAAAAAAAAAAAAAAA//oAAP/sAAAAAAAAAAAAAAAA//gAAAAAAAD/4gAAAAAAAAAA//wAAP/4AAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/3AAAAAAAAAAD/8wAAAAAAAP/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2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ADEC9wL3AEQDHwMfAEADIAM3AF0DOQM+AF0DPwNBAF4DWQNZAGUDdwN4AEYDowOjAGsDpQOlAGsDtAO0AF0EEgQaAHcEHAQcAHcEIAQgAHcEPQQ9AHkEPwQ/AF0ESARSAEAEYQRhAEoEYgRiAHAEcwRzAFQEeQR5AFcEfgR+ABYEhQSFAAMEjASMAAwEjQSOAA4EkQSRAFYElwSXAAwEmQSZAAMEmwSbAAsEnQSdABYEoASgAAYEoQShAAwEowSjAAUEpASkAAwEpgSmABIEqASoAFQEqgSqABQErASsABYErQStAFoErwSwAA8EtQS1ABYEuQS5AAwEwATAAAwEwgTCAAwEwwTEAFYExwTIAAIEzATMAAMEzwTPAFYE0QTSAFQE0wTTAFUE2ATZABYE4ATiAA4E4wTjAFYE6QTqAFkE6wTsAAgE7QTtAAME8ATwAAwE8gTzAAME9QT1AAUE9wT3ABAE+QT5AAME/gT+AFcFAAUAAAMFAQUCAFQFBAUEAFQFBwUHAFQFCQUKAFQFDgURAFQFEwUTAHAFFQUVAHAFGQUcAHAFHQUdAD8FHgUeAEUFHwUiAIEFJQUlABwFKAUoAHAFKwUrAHAFLQUuADwFLwUvAHAFMAUwAD8FMgU1AIEFNwU3ADcFOQU5ABwFOwU7ADEFPAU8AHAFPQU9AEUFPwU/ACMFQwVDAE0FSAVIAD0FSgVKAEMFTQVNAIEFTgVOAHAFTwVQADwFUQVRAHAFVAVUAD8FVQVVAEUFWQVZADcFXgVfAHAFYQVhAD8FYgViADcFagVqAD8FbAVsABwFcQVyAHAFcwVzAEoFdAV2AHAFdwV3AD8FeAV4AEUFeQV5AB4FegV7AIEFfAV+AHAFgAWCADwFhwWIAD8FiQWKAHAFiwWMACQFjQWNABwFjwWPAHAFkAWQADcFkQWRAGgFkgWTABwFlQWVAE0FlgWWAHAFlwWXAD4FmQWZABwFngWeABwFoAWgABwFogWiAEkFowWjAHAFpAWkAD8FpwWoAD0FqwWrAD8FsAWwADcFsQWxAHAFswWzAD0FtAW0AD8FtgW2AD0FuQW5AD8FugW6AD0FvAW+AD0FwgXCAHAFzAXMAF0F1wXXAEYF3gXeAGcF5QXlAHcF5gXnAHgF8AXwAHcF8gXyAGcF9gX2AEYF+QX5AGsF+gX6AHcF/QX9AHcGAQYBAF0GAwYDAHoGBQYFAEYGBgYGAHEGCAYJAHkGDgYOAEYGEgYSAHcGGQYZAHcGIgYiAGcGKAYoAGcGLQYuAF0GLwYvAF4GNAY1AEYGPAY+AHgGRQZGAG0GSQZJAGcGTAZMAHcGTgZPAGcGVQZVAGcGWQZaAF0GXAZdAF0GXwZkAF0GZwZnAAYGaAZoAFQGawZrAFQGbQZtABUGcgZyAFQGeQZ5AFsGegZ6AAwGewZ7ABEGfgZ+AFoGiAaIABEGigaKAAEGjwaPAAkGkAaQAFQGkgaUABEGmQaZAAoGmwabAAoGpgaoAFQG5wboABEG/Ab8AHAG/gb+ADwG/wb/AHAHAAcAAGgHBAcEAIEHBgcGACYHCAcIADwHCQcKAHAHCwcLACsHDAcMAHQHDQcOAHAHDwcPADYHEAcQAIEHEQcRAHAHEgcSABkHEwcTAIEHFAcUAHAHFgcXACMHGAcaAIEHGwcdAHAHHgceAGgHIQchADYHIwcjACkHJAckAHAHJQclACkHJgcnAHAHKAcoAHQHKQcpACUHKgcqADIHLgcuAHAHMQcxAHQHMgcyAHAHNAc0AHAHNwc3AHQHOAdQAHAHUQdYAGgHcAdxAIEHcgd4ACMHegd/ACMHgAeHAHAHiAeJAHQHigeZAIEHmgewAHAHtAe0AHAHtQe1AF0HuAe4AF0Hvwe/AF0HyAfIAHcHyQfJAEAHzAfMAHEH0QfTAEAH1gfWAF0H4wfjAF0H5wfpAEAH7QftAHQH7wfvAGsH9AgMAF0IRghVAEAIbghuAHAIcQhxAHsIcghyACgIcwhzADoIdAh0ADgIdQh1AGkIdgh2ACAIdwh3AHUIeAh4ADMIeQh5AGYIegh6ACcIewh7AHwIfAh8AE4IfQh9AFIIfgh+AFEIfwh/AEsIgQiBAHUIggiCAFAIgwiDAGYIhQiFAHwInAicAHsInQimAFMIpwiwAEcIsQjEAEgIxgjVAEgI1gjXAE8I2AjZAH8I2gjaAE8I3QjdACwI3gjeAHII3wjfAIAI4AjgAH4I4QjhABcI4wjjAG8I5AjkADQI5QjlABgI5gjmAFAI5wjnADsI6QjpAHMI6gjqAG8I7QjuAFMI8gjyAGEI9Aj0AGII9Qj2AEgI+gj6AGEI/Aj8AGII/QkEAIAJBQkFADsJBgkKAIAJDQkOAE8JDwkSAC0JEwkTAGoJFAkUAEwJFQkVAGoJFgkWAEwJFwkYAC0JGQkZAGoJGgkaAEwJGwkbAGoJHAkcAEwJHQkeAEcJHwkgAEgJIQkhAIAJIgkiAH8JMAkwAHAJMwkzAAsJNAk0AHAJNQk1AA0JPAk8ADAJPgk+AHYJQAlAAEEJQglCAHAJRQlFAAsJRglGAHAJRwlHABsJTQlNADAJTwlPAHYJUQlRAEEJdAl0AIAJdgl2AIAJdwl3AFMJeAl4AEgJeQl5AFMJegl6AEgJewl8AIAJfgl+AIAJhwmIAIAJjgmOAFQJkAmQAFsJlAmVACoJlgmWAFMJlwmXAEgJmgmbAIAJnQmdAIAJpgmnAIAJqwmrAFsJrgmvACoJ/wn/AGAKAAoAAH0KBAoEABcKBQoFADkKBgoGABoKCgoKAGQKFwoXABoKGAoYAGQKGgoaAF8KIwojAH8KJAokAC0KJQomAIAKLwoxAEcKMgo0AEgKNgo2AEUKNwo3AC0KOAo4AE8KOwo7AIAKPAo8AH8KPgo+AC0KQgpCAC0KdQp1AIALAAsBABELAgsDADwLBAsFAEALLwsvAGwAAifgAAQAACqcMcAAMQBoAAD/7P/s/7D/nP/E/+X/sP/4/+L/uf/E/+n/6//s/+z/x/+w/9j/7P+w//b/4v/Y/9j/7v+p/7AACv+w/7D/uv/f/9H/7P/m//b/sP/2//H/1v/x/9j/7P+w/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2/+IAAAAAAAAAAAAA//f/6QAD//cAAP/2/+wAAAAAAAD/9gAAAAAAAAAA//wAAAAEAAD/4v/2//X/8QAAAAAAAwAAAAD/+f/9//D/9v/mAAD/+wAA//UAAwAH//YADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAAAAAAA/+sAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAP/2AAAAAAAA//b/7P/2//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+z/4gAA//YAAAAAAAD/+f/sAAAAAAAAAAD/4v/sAAAAAAAAAAAAAP/2AAAAAP/f/+IAAP/i/+z/5f/z/+wAAAAA/+z/7AAAAAD/+P/+AAAAAP/2AAAAAAAAAAAAAAAA//EAAAAA//H/9v/4//b//f/s/+D/9v/i//v/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//H/8QAA/+L/5wAAAAD/9v/sAAD/+AAAAAAAAP/i/9sAAP/iAAD/1AAA//YAAP/2//H/8//4AAr/3QAAAAD/5gAHAAAAAAAA//H/9wAAAAAAAAAA//YADv/s//YAAAAA//EAAwAAAAAAAAAA/+wAAAAAAAAAAP/+AAAAAAAAAAD/7P/5//3/7wADAAX/9P/4//YACv/s/+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/i/+wAAAAAAAAAAAAA//EAAAAAAAAAAP/l/+wAAAAA/+IAAP/4AAAAAP/2/+//7wAD/9v/9gAAAAAAAAAA//8AAP/vAAAAAP/4//0AAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAFAAAAAAAAAAAAAAAAAAwADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAf/2P/2AAAAAP/xAAAAAAAAAAAAAP/2//MAAAAA/+wAAP/sAAD/7AAA//H/7AAA/+z/6f/fAAoAAP/sAAD/9gAAAAD/9v/xAAAAAAAAAAD/8QADAAD/6QAAAAD/7AAD/9oAAP/z//b/8//n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AAAAAAAAAAAAAAAAAAAAAAAA//oAAP/8//gAAAAAAAD/9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAA//IAAAAAAAAAAP/uAAAAAAAAAAAAAAAAAAD/2P/iAAD/8QAAAAAAAP/v/+f/9gAAAAAAAP/b/9gAAAAA//YAAAAA/+f/7QAA/87/4gAA/+L/3f+0/+L/4gAA//b/7P/iAAAAAP/0//7/3QAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+z/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAD/7AAAAAAAAP/sAAAAAP/sAAAAAAAAAAD/7AAA/+wAAAAAAAAAAAAAAAD/4gAAAAD/ugAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/1wAAAAD/7P+w/8T/2P/fAAAAAAAAAAAAAAAAAAAAAP/EAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAAAAAAA/+X/8wAA/+z/5f/bAAD/7wAAAAD/0f/lAAD/2//VAAD/7P/Y/+z/2AAA/+//7//R/87/0f/R/+UAAAAA/8oAAP/Y/+L/7//YAAD/5f/l/+X/7//R/+cAAP/i/94AAAAA/9v/xP/RAAD/5f/bAAD/4v/YAAAAAAAA/+z/2P/l/+X/4gAAAAAAAP/l/98AAAAAAAD/7AAAAAD/5f/v/9gAAP/sAAAAAP/l/+wAAAAiAAD/5QAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAEQAAAAAAAAAAAAAANgAAAAAAAAAAAAAAJQAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAKABQAAAAYAAAAAAAAAAAALwAAAAAAAAAAAAAAAAAKAAAAAAAsACwAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAANAAAAAAAAAAAAHgAAACgAAAAAAAAAAAAAAAAACgAAAAAAAAANAAAAAAAAAAAAAAAA/+wAAP/5AAAAAAAAAAD/7AAAAAAAAAAA/+8AAAAAAAD/+QAAAAAAAAAAAAD/5gAAAAD/7P/6//r/7gAAAAAAAAAA/+wAAAAA//sAAAAAAAD/9wAAAAAAAAAAAAAAAAAAAAAAAAAA//kAAAAA//sAAP/3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAP/vAAAAAAAAAAAAAAAAAAAAAP//AAAABAAA/9gAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//b/7P/2//YAAAAAAAD//f/sAAAAAAADAAD/8//s//YAAP/2AAAAAAAAAAD/+//p/+wAA//x//H/6//z//MAAAAAAAf/8QAAAAD/9gAA//EAAP/xAAD/+wAFAAUAAAAUAAUAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v/xAAoAAwAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAD/7wAAAAAAAAAA//EAAAAAAAAAAAAA//YAAP/Y/8T/7P/xAAAAAAAA/+wAAP/2AAAAAP/r/+L/2P/s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AAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAA//EAAAAAAAAAAAAAAAAAAAAA/9j/7AAAAAAAAAAAAAD/7AAAAAAAAP/s/+8AAP/sAAD/2P/2/+r/+wAA/+3/8P/uAAr/4v/xAAD/7gAA//YAAAAA/+wAAP/x//wAAAAA//YAAP/2//QAAAAK//YAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAADAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8gAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAP/sAAAAAP/sAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+IAAAAAAAAAAAAAAAD/7AAAAAAAAAAA/+UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAD/7AAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAD//f/5AAD/8f/2AAAAAAAAAAD/7P/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/zAAAACf/sAAAAAAAAAAAAAAAaAAAAAAAAAAD/9v/y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ANECbgJ/ANQCgQK3AOYCuQK5AR0CwwLJAR4CywLTASUC1QLhAS4C5QLlATsC7ALtATwC8ALwAT4C8gL0AT8C9gL2AUIC+AL6AUMC/AL/AUYDAQMHAUoDCQMKAVEDDAMOAVMEYQRhAVYEsQSxAVcFEwUTAVgFFQUXAVkFGgUhAVwFIwUlAWQFJwUnAWcFKQUpAWgFKwUuAWkFMAUxAW0FMwUzAW8FNQU8AXAFPgU/AXgFQQVBAXoFQwVEAXsFRgVJAX0FTQVNAYEFTwVTAYIFVQVVAYcFVwVZAYgFXQVdAYsFXwVfAYwFYQVhAY0FZAVlAY4FaQVrAZAFbQVtAZMFbwVvAZQFcQV0AZUFdwV7AZkFgAWGAZ4FiAWLAaUFjQWOAakFkAWUAasFlgWXAbAFmQWbAbIFnQWeAbUFoQWhAbcFowWoAbgFqgWqAb4FrQWtAb8FsQWyAcAFtAW2AcIFuAW4AcUFugW+AcYFwQXFAcsGZgZmAdAG/Qb+AdEHAAcAAdMHAgcCAdQHBAcEAdUHBgcIAdYHEgcSAdkHFQcaAdoHHgcfAeAHIQciAeIHJAckAeQHKwcrAeUHMAcwAeYHMgcyAecHNAc0AegHUQd/AekHigeZAhgH5QflAigH7AfsAikIbghuAioJMAkwAisJNAk0AiwJNwk3Ai0JQglCAi4JRglGAi8JkgmSAjALAgsDAjEAAgEwAUwBTAAqAU4BTgANAU8BUAAnAVIBUwAnAVQBVAABAVUBVQACAVYBVgApAVcBbwAZAXEBdgAZAXgBegALAX4BfgADAYUBiQAEAYoBigAFAYsBiwAEAYwBjAAGAY0BjQANAY4BjgAHAY8BjwAEAZABkAAIAZMBkwAJAZQBlQAIAZYBlgAKAZcBmAAIAZoBmgAQAZsBmwANAZwBnAAIAZ0BnQAOAZ4BngAIAaIBogAvAaMBtgALAbcBtwAMAbkBugAqAbsBuwAjAb0BvgANAb8BvwAOAcABwAAPAcEBwgALAcUBxQAjAcYByAAQAckByQARAcoBygAQAcsBzgASAc8BzwAeAdAB0QAgAdIB0gApAdMB1wAgAdgB2AANAdoB2gAVAdwB3AAWAd4B3gAVAd8B3wAWAeAB4QAgAeIB4gAwAeMB6QAeAeoB6wAgAewB7AAOAe4B7gAXAe8B7wAnAfAB9gAYAfcB+AAXAfoB+gAY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AfoAVwH7AfsAZQH8AfwAVwH9Af0AZQH+Af4AVwH/Af8AZQIAAgAAJgIBAgEAZQICAgIAVwIDAgQAUwIFAgYAVwIHAgcAZwIIAgoAUwILAg0AYQIOAg4AWQIPAg8AYQIQAhAAPwIRAhEAFQISAhIAYQITAhMAOAIUAhUAFgIWAhgAYQIZAhkAFQIaAhsAYQIcAhwAFQIdAh4AYQIfAh8AFgIgAiAAFQIhAiEAFgIiAiIAFQIjAiYAWQInAigAJgIpAioAWQIrAisAHgIsAjMAWQI0AjQAYAI1AjgAWQI5AlsAGQJcAlwAOQJdAmMAGQJkAmQAWQJmAmYAWQJnAmcAGQJoAmkAYQJqAm0AGQJuAm8AWQJwAnAAKAJxAnUAWQJ2AnYAHwJ3AncAWQJ4AngAMwJ5AnoAWQJ7AnsAMwJ8AnwAWQJ9An0AMwJ+An8AVAKAAoAAHgKBAoYAVAKHAocAUwKIAokAVAKKAooADAKLApgAIwKZApoAWQKbApsARwKcAp4AIwKgArcAJgK4ArgAYQK5ArkAGQK9Ar0AWQLDAsMAGQLEAsQAJgLFAsUAJwLGAsgAJgLJAskAKALKAsoAJgLLAssAKALMAswANQLNAtIAKQLTAtMANQLUAtQAWQLVAtUAPwLWAuAAKALhAuEANQLiAusATQLsAu0ADQLuAu4ALgLvAu8AGQLwAvAAVwLxAvEAGQLyAvIAJgLzAvMAGQL0AvQAWQL1AvUAGQL2AvYAVAL3AvcATQL5Aw4ADARhBGEALgRiBGIAGQUTBRMAGQUUBRQAQgUVBRUAGQUWBRcARwUYBRgAWQUZBRwAGQUdBR0APwUeBR4AQAUfBSIAJgUjBSQAWQUlBSUAWwUmBSYAUAUnBScAWQUoBSgAGQUpBSkAWQUrBSsAGQUsBSwAWQUtBS4AKAUvBS8AGQUwBTAAPwUxBTEAQwUyBTUAJgU2BTYAWQU3BTcAXgU4BTgAWQU5BTkAWwU6BToAWQU7BTsAVAU8BTwAGQU9BT0AQAU+BT4AZQU/BT8AVwVABUAAUwVBBUEAYQVCBUIAWQVDBUMAUgVEBUQAYQVGBUYAYQVHBUcAWQVIBUgANQVJBUkAWQVKBUoAVgVLBUsAWQVNBU0AJgVOBU4AGQVPBVAAKAVRBVEAGQVSBVIARwVTBVMAWQVUBVQAPwVVBVUAQAVWBVcAWQVYBVgAYQVZBVkAXgVaBV0AWQVeBV8AGQVgBWAAWQVhBWEAPwViBWIAXgVjBWQAQwVlBWYAYQVnBWgARAVpBWkAYQVqBWoAPwVrBWsAWQVsBWwAWwVtBW4AWQVvBW8AQwVwBXAAUAVxBXIAGQVzBXMALgV0BXYAGQV3BXcAPwV4BXgAQAV5BXkACwV6BXsAJgV8BX4AGQWABYIAKAWDBYMAQwWEBYQARwWFBYYAWQWHBYgAPwWJBYoAGQWLBYwAYwWNBY0AWwWOBY4AWQWPBY8AGQWQBZAAXgWRBZEAMQWSBZMAWwWUBZQAWQWVBZUAUgWWBZYAGQWXBZcAKQWYBZgAWQWZBZkAWwWaBZ0AWQWeBZ4AWwWfBZ8AWQWgBaAAWwWhBaEAYQWiBaIAYAWjBaMAGQWkBaQAPwWlBaYAYQWnBagANQWpBakAYQWqBaoARwWrBasAPwWsBa0AYQWuBa8AWQWwBbAAXgWxBbEAGQWyBbIAQwWzBbMANQW0BbQAPwW1BbUAYQW2BbYANQW3BbgAWQW5BbkAPwW6BboANQW7BbsAWQW8Bb4ANQW/Bb8AWQXABcAAQgXBBcEARwXCBcIAGQXDBcUAWQZmBmYAWQZ7BnsAZgaIBogAZgaSBpQAZgbnBugAZgb8BvwAGQb9Bv0AYQb+Bv4AKAb/Bv8AGQcABwAAMQcBBwEATAcCBwIAWQcDBwMASAcEBwQAJgcFBwUAWQcGBwYAOAcHBwcAWQcIBwgAKAcJBwoAGQcLBwsAOgcMBwwAXQcNBw4AGQcPBw8APAcQBxAAJgcRBxEAGQcSBxIABgcTBxMAJgcUBxQAGQcWBxcAVwcYBxoAJgcbBx0AGQceBx4AMQcfByAAWQchByEAPAciByIAWQcjByMAOQckByQAGQclByUAOQcmBycAGQcoBygAXQcpBykANwcqByoAOwcrBysAWQcsBywAQgctBy0ASQcuBy4AGQcvBy8AXAcwBzAAWQcxBzEAXQcyBzIAGQczBzMAUwc0BzQAGQc1BzUAYQc2BzYAUAc3BzcAXQc4B1AAGQdRB1gAMQdZB28AWQdwB3EAJgdyB3gAVwd6B38AVweAB4cAGQeIB4kAXQeKB5kAJgeaB7AAGQeyB7IAQgezB7MATAe0B7QAGQfrB+sAXAftB+0AXQhuCG4AGQhxCHEAKwhyCHIAGghzCHMAPQh0CHQAVQh1CHUADwh2CHYAUQh3CHcAIgh4CHgAIAh5CHkACAh6CHoAFwh7CHsALQh8CHwAGwh9CH0ASgh+CH4AJAh/CH8ARgiACIAADgiBCIEAIgiCCIIAIQiDCIMACAiECIQAGAiFCIUALQicCJwAKwidCKYAMginCLAATgixCMQALAjGCNUALAjWCNcAHAjYCNkARQjaCNoAHAjbCNsAWAjdCN0AHQjfCN8AFAjgCOAABQjhCOEAAwjiCOIAXwjjCOMAZAjkCOQANAjlCOUABAjmCOYAIQjnCOcAPgjqCOoAZAjtCO4AMgjwCPAAWgjyCPIALwj0CPQAMAj1CPYALAj4CPgAWgj6CPoALwj8CPwAMAj9CQQAFAkFCQUAPgkGCQoAFAkNCQ4AHAkPCRIAHgkTCRMAEgkUCRQAEwkVCRUAEgkWCRYAEwkXCRgAHgkZCRkAEgkaCRoAEwkbCRsAEgkcCRwAEwkdCR4ATgkfCSAALAkhCSEAFAkiCSIARQkwCTAAGQk0CTQAGQk3CTcADAlACUAASwlCCUIAGQlGCUYAGQlRCVEASwl0CXQAFAl2CXYAFAl3CXcAMgl4CXgALAl5CXkAMgl6CXoALAl7CXwAFAl9CX0ACQl+CX4AFAl/CYIACQmHCYgAFAmLCYsACQmSCZIAWQmUCZUAYgmWCZYAMgmXCZcALAmZCZkACQmaCZsAFAmcCZwACQmdCZ0AFAmeCZ4ACQmmCacAFAmuCa8AYgn/Cf8AQQoACgAAAQoDCgMABwoECgQAAwoFCgUAJQoHCggAXwoaChoAAgojCiMARQokCiQAHgolCiYAFAovCjEATgoyCjQALAo2CjYAQAo3CjcAHgo4CjgAHAo7CjsAFAo8CjwARQo+Cj4AHgpCCkIAHgp1CnUAFAsACwEAZgsCCwMAKAsvCy8AZwACE64ABAAAFVAZhgAfAFEAAP/v/+z/zgAHAAn/7P/v/+8ABwAKAA3/6f/s//b//f/9/+L/7AAH//P/2//Y/+L/7//i//3/9v/5/+n/9AAMAAwAB//iAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAD/2AAAAAAAAP/2//YAAAAAAAD/7P/2//b/+QAA/+n/8AAA//b/7AAA/+3/8P/s//0AAP/0/+n/9v/s//gAAAAAAAD/+//2//b/7v/9/9j/+f/s/+z/7P/s/+z/7P/s//n/+//2//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+L/zgAAAAAAAP/z/+wAAAAAAAD/2wAA//AAAAAA/9v/4gAAAAD/4v/i/9v/5//Y/+8AAP/z/+L/4v/iAAAABQAAAAD/+QAAAAAAAAAA/+L/+P/s/+z/6f/i/+L/4v/sAAD/8//2/+//8//8//0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT/4gAAAAD/2P///9gAAwAAAAAAAP/YAAD/4v/nAAD/4gAKAAD/7AAA//j/6wAA//wAAAAA//b/9gAA//YAAAAAAAcAAAAA/+wAAP/2AAD/8QAA//YAAAAAAAAAAAAAAAD/+f/2AAAAAAAA//j/9v/u/+z/7P/z//7/7P/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAZAAAAFf/7AAAAAAAAAAAAGsAAP/YAAAAAAAAABQAAAAAAAAAZwCMAAAAAACMAAAAAAAAAAAAAAAAAAAAAABkAAAAAAAAAB4AAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2AAAAAAAAAAAAC8AZP/sAC8AawBrACEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4gAAAAD/7AAA/+wAAAAKAAD/9v/iAAD/9v/4AAD/8AAAAAAAAAAAAAD/+//sAAAAAAAA//4AAP/4//8AAAAAAAAAAAAA/+wAAP/7AAD/9gAA//8AAP/4AAAAAAAAAAAAAAAA//QAAAAAAAD//f/9AAD/9v/1AAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/2AAAAAD/9gAAAAAAAAAAAAAAAP/sAAD/4v/vAAD/9v/EAAAAAAAAAAAAAAAAAAAAAAAA//sAAAAA/+8AAAAU/8T/4v/L/+L/9v/7/9j/7//2/+8AAAAA/9gAAP+wAAAAAAAA//EAAP/sAAD/8//sAAD/7AAA//kAAAAAAAAAAP/sAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAAAAD/7gAAAAAAAAAA/+z/7AAAAAD/7AAA/+f/5//sAAAAAAAA/+8AAP/s//sAAAAAAAAAAAAAAAAAAP/9AAAAAP/xAAD/9v/sAAD/9gAAAAD//QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAP/EAAAAAAAA//YAAP/sAAAAAAAA//MAAP/s//YAAAAA/9j/8//b/+z/+f/9AAAAAP/pAAAAAAAA/+IAAP/EAAAAAAAA/+wAAAAAAAD/8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/EAAAAAAAAAAD/xAAAAAAAAP/sAAAAAAAAAAAAAAAA/8T/sAAAAAD/4gAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/7D/nAAAAAAAAP/EAAAAAAAAAAD/x/+wAAAAAP/a/73/qQAA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CBQABQg3CDgACQg8CEMADghECEUAEAhGCFUAHQsECwUAHQACARIA6QDpABYA/QD9AEICKwIrABYCgAKAABYDDwMPABADEQMRADMDFAMUABgDFQMVAAcDFwMXABsDGAMYACkDGwMbABADHgMeABADHwMfAB0DIAM3ACQDOAM4ABADOQM+ACQDPwNBACUDRQNFABgDSANPABADVgNWABgDWQNZADkDcANwADoDcQNxACcDcgNyAE0DdQN2ABADdwN4ADUDeQN5ADoDgAOHABADiAOIAAwDiQOJABADigOKAB8DowOjACgDpQOlACgDtAO0ACQDtwO3ABADuAO4ABsDuQO5ABADuwO7ABADvAO8ACwDvQO9ACADvwPBAD4DwgPCABsD0APRABAD0wPwABAD8QPxACsD8gP4ABAD/AP8ABgD/gP/ABAECQQQACwEEgQaABcEGwQbABgEHAQcABcEIAQgABcEIQQ8ABsEPQQ9ABwEPgQ+ABsEPwQ/ACQEQARFADIERwRHADMESARSAB0EUwRZACAEXQRdAAcFygXKADMFzAXMACQF0gXSAAoF1gXWADMF1wXXADUF3gXeADcF3wXfAD4F4QXhABAF5AXkABAF5QXlABcF5gXnABoF6AXoABAF6QXpADMF6gXqAAcF8AXwABcF8gXyADcF9AX0ACwF9QX1ABAF9gX2ADUF+QX5ACgF+gX6ABcF/AX8ADgF/QX9ABcF/gX+ABAF/wX/AB4GAQYBACQGAwYDADQGBQYFADUGBgYGABQGBwYHABAGCAYJABwGCgYKABAGDQYNADMGDgYOADUGEgYSABcGFwYYABAGGQYZABcGGgYaADMGGwYcAAcGIAYgAAoGIQYhADYGIgYiADcGIwYkAAgGJgYmADMGKAYoADcGKwYrAAcGLAYsAD4GLQYuACQGLwYvACUGMQYyABAGMwYzADMGNAY1ADUGOAY6ABAGPAY+ABoGPwY/AAcGQwZEADMGRQZGAD0GRwZIAA4GSQZJADcGSwZLABAGTAZMABcGTQZNADoGTgZPADcGUQZRADgGUgZSABAGUwZTADIGVQZVADcGWQZaACQGWwZbABAGXAZdACQGXgZeADYGXwZkACQHtQe1ACQHuAe4ACQHuge6ACAHvAe8ABAHvwe/ACQHwAfAAD4HwgfCACcHwwfDABAHxgfHAE0HyAfIABcHyQfJAB0HygfKABAHywfLADMHzAfMABQHzQfNACoH0QfTAB0H1AfUABAH1QfVACoH1gfWACQH2gfaAAEH3AfcACsH3QfdABAH3gfeACsH3wfgABAH4gfiAA8H4wfjACQH5gfmABAH5wfpAB0H6gfqABAH7gfuABAH7wfvACgH8AfwABAH8gfyAD4H9AgMACQIPAhDABAIRghVAB0IVghsACoIcQhxAEcIcghyABEIcwhzAEYIdAh0AEUIdQh1AEsIdgh2AEIIdwh3AEwIeAh4AC0IeQh5AEEIegh6AEQIewh7AEAIfAh8ABIIfQh9AFAIfgh+ADAIfwh/AEgIgQiBAEwIggiCAC4IgwiDAEEIhAiEAD8IhQiFAEAInAicAEcInQimACMIpwiwACEIsQjEACIIxgjVACII1gjXABMI2AjZAAkI2gjaABMI2wjbAAsI3QjdABUI3wjfAA0I4AjgAAYI4QjhAAII5AjkAC8I5QjlAAMI5gjmAC4I5wjnADEI7QjuACMI8AjwAEkI8gjyAAQI9Aj0AAUI9Qj2ACII+Aj4AEkI+gj6AAQI/Aj8AAUI/QkEAA0JBQkFADEJBgkKAA0JDQkOABMJDwkSABYJEwkTADwJFAkUAEMJFQkVADwJFgkWAEMJFwkYABYJGQkZADwJGgkaAEMJGwkbADwJHAkcAEMJHQkeACEJHwkgACIJIQkhAA0JIgkiAAkJdAl0AA0Jdgl2AA0Jdwl3ACMJeAl4ACIJeQl5ACMJegl6ACIJewl8AA0JfQl9ADsJfgl+AA0JfwmCADsJhwmIAA0JiwmLADsJlAmVAE4JlgmWACMJlwmXACIJmQmZADsJmgmbAA0JnAmcADsJnQmdAA0JngmeADsJpgmnAA0JrgmvAE4J/wn/AE8KAAoAACYKBAoEAAIKBQoFABkKGgoaAEoKIwojAAkKJAokABYKJQomAA0KLwoxACEKMgo0ACIKNwo3ABYKOAo4ABMKOwo7AA0KPAo8AAkKPgo+ABYKQgpCABYKdQp1AA0LBAsFAB0AAgeQAAQAAAfYCJAADwBAAAD/2P/R//v/sP+9/9v/8/+9/8T/+P/4//H/8//z/97/2P/s/+z/7P/4/87/2P/Y/+z/sP/H/9j/4v/s/+z/7P/s//f/xP/i/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK/8T/+P/EAAD/9gAA/9j/2P/O/9j/4gAAABYAAAAAAAoAAAAAAAD/4gAAAAAAAAAKAAAAAAAKAAAAAAAAAAD/7AAAAAAAAP/Y/87/9v/i/7D/7P/i/9j/4v/O//b/xAAM/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2AAA/84AAP/x//b/0v/i/+z/7AAAAAD/9gAA/+wAAAAAAAAAAP/iAAAAAAAA/+z/7AAAAAAAAAAAAAAAAP/2/+z/7AAAAAD/7P/2AAD/7P/s/+IAAAAAAAAAAP/iAAD/9v/s//b/9v/2/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4v/7AAAAAAAAAAAAAAAA/+b/zgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/xAAD/9v/2AAAAAAAA//P/yAAA/+L/7AAAAAAAAAAAAAAAAP/sAAD/8QAAAAD//f/o//H/8P/mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/pAAAAAAAAAAAAAP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//YAAAAAAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAA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AAwFdAV2AC8FdwV3ADUFeAV4ADcFeQV5ABAFfAV+AC8FgAWCAB4FhAWEABQFhwWIADUFiQWKAC8FjwWPAC8FlgWWAC8FlwWXACAFowWjAC8FpAWkADUFpwWoADIFqgWqABQFqwWrADUFsQWxAC8FswWzADIFtAW0ADUFtgW2ADIFuQW5ADUFugW6ADIFvAW+ADIFwQXBABQFwgXCAC8FygXKACEF1gXWACEF1wXXADwF4QXhABgF5AXkABgF5QXlABsF6AXoABgF6QXpACEF6gXqAA0F8AXwABsF9QX1ABgF9gX2ADwF+QX5ADgF+gX6ABsF/QX9ABsF/gX+ABgGBQYFADwGBwYHABgGCAYJAB8GCgYKABgGDQYNACEGDgYOADwGEgYSABsGFwYYABgGGQYZABsGGgYaACEGGwYcAA0GJgYmACEGKwYrAA0GLwYvACwGMQYyABgGMwYzACEGNAY1ADwGOAY6ABgGPwY/AA0GQwZEACEGSwZLABgGTAZMABsGUgZSABgGWwZbABgGZwZnAAMGaAZoACUGawZrACUGbQZtAAoGbwZvAD8GcgZyACUGdQZ1ACcGdgZ2AD8GeQZ5ACoGegZ6AAQGewZ7AAgGfAZ8AD8GfQZ9ACsGiAaIAAgGjAaNAD8GkAaQACUGkgaUAAgGlQaVAD8GlwaXAD8GmQaZACkGmgaaAD8GmwabACkGpgaoACUG5wboAAgG/Ab8AC8G/gb+AB4G/wb/AC8HBgcGAC4HCAcIAB4HCQcKAC8HDQcOAC8HEQcRAC8HEgcSAA4HFAcUAC8HGwcdAC8HIwcjADMHJAckAC8HJQclADMHJgcnAC8HLgcuAC8HMgcyAC8HNAc0AC8HOAdQAC8HgAeHAC8HmgewAC8HtAe0AC8Huge6ADsHvAe8ABgHwwfDABgHxgfHADoHyAfIABsHyQfJACIHygfKABgHywfLACEH0QfTACIH1AfUABgH3AfcADkH3QfdABgH3gfeADkH3wfgABgH5QflAD8H5gfmABgH5wfpACIH6gfqABgH7gfuABgH7wfvADgH8AfwABgIPAhDABgIRghVACIIbghuAC8IbwhwAD0Idgh2ABMJDwkSABkJFwkYABkJMAkwAC8JMQkxAD8JMwkzAD4JNAk0AC8JNQk1AAUJNwk3ABEJQglCAC8JQwlDAD8JRQlFAD4JRglGAC8JjgmOACUJkAmQACoJqwmrACoKDAoMAD8KJAokABkKJwouAD0KNQo1AD0KNgo2ADcKNwo3ABkKOQo6AD0KPQo9AD0KPgo+ABkKPwpBAD0KQgpCABkKQwpGAD0LAAsBAAgLAgsDAB4LBAsFACIAAhxyAAQAAB0GHkIAFQCtAAD/4v/OAA0AB//sAAP/4gAHAAMABwADAAMAA//s/+z/7AAHAAMAB//i/+L/4gAHAB4ABwAHAAf/7AAb/8QAB//2AAf/nAAJAAcABwAKAAP/7P+wAAcABwAHAA0ADQAHABQACQAO/98ABwAHAAUABwAKAAf/4v/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/R/8QAAAAAAAD/2P/O/9j/4v/gAAAAAP/sAAD/0f/OAAD/4gAAAAAAAP/Y/+3/7P/OAAAAAP/i/+IAAAAAAAAAAAAA/9v/nP/RAAAAAAAA/+z/4v/O/+L/4gAAAAAAAAAAAAAAAAAAAAD/2gAAAAAAAP/2/9gAI//Y/+z/xP/i/+z/zv/E/9j/4v/EABT/4v/i/+z/7P/i/8T/7P/YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAABwAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAwAsAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAHAAAAAAA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAAAAAAAAAAAAAAKQAHACAACQADAAcABwAHAAcALAAKAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcACgAAAAAAAAAAAAAAAAADAAAABwAKAAMABwAAAAkAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAcALAAAAAAAAAAAAAAAAAAAAAAACgAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAHAAcAAAAAAAUABwAAAAAAOQAAAAAABwAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAACUABwAeAAkABwAHAAoABwAHACwACgAHAAcAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAD/9gAAAAD/zgAA/+z/9gAA/+z/9v/sAAMAAP/2AAD/7AAAAAD/+QAAAAD/7AAAAAAAAAAAAAD/2AAAAAAAAAAAAAD/7AAA/9j/7AAAAAAAAAAAAAAAAAAAAAD/7AAAAAD/6//l/+z/4v/Y/+IAAP/O/+UAAP/E/9v/zv/YAAcAB//lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAA/+8AAAAA/+wAAAAAAAD/0f/2AAD/7P/n/+z/7P/E/+z/9v/s//v/7P/i/+IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAUAAAAAAAAAAAAAAAA/9gAAP/i//YAAAAAAAAABwANAAAAAwAAAAMAAwAAAAAAAwADAAAACgAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAHAAMAAwADAAoACgAAAAAAAwADAAMAAwAAAAMAAP/sAAAAAAADAAD/zgAUAAAAAP/L/9gAAwADAAf/5QAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAANAAAAAAAAAA0AAAAAAAoAAAAAABQAAAAAAAMAAAAA/+wAAAAAAAMAAAADAAMAAAAKAAr/zgADAAP/+wADAAr/1gADAAP/5f/2AAoACv/n//QAB//2AAoAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAAAD/7AAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/9gAAAAAAAAAAP/lAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAMAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAD/7AAAAAAAAP/xAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//n/7AAAAAAAAAAA/+z/7AAA/+7/7P/s/+7/7AAA/+wAAP/OAAAAAAAAAAD/9v/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+f/sAAAAAAAAAAD/+P/s//D/7gAAAAAAAP/uAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4P/2AAD/7AAAAAD/2P/Y/+L/7AAA/+z/8QAA//sAAP/sAAD/9v/2//b/2P/2AAD/7AAAAAAAAAAAAAD/7P/Y//YAAAAA/+z/5QAA/9j/7AAA/+L/7P/sAAD/7P/2AAD/7P/7AAD/7P/s/9//7P/s/+wAAP/Y/9gAAP/Y/9j/2P/aAAAAAP/YAAAAAAAA//YAAAAAAAoAAP/9/+wAAAAAAAAAAP/xAAD/7AAA/+wAAAAA/+z/2P/sAAD/7P/s/+T/2P/Y/+z/7P/sAAD/7P/s/+wAAAAAAAAAAAAAAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v/i/+AAAAAA/+wAAAAA/87/2//Y/+YAAP/i//H/7AAKAAD/7AAA/+z/7P/i/+j/8QAA/9j/8gAAAAAAAAAA/9j/zv/wAAAAAAAA/+UAAP/E/+b/+//s/+z/7AAA/+z/9gAA/+kAAAAA/93/2P/i/9j/2P/iAAD/zv/YAAD/sP/L/87/4gADAAf/2AAAAAD/9v/sAAAAAAAAAAAAAP/sAAAAAP/iAAD/+P/f/9EAAP/cAAAAAP/9/8T/8wAA/+L/1//c/9H/sP/c//b/4v/i/+L/4v/OAAD/xAAA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/+IAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAP/sAAAAAAAA/8QAAAAA/9j/4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//b/xAAAAAAAAP/EAAAAAAAAAAAAAAAA/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9v/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/7AAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+D/2AAAAAD/zgAA/+IAAAAAAAAAAAAAAAD/4v/O/87/2//E/9j/xP/i/8T/2AAA/+L/7P/E/84AAP+cAAD/zv/Y/3T/2P/Y/9sAAP/E/9j/sP/Y/+L/4v/E/+L/4gAA/+wAAP/E/+wAAP/i/9j/7P/E/8T/xAAA/9j/xAAA/9gAAAAA/+z/zv/EAAD/7P/EAAD/4v/i/9j/8v/Y/9j/2P/lAAAAAAAHAAD/7P/EAAD/2AAAAAD/2//OAAD/zv/YAAAAAAAA/+IAAP/s/9j/4v/O/9j/zgAAAAAAAAAAAAAAAAAAAAAAAP/iAAAAAP/i/84AAAAAAAAAAAAAAAD/zgAAAAD/4gAAAAAAAAAAAAAAAAAAAAAAAAAA/+wAAP/O/+L/4v/iAAAAAAAAAAD/4gAAAAAAAAAAAAAAAAAAAAD/4gAAAAD/7P/O/+L/2P/O/+wAAAAAAAAAAAAAAAD/nP9q/+IAAP/s/5z/zv/OAAD/zv/EAAD/7AAA/5z/agAK//YAAAAAAAD/1wAO//P/2AAAAAD/7P/O/+wAAAAA/+L/7P+c/5z/sAAAAAAAAP/s/87/sP/E/+L/4v/iAAAAAP/sAAAAAAAAAAAAAAAAAAAAAP/iAFcAAAAA/7AAAAAA/2r/nP/Y/8T/sAAb/8T/nP/O/+3/7P+c/+z/nABUACMAAAAXAAAAAAAAAAcAAAAAABEAAAAAAAAAAP/sAAD/2AAAAAAAAAAAAAAAAAAAAAD/nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Y/+IAAAAAAAD/7P/O/+IAAAAA/4gAAAAAAAAAWgAAAAAAAP/i/+wAAAAAAAD/7AAAAAAAAP/sAAMAZP/2AAEASAjWCNcI2AjZCNoI2wjcCN0I3gjfCOAI4QjiCOMI5AjlCOcI6AjpCOoI7wjxCPMI9wj5CPsI/Qj+CP8JAAkBCQIJAwkECQUJBgkHCQgJCQkKCQ0JDgkTCRQJFQkWCRkJGgkbCRwJIQkiCXQJdgl7CXwJfgmHCZoJmwmdCaYKBAoHCggKIwolCiYKOAo7CjwKdQACADQI1gjXAA8I2AjZAAYI2gjaAA8I2wjbAAcI3AjcAAgI3QjdABAI3gjeABEI3wjfAAwI4AjgAAUI4gjiAAII4wjjAA0I5AjkABMI5QjlAAEI5wjnABQI6AjoAAkI6QjpABII6gjqAA0I7wjvAA4I8QjxAAMI8wjzAAQI9wj3AA4I+Qj5AAMI+wj7AAQI/QkEAAwJBQkFABQJBgkKAAwJDQkOAA8JEwkTAAoJFAkUAAsJFQkVAAoJFgkWAAsJGQkZAAoJGgkaAAsJGwkbAAoJHAkcAAsJIQkhAAwJIgkiAAYJdAl0AAwJdgl2AAwJewl8AAwJfgl+AAwJhwmHAAwJmgmbAAwJnQmdAAwJpgmmAAwKBwoIAAIKIwojAAYKJQomAAwKOAo4AA8KOwo7AAwKPAo8AAYKdQp1AAwAAgNVAAEAGAABABkAGQCOABoAHwABACAAIgACACcAJwAKACoALwCOADAAMABWADEAMgCOAD0APQAKAD8APwAFAFYAVgA8AFcAVwAGAFgAWABiAFsAXABkAF0AXQA8AGEAaACOAGkAaQA9AGoAagCOAGsAawBCAHEAcQAKAHIAcgAEAHYAfABUAIEAggBUAIQAhACVAIYAhgBUAIcAhwBVAIgAiABUAIkAiQA+AIoAigBVAJ4AngCVAK0AzwCOANAA0ABAANEA1gCOANoA2gAKANwA3QCOAOcA6ABhAOkA6QAmAOoA7wBhAPEA8QCOAPIA+gAJAPsA+wAKAPwA/AAJAP0A/QBmAP8A/wCPAQABAAAJAQEBGQCVARoBGgCOARsBHQCVAR4BHgAMAR8BHwBBASABIACVASEBIQABASIBJwANASkBKQBWASoBMgBBATQBNQBBATYBPABDAT0BPQABAT8BPwBUAUABQACOAUEBQQCVAUIBQgCOAUQBRACOAUUBRQBhAUYBRgBDAUsBSwAEAUwBTACSAU0BTgAgAU8BUgCSAVMBUwAgAVQBVQCSAVYBVgAxAVcBbwAgAXABcACSAXEBdgAgAXcBdwCTAXgBegAPAYEBgQCOAYUBiwAgAYwBjAATAY0BjQAgAY4BjgCQAY8BtgAgAbcBuAClAbkBuQBqAboBugAgAbsBuwB1AbwBvAAgAb0BvgBSAb8BvwAYAcABwAAnAcEBxQAgAcYByABZAckByQBlAcoBygBZAcsBzwAZAdAB0QAgAdIB0gAxAdMB2AAgAdkB2QB1AdoB2gBGAdsB2wB1AdwB3ABHAd0B3QB1Ad4B3gBGAd8B3wBHAeAB4QAgAeIB4gCAAeoB6gCTAesB7AAnAe8B7wCSAfAB9gAdAfoB+gAdAfwB/AAdAf4B/gAdAgACAACTAgICAgAdAgMCBABJAgUCBgAdAgcCBwCcAggCCgBJAg4CDgCSAhACEAA2AhECEQCsAhMCEwBnAhQCFQBNAhkCGQCsAhwCHACsAh8CHwBNAiACIACsAiECIQBNAiICIgCsAiMCJgCSAicCKACTAikCKgCSAisCKwAmAiwCMwCSAjQCNABSAjUCOACSAjkCWwAgAlwCXAB1Al0CYwAgAmQCZACSAmYCZgCSAmcCZwAgAmoCbQAgAm4CbwCSAnACcAAxAnECdQCSAnYCdgAnAncCdwCSAngCeAApAnkCegCSAnsCewApAnwCfACSAn0CfQApAn4CfwB4AoACgAAmAoEChgB4AocChwBJAogCiQB4AooCigAZAosCmAArApkCmgCSApsCmwCDApwCngArAqACtwCTArkCuQAgAr0CvQCSAsMCwwAgAsQCxACTAsUCxQChAsYCyACTAskCyQAxAsoCygCTAssCywAxAswCzAAzAs0C0gA0AtMC0wAzAtQC1ACSAtUC1QA2AtYC4AAxAuEC4QAzAuIC6wBoAuwC7QAaAu4C7gAPAu8C7wAgAvAC8AAdAvEC8QAgAvIC8gCTAvMC8wAgAvQC9ACSAvUC9QAgAvYC9gB4AvcC9wBoAvkDDgAZAw8DDwBOAxADEACmAxEDEQA3AxIDEwCmAxQDFABPAxUDFQCYAxYDFgCmAxcDFwCpAxgDGACrAxkDGgCmAxsDGwBOAx0DHQCmAx4DHgBOAx8DHwA4AyADNwAQAzgDOABOAzkDPgAQAz8DQQBXA0IDRACmA0UDRQBPA0YDRwCmA0gDTwBOA1ADVQCmA1YDVgBPA1cDWACmA1kDWQAUA1oDbwCmA3EDcQAXA3IDcgAqA3MDdACmA3UDdgBOA3cDeABrA3oDegCmA30DfwCmA4ADhwBOA4gDiAAbA4kDiQBOA4oDigA5A4sDkQCmA5IDmABbA5kDmgCmA5sDmwBbA5wDnACmA50DnQBbA54DngCmA58DnwBbA6ADoQCmA6IDogBbA6MDowBcA6QDpABbA6UDpQBcA6YDqwCmA6wDrABbA60DswCmA7QDtAAQA7UDtQCmA7YDtgBbA7cDtwBOA7gDuACpA7kDuQBOA7oDugCmA7sDuwBOA7wDvAB5A70DvQBpA74DvgCmA78DwQCnA8IDwgCpA8MDzwCmA9AD0QBOA9ID0gCOA9MD8ABOA/ED8QAhA/ID+ABOA/kD+wCmA/wD/ABPA/0D/QCmA/4D/wBOBAAECACmBAkEEAB5BBEEEQCmBBIEGgAsBBsEGwBPBBwEHAAsBB0EHwCmBCAEIAAsBCEEPACpBD0EPQAyBD4EPgCpBD8EPwAQBEAERQA1BEYERgCmBEcERwA3BEgEUgA4BFMEWQBpBFoEXACmBF0EXQCYBF4EXgCmBGEEYQAPBGIEYgAgBHMEcwABBHkEeQBTBH0EfQBWBH4EfgBkBIUEhQBgBIgEiACOBIsEiwCOBIwEjAAJBI0EjgALBI8EjwCOBJAEkABWBJEEkQAEBJcElwAJBJkEmQBgBJsEmwBhBJwEnACOBJ0EnQBkBJ8EnwBUBKAEoABVBKEEoQAJBKMEowBeBKQEpAAJBKUEpQCOBKYEpgBjBKgEqAABBKoEqgAOBKwErABkBK0ErQAIBK4ErgCOBK8EsAAMBLEEsQCOBLQEtABWBLUEtQBkBLkEuQAJBL4EvwCOBMAEwAAJBMEEwQBWBMIEwgAJBMMExAAEBMcEyABsBMoEygBWBMwEzABgBM8EzwAEBNEE0gABBNME0wACBNUE1gCOBNcE1wBWBNgE2QBkBNwE3gCOBOAE4gALBOME4wAEBOcE6ABWBOkE6gAHBOsE7AA/BO0E7QBgBO8E7wCOBPAE8AAJBPEE8QA8BPIE8wBgBPUE9QBeBPYE9gCOBPcE9wANBPkE+QBgBP4E/gBTBP8E/wCqBQAFAABgBQEFAgABBQMFAwCOBQQFBAABBQcFBwABBQgFCACqBQkFCgABBQ0FDQBWBQ4FEQABBRMFEwAgBRQFFACXBRUFFQAgBRYFFwCDBRgFGACSBRkFHAAgBR0FHQA2BR4FHgBqBR8FIgCTBSMFJACSBSUFJQAVBSYFJgCRBScFJwCSBSgFKAAgBSkFKQCSBSsFKwAgBSwFLACSBS0FLgAxBS8FLwAgBTAFMAA2BTEFMQASBTIFNQCTBTYFNgCSBTcFNwAuBTgFOACSBTkFOQAVBToFOgCSBTsFOwB4BTwFPAAgBT0FPQBqBT8FPwAdBUAFQABJBUIFQgCSBUMFQwAcBUcFRwCSBUgFSAAzBUkFSQCSBUoFSgA6BUsFSwCSBU0FTQCTBU4FTgAgBU8FUAAxBVEFUQAgBVIFUgCDBVMFUwCSBVQFVAA2BVUFVQBqBVYFVwCSBVkFWQAuBVoFXQCSBV4FXwAgBWAFYACSBWEFYQA2BWIFYgAuBWMFZAASBWcFaABEBWoFagA2BWsFawCSBWwFbAAVBW0FbgCSBW8FbwASBXAFcACRBXEFcgAgBXMFcwAPBXQFdgAgBXcFdwA2BXgFeABqBXkFeQBZBXoFewCTBXwFfgAgBYAFggAxBYMFgwASBYQFhACDBYUFhgCSBYcFiAA2BYkFigAgBYsFjABKBY0FjQAVBY4FjgCSBY8FjwAgBZAFkAAuBZEFkQClBZIFkwAVBZQFlACSBZUFlQAcBZYFlgAgBZcFlwA0BZgFmACSBZkFmQAVBZoFnQCSBZ4FngAVBZ8FnwCSBaAFoAAVBaIFogBSBaMFowAgBaQFpAA2BacFqAAzBaoFqgCDBasFqwA2Ba4FrwCSBbAFsAAuBbEFsQAgBbIFsgASBbMFswAzBbQFtAA2BbYFtgAzBbcFuACSBbkFuQA2BboFugAzBbsFuwCSBbwFvgAzBb8FvwCSBcAFwACXBcEFwQCDBcIFwgAgBcMFxQCSBcYFyQCmBcoFygA3BcsFywCmBcwFzAAQBc0F0QCmBdIF0gBYBdMF1QCmBdYF1gA3BdcF1wBrBdgF3QCmBd4F3gAWBd8F3wCnBeAF4ACmBeEF4QBOBeIF4wCmBeQF5ABOBeUF5QAsBeYF5wAwBegF6ABOBekF6QA3BeoF6gCYBesF7wCmBfAF8AAsBfEF8QCmBfIF8gAWBfMF8wCmBfQF9AB5BfUF9QBOBfYF9gBrBfcF9wCmBfgF+ABbBfkF+QBcBfoF+gAsBfsF+wCmBfwF/ABaBf0F/QAsBf4F/gBOBf8F/wBQBgAGAACmBgEGAQAQBgIGAgCmBgMGAwA7BgQGBACmBgUGBQBrBgYGBgAlBgcGBwBOBggGCQAyBgoGCgBOBgsGDACmBg0GDQA3Bg4GDgBrBg8GEQCmBhIGEgAsBhMGFACmBhYGFgCmBhcGGABOBhkGGQAsBhoGGgA3BhsGHACYBh0GHwCmBiAGIABYBiIGIgAWBiMGJABFBiUGJQCmBiYGJgA3BicGJwCmBigGKAAWBikGKgCmBisGKwCYBiwGLACnBi0GLgAQBi8GLwBXBjAGMACmBjEGMgBOBjMGMwA3BjQGNQBrBjYGNwCmBjgGOgBOBjwGPgAwBj8GPwCYBkAGQgCmBkMGRAA3BkUGRgAeBkcGSAAfBkkGSQAWBkoGSgCmBksGSwBOBkwGTAAsBk4GTwAWBlAGUACmBlEGUQBaBlIGUgBOBlMGUwA1BlQGVACmBlUGVQAWBlYGWACmBlkGWgAQBlsGWwBOBlwGXQAQBl8GZAAQBmYGZgCSBmcGZwBVBmgGaAABBmsGawABBm0GbQBDBm8GbwCOBnIGcgABBnUGdQAGBnYGdgCOBnkGeQBiBnoGegAJBnsGewBBBnwGfACOBn0GfQBWBn4GfgAIBn8GfwCkBocGhwBUBogGiABBBooGigADBowGjQCOBo8GjwCUBpAGkAABBpIGlABBBpUGlQCOBpcGlwCOBpkGmQBABpoGmgCOBpsGmwBABqYGqAABBtYG1wBUBucG6ABBBvwG/AAgBv4G/gAxBv8G/wAgBwAHAAClBwEHAQBRBwIHAgCSBwMHAwCgBwQHBACTBwUHBQCSBwYHBgBnBwcHBwCSBwgHCAAxBwkHCgAgBwsHCwAjBwwHDAAoBw0HDgAgBw8HDwAtBxAHEACTBxEHEQAgBxIHEgATBxMHEwCTBxQHFAAgBxYHFwAdBxgHGgCTBxsHHQAgBx4HHgClBx8HIACSByEHIQAtByIHIgCSByMHIwB1ByQHJAAgByUHJQB1ByYHJwAgBygHKAAoBykHKQBLByoHKgBdBysHKwCSBywHLACXBy0HLQAvBy4HLgAgBy8HLwAkBzAHMACSBzEHMQAoBzIHMgAgBzMHMwBJBzQHNAAgBzYHNgCRBzcHNwAoBzgHUAAgB1EHWAClB1kHbwCSB3AHcQCTB3IHeAAdB3oHfwAdB4AHhwAgB4gHiQAoB4oHmQCTB5oHsAAgB7IHsgCXB7MHswBRB7QHtAAgB7UHtQAQB7YHtwCmB7gHuAAQB7kHuQCmB7oHugBpB7sHuwCmB7wHvABOB70HvgCmB78HvwAQB8AHwACnB8EHwQCmB8IHwgAXB8MHwwBOB8QHxQCmB8YHxwAqB8gHyAAsB8kHyQA4B8oHygBOB8sHywA3B8wHzAAlB80HzQCoB84HzgCmB88H0ABbB9EH0wA4B9QH1ABOB9UH1QCoB9YH1gAQB9cH2QCmB9oH2gARB9sH2wCmB9wH3AAhB90H3QBOB94H3gAhB98H4ABOB+EH4QCmB+IH4gBMB+MH4wAQB+QH5ACmB+UH5QCOB+YH5gBOB+cH6QA4B+oH6gBOB+sH6wAkB+0H7QAoB+4H7gBOB+8H7wBcB/AH8ABOB/EH8QCmB/IH8gCnB/MH8wCmB/QIDAAQCA0IOwCmCDwIQwBOCEQIRQCmCEYIVQA4CFYIbACoCG4IbgAgCHEIcQCiCHIIcgBzCHMIcwCKCHQIdAB8CHUIdQBwCHYIdgBmCHcIdwCfCHgIeAB6CHoIegCFCHwIfAB0CH0IfQB+CH4IfgB9CH8IfwBxCIEIgQCfCIIIggB7CIQIhACeCJwInACiCJ0IpgCNCLEIxACjCMYI1QCjCNYI1wAiCNgI2QBfCNoI2gAiCN0I3QB2CN4I3gCHCN8I3wBICOEI4QCWCOQI5ACICOUI5QBtCOYI5gB7COcI5wCLCO0I7gCNCPQI9ABuCPUI9gCjCPwI/ABuCP0JBABICQUJBQCLCQYJCgBICQ0JDgAiCQ8JEgAmCRMJEwCbCRQJFACECRUJFQCbCRYJFgCECRcJGAAmCRkJGQCbCRoJGgCECRsJGwCbCRwJHACECR8JIACjCSEJIQBICSIJIgBfCTAJMAAgCTEJMQCOCTMJMwBhCTQJNAAg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BMwEzAACBM4EzgACBNAE0AACBOQE5AADBOYE5gADBOwE7AAFBPkE+gAHBP8E/wABBQAFAAACBQUFBQADBQYFBgACBQkFCgAFBQsFCwACBQwFDAADBQ0FDQAFBRIFEgACBSIFIgAKBTIFMgAKBTQFNAAKBVoFWgAKBVwFXAAKBWAFYAAKBWIFYwAKBWYFZgAKBWwFbAAKBW4FbgAKBXAFcAAKBaAFoAAKBa4FsAAKBbcFtwAKBb8FvwAKBmoGagADBn4GfgAGBpEGkQAFAAIC3gABABgAPAAZABkAKQAaAB8APAAgACIABQAqAC8AKQAwADAAeQAxADIAKQBbAFwARgBhAGgAKQBqAGoAKQByAHIAKACbAJ0AQQCtAM8AKQDQANAAQwDRANYAKQDcAN0AKQDnAOgARADpAOkAHgDqAO8ARADxAPEAKQDyAPoACAD8APwACAD9AP0AUgEAAQAACAEaARoAKQEeAR4AKwEfAR8ACQEhASEAPAEpASkAeQEqATIACQE0ATUACQE9AT0APAFAAUAAKQFCAUIAKQFEAUQAKQFFAUUARAFLAUsAKAFMAUwAWwFNAU4AXQFPAVIAWwFTAVMAXQFUAVUAWwFWAVYAIwFXAW8AXQFwAXAAWwFxAXYAXQF3AXcAagF4AXoARwGBAYEAKQGFAYsAXQGMAYwATAGNAY0AXQGPAbYAXQG3AbgAEwG5AbkAdQG6AboAXQG7AbsAXwG8AbwAXQHBAcUAXQHGAcgAUQHKAcoAUQHQAdEAXQHSAdIAIwHTAdgAXQHZAdkAXwHbAdsAXwHdAd0AXwHgAeEAXQHqAeoAagHvAe8AWwIAAgAAagIDAgQAGAIIAgoAGAIOAg4AWwIQAhAAcAITAhMAWQIjAiYAWwInAigAagIpAioAWwIrAisAHgIsAjMAWwI1AjgAWwI5AlsAXQJcAlwAXwJdAmMAXQJkAmQAWwJmAmYAWwJnAmcAXQJqAm0AXQJuAm8AWwJwAnAAIwJxAnUAWwJ3AncAWwJ5AnoAWwJ8AnwAWwJ+An8AHwKAAoAAHgKBAoYAHwKHAocAGAKIAokAHwKZApoAWwKbApsABAKgArcAagK5ArkAXQK9Ar0AWwLDAsMAXQLEAsQAagLGAsgAagLJAskAIwLKAsoAagLLAssAIwLMAswAbQLNAtIAbgLTAtMAbQLUAtQAWwLVAtUAcALWAuAAIwLhAuEAbQLuAu4ARwLvAu8AXQLxAvEAXQLyAvIAagLzAvMAXQL0AvQAWwL1AvUAXQL2AvYAHwMPAw8AXgMQAxAAVQMRAxEAcQMSAxMAVQMVAxUASgMWAxYAVQMZAxoAVQMbAxsAXgMdAx0AVQMeAx4AXgMfAx8AJAMgAzcACwM4AzgAXgM5Az4ACwM/A0EADANCA0QAVQNGA0cAVQNIA08AXgNQA1UAVQNXA1gAVQNaA28AVQNzA3QAVQN1A3YAXgN3A3gAJQN6A3oAVQN9A38AVQOAA4cAXgOJA4kAXgOLA5EAVQOZA5oAVQOcA5wAVQOeA54AVQOgA6EAVQOjA6MAGQOlA6UAGQOmA6sAVQOtA7MAVQO0A7QACwO1A7UAVQO3A7cAXgO5A7kAXgO6A7oAVQO7A7sAXgO8A7wAYwO9A70AfgO+A74AVQO/A8EAWgPDA88AVQPQA9EAXgPSA9IAKQPTA/AAXgPyA/gAXgP5A/sAVQP9A/0AVQP+A/8AXgQABAgAVQQJBBAAYwQRBBEAVQQSBBoAfwQcBBwAfwQdBB8AVQQgBCAAfwQ9BD0AbAQ/BD8ACwRABEUAbwRGBEYAVQRHBEcAcQRIBFIAJARTBFkAfgRaBFwAVQRdBF0ASgReBF4AVQRhBGEARwRiBGIAXQRzBHMAPAR5BHkAPQR9BH0AeQR+BH4ARgSFBIUAPgSGBIYAQQSIBIgAKQSLBIsAKQSMBIwACASNBI4AKgSPBI8AKQSQBJAAeQSRBJEAKASXBJcACASZBJkAPgSbBJsARAScBJwAKQSdBJ0ARgShBKEACASjBKMAPwSkBKQACASlBKUAKQSmBKYACgSoBKgAPASqBKoARQSsBKwARgStBK0AeASuBK4AKQSvBLAAKwSxBLEAKQS0BLQAeQS1BLUARgS5BLkACAS+BL8AKQTABMAACATBBMEAeQTCBMIACATDBMQAKATHBMgABgTKBMoAeQTMBMwAPgTPBM8AKATQBNAAQQTRBNIAPATTBNMABQTVBNYAKQTXBNcAeQTYBNkARgTcBN4AKQTgBOIAKgTjBOMAKATnBOgAeQTpBOoAAQTrBOwABwTtBO0APgTvBO8AKQTwBPAACATyBPMAPgT1BPUAPwT2BPYAKQT5BPkAPgT+BP4APQUABQAAPgUBBQIAPAUDBQMAKQUEBQQAPAUHBQcAPAUJBQoAPAUNBQ0AeQUOBREAPAUTBRMAXQUUBRQASQUVBRUAXQUWBRcABAUYBRgAWwUZBRwAXQUdBR0AcAUeBR4AdQUfBSIAagUjBSQAWwUlBSUAEAUmBSYAEgUnBScAWwUoBSgAXQUpBSkAWwUrBSsAXQUsBSwAWwUtBS4AIwUvBS8AXQUwBTAAcAUxBTEADgUyBTUAagU2BTYAWwU3BTcAIAU4BTgAWwU5BTkAEAU6BToAWwU7BTsAHwU8BTwAXQU9BT0AdQVABUAAGAVCBUIAWwVDBUMAVgVHBUcAWwVIBUgAbQVJBUkAWwVKBUoAcwVLBUsAWwVNBU0AagVOBU4AXQVPBVAAIwVRBVEAXQVSBVIABAVTBVMAWwVUBVQAcAVVBVUAdQVWBVcAWwVZBVkAIAVaBV0AWwVeBV8AXQVgBWAAWwVhBWEAcAViBWIAIAVjBWQADgVnBWgAMAVqBWoAcAVrBWsAWwVsBWwAEAVtBW4AWwVvBW8ADgVwBXAAEgVxBXIAXQVzBXMARwV0BXYAXQV3BXcAcAV4BXgAdQV5BXkAUQV6BXsAagV8BX4AXQV/BX8ATwWABYIAIwWDBYMADgWEBYQABAWFBYYAWwWHBYgAcAWJBYoAXQWLBYwAMgWNBY0AEAWOBY4AWwWPBY8AXQWQBZAAIAWRBZEAEwWSBZMAEAWUBZQAWwWVBZUAVgWWBZYAXQWXBZcAbgWYBZgAWwWZBZkAEAWaBZ0AWwWeBZ4AEAWfBZ8AWwWgBaAAEAWjBaMAXQWkBaQAcAWnBagAbQWqBaoABAWrBasAcAWuBa8AWwWwBbAAIAWxBbEAXQWyBbIADgWzBbMAbQW0BbQAcAW2BbYAbQW3BbgAWwW5BbkAcAW6BboAbQW7BbsAWwW8Bb4AbQW/Bb8AWwXABcAASQXBBcEABAXCBcIAXQXDBcUAWwXGBckAVQXKBcoAcQXLBcsAVQXMBcwACwXNBdEAVQXTBdUAVQXWBdYAcQXXBdcAJQXYBd0AVQXeBd4AEQXfBd8AWgXgBeAAVQXhBeEAXgXiBeMAVQXkBeQAXgXlBeUAfwXmBecAawXoBegAXgXpBekAcQXqBeoASgXrBe8AVQXwBfAAfwXxBfEAVQXyBfIAEQXzBfMAVQX0BfQAYwX1BfUAXgX2BfYAJQX3BfcAVQX5BfkAGQX6BfoAfwX7BfsAVQX8BfwAFwX9Bf0AfwX+Bf4AXgX/Bf8AcgYABgAAVQYBBgEACwYCBgIAVQYDBgMAdAYEBgQAVQYFBgUAJQYGBgYAYQYHBgcAXgYIBgkAbAYKBgoAXgYLBgwAVQYNBg0AcQYOBg4AJQYPBhEAVQYSBhIAfwYTBhQAVQYWBhYAVQYXBhgAXgYZBhkAfwYaBhoAcQYbBhwASgYdBh8AVQYiBiIAEQYjBiQASwYlBiUAVQYmBiYAcQYnBicAVQYoBigAEQYpBioAVQYrBisASgYsBiwAWgYtBi4ACwYvBi8ADAYwBjAAVQYxBjIAXgYzBjMAcQY0BjUAJQY2BjcAVQY4BjoAXgY8Bj4AawY/Bj8ASgZABkIAVQZDBkQAcQZFBkYAVwZJBkkAEQZKBkoAVQZLBksAXgZMBkwAfwZOBk8AEQZQBlAAVQZRBlEAFwZSBlIAXgZTBlMAbwZUBlQAVQZVBlUAEQZWBlgAVQZZBloACwZbBlsAXgZcBl0ACwZfBmQACwZmBmYAWwZoBmgAPAZrBmsAPAZvBm8AKQZyBnIAPAZzBnMAQQZ2BnYAKQZ6BnoACAZ7BnsACQZ8BnwAKQZ9Bn0AeQZ+Bn4AeAZ/Bn8AQgaIBogACQaMBo0AKQaPBo8AQAaQBpAAPAaSBpQACQaVBpUAKQaXBpcAKQaYBpgAQQaZBpkAQwaaBpoAKQabBpsAQwamBqgAPAbnBugACQb8BvwAXQb+Bv4AIwb/Bv8AXQcABwAAEwcBBwEAdwcCBwIAWwcEBwQAagcFBwUAWwcGBwYAWQcHBwcAWwcIBwgAIwcJBwoAXQcMBwwAYgcNBw4AXQcPBw8AZgcQBxAAagcRBxEAXQcSBxIATAcTBxMAagcUBxQAXQcYBxoAagcbBx0AXQceBx4AEwcfByAAWwchByEAZgciByIAWwcjByMAXwckByQAXQclByUAXwcmBycAXQcoBygAYgcpBykAWAcqByoAZAcrBysAWwcsBywASQctBy0AZwcuBy4AXQcvBy8AYAcwBzAAWwcxBzEAYgcyBzIAXQczBzMAGAc0BzQAXQc2BzYAEgc3BzcAYgc4B1AAXQdRB1gAEwdZB28AWwdwB3EAageAB4cAXQeIB4kAYgeKB5kAageaB7AAXQeyB7IASQezB7MAdwe0B7QAXQe1B7UACwe2B7cAVQe4B7gACwe5B7kAVQe6B7oAfge7B7sAVQe8B7wAXge9B74AVQe/B78ACwfAB8AAWgfBB8EAVQfDB8MAXgfEB8UAVQfIB8gAfwfJB8kAJAfKB8oAXgfLB8sAcQfMB8wAYQfNB80AfQfOB84AVQfRB9MAJAfUB9QAXgfVB9UAfQfWB9YACwfXB9kAVQfaB9oAewfbB9sAVQfdB90AXgffB+AAXgfhB+EAVQfiB+IAfAfjB+MACwfkB+QAVQflB+UAKQfmB+YAXgfnB+kAJAfqB+oAXgfrB+sAYAftB+0AYgfuB+4AXgfvB+8AGQfwB/AAXgfxB/EAVQfyB/IAWgfzB/MAVQf0CAwACwgNCDsAVQg8CEMAXghECEUAVQhGCFUAJAhWCGwAfQhuCG4AXQhxCHEAOghyCHIAGghzCHMAaAh0CHQAegh1CHUAUwh2CHYAUgh3CHcAOAh4CHgANgh5CHkATQh6CHoAMwh7CHsAdgh8CHwAGwh9CH0AaQh+CH4AIQh/CH8AFQiACIAAFAiBCIEAOAiCCIIANwiDCIMATQiECIQANAiFCIUAdgicCJwAOgidCKYAJwinCLAAJgixCMQAOwjGCNUAOwjWCNcAHQjYCNkADwjaCNoAHQjbCNsAUAjdCN0ANQjfCN8AFgjgCOAALwjhCOEALgjjCOMAXAjkCOQAZQjlCOUADQjmCOYANwjnCOcAIgjqCOoAXAjtCO4AJwjwCPAAHAjyCPIAAgj0CPQAAwj1CPYAOwj4CPgAHAj6CPoAAgj8CPwAAwj9CQQAFgkFCQUAIgkGCQoAFgkNCQ4AHQkPCRIAHgkTCRMAMQkUCRQAVAkVCRUAMQkWCRYAVAkXCRgAHgkZCRkAMQkaCRoAVAkbCRsAMQkcCRwAVAkdCR4AJgkfCSAAOwkhCSEAFgkiCSIADwkwCTAAXQkxCTEAKQkzCTMARAk0CTQAXQlCCUIAXQlDCUMAKQlFCUUARAlGCUYAXQl0CXQAFgl2CXYAFgl3CXcAJwl4CXgAOwl5CXkAJwl6CXoAOwl7CXwAFgl9CX0ATgl+CX4AFgl/CYIATgmHCYgAFgmLCYsATgmNCY0AQgmOCY4APAmSCZIAWwmWCZYAJwmXCZcAOwmZCZkATgmaCZsAFgmcCZwATgmdCZ0AFgmeCZ4ATgmmCacAFgn/Cf8ASAoACgAALAoECgQALgoFCgUAOQoMCgwAKQoaChoALQojCiMADwokCiQAHgolCiYAFgovCjEAJgoyCjQAOwo2CjYAdQo3CjcAHgo4CjgAHQo7CjsAFgo8CjwADwo+Cj4AHgpCCkIAHgp1CnUAFgsACwEACQsCCwMAIwsECwUAJAACBUQABAAABXIF4gAJAEoAAAADAAP/8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAH//7/4v/2//EABwAFAAMABwAHAAf//QAL/+wAAwAH/+wABf/7AAf/7wAHAAUACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+L/+P/2AAAAAAAAAAAAAAAAAAAAAP/kAAAAAP/sAAD/8QAA/+wAAAAAAAP/+P/5/+7/7P/2//b//v/9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5//OAAAAAAAA/9D/7AAA//b/y//Y//EAAAAA/5z/2AAAAAoAAwAA/7D/2P+wAAAAAAAA/+wAAAAAAAAAAP/a/9AAB//i/+7/5//x/9f/2f/c//L/7P/7/+wAA//2/87/7P/u/8T/vv/2AAX/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/xP/r//EAAP/w//EAAAAAAAD/8QAA/8QAAAAA/9j/8f/E/+j/zgAAAAAAAP/i//H/4v/i/+wAAAAA/+IAAAAA/87/9gAA//H/7AAAAAAAAP/s/+z/6gAA/8QAAAAA/+b/7AAA/+z/4v/iAAD/5v/m/+f/7P/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAB//2AAD/9v/zAA0AAwADAAcAAAAN/+cAFAAAAAcAFP/iAAAAAAAA//EAFwAKABQAAAAA/+L/9QAAAAAAAAAAAAUAAAAAAAAAAAADAAAAAAAA//YAAAAAAAAAAAAAAAAAAAAAAAMACgAKAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/5//iAAAAAAAK/9H/7AAUAAD/4v/s//IAAAAA/8T/2P/uAAoACgAA/8T/7P/EAAAAAAAA/+IADAAAAAAAAP/b/+IADf/i/+z/5//2/+IAAP/sAAD/7AAA/+wACgAA/+L/7P/s/+L/1QAAAAcAAAAAAAAAAAAAAAD/9v/Y/+z/xP/2/+wAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2//YAAAAAAAD/9v/iAAP/7AAAAAAAAAAAAAD/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAD/9AAA/98AAAAA//YAAAAAAAAAAAAAAAAABf/s/8T/3//bAAAAAAAAAAAAAAAK/9gAAP/YAAAAAP/EAAD/1QAA/84AAAAAAAn/5//i/87/2P/iAAD/9f/pAAAAAP/i//T/7v/s/+7/8f/r/+wAAAAA/+wAAP/O//MAAP/2AAAAAAAAAAD/2P/sAAD/4gAAAAAAAP/0AAAAAAAAAAAAAAAA//P/2P/q//MAAQAVBRgFGQUmBUoFSwVUBVYFWwVeBYcFjAWYBZ8FogWrBawFswW5BwMHDwc2AAIAEgUYBRgAAwUZBRkABwUmBSYAAgVKBUsACAVUBVQABQVWBVYABQVbBVsABgVeBV4ABAWHBYcABQWMBYwABQWfBZ8AAQWiBaIAAwWrBawABQWzBbMABQW5BbkABQcDBwMABwcPBw8ABgc2BzYAAgACATkA6QDpADAA/QD9ACgBTQFOAAMBUwFTAAMBVgFWACEBVwFvAAMBcQF2AAMBdwF3ACABeAF6ACIBhQGLAAMBjAGMABoBjQGNAAMBjwG2AAMBtwG4ACcBuQG5ADcBugG6AAMBuwG7AEUBvAG8AAMBwQHFAAMBxgHIADoBygHKADoB0AHRAAMB0gHSACEB0wHYAAMB2QHZAEUB2wHbAEUB3QHdAEUB4AHhAAMB6gHqACACAAIAACACAwIEAA4CCAIKAA4CEAIQAD4CEwITAEACJwIoACACKwIrADACOQJbAAMCXAJcAEUCXQJjAAMCZwJnAAMCagJtAAMCcAJwACECfgJ/ABMCgAKAADACgQKGABMChwKHAA4CiAKJABMCmwKbACoCoAK3ACACuQK5AAMCwwLDAAMCxALEACACxgLIACACyQLJACECygLKACACywLLACECzALMADUCzQLSAD0C0wLTADUC1QLVAD4C1gLgACEC4QLhADUC7gLuACIC7wLvAAMC8QLxAAMC8gLyACAC8wLzAAMC9QL1AAMC9gL2ABMEYQRhACIEYgRiAAMFEwUTAAMFFAUUAD8FFQUVAAMFFgUXACoFGQUcAAMFHQUdAD4FHgUeADcFHwUiACAFJQUlAAgFJgUmAAkFKAUoAAMFKwUrAAMFLQUuACEFLwUvAAMFMAUwAD4FMQUxAAUFMgU1ACAFNwU3ABQFOQU5AAgFOwU7ABMFPAU8AAMFPQU9ADcFQAVAAA4FQwVDAC0FSAVIADUFSgVKADYFTQVNACAFTgVOAAMFTwVQACEFUQVRAAMFUgVSACoFVAVUAD4FVQVVADcFWQVZABQFXgVfAAMFYQVhAD4FYgViABQFYwVkAAUFZwVoAAYFagVqAD4FbAVsAAgFbwVvAAUFcAVwAAkFcQVyAAMFcwVzACIFdAV2AAMFdwV3AD4FeAV4ADcFeQV5ADoFegV7ACAFfAV+AAMFgAWCACEFgwWDAAUFhAWEACoFhwWIAD4FiQWKAAMFiwWMABsFjQWNAAgFjwWPAAMFkAWQABQFkQWRACcFkgWTAAgFlQWVAC0FlgWWAAMFlwWXAD0FmQWZAAgFngWeAAgFoAWgAAgFowWjAAMFpAWkAD4FpwWoADUFqgWqACoFqwWrAD4FsAWwABQFsQWxAAMFsgWyAAUFswWzADUFtAW0AD4FtgW2ADUFuQW5AD4FugW6ADUFvAW+ADUFwAXAAD8FwQXBACoFwgXCAAMG/Ab8AAMG/gb+ACEG/wb/AAMHAAcAACcHAQcBAEQHBAcEACAHBgcGAEAHCAcIACEHCQcKAAMHDAcMAEEHDQcOAAMHDwcPAB8HEAcQACAHEQcRAAMHEgcSABoHEwcTACAHFAcUAAMHGAcaACAHGwcdAAMHHgceACcHIQchAB8HIwcjAEUHJAckAAMHJQclAEUHJgcnAAMHKAcoAEEHKgcqAEIHLAcsAD8HLQctAEMHLgcuAAMHMQcxAEEHMgcyAAMHMwczAA4HNAc0AAMHNgc2AAkHNwc3AEEHOAdQAAMHUQdYACcHcAdxACAHgAeHAAMHiAeJAEEHigeZACAHmgewAAMHsgeyAD8HswezAEQHtAe0AAMH7QftAEEIbghuAAMIcQhxAEkIcghyAA8IcwhzADQIdAh0ADMIdQh1ACkIdgh2ACgIdwh3ADEIeAh4AB0IeQh5ACYIegh6ADsIewh7ADkIfAh8ABwIfQh9ADwIfgh+ABUIfwh/AAwIgAiAAAsIgQiBADEIggiCAB4IgwiDACYIhAiEAC4IhQiFADkInAicAEkInQimABkIpwiwABgIsQjEADgIxgjVADgI1gjXABEI2AjZAAcI2gjaABEI2wjbAAoI3QjdABII3wjfAA0I4AjgAEcI4QjhACQI4wjjAC8I5AjkADII5QjlAAQI5gjmAB4I5wjnABcI6gjqAC8I7QjuABkI8AjwABAI8gjyAAEI9Aj0AAII9Qj2ADgI+Aj4ABAI+gj6AAEI/Aj8AAII/QkEAA0JBQkFABcJBgkKAA0JDQkOABEJDwkSADAJEwkTACsJFAkUACwJFQkVACsJFgkWACwJFwkYADAJGQkZACsJGgkaACwJGwkbACsJHAkcACwJHQkeABgJHwkgADgJIQkhAA0JIgkiAAcJMAkwAAMJNAk0AAMJQglCAAMJRglGAAMJdAl0AA0Jdgl2AA0Jdwl3ABkJeAl4ADgJeQl5ABkJegl6ADgJewl8AA0JfQl9AEgJfgl+AA0JfwmCAEgJhwmIAA0JiwmLAEgJlgmWABkJlwmXADgJmQmZAEgJmgmbAA0JnAmcAEgJnQmdAA0JngmeAEgJpgmnAA0J/wn/ACUKAAoAACMKBAoEACQKBQoFABYKGgoaAEYKIwojAAcKJAokADAKJQomAA0KLwoxABgKMgo0ADgKNgo2ADcKNwo3ADAKOAo4ABEKOwo7AA0KPAo8AAcKPgo+ADAKQgpCADAKdQp1AA0LAgsDACEAAgSYAAQAAAT6Be4ACgA6AAD/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMACgADAAf//QADAAf//QAH//kAA//5//0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAcAB//5AAMAAP/9AAr/+AAA//b/9v/5AA3//QAH//3/+f/9//n/+f/5/+z//f/2//kADv/9AAr/+wAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/sP/R/7oAAAAA/+z/1QAAAAAAAAAAAAAAAAAAAAD/zv/i/9L/4P/Y/9kAAAAAAAAAFAAAAAAAAP+cAAD/2AAH/5z/2P/sAAf/2P/i/+wAB//W/+7/2P/X/9z/+P+c/+P/xP/Q//H/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/2AAD/7AAAAAD/7P/O/+L/9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/sAAD/7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/9gAAAAAAAAAAAAAAAAAA/+L/5wAA//AAAAAAAAAAAAAAAAoAFAAUAAoACv/9AA0AHv/2AAr//QAKAAD/8//9ACgAAAAN//b/7P/9//b/4gAAAAAAAAAAAAAAKAAAABQAAAAeAAAAAAAAAAD/xP/sAAAAAAAKAAAAAAAAAAAAFAAAAAAAFAAAAAAAAAANAAAAAAAAAAD/9f/zAAAAAAAAAAX//QAAAAAAAAAAAAAAAAAAAAD//QAA//MAAAAAAAAAAAAAAAAACgAAAAAAAP+cAAAAAAAP/8T/4gAAAAcAAP/bAAAAAAAAAAAAAAAAAAAAAP+wAAD/2//sAAAAAAAAAAAAAAAAAAAAAAAKABQAFAAAAAD/9gAKAAAAAAAA/+AAAP/i/+L/7AAQAAAAAAAAAAAAAP/Y/+L/2P/Y/+z/2P/yAAD/+QAH/+IABwAAAAD/2AAA/8QAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAAAA//gACv/5/+wAAAAA/87/7P/YAAAAAP/3//MAAAAAAAAAAAAAAAAAAAAA//MAAAAA/+z/7P/2AAkAAAAAABQADwAHAAD/sAAA/+wAC/+w/+wAAAAUAAAAAAAAAAf/7P//AAD/8//sAAD/sP/xAAD/4v/4AAAAAAAAAAAACwALAAD/8QAAAAAABwAH/+UAAAAA/+wAAP/lAAD/4v/b/+UAAAAAAAD/7P/i/+z/2P/i/+L/7AAA/+z/8wAA//UAAP/iAAf/8wAA/+wAAP/E/+IAA//sAAAAAAAAAAAAAAADAAAAAAAA//YAAP/2AAP/4gAAAAAAAQAvBcYFxwXIBckFygXLBc8F0AXRBdIF2wXmBesF7QX6Bf0GAwYEBgYGCwYMBg0GDwYTBhUGFgYXBhoGGwYdBh4GIQYiBigGKgYsBkAGQgZIBlQGVQZWBl8GYAe3B8wH5AACACgFxgXGAAMFxwXIAAIFyQXJAAMFygXKAAUFywXLAAIFzwXRAAMF0gXSAAEF2wXbAAIF5gXmAAgF6wXrAAIF7QXtAAIF+gX6AAcF/QX9AAcGAwYEAAkGBgYGAAYGCwYLAAMGDAYMAAcGDQYNAAUGDwYPAAUGEwYTAAIGFQYVAAIGFgYWAAcGFwYXAAQGGgYaAAUGGwYbAAIGHQYdAAcGHgYeAAIGIQYhAAEGIgYiAAIGKAYoAAIGKgYqAAIGLAYsAAIGQAZAAAMGQgZCAAMGSAZIAAUGVQZWAAcGXwZgAAUHtwe3AAMHzAfMAAYH5AfkAAIAAgDkAOkA6QAZAisCKwAZAoACgAAZAw8DDwAVAxEDEQAMAxUDFQAPAxsDGwAVAx4DHgAVAx8DHwANAyADNwACAzgDOAAVAzkDPgACAz8DQQADA0gDTwAVA3UDdgAVA3cDeAAzA4ADhwAVA4kDiQAVA6MDowAIA6UDpQAIA7QDtAACA7cDtwAVA7kDuQAVA7sDuwAVA7wDvAAwA78DwQAsA9AD0QAVA9MD8AAVA/ED8QAuA/ID+AAVA/4D/wAVBAkEEAAwBBIEGgALBBwEHAALBCAEIAALBD0EPQAeBD8EPwACBEcERwAMBEgEUgANBF0EXQAPBcoFygAMBcwFzAACBdIF0gAQBdYF1gAMBdcF1wAzBd4F3gAHBd8F3wAsBeEF4QAVBeQF5AAVBeUF5QALBeYF5wAcBegF6AAVBekF6QAMBeoF6gAPBfAF8AALBfIF8gAHBfQF9AAwBfUF9QAVBfYF9gAzBfkF+QAIBfoF+gALBfwF/AAqBf0F/QALBf4F/gAVBf8F/wAOBgEGAQACBgMGAwAyBgUGBQAzBgYGBgA1BgcGBwAVBggGCQAeBgoGCgAVBg0GDQAMBg4GDgAzBhIGEgALBhcGGAAVBhkGGQALBhoGGgAMBhsGHAAPBiAGIAAQBiEGIQA3BiIGIgAHBiMGJAAGBiYGJgAMBigGKAAHBisGKwAPBiwGLAAsBi0GLgACBi8GLwADBjEGMgAVBjMGMwAMBjQGNQAzBjgGOgAVBjwGPgAcBj8GPwAPBkMGRAAMBkUGRgABBkcGSAAJBkkGSQAHBksGSwAVBkwGTAALBk4GTwAHBlEGUQAqBlIGUgAVBlUGVQAHBlkGWgACBlsGWwAVBlwGXQACBl4GXgA3Bl8GZAACB7UHtQACB7gHuAACB7wHvAAVB78HvwACB8AHwAAsB8MHwwAVB8gHyAALB8kHyQANB8oHygAVB8sHywAMB8wHzAA1B80HzQAtB9EH0wANB9QH1AAVB9UH1QAtB9YH1gACB9wH3AAuB90H3QAVB94H3gAuB98H4AAVB+IH4gArB+MH4wACB+YH5gAVB+cH6QANB+oH6gAVB+4H7gAVB+8H7wAIB/AH8AAVB/IH8gAsB/QIDAACCDwIQwAVCEYIVQANCFYIbAAtCHIIcgAWCHMIcwA5CHUIdQApCHgIeAA4CHsIewA0CHwIfAAXCH8IfwASCIIIggAaCIUIhQA0CJ0IpgAhCKcIsAAfCLEIxAAgCMYI1QAgCNYI1wAvCNgI2QA2CNoI2gAvCNsI2wAoCN0I3QAYCN8I3wAUCOAI4AAnCOEI4QAkCOQI5AAxCOUI5QAmCOYI5gAaCOcI5wAdCO0I7gAhCPAI8AAKCPII8gAECPQI9AAFCPUI9gAgCPgI+AAKCPoI+gAECPwI/AAFCP0JBAAUCQUJBQAdCQYJCgAUCQ0JDgAvCQ8JEgAZCRMJEwATCRUJFQATCRcJGAAZCRkJGQATCRsJGwATCR0JHgAfCR8JIAAgCSEJIQAUCSIJIgA2CXQJdAAUCXYJdgAUCXcJdwAhCXgJeAAgCXkJeQAhCXoJegAgCXsJfAAUCX0JfQARCX4JfgAUCX8JggARCYcJiAAUCYsJiwARCZYJlgAhCZcJlwAgCZkJmQARCZoJmwAUCZwJnAARCZ0JnQAUCZ4JngARCaYJpwAUCf8J/wAlCgAKAAAiCgQKBAAk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AScAPQEpASkAPgEqATIANAE0ATUANAE2ATwAHwE9AT0AAQFAAUAAQAFCAUIAQAFEAUQAQAFGAUYAHwFMAUwAEAFNAU4AEQFPAVIAEAFTAVMAEQFUAVUAEAFWAVYAOgFXAW8AEQFwAXAAEAFxAXYAEQF3AXcAVQGBAYEAQAGFAYsAEQGMAYwAIgGNAY0AEQGPAbYAEQG3AbgABwG5AbkAMgG6AboAEQG7AbsAJAG8AbwAEQHBAcUAEQHQAdEAEQHSAdIAOgHTAdgAEQHZAdkAJAHbAdsAJAHdAd0AJAHgAeEAEQHqAeoAVQHvAe8AEAIAAgAAVQIOAg4AEAITAhMADgIjAiYAEAInAigAVQIpAioAEAIrAisAFAIsAjMAEAI1AjgAEAI5AlsAEQJcAlwAJAJdAmMAEQJkAmQAEAJmAmYAEAJnAmcAEQJqAm0AEQJuAm8AEAJwAnAAOgJxAnUAEAJ3AncAEAJ5AnoAEAJ8AnwAEAKAAoAAFAKZApoAEAKgArcAVQK5ArkAEQK9Ar0AEALDAsMAEQLEAsQAVQLGAsgAVQLJAskAOgLKAsoAVQLLAssAOgLUAtQAEALWAuAAOgLvAu8AEQLxAvEAEQLyAvIAVQLzAvMAEQL0AvQAEAL1AvUAEQMPAw8ATQMQAxAASgMRAxEALwMSAxMASgMWAxYASgMZAxoASgMbAxsATQMdAx0ASgMeAx4ATQMfAx8AMAMgAzcAAgM4AzgATQM5Az4AAgNCA0QASgNGA0cASgNIA08ATQNQA1UASgNXA1gASgNaA28ASgNxA3EASANyA3IAKANzA3QASgN1A3YATQN6A3oASgN9A38ASgOAA4cATQOJA4kATQOLA5EASgOZA5oASgOcA5wASgOeA54ASgOgA6EASgOmA6sASgOtA7MASgO0A7QAAgO1A7UASgO3A7cATQO5A7kATQO6A7oASgO7A7sATQO9A70AMQO+A74ASgO/A8EADwPDA88ASgPQA9EATQPSA9IAQAPTA/AATQPxA/EAOAPyA/gATQP5A/sASgP9A/0ASgP+A/8ATQQABAgASgQRBBEASgQSBBoAOQQcBBwAOQQdBB8ASgQgBCAAOQQ/BD8AAgRGBEYASgRHBEcALwRIBFIAMARTBFkAMQRaBFwASgReBF4ASgRiBGIAEQRzBHMAAQR9BH0APgSIBIgAQASLBIsAQASMBIwAMwSNBI4AOwSPBI8AQASQBJAAPgSXBJcAMwScBJwAQAShBKEAMwSkBKQAMwSlBKUAQASoBKgAAQSuBK4AQASvBLAAPASxBLEAQAS0BLQAPgS5BLkAMwS+BL8AQATABMAAMwTBBMEAPgTCBMIAMwTKBMoAPgTRBNIAAQTVBNYAQATXBNcAPgTcBN4AQATgBOIAOwTnBOgAPgTvBO8AQATwBPAAMwT2BPYAQAT3BPcAPQUBBQIAAQUDBQMAQAUEBQQAAQUHBQcAAQUJBQoAAQUNBQ0APgUOBREAAQUTBRMAEQUUBRQARAUVBRUAEQUYBRgAEAUZBRwAEQUeBR4AMgUfBSIAVQUjBSQAEAUmBSYABgUnBScAEAUoBSgAEQUpBSkAEAUrBSsAEQUsBSwAEAUtBS4AOgUvBS8AEQUyBTUAVQU2BTYAEAU4BTgAEAU6BToAEAU8BTwAEQU9BT0AMgVCBUIAEAVHBUcAEAVJBUkAEAVLBUsAEAVNBU0AVQVOBU4AEQVPBVAAOgVRBVEAEQVTBVMAEAVVBVUAMgVWBVcAEAVaBV0AEAVeBV8AEQVgBWAAEAVrBWsAEAVtBW4AEAVwBXAABgVxBXIAEQV0BXYAEQV4BXgAMgV6BXsAVQV8BX4AEQWABYIAOgWFBYYAEAWJBYoAEQWOBY4AEAWPBY8AEQWRBZEABwWUBZQAEAWWBZYAEQWYBZgAEAWaBZ0AEAWfBZ8AEAWjBaMAEQWuBa8AEAWxBbEAEQW3BbgAEAW7BbsAEAW/Bb8AEAXABcAARAXCBcIAEQXDBcUAEAXGBckASgXKBcoALwXLBcsASgXMBcwAAgXNBdEASgXTBdUASgXWBdYALwXYBd0ASgXfBd8ADwXgBeAASgXhBeEATQXiBeMASgXkBeQATQXlBeUAOQXoBegATQXpBekALwXrBe8ASgXwBfAAOQXxBfEASgXzBfMASgX1BfUATQX3BfcASgX6BfoAOQX7BfsASgX9Bf0AOQX+Bf4ATQYABgAASgYBBgEAAgYCBgIASgYEBgQASgYGBgYAUQYHBgcATQYKBgoATQYLBgwASgYNBg0ALwYPBhEASgYSBhIAOQYTBhQASgYWBhYASgYXBhgATQYZBhkAOQYaBhoALwYdBh8ASgYlBiUASgYmBiYALwYnBicASgYpBioASgYsBiwADwYtBi4AAgYwBjAASgYxBjIATQYzBjMALwY2BjcASgY4BjoATQZABkIASgZDBkQALwZKBkoASgZLBksATQZMBkwAOQZQBlAASgZSBlIATQZUBlQASgZWBlgASgZZBloAAgZbBlsATQZcBl0AAgZfBmQAAgZmBmYAEAZoBmgAAQZrBmsAAQZtBm0AHwZvBm8AQAZyBnIAAQZ1BnUAHAZ2BnYAQAZ5BnkAHgZ6BnoAMwZ7BnsANAZ8BnwAQAZ9Bn0APgZ/Bn8AQQaIBogANAaMBo0AQAaPBo8APwaQBpAAAQaSBpQANAaVBpUAQAaXBpcAQAaZBpkAHQaaBpoAQAabBpsAHQamBqgAAQbnBugANAb8BvwAEQb+Bv4AOgb/Bv8AEQcABwAABwcBBwEAGwcCBwIAEAcDBwMAUwcEBwQAVQcFBwUAEAcGBwYADgcHBwcAEAcIBwgAOgcJBwoAEQcLBwsATwcMBwwAFQcNBw4AEQcPBw8AKQcQBxAAVQcRBxEAEQcSBxIAIgcTBxMAVQcUBxQAEQcYBxoAVQcbBx0AEQceBx4ABwcfByAAEAchByEAKQciByIAEAcjByMAJAckByQAEQclByUAJAcmBycAEQcoBygAFQcpBykASwcqByoAFgcrBysAEAcsBywARActBy0AVAcuBy4AEQcvBy8AUAcwBzAAEAcxBzEAFQcyBzIAEQc0BzQAEQc2BzYABgc3BzcAFQc4B1AAEQdRB1gABwdZB28AEAdwB3EAVQeAB4cAEQeIB4kAFQeKB5kAVQeaB7AAEQeyB7IARAezB7MAGwe0B7QAEQe1B7UAAge2B7cASge4B7gAAge5B7kASge6B7oAMQe7B7sASge8B7wATQe9B74ASge/B78AAgfAB8AADwfBB8EASgfCB8IASAfDB8MATQfEB8UASgfGB8cAKAfIB8gAOQfJB8kAMAfKB8oATQfLB8sALwfMB8wAUQfNB80AEgfOB84ASgfRB9MAMAfUB9QATQfVB9UAEgfWB9YAAgfXB9kASgfaB9oAIAfbB9sASgfcB9wAOAfdB90ATQfeB94AOAffB+AATQfhB+EASgfiB+IADQfjB+MAAgfkB+QASgflB+UAQAfmB+YATQfnB+kAMAfqB+oATQfrB+sAUAftB+0AFQfuB+4ATQfwB/AATQfxB/EASgfyB/IADwfzB/MASgf0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IFIVhCBSIFIViiBSFZAgUiBSFZYgUhWiFZwgUhWWFagVriBSFbQVuiBSFcAgUiBSFcYgUhXMIFIgUhXSIFIV2CBSIFIV3iBSFeoV5CBSFfAgUhX2IFIgUhXwIFIV9iBSIFIV/CBSFgIgUiBSFgggUhYOIFIgUhYUIFIWGiBSIFIU7iBSIFIgUiBSFiAgUhYmIFIgUhYgIFIWJiBSIFIU7iBSIFIgUiBSFiwgUhYyIFIgUhY4IFIWPiBSIFIWRCBSFkogUiBSFlAgUhZWIFIgUhZcIFIWYiBSIFIWaCBSFm4gUiBSFnQgUhZ6IFIgUhXwIFIWgCBSIFIWhhaMFpIgUiBSFoYWjBaYIFIgUiBSIFIWniBSIFIV/CBSFqQgUiBSFqogUhawIFIgUha2IFIWvCBSIFIgUiBSFsIgUiBSFsggUhbOIFIgUhbUIFIW2iBSIFIW4CBSFj4gUiBSFXIgUhbmIFIgUhbsIFIW8iBSIFIW+CBSFv4gUiBSFwQgUhcKIFIgUiBSIFIXECBSIFIXFiBSFxwgUiBSFyIgUhcoIFIgUhcuIFIXNCBSIFIXLiBSFzQgUiBSFzoVqBdAIFIVtBdGIFIXTCBSIFIgUiBSF1IgUiBSFUggUhVOIFIgUhVUIFIVWiBSIFIVciBSFXggUiBSF1ggUhdeIFIgUhYUIFIXZCBSIFIXaiBSF3AgUiBSFZYgUhWiFZwgUhWWIFIVohWcIFIVuiBSF3YgUiBSFbogUhXAIFIgUiBSIFIXfCBSIFIV0iBSFdggUiBSFd4gUhXqFeQgUhYIIFIWDiBSIFIXBCBSF4IgUiBSFhQgUhYaIFIgUhYUIFIWGiBSIFIXiCBSF1IgUiBSF4ggUhdSIFIgUheOF5QXmiBSIFIXjheUF5ogUiBSFoYWjBaSIFIgUhVIIFIVTiBSIFIgUiBSF6AgUiBSFO4gUhWEIFIgUhWWIFIVohWcIFIVliBSFaIVnCBSFhQgUhYaIFIgUhWKIFIVkCBSIFIU9BT6FQAgUiBSFPQU+hemIFIgUhZEIFIXrCBSIFIVMBU2FQYgUiBSFXIgUheyIFIgUhVyIFIXuCBSIFIVSCBSF74gUiBSFVQgUhfEIFIgUhXeIFIXyiBSIFIVYCBSF9AgUiBSFWAgUhfWIFIgUhWWFagX3CBSFbQXIiBSFyggUiBSFyIgUhfiIFIgUhXwIFIX6CBSIFIV8CBSF+4gUiBSFfAgUhf0IFIgUhXwIFIV9iBSIFIWFCBSF/ogUiBSFRggUhUeIFIgUhZEIFIYACBSIFIXRiBSF0wgUiBSFgggUhYOIFIgUhYIIFIWDiBSIFIWdCBSGAYgUiBSGAwgUhgSIFIgUhgYIFIYHiBSIFIgUiBSGCQgUiBSGCogUhgwIFIgUhg2IFIYPCBSIFIVYCBSGEIgUiBSGEggUhUAIFIgUhUwIFIYTiBSIFIU7iBSFYQgUiBSGFQgUhhaIFIgUhhgIFIYZiBSIFIYbCBSGHIgUiBSFdIgUhh4IFIgUhX8IFIWAiBSIFIVciBSFXggUiBSFO4gUhh+IFIgUhWWIFIYhBWcIFIYiiBSGJAgUiBSGJYgUhicIFIgUhWWIFIVohWcIFIgUiBSGKIgUiBSIFIgUhioIFIgUhTuIFIVhCBSIFIYriBSFQAgUiBSFPQgUhicIFIgUhi0IFIYuiBSIFIYwCBSGMYgUiBSFRggUhUeIFIgUhW6IFIVwCBSIFIYzCBSGNIgUiBSGNggUhh4IFIgUhT0IFIYnCBSIFIU9CBSGJwgUiBSFZYgUhWiFZwgUhdGIFIXTCBSIFIWCCBSFg4gUiBSGN4gUhjkIFIgUhjqIFIY8CBSIFIY9iBSGPwgUiBSGQIgUhkIIFIgUhWWIFIVohWcIFIVDBkOGRQgUiBSFiwgUhkaIFIgUhkgIFIZJiBSIFIZICBSGSwgUiBSIFIgUhkyIFIgUhYsGTgZPiBSIFIWLBk4GUQgUiBSFiwZOBlKIFIgUhlQIFIZViBSIFIZXCBSGWIgUiBSF1gZaBluIFIZdBdYGWgZbiBSGXQXWBloGXogUhl0GJYZaBk+IFIZdBXwIFIZgCBSIFIV8CBSGYYgUiBSFTAgUhmMIFIgUhhIIFIZkiBSIFIZmCBSGZ4gUiBSFPQZpBmqIFIZsBdYIFIZqiBSGbYZvCBSGcIgUhnIGc4gUhmeIFIZ1BnaIFIZ4CBSGeYZ7CBSGfIgUiBSGewgUhnyIFIgUiBSIFIZ+CBSIFIZ/iBSGgQgUiBSGgogUhoQIFIgUhiWGWgZPiBSGXQaFiBSGhwgUiBSGhYgUhocIFIgUhiWGWgZPiBSGXQaIiBSGhAgUiBSGiggUhouIFIgUho0IFIaOiBSIFIWOCBSGkAgUiBSGkYgUhpMIFIgUhlcIFIaUiBSIFIaWCBSGl4gUiBSGVwgUhpkIFIgUhpqGnYafBpwIFIaahp2GoIacCBSGoggUhqUGo4amheIIFIaphqgIFIarCBSGrIgUiBSGgogUhq4IFIgUhq+IFIaxBqgIFIarCBSGsogUiBSGtAgUhrWIFIgUhrcIFIa4iBSIFIa6CBSGu4gUiBSGvQgUhr6IFIgUhsAIFIbBiBSIFIY9iBSGVYgUiBSGwwgUhsSIFIgUhsYIFIbHiBSIFIYliBSGyQgUiBSGyogUhoEIFIgUhsqIFIbMCBSIFIbNhmkGzwgUhmwIFIgUhmAIFIgUhlQIFIZViBSIFIZXCBSGWIgUiBSFfAgUhmAIFIgUhcuIFIbQiBSIFIbSCBSG04gUiBSGZggUhmeIFIgUhmYIFIZniBSIFIXWCBSGaogUhm2F1ggUhtUIFIgUiBSIFIZbiBSIFIZziBSGZ4gUhnUGdogUhngIFIZ5hn+IFIaBCBSIFIa3BtaG2AgUhtmGgogUhoQIFIgUhoKIFIaECBSIFIYliBSG2wgUiBSGJYgUhtsIFIgUhtyG3gbfiBSIFIbcht4G34gUiBSG4QgUhuQG4ogUhlQIFIZViBSIFIgUiBSG5YgUiBSFTAgUhmMIFIgUhmYIFIZniBSIFIZmCBSGZ4gUiBSGgogUhoQIFIgUhhIIFIZkiBSIFIVDBkOGRQgUiBSFQwZDhucIFIgUhuiIFIbqCBSIFIWLBk4GT4gUiBSFfAbrhu0IFIgUhXwG64buiBSIFIZUCBSG8AgUiBSGVwgUhvGIFIgUhvMIFIb0iBSIFIXWBloG9ggUhl0F1gZaBveIFIZdBT0GaQb5CBSGbAYliBSGyQgUiBSGJYgUhvqIFIgUhlcIFIb8CBSIFIZ7CBSG/YgUiBSGewgUhv8IFIgUhnsIFIZ8iBSIFIaCiBSHAIgUiBSGSAgUhkmIFIgUho0IFIcCCBSIFIgUiBSHA4gUiBSGf4gUhruIFIgUhVUIFIaBCBSIFIYliBSHBQaoBwaGMAgUhwgIFIgUhwmIFIcLCBSIFIgUiBSHDIgUiBSHDggUhw+IFIgUhxEIFIcSiBSIFIcUCBSGW4gUhxWHFwgUhxiIFIgUhxoIFIcbiBSIFIVMCBSGYwgUiBSHHQgUhx6IFIgUhm8IFIcgCBSGcgchiBSHIwgUiBSHJIgUhyYIFIcnhykIFIcqiBSIFIcsCBSHLYgUiBSFTAgUhuoIFIgUhmYIFIbVCBSIFIcvCBSHMIgUiBSIFIgUhmqIFIgUhmYIFIZniBSIFIgUiBSHMggUiBSIFIgUhluIFIgUhUwIFIZjCBSIFIcziBSHNQgUhyeGVAgUhzaIFIgUhXwIFIc4CBSIFIV8CBSHOYgUiBSHOwgUhzyIFIgUhz4IFIc/iBSIFIarCBSGrIgUiBSGSAgUhkmIFIgUhlQIFIc2iBSIFIV8CBSHOAgUiBSGZggUhmeIFIgUhdYIFIZqiBSGbYcpCBSHQQgUiBSHQogUh0QIFIgUh0WIFIdHCBSIFIc7CBSHPIgUiBSGVAgUhzaIFIgUiBSIFIbliBSIFIc7CBSHPIgUiBSGZggUhmeIFIgUhn+IFIaBCBSIFIV/CBSHSIgUiBSHSggUh0uIFIgUh00IFIdOiBSIFIarCBSHUAgUiBSHUYgUh1MIFIgUhmYIFIZniBSIFIYliBSGqYgUiBSGmoadh1SGnAgUhzOIFIc1CBSHJ4YlhloHVggUhl0GhYgUh1eIFIgUhdYIFIZqiBSIFIdZCBSHWogUiBSHXAgUh12IFIgUh18IFIdiB2CIFIdjiBSHZQgUiBSGVwgUh2aIFIgUh18IFIdiB2CIFIV3h2gHaYgUiBSHawgUh2yIFIgUhcuIFIduCBSIFIdZCBSHWogUiBSHWQgUh2+IFIgUh1kIFIdaiBSIFIgUiBSHcQgUiBSHcod0B3WIFIgUh3KHdAd1iBSIFIdyh3QHdYgUiBSHdwgUh3iIFIgUh3oIFId7iBSIFIdfCBSHfQgUiBSHXwgUh30IFIgUh18IFId9CBSIFIdfCBSHfQgUiBSHcogUh36IFIgUh3KIFIeACBSIFIXWCBSHgYgUiBSHgwgUh4SIFIgUh18IFIdiB2CIFIeGB4eHiQgUh4qHXAgUh12IFIgUh4wIFIdlCBSIFIeNiBSHiQgUiBSHjwgUh5IHkIgUhlcIFIeTiBSIFIZXCBSHk4gUiBSHlQgUh5aIFIgUhlcIFIdmiBSIFIZziBSHmAgUiBSHFwgUiBSIFIgUh5mIFIebCBSIFIeZiBSHmwgUiBSHFwgUiBSIFIgUh5yIFIeeCBSIFIefiBSHoQgUiBSGBggUh6KIFIgUhY4IFIekCBSIFIYtCBSHpYgUiBSGVwgUh6cIFIgUhoiIFIeoiBSIFIeqCBSHkggUiBSHq4etB66IFIgUh6uHrQeuiBSIFIgUiBSHsAgUiBSHsYgUh7MIFIgUhbsIFIe0iBSIFIWdCBSHtggUiBSFrYgUh30IFIgUhWKIFIe3iBSIFIe5CBSHtggUiBSHKQgUh7qIFIgUhxoIFIdlCBSIFIeVCBSHlogUiBSHvAgUh72IFIgUhbgIFIe/CBSIFIgUiBSHwIgUiBSHXwgUh8IIFIgUh4YIFIfDiBSIFIfFCBSHxogUiBSHxQgUh8gIFIgUh8mHh4fLCBSHiodjiBSHZQgUiBSIFIgUh8yIFIgUh3cIFId4iBSIFId6CBSHe4gUiBSHcogUh36IFIgUhywIFIdaiBSIFIbKiBSHzggUiBSG0ggUh8+IFIgUh18IFIdiB2CIFIdfCBSHYgdgiBSHXAgUh12IFIgUh1wIFIfRCBSIFIgUiBSH0ogUiBSHjYgUh4kIFIgUh48IFIeSB5CIFIZXCBSHZogUiBSH1AgUh2UIFIgUhnOIFIeYCBSIFIaCiBSHzIgUiBSGgogUh8yIFIgUh18IFIdiB2CIFIgUiBSH1YgUiBSIFIgUh9cIFIgUhdYIFIeBiBSIFIVYB9iH2ggUiBSFWAfYh9oIFIgUh6uHrQeuiBSIFId3CBSHeIgUiBSIFIgUh8yIFIgUhdYIFIeBiBSIFIdfCBSHYgdgiBSHXwgUh2IHYIgUhnOIFIeYCBSIFIeDCBSHhIgUiBSFd4doB2mIFIgUhXeHaAdpiBSIFIeDCBSH24gUiBSHcod0B3WIFIgUh7kIFIfdCBSIFIe5CBSH3QgUiBSHdwgUh3iIFIgUh3oIFId7iBSIFIZICBSHe4gUiBSHXwgUh30IFIgUh18IFId9CBSIFIeGB4eHiQgUh4qHhggUh8OIFIgUh4YIFIfDiBSIFIeqCBSH3ogUiBSGVwgUh5OIFIgUhlcIFIeTiBSIFIZXCBSHk4gUiBSGc4gUh5gIFIgUh1kIFIdaiBSIFIYGCBSHoogUiBSHY4gUh2UIFIgUhlcIFIdmiBSIFIZXCBSHZogUiBSGuggUh+AIFIgUh+GIFIfjCBSIFIfkiBSHvYgUiBSIFIgUh+YIFIgUhdqIFIfbiBSIFIfniBSH6QgUiBSHhggUh+qIFIgUh+wIFIftiBSIFIfvCBSHxogUiBSF1ggUh4GIFIgUh/CIFIfyCBSIFIcJiBSH84gUiBSGPYgUh/UIFIgUhxQIFIf2iBSIFIaNCBSH+AgUiBSHcogUh36IFIgUhdYIFIf5iBSIFIdfCBSH+wdgiBSGtAgUh/yIFIgUh2sIFIf+CBSIFIf/iBSHZQgUiBSHOwgUiAEIFIgUiAKIFIgECBSIFIgFiBSIBwgUiBSICIgUiAoIFIgUiAuIFIe9iBSIFIc7CBSIAQgUiBSHOwgUiAEIFIgUhY4IFIekCBSIFIgNCBSIDogUiBSF1ggUiBAIFIgUiBGIFIgTCBSIFIcXCBSIFIgUiBSGIogUiBSIFIgUgAB/1YAAAAB/1AAAAAB/3UAAAAB/1UAAAAB/48AAAAB/zQAAAAB/zgAAAAB/08AAAAB/5QAAAAB/4UAAAAB/y0AAAAB/1cAAAAB/4oAAAAB/1QAAAAB/5gAAAAB/0EAAAAB/yAAAAAB/ysAAAAB/zwAAAAB/yoAAAAB/0AAAAAB/wkAAAAB/4MAAAAB/w8AAAAB/4gAAAAB/yMAAAAB/8QAAAAB/3kCDgAB/9ICDgAB/5UCDgAB/5wCDgAB/0gCDgAB/3cCDgAB/3gCDgAB/4cCDgAB/6QCDgAB/3QCDgAB/48CDgAB/4gCDgAB/6MCDgAB/+ECDgAB/6wCDgAB/4QCDgAB/88CDgAB/8sCDgAB/1ICDgAB/20CDgAB/1ACDgAB/2sCDgAB/2wCDgAB/2kCDgAB/48CsAAB/+YCsAAB/7ICsAAB/7QCsAAB/2oCsAAB/5ECsAAB/4wCsAAB/54CsAAB/7kCsAAB/4sCsAAB/6YCsAAB/7gCsAAB/8UCsAAB/5kCDgAB/7ECsAAB/ycBPQAB/1EBOAAB/1cCfgAB/6cCDgAB/74CsAABAQAAAAABAN4AAAABAb8AAAABAT8CsAABAT4CsAABAPQAAAABAUUCsAABAF4AAAABAVcCsAABAW4DhwABAWYCsAABAN0AAAABAW0AAAABAVUDhwABAVYDdQABAVAAAAABAbYCsAABALMAAAABASgCsAABAQoAAAABAWwCsAABAWMCsAABAOUAAAABAU4CsAABAWUDhwABAWECsAABAUEAAAABAZcCsAABAQ4AAAABATkBWAABAWoCsAABAWgAAAABAXkCsAABAi0CsAABAQcAAAABAWgCsAABANMAAAABAUECsAABAQwAAAABAXcCsAABAMEAAAABAPEBWQABASECsAABAMsAAAABAS0CsAABAU0AAAABAa4CsAABAMoAAAABASsCsAABAO4AAAABATMCsAABAXUAAAABAdYCsAABANwAAAABATwCsAABAT4AAAABAZ4CsAABAUgAAAABAakCsAABAW8AAAABAdACsAABAYAAAAABAeECsAABAM8AAAABATQCsAABANoAAAABAToCsAABARQCsAABAF0AAAABAH4AAAABAL8CsAABANcDdQABAM4CsAABAa0CsAABAWwAAAABAcwCsAABAPIAAAABAVMCsAABAXwCsAABAVkAAAABAboCsAABAPUAAAABAPICsAABAT0AAAABAUYCsAABAUUAAAABAaUCsAABAS8AAAABAY8CsAABAWQAAAABAcQCsAABASUDhgABARIAAAABAXMCsAABARMAAAABAXQCsAABANcAAAABATYCsAABAxX/NwABA3ACDgABAGIAAAABAVsCsAABAUoCsAABAOIAAAABAUMCsAABAVYCsAABAUcAAAABAbACsAABAfMCsAABAX0CsAABAaACsAABAOoAAAABAR8AAAABAbMAAAABAY0CsAABAUkCsAABAVcDdQABAeMCsAABAV0CsAABAXUDdQABAc4DdQABAT8DdQABARUCsAABAYEDWQABAYQDdQABAZEDdQABAYwDdQABASwDdQABAUIDWQABAUUDdQABAUsDdQABAcEDdQABATsCsAABAVMAAAABAbQCsAABASkAAAABAYoCsAABAQ4CsAABAXoAAAABAdsCsAABAYQAAAABAeUCsAABAX4CsAABAQkAAAABAUQCsAABAVQAAAABAbUCsAABATQAAAABAZUCsAABAVwAAAABAb0CsAABAXoCsAABAe8CsAABAfkCsAABAOAAAAABAMgCsAABAN8AAAABAUACsAABAecCsAABAW4CsAABANT/NwABAVEAAAABAbICsAABAV4AAAABAb4CsAABAVH/NwABAc0CsAABAQz/NwABAXwAAAABAd0CsAABAML/NwABAT0CsAABATAAAAABAZECsAABAa//NwABAa8CsAABAaf/9AABATwCDgABAVIC4gABAKwAAAABAQgCDgABAScDGwABASoC4gABAT8ABgABASYCDgABAU0DGwABAUIC9wABAS4AAAABAXoCDgABAK4AAAABAPkCDgABAZQAAAABATMCDgABAd8CDgABAVoDGwABARgCDgABATcDGwABATUCDgABAVMCDgABAOMAAAABASkCDgABAS4AAAABASwCDgABAdQCDgABAW4C4gABAMP/NwABATcCDgABAWAC4gABANUAAAABAUEC4gABAVsAAAABAaUCDgABAm0C4gABAKX/NwABAQACDgABAbYC4gABALQAAAABAP0CDgABANIAAAABAQoCDgABAVYAAAABAZ8CDgABAMAAAAABAQ0AAAABAVcCDgABASIAAAABAWwCDgABAYgCDgABAUYAAAABAZACDgABAPoCDgABALIAAAABAPwCDgABAO0CDgABAFcAAAABAIMBLgABAHEAAAABAMIDAwABAL4C9wABADf/OAABAHsA8AABAMUDAwABAJAC4gABAQ0BBwABAVAC4gABAToAAAABAYQCDgABARsCDgABAOYAAAABAU4C4gABAX0CDgABAMUAAAABAL0CiQABARcAAAABAWECDgABAMMAAAABAQ0CDgABARgAAAABAWICDgABARYAAAABAWACDgABAJr/NwABAQUDDAABAR3/NwABAX8CDgABASsCDgABALoAAAABAPEDOQABAqz/NwABAwcCDgABASECDgABAQEAAAABAU0CDgABAaQCDgABAcwAAAABAVECDgABAhcCDgABAUYC4gABASQAAAABAYcABgABAW0CDgABAIgAAAABARsBewABALoC4gABARMCDgABAVgC9wABAUwAAAABAZwCDgABAJkCCAABAQ8CDgABASwC9wABAZYC9wABARUC9wABAH3/OAABAPACDgABAU8C2wABAVAC9wABAUgC9wABAUcC9wABAQkC9wABARwC2wABARwC9wABAScC9wABAYgC9wABAPYCDgABAUcC4gABAb4DFAABAcYC4gABAQgAAAABAVICDgABAOcCDgABAVgAAAABAaICDgABAWAAAAABAakCDgABAOgAAAABAVwC4gABAPAAAAABAToCDgABAMcAAAABAQkCDgABARkAAAABAWMCDgABAZYCDgABAUkAAAABAZMCDgABAK7/NwABATYCDgABAaQC4gABAR4AAAABAWgCDgABAM4AAAABARcCDgABAMkAAAABARICDgABAcICDgABALH/OAABATQCDgABAZcC4gABATsC4gABAVIDuQABALgAAAABAP8CDgABATIAAAABAXwCDgABAWUCDgABAVj/NwABAb4CDgABAPj/NwABAV4CDgABAZcCDgABAc4AAAABAhgCDgABAJz/NwABAQECDgABAYYCDgABAXn/NwABAXkCDgABAL0C2wABAUIC2wABAboC2wABAKEAAAABAR0CMwABAO8AAAABAT4CMwABAPEAAAABARgBGwABAT8CMwABAJsAAAABARYCMwABAP0CMwABAYkAAAABARACMwABAMgAAAABARgCMwABASwCMwABAToDOQABARoCMwABAM0AAAABAUwAAAABARkCMwABASYAAAABAXYCMwABAJ8AAAABAPECMwABAUECMwABATMCMwABAVADOQABATsCMwABAR0AAAABAWYCMwABAOsAAAABAUEAAAABAUcCMwABAfECMwABALsAAAABAO0AAAABAKcAAAABAM0BJQABAPMCMwABAP8CMwABASUAAAABAXQCMwABAQoCMwABAU4AAAABAZ4CMwABAMQAAAABARMCMwABAPkAAAABAUgCMwABAXkCMwABAY0CMwABAaECMwABAQ4CMwABAQ8CMwABALEAAAABAFwAAAABAH8AAAABAKwCMwABAK0CMwABAREAAAABAWACMwABAZUCMwABASkCMwABAZACMwABANkAAAABAW4CMwABAQYAAAABAVUCMwABAYwCMwABAOICMwABAUACMwABAUUCMwABALwAAAABAQUCMwABAPkDXgABAs4AAAABAyACMwABASECMwABASACMwABAWcCMwABAbYCMwABAU0CMwABAOEAAAABAZ0CMwABATkCMwABAZIAAAABAVkCMwABAZYCMwABAS8CMwABARADHAABARICMwABASgAAAABAXgCMwABAQUAAAABAOgCMwABAVcAAAABAaYCMwABAU4CMwABAOcAAAABATUCMwABAKoAAAABASAAAAABAW8CMwABAVcCMwABAX8CMwABAUICMwABAXECMwABAakCMwABAbgCMwABARQCMwABARcCMwABALj/NwABAQwCMwABASsAAAABAXoCMwABATYAAAABAYUCMwABAUL/NwABAa8CMwABAOv/NwABAKD/NwABARECMwABATECMwABAXf/NwABAXcCMwABAAAAAAACAAsKRwp1AAAKdwp7AC8KfwqAADQKiAqJADYKjAqNADgKlAqjADoKsAqwAEoKsgqyAEsKtAq0AEwKtgq2AE0K1wrYAE4AAgAIBHIFFAAABRYFFwCjBRkFUQClBVMFVwDeBVkFoADjBaMFrAErBa4FtwE1BbkGZgE/AAEhUiGYAAUADAFOAFAAABV2AAAVfAAAFYIAABWIAAAVjgAAFZQAABWaAAAVoAAAFaYAABWsAAAVsgAAFbgAABW+AAAVxAAAFcoAABXQAAAV1gAAFdwAARZgAAEWZgABFmwAARZyAAQXDgAEFxQAARZ4AAEWfgABFoQAARaKAAEWZgABFpAAARaWAAEWnAABFqIAARaoAAEWrgACFvwAARa0AAEWugABFsAAARacAAEWxgABFswAARbSAAEW2AABFt4AAxcCAAMXCAABFuQAARbYAAEWugABFuoAABW4AAAV4gAAFegAABXuAAAV9AAAFfoAABYAAAAWBgAAFgwAABYSAAAWGAAAFh4AABYkAAAWKgAAFjAAABY2AAAWPAAAFkIAABZIAAAWTgAEFxoAARbwAAEWigAAFlQAABZaAAAWVAAAFloAABWsAAEW9gIFFd4f/h/+H/4f/hXwFeQV6h/+H/4V/BX2H/4f/h/+FggWAh/+H/4f/hYUFg4f/h/+H/4WJhYaFiAf/h/+FjIWLB/+H/4f/hZEFjgf/hY+H/4WUBZKH/4f/h/+FmIWVhZcH/4f/hZoFfYf/h/+H/4WbhXkH/4f/h/+FnoWdB/+H/4f/haGFoAf/h/+H/4WkhaMH/4f/h/+Fp4WOBaYH/4WpBawFqof/h/+H/4WvBa2H/4f/h/+FpIWwh/+H/4f/hbUFsgf/hbOH/4W4BbaH/4f/h/+FuwW5h/+H/4f/hb4FvIf/h/+H/4W/hZKH/4f/h/+FwoXBB/+H/4f/hccFxAXFh/+H/4XLhciFygf/h/+F0AXNB/+Fzof/hdSF0YXTB/+H/4XZBdYF14f/hdqF3YXcB/+H/4f/hdkF3wf/h/+H/4XghZWFlwf/h/+F4gW2h/+H/4f/heUF44f/h/+H/4WJhYaH/4f/h/+F6AXmh/+H/4f/haeFjgWmB/+FqQXph/+H/4f/h/+FggWAh/+H/4f/heyF6wf/h/+H/4Xvhe4H/4f/h/+FmgV9h/+H/4f/hXwFtof/h/+H/4XyhfEH/4f/h/+F9AW2h/+H/4f/hZQFkof/h/+H/4V8BXkH/4f/h/+FhQX1h/+F9wf/hZ6FnQf/h/+H/4X7hfiH/4X6B/+F/QX1h/+F9wf/hf6F+If/hfoH/4XHBcQFxYf/h/+GAwYABgGH/4f/hgeGBIYGB/+H/4YMBgkGCof/h/+GDwXcBg2H/4f/hhOGEIYSB/+H/4YYBhUGFof/h/+GHIYZhhsH/4f/hiEGHgYfh/+H/4YlhiKGJAf/h/+GJwV5BXqH/4f/hiiFeQV6h/+H/4V8BioFeof/h/+FxwYrhcWH/4f/hgMGLQYBh/+H/4YHhi6GBgf/h/+GDAYwBgqH/4f/hg8GMYYNh/+H/4YThjMGEgf/h/+GGAY0hhaH/4f/hhyGNgYbB/+H/4Y6hjeGOQf/h/+GPwY8Bj2H/4f/hkOGQIZCB/+H/4ZDhkUGRof/h/+GSwZIBkmH/4f/hksGTIZOB/+H/4ZShk+GUQf/h/+GVwZUBlWH/4f/hjqGWIf/hloH/4Y/Bc0H/4Zbh/+GQ4ZdB/+GXof/hkOGYAf/hmGH/4ZLBmMH/4Zkh/+GSwZmB/+GZ4f/hmwGaQf/hmqH/4ZsBmkH/4Zqh/+GcIZth/+Gbwf/hnUGcgf/hnOH/4WRBnaH/4WPh/+GOoZ4B/+GWgf/hj8GeYf/hluH/4ZDhnsH/4Zeh/+GQ4Z8h/+GYYf/hksGfgf/hmSH/4ZLBn+H/4Znh/+GbAaBB/+Gaof/hmwGgQf/hmqH/4Y6hoKGhAf/h/+GPwaFhocH/4f/hkOGN4aIh/+H/4ZDhlQGigf/h/+GSwaLho0H/4f/hksGjoaQB/+H/4YHhgSGkYf/h/+GB4YEhpGH/4f/hpYGkwaUh/+H/4aahpeGmQf/h/+GnAWVhZcH/4f/hp2FlYWXB/+H/4aiBp8GoIf/hqOGpoalBcoH/4aoBqmGXQZOB/+GqwavhqyGrgf/hrEGtYayhrQH/4a3BruGuIa6B/+GvQamhhmFygf/hqgGB4a+hsAH/4bBhsSGwwf/h/+H/4bHhsYH/4f/h/+GyobJB/+H/4f/hs2GzAf/h/+H/4bQhs8H/4f/h/+G0gXxB/+H/4f/hfKGBIf/h/+H/4bThbaH/4f/h/+G1QW2h/+H/4f/hdkF3wf/h/+H/4bYBtaH/4f/h/+G2wbZh/+H/4f/ht4G3If/h/+H/4bhBt+H/4f/h/+G5Abih/+H/4f/hucG5Yf/h/+H/4bqBuiH/4f/h/+G7Qbrh/+H/4f/hvAG7of/h/+H/4XChvGH/4f/h/+F2QbzB/+H/4f/htgG9If/h/+H/4bbBvYH/4f/h/+G3gb3h/+H/4f/huEG+Qf/h/+H/4bkBvqH/4f/h/+G5wb8B/+H/4f/huoG/Yf/h/+H/4b/Bh4H/4f/h/+HAIf/h/+H/4f/hwIH/4f/h/+H/4cFBwOH/4f/h/+HCAcGh/+H/4f/hwsHCYf/h/+H/4cOBwyH/4f/h/+HEQcPh/+H/4f/hxQHEof/h/+H/4cXBxWH/4f/h/+HGgcYh/+H/4f/hxuH/4f/h/+H/4cCBx0H/4f/h/+HIAceh/+H/4f/hxuFeQchh/+HIwcmBySH/4f/h/+HJ4f/h/+H/4f/hyqHKQf/h/+H/4csBYaH/4f/h/+HLwcth/+H/4f/hv8HMIf/h/+H/4cyB/+H/4f/h/+HM4f/h/+H/4f/hzaHNQf/h/+H/4c5hzgH/4f/h/+HFAcSh/+H/4f/hzsHEof/h/+H/4cUBxKH/4f/h/+G/wcwh/+H/4f/hzyHMIf/h/+H/4b/BzCH/4f/h/+HG4V5ByGH/4cjBzmHOAf/h/+H/4b/Bh4H/4f/h/+HCAcGh/+H/4f/hw4HDIf/h/+H/4c/hz4H/4f/h/+HAgf/h/+H/4f/hxuF9Yf/h/+H/4dEB0EH/4dCh/+HRwWjB/+HRYf/h0iHQQf/h0KH/4cbhXkHIYf/hyMHSgf/h/+H/4f/h0uH/4f/h/+H/4dOh00H/4f/h/+HEQf/h/+H/4f/h1AH/4f/h/+H/4dRhxWH/4f/h/+HVIdTB/+H/4f/hzIHVgf/h/+H/4dQBe4H/4f/h/+HV4f/h/+H/4f/hwgFowf/h0WH/4dcB1kH/4dah12HAgcdB/+H/4f/h18H/4f/h/+H/4dgh/+H/4f/h/+HYgf/h/+H/4f/h2OGHgf/h/+H/4dlBh4H/4f/h/+G/wYeB/+H/4f/hv8GHgf/h/+H/4b/Bh4H/4f/h/+G/wYeB/+H/4f/hv8GHgf/h/+H/4b/Bh4H/4f/h/+HZoYeB/+H/4f/h2gGHgf/h/+H/4b/Bh4H/4f/h/+HaYYeB/+H/4f/h2sGHgf/h/+H/4b/B2yH/4f/h/+HZodsh/+H/4f/h2gHbIf/h/+H/4djh2yH/4f/h/+HZQdsh/+H/4f/hv8HbIf/h/+H/4b/B2yH/4f/h/+G/wdsh/+H/4f/hv8HbIf/h/+H/4b/B2yH/4f/h/+G/wdsh/+H/4f/h24HbIf/h/+H/4dvhwaH/4f/h/+HcQcGh/+H/4f/hwgHBof/h/+H/4cIBwaH/4f/h/+HCAcGh/+H/4f/hwgHBof/h/+H/4dyhwaH/4f/h/+HdAcGh/+H/4f/h3WHDIf/h/+H/4d3BwyH/4f/h/+HDgcMh/+H/4f/hw4HDIf/h/+H/4cOBwyH/4f/h/+HDgcMh/+H/4f/hw4HDIf/h/+H/4cOBwyH/4f/h/+HeIcMh/+H/4f/h3oHDIf/h/+H/4cOBwyH/4f/h/+HDgd7h/+H/4f/h3iHe4f/h/+H/4d6B3uH/4f/h/+HdYd7h/+H/4f/h3cHe4f/h/+H/4cOB3uH/4f/h/+HDgd7h/+H/4f/hw4He4f/h/+H/4cOB3uH/4f/h/+HDgd7h/+H/4f/hw4He4f/h/+H/4d9B3uH/4f/h/+HfocSh/+H/4f/h4AHEof/h/+H/4cUBxKH/4f/h/+HFAcSh/+H/4f/hxQHEof/h/+H/4cUBxKH/4f/h/+HFAcSh/+H/4f/hxQHEof/h/+H/4eBhxKH/4f/h/+HgwcSh/+H/4f/hxQHEof/h/+H/4eEhxKH/4f/h/+HhgcSh/+H/4f/hxQHEof/h/+H/4cUBxKH/4f/h/+Hh4cSh/+H/4f/h4kFeQchh/+HIweKhXkHIYf/hyMHG4V5ByGH/4cjBxuFeQchh/+HIwcbhXkHIYf/hyMHG4V5ByGH/4cjB4wFeQchh/+HIweNhXkHIYf/hyMHjwf/h/+H/4f/h5CH/4f/h/+H/4djhzCH/4f/h/+HZQcwh/+H/4f/hv8HMIf/h/+H/4b/BzCH/4f/h/+G/wcwh/+H/4f/hv8HMIf/h/+H/4b/BzCH/4f/h/+G/wcwh/+H/4f/h2aHMIf/h/+H/4doBzCH/4f/h/+G/wcwh/+H/4f/h5IHMIf/h/+H/4eThzCH/4f/h/+G/wcwh/+H/4f/hv8HMIf/h/+H/4eVBzCH/4f/h/+Hloc4B/+H/4f/h5gHOAf/h/+H/4c5hzgH/4f/h/+HOYc4B/+H/4f/hzmHOAf/h/+H/4c5hzgH/4f/h/+HOYc4B/+H/4f/hzmHOAf/h/+H/4eZhzgH/4f/h/+Hmwc4B/+H/4f/hzmHOAf/h/+H/4c5h5yH/4f/h/+HmYech/+H/4f/h5sHnIf/h/+H/4eWh5yH/4f/h/+HmAech/+H/4f/hzmHnIf/h/+H/4c5h5yH/4f/h/+HOYech/+H/4f/hzmHnIf/h/+H/4c5h5yH/4f/h/+HOYech/+H/4f/h54HnIf/h/+H/4f/h5+H/4f/h/+HoQcJh/+H/4f/h6QFsgeih/+H/4enB6WH/4f/h/+Hqgeoh/+H/4f/h60Hq4f/h/+H/4ewBxWHrof/h/+Hswexh/+H/4f/h7eHtIf/h7YH/4e5B7SH/4f/h/+HvYe6h7wH/4f/h78F9Yf/h/+H/4fCB8CH/4f/h/+HxQfDh/+H/4f/h8aHtIf/h/+H/4fJh8gH/4f/h/+HzgfLB8yH/4fPh9KH0Qf/h/+H/4fUBpMH/4f/h/+H1wfVh/+H/4f/h9cH1Yf/h/+H/4faB9WH/4fYh/+H24cdB/+H/4f/h96H3Qf/h/+H/4fhh+AH/4f/h/+HuQe0h/+H/4f/h+MGHgf/h/+H/4e9h7qHvAf/h/+HvYe6h7wH/4f/h72Huoe8B/+H/4fbhx0H/4f/h/+H24cdB/+H/4f/h9uHHQf/h/+H/4fOB8sHzIf/h8+H4wYeB/+H/4f/h6QFsgeih/+H/4ewBxWHrof/h/+Ht4e0h/+Htgf/h8mGgof/h/+H/4fkhaMH/4f/h/+Hxoe0h/+H/4f/h+eF44f/h+YH/4fqh/+H/4fpB/+H7AXjh/+H5gf/h84HywfMh/+Hz4fth/+H/4f/h/+Hqgeoh/+H/4f/h/CH7wf/h/+H/4fCB/IH/4f/h/+HvwX1h/+H/4f/h6cHpYf/h/+H/4e5B7SH/4f/h/+H9Qfzh/+H/4f/h/UH84f/h/+H/4f1B/OH/4f/h/+H3ofdB/+H/4f/h9KH0Qf/h/+H/4e/BfWH/4f/h/+H1AaTB/+H/4f/h/+H/4f/h+kH/4f2h/+H/4f/h/+H5If4B/+H/4f/h/sH+Yf/h/+H/4fFB8OH/4f/h/+H/IcVh/+H/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ekBbIHoof/h/+HpAWyB6KH/4f/h6QFsgeih/+H/4ewBxWHrof/h/+HsAcVh66H/4f/h7AHFYeuh/+H/4ewBxWHrof/h/+HsAcVh66H/4f/h7AHFYeuh/+H/4ewBxWHrof/h/+HsAcVh66H/4f/h7eHtIf/h7YH/4e3h7SH/4e2B/+Ht4e0h/+Htgf/h7eHtIf/h7YH/4e3h7SH/4e2B/+Ht4e0h/+Htgf/h7eHtIf/h7YH/4e3h7SH/4e2B/+Ht4e0h/+Htgf/h7eHtIf/h7YH/4e3h7SH/4e2B/+Ht4e0h/+Htgf/h7eHtIf/h7YH/4e3h7SH/4e2B/+Ht4e0h/+Htgf/h7eHtIf/h7YH/4e3h7SH/4e2B/+Ht4e0h/+Htgf/h7eHtIf/h7YH/4e3h7SH/4e2B/+Ht4e0h/+Htgf/h7eHtIf/h7YH/4e3h7SH/4e2B/+HvYe6h7wH/4f/h72Huoe8B/+H/4e9h7qHvAf/h/+HvYe6h7wH/4f/h72Huoe8B/+H/4e9h7qHvAf/h/+HvYe6h7wH/4f/h72Huoe8B/+H/4e9h7qHvAf/h/+HvYe6h7wH/4f/h72Huoe8B/+H/4e9h7qHvAf/h/+HvYe6h7wH/4f/h72Huoe8B/+H/4e9h7qHvAf/h/+HvYe6h7wH/4f/h84HywfMh/+Hz4fOB8sHzIf/h8+HzgfLB8yH/4fPh84HywfMh/+Hz4fOB8sHzIf/h8+HzgfLB8yH/4fPh84HywfMh/+Hz4fOB8sHzIf/h8+H1AaTB/+H/4f/h9QGkwf/h/+H/4fbhx0H/4f/h/+H24cdB/+H/4f/h9uHHQf/h/+H/4fbhx0H/4f/h/+H24cdB/+H/4f/h9uHHQf/h/+H/4fbhx0H/4f/h/+H24cdB/+H/4f/h9uHHQf/h/+H/4fbhx0H/4f/h/+H24cdB/+H/4f/h9uHHQf/h/+H/4fbhx0H/4f/h/+H24cdB/+H/4f/h9uHHQf/h/+H/4fbhx0H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4fjBh4H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4fjBh4H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4fjBh4H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4fjBh4H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4fjBh4H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4fjBh4H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4fjBh4H/4f/h/+H4wYeB/+H/4f/h+MGHgf/h/+H/4f/h5+H/4f/h/+H/gfgB/+H/4f/gAB/3kCDgAB/9ICDgAB/5UCDgAB/5wCDgAB/0gCDgAB/3cCDgAB/3gCDgAB/4cCDgAB/6QCDgAB/3QCDgAB/48CDgAB/4gCDgAB/6MCDgAB/+ECDgAB/6wCDgAB/4QCDgAB/88CDgAB/8sCDgAB/1ICDgAB/20CDgAB/1ACDgAB/2sCDgAB/2wCDgAB/2kCDgAB/48CsAAB/+YCsAAB/7ICsAAB/7QCsAAB/2oCsAAB/5ECsAAB/4wCsAAB/54CsAAB/7kCsAAB/4sCsAAB/6YCsAAB/7gCsAAB/8UCsAAB/5kCDgAB/7ECsAAB/1YAAAAB/1AAAAAB/3UAAAAB/1UAAAAB/48AAAAB/zQAAAAB/zgAAAAB/08AAAAB/5QAAAAB/4UAAAAB/y0AAAAB/1cAAAAB/4oAAAAB/1QAAAAB/5gAAAAB/0EAAAAB/yAAAAAB/ysAAAAB/zwAAAAB/yoAAAAB/0AAAAAB/wkAAAAB/4MAAAAB/w8AAAAB/4gAAAAB/yMAAAAB/8QAAAAB/ycBPQAB/1EBOAAB/1cCfgAB/6cCDgAB/74CsAABAM4CsAABAN4AAAABAb8AAAABAT8CsAABAPQAAAABAUUCsAABAF4AAAABAVcCsAABAOMAAAABAUMCsAABAN0AAAABAW0AAAABAT4CsAABALkAAAABAS0CsAABAQ4AAAABATkBWAABAWoCsAABARIAAAABAXUCsAABAF0AAAABAH4AAAABAL8CsAABAVwCsAABAUACsAABAUEAAAABAZcCsAABAQsAAAABAXQCsAABAL8AAAABAR8CsAABAWgAAAABAXkCsAABAi0CsAABAQcAAAABAWgCsAABANMAAAABAUECsAABAL4AAAABAMEAAAABAPEBWQABASECsAABAM8AAAABAS8CsAABAUYAAAABAacCsAABAMoAAAABASsCsAABAXMCsAABARQAAAABAXsCsAABAOYAAAABAccAAAABAUcCsAABATEAAAABAcEAAAABAZICsAABAWEAAAABAY0BWAABAb4CsAABALEAAAABANEAAAABARICsAABAUsAAAABAaUAAAABAbYCsAABAmoCsAABAUAAAAABAaECsAABAU8AAAABANcDdQABAUcDdQABAMQAAAABASUCsAABAQoAAAABAWwCsAABATACsAABAKgAAAABAQkCsAABAOEAAAABAUICsAABAUgAAAABAbgCsAABAVcDdQABAOIAAAABAVMBWgABAOUAAAABANgBWgABAVMCsAABAVkBjwABAN4BjwABAO0AAAABAc4AAAABAU4CsAABAVgAAAABAjkAAAABAbkCsAABAWIAAAABAkMAAAABAcQCsAABAiIAAAABAaICsAABAVQAAAABAjUAAAABAbUCsAABAWoAAAABAksAAAABAcsCsAABAWcAAAABAkgAAAABAckCsAABAPAAAAABAdEAAAABAVECsAABAOgAAAABAcoAAAABAUoCsAABAVgDeQABAVQDWQABAQj/SAABARD/SAABARf/SAABAYL/SAABAYz/SAABAWr/SAABAX7/SAABAZT/SAABAZH/SAABASoAAAABAboAAAABAIkCuQABATAAAAABAcAAAAABAIMCugABAaoAAAABAjoAAAABAQoCtAABAa0AAAABAj0AAAABAZQAAAABAiQAAAABANACtAABAaQAAAABAjQAAAABATsAAAABAcsAAAABAZwCsAABAS0AAAABAbwAAAABAY4CsAABAVoAAAABAYYBWAABAYwBWAABAdoAAAABAgYBWAABAd4AAAABAgkBWAABAcUAAAABAfEBWAABAdUAAAABAgABWAABAggAAAABAjQBWAABAmUCsAABAWwAAAABAZcBWAABAcgCsAABAV0AAAABAYkBWAABAboCsAABATj/SAABAYT/SAABAYv/SAABAgT/SAABAgj/SAABAe//SAABAf//SAABAjL/SAABAKoAAAABAMoAAAABALAAAAABANAAAAABAUoAAAABAU4AAAABARUAAAABATUAAAABASQAAAABAUQAAAABAXgAAAABALsAAAABANwAAAABAR0CsAABAK0AAAABAM0AAAABAQ4CsAABANcDeQABANQDWQABAU0AAAABAacAAAABAbcCsAABAmsCsAABAWYAAAABAdECsAABAoUCsAABAkUCsAABAvkCsAABAeoAAAABAkQAAAABAlQCsAABAwgCsAABAbgAAAABAhIAAAABAiMCsAABAtcCsAABAc4AAAABAigAAAABAjgCsAABAuwCsAABAU4AAAABAagAAAABAm0CsAABASYAAAABAIMCuQABAUkAAAABAakCsAABAcEAAAABAiECsAABAc8AAAABAi8CsAABAgAAAAABAmACsAABAagCsAABAUgDeQABAUQDWQABAW0AAAABAdQCsAABAeAAAAABAkcCsAABAe4AAAABAlUCsAABAb8AAAABAiYCsAABAdAAAAABAjcCsAABAdkAAAABAkACsAABAdsAAAABAkICsAABAXMAAAABAdoCsAABAVUAAAABAbwCsAABAT7/SAABAXn/SAABAZf/SAABAgr/SAABAhj/SAABAen/SAABAfr/SAABAgP/SAABAgX/SAABAR4CDgABAVUC4gABAPwCDgABANoAAAABAVAC4gABAMcAAAABAQkCDgABAHH/NwABARAC4gABAFMAAAABATACDgABANYAAAABAU0C4gABAFQAAAABAJ0CDgABAM0AAAABARcCDgABALcAAAABAR8C4gABASwCDgABALIAAAABAI3/NwABAToC4gABAS4AAAABAdQCDgABAN8AAAABASoCDgABAS4CDgABAI7/NwABAScCDgABATICDgABAKYAAAABAPACDgABANgAAAABAW0CDgABAPICDgABAR3/NwABAX8CDgABAToAAAABAX0CDgABALoC9wABAToC9wABALQAAAABAP0CDgABALwAAAABAKkBCQABARACDgABASQBCQABASoBPwABAK8BPwABAPsCDgABAOoCDgABAKUAAAABAQ0C4gABASsCDgABATUC4gABANj/NwABAVwC4gABASMAAAABASYCDgABADf/OAABAHsA8AABAMUDAwABAJAC4gABAUoC4gABAVUCDgABAS0CDgABAYMDHAABASEDHAABASgDGgABAT0DGwABAT8DEQABAToC2wABARr/SAABATsDAQABAW4DHAABAQwDHAABARMDGgABASkDGwABAZUDHAABATMDHAABAToDGgABAU8DGwABAH3/SAABAU0DAQABAQIDHAABAKADHAABAKgDGgABAL0DGwABAL4DEQABALkC2wABAMIDcgABAZEDHAABAS8DHAABATYDGgABAUwDGwABAZMDHAABATEDHAABAT4DEQABATkC2wABAUIDcgABAeIDHAABAYADHAABAYcDGgABAZ0DGwABAWT/SAABAZsDAQABAEH/SAABARcC4gABAYkAAAABARACMwABANcAAAABASwCMwABAKEAAAABAR0CMwABAMMAAAABARMCMwABAUwAAAABARkCMwABAKMAAAABAQMCMwABAPEAAAABARgBGwABAT8CMwABAUACMwABAFwAAAABAH8AAAABAKwCMwABATQCMwABALgAAAABAQwCMwABAR0AAAABAWYCMwABAUECMwABAKkAAAABAPkCMwABAOsAAAABAUEAAAABAUcCMwABAfECMwABAO8AAAABAT4CMwABARYCMwABAKcAAAABAPYCMwABAM0BJQABAPMCMwABAQQCMwABAR4AAAABAW4CMwABAK4AAAABAP0CMwABATsCMwABAQ8CMwABAK4BHQABAR4CMwABATUBHQABAToBSwABALMBSwABAQkCMwABAJIAAAABAOECMwABAL0AAAABALUAAAABAP4CMwABAK0CMwABAMAAAAABAMgAAAABARcCMwABASgCMwABAO0CDgABAAAAAAACAAsKRwp1AAAKdwp7AC8KfwqAADQKiAqJADYKjAqNADgKlAqjADoKsAqwAEoKsgqyAEsKtAq0AEwKtgq2AE0K1wrYAE4AAgAFBmcHKwAABy0HsQDFB7MHswFKB7UIbQFLCjYKNgIEAAFFikXQAAUADAFOAFAAAiwWAAIsHAACLCIAAiwoAAIsLgACLDQAAiw6AAIsQAACLEYAAixMAAIsUgACLFgAAixeAAIsZAACLGoAAixwAAIsdgACLHwAACt0AAAregAAK4AAACuGAAMtAAADLQYAACuMAAArkgAAK5gAACueAAAregAAK6QAACuqAAArsAAAK7YAACu8AAArwgABLBAAACvIAAArzgAAK9QAACuwAAAr2gAAK+AAACvmAAAr7AAAK/IABC0SAAQtGAAAK/gAACvsAAArzgAAK/4AAixYAAIsggACLIgAAiyOAAIslAACLJoAAiygAAIspgACLKwAAiyyAAIsuAACLL4AAizEAAIsygACLNAAAizWAAIs3AACLOIAAizoAAIs7gADLQwAACwEAAArngACLPQAAiz6AAIs9AACLPoAAixMAAAsCgQ4K9wr4ivoRDZENivcK+Ir7kQ2RDYr3CviK/RENkQ2K9wr4iv6RDZENiwAK+Ir9EQ2RDYr3CviLAZENkQ2K9wr4iwMRDZENivcK+IsEkQ2RDYr3CviLBhENkQ2K9wr4iweLCRENivcK+IsKiwwRDYsACviLB4sJEQ2K9wr4iw2LDxENivcK+IsQixIRDYr3CviLE4sSEQ2K9wr4ivoRDZENivcK+IsVEQ2RDYr3CviLFpENkQ2K9wr4ixgRDZENiwAK+Ir6EQ2RDYr3CviLGZENkQ2K9wr4ivuRDZENivcK+IsbEQ2RDYr3CviLHJENkQ2LHhENix+RDZENivcK+IshEQ2RDYr3CviK+hENkQ2K9wr4iyKRDZENivcK+IskEQ2RDYr3EQ2K+hENkQ2K9wr4iyWRDZENiycRDYsokQ2RDYsnEQ2LKhENkQ2LJxENiyuRDZENiy0RDYsukQ2RDYstEQ2LMBENkQ2LMZENiy6RDZENkQ2RDYszEQ2RDYs0kQ2LNhENkQ2LN5ENizkRDZENivcRDYs6kQ2RDYs8EQ2LPZENkQ2LPBENiz8RDZENizwRDYtAkQ2RDYtCEQ2LPZENkQ2LPBENi0OLRRENizwRDYtGkQ2RDZENkQ2LSBENkQ2LSZENi0sRDZENi0mRDYtMkQ2RDYtOEQ2LURENi0+LUpENi1QRDYtPi1KRDYtVkQ2LT4tXEQ2LWhENi1iLVxENi1oRDYtYi04RDYtbkQ2LT4tdEQ2LURENi0+LVxENi1oRDYtYi04RDYtekQ2LT4tgEQ2LURENi0+LYZENi2SRDYtjC2YRDYtREQ2LT4r3EQ2K+hENkQ2LZ5ENi2kRDYtPi2eRDYtqkQ2LT4tsC22LOpENkQ2LbAtti28RDZENi2wLbYtwkQ2RDYtsC22LchENkQ2LbAttizqRDZENi2wLbYtzi3URDYtsC22Ldot4EQ2LeYtti3OLdRENi2wLbYt7C3yRDYtsC22LfgsPEQ2LbAtti3+LDxENi2wLbYs6kQ2RDYtsC22LgRENkQ2LbAtti4KRDZENi3mLbYs6kQ2RDYtsC22LbxENkQ2LbAtti4QRDZENi2wLbYuFkQ2RDYtsC22LhxENkQ2LbAttizqRDZENi2wRDYuIkQ2RDYuKEQ2Li5ENkQ2LjQtti46RDZENi2wLbYuQEQ2RDYuRkQ2LkxENkQ2LkZENi5SRDZENi5YRDYuXkQ2RDYuZEQ2LmpENkQ2LmRENi5wRDZENi5kRDYuakQ2RDYudkQ2LnxENkQ2LnZENi6CRDZENi52RDYuiEQ2RDYudkQ2Lo5ENkQ2LnZENi6ULppENi52RDYufEQ2RDYudkQ2LqBENkQ2LThENiy6RDZENi6mRDYurEQ2RDYs3kQ2LWhENkQ2RDZENi5eRDZENi6yRDYuvkQ2LrguxEQ2LspENi1iLrJENi7QRDYuuC6yRDYu1i7cLrgu4kQ2Lr5ENi64LuhENi70RDYu7i76RDYvAEQ2RDYvBkQ2LwxENkQ2LxIvGC8eRDZENi8SLxgvJEQ2RDYvEi8YLypENkQ2LxIvGC8wRDZENi8SLxgvNkQ2RDYvEi8YLzwvQkQ2LxIvGC8eRDZENi8SLxgvSEQ2RDYvEi8YLx5ENkQ2LxIvGC9ORDZENi9ULxgvHkQ2RDYvEi8YL1pENkQ2LxIvGC9gRDZENi8SLxgvZkQ2RDYvEi8YL2xENkQ2LxIvGC8eRDZENi9yRDYveEQ2RDYvfi+EL4pENkQ2LxIvGC+QRDZENkQ2RDYvlkQ2RDZENkQ2L5wvokQ2RDZENi+oRDZENkQ2RDYvrkQ2RDYstEQ2L7RENkQ2LLRENi+6RDZENiy0RDYvtEQ2RDYvwEQ2L8ZENkQ2L8xENi8eL9gv0i/MRDYv3i/YL9IvzEQ2Lyov2C/SL+RENi/wL/Yv6i/8RDYwCDAOMAIvzEQ2Lx4v2C/SMBRENi8eL9gv0i/MRDYvHi/YL9IvzEQ2MBov2C/SMCBENi8eL9gv0jAmRDYwMjA4MCwwPkQ2MEowUDBEMFZENjBcRDZENjBWRDYwYkQ2RDYwVkQ2MGhENkQ2MG5ENjB0RDZENjB6RDYwgEQ2RDYwekQ2MIZENkQ2MHpENjCMRDZENjB6RDYwkkQ2RDYwmEQ2MIBENkQ2MHpENjCARDZENjB6RDYwnkQ2RDYwpEQ2MIBENkQ2MHpENjCMRDZENjB6RDYwgEQ2RDYwekQ2MIBENkQ2MKpENjC2MLwwsEQ2RDYwwkQ2RDYwekQ2MMhENkQ2LrIwzjDUMNpENjDgRDYtaEQ2RDYusjDOMOYw2kQ2LrIwzjDsMNpENi6yMM4w8jDaRDYw+EQ2MIBENkQ2LrIwzjD+MQRENi6yMM4xCjEQRDYxFjDOMP4xBEQ2LrIwzjEcMSJENi6yMM4xKDEuRDYusjDOMTQxLkQ2LrIwzjDUMNpENi6yMM4xOjDaRDYusjDOMUAw2kQ2LrIwzjFGMNpENi6yMM4xTDDaRDYxFjDOMNQw2kQ2LrIwzjDmMNpENi6yMM4xUjDaRDYusjDOMNQxWEQ2LrIwzjDmMVhENjEWMM4w1DFYRDYusjDOMOYxWEQ2LrIwzjFSMVhENi6yMM4xXjFYRDYusjDOMNQw2kQ2RDZENjB0RDZENi6yMM4xZDDaRDYusjDOMWow2kQ2LrIwzjFwMNpENi6yMM4xcDDaRDYxdkQ2MXxENkQ2LrIwzjDUMNpENi6yMM4xajDaRDYxgkQ2LkxENkQ2MPhENjGIRDZENjD4RDYxjkQ2RDYusjDOMV4w2kQ2LrIwzjGUMNpENi6yMM4xmjDaRDYxoEQ2MaZENkQ2MaxENjGyRDZENjGsRDYxuEQ2RDYxrEQ2Mb5ENkQ2McRENjHKRDZENivcRDYr6EQ2RDYs8EQ2MdBENkQ2RDZENjHWRDZENjHcRDYtMkQ2RDYx3EQ2MeJENkQ2MdxENjHoRDZENjHcRDYtMkQ2RDYx3EQ2LTJENkQ2Me5ENi0yRDZENjHcRDYx9EQ2RDYx+kQ2MgBENkQ2MdxENi0yRDZENjIGRDYyDEQ2RDYyBkQ2MhJENkQ2MgZENjIYRDZENjIeRDYyDEQ2RDYyBkQ2MiQyKkQ2MgZENjIMRDZENjIGRDYyMEQ2RDYyNkQ2MgxENkQ2LThENjI8RDZENi5GRDYuXkQ2MkIuRkQ2Ll5ENjJCLkZENjJIRDYyQi5GRDYuXkQ2MkIyTkQ2Ll5ENjJCLkZENi5eRDYyQi5GRDYuXkQ2RDYuRkQ2MlRENjJCMlpENi5eRDYyQjJgRDYyZkQ2RDYybEQ2Ll5ENjJCK9xENivoRDZENjJyRDYuakQ2RDYuRkQ2Ll5ENjJCMngyfjKEMopENjJ4Mn4ykDKKRDYs8DKWMpwyokQ2MngyfjKoMopENjJ4Mn4yrjKKRDYyeDJ+MrQyukQ2MngyfjKEMopENjJ4Mn4ywDKKRDYyeDJ+MoQyikQ2MngyfjLGMopENjJ4Mn4yhDKKRDYyeDJ+MswyikQ2MtIyfjKEMopENjJ4Mn4y2DKKRDYyeDJ+Mt4yikQ2MngyfjKEMuRENjJ4Mn4ykDLkRDYy0jJ+MoQy5EQ2MngyfjKQMuRENjJ4Mn4y3jLkRDYyeDJ+Muoy5EQ2MngyfjKEMopENjJ4Mn4y8DKKRDYyeDJ+MvYyikQ2MngyfjKEMopENix4RDYx0EQ2RDYyeDJ+MvwyikQ2MngyfjLqMopENjJ4Mn4zAjKKRDYzCEQ2Mw5ENkQ2RDZENjMORDZENi/ARDYvxkQ2RDYr3EQ2LMxENkQ2MxRENjMaRDZENjMURDYzIEQ2RDYzFEQ2MyYzLEQ2MxRENjMyRDZENjMURDYzIEQ2RDYzFEQ2MzhENkQ2K9xENivoRDZENjJyRDYzPkQ2RDYyBkQ2M0RENkQ2MgZENjNKRDZENjIGRDYzUDNWRDYyBkQ2M1xENkQ2MjZENjNERDZENjIGRDYzYkQ2RDYyBkQ2K+hENkQ2MgZENjNoRDZENjIGRDYzbkQ2RDZENkQ2M3RENkQ2MgZENjN6RDZENjIGRDYzgEQ2RDYzhkQ2M4xENkQ2M4ZENjOSRDZENjOGRDYzmEQ2RDYzhkQ2M55ENkQ2M6RENjOMRDZENkQ2RDYzqkQ2RDYzsEQ2M7ZENkQ2K9wr4ivoRDZENi2wLbYs6kQ2RDYvEi8YLx5ENkQ2LrIwzjDUMNpENjJ4Mn4yhDKKRDYs8EQ2LPZENkQ2MHpENjCARDZENi6yMM4w1DDaRDYyBkQ2MgxENkQ2M4ZENjOMRDZENkQ2RDYzvEQ2RDZENkQ2M7xENkQ2RDZENjPCRDZENivcRDYs6kQ2RDYzyEQ2MgxENkQ2M85ENjPURDZENjPaRDYz4DPmRDYwPkQ2M+xENkQ2MD5ENjPyRDZENi9+RDYz+EQ2RDYz/kQ2NARENkQ2NApENjQQNBZENjMURDY0HEQ2RDYvzEQ2NCJENkQ2NChENjQuRDZENiy0NDQ0OkQ2RDYstDQ0NEBENkQ2LLQ0NDRGRDZENiy0NDQ0TEQ2RDYsxjQ0NEZENkQ2LLQ0NDRMRDZENiy0NDQ0UkQ2RDYstDQ0NFhENkQ2LLQ0NDReRDZENiy0NDQ0ZEQ2RDYstDQ0NGo0cEQ2LMY0NDRkRDZENiy0NDQ0djR8RDYstDQ0NII0iEQ2LLQ0NDSONJRENiy0NDQ0mkQ2RDYstDQ0NKBENkQ2LLQ0NDSmRDZENiy0NDQ0rEQ2RDYsxjQ0NDpENkQ2LLQ0NDSyRDZENiy0NDQ0uEQ2RDYstDQ0NL5ENkQ2LLQ0NDTERDZENivcRDY0ykQ2RDYr3EQ2NMpENkQ2LLQ0NDTQRDZENiy0NDQ0OkQ2RDYstDQ0NNZENkQ2LLQ0NDTcRDZENjTiRDY06EQ2RDYstDQ0NO5ENkQ2NPRENjT6RDZENjUARDY1BkQ2RDY1AEQ2NQxENkQ2NQBENjUSRDZENi/kRDY1GDUeRDYv5EQ2NSQ1HkQ2NSpENjUYNR5ENkQ2RDY1MEQ2RDY1NkQ2NTxENkQ2NUJENjVIRDZENjVORDY1VEQ2RDYwPkQ2NVo1YEQ2NTZENjU8RDZENjVmRDY1bDVyRDY1ZkQ2NXg1ckQ2NWZENjV+NXJENjIeRDY1bDVyRDY1ZkQ2NYQ1ckQ2MaxENjWKRDZENjVmRDY1kDVyRDZENkQ2NZZENkQ2NZxENjWiRDZENjWoRDY0OkQ2RDY1ZkQ2NWw1ckQ2L+RENjU8NbQ1rjW6RDYz7EQ2RDY1wEQ2NcZENkQ2L+RENjU8NbQ1rjXMRDY1PDW0Na4v5EQ2NTw1tDWuRDZENjXSRDZENi/kRDY12DW0Na41KkQ2NTw1tDWuRDZENjXeRDZENjXkRDY16jW0Na418EQ2NfZENkQ2NfxENjU8NbQ1rjYCRDY2CDW0RDY0CkQ2Ng5ENkQ2NhRENjYaNbQ1rjYgRDY2JjW0Na42FEQ2Niw1tDWuL+RENjYyNbQ1rjTiNjg06EQ2RDY04jY4Nj5ENkQ2NOI2ODZERDZENjTiNjg2SkQ2RDY2UDY4NOhENkQ2NOI2ODZWRDZENjTiNjg2XDZiRDY2aDY4NlZENkQ2NOI2ODZuNnRENjTiNjg2ejaARDY04jY4NoY2jEQ2NOI2ODaSRDZENjTiNjg2mEQ2RDY04jY4Np5ENkQ2Nmg2ODToRDZENjTiNjg2pEQ2RDY04jY4NqpENkQ2NOI2ODawRDZENjTiNjg2tkQ2RDY04jY4NOhENkQ2NrxENjbCRDZENi40RDY2yEQ2RDY2zkQ2NtRENkQ2NtpENjbgRDZENjbORDY21EQ2RDY25kQ2NuxENkQ2NvJENjb4RDZENjb+RDY3BEQ2RDZENkQ2NwpENkQ2NxBENjcWRDZENjPORDYz1EQ2RDY04jY4NxxENkQ2M843IjcoRDZENjPONyI3KEQ2RDYzzjciNyhENkQ2Ny5ENjc0RDZENjcuRDY3OkQ2RDY3QEQ2N0ZENkQ2RDZENjdMRDZENjdSRDY3WEQ2RDY3XkQ2N2RENkQ2N15ENjdkRDZENjdeRDY3akQ2RDY3XkQ2N2pENkQ2N3BENjd2N3xENjeCRDY3iDeORDY3gkQ2N5Q3jkQ2N5pENjegRDZENjeCRDY3pjeORDY3gkQ2N6w3jkQ2N4JENjeyN45ENjeCRDY3iDeORDY3gkQ2N7g3jkQ2N75ENjfERDZENjfKRDY30EQ2RDY31kQ2N9w34kQ2N8pENjfQRDZENjfoRDY37kQ2RDY39EQ2N/pENkQ2N9ZENjfcN+JENjfoRDY37kQ2RDY3gkQ2N4g3jkQ2RDZENjgARDZENkQ2RDY4BkQ2RDY18EQ2OBJENjgMM8hENjgYRDY1rjXwRDY4HkQ2OAw18EQ2OCQ4KjgMODBENjgSRDY4DDg2RDY4PEQ2RDY4QkQ2ODxENkQ2OEhENjhORDZENjhURDY4WkQ2RDY4VEQ2OFpENkQ2OGBENjhmRDZENjhsOHg4fkQ2OHI4bDh4OIRENjhyOGw4eDiKRDY4cjhsOHg4kEQ2OHI4bDh4OJZENjhyOGw4eDicRDY4cjhsOHg4okQ2OHI4bDh4OKhENjhyOGw4eDiERDY4cjhsOHg4fkQ2OHI4rjh4OH5ENjhyOGw4eDiERDY4cjhsOHg4tEQ2OHI4bDh4OLpENjhyOGw4eDjARDY4cjjGOHg40jjYOMw4bDh4ON5ENjhyOGw4eDh+RDY4cjjkRDY46kQ2RDY48C8YOPxENjj2OGw4eDkCRDY4cjkIRDY5FDkaOQ45CEQ2OSA5GjkOOQhENjkmORo5DjkIRDY5LDkaOQ45MkQ2OThENkQ2OT5ENjP4OUo5RDlQRDY5VkQ2RDY5PkQ2OVw5SjlENfBENjliOWhENjXwRDY5bjloRDY18EQ2OWI5aEQ2OXRENjbCRDZENjl6RDY3WEQ2RDY5gEQ2OYxENjmGOYBENjmSRDY5hjmYRDY5nkQ2RDY5pEQ2ObBENjmqM/5ENjm8RDY5tjmARDY5jEQ2OYY5wkQ2OYxENjmGOYBENjmMRDY5hkQ2RDY5yEQ2RDY5gEQ2Oc5ENjmGOdRENjmMRDY5hjnaRDY10kQ2OYY54EQ2OeZENkQ2OexENjn4Of458jbmRDY6CkQ2OgQ6EEQ2OhZENkQ2OhxENjooRDY6IjouRDY6NEQ2RDYxdkQ2Ojo6QEQ2MXZENjpGOkBENjF2RDY6TDpARDY6UkQ2Ojo6QEQ2OlhENjpeRDZENi7oRDY6ZEQ2RDY18EQ2Omo1HkQ2NfBENjpwNR5ENjp2RDY6fDqCRDY18EQ2Oog1HkQ2Oo5ENjpqNR5ENjXwRDY6ajUeRDZENkQ2OFpENkQ2NfBENjqUNR5ENjgwRDY6ajUeRDY18EQ2Opo1HkQ2OqBENjpqNR5ENjqgRDY6ajUeRDY6pkQ2Omo1HkQ2OqxENjq4Or46sjXwRDY6xDUeRDYr3DrKOtA61kQ2K9w6yjrcOtZENi/kRDY6akQ2RDYr3DrKOuI61kQ2K9w6yjroOtZENivcOso67jrWRDYr3DrKOvQ6+kQ2LAA6yjruOtZENivcOso7ADsGRDYr3DrKOww7EkQ2K9w6yjsYOx5ENivcOso7JDrWRDYr3DrKOyo61kQ2K9w6yjswOtZENivcOso7NjrWRDYr3DrKOzw61kQ2LAA6yjrQOtZENivcOso3lDrWRDYr3DrKO0I61kQ2K9w6yjrQO0hENivcOso63DtIRDYsADrKOtA7SEQ2K9w6yjeUO0hENivcOso7QjtIRDYr3DrKO047SEQ2K9w6yjrQOtZENkQ2RDY7VEQ2RDYr3DrKO1o61kQ2K9w6yjtgOtZENivcOso7ZjrWRDYr3DrKO2w61kQ2NU5ENjtyRDZENjt4RDY7fkQ2RDYr3DrKOtA61kQ2K9w6yjtgOtZENjuERDY3WEQ2RDY7ikQ2OmpENkQ2O4pENjpwRDZENivcOso7TjrWRDYr3DrKO5A61kQ2K9w6yjuWOtZENi2wRDY7nEQ2RDY7okQ2O6hENkQ2O65ENju0O7pENjuuRDY7wDu6RDY7rkQ2O8Y7ukQ2O8xENjUYRDZENjvSRDY72EQ2RDZENkQ2O95ENkQ2O+RENjvqN45ENjvwRDY79kQ2RDZENkQ2NWxENkQ2RDZENjv8RDZENjwCRDY8CEQ2RDY8AkQ2PA5ENkQ2PBRENjwaRDZENjwCRDY8IEQ2RDY8AkQ2PAhENkQ2PAJENjwmRDZENjwsRDY8CEQ2RDY8MkQ2NZZENkQ2NuZENjw4RDZENjeaRDY8CEQ2RDY8PkQ2PERENkQ2PAJENjxKRDZENjxQRDY21EQ2RDYvEkQ2PFZENkQ2OPBENjxcRDZENjxiRDY8REQ2RDY2zkQ2NC5ENkQ2Ns5ENjxoRDZENjbORDY8bkQ2RDY8dEQ2NC5ENkQ2Ns5ENjx6RDZENjbORDY0LkQ2RDY2zkQ2PIBENkQ2PIZENjQuRDZENjyMRDY0LkQ2RDZENkQ2PJJENkQ2PJhENjykPKo8njyYRDY8pDyqPJ48mEQ2PKQ8qjyePLBENjy2RDZENjy8RDY8pDyqPJ48wkQ2PKQ8qjyePJhENjykPKo8nkQ2RDY8yEQ2RDY8zkQ2PKRENkQ2PJhENjzUPKo8njzaRDY8pDyqPJ484EQ2NTxENkQ2PM5ENjzmRDZENjzsRDY8pDyqPJ488kQ2PPhENkQ2LlhENjz+RDZENjWcRDY21EQ2RDZENkQ2PMhENkQ2PQRENj0KPKpENj0QRDY10kQ2RDY9FkQ2PSJENj0cL+Q9KDToPS5ENi/kPSg9ND0uRDYtXD06O7Q9QEQ2L+Q9KD1GPS5ENi/kPSg2Sj0uRDYv5D0oNlY9LkQ2L+Q9KDaSPS5ENi/kPSg2mD0uRDYv5D0oNOg9LkQ2L+Q9KD1MPS5ENi/kPSg06D0uRDYv5D0oPVI9LkQ2LAA9KDToPS5ENi/kPSg2pD0uRDYv5D0oPVg9LkQ2L+Q9KDToPV5ENi/kPSg2Pj1eRDY1Kj0oNOg9XkQ2L+Q9KDakPV5ENi/kPSg9WD1eRDYv5D0oPWQ9XkQ2L+Q9KDToPS5ENi/kPSg2sD0uRDYv5D0oNrY9LkQ2PWpENj1wPXZENi/kRDY1PDW0Na49fEQ2PYJENkQ2PYhENj2OPZRENj2aRDY9oD2mRDY7rkQ2O7Q7ukQ2PaxENj2yRDZENj24RDY9vkQ2RDY9xEQ2PcpENkQ2N+hENj3WPdw90D3iRDY8+EQ2RDZENkQ2O9hENkQ2L+Q9KDToPS5ENjTiRDYz8kQ2RDYv5D0oPeg9LkQ2L+Q9KDccPS5ENi/kPSg97j0uRDYzhkQ2N6BENkQ2NWZENj30RDZENjP+RDY9+kQ2RDY5mEQ2OAZENkQ2PgBENj4GRDZENj4ARDY+DEQ2RDY+AEQ2PhJENkQ2PgBENj4YRDZENj4ARDY+HkQ2RDY+JEQ2PipENkQ2McRENj4wRDZENkQ2RDY60EQ2RDY+NkQ2PjxENkQ2PkJENjxERDZENj5CRDY+SEQ2RDY+QkQ2Pk5ENkQ2PkJENj5URDZENj5aRDY8REQ2RDY+QkQ2PmBENkQ2RDZENj5mRDZENj5CRDY+bEQ2RDY+QkQ2PnJENkQ2PnhENjegRDZENj5CRDY+fkQ2RDY+hEQ2PopENkQ2PaxENjdGRDZENj2sRDY+kEQ2RDY9rEQ2PpZENkQ2PpxENjdGRDZENj2sRDY+okQ2RDY+qEQ2N0ZENkQ2RDZENj6uRDZENj60RDY3RkQ2RDY+ukQ2PsBENkQ2RDZENj7ARDZENiy0NDQ0OkQ2RDY04jY4NOhENkQ2OGw4eDiERDY4civcOso60DrWRDYv5D0oNOg9LkQ2NWZENjVsNXJENjXwRDY6ajUeRDYr3DrKOtA61kQ2Ns5ENjQuRDZENj2sRDY3RkQ2RDZENkQ2OWJENkQ2RDZENj7GRDZENkQ2RDY+zEQ2RDYyBkQ2PthENj7SLxJENj7eRDZENj0QRDY+6kQ2PuQ1ZkQ2PvBENkQ2N9ZENj72RDZENkQ2RDY+/EQ2RDYx3EQ2Pwg/Dj8CPxRENj8aRDZENjBWRDY/IEQ2RDZENkQ2PyZENkQ2L+RENj8sRDZENj8yRDY/OEQ2RDZENkQ2Pz5ENkQ2LkY/RD9KRDZENi5GP0Q/UEQ2RDYuRj9EP0pENkQ2LkY/RD9WRDZENj9cP0Q/SkQ2RDYuRj9EP1ZENkQ2LkY/RD9iRDZENi5GP0Q/aEQ2RDYuRj9EP25ENkQ2LkY/RD9KRDZENi5GP0Q/dD96RDY/XD9EP0pENkQ2LkY/RD+AP4ZENi5GP0Q/jD+SRDYuRj9EP5g/nkQ2LkY/RD+kRDZENi5GP0Q/SkQ2RDYuRj9EP6pENkQ2LkY/RD9KRDZENj9cP0Q/SkQ2RDYuRj9EP7BENkQ2LkY/RD9KRDZENi5GP0Q/tkQ2RDYuRj9EP7xENkQ2LkY/RD9KRDZENi5GP0Q/SkQ2RDYuRj9EP0pENkQ2LkY/RD/CRDZENi5YRDY/yEQ2RDYuRj9EP0pENkQ2P85ENj/URDZENj/ORDY/2kQ2RDY/zkQ2P9RENkQ2L8xENj/gRDZENi/MRDY/4EQ2RDYwIEQ2P+BENkQ2LrJENj/mRDZENjIGRDY/JkQ2RDY36EQ2P+xENkQ2LVxENj/yRDZENi1c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aWcIsmRsaWcIuGRsaWcIvmRsaWcIxGRsaWcIymRsaWcI0GRsaWcI1mRsaWcI3GRsaWcI4mRsaWcI6GRsaWcI7mRub20I9GRub20I+mRub20JAGRub20JBmRub20JDGRub20JEmRub20JGGRub20JHmRub20JJGRub20JKmRub20JMGRub20JNmZyYWMJPGZyYWMJRmZyYWMJUGZyYWMJWmZyYWMJZGZyYWMJbmZyYWMJeGZyYWMJgmZyYWMJjGZyYWMJlmZyYWMJoGZyYWMJqmxpZ2EJtGxpZ2EJumxpZ2EJwGxpZ2EJxmxpZ2EJzGxpZ2EJ0mxpZ2EJ2GxpZ2EJ3mxpZ2EJ5GxpZ2EJ6mxpZ2EJ8GxpZ2EJ9mxudW0J/GxudW0KAmxudW0KCGxudW0KDmxudW0KFGxudW0KGmxudW0KIGxudW0KJmxudW0KLGxudW0KMmxudW0KOGxudW0KPmxvY2wKRGxvY2wKSmxvY2wKUGxvY2wKVmxvY2wKXGxvY2wKYmxvY2wKaGxvY2wKbmxvY2wKdGxvY2wKemxvY2wKgGxvY2wKhmxvY2wKjGxvY2wKkmxvY2wKmG1ncmsKnm1ncmsKpG1ncmsKqm1ncmsKsG1ncmsKtm1ncmsKvG1ncmsKwm1ncmsKyG1ncmsKzm1ncmsK1G1ncmsK2m1ncmsK4G51bXIK5m51bXIK7G51bXIK8m51bXIK+G51bXIK/m51bXILBG51bXILCm51bXILEG51bXILFm51bXILHG51bXILIm51bXILKG9udW0LLm9udW0LNG9udW0LOm9udW0LQG9udW0LRm9udW0LTG9udW0LUm9udW0LWG9udW0LXm9udW0LZG9udW0Lam9udW0LcG9yZG4Ldm9yZG4Lfm9yZG4Lhm9yZG4Ljm9yZG4Llm9yZG4Lnm9yZG4Lpm9yZG4Lrm9yZG4Ltm9yZG4Lvm9yZG4Lxm9yZG4LznBudW0L1nBudW0L3HBudW0L4nBudW0L6HBudW0L7nBudW0L9HBudW0L+nBudW0MAHBudW0MBnBudW0MDHBudW0MEnBudW0MGHNhbHQMHnNhbHQMJHNhbHQMKnNhbHQMMHNhbHQMNnNhbHQMPHNhbHQMQnNhbHQMSHNhbHQMTnNhbHQMVHNhbHQMWnNhbHQMYHNtY3AMZnNtY3AMbHNtY3AMcnNtY3AMeHNtY3AMfnNtY3AMhHNtY3AMinNtY3AMkHNtY3AMlnNtY3AMnHNtY3AMonNtY3AMqHNzMDEMrnNzMDEMtHNzMDEMunNzMDEMwHNzMDEMxnNzMDEMzHNzMDEM0nNzMDEM2HNzMDEM3nNzMDEM5HNzMDEM6nNzMDEM8HNzMDIM9nNzMDIM/HNzMDINAnNzMDINCHNzMDINDnNzMDINFHNzMDINGnNzMDINIHNzMDINJnNzMDINLHNzMDINMnNzMDINOHNzMDMNPnNzMDMNRHNzMDMNSnNzMDMNUHNzMDMNVnNzMDMNXHNzMDMNYnNzMDMNaHNzMDMNbnNzMDMNdHNzMDMNenNzMDMNgHNzMTANhnNzMTANjHNzMTANknNzMTANmHNzMTANnnNzMTANpHNzMTANqnNzMTANsHNzMTANtnNzMTANvHNzMTANwnNzMTANyHN1YnMNznN1YnMN1HN1YnMN2nN1YnMN4HN1YnMN5nN1YnMN7HN1YnMN8nN1YnMN+HN1YnMN/nN1YnMOBHN1YnMOCnN1YnMOEHN1cHMOFnN1cHMOHHN1cHMOInN1cHMOKHN1cHMOLnN1cHMONHN1cHMOOnN1cHMOQHN1cHMORnN1cHMOTHN1cHMOUnN1cHMOWHRudW0OXnRudW0OZHRudW0OanRudW0OcHRudW0OdnRudW0OfHRudW0OgnRudW0OiHRudW0OjnRudW0OlHRudW0OmnRudW0OoHplcm8Opnplcm8OrHplcm8Osnplcm8OuHplcm8Ovnplcm8OxHplcm8Oynplcm8O0Hplcm8O1nplcm8O3Hplcm8O4nplcm8O6AAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAIAAAABAAAAAgAAAAEAAAACAAAAAQAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAEAJAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAQALQAuAC8AMAAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAEAJgAAAAMAAgADAAQAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABACwAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAABABgAAAADABkAGgAbAAAAAwAZABoAGwAAAAMAGQAaABsAAAADABkAGgAbAAAAAwAZABoAGwAAAAMAGQAaABsAAAADABkAGgAbAAAAAwAZABoAGwAAAAMAGQAaABsAAAADABkAGgAbAAAAAwAZABoAGwAAAAMAGQAaABsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABACsAAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABAB4AAAABABEAAAABABMAAAABABIAAAABAA8AAAABAAYAAAABAAoAAAABAAcAAAABABAAAAABAAgAAAABAAsAAAABAAwAAAABAA4AAAABAA0AAAABAAkAAAABAAUAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABQAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABABcAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAABACEAAAACABwAHQAAAAIAHAAdAAAAAgAcAB0AAAACABwAHQAAAAIAHAAdAAAAAgAcAB0AAAACABwAHQAAAAIAHAAdAAAAAgAcAB0AAAACABwAHQAAAAIAHAAdAAAAAgAcAB0AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABAB8AAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACIAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABACUAAAABACULCAABACMLAgABACMK/AABACMK9gABACMK8AABACMK6gABACMK5AABACMK3gABACMK2AABACMK0gABACMKzAABACMKxgABACMWtgABACgWsAABACgWqgABACgWpAABACgWngABACgWmAABACgWkgABACgWjAABACgWhgABACgWgAABACgWegABACgWdAABACgWgAABACkWegABACkWdAABACkWbgABACkWaAABACkWYgABACkWXAABACkWVgABACkWUAABACkWSgABACkWRAABACkWPgABACkWQgABACoWPAABACoWNgABACoWMAABACoWKgABACoWJAABACoWHgABACoWGAABACoWEgABACoWDAABACoWBgABACoWAAABACoAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABUAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABABYAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACAAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcAAAABACcANABqAHIAegCCAJIAnACkAKwAtAC8AMQAzgDWAN4A5gDuAPYA/gEGAQ4BFgEeASYBLgE2AT4BRgFOAVgBYgFqAXIBegGCAYoBkgGaAaIBqgGy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Cf0KGwocCh0KHgofCiAKIQoiAAItCgBwCHsIfAh9CH4IfwiACIEIggiDCIQIkQiSCJMIlAiVCJYIlwiYCJkImgjqCOwJCgkMCUEJQglDCUQJRQlGCUcJSAlJCUoJSwlMCU0JTglPCVAJUQljCWQJZQlmCWcJaAlpCWoJawlsCW0JbglvCXAJcQlyCXMJmgmbCZwJnQmeCZ8JoAmhCaIJowmkCaUJpgmnCagJqQmqCasJrAmtCa4JrwnGCccJyAnJCcoJywnMCc0JzgnPCdAJ0QnSCdMJ1AnVCdYJ1wnYCdkJ2gnbCfsJ/QoWChcKGAoZCh8KIAohCiIAAiygADgBRwFIAUkC+ARaBFsEXAUBBQIFAwUEBQUFBgUKBQsFDAUNBQ4FDwUQBREFEgUHBQgFCQWhBaIFowWkBaUFpgWnBagFqQWqBasFrAWtBa4FrwWwBbQFtQW2BbcFuAW5BboFuwW8Bb0FvgW/BbEFsgWzAAABAAACLCYAOAFHAUgBSQL4BFoEWwRcBQEFAgUDBQQFBQUGBQoFCwUMBQ0FDgUPBRAFEQUSBQcFCAUJBaEFogWjBaQFpQWmBacFqAWpBaoFqwWsBa0FrgWvBbAFtAW1BbYFtwW4BbkFugW7BbwFvQW+Bb8FsQWyBbMAAiwkApYDIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDDwM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRAMQA0UDRgNHA0gDSQNKA0sDTANNAxEDTgNPA1ADWgNbAxIDUQNSA1MDVANVA1YDVwNZA1oDWwNcA10DXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3cDeAN5A3oDfQMTA4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DFAMVAxYDkAOeA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA58DoAMXA6EDogOjA6QDGAOlA6YDpwOoA6oDqwOzA6wDrQMZA64DrwOwA7EDsgOzA74DvwPAA8EDwgPDA84DxAPGA8cDyAPJA8oDywPMA80DzgMaA88D0AP3A9ED0wPUA9ID1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuAxsD7wPwA/ED8gPzA/QD9QP2A/gD+QP6A/sD/AP9A/4D/wQABAEEAgQDBAQEBQQHBAgDHQQJBAoECwQMBA0EDgQPBBAEEQN2BBIEEwQUBBUEFgQXBBgEGQQaBBsEHAQdBB4EHwQgBCEEIgQjBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkDHgQ6BDsEPAQ9Ax8EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EUAMcBFEEUgRTBFQEVQRWBFcEWARZA7QDtQO2A7cDuAO5A7oDuwO8A70GZQXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBesF7AXtBe4F7wXwBfEF8gXzBfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gX/BgAGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYRBhIGEwYUBhYGFQYXBhgGGQYaBhsGHAYdBh4GIwYkBiUGJgYnBigGKQYqBisGLAYtBi4GLwYwBjEGMgYzBjQGNQY2BjcGOAY5BjoGOwY8Bj0GPgY/BkAGQQZCBkMGRAZFBkYGRwZIBkkGSgZLBkwGTQZOBk8GUAZRBlIGUwZUBlUGVgZXBlgGHwYgBiEGIgZZBloGWwZcBl0GXgZfBmAGYQZiBmMGZAfvB7UHtge3B7gHuQe6B7sHvAe9B74HvwfAB8EHwgfDB8QHxQfHB8gHyQfKB8sHzAfNB9YH1wfYB84H1AfRB9UHzwfSB9kH2gfbB98H4AfhB+IH4wfkB+cH6AfpB7wH8QfuB/IH3AfdB94H9Af1B/YH9wf4B/kH+gf7B/wH/Qf/CAAIAQgECAUIBggHCAgICQgKCAsIDQgOCA8IEAgRCBIIEwgUCBUIFggXCBgIGQgaCBsIHAgdCB4IIAgjCCQIJQgmCCcIKAgpCCoILAgtCC4ILwgwCDEIMggzCDQINQg3CDgIPAg9CD4IPwhACEEIQghDCEUIRwhJCEsITQhOCE8IUQhSCFYIVwhYCFkIWghbCFwIXQheCF8IYQhkCGUIZghnCGgIaQhqCGsKuAq5CroKuwq8Cr0Kvgq/CsAKwQrCCsMKxArFCsYKxwrICskKygrLCswKzQrOCtEK0grTCtUKzwrQCtQK/wsECwULCQs4AAIndALGAxwDIAMhAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjA2QDZQNmA2cDaANpA2oDawNsA20DbgNvA3ADcQNyA3MDdAN1A3YDdwN4A3kDegN9A4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DkAORA5IDkwOUA5UDlgOXA5gDmQOaA5sDnAOdA54DnwOgA6EDogOjA6QDpQOmA6cDqAOpA6oDqwOsA60DrgOvA7ADsQOyA7MDvgO/A8ADwQPCA8MDxAPFA8YDxwPIA8kDygPLA8wDzQPOA88D0APRA9ID0wPUA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gPvA/AD8QPyA/MD9AP1A/YD9wP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQKBAsEDAQNBA4EDwQQBBEEEgQTBBQEFQQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQiBCMEJAQlBCYEJwQoBCkEKgQrBCwELQQuBC8EMAQxBDIEMwQ0BDUENgQ3BDgEOQQ6BDsEPAQ9BD4EPwRABEEEQgRDBEQERQRGBEcESARJBEoESwRMBE0ETgRPBFAEUQRSBFMEVARVBFYEVwRYBFkDegN6A7QDtQO2A7cDuAO5A7oDuwO8A70DewN8A34DfwXMBc0FzgXPBdAF0QXSBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXeBd8F4AXhBeIF4wXkBeUF5gXnBegF6QXqBesF7AXtBe4F7wXwBfEF8gXzBfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gX/BgAGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBgwGDQYOBg8GEAYRBhIGEwYUBhUGFgYXBhgGGQYaBhsGHAYdBh4GIwYkBiUGJgYnBigGKQYqBisGLAYtBi4GLwYwBjEGMgYzBjQGNQY2BjcGOAY5BjoGOwY8Bj0GPgY/BkAGQQZCBkMGRAZFBkYGRwZIBkkGSgZLBkwGTQZOBk8GUAZRBlIGUwZUBlUGVgZXBlgGHwYgBiEGIgXOBdEGWQXWBdwF3QZaBlwF+wYMBg0GDwYQBhQGFgZdBl4GXwYmBicGYAYpBkIGQwZhBkwGYgZjBmQGVgXNBc8F0gXiBeUGZQe1B7YHtwe4B7kHuge7B7wHvQe+B78HwAfBB8IHwwfEB8UHxgfHB8gHyQfKB8sHzAfNB84HzwfQB9EH0gfTB9QH1QfWB9cH2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH6gfrB+wH7QfuB+8H8AfxB/IH8wf0B/UH9gf3B/gH+Qf6B/sH/Af9B/4H/wgACAEIAggDCAQIBQgGCAcICAgJCAoICwgMCA0IDggPCBAIEQgSCBMIFAgVCBYIFwgYCBkIGggbCBwIHQgeCB8IIAghCCIIIwgkCCUIJggnCCgIKQgqCCsILAgtCC4ILwgwCDEIMggzCDQINQg2CDcIOAg5CDoIOwg8CD0IPgg/CEAIQQhCCEMIRAhFCEYIRwhICEkISghLCEwITQhOCE8IUAhRCFIIUwhUCFUIVghXCFgIWQhaCFsIXAhdCF4IXwhgCGEIYghjCGQIZQhmCGcIaAhpCGoIawhsCrgKuQq6CrsKvAq9Cr4KvwrACsEKwgrDCsQKxQrGCscKyArJCsoKywrMCs0KzgrRCtIK0wrVCs8K0ArUCv8LBAsFCwkLOAACI+QAUgjoCOkI9wj4CPkI+gj7CPwJBgkHCQgJCQkZCRoJGwkcCZkKlAqVCpYKlwqYCpkKmgqbCpwKnQqeCp8KoAqhCqIKowqkCqUKpgqnCqgKqQqqCqsKrAqtCq4KrwraCt0K4Ar0CuMK5QrnCukK6wrwCvIK+AsICw8LJAslCxgLGQsaCxsLHAsdCx4LHwsmCygLLQsuCywLQAs0CzULNws7Cz0LPwtCAAIj4gAECJwIhQiQCJsAAAEBAAIj3AAEAUoBSwRdBF4AAAECAAEj1gAaAAABAwACI9IAAweyB7MHtAABI9AAAgAKAEoABwAQABgAIAAoAC4ANAA6AvoAAwHLAe4C+wADAcsCAwL8AAMBywIRAvkAAgHLAwMAAgHuAwAAAgIDAwQAAgIRAAcAEAAYACAAKAAuADQAOgMHAAMC7AHuAwgAAwLsAgMDCQADAuwCEQMKAAIB7gMLAAICAwMMAAICEQMGAAIC7AABI0YAAgAKAEAABgAOABYAHgAkACoAMAL7AAMBywIDAv4AAwHLAosDDQACAe4DAAACAgMDDgACAhEDAgACAosAAQAEAwYAAgLsAAMAAAABIwQAASMSAAEAAAAzAAEjcAAMAB4AKAAyADwARgBQAFoAZABuAHgAggCMAAEABAK4AAIKdAABAAQCuQACCnQAAQAEAroAAgp0AAEABAK7AAIKdAABAAQCvAACCnQAAQAEAr0AAgp0AAEABAK+AAIKdAABAAQCvwACCnQAAQAEAsAAAgp0AAEABALBAAIKdAABAAQCwgACCnQAAQAEChoAAgoAAAMAASL2AAEjZgAAAAEAAAAzAAMAASNaAAEjoAAAAAEAAAAzAAMAASLSAAEjlAAAAAEAAAAzAAMAASM2AAEjiAAAAAEAAAAzAAMAAAABI3wAASOMAAEAAAAzAAMAAAABJA4AASN6AAEAAAAzAAMAAAABJAwAASNoAAEAAAAzAAMAAAABJAoAASNWAAEAAAAzAAMAAAABJAgAASNEAAEAAAAzAAMAAAABJAYAASMyAAEAAAAzAAMAAAABI/oAASMgAAEAAAAzAAMAASMOAAEi/gAAAAEAAAAzAAMAASL8AAEjkAAAAAEAAAAzAAMAASLqAAEjjgAAAAEAAAAzAAMAASLYAAEjjAAAAAEAAAAzAAMAASLGAAEjigAAAAEAAAAzAAMAASK0AAEjiAAAAAEAAAAzAAMAASKiAAEjfAAAAAEAAAAzAAMAARoaAAEjegAAAAEAAAAzAAMAASO6AAEjaAAAAAEAAAAzAAIj+gSlAyIDIwMkAyUDJgMnAygDKQMqAysDLAMtAy4DLwMwAzEDMgMzAzQDNQM2AzcDDwM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRAMQA0YDRwNIA0oDSwNMA00DEQNOA08DUANaA1sDEgNRA1IDUwNUA1UDVgNXA1kDWgNbA1wDXgNfA2ADYQNiA2MDZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3cDeAN5A3oDfQMTA4ADgQOCA4MDhAOFA4YDhwOIA4kDigOLA4wDjQOOA48DFAMWA5ADngOTA5QDlQOWA5cDmAOZA5oDmwOcA50DnwOgAxcDoQOiA6MDpAMYA6UDpgOnA6gDqgOrA7MDrAOtAxkDrgOvA7ADsQOyA7MDvgO/A8ADwQPCA8MDzgPGA8cDyAPJA8oDywPOAxoDzwP3A9MD1APSA9UD1gPXA9gD2QPaA9sD3APdA94D3wPgA+ED4gPjA+QD5QPmA+cD6APpA+oD6wPsA+0D7gMbA+8D8APxA/ID8wP0A/UD9gP4A/kD+gP7A/wD/QP+A/8EAAQBBAIEAwQEBAUEBwQIBAkECwQNBA4EDwQQBBEDdgQSBBMEFAQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQjBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkDHgQ6BDsEPAQ9Ax8EPgQ/BEAEQQRCBEMERARFBEYERwRIBEkESgRLBEwETQROBE8EUAMcBFEEUgRTBFUEVgRXBFgEWQO0A7UDtgO3A7gDuQO6A7sDvAO9AxwDIgMjAyQDJQMmAycDKAMpAyoDKwMsAy0DLgMvAzADMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANeA18DYANhA2IDYwNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQN2A3cDeAN5A4ADgQOCA4MDhAOFA4YDhwOICjUDiQOKA4sDjAONA44DjwORA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOeA58DoAOhA6IDpAOlA6YDpwOoA6kDqgOrA6wDrQOuA68DsAOxA7IDswO+A78DwAPBA8IDwwPFA8YDxwPIA8kDygPLA8wDzQPOA88D0gPTA9QD1QPWA9cD2APZA9oD2wPcA90D3gPfA+AD4QPiA+MD5APlA+YD5wPoA+kD6gPrA+wD7QPuA+8D8APxA/ID8wP0A/UD9gP3A/gD+QP6A/sD/QP+A/8EAAQBBAIEAwQEBAUEBgQHBAgECQQLBA0EDgQPBBAEEQQSBBMEFAQWBBcEGAQZBBoEGwQcBB0EHgQfBCAEIQQjBCQEJQQmBCcEKAQpBCoEKwQsBC0ELgQvBDAEMQQyBDMENAQ1BDYENwQ4BDkEOgQ7BDwEPQQ+BD8EQARBBEIEQwREBEUERgRHBEgESQRKBEsETARNBE4ETwRQBFEEUgRTBFUEVgRXBFgEWQN6A7QDtQO2A7cDuAO5A7oDuwO8A70DBwMIAwkDCwMFBF0EWgReBFsEXAZlBcwFzQXOBc8F0AXRBdMF1AXVBdYF1wXYBdkF2gXbBdwF3QXfBeAF4QXiBeMF5AXlBeYF5wXpBeoF6wXsBe0F7gXvBfAF8QXzBfQF9QX2BfcF+AX5BfoF+wX8Bf0F/gX/BgAGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBg0GDgYPBhAGEQYSBhMGFAYVBhcGGAYZBhoGGwYcBh0GHgYjBiQGJQYmBicGKgYrBiwGLQYuBi8GMAYxBjIGMwY0BjUGNgY3BjgGOQY6BjsGPAY9Bj4GPwZABkEGRAZFBkYGRwZIBkoGSwZMBk0GUAZRBlIGUwZUBlcGWAYfBlkGWgZbBlwGXQZeBl8GYAZhBmIGYwZkBcwF0AXTBdQF1QXXBdgF2QXaBdsF3wXgBeEF4wXkBeYF5wXoBekF6gXrBewF7QXuBe8F8AXxBfMF9AX1BfYF9wX4BfkF+gX8Bf0F/gX/BgAGAQYCBgMGBAYFBgYGBwYIBgkGCgYLBg4GEQYSBhMGFQYXBhgGGQYaBbAGGwYcBh0GHgYjBiQGJQYqBisGLAYtBi4GLwYwBjEGMgYzBjQGNQY2BjcGOAY5BjoGOwY8Bj0GPgY/BkAGQQZEBkUGRgZHBkgGSgZLBk0GUAZRBlIGUwZUBlcGWAYfBc4F0QZZBdYF3AXdBloGXAX7BgwGDQYPBhAGFAYWBl0GXgZfBiYGJwZgBikGQgZDBmEGTAZiBmMGZAZWBc0FzwXSBeIF5QZlB+8HtQe2B7cHuQe6B7sHvAe+B78HwAfBB8IHwwfFB8gHygfLB8wH0QfPB9IH2QfaB9sH3wfgB+EH4gfjB+QH5wfoB+kHvAfxB+4H8gfcB90H3ghHCEkISwhNCE4ITwhRCFIHtQe3B7gHuQe7B7wHvQe+B78HwQfCB8MHxAfFB8YHyAfJB8sHzAfNB84HzwfQB9EH0gfTB9QH1QfWB9cH2AfZB9oH2wfcB90H3gffB+AH4QfiB+MH5AflB+YH6gfrB+wH7QfuB+8H8AfxB/IH8wf0B/UH9gf3B/gH+Qf6B/sH/Af9B/4H/wgACAEIAggDCAQIBQgGCAcICAgJCAoICwgMCA0IDggPCBAIEQgSCBMIFAgVCBYIFwgYCBkIGggbCBwIHQgeCB8IIAghCCIIIwgkCCUIJggnCCgIKQgqCCsILAgtCC4ILwgwCDEIMggzCDQINQg2CDcIOAg5CDoIOwg8CD0IPgg/CEAIQQhCCEMIRAhFCEYIRwhICEkISghLCEwITQhOCE8IUAhRCFIIUwhUCFUIVghXCFgIWQhaCFsIXAhdCF4IXwhgCGEIYghjCGQIZQhmCGcIaAhpCGoIawhsB88H0ginCKgIqQiqCKsIrAitCK4IrwiwCOgI6QjFCPkI+gj7CPwJBgkHCQgJCQkZCRoJGwkcChoKnwqgCqEKxQrSCs8K1AraCt0K4Ar0CuMK5QrnCukK6wrwCvIK+Ar/CwQLBQsPCyQLJQsYCxkLGgsbCxwLHQseCx8LJgsoCy0LLgssC0ALNAs3CzsLPQs/C0IAAR8WAcUDkAOWA5wDogOoA64DtAO6A8ADxgPMA9ID2gPgA+YD7APyA/gD/gQEBAoEEAQWBB4EJAQsBDIEOAQ+BEQETARSBFgEXgRkBGoEcAR2BHwEggSIBI4ElASaBKAEpgSsBLIEuAS+BMQEygTQBNYE3ATiBOgE7gT0BPoFAAUGBQwFEgUYBSAFJgUsBTIFOAU+BUQFSgVQBVYFXAViBWgFbgV0BXoFgAWGBYwFkgWYBZ4FpAWqBbAFtgW8BcIFyAXOBdQF2gXgBeYF7AXyBfgF/gYEBgoGEAYWBhwGIgYoBi4GNAY6BkAGRgZMBlIGWAZeBmQGagZwBnYGfAaCBogGjgaUBpoGoAamBqwGsga4Br4GxAbKBtAG1gbcBuIG6AbuBvQG+gcABwYHDAcSBxgHHgckByoHMAc2BzwHQgdIB04HVAdaB2AHZgdsB3IHeAd+B4QHigeQB5YHnAeiB6gHrge0B7oHwAfGB8wH0gfYB94H5AfqB/AH9gf8CAIICAgOCBQIGgggCCYILAgyCDgIPghECFQIYghwCH4IjAiaCKgItgjECNII2gjgCOYI7AjyCPgI/gkECQoJEAkYCR4JJAkqCTAJNgk8CUIJSAlOCVQJWAlcCWAJZAloCWwJcAl0CXgJfgmECYoJjgmaCaYJrAmyCbgJvAnCCcgJzgnUCdoJ4AnmCewJ8gn4Cf4KBAoKChAKFgocCiIKKAouCjQKOgpACkYKTApSClgKXgpkCmoKcAp2CnwKggqICo4KlAqaCqAKpgqsCrIKuAq+CsQKygrQCtYK3AriCugK7gryCvYK+gr+CwILBgsKCw4LEgsWCxoLHgsiCyYLKgsuCzILQAtOC1QLWgtoC24LdAt6C4ALhguMC5ILmAueC6YLrAuyC7gLvgvEC8oL0AvWC9wL4gvoC+4L9Av6DAAMBgwMDBIMGAweDCQMKgwwDDYMPAxCDEgMTgxUDFoMYAxmDGwMcgx4DH4MhAyKDJAMlgycDKIMqAyuDLQMugzADMYMzAzSDNgM3AzgDOQM6AzsDPAM9Az4DPwNAA0EDQgNDA0QDRQNGA0cDSANJA0oDSwNMA02DTwNQg1GDUwNUg1YDV4NZA1qDXANdg18DYINiA2ODZINlg2aDZ4NpA2qDbANug3ADcYNzA3SDdgN3g3kDeoN8A36DgAOBg4MDhIOGA4eDiQOKg4wDjYOPA5CDkgAAgRfAyAAAgE9AyEAAgNFAUoAAgFCA0kAAgE+A10AAgMVAUsAAgE/A5IAAgFDA8QAAgFHA8wAAgFIA80AAgRgA9AAAwFAAUQD0QACAUkDHQACAUUECgACAO0EDAACAPcEFQACAUEEIgACAUYEVAACBF8DIAACAu4DIQACAvMDSQACAu8DXQADAuwDegHMAAIDfQHOAAMB7wH3A5AAAgLwA5IAAgIEA6MAAgL0A8QAAgRgA9AAAwLxAvUD0QACAvgD/AACAvYECgACAoQEDAACApEEFQACAvIEIgACAvcEVAACA3oC7QACAwYC/QACAwoDewACAwwDfAACAw0DfgACAw4DfwACBQEF0gACBQIF3gACBQMF6AACBQQF8gACBQUGDAACBQYGFgACBQoGKAACBQsGKQACBQwGQgACBQ0GQwACBQ4GSQACBQ8GTgACBRAGTwACBREGVQACBRIGVgACBQcGIAACBQgGIQACBQkGIgACBcAFzQACBaEFzgACBcEFzwACBaIF0QADBaMFwgXSAAIFpAXWAAIFpQXcAAIFpgXdAAIFpwXeAAIFwwXiAAIFxAXlAAIFqAXyAAIFqQX7AAIFqgYMAAIFqwYNAAIFrAYPAAIFrQYQAAIFrgYUAAIFrwYWAAIFtAYmAAIFtQYnAAIFtgYoAAIFtwYpAAIFuAZCAAIFuQZDAAIFugZJAAIFuwZMAAIFvAZOAAIFvQZPAAIFvgZVAAIFvwZWAAIFsQYgAAIFsgYhAAIFswYiAAIJjge4AAIHvQaHAAIJjwfEAAIJkAfHAAIHyQaIAAIJjQfNAAIH1gZoAAIH1wZsAAIH2AZuAAIHzgZwAAIH1AZ2AAIH1QZ/AAIH9AZoAAIH9QZoAAIH9gZoAAIH9wZoAAIH+AZoAAIH+QZoAAIH+gZoAAIH+wZoAAIH/AZoAAIH/QZoAAIH/wZoAAIIAAZoAAIIAQZoAAIIBAZoAAIIBQZoAAIIBgZoAAIIBwZoAAIICAZoAAIICQZoAAIICgZoAAIICwZoAAIIDQZsAAIIDgZsAAIIDwZsAAIIEAZsAAIIEQZsAAIIEgZsAAIIEwZsAAIIFAZsAAIIFQZuAAIIFgZuAAIIFwZuAAIIGAZuAAIIGQZuAAIIGgZuAAIIGwZuAAIIHAZuAAIIHQZuAAIIHgZuAAIIIAZuAAIIIwZuAAIIJAZuAAIIJQZuAAIIJgZuAAIIJwZuAAIIKAZuAAIIKQZuAAIIKgZuAAIILAZwAAIILQZwAAIILgZwAAIILwZwAAIIMAZwAAIIMQZwAAIIMgZwAAIIMwZwAAIINAZwAAIINQZwAAIINwZwAAIIOAZwAAIIPAZ2AAIIPQZ2AAIIPgZ2AAIIPwZ2AAIIQAZ2AAIIQQZ2AAIIQgZ2AAIIQwZ2AAIIRQZ4AAIIVgZ/AAIIVwZ/AAIIWAZ/AAIIWQZ/AAIIWgZ/AAIIWwZ/AAIIXAZ/AAIIXQZ/AAIIXgZ/AAIIXwZ/AAIIYQZ/AAIIZAZ/AAIIZQZ/AAIIZgZ/AAIIZwZ/AAIIaAZ/AAIIaQZ/AAIIagZ/AAIIawZ/AAIHtgeyAAIHugezAAIJkgfAAAIHxwe0AAIHLgfKAAcInQi7CLEIpwiGCHsInAAGCJ4IvAiyCKgIhwh8AAYInwi9CLMIqQiICH0ABgigCL4ItAiqCIkIfgAGCKEIvwi1CKsIigh/AAYIogjACLYIrAiLCIAABgijCMEItwitCIwIgQAGCKQIwgi4CK4IjQiCAAYIpQjDCLkIrwiOCIMABgimCMQIugiwCI8IhAADCHEIkQiFAAIIcgiSAAIIcwiTAAIIdAiUAAIIdQiVAAIIdgiWAAIIdwiXAAIIeAiYAAIIeQiZAAIIegiaAAMIcQiRCJAAAghyCJIAAghzCJMAAgh0CJQAAgh1CJUAAgh2CJYAAgh3CJcAAgh4CJgAAgh5CJkAAgh6CJoAAgh7CJsAAQh8AAEIfQABCH4AAQh/AAEIgAABCIEAAQiCAAEIgwABCIQAAgjrCOoAAgjjCOwAAgjjCOwAAQjqAAUI7Qj1CR8JHQj3AAUI7gj2CSAJHgj4AAIJCwkKAAIJAQkMAAIJAQkMAAEJCgACCVIJQQACCVMJQgACCVQJQwACCVUJRAACCVYJRQACCVcJRgACCVgJRwACCVkJSAACCVoJSQACCVsJSgACCVwJSwACCV0JTAACCV4JTQACCV8JTgACCWAJTwACCWEJUAACCWIJUQACCS8JYwACCTAJZAACCTEJZQACCTIJZgACCTMJZwACCTQJaAACCTUJaQACCTYJagACCTgJawACCTkJbAACCToJbQACCTsJbgACCTwJbwACCT0JcAACCT4JcQACCT8JcgACCUAJcwACCS8JYwACCTAJZAACCTEJZQACCTIJZgACCTMJZwACCTQJaAACCTUJaQACCTYJagACCTgJawACCTkJbAACCToJbQACCTsJbgACCTwJbwACCT0JcAACCT4JcQACCT8JcgACCUAJcwABCUEAAQlCAAEJQwABCUQAAQlFAAEJRgABCUcAAQlIAAEJSQABCUoAAQlLAAEJTAABCU0AAQlOAAEJTwABCVAAAQlRAAYJlgmXCjIKLwmwCZoABgl5CXoKMwowCbEJmwACCbIJnAACCbMJnQAGCXcJeAo0CjEJtAmeAAIJtQmfAAIJtgmgAAIJtwmhAAIJuAmiAAIJuQmjAAIJugmkAAIJuwmlAAIJvAmmAAIJvQmnAAMJvgmoCZkAAgm/CakAAgnACaoAAgnBCasAAgnCCawAAgnDCa0AAgnECa4AAgnFCa8AAgl7CcYAAgl8CccAAgl9CcgAAgl+CckAAgl/CcoAAgmACcsAAgmBCcwAAgmCCc0AAgmDCc4AAgmECc8AAgmFCdAAAgmGCdEAAgmHCdIAAgmICdMAAgmLCdQAAgmMCdUAAgmPCdYAAgmQCdcAAgmRCdgAAgmTCdkAAgmUCdoAAgmVCdsAAgl7CcYAAgl8CccAAgl9CcgAAgl+CckAAgl/CcoAAgmACcsAAgmBCcwAAgmCCc0AAgmDCc4AAgmECc8AAgmFCdAAAgmGCdEAAgmHCdIAAgmICdMAAgmLCdQAAgmMCdUAAgmPCdYAAgmQCdcAAgmRCdgAAgmTCdkAAgmUCdoAAgmVCdsAAQmaAAEJmwABCZwAAQmd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BLwEzATNBOYE5wTtBPIE8wT5BPoE/gT/BQAFFQUYBRkFHQUjBSQFJQU5BUIFUwVUBVYFVwVbBV0FYgVqBWsFbAVtBYYFhwWNBZAFkgWTBZkFmgWeBZ8FoAACABUAAQA6AAAAPADoADoA6gFGAOcEcgTBAUQEwwUEAZQFBwUKAdYFDgURAdoGZwb7Ad4KRwpRAnMKaApqAn4Kfgp+AoEKgQqHAoIKigqLAokKjgqQAosKsQqxAo4KtQq1Ao8K1grWApAK/gr+ApELAgsDApILBwsHApQLMwszApUAAgBVAVQBVAAAAVcBbwABAXEBdgAaAXgBfQAgAX8BfwAmAYMBiQAnAYsBiwAuAY0BjQAvAY8BkQAwAZMBlQAzAZgBmAA2AZsBnwA3AaEBoQA8AaMBtwA9AbwBvQBSAcEBxABUAcYBxwBYAckByQBaAcsBywBbAc0BzQBcAdAB0QBdAdMB2ABfAdoB2gBlAeEB5wBmAe4B+ABtAfoB/wB4AgECAwB+AgYCBgCBAgoCDwCCAhECEgCIAhQCFACKAhYCGACLAhoCGwCOAh4CHgCQAiECIQCRAiMCJQCSAigCLgCVAjACNACcAjYCNgChAjgCVwCiAloCZgDCAmgCagDPAmwCbADSAm4CbwDTAnECdADVAncCdwDZAnkCeQDaAnwCfADbAn4CfwDcAoEChwDeAosCjQDlAo8CkQDoApMClQDrApcCmwDuAp0CnQDzAqACtwD0AsQCxAEMAsYCygENAswC0gESAtQC4AEZAuIC5AEmAuYC6AEpAuoC6gEsAuwC9wEtAv8C/wE5AwEDAQE6AwMDBAE7BRMFYQE9BWMFrwGMBbEFxAHZBmYGZgHtBvwHsAHuCkcKUQKjCmgKagKuCn4KfgKxCoEKhwKyCooKiwK5Co4KkAK7CrEKsQK+CrUKtQK/CtYK1gLACv4K/gLBCwILAwLCCwcLBwLECzMLMwLFAAEAUgjcCN4I7wjwCPEI8gjzCPQI/Qj+CP8JAAkTCRQJFQkWCYsKRwpICkkKSgpLCkwKTQpOCk8KUApRClMKVQpeCmgKaQp+CoEKggqDCoQKhQqGCocKigqLCo8KkArZCtwK3wrhCuIK5ArmCugK6grvCvEK9gsHCwwLDQsOCxALEQsSCxMLFAsVCxYLFwsjCycLKQsqCysLMAsxCzMLNgs6CzwLPgtBAAEABAhxCHsIhgiRAAEABAAnAHIDFQNFAAEAAQoAAAEAAwb9BwEHDgABAAIBywLsAAEABQHLAc0C7AL5AwYAAgASAXsBfwAAAYMBhAAFAb0BvwAHAdoB2gAKAdwB3AALAd4B3wAMAeMB6QAOAe0B7QAVAgsCDQAWAg8CDwAZAhECHgAaAiACIAAoAiICIgApAmICYgAqAmgCaQArAocChwAtAooCmAAuApwCngA9AAEADAF7AZABywIjAikCZAJuAnUCfgKLAuII4wACABIGgAaBAAAGhAaFAAIGnAa4AAQG2AbfACEG4QboACkH0QfRADEH1AfUADIH1gfXADMH9Af9ADUH/wgBAD8IBAgLAEIIDQgUAEoIPAhDAFIIRwhHAFoISQhJAFsISwhLAFwITQhPAF0IUQhSAGAAAQABBnAAAgALBoAGgQAABoQGhAACBpwGuAADBtgG3wAgB9QH1AAoB9YH1wApB/QH/QArB/8IAQA1CAQICwA4CA0IFABACDwIQwBIAAEAAQZ7AAEAAQe9AAEAAQfJAAIAAgaABoAAAAacBrAAAQACABgGaAaIAAAGnAb7ACEHtQfFAIEHxwfPAJIH0QfSAJsH1AfYAJ0H9Af9AKIH/wgBAKwIBAgLAK8IDQgeALcIIAggAMkIIwgqAMoILAg1ANIINwg4ANwIPAhDAN4IRQhFAOYIRwhHAOcISQhJAOgISwhLAOkITQhPAOoIUQhSAO0IVghfAO8IYQhhAPkIZAhrAPoAAgACBoEGgQAABrEGuAABAAIAAgaCBoIAAAa5BssAAQACAAIGgwaDAAAGzAbXAAEAAgACBoQGhAAABtgG3wABAAEAAQbgAAIAAgaGBoYAAAbpBvsAAQABACcKRwpICkkKSgpLCkwKTQpOCk8KUApRClMKXgpoCmkKfgqBCoIKgwqECoUKhgqHCooKiwqPCpAKtQrZCtwK3wrhCuIK5ArmCugK6grvCvEAAQAnCpQKlQqWCpcKmAqZCpoKmwqcCp0KngqfCqEKogqjCqQKpQqmCqcKqAqpCqoKqwqsCq0KrgqvCrcK2grdCuAK4wrlCucK6QrrCvAK8gr0AAIAvAADACYAAAAoACoAJAAsADoAJwA8AEIANgBEAHEAPQBzAHUAawB3AKAAbgCiAKcAmACqAKwAngCuAK4AoQCwAOUAogDnAOcA2ADqAOoA2QDsAPQA2gD2AQEA4wEDATYA7wE4AUYBIwFUAVQBMgFZAW8BMwFxAXYBSgF4AX0BUAF/AX8BVgGDAYUBVwGHAYkBWgGLAYsBXQGNAY0BXgGPAZEBXwGTAZUBYgGYAZgBZQGbAZ8BZgGhAaEBawGjAaMBbAGlAbcBbQG8Ab0BgAHBAcQBggHGAccBhgHJAckBiAHQAdEBiQHTAdgBiwHaAdoBkQHcAdwBkgHhAecBkwHvAe8BmgHxAfgBmwH6Af8BowIBAgIBqQIGAgYBqwIKAg8BrAIRAhIBsgIUAhQBtAIWAhgBtQIaAhsBuAIeAh4BugIhAiEBuwIjAiUBvAIoAikBvwIrAi4BwQIwAjQBxQI2AjYBygI4AjgBywI7AlcBzAJaAmYB6QJpAmoB9gJsAmwB+AJuAm8B+QJxAnQB+wJ3AncB/wJ5AnkCAAJ8AnwCAQJ+An4CAgKBAoECAwKDAocCBAKLAo0CCQKQApECDAKTApUCDgKXApsCEQKdAp0CFgKgAqACFwKiArcCGALEAsQCLgLGAsoCLwLMAtICNALUAuACOwLiAuICSALkAuQCSQLmAugCSgLqAuoCTQLtAvcCTgL6AvwCWQMAAwACXAMGAwYCXQMVAxUCXgMdAx0CXwNFA0UCYAPMA80CYQRyBHgCYwR6BIQCagSGBI4CdQSQBJgCfgSaBLIChwS0BLsCoAS9BMECqATDBMsCrQTOBOUCtgToBOwCzgTuBPEC0wT0BPgC1wT7BP0C3AUBBQQC3wUHBQoC4wUOBREC5wUTBRMC6wUXBRcC7AUaBRwC7QUeBSIC8AUmBSgC9QUqBSsC+AUtBTgC+gU6BUEDBgVDBVIDDgVVBVUDHgVYBVoDHwVcBVwDIgVeBWkDIwVuBYUDLwWIBYwDRwWOBY8DTAWRBZEDTgWUBZgDTwWbBZ0DVAWhBa8DVwWxBcQDZgZmBmoDegZsBm8DfwZxBnYDgwZ4BngDiQZ6BnoDigZ8Bn4DiwaFBoUDjgaHBpsDjwbhBugDpAb8BvwDrAb+BwADrQcCBwYDsAcIBw0DtQcPBxADuwcSB7ADvQe9B70EXAfJB8kEXQixCLoEXgjcCNwEaAjeCN4EaQjkCOQEagjxCPQEawj9CQAEbwkTCRYEcwoACgAEdwpTClMEeApVClUEeQpeCl4EegpqCmoEewqOCo4EfAqxCrEEfQrWCtYEfgrZCtkEfwrcCtwEgArfCt8EgQrhCuIEggrkCuQEhArmCuYEhQroCugEhgrqCuoEhwrvCu8EiArxCvEEiQr2CvYEigr+Cv4EiwsCCwMEjAsMCw4EjgsQCxcEkQsjCyMEmQsnCycEmgspCysEmwswCzEEngs2CzYEoAs6CzoEoQs8CzwEogs+Cz4EowtBC0EEpAACAHEAAQACAAAAJwAnAAIAKwArAAMAQwBDAAQAcgByAAUAdgB2AAYAoQChAAcAqACpAAgArQCtAAoArwCvAAsA5gDmAAwA6ADoAA0A6wDrAA4A9QD1AA8BAgECABABNwE3ABEBVwFYABIBhgGGABQBpAGkABUBywHLABYBzQHNABcB7gHuABgB8AHwABkCAwIDABoCKgIqABsCOQI6ABwCaAJoAB4CfwJ/AB8CggKCACACjwKPACECoQKhACIC4wLjACMC7ALsACQC+QL5ACUC/wL/ACYDAQMBACcDAwMEACgEeQR5ACoEhQSFACsEjwSPACwEmQSZAC0EswSzAC4EvAS8AC8EzATNADAE5gTnADIE7QTtADQE8gTzADUE+QT6ADcE/gUAADkFFAUWADwFGAUZAD8FHQUdAEEFIwUlAEIFKQUpAEUFLAUsAEYFOQU5AEcFQgVCAEgFUwVUAEkFVgVXAEsFWwVbAE0FXQVdAE4FagVtAE8FhgWHAFMFjQWNAFUFkAWQAFYFkgWTAFcFmQWaAFkFngWgAFsGawZrAF4GcAZwAF8GdwZ3AGAGeQZ5AGEGewZ7AGIGfwaEAGMGhgaGAGkGnAbgAGoG6Qb7AK8G/Qb9AMIHAQcBAMMHBwcHAMQHDgcOAMUHEQcRAMYIcQiEAMcIhgiPANsIkQiaAOUI4wjjAO8I6gjsAPAI7wjwAPMJAQkBAPUJCgkMAPYJLwk2APkJOAlzAQEJewmIAT0JiwmMAUsJjwmRAU0JkwmVAVAJmgnbAVMJ7wnvAZUJ+wn9AZYKAgoCAZkKBgoGAZoKCgoLAZsKFgoZAZ0KGwoiAaEKRwpRAakKaAppAbQKfgp+AbYKgQqHAbcKigqLAb4KjwqQAcAKtQq1AcILBwsHAcMLMwszAcQAAQApAe4CAwpHCkgKSQpKCksKTApNCk4KTwpQClEKUwpVCl4KaAppCn4KgQqCCoMKhAqFCoYKhwqKCosKjwqQCtkK3ArfCuEK4grkCuYK6ArqCu8K8QABAAIAjwIRAAIAJQABAAEAAACtAK0AAQFXAVcAAgHLAcsAAwHNAc0ABAI5AjkABQLsAuwABgL5AvkABwMGAwYACAZwBnAACQZ7BnsACgaABoQACwaGBoYAEAacBuAAEQbpBvsAVge9B70AaQfJB8kAagixCLoAawpHClEAdQpTClMAgApeCl4AgQpoCmkAggp+Cn4AhAqBCocAhQqKCosAjAqPCpAAjgq1CrUAkArZCtkAkQrcCtwAkgrfCt8AkwrhCuIAlArkCuQAlgrmCuYAlwroCugAmArqCuoAmQrvCu8AmgrxCvEAmw==)}@font-face{font-family:Pixochrome-Regular;font-weight:400;font-style:normal;src:url(data:application/font-woff2;charset=utf-8;base64,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) format("woff2"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}@font-face{font-family:Probert-Regular;font-weight:400;font-style:normal;src:url(data:application/font-woff2;charset=utf-8;base64,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) format("woff2"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}@font-face{font-family:Roadgeek-2005-Engschrift-Rg;font-weight:400;font-style:normal;src:url(data:application/font-woff2;charset=utf-8;base64,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) format("woff2"),url(data:application/font-woff;charset=utf-8;base64,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) format("woff")}@font-face{font-family:Willow Body;font-weight:400;font-style:normal;src:url(data:@file/x-font-ttf;base64,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ERKxAAE5OTAxExEBIREhBxEXIREhUgElA1r9N5ePAtH8oAEhBEwBIv7ilPzRj/7hAAIAUgAABQgGkQAFAAsASgCyAAAAK7EGCumyAQIAK7ELCOkBsAwvsADWsQYM6bAGELEIASuxBAzpsQ0BK7EIBhESsQUCOTkAsQYAERKwBDmxAQsRErADOTAxMxEhAREJASE3ESchUgONASn+2/2OAfWDhf4NBpH+2fu9/tkBOYMDJ4MAAAEAUgAABI0GjwALAEcAsgAAACuxCQPpsgECACuxBAPptAgFAAENK7EIA+kBsAwvsADWsQkM6bAEMrIJAAors0AJCwkrsAIys0AJBwkrsQ0BKwAwMTMRIREhESERIREhEVIEO/zkAsD9QAMcBo/+4v5m/t/+af7hAAEAUgAABI0GjwAJAEAAsgAAACuyAQIAK7EEA+m0CAUAAQ0rsQgD6QGwCi+wANaxCQzpsAQysgkACiuzQAkDCSuzQAkHCSuxCwErADAxMxEhESERIREhEVIEO/zkAsD9QAaP/uL+Zv7f/UoAAAEAUgAABSUGjwARAIEAshEAACuxCAPpsgICACuxBQPptAwNEQINK7EMA+kBsBIvsADWsQcM6bIHAAors0AHBAkrsAcQsQoBK7EPEOmyCg8KK7NACgwJK7ETASuxBwARErARObAKEbICBRA5OTkAsQgRERKwADmwDBGxBw85ObEFDRESsAY5sAIRsAE5MDETEQEhESEHERchNxEhESERASFSASUDH/1wlZ8BeY7+1wI3/tn9cwEfBFIBHv7glPzjnZEBBAEd/VD+3QAAAAEAUgAABOEGjwALAD8AsgAAACuwBzOyAQIAK7AFM7QKAwABDSuxCgPpAbAML7AA1rELDOmwAjKwCxCxCAErsAQysQcM6bENASsAMDEzESERIREhESERIRFSAR8CUgEe/uL9rgaP/UgCuPlxArj9SAABAGYAAALZBo8ACwA/ALIAAAArsQED6bAJMrIFAgArsQQD6bAHMgGwDC+wANawBDKxCw3psAYysQsN6bENASuxCwARErECCDk5ADAxMxEzESMRIREjETMRZqqqAnOqqgEfBFIBHv7i+67+4QABAFIAAAOFBo8ABwAxALIAAAArsQED6bIEAgArAbAIL7AD1rEGDOmxCQErsQYDERKwBzkAsQEAERKwBjkwMTMRITcR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ABIEK7IUDAors0AUGAkrsBAysBQQsQgBK7EEEOmxHAErsQYAERKwBTmwDBGyAgcKOTk5ALESFhESsQwUOTmxCgcRErEAATk5MDETEQEhESETFyERIQcTNDY7ARUjIhUUNzMVIyJ7ARgDJfzVBJoBe/6DmNdYXaGLJyeLi8sBEAJ7ARn7XAGimAKQmPwSVm2kHx8BpAACAI8AAAUOCJoACwAPADcAsgsAACuxCAPpsgICACuxBQPpAbAQL7AA1rEHDOmxEQErsQcAERKwCzkAsQUIERKxAAE5OTAxExEBIREhBxEXIREhEzUlFY8BJQNa/TeXjwLR/KAtAesBIQRMASL+4pT80Y/+4QcAz8vNAAAAAgCPAAAECgaeAAsADwBTALILAAArsQgD6bICAQArsQUD6QGwEC+wANaxBwzpsgcACiuzQAcJCSuzQAcECSuxEQErsQcAERKzAgsMDSQXOQCxCAsRErAAObECBRESsAE5MDE3ETchESEHERchESEDNSUVj+MCb/4rXl4B/v1qAwHr5QLZ5P7hWv5UXv7hBQTPy80AAAIAjwAABQ4IngALABIANwCyCwAAK7EIA+myAgIAK7EFA+kBsBMvsADWsQcM6bEUASuxBwARErALOQCxBQgRErEAATk5MDETEQEhESEHERchESETMxc3MwMjjwElA1r9N5ePAtH8oDHNRUjNw6YBIQRMASL+4pT80Y/+4QiekpL+ewAAAAIAjwAABAoGogALABIAUgCyCwAAK7EIA+myAgEAK7EFA+kBsBMvsADWsQcM6bIHAAors0AHCQkrs0AHBAkrsRQBK7EHABESsgILDDk5OQCxCAsRErAAObECBRESsAE5MDE3ETchESEHERchESEDMxc3MwMjj+MCb/4rXl4B/v1qFM1FSM3DpuUC2eT+4Vr+VF7+4QaikpL+ewAAAAMAjwAABUUIngAFAAsAEgBNALIAAAArsQYK6bIBAgArsQsI6QGwEy+wANaxBgzpsAYQsQgBK7EEDOmxFAErsQgGERKzBQIMECQXOQCxBgARErAEObEBCxESsAM5MDEzESEBEQkBITcRJyETMxc3MwMjjwONASn+2/2OAfWDhf4NQM1FSM3DpgaR/tn7vf7ZATmDAyeDAziSkv57AAMAjwAABW4GmAAHAA0AFABuALIHAAArsQkD6bIPAgArsgIB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EgbpsgMCACuxBQPpsgMCACuxFwbptAkGDQMNK7EJA+kBsBkvsADWsREM6bARELEUASuwDTKxCgzpsAUysgoUCiuzQAoICSuxGgErsREAERKxAhA5ObAUEbAPOQCxChIRErAAObAJEbERFDk5sQUGERKyARUYOTk5MDETEQEhESERIREhESERITUHIREXMzcRJyMHUgEfBKH+QAFk/pwBwP0hAv5Aj5yVlZqRAR8EUgEe/uL+Zv7f/mn+4QICAZiOlANYj48AAAAAAwBSAAAGkwSmABEAGQAfAKAAsg4AACuwEDOxCwbpsg4AACuxEwPpsgUBACuwAjOxHgvpsgUBACuxGAPptAkaDgUNK7EJBukBsCAvsADWsRIM6bISAAors0ASDAkrsBIQsRsBK7EHFemxIQErsRIAERKxAhE5ObAbEbcDBQsOEAkVGiQXObAHErAGOQCxCRMRErIKEhU5OTmxGBoRErMWGRwfJBc5sQUOERKxBA85OTAxNxE3IRc3IRcRIRUXIREhJwchExczNxEnIwcFITUnIwdS1QIYa2oBmOf9gUYB0/3namv97EZupHNxpHACowGKc6Zx2wL012tr6P4Hc0j+9mpqAY9wcgGIbnNFcHV1AAADAI8AAAUcCJoADAAQABYAcwCyAAAAK7AHM7IBAgArsRYD6bQLEQABDSuxCwPpAbAXL7AA1rEMDOmwETKwDBCxCAErsBMysQcM6bADMrEYASuxDAARErENDjk5sAgRsgIPEDk5ObAHErAFOQCxCwARErAGObAREbAFObAWErEDBDk5MDEzESEBEQcXESERJyERAzUlFQEhNzUnIY8DbwEel5f+4mn+GS8B6/5EAedpa/4bBo/+4v5ul5T9TAJOav1IBwDPy838CmbHbQACAI8AAANUBp4ABwALAD8AsgAAACuyAgEAK7EFA+kBsAwvsADWsAgysQcM6bIHAAors0AHBAkrsQ0BK7EHABESsAI5ALECBRESsAE5MDEzETchESEHEQE1JRWP2QHs/sxy/uMB6wPN2f7hcPzpBQTPy80AAAMAj/5SBRwGjwAMABIAIACmALITAAArtCALAAsEK7IAAAArsAczsgECACuxEgPpsBkvtBoLAAsEK7QNCyABDSuxDQPpAbAhL7AA1rEMDOmwDTKwDBCxHQErtBYVABIEK7IdFgors0AdGQkr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L7EMDOmzDQYHCCuxEAzpsRIBK7EHCRESsAE5sQ0MERKwAjmxEAYRErADOQCxAAcRErACOTAxEyEJASEBESERAxEhETMRIREpAVwBFwEYAVz+L/65rAEfZgEfBpH96AIY/KT8ywM1A9UBHv7iAR7+4gACAI8AAAU5CJoACQANACwAsgAAACuxBwTpsgQCACuxAwPpAbAOL7EPASsAsQcAERKwATmwAxGwBjkwMTMRASERIREBIREBNSUVjwNI/LgEqvy0A0z9CQHrAUgEKwEe/uL71f64BwDPy80AAAACAI8AAAReBscACQANACwAsgAAACuxBwPpsgQBACuxAwbpAbAOL7EPASsAsQcAERKwATmwAxGwBjkwMTMRASERIREBIREBNSUVjwKH/XkDz/2VAmv9SgHrARICigEK/uH9mP7hBS3Py80AAAACAI8AAAU5CLIACQANADoAsgAAACuxBwTpsgQCACuxAwPpsAovsQsD6QGwDi+wCtaxDQzpsQ8BKwCxBwARErABObADEbAGOTAxMxEBIREhEQEhEQERIRGPA0j8uASq/LQDTP17AR8BSAQrAR7+4vvV/rgHkwEf/uEAAAAAAgCPAAAEXgbPAAkADQBCALIAAAArsQcD6bIEAQArsQMG6bAKL7ELA+kBsA4vsArWsQ0M6bEPASuxDQoRErACOQCxBwARErABObADEbAGOTAxMxEBIREhEQEhEQERIRGPAof9eQPP/ZUCa/2oAR8BEgKKAQr+4f2Y/uEFsAEf/uEAAAAAAgCPAAAFOQiyAAkAEAAsALIAAAArsQcE6bIEAgArsQMD6QGwES+xEgErALEHABESsAE5sAMRsAY5MDEzEQEhESERASERATMXNzMDI48DSPy4BKr8tANM/OrNRUjNw6YBSAQrAR7+4vvV/rgIspKS/nsAAAACAI8AAAReBrcACQAQACwAsgAAACuxBwPpsgQBACuxAwbpAbARL7ESASsAsQcAERKwATmwAxGwBjkwMTMRASERIREBIREBMxc3MwMjjwKH/XkDz/2VAmv9Ms1FSM3DpgESAooBCv7h/Zj+4Qa3kpL+ewAAAAH/cf6kA0IGjwAPAG8AsgYCACu0BwsACwQrsAAvtAELAAsEK7ANL7QKCwALBCsBsBAvsREBK7A2Gro+kvKKABUrCg6wAxCwBMCxDhn5sAnABbMKDgkTK7MNDgkTKwMAswMECQ4uLi4uAbUDBAkKDQ4uLi4uLi6wQBoAMDEDNzI3ARIhByIPATMHIwMCjym2JQEaRgFtKbYmILgpuNFG/qS4rAUzAVS4rJy4/CH+rAAAAQBMBxICdQiYAAYAKwCwAC+wAzO0AQQAEAQrAbAHL7AA1rQDDQAdBCuxCAErALEBABESsAU5MDEbATMTIycHTMKov81IRwcSAYb+epCQAAABAE4HGQJ1CJ4ABgArALAGL7QBBAAQBCuwAzIBsAcvsADWtAQNABoEK7EIASsAsQEGERKwAjkwMRMzFzczAyNOzUVIzcOmCJ6Skv57AAAAAAEAZgcbAx8IoAAKAEYAsAkvtAMLAAsEK7IDCQors0ADAAkrsAYyAbALL7AA1rQBFQASBCuwARCxBQErtAcVABIEK7EMASuxBQERErEDCTk5ADAxEzMUMzInNTMQISBmuaSkAbn+pP6kCKDNoC3+ewABAGYHfwGFCJ4AAwAiALAAL7EBA+mxAQPpAbAEL7AA1rEDDOmxAwzpsQUBKwAwMRMRIRFmAR8HfwEf/uEAAAAAAgBmBwwB7giTAAcADwBKALAGL7QKCwALBCuwDi+0AgsACwQrAbAQL7AA1rQIFQANBCuwCBCxDAErtAQVAA0EK7ERASuxDAgRErAGOQCxDgoRErEEADk5MDETNBcyFRQjIjcUMzI1NCMiZsPFxcOSMTc3MQfRwwHCxcU3MzUAAAABAGb+UgG8/9cADgBEALIDAAArtAYLAAsEK7ANL7QKCwALBCsBsA8vsADWtAgVABIEK7IIAAors0AIDAkrsAQysRABKwCxBgoRErEACDk5MDEXNDY7ARUjIhUUNzMVIyJmWF2hiycni4vL7FZtpB8fAaQAAAEAVgdUA7IIagAdAOgAsBMvsRQdMzO0CwsAEgQrsAoysAsQsAQg1hGxBQ4zM7QaCwASBCuwGTIBsB4vsR8BK7A2GrrwEcIEABUrCrAZLrAKLrAZELEFGPmwChCxFBj5uu8IwkoAFSsLsAUQswYFChMrswgFChMrswkFChMrsBkQsxUZFBMrsxcZFBMrsxgZFBMrsgYFCiCKIIojBg4REjmwCDmwCTmyGBkUERI5sBc5sBU5ALUIFwYJFRguLi4uLi4BQAoIFwUGCQoUFRgZLi4uLi4uLi4uLrBAGgEAsRoTERKwFjmwCxGxAA85ObAEErAHOTAxEzc+ATMyFhcjHgEzMjY3FwcOASMiJiczLgEjIgYHVlYpSiUvbC8CKVYpGTsng1YpSiQxay8CKVgnGTsnB91UHRYYEQoaJC+JVB0WGRAKGyUvAAACAFIHQgMXCJ4AAwAHABkAsAAvsAQzsQEE6bAFMgGwCC+xCQErADAxGwEzAzMTMwNSzdXNTs3VzQdCAVz+pAFc/qQAAAEAUv6kBCEEpgAPAG4Asg0AACuxBAPpsg0ECiuzQA0ACSuzQA0KCSuyAQEAK7AHMwGwEC+wANaxAwzptA8VABIEK7ADELEGASuxCQzpsAkQtAoVABIEK7AKL7ERASuxAw8RErANObEKBhESsAw5ALEEDRESsQsOOTkwMRMRIREXMzcRIREjNQchJxFSAR9wtWwBH7k//iFA/qQGAvzrcm4DGfr0pT8//mUAAAABAFIB1wMKAs0AAwAAEzUhFVICuAHX9vYAAAAAAQBSAdcDCgLNAAMAABM1IRVSArgB1/b2AAAAAAEAUgHXAwoCzQADAAATNSEVUgK4Adf29gAAAAABAGYB1wPfAo8AAwAdALAAL7QBCwALBCu0AQsACwQrAbAEL7EFASsAMDETNSEVZgN5Ade4uAAAAAEAZgI9BrgC9gADAB0AsAAvtAELAAsEK7QBCwALBCsBsAQvsQUBKwAwMRM1IRVmBlICPbm5AAAAAQBCBW0BNwchAAYAQACwAC+0AgQACgQrAbAHL7AA1rEGFemxBhXpswMGAAgrtAIVAA0EK7ACL7QDFQANBCuxCAErsQMCERKwBDkAMDETNTczBzMVQj2NJVAFbdLiu/kAAQA5BNsBLwaPAAYAOACyAQIAK7QFBAAKBCsBsAcvsADWsQMV6bEDFemzBQMACCu0BBUADQQrsQgBK7EEBRESsAY5ADAxEzUzFQcjNzn2PY4lBZb50+G7AAEAj/8dAYUA0QAGADYAsAUvtAEEAAoEKwGwBy+wANaxAxXpsQMV6bMFAwAIK7QEFQANBCuxCAErsQQFERKwBjkAMDEXNTMVByM3j/Y+jSUp+tPhugAAAAACAGsFbQKbByEABgANAIEAsAYvsAczsQQL6bALMrIEBgors0AEAgkrsAkyAbAOL7AA1rEGFemzAwYACCu0AhUADQQrsAIvtAMVAA0EK7AGELEHASuxDRXpswoNBwgrtAkVAA0EK7AJL7QKFQANBCuxDwErsQMCERKwBDmxDQkRErALOQCxBAYRErEBCDk5MDETNTczBzMVMzU3MwczFWs9jSVQRj2NJVAFbdLiu/nS4rv5AAACAGIE2wKRBo8ABgANAG8AsgECACuwCDOxAAvpsAcysgABCiuzQAAECSuwCzIBsA4vsADWsQMV6bMFAwAIK7QEFQANBCuwAxCxBwErsQoV6bMMCgcIK7QLFQANBCuxDwErsQQFERKwBjmxCgwRErANOQCxAQARErEDCjk5MDETNTMVByM3MzUzFQcjN2L2PY4l6fY9jiUFlvnT4bv50+G7AAAAAAIAj/8dAsUA0QAGAA0AbwCyAAAAK7AHM7EBC+mwCDKyAAEKK7NAAAQJK7ALMrIDAAArsgoAACsBsA4vsADWsQMV6bMFAwAIK7QEFQANBCuwAxCxBwErsQoV6bMMCgcIK7QLFQANBCuxDwErsQQFERKwBjmxCgwRErANOQAwMRc1MxUHIzczNTMVByM3j/Y+jSXw9j6NJSn60+G6+tPhugABAEoBvgP0BOkAAgAAEwkBSgHVAdUBvgMr/NUAAwBm/9cFHwD6AAMABwALAEUAsgAAACuxBAgzM7EBA+mxBQkyMrIAAAArsQED6QGwDC+wANaxAxPpsAMQsQQBK7EHE+mwBxCxCAErsQsT6bENASsAMDEXESERMxEhETMRIRFmATOQATOQATMpASP+3QEj/t0BI/7dAAAAAAcAZv/XCVwGjwAHAAsAEwAbACMAKwAzAOEAshoAACuxCCozM7QeCwALBCuwLjKyAgIAK7AJM7QSCwALBCu0IhYaAg0rsCYztCILAAsEK7AyMrQOBhoCDSu0DgsACwQrAbA0L7AA1rQMFQASBCuwDBCxEAErtAQVABIEK7AEELEUASu0HBUAEgQrsBwQsSABK7QYFQASBCuwGBCxJAErtCwVABIEK7AsELEwASu0KBUAEgQrsTUBK7EQDBESswYLAg4kFzmxIBwRErIJGhY5OTmwGBGwCjmxMCwRErEqJjk5ALEiHhESsxgUJCgkFzmxEg4RErEEADk5MDETECEgERAhIBMBMwEDFDMyJzQjIgEQISARECEgExQzMjU0IyIFECEgERAhIBMUMzI1NCMiZgFdAVz+pP6jrgO90/xBxqSkAaOkAnsBXAFc/qT+pLikpKSkAlIBXAFc/qT+pLikpKSkBTMBXP6k/qT8AAa4+UgFXKSgqPtcAVz+pP6kAVykoKikAVz+pP6kAVykoKgAAAABAGYAbwJSA/gABgAjAAGwBy+wANa0BQ0AEAQrsAMysQgBK7EFABESsQIEOTkAMDETNQEVDQEVZgHs/tcBKQHhqAFv6Nvh5QABAGYAbwJSA/gABgAhAAGwBy+wANawAzK0Bg0AEAQrsQgBK7EGABESsAI5ADAxNzUtATUBFWYBJ/7ZAexv59vh5v6NqAAAAAABAFL/1wQ9Bo8AHwCFALIcAAArtBkLAAsEK7IJAgArtAwLAAsEK7QAARwJDSuwEzO0AAsACwQrsBUytAUEHAkNK7ARM7QFCwALBCuwDzIBsCAvsB7WsQIGMjK0FxUAEgQrsQ4SMjKyFx4KK7NAFxUJK7AQMrNAFxoJK7AKMrIeFwors0AeAAkrsAQysSEBKwAwMRM1MzUjNTMRECkBFSEiFxEhFSEVIRUhERQzIRUhIBkBUmZmZgFcAin916QBAZn+ZwGZ/mejAin91/6kAj25e7gBCgFcuKT+9rh7uf72pLgBXAEKAAAAAgBqAwoGrAaPAAcAFACCALIBAgArsQkMMzO0AAsAEgQrsAMysgABCiuzQAAGCSuyCA4RMjIyAbAVL7AG1rQFFQASBCuyBQYKK7NABQMJK7IGBQors0AGAAkrsAUQsQgBK7QUFQASBCuwFBCxDwErtA4VABIEK7EWASuxFAgRErAKObAPEbALObAOErAMOQAwMRM1IRUjESMRAREzGwEzESMRAyMDEWoCpOvHAhmy6ei0x4uVjAXPwMD9OwLF/TsDhf3HAjn8ewFS/q4BUP6wAAEASv/XBNkGjwADABYAsgAAACuyAQIAKwGwBC+xBQErADAxFwEzAUoDvNP8QikGuPlIAAABAAAAAASkBKQAAwAAMREhEQSkBKT7XAABAG//1wL0Bo8AEABRALIAAAArsAwzsgMCACu0BgsACwQrtAoPAAMNK7QKCwALBCsBsBEvsADWtBAVABIEK7AJMrAQELENASu0DBUAEgQrsRIBK7ENEBESsAY5ADAxFxEQJSEVITUGHQEhESMRIxFvAX8BBv76xwGwuPgpBVwBWAS6AgKipPtIBAD8AAAAAAACAGb/1wK4BpEACgAPAFYAsgAAACuwBjOyAwIAK7QNCwALBCu0CwkAAw0rtAsLAAsEKwGwEC+wANa0ChUAEgQrsAsysAoQsQcBK7AMMrQGFQASBCuxEQErsQcKERKxBAM5OQAwMRcRECUVMxEjESMZATMRBhVmAZq4uOHh4SkFXAFcAgL5SAQA/AAEuAFKAqQAAAAAAQAAAAIAAFfejp1fDzz1AB8IAAAAAADMbCXKAAAAAMxsJcr/aP3DCVwIxwAAAAgAAgAAAAAAAAABAAAIx/2bAAAJxv9o/xYJXAABAAAAAAAAAAAAAAAAAAABQwQAAAAAAAAAA+gAAAQAAAABwgBSAsAAUgUKAFIE6wBSBWYASAa+AFIB1ABSAtkAUgLXAFIEHABSBJkAUgGZAFIDXABSAdcAUgQKAFIFHgBSBR4A7AUeAFIFHgBSBR4AUgUeAFIFHgBSBR4AUgUeAFIFHgBSAeEAUgHlAFIDoQBSAvUAUgORAFIEWgAABpEAUgWjAFIFaABSBSIAUgVaAFIE3wBSBMoAUgV2AFIFMwBSAz8AZgPXAFIEOwBSBD8AUgWDAFIFMwBSBawAZgVWAFIGQwBSBTEAUgVRAFIF1wBSBXAAUgVmAFIFiwBSBWIAUgWLAFIFTQBSAz0AUgQKAFIDPQBSBUEAUgRmAFIC4QBSBOEAUgSbAFIEHgBSBFwAUgR+AFID7QA9BHgAUgRcAFIBwgBSApX/1wSNAFIBwgBSBk0AUgSHAFIFCgBSBHAAUgRwAFIDUwBSBI0AUgPEAD0EcgBSBHQAUgZNAFIFYgBSBE8AUgRyAFICKABSAVwAPQIoAFIHpwBSAgAAAAHZAFIEHgBSBCgAUgX9AFIHFgBSAVwAUgP1AFIDRwBSBvUAUgL1AFIEKABSBGoAUgNcAFIE9QBSAvUAUgNcAFIEmQBSAsIAUgLCAFICjwBSBAgAUgOuAVwB+QBSAY8AUgMcAFIEKABSBcQAUgXbAFIGowBSBFoAAAYWAI8GFgCaBhYAlAYWAKQGFgCkBhYApAfEAFIFIgBSBN8AZgTfAFQE3wBUBN8AVgM//7ADP//dAz//2wM//30GUQArBTMAjwWsAFIFrABSBawAUgWsAFIFrABSA/sAJwXrAI8FcABSBXAAZgVwAGYFcABmBoUAPgRPAGYFVgBSBR4AewUeAHsFHgB7BR4AewUeAHsFHgB7BxwAZARRAI8FHgCPBR4AjwUeAI8FHgCkAcL/sAHC/9cBwv+0AcL/eQTIAFIEhwCPBQoAZgUKAGYFCgBmBQoAZgUKAGYDXAA+BQoAUgRyAFIEcgBmBHIAZgRyAGYETwCPBE8AjwRPAI8FowA+BOEAewWjAD4E4QBmBaMAPgThAHsFIgCPBB4AjwUiAI8EHgCPBVoAjwWFAI8GUQArBFwAjwTfAFIEfgDNBN8AjwR+AI8E3wCPBH4AjwTfAI8EfgBmBXYAjwR4AI8FdgCPBHgAjwM//90Bwv/FAcIALQHCADkDPwBaAcIAUgQ7AI8EjQCPBD8AEwHCAAAEPwCFAcIAjwQ/AIUBwgAVBKP/aAGH/2gFMwCPBIcAjwUzAI8EhwCPBTMAjwSHAI8FrACPBQoAjwWsAI8FCgCPBmQAUgblAFIFMQCPA1MAjwUxAI8DUwCPBTEAjwNTAFIFUQCPBI0AewVRAI8EjQB7BVEAjwS4AHsF1wBSA8QAUQXXAGYDxAAtBXAAjwRyAI8FcACPBHIAjwVwAI8EcgCPBXAAjwRyAI8FXgApBU0AjwRyAI8FTQCPBHIAjwVNAI8EcgCPAlr/cQLCAEwCwgBOA4UAZgHrAGYCUwBmAiIAZgQIAFYDaABSBHIAUgRjAAAIxwAABGMAAAjHAAAC7QAAAjEAAAF2AAABdgAAARgAAAHBAAAAfAAAA1wAUgNcAFIDXABSBEUAZgceAGYBdgBCAWIAOQGZAI8C9wBrAv0AYgLvAI8EPQBKBUcAZgHBAAAJxgBmArgAZgK4AGYCMQAABI8AUgcrAGoFIgBKBKMAAANHAG8DHgBmAAAAAAAAAAAAAAAoAFwAzgFYAbwCNgJUApIC0AL+A0IDbgOGA6gD2AQgBFgEqgUEBVIFoAX8BjQGsAcQBzwHaAd+B6oHvggYCPoJRgmmCdwKHgpaCpAK9gsuC2QLkAvWC/wMPAx4DMQNCg1sDcQOJg5YDpQOzg8OD0IPcg+gD8wP6hAaEEAQXBB4ELgRAhFEEY4R6BI2EpQS1BMCE0QTdhOSE/AULhR8FMIVCBU6FZQV5hYkFlwWuhbuF0AXbhfOF+YYRhjAGMAY6BlUGaYZ6Bo4Gl4bABssG6wb9BwUHEAcThzeHP4dRB2QHeIeOh5YHpwevh72HxwfZB+EH/ogeiEsIYYh2iIuIogjcCPcJGQktiUeJWglrCX6JlYmlibWJxondifeKLopEilmKcAqqCscKz4rlivcLCIsbCzQLQotVC3YLiYucC7CL54wBDB6MRoxiDHuMlQywDM+M2AzgjOuM/A0aDVGNZ419jZSNzQ3pDfYODA4eDjAORA5cjnQOho6iDrgOzI7rDwePJY9CD1GPZA90j4gPm4+zj82P5I/4EBKQJhBCEF0QgJCTkK4Q1BD1kRoRNZFGkVERY5F6EYwRkxGxEcoR1ZHeEfMSBhIWEiYSNZJAklISZJJ/EpwSrpLCEtgS7xMHEyATPRNfE3iThxOpE8ET25PrFAYUHxREFGSUgJSblLMU0pTjFPsVDZUhFT8VXBVxFYYVohW+ldUV4pXwFf+WEBYeli0WQxZNFlcWZRZtFn0Wi5a0lr0W0pbSltKW0pbSltKW0pbSltKW0pbSltKW1hbZlt0W5BbrFvcXAhcNFyOXOBdMF0+XXxdfF5EXmhejF6MXwBfaF+CX45f1mAgAAEAAAFDAE8ABwAAAAAAAgABAAIAFgAAAQABOQAAAAAAAAAOAK4AAwABBAkAAAAGAAAAAwABBAkAAQAUAAYAAwABBAkAAgAOABoAAwABBAkAAwAGACgAAwABBAkABAAkAC4AAwABBAkABQAGAFIAAwABBAkABgAUAFgAAwABBAkABwAGAGwAAwABBAkACQAWAHIAAwABBAkACgJ6AIgAAwABBAkACwA2AwIAAwABBAkADAAyAzgAAwABBAkAyAAWA2oAAwABBAkAyQAwA4AATgBlAHcAVwBpAGwAbABvAHcAQgBvAGQAeQBSAGUAZwB1AGwAYQByAE4AZQB3AFcAaQBsAGwAbwB3AEIAbwBkAHkAIABSAGUAZwB1AGwAYQByAE4AZQB3AFcAaQBsAGwAbwB3AEIAbwBkAHkATgBlAHcAUgBhAHkAIABMAGEAcgBhAGIAaQBlAEwAYQByAGEAYgBpAGUAIABGAG8AbgB0AHMAIABpAHMAIABhAGIAbABlACAAdABvACAAbwBmAGYAZQByACAAdQBuAGkAcQB1AGUAIABmAHIAZQBlACAAZgBvAG4AdABzACAAdABoAHIAbwB1AGcAaAAgAHQAaABlACAAZwBlAG4AZQByAG8AdQBzACAAcwB1AHAAcABvAHIAdAAgAG8AZgAgAHYAaQBzAGkAdABvAHIAcwAgAHQAbwAgAHQAaABlACAAcwBpAHQAZQAuACAATQBhAGsAaQBuAGcAIABmAG8AbgB0AHMAIABpAHMAIABtAHkAIABmAHUAbABsAC0AdABpAG0AZQAgAGoAbwBiACAAYQBuAGQAIABlAHYAZQByAHkAIABkAG8AbgBhAHQAaQBvAG4ALAAgAGkAbgAgAGEAbgB5ACAAYQBtAG8AdQBuAHQALAAgAGUAbgBhAGIAbABlAHMAIABtAGUAIAB0AG8AIABjAG8AbgB0AGkAbgB1AGUAIAByAHUAbgBuAGkAbgBnACAAdABoAGUAIABzAGkAdABlACAAYQBuAGQAIABjAHIAZQBhAHQAaQBuAGcAIABuAGUAdwAgAGYAbwBuAHQAcwAuACAASQBmACAAeQBvAHUAIAB3AG8AdQBsAGQAIABsAGkAawBlACAAdABvACAAcwB1AHAAcABvAHIAdAAgAEwAYQByAGEAYgBpAGUAIABGAG8AbgB0AHMAIAB2AGkAcwBpAHQAIAB3AHcAdwAuAGwAYQByAGEAYgBpAGUAZgBvAG4AdABzAC4AYwBvAG0AIABmAG8AcgAgAGQAZQB0AGEAaQBsAHMALgBoAHQAdABwADoALwAvAHcAdwB3AC4AbABhAHIAYQBiAGkAZQBmAG8AbgB0AHMALgBjAG8AbQBoAHQAdABwADoALwAvAHcAdwB3AC4AdAB5AHAAbwBkAGUAcgBtAGkAYwAuAGMAbwBtAFcAZQBiAGYAbwBuAHQAIAAxAC4AMABUAHUAZQAgAFMAZQBwACAAIAA0ACAAMQA3ADoANAAwADoAMgA2ACAAMgAwADEAMgAAAAIAAAAAAAD/NABmAAAAAAAAAAAAAAAAAAAAAAAAAAABQwAAAAEAAgECAAQABQAGAAcACAAJAAoACwAMAA0ADgAPABAAEQASABMAFAAVABYAFwAYABkAGgAbABwAHQAeAB8AIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEBAwCjAIQAhQC9AJYA6ACGAI4AiwCdAKkApAEEAIoA2gCDAJMBBQEGAI0AiADDAN4BBwCeAKoA9QD0APYAogCtAMkAxwCuAGIAYwCQAGQAywBlAMgAygDPAMwAzQDOAOkAZgDTANAA0QCvAGcA8ACRANYA1ADVAGgA6wDtAIkAagBpAGsAbQBsAG4AoABvAHEAcAByAHMAdQB0AHYAdwDqAHgAegB5AHsAfQB8ALgAoQB/AH4AgACBAOwA7gC6AQgBCQEKAQsBDAENAP0A/gD/AQABDgEPARABEQESARMBFAEVARYBFwEYARkA+AD5ARoBGwEcAR0BHgEfAPoA1wEgASEBIgEjASQBJQEmAScA4gDjASgBKQEqASsBLAEtAS4BLwEwATEAsACxATIBMwE0ATUBNgE3ATgBOQE6ATsA5ADlATwBPQE+AT8BQAFBAUIBQwFEAUUBRgFHALsBSAFJAUoBSwDmAOcApgDYAOEA2wDcAUwA4ADZAN8AlwFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoAsgCzALYAtwDEALQAtQDFAIcAqwFbAMYAvgC/AVwBXQCMALwBXgDAAMEHdW5pMDAwRAx2aXNpYmxlc3BhY2UHdW5pMDBBRAd1bmkwMEIyB3VuaTAwQjMHdW5pMDBCOQdBbWFjcm9uB2FtYWNyb24GQWJyZXZlBmFicmV2ZQdBb2dvbmVrB2FvZ29uZWsGRGNhcm9uBmRjYXJvbgdEbWFjcm9uB2RtYWNyb24HRW1hY3JvbgdlbWFjcm9uCkVkb3RhY2NlbnQKZWRvdGFjY2VudAdFb2dvbmVrB2VvZ29uZWsGRWNhcm9uBmVjYXJvbgxHY29tbWFhY2NlbnQMZ2NvbW1hYWNjZW50B0ltYWNyb24HaW1hY3JvbgdJb2dvbmVrB2lvZ29uZWsMS2NvbW1hYWNjZW50DGtjb21tYWFjY2VudAZMYWN1dGUGbGFjdXRlDExjb21tYWFjY2VudAxsY29tbWFhY2NlbnQGTGNhcm9uBmxjYXJvbgZOYWN1dGUGbmFjdXRlDE5jb21tYWFjY2VudAxuY29tbWFhY2NlbnQGTmNhcm9uBm5jYXJvbgdPbWFjcm9uB29tYWNyb24NT2h1bmdhcnVtbGF1dA1vaHVuZ2FydW1sYXV0BlJhY3V0ZQZyYWN1dGUMUmNvbW1hYWNjZW50DHJjb21tYWFjY2VudAZSY2Fyb24GcmNhcm9uBlNhY3V0ZQZzYWN1dGUMU2NvbW1hYWNjZW50DHNjb21tYWFjY2VudAxUY29tbWFhY2NlbnQMdGNvbW1hYWNjZW50BlRjYXJvbgZ0Y2Fyb24HVW1hY3Jvbgd1bWFjcm9uBVVyaW5nBXVyaW5nDVVodW5nYXJ1bWxhdXQNdWh1bmdhcnVtbGF1dAdVb2dvbmVrB3VvZ29uZWsGWmFjdXRlBnphY3V0ZQpaZG90YWNjZW50Cnpkb3RhY2NlbnQJbnVuZGFnZXNoB3VuaTIwMDAHdW5pMjAwMQd1bmkyMDAyB3VuaTIwMDMHdW5pMjAwNAd1bmkyMDA1B3VuaTIwMDYHdW5pMjAwNwd1bmkyMDA4B3VuaTIwMDkHdW5pMjAwQQd1bmkyMDEwB3VuaTIwMTEKZmlndXJlZGFzaAd1bmkyMDJGB3VuaTIwNUYERXVybwd1bmlFMDAwAAAAuAH/hbABjQBLsAhQWLEBAY5ZsUYGK1ghsBBZS7AUUlghsIBZHbAGK1xYALADIEWwAytEsAQgRbIDIAIrsAMrRLAFIEWyBCMCK7ADK0SwBiBFsgW5AiuwAytEsAcgRbIGUgIrsAMrRLAIIEWyByMCK7ADK0SwCSBFsgiTAiuwAytEsAogRbIJQQIrsAMrRLALIEWyChkCK7ADK0QBsAwgRbADK0SwDSBFsgwHAiuxA0Z2K0SwDiBFsg0HAiuxA0Z2K0SwDyBFsg5NAiuxA0Z2K0SwECBFsg81AiuxA0Z2K0SwESBFshAlAiuxA0Z2K0SwEiBFshEdAiuxA0Z2K0SwEyBFshIUAiuxA0Z2K0SwFCBFshMNAiuxA0Z2K0SwFSBFshQYAiuxA0Z2K0RZsBQrAAABUEZ1SgAA)}.creature-view-container .creature-view-top-pane{display:grid;grid-template-columns:1fr auto;gap:1rem;margin-bottom:1rem}.creature-view-top-pane input{width:100%} +/*! +Pathfinder TTRPG General Statblock Layout CSS + +version: 1.5.0 +by: Moritz Jung (https://github.com/mProjectsCode) and Sigrunixia +repo: https://github.com/mProjectsCode/obsidian-pathfinder2e-statblocks + +This file was generated from SCSS. +Looking for `!important`? Check for Rare_0X, and Trait_0X. That is the only spots they are used in this file. +*/ +/*! +/* @settings +name: Pathfinder 2e Statblocks +id: pathfinder-2e-statblocks +collapsed: true +settings: + - + id: layout-theme-basic + title: Creature Statblock Theme + description: The theme of the creature statblock + type: class-select + allowEmpty: false + default: basic-pathfinder-2e-layout-theme-default + options: + - + label: Default + value: basic-pathfinder-2e-layout-theme-default + - + label: Kingmaker + value: basic-pathfinder-2e-layout-theme-kingmaker + - + id: layout-theme-action + title: Action Statblock Theme + description: The theme of the action statblock + type: class-select + allowEmpty: false + default: pathfinder-2e-action-layout-theme-default + options: + - + label: Default + value: pathfinder-2e-action-layout-theme-default + - + label: Kingmaker + value: pathfinder-2e-action-layout-theme-kingmaker + - + id: layout-theme-hazard + title: Hazard Statblock Theme + description: The theme of the hazard statblock + type: class-select + allowEmpty: false + default: pathfinder-2e-hazard-layout-theme-default + options: + - + label: Default + value: pathfinder-2e-hazard-layout-theme-default + - + label: Kingmaker + value: pathfinder-2e-hazard-layout-theme-kingmaker + - + id: layout-theme-influence + title: Influence Statblock Theme + description: The theme of the influence subsystem statblock + type: class-select + allowEmpty: false + default: pathfinder-2e-influence-layout-theme-default + options: + - + label: Default + value: pathfinder-2e-influence-layout-theme-default + - + label: Kingmaker + value: pathfinder-2e-influence-layout-theme-kingmaker + - + id: layout-theme-misc + title: Misc Statblock Theme + description: The theme of the misc statblock + type: class-select + allowEmpty: false + default: pathfinder-2e-misc-layout-theme-default + options: + - + label: Default + value: pathfinder-2e-misc-layout-theme-default + - + label: Kingmaker + value: pathfinder-2e-misc-layout-theme-kingmaker + - + id: layout-theme-quest + title: Quest Statblock Theme + description: The theme of the quest statblock + type: class-select + allowEmpty: false + default: pathfinder-2e-quest-layout-theme-default + options: + - + label: Default + value: pathfinder-2e-quest-layout-theme-default + - + label: Kingmaker + value: pathfinder-2e-quest-layout-theme-kingmaker + - + id: layout-theme-settlement + title: Settlement Statblock Theme + description: The theme of the settlement statblock + type: class-select + allowEmpty: false + default: pathfinder-2e-settlement-layout-theme-default + options: + - + label: Default + value: pathfinder-2e-settlement-layout-theme-default + - + label: Kingmaker + value: pathfinder-2e-settlement-layout-theme-kingmaker + */ diff --git a/.obsidian/plugins/obsidian-git/data.json b/.obsidian/plugins/obsidian-git/data.json new file mode 100644 index 0000000..1ce6887 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/data.json @@ -0,0 +1,58 @@ +{ + "commitMessage": "vault backup: {{date}}", + "commitDateFormat": "YYYY-MM-DD HH:mm:ss", + "autoSaveInterval": 5, + "autoPushInterval": 0, + "autoPullInterval": 5, + "autoPullOnBoot": true, + "disablePush": false, + "pullBeforePush": true, + "disablePopups": false, + "disablePopupsForNoChanges": false, + "listChangedFilesInMessageBody": false, + "showStatusBar": true, + "updateSubmodules": false, + "syncMethod": "merge", + "customMessageOnAutoBackup": false, + "autoBackupAfterFileChange": false, + "treeStructure": false, + "refreshSourceControl": true, + "basePath": "", + "differentIntervalCommitAndPush": false, + "changedFilesInStatusBar": false, + "showedMobileNotice": true, + "refreshSourceControlTimer": 7000, + "showBranchStatusBar": true, + "setLastSaveToLastCommit": true, + "submoduleRecurseCheckout": false, + "gitDir": "", + "showFileMenu": true, + "authorInHistoryView": "hide", + "dateInHistoryView": false, + "lineAuthor": { + "show": false, + "followMovement": "inactive", + "authorDisplay": "initials", + "showCommitHash": false, + "dateTimeFormatOptions": "date", + "dateTimeFormatCustomString": "YYYY-MM-DD HH:mm", + "dateTimeTimezone": "viewer-local", + "coloringMaxAge": "1y", + "colorNew": { + "r": 255, + "g": 150, + "b": 150 + }, + "colorOld": { + "r": 120, + "g": 160, + "b": 255 + }, + "textColorCss": "var(--text-muted)", + "ignoreWhitespace": false, + "gutterSpacingFallbackLength": 5, + "lastShownAuthorDisplay": "initials", + "lastShownDateTimeFormatOptions": "date" + }, + "autoCommitMessage": "vault backup: {{date}}" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js new file mode 100644 index 0000000..d0d2c09 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/main.js @@ -0,0 +1,44901 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository (https://github.com/denolehov/obsidian-git) +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res; +}; +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __copyProps = (to, from, except, desc) => { + if (from && typeof from === "object" || typeof from === "function") { + for (let key2 of __getOwnPropNames(from)) + if (!__hasOwnProp.call(to, key2) && key2 !== except) + __defProp(to, key2, { get: () => from[key2], enumerable: !(desc = __getOwnPropDesc(from, key2)) || desc.enumerable }); + } + return to; +}; +var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( + // If the importer is in node compatibility mode or this is not an ESM + // file that has been converted to a CommonJS file using a Babel- + // compatible transform (i.e. "__esModule" has not been set), then set + // "default" to the CommonJS "module.exports" for node compatibility. + isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, + mod +)); +var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); +var __publicField = (obj, key2, value) => __defNormalProp(obj, typeof key2 !== "symbol" ? key2 + "" : key2, value); + +// node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js +var require_base64_js = __commonJS({ + "node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + exports2.byteLength = byteLength; + exports2.toByteArray = toByteArray; + exports2.fromByteArray = fromByteArray; + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== "undefined" ? Uint8Array : Array; + var code = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; + for (i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + var i; + var len; + revLookup["-".charCodeAt(0)] = 62; + revLookup["_".charCodeAt(0)] = 63; + function getLens(b64) { + var len2 = b64.length; + if (len2 % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4"); + } + var validLen = b64.indexOf("="); + if (validLen === -1) validLen = len2; + var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4; + return [validLen, placeHoldersLen]; + } + function byteLength(b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function _byteLength(b64, validLen, placeHoldersLen) { + return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen; + } + function toByteArray(b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + var curByte = 0; + var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen; + var i2; + for (i2 = 0; i2 < len2; i2 += 4) { + tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)]; + arr[curByte++] = tmp >> 16 & 255; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 2) { + tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4; + arr[curByte++] = tmp & 255; + } + if (placeHoldersLen === 1) { + tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2; + arr[curByte++] = tmp >> 8 & 255; + arr[curByte++] = tmp & 255; + } + return arr; + } + function tripletToBase64(num2) { + return lookup[num2 >> 18 & 63] + lookup[num2 >> 12 & 63] + lookup[num2 >> 6 & 63] + lookup[num2 & 63]; + } + function encodeChunk(uint8, start, end) { + var tmp; + var output = []; + for (var i2 = start; i2 < end; i2 += 3) { + tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255); + output.push(tripletToBase64(tmp)); + } + return output.join(""); + } + function fromByteArray(uint8) { + var tmp; + var len2 = uint8.length; + var extraBytes = len2 % 3; + var parts = []; + var maxChunkLength = 16383; + for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) { + parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength)); + } + if (extraBytes === 1) { + tmp = uint8[len2 - 1]; + parts.push( + lookup[tmp >> 2] + lookup[tmp << 4 & 63] + "==" + ); + } else if (extraBytes === 2) { + tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1]; + parts.push( + lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + "=" + ); + } + return parts.join(""); + } + } +}); + +// node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js +var require_ieee754 = __commonJS({ + "node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js"(exports2) { + init_polyfill_buffer(); + exports2.read = function(buffer2, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? nBytes - 1 : 0; + var d = isLE ? -1 : 1; + var s = buffer2[offset + i]; + i += d; + e = s & (1 << -nBits) - 1; + s >>= -nBits; + nBits += eLen; + for (; nBits > 0; e = e * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + for (; nBits > 0; m = m * 256 + buffer2[offset + i], i += d, nBits -= 8) { + } + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : (s ? -1 : 1) * Infinity; + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen); + }; + exports2.write = function(buffer2, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0; + var i = isLE ? 0 : nBytes - 1; + var d = isLE ? 1 : -1; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + value = Math.abs(value); + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + for (; mLen >= 8; buffer2[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) { + } + e = e << mLen | m; + eLen += mLen; + for (; eLen > 0; buffer2[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) { + } + buffer2[offset + i - d] |= s * 128; + }; + } +}); + +// node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js +var require_buffer = __commonJS({ + "node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var base64 = require_base64_js(); + var ieee754 = require_ieee754(); + var customInspectSymbol = typeof Symbol === "function" && typeof Symbol["for"] === "function" ? Symbol["for"]("nodejs.util.inspect.custom") : null; + exports2.Buffer = Buffer2; + exports2.SlowBuffer = SlowBuffer; + exports2.INSPECT_MAX_BYTES = 50; + var K_MAX_LENGTH = 2147483647; + exports2.kMaxLength = K_MAX_LENGTH; + Buffer2.TYPED_ARRAY_SUPPORT = typedArraySupport(); + if (!Buffer2.TYPED_ARRAY_SUPPORT && typeof console !== "undefined" && typeof console.error === "function") { + console.error( + "This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support." + ); + } + function typedArraySupport() { + try { + const arr = new Uint8Array(1); + const proto = { foo: function() { + return 42; + } }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42; + } catch (e) { + return false; + } + } + Object.defineProperty(Buffer2.prototype, "parent", { + enumerable: true, + get: function() { + if (!Buffer2.isBuffer(this)) return void 0; + return this.buffer; + } + }); + Object.defineProperty(Buffer2.prototype, "offset", { + enumerable: true, + get: function() { + if (!Buffer2.isBuffer(this)) return void 0; + return this.byteOffset; + } + }); + function createBuffer(length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"'); + } + const buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer2.prototype); + return buf; + } + function Buffer2(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + if (typeof encodingOrOffset === "string") { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ); + } + return allocUnsafe(arg); + } + return from(arg, encodingOrOffset, length); + } + Buffer2.poolSize = 8192; + function from(value, encodingOrOffset, length) { + if (typeof value === "string") { + return fromString2(value, encodingOrOffset); + } + if (ArrayBuffer.isView(value)) { + return fromArrayView(value); + } + if (value == null) { + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value + ); + } + if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof SharedArrayBuffer !== "undefined" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length); + } + if (typeof value === "number") { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ); + } + const valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer2.from(valueOf, encodingOrOffset, length); + } + const b = fromObject(value); + if (b) return b; + if (typeof Symbol !== "undefined" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === "function") { + return Buffer2.from(value[Symbol.toPrimitive]("string"), encodingOrOffset, length); + } + throw new TypeError( + "The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type " + typeof value + ); + } + Buffer2.from = function(value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length); + }; + Object.setPrototypeOf(Buffer2.prototype, Uint8Array.prototype); + Object.setPrototypeOf(Buffer2, Uint8Array); + function assertSize(size) { + if (typeof size !== "number") { + throw new TypeError('"size" argument must be of type number'); + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"'); + } + } + function alloc(size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size); + } + if (fill !== void 0) { + return typeof encoding === "string" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill); + } + return createBuffer(size); + } + Buffer2.alloc = function(size, fill, encoding) { + return alloc(size, fill, encoding); + }; + function allocUnsafe(size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0); + } + Buffer2.allocUnsafe = function(size) { + return allocUnsafe(size); + }; + Buffer2.allocUnsafeSlow = function(size) { + return allocUnsafe(size); + }; + function fromString2(string, encoding) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + if (!Buffer2.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + const length = byteLength(string, encoding) | 0; + let buf = createBuffer(length); + const actual = buf.write(string, encoding); + if (actual !== length) { + buf = buf.slice(0, actual); + } + return buf; + } + function fromArrayLike(array) { + const length = array.length < 0 ? 0 : checked(array.length) | 0; + const buf = createBuffer(length); + for (let i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf; + } + function fromArrayView(arrayView) { + if (isInstance(arrayView, Uint8Array)) { + const copy2 = new Uint8Array(arrayView); + return fromArrayBuffer(copy2.buffer, copy2.byteOffset, copy2.byteLength); + } + return fromArrayLike(arrayView); + } + function fromArrayBuffer(array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds'); + } + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds'); + } + let buf; + if (byteOffset === void 0 && length === void 0) { + buf = new Uint8Array(array); + } else if (length === void 0) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + Object.setPrototypeOf(buf, Buffer2.prototype); + return buf; + } + function fromObject(obj) { + if (Buffer2.isBuffer(obj)) { + const len = checked(obj.length) | 0; + const buf = createBuffer(len); + if (buf.length === 0) { + return buf; + } + obj.copy(buf, 0, 0, len); + return buf; + } + if (obj.length !== void 0) { + if (typeof obj.length !== "number" || numberIsNaN(obj.length)) { + return createBuffer(0); + } + return fromArrayLike(obj); + } + if (obj.type === "Buffer" && Array.isArray(obj.data)) { + return fromArrayLike(obj.data); + } + } + function checked(length) { + if (length >= K_MAX_LENGTH) { + throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x" + K_MAX_LENGTH.toString(16) + " bytes"); + } + return length | 0; + } + function SlowBuffer(length) { + if (+length != length) { + length = 0; + } + return Buffer2.alloc(+length); + } + Buffer2.isBuffer = function isBuffer(b) { + return b != null && b._isBuffer === true && b !== Buffer2.prototype; + }; + Buffer2.compare = function compare(a, b) { + if (isInstance(a, Uint8Array)) a = Buffer2.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) b = Buffer2.from(b, b.offset, b.byteLength); + if (!Buffer2.isBuffer(a) || !Buffer2.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ); + } + if (a === b) return 0; + let x = a.length; + let y = b.length; + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break; + } + } + if (x < y) return -1; + if (y < x) return 1; + return 0; + }; + Buffer2.isEncoding = function isEncoding(encoding) { + switch (String(encoding).toLowerCase()) { + case "hex": + case "utf8": + case "utf-8": + case "ascii": + case "latin1": + case "binary": + case "base64": + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return true; + default: + return false; + } + }; + Buffer2.concat = function concat(list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } + if (list.length === 0) { + return Buffer2.alloc(0); + } + let i; + if (length === void 0) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + const buffer2 = Buffer2.allocUnsafe(length); + let pos = 0; + for (i = 0; i < list.length; ++i) { + let buf = list[i]; + if (isInstance(buf, Uint8Array)) { + if (pos + buf.length > buffer2.length) { + if (!Buffer2.isBuffer(buf)) buf = Buffer2.from(buf); + buf.copy(buffer2, pos); + } else { + Uint8Array.prototype.set.call( + buffer2, + buf, + pos + ); + } + } else if (!Buffer2.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers'); + } else { + buf.copy(buffer2, pos); + } + pos += buf.length; + } + return buffer2; + }; + function byteLength(string, encoding) { + if (Buffer2.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string + ); + } + const len = string.length; + const mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) return 0; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + } + Buffer2.byteLength = byteLength; + function slowToString(encoding, start, end) { + let loweredCase = false; + if (start === void 0 || start < 0) { + start = 0; + } + if (start > this.length) { + return ""; + } + if (end === void 0 || end > this.length) { + end = this.length; + } + if (end <= 0) { + return ""; + } + end >>>= 0; + start >>>= 0; + if (end <= start) { + return ""; + } + if (!encoding) encoding = "utf8"; + while (true) { + switch (encoding) { + case "hex": + return hexSlice(this, start, end); + case "utf8": + case "utf-8": + return utf8Slice(this, start, end); + case "ascii": + return asciiSlice(this, start, end); + case "latin1": + case "binary": + return latin1Slice(this, start, end); + case "base64": + return base64Slice(this, start, end); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return utf16leSlice(this, start, end); + default: + if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); + encoding = (encoding + "").toLowerCase(); + loweredCase = true; + } + } + } + Buffer2.prototype._isBuffer = true; + function swap(b, n, m) { + const i = b[n]; + b[n] = b[m]; + b[m] = i; + } + Buffer2.prototype.swap16 = function swap16() { + const len = this.length; + if (len % 2 !== 0) { + throw new RangeError("Buffer size must be a multiple of 16-bits"); + } + for (let i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this; + }; + Buffer2.prototype.swap32 = function swap32() { + const len = this.length; + if (len % 4 !== 0) { + throw new RangeError("Buffer size must be a multiple of 32-bits"); + } + for (let i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this; + }; + Buffer2.prototype.swap64 = function swap64() { + const len = this.length; + if (len % 8 !== 0) { + throw new RangeError("Buffer size must be a multiple of 64-bits"); + } + for (let i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this; + }; + Buffer2.prototype.toString = function toString() { + const length = this.length; + if (length === 0) return ""; + if (arguments.length === 0) return utf8Slice(this, 0, length); + return slowToString.apply(this, arguments); + }; + Buffer2.prototype.toLocaleString = Buffer2.prototype.toString; + Buffer2.prototype.equals = function equals3(b) { + if (!Buffer2.isBuffer(b)) throw new TypeError("Argument must be a Buffer"); + if (this === b) return true; + return Buffer2.compare(this, b) === 0; + }; + Buffer2.prototype.inspect = function inspect() { + let str = ""; + const max = exports2.INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim(); + if (this.length > max) str += " ... "; + return ""; + }; + if (customInspectSymbol) { + Buffer2.prototype[customInspectSymbol] = Buffer2.prototype.inspect; + } + Buffer2.prototype.compare = function compare(target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer2.from(target, target.offset, target.byteLength); + } + if (!Buffer2.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target + ); + } + if (start === void 0) { + start = 0; + } + if (end === void 0) { + end = target ? target.length : 0; + } + if (thisStart === void 0) { + thisStart = 0; + } + if (thisEnd === void 0) { + thisEnd = this.length; + } + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError("out of range index"); + } + if (thisStart >= thisEnd && start >= end) { + return 0; + } + if (thisStart >= thisEnd) { + return -1; + } + if (start >= end) { + return 1; + } + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + if (this === target) return 0; + let x = thisEnd - thisStart; + let y = end - start; + const len = Math.min(x, y); + const thisCopy = this.slice(thisStart, thisEnd); + const targetCopy = target.slice(start, end); + for (let i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break; + } + } + if (x < y) return -1; + if (y < x) return 1; + return 0; + }; + function bidirectionalIndexOf(buffer2, val, byteOffset, encoding, dir) { + if (buffer2.length === 0) return -1; + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 2147483647) { + byteOffset = 2147483647; + } else if (byteOffset < -2147483648) { + byteOffset = -2147483648; + } + byteOffset = +byteOffset; + if (numberIsNaN(byteOffset)) { + byteOffset = dir ? 0 : buffer2.length - 1; + } + if (byteOffset < 0) byteOffset = buffer2.length + byteOffset; + if (byteOffset >= buffer2.length) { + if (dir) return -1; + else byteOffset = buffer2.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0; + else return -1; + } + if (typeof val === "string") { + val = Buffer2.from(val, encoding); + } + if (Buffer2.isBuffer(val)) { + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer2, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 255; + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer2, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer2, val, byteOffset); + } + } + return arrayIndexOf(buffer2, [val], byteOffset, encoding, dir); + } + throw new TypeError("val must be string, number or Buffer"); + } + function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + let indexSize = 1; + let arrLength = arr.length; + let valLength = val.length; + if (encoding !== void 0) { + encoding = String(encoding).toLowerCase(); + if (encoding === "ucs2" || encoding === "ucs-2" || encoding === "utf16le" || encoding === "utf-16le") { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + function read(buf, i2) { + if (indexSize === 1) { + return buf[i2]; + } else { + return buf.readUInt16BE(i2 * indexSize); + } + } + let i; + if (dir) { + let foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + let found = true; + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) return i; + } + } + return -1; + } + Buffer2.prototype.includes = function includes(val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1; + }; + Buffer2.prototype.indexOf = function indexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); + }; + Buffer2.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); + }; + function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + const remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + const strLen = string.length; + if (length > strLen / 2) { + length = strLen / 2; + } + let i; + for (i = 0; i < length; ++i) { + const parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) return i; + buf[offset + i] = parsed; + } + return i; + } + function utf8Write(buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length); + } + function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); + } + function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); + } + function ucs2Write(buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length); + } + Buffer2.prototype.write = function write(string, offset, length, encoding) { + if (offset === void 0) { + encoding = "utf8"; + length = this.length; + offset = 0; + } else if (length === void 0 && typeof offset === "string") { + encoding = offset; + length = this.length; + offset = 0; + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === void 0) encoding = "utf8"; + } else { + encoding = length; + length = void 0; + } + } else { + throw new Error( + "Buffer.write(string, encoding, offset[, length]) is no longer supported" + ); + } + const remaining = this.length - offset; + if (length === void 0 || length > remaining) length = remaining; + if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) { + throw new RangeError("Attempt to write outside buffer bounds"); + } + if (!encoding) encoding = "utf8"; + let loweredCase = false; + for (; ; ) { + switch (encoding) { + case "hex": + return hexWrite(this, string, offset, length); + case "utf8": + case "utf-8": + return utf8Write(this, string, offset, length); + case "ascii": + case "latin1": + case "binary": + return asciiWrite(this, string, offset, length); + case "base64": + return base64Write(this, string, offset, length); + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(this, string, offset, length); + default: + if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + Buffer2.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0) + }; + }; + function base64Slice(buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf); + } else { + return base64.fromByteArray(buf.slice(start, end)); + } + } + function utf8Slice(buf, start, end) { + end = Math.min(buf.length, end); + const res = []; + let i = start; + while (i < end) { + const firstByte = buf[i]; + let codePoint = null; + let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1; + if (i + bytesPerSequence <= end) { + let secondByte, thirdByte, fourthByte, tempCodePoint; + switch (bytesPerSequence) { + case 1: + if (firstByte < 128) { + codePoint = firstByte; + } + break; + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 192) === 128) { + tempCodePoint = (firstByte & 31) << 6 | secondByte & 63; + if (tempCodePoint > 127) { + codePoint = tempCodePoint; + } + } + break; + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63; + if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) { + codePoint = tempCodePoint; + } + } + break; + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) { + tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63; + if (tempCodePoint > 65535 && tempCodePoint < 1114112) { + codePoint = tempCodePoint; + } + } + } + } + if (codePoint === null) { + codePoint = 65533; + bytesPerSequence = 1; + } else if (codePoint > 65535) { + codePoint -= 65536; + res.push(codePoint >>> 10 & 1023 | 55296); + codePoint = 56320 | codePoint & 1023; + } + res.push(codePoint); + i += bytesPerSequence; + } + return decodeCodePointsArray(res); + } + var MAX_ARGUMENTS_LENGTH = 4096; + function decodeCodePointsArray(codePoints) { + const len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints); + } + let res = ""; + let i = 0; + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ); + } + return res; + } + function asciiSlice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 127); + } + return ret; + } + function latin1Slice(buf, start, end) { + let ret = ""; + end = Math.min(buf.length, end); + for (let i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret; + } + function hexSlice(buf, start, end) { + const len = buf.length; + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + let out = ""; + for (let i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]]; + } + return out; + } + function utf16leSlice(buf, start, end) { + const bytes = buf.slice(start, end); + let res = ""; + for (let i = 0; i < bytes.length - 1; i += 2) { + res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256); + } + return res; + } + Buffer2.prototype.slice = function slice(start, end) { + const len = this.length; + start = ~~start; + end = end === void 0 ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + if (end < start) end = start; + const newBuf = this.subarray(start, end); + Object.setPrototypeOf(newBuf, Buffer2.prototype); + return newBuf; + }; + function checkOffset(offset, ext, length) { + if (offset % 1 !== 0 || offset < 0) throw new RangeError("offset is not uint"); + if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length"); + } + Buffer2.prototype.readUintLE = Buffer2.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + return val; + }; + Buffer2.prototype.readUintBE = Buffer2.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength2, this.length); + } + let val = this[offset + --byteLength2]; + let mul = 1; + while (byteLength2 > 0 && (mul *= 256)) { + val += this[offset + --byteLength2] * mul; + } + return val; + }; + Buffer2.prototype.readUint8 = Buffer2.prototype.readUInt8 = function readUInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + return this[offset]; + }; + Buffer2.prototype.readUint16LE = Buffer2.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] | this[offset + 1] << 8; + }; + Buffer2.prototype.readUint16BE = Buffer2.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] << 8 | this[offset + 1]; + }; + Buffer2.prototype.readUint32LE = Buffer2.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216; + }; + Buffer2.prototype.readUint32BE = Buffer2.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]); + }; + Buffer2.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const lo = first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24; + const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last2 * 2 ** 24; + return BigInt(lo) + (BigInt(hi) << BigInt(32)); + }); + Buffer2.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const hi = first2 * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2; + return (BigInt(hi) << BigInt(32)) + BigInt(lo); + }); + Buffer2.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) checkOffset(offset, byteLength2, this.length); + let val = this[offset]; + let mul = 1; + let i = 0; + while (++i < byteLength2 && (mul *= 256)) { + val += this[offset + i] * mul; + } + mul *= 128; + if (val >= mul) val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer2.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) { + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) checkOffset(offset, byteLength2, this.length); + let i = byteLength2; + let mul = 1; + let val = this[offset + --i]; + while (i > 0 && (mul *= 256)) { + val += this[offset + --i] * mul; + } + mul *= 128; + if (val >= mul) val -= Math.pow(2, 8 * byteLength2); + return val; + }; + Buffer2.prototype.readInt8 = function readInt8(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + if (!(this[offset] & 128)) return this[offset]; + return (255 - this[offset] + 1) * -1; + }; + Buffer2.prototype.readInt16LE = function readInt16LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + const val = this[offset] | this[offset + 1] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer2.prototype.readInt16BE = function readInt16BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + const val = this[offset + 1] | this[offset] << 8; + return val & 32768 ? val | 4294901760 : val; + }; + Buffer2.prototype.readInt32LE = function readInt32LE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24; + }; + Buffer2.prototype.readInt32BE = function readInt32BE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]; + }; + Buffer2.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last2 << 24); + return (BigInt(val) << BigInt(32)) + BigInt(first2 + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24); + }); + Buffer2.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) { + offset = offset >>> 0; + validateNumber(offset, "offset"); + const first2 = this[offset]; + const last2 = this[offset + 7]; + if (first2 === void 0 || last2 === void 0) { + boundsError(offset, this.length - 8); + } + const val = (first2 << 24) + // Overflow + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset]; + return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last2); + }); + Buffer2.prototype.readFloatLE = function readFloatLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4); + }; + Buffer2.prototype.readFloatBE = function readFloatBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4); + }; + Buffer2.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8); + }; + Buffer2.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8); + }; + function checkInt(buf, value, offset, ext, max, min) { + if (!Buffer2.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance'); + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds'); + if (offset + ext > buf.length) throw new RangeError("Index out of range"); + } + Buffer2.prototype.writeUintLE = Buffer2.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let mul = 1; + let i = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeUintBE = Buffer2.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength2 = byteLength2 >>> 0; + if (!noAssert) { + const maxBytes = Math.pow(2, 8 * byteLength2) - 1; + checkInt(this, value, offset, byteLength2, maxBytes, 0); + } + let i = byteLength2 - 1; + let mul = 1; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + this[offset + i] = value / mul & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeUint8 = Buffer2.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 255, 0); + this[offset] = value & 255; + return offset + 1; + }; + Buffer2.prototype.writeUint16LE = Buffer2.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer2.prototype.writeUint16BE = Buffer2.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 65535, 0); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer2.prototype.writeUint32LE = Buffer2.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0); + this[offset + 3] = value >>> 24; + this[offset + 2] = value >>> 16; + this[offset + 1] = value >>> 8; + this[offset] = value & 255; + return offset + 4; + }; + Buffer2.prototype.writeUint32BE = Buffer2.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0); + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + function wrtBigUInt64LE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + return offset; + } + function wrtBigUInt64BE(buf, value, offset, min, max) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset + 7] = lo; + lo = lo >> 8; + buf[offset + 6] = lo; + lo = lo >> 8; + buf[offset + 5] = lo; + lo = lo >> 8; + buf[offset + 4] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset + 3] = hi; + hi = hi >> 8; + buf[offset + 2] = hi; + hi = hi >> 8; + buf[offset + 1] = hi; + hi = hi >> 8; + buf[offset] = hi; + return offset + 8; + } + Buffer2.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer2.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt("0xffffffffffffffff")); + }); + Buffer2.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = 0; + let mul = 1; + let sub = 0; + this[offset] = value & 255; + while (++i < byteLength2 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + const limit = Math.pow(2, 8 * byteLength2 - 1); + checkInt(this, value, offset, byteLength2, limit - 1, -limit); + } + let i = byteLength2 - 1; + let mul = 1; + let sub = 0; + this[offset + i] = value & 255; + while (--i >= 0 && (mul *= 256)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = (value / mul >> 0) - sub & 255; + } + return offset + byteLength2; + }; + Buffer2.prototype.writeInt8 = function writeInt8(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 127, -128); + if (value < 0) value = 255 + value + 1; + this[offset] = value & 255; + return offset + 1; + }; + Buffer2.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + return offset + 2; + }; + Buffer2.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768); + this[offset] = value >>> 8; + this[offset + 1] = value & 255; + return offset + 2; + }; + Buffer2.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648); + this[offset] = value & 255; + this[offset + 1] = value >>> 8; + this[offset + 2] = value >>> 16; + this[offset + 3] = value >>> 24; + return offset + 4; + }; + Buffer2.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648); + if (value < 0) value = 4294967295 + value + 1; + this[offset] = value >>> 24; + this[offset + 1] = value >>> 16; + this[offset + 2] = value >>> 8; + this[offset + 3] = value & 255; + return offset + 4; + }; + Buffer2.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) { + return wrtBigUInt64LE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + Buffer2.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) { + return wrtBigUInt64BE(this, value, offset, -BigInt("0x8000000000000000"), BigInt("0x7fffffffffffffff")); + }); + function checkIEEE754(buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError("Index out of range"); + if (offset < 0) throw new RangeError("Index out of range"); + } + function writeFloat(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4; + } + Buffer2.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert); + }; + Buffer2.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert); + }; + function writeDouble(buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8; + } + Buffer2.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert); + }; + Buffer2.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert); + }; + Buffer2.prototype.copy = function copy2(target, targetStart, start, end) { + if (!Buffer2.isBuffer(target)) throw new TypeError("argument should be a Buffer"); + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; + if (end === start) return 0; + if (target.length === 0 || this.length === 0) return 0; + if (targetStart < 0) { + throw new RangeError("targetStart out of bounds"); + } + if (start < 0 || start >= this.length) throw new RangeError("Index out of range"); + if (end < 0) throw new RangeError("sourceEnd out of bounds"); + if (end > this.length) end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + const len = end - start; + if (this === target && typeof Uint8Array.prototype.copyWithin === "function") { + this.copyWithin(targetStart, start, end); + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ); + } + return len; + }; + Buffer2.prototype.fill = function fill(val, start, end, encoding) { + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + if (encoding !== void 0 && typeof encoding !== "string") { + throw new TypeError("encoding must be a string"); + } + if (typeof encoding === "string" && !Buffer2.isEncoding(encoding)) { + throw new TypeError("Unknown encoding: " + encoding); + } + if (val.length === 1) { + const code = val.charCodeAt(0); + if (encoding === "utf8" && code < 128 || encoding === "latin1") { + val = code; + } + } + } else if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError("Out of range index"); + } + if (end <= start) { + return this; + } + start = start >>> 0; + end = end === void 0 ? this.length : end >>> 0; + if (!val) val = 0; + let i; + if (typeof val === "number") { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + const bytes = Buffer2.isBuffer(val) ? val : Buffer2.from(val, encoding); + const len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + '" is invalid for argument "value"'); + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + return this; + }; + var errors = {}; + function E(sym, getMessage, Base) { + errors[sym] = class NodeError extends Base { + constructor() { + super(); + Object.defineProperty(this, "message", { + value: getMessage.apply(this, arguments), + writable: true, + configurable: true + }); + this.name = `${this.name} [${sym}]`; + this.stack; + delete this.name; + } + get code() { + return sym; + } + set code(value) { + Object.defineProperty(this, "code", { + configurable: true, + enumerable: true, + value, + writable: true + }); + } + toString() { + return `${this.name} [${sym}]: ${this.message}`; + } + }; + } + E( + "ERR_BUFFER_OUT_OF_BOUNDS", + function(name) { + if (name) { + return `${name} is outside of buffer bounds`; + } + return "Attempt to access memory outside buffer bounds"; + }, + RangeError + ); + E( + "ERR_INVALID_ARG_TYPE", + function(name, actual) { + return `The "${name}" argument must be of type number. Received type ${typeof actual}`; + }, + TypeError + ); + E( + "ERR_OUT_OF_RANGE", + function(str, range, input) { + let msg = `The value of "${str}" is out of range.`; + let received = input; + if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) { + received = addNumericalSeparator(received); + } + received += "n"; + } + msg += ` It must be ${range}. Received ${received}`; + return msg; + }, + RangeError + ); + function addNumericalSeparator(val) { + let res = ""; + let i = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}`; + } + return `${val.slice(0, i)}${res}`; + } + function checkBounds(buf, offset, byteLength2) { + validateNumber(offset, "offset"); + if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) { + boundsError(offset, buf.length - (byteLength2 + 1)); + } + } + function checkIntBI(value, min, max, buf, offset, byteLength2) { + if (value > max || value < min) { + const n = typeof min === "bigint" ? "n" : ""; + let range; + if (byteLength2 > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`; + } else { + range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`; + } + } else { + range = `>= ${min}${n} and <= ${max}${n}`; + } + throw new errors.ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength2); + } + function validateNumber(value, name) { + if (typeof value !== "number") { + throw new errors.ERR_INVALID_ARG_TYPE(name, "number", value); + } + } + function boundsError(value, length, type) { + if (Math.floor(value) !== value) { + validateNumber(value, type); + throw new errors.ERR_OUT_OF_RANGE(type || "offset", "an integer", value); + } + if (length < 0) { + throw new errors.ERR_BUFFER_OUT_OF_BOUNDS(); + } + throw new errors.ERR_OUT_OF_RANGE( + type || "offset", + `>= ${type ? 1 : 0} and <= ${length}`, + value + ); + } + var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + function base64clean(str) { + str = str.split("=")[0]; + str = str.trim().replace(INVALID_BASE64_RE, ""); + if (str.length < 2) return ""; + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; + } + function utf8ToBytes(string, units) { + units = units || Infinity; + let codePoint; + const length = string.length; + let leadSurrogate = null; + const bytes = []; + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + if (codePoint > 55295 && codePoint < 57344) { + if (!leadSurrogate) { + if (codePoint > 56319) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + continue; + } else if (i + 1 === length) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + continue; + } + leadSurrogate = codePoint; + continue; + } + if (codePoint < 56320) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + leadSurrogate = codePoint; + continue; + } + codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536; + } else if (leadSurrogate) { + if ((units -= 3) > -1) bytes.push(239, 191, 189); + } + leadSurrogate = null; + if (codePoint < 128) { + if ((units -= 1) < 0) break; + bytes.push(codePoint); + } else if (codePoint < 2048) { + if ((units -= 2) < 0) break; + bytes.push( + codePoint >> 6 | 192, + codePoint & 63 | 128 + ); + } else if (codePoint < 65536) { + if ((units -= 3) < 0) break; + bytes.push( + codePoint >> 12 | 224, + codePoint >> 6 & 63 | 128, + codePoint & 63 | 128 + ); + } else if (codePoint < 1114112) { + if ((units -= 4) < 0) break; + bytes.push( + codePoint >> 18 | 240, + codePoint >> 12 & 63 | 128, + codePoint >> 6 & 63 | 128, + codePoint & 63 | 128 + ); + } else { + throw new Error("Invalid code point"); + } + } + return bytes; + } + function asciiToBytes(str) { + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + byteArray.push(str.charCodeAt(i) & 255); + } + return byteArray; + } + function utf16leToBytes(str, units) { + let c, hi, lo; + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break; + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + return byteArray; + } + function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); + } + function blitBuffer(src, dst, offset, length) { + let i; + for (i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break; + dst[i + offset] = src[i]; + } + return i; + } + function isInstance(obj, type) { + return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name; + } + function numberIsNaN(obj) { + return obj !== obj; + } + var hexSliceLookupTable = function() { + const alphabet = "0123456789abcdef"; + const table = new Array(256); + for (let i = 0; i < 16; ++i) { + const i16 = i * 16; + for (let j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table; + }(); + function defineBigIntMethod(fn) { + return typeof BigInt === "undefined" ? BufferBigIntNotDefined : fn; + } + function BufferBigIntNotDefined() { + throw new Error("BigInt not supported"); + } + } +}); + +// polyfill_buffer.js +var import_obsidian, buffer, Buffer; +var init_polyfill_buffer = __esm({ + "polyfill_buffer.js"() { + import_obsidian = require("obsidian"); + if (import_obsidian.Platform.isMobileApp) { + buffer = require_buffer().Buffer; + } else { + buffer = global.Buffer; + } + Buffer = buffer; + } +}); + +// node_modules/.pnpm/async-lock@1.4.1/node_modules/async-lock/lib/index.js +var require_lib = __commonJS({ + "node_modules/.pnpm/async-lock@1.4.1/node_modules/async-lock/lib/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var AsyncLock2 = function(opts) { + opts = opts || {}; + this.Promise = opts.Promise || Promise; + this.queues = /* @__PURE__ */ Object.create(null); + this.domainReentrant = opts.domainReentrant || false; + if (this.domainReentrant) { + if (typeof process === "undefined" || typeof process.domain === "undefined") { + throw new Error( + "Domain-reentrant locks require `process.domain` to exist. Please flip `opts.domainReentrant = false`, use a NodeJS version that still implements Domain, or install a browser polyfill." + ); + } + this.domains = /* @__PURE__ */ Object.create(null); + } + this.timeout = opts.timeout || AsyncLock2.DEFAULT_TIMEOUT; + this.maxOccupationTime = opts.maxOccupationTime || AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME; + this.maxExecutionTime = opts.maxExecutionTime || AsyncLock2.DEFAULT_MAX_EXECUTION_TIME; + if (opts.maxPending === Infinity || Number.isInteger(opts.maxPending) && opts.maxPending >= 0) { + this.maxPending = opts.maxPending; + } else { + this.maxPending = AsyncLock2.DEFAULT_MAX_PENDING; + } + }; + AsyncLock2.DEFAULT_TIMEOUT = 0; + AsyncLock2.DEFAULT_MAX_OCCUPATION_TIME = 0; + AsyncLock2.DEFAULT_MAX_EXECUTION_TIME = 0; + AsyncLock2.DEFAULT_MAX_PENDING = 1e3; + AsyncLock2.prototype.acquire = function(key2, fn, cb, opts) { + if (Array.isArray(key2)) { + return this._acquireBatch(key2, fn, cb, opts); + } + if (typeof fn !== "function") { + throw new Error("You must pass a function to execute"); + } + var deferredResolve = null; + var deferredReject = null; + var deferred2 = null; + if (typeof cb !== "function") { + opts = cb; + cb = null; + deferred2 = new this.Promise(function(resolve2, reject) { + deferredResolve = resolve2; + deferredReject = reject; + }); + } + opts = opts || {}; + var resolved = false; + var timer = null; + var occupationTimer = null; + var executionTimer = null; + var self2 = this; + var done = function(locked, err, ret) { + if (occupationTimer) { + clearTimeout(occupationTimer); + occupationTimer = null; + } + if (executionTimer) { + clearTimeout(executionTimer); + executionTimer = null; + } + if (locked) { + if (!!self2.queues[key2] && self2.queues[key2].length === 0) { + delete self2.queues[key2]; + } + if (self2.domainReentrant) { + delete self2.domains[key2]; + } + } + if (!resolved) { + if (!deferred2) { + if (typeof cb === "function") { + cb(err, ret); + } + } else { + if (err) { + deferredReject(err); + } else { + deferredResolve(ret); + } + } + resolved = true; + } + if (locked) { + if (!!self2.queues[key2] && self2.queues[key2].length > 0) { + self2.queues[key2].shift()(); + } + } + }; + var exec = function(locked) { + if (resolved) { + return done(locked); + } + if (timer) { + clearTimeout(timer); + timer = null; + } + if (self2.domainReentrant && locked) { + self2.domains[key2] = process.domain; + } + var maxExecutionTime = opts.maxExecutionTime || self2.maxExecutionTime; + if (maxExecutionTime) { + executionTimer = setTimeout(function() { + if (!!self2.queues[key2]) { + done(locked, new Error("Maximum execution time is exceeded " + key2)); + } + }, maxExecutionTime); + } + if (fn.length === 1) { + var called = false; + try { + fn(function(err, ret) { + if (!called) { + called = true; + done(locked, err, ret); + } + }); + } catch (err) { + if (!called) { + called = true; + done(locked, err); + } + } + } else { + self2._promiseTry(function() { + return fn(); + }).then(function(ret) { + done(locked, void 0, ret); + }, function(error) { + done(locked, error); + }); + } + }; + if (self2.domainReentrant && !!process.domain) { + exec = process.domain.bind(exec); + } + var maxPending = opts.maxPending || self2.maxPending; + if (!self2.queues[key2]) { + self2.queues[key2] = []; + exec(true); + } else if (self2.domainReentrant && !!process.domain && process.domain === self2.domains[key2]) { + exec(false); + } else if (self2.queues[key2].length >= maxPending) { + done(false, new Error("Too many pending tasks in queue " + key2)); + } else { + var taskFn = function() { + exec(true); + }; + if (opts.skipQueue) { + self2.queues[key2].unshift(taskFn); + } else { + self2.queues[key2].push(taskFn); + } + var timeout = opts.timeout || self2.timeout; + if (timeout) { + timer = setTimeout(function() { + timer = null; + done(false, new Error("async-lock timed out in queue " + key2)); + }, timeout); + } + } + var maxOccupationTime = opts.maxOccupationTime || self2.maxOccupationTime; + if (maxOccupationTime) { + occupationTimer = setTimeout(function() { + if (!!self2.queues[key2]) { + done(false, new Error("Maximum occupation time is exceeded in queue " + key2)); + } + }, maxOccupationTime); + } + if (deferred2) { + return deferred2; + } + }; + AsyncLock2.prototype._acquireBatch = function(keys, fn, cb, opts) { + if (typeof cb !== "function") { + opts = cb; + cb = null; + } + var self2 = this; + var getFn = function(key2, fn2) { + return function(cb2) { + self2.acquire(key2, fn2, cb2, opts); + }; + }; + var fnx = keys.reduceRight(function(prev, key2) { + return getFn(key2, prev); + }, fn); + if (typeof cb === "function") { + fnx(cb); + } else { + return new this.Promise(function(resolve2, reject) { + if (fnx.length === 1) { + fnx(function(err, ret) { + if (err) { + reject(err); + } else { + resolve2(ret); + } + }); + } else { + resolve2(fnx()); + } + }); + } + }; + AsyncLock2.prototype.isBusy = function(key2) { + if (!key2) { + return Object.keys(this.queues).length > 0; + } else { + return !!this.queues[key2]; + } + }; + AsyncLock2.prototype._promiseTry = function(fn) { + try { + return this.Promise.resolve(fn()); + } catch (e) { + return this.Promise.reject(e); + } + }; + module2.exports = AsyncLock2; + } +}); + +// node_modules/.pnpm/async-lock@1.4.1/node_modules/async-lock/index.js +var require_async_lock = __commonJS({ + "node_modules/.pnpm/async-lock@1.4.1/node_modules/async-lock/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = require_lib(); + } +}); + +// node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js +var require_inherits_browser = __commonJS({ + "node_modules/.pnpm/inherits@2.0.4/node_modules/inherits/inherits_browser.js"(exports2, module2) { + init_polyfill_buffer(); + if (typeof Object.create === "function") { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + module2.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + var TempCtor = function() { + }; + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } + } +}); + +// node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js +var require_safe_buffer = __commonJS({ + "node_modules/.pnpm/safe-buffer@5.2.1/node_modules/safe-buffer/index.js"(exports2, module2) { + init_polyfill_buffer(); + var buffer2 = require_buffer(); + var Buffer2 = buffer2.Buffer; + function copyProps(src, dst) { + for (var key2 in src) { + dst[key2] = src[key2]; + } + } + if (Buffer2.from && Buffer2.alloc && Buffer2.allocUnsafe && Buffer2.allocUnsafeSlow) { + module2.exports = buffer2; + } else { + copyProps(buffer2, exports2); + exports2.Buffer = SafeBuffer; + } + function SafeBuffer(arg, encodingOrOffset, length) { + return Buffer2(arg, encodingOrOffset, length); + } + SafeBuffer.prototype = Object.create(Buffer2.prototype); + copyProps(Buffer2, SafeBuffer); + SafeBuffer.from = function(arg, encodingOrOffset, length) { + if (typeof arg === "number") { + throw new TypeError("Argument must not be a number"); + } + return Buffer2(arg, encodingOrOffset, length); + }; + SafeBuffer.alloc = function(size, fill, encoding) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + var buf = Buffer2(size); + if (fill !== void 0) { + if (typeof encoding === "string") { + buf.fill(fill, encoding); + } else { + buf.fill(fill); + } + } else { + buf.fill(0); + } + return buf; + }; + SafeBuffer.allocUnsafe = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return Buffer2(size); + }; + SafeBuffer.allocUnsafeSlow = function(size) { + if (typeof size !== "number") { + throw new TypeError("Argument must be a number"); + } + return buffer2.SlowBuffer(size); + }; + } +}); + +// node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/hash.js +var require_hash = __commonJS({ + "node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/hash.js"(exports2, module2) { + init_polyfill_buffer(); + var Buffer2 = require_safe_buffer().Buffer; + function Hash2(blockSize, finalSize) { + this._block = Buffer2.alloc(blockSize); + this._finalSize = finalSize; + this._blockSize = blockSize; + this._len = 0; + } + Hash2.prototype.update = function(data, enc) { + if (typeof data === "string") { + enc = enc || "utf8"; + data = Buffer2.from(data, enc); + } + var block = this._block; + var blockSize = this._blockSize; + var length = data.length; + var accum = this._len; + for (var offset = 0; offset < length; ) { + var assigned = accum % blockSize; + var remainder = Math.min(length - offset, blockSize - assigned); + for (var i = 0; i < remainder; i++) { + block[assigned + i] = data[offset + i]; + } + accum += remainder; + offset += remainder; + if (accum % blockSize === 0) { + this._update(block); + } + } + this._len += length; + return this; + }; + Hash2.prototype.digest = function(enc) { + var rem = this._len % this._blockSize; + this._block[rem] = 128; + this._block.fill(0, rem + 1); + if (rem >= this._finalSize) { + this._update(this._block); + this._block.fill(0); + } + var bits = this._len * 8; + if (bits <= 4294967295) { + this._block.writeUInt32BE(bits, this._blockSize - 4); + } else { + var lowBits = (bits & 4294967295) >>> 0; + var highBits = (bits - lowBits) / 4294967296; + this._block.writeUInt32BE(highBits, this._blockSize - 8); + this._block.writeUInt32BE(lowBits, this._blockSize - 4); + } + this._update(this._block); + var hash2 = this._hash(); + return enc ? hash2.toString(enc) : hash2; + }; + Hash2.prototype._update = function() { + throw new Error("_update must be implemented by subclass"); + }; + module2.exports = Hash2; + } +}); + +// node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/sha1.js +var require_sha1 = __commonJS({ + "node_modules/.pnpm/sha.js@2.4.11/node_modules/sha.js/sha1.js"(exports2, module2) { + init_polyfill_buffer(); + var inherits = require_inherits_browser(); + var Hash2 = require_hash(); + var Buffer2 = require_safe_buffer().Buffer; + var K2 = [ + 1518500249, + 1859775393, + 2400959708 | 0, + 3395469782 | 0 + ]; + var W = new Array(80); + function Sha1() { + this.init(); + this._w = W; + Hash2.call(this, 64, 56); + } + inherits(Sha1, Hash2); + Sha1.prototype.init = function() { + this._a = 1732584193; + this._b = 4023233417; + this._c = 2562383102; + this._d = 271733878; + this._e = 3285377520; + return this; + }; + function rotl1(num2) { + return num2 << 1 | num2 >>> 31; + } + function rotl5(num2) { + return num2 << 5 | num2 >>> 27; + } + function rotl30(num2) { + return num2 << 30 | num2 >>> 2; + } + function ft(s, b, c, d) { + if (s === 0) return b & c | ~b & d; + if (s === 2) return b & c | b & d | c & d; + return b ^ c ^ d; + } + Sha1.prototype._update = function(M) { + var W2 = this._w; + var a = this._a | 0; + var b = this._b | 0; + var c = this._c | 0; + var d = this._d | 0; + var e = this._e | 0; + for (var i = 0; i < 16; ++i) W2[i] = M.readInt32BE(i * 4); + for (; i < 80; ++i) W2[i] = rotl1(W2[i - 3] ^ W2[i - 8] ^ W2[i - 14] ^ W2[i - 16]); + for (var j = 0; j < 80; ++j) { + var s = ~~(j / 20); + var t = rotl5(a) + ft(s, b, c, d) + e + W2[j] + K2[s] | 0; + e = d; + d = c; + c = rotl30(b); + b = a; + a = t; + } + this._a = a + this._a | 0; + this._b = b + this._b | 0; + this._c = c + this._c | 0; + this._d = d + this._d | 0; + this._e = e + this._e | 0; + }; + Sha1.prototype._hash = function() { + var H = Buffer2.allocUnsafe(20); + H.writeInt32BE(this._a | 0, 0); + H.writeInt32BE(this._b | 0, 4); + H.writeInt32BE(this._c | 0, 8); + H.writeInt32BE(this._d | 0, 12); + H.writeInt32BE(this._e | 0, 16); + return H; + }; + module2.exports = Sha1; + } +}); + +// node_modules/.pnpm/crc-32@1.2.2/node_modules/crc-32/crc32.js +var require_crc32 = __commonJS({ + "node_modules/.pnpm/crc-32@1.2.2/node_modules/crc-32/crc32.js"(exports2) { + init_polyfill_buffer(); + var CRC32; + (function(factory) { + if (typeof DO_NOT_EXPORT_CRC === "undefined") { + if ("object" === typeof exports2) { + factory(exports2); + } else if ("function" === typeof define && define.amd) { + define(function() { + var module3 = {}; + factory(module3); + return module3; + }); + } else { + factory(CRC32 = {}); + } + } else { + factory(CRC32 = {}); + } + })(function(CRC322) { + CRC322.version = "1.2.2"; + function signed_crc_table() { + var c = 0, table = new Array(256); + for (var n = 0; n != 256; ++n) { + c = n; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + c = c & 1 ? -306674912 ^ c >>> 1 : c >>> 1; + table[n] = c; + } + return typeof Int32Array !== "undefined" ? new Int32Array(table) : table; + } + var T0 = signed_crc_table(); + function slice_by_16_tables(T) { + var c = 0, v = 0, n = 0, table = typeof Int32Array !== "undefined" ? new Int32Array(4096) : new Array(4096); + for (n = 0; n != 256; ++n) table[n] = T[n]; + for (n = 0; n != 256; ++n) { + v = T[n]; + for (c = 256 + n; c < 4096; c += 256) v = table[c] = v >>> 8 ^ T[v & 255]; + } + var out = []; + for (n = 1; n != 16; ++n) out[n - 1] = typeof Int32Array !== "undefined" ? table.subarray(n * 256, n * 256 + 256) : table.slice(n * 256, n * 256 + 256); + return out; + } + var TT = slice_by_16_tables(T0); + var T1 = TT[0], T2 = TT[1], T3 = TT[2], T4 = TT[3], T5 = TT[4]; + var T6 = TT[5], T7 = TT[6], T8 = TT[7], T9 = TT[8], Ta = TT[9]; + var Tb = TT[10], Tc = TT[11], Td = TT[12], Te = TT[13], Tf = TT[14]; + function crc32_bstr(bstr, seed) { + var C = seed ^ -1; + for (var i = 0, L = bstr.length; i < L; ) C = C >>> 8 ^ T0[(C ^ bstr.charCodeAt(i++)) & 255]; + return ~C; + } + function crc32_buf(B, seed) { + var C = seed ^ -1, L = B.length - 15, i = 0; + for (; i < L; ) C = Tf[B[i++] ^ C & 255] ^ Te[B[i++] ^ C >> 8 & 255] ^ Td[B[i++] ^ C >> 16 & 255] ^ Tc[B[i++] ^ C >>> 24] ^ Tb[B[i++]] ^ Ta[B[i++]] ^ T9[B[i++]] ^ T8[B[i++]] ^ T7[B[i++]] ^ T6[B[i++]] ^ T5[B[i++]] ^ T4[B[i++]] ^ T3[B[i++]] ^ T2[B[i++]] ^ T1[B[i++]] ^ T0[B[i++]]; + L += 15; + while (i < L) C = C >>> 8 ^ T0[(C ^ B[i++]) & 255]; + return ~C; + } + function crc32_str(str, seed) { + var C = seed ^ -1; + for (var i = 0, L = str.length, c = 0, d = 0; i < L; ) { + c = str.charCodeAt(i++); + if (c < 128) { + C = C >>> 8 ^ T0[(C ^ c) & 255]; + } else if (c < 2048) { + C = C >>> 8 ^ T0[(C ^ (192 | c >> 6 & 31)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } else if (c >= 55296 && c < 57344) { + c = (c & 1023) + 64; + d = str.charCodeAt(i++) & 1023; + C = C >>> 8 ^ T0[(C ^ (240 | c >> 8 & 7)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 2 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d >> 6 & 15 | (c & 3) << 4)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | d & 63)) & 255]; + } else { + C = C >>> 8 ^ T0[(C ^ (224 | c >> 12 & 15)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c >> 6 & 63)) & 255]; + C = C >>> 8 ^ T0[(C ^ (128 | c & 63)) & 255]; + } + } + return ~C; + } + CRC322.table = T0; + CRC322.bstr = crc32_bstr; + CRC322.buf = crc32_buf; + CRC322.str = crc32_str; + }); + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js +var require_common = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined"; + function _has(obj, key2) { + return Object.prototype.hasOwnProperty.call(obj, key2); + } + exports2.assign = function(obj) { + var sources = Array.prototype.slice.call(arguments, 1); + while (sources.length) { + var source = sources.shift(); + if (!source) { + continue; + } + if (typeof source !== "object") { + throw new TypeError(source + "must be non-object"); + } + for (var p in source) { + if (_has(source, p)) { + obj[p] = source[p]; + } + } + } + return obj; + }; + exports2.shrinkBuf = function(buf, size) { + if (buf.length === size) { + return buf; + } + if (buf.subarray) { + return buf.subarray(0, size); + } + buf.length = size; + return buf; + }; + var fnTyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + if (src.subarray && dest.subarray) { + dest.set(src.subarray(src_offs, src_offs + len), dest_offs); + return; + } + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + // Join array of chunks to single array. + flattenChunks: function(chunks) { + var i, l, len, pos, chunk, result; + len = 0; + for (i = 0, l = chunks.length; i < l; i++) { + len += chunks[i].length; + } + result = new Uint8Array(len); + pos = 0; + for (i = 0, l = chunks.length; i < l; i++) { + chunk = chunks[i]; + result.set(chunk, pos); + pos += chunk.length; + } + return result; + } + }; + var fnUntyped = { + arraySet: function(dest, src, src_offs, len, dest_offs) { + for (var i = 0; i < len; i++) { + dest[dest_offs + i] = src[src_offs + i]; + } + }, + // Join array of chunks to single array. + flattenChunks: function(chunks) { + return [].concat.apply([], chunks); + } + }; + exports2.setTyped = function(on) { + if (on) { + exports2.Buf8 = Uint8Array; + exports2.Buf16 = Uint16Array; + exports2.Buf32 = Int32Array; + exports2.assign(exports2, fnTyped); + } else { + exports2.Buf8 = Array; + exports2.Buf16 = Array; + exports2.Buf32 = Array; + exports2.assign(exports2, fnUntyped); + } + }; + exports2.setTyped(TYPED_OK); + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js +var require_trees = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var Z_FIXED = 4; + var Z_BINARY = 0; + var Z_TEXT = 1; + var Z_UNKNOWN = 2; + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + var STORED_BLOCK = 0; + var STATIC_TREES = 1; + var DYN_TREES = 2; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var Buf_size = 16; + var MAX_BL_BITS = 7; + var END_BLOCK = 256; + var REP_3_6 = 16; + var REPZ_3_10 = 17; + var REPZ_11_138 = 18; + var extra_lbits = ( + /* extra bits for each length code */ + [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0] + ); + var extra_dbits = ( + /* extra bits for each distance code */ + [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13] + ); + var extra_blbits = ( + /* extra bits for each bit length code */ + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7] + ); + var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]; + var DIST_CODE_LEN = 512; + var static_ltree = new Array((L_CODES + 2) * 2); + zero(static_ltree); + var static_dtree = new Array(D_CODES * 2); + zero(static_dtree); + var _dist_code = new Array(DIST_CODE_LEN); + zero(_dist_code); + var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1); + zero(_length_code); + var base_length = new Array(LENGTH_CODES); + zero(base_length); + var base_dist = new Array(D_CODES); + zero(base_dist); + function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) { + this.static_tree = static_tree; + this.extra_bits = extra_bits; + this.extra_base = extra_base; + this.elems = elems; + this.max_length = max_length; + this.has_stree = static_tree && static_tree.length; + } + var static_l_desc; + var static_d_desc; + var static_bl_desc; + function TreeDesc(dyn_tree, stat_desc) { + this.dyn_tree = dyn_tree; + this.max_code = 0; + this.stat_desc = stat_desc; + } + function d_code(dist) { + return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)]; + } + function put_short(s, w) { + s.pending_buf[s.pending++] = w & 255; + s.pending_buf[s.pending++] = w >>> 8 & 255; + } + function send_bits(s, value, length) { + if (s.bi_valid > Buf_size - length) { + s.bi_buf |= value << s.bi_valid & 65535; + put_short(s, s.bi_buf); + s.bi_buf = value >> Buf_size - s.bi_valid; + s.bi_valid += length - Buf_size; + } else { + s.bi_buf |= value << s.bi_valid & 65535; + s.bi_valid += length; + } + } + function send_code(s, c, tree) { + send_bits( + s, + tree[c * 2], + tree[c * 2 + 1] + /*.Len*/ + ); + } + function bi_reverse(code, len) { + var res = 0; + do { + res |= code & 1; + code >>>= 1; + res <<= 1; + } while (--len > 0); + return res >>> 1; + } + function bi_flush(s) { + if (s.bi_valid === 16) { + put_short(s, s.bi_buf); + s.bi_buf = 0; + s.bi_valid = 0; + } else if (s.bi_valid >= 8) { + s.pending_buf[s.pending++] = s.bi_buf & 255; + s.bi_buf >>= 8; + s.bi_valid -= 8; + } + } + function gen_bitlen(s, desc) { + var tree = desc.dyn_tree; + var max_code = desc.max_code; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var extra = desc.stat_desc.extra_bits; + var base = desc.stat_desc.extra_base; + var max_length = desc.stat_desc.max_length; + var h; + var n, m; + var bits; + var xbits; + var f; + var overflow = 0; + for (bits = 0; bits <= MAX_BITS; bits++) { + s.bl_count[bits] = 0; + } + tree[s.heap[s.heap_max] * 2 + 1] = 0; + for (h = s.heap_max + 1; h < HEAP_SIZE; h++) { + n = s.heap[h]; + bits = tree[tree[n * 2 + 1] * 2 + 1] + 1; + if (bits > max_length) { + bits = max_length; + overflow++; + } + tree[n * 2 + 1] = bits; + if (n > max_code) { + continue; + } + s.bl_count[bits]++; + xbits = 0; + if (n >= base) { + xbits = extra[n - base]; + } + f = tree[n * 2]; + s.opt_len += f * (bits + xbits); + if (has_stree) { + s.static_len += f * (stree[n * 2 + 1] + xbits); + } + } + if (overflow === 0) { + return; + } + do { + bits = max_length - 1; + while (s.bl_count[bits] === 0) { + bits--; + } + s.bl_count[bits]--; + s.bl_count[bits + 1] += 2; + s.bl_count[max_length]--; + overflow -= 2; + } while (overflow > 0); + for (bits = max_length; bits !== 0; bits--) { + n = s.bl_count[bits]; + while (n !== 0) { + m = s.heap[--h]; + if (m > max_code) { + continue; + } + if (tree[m * 2 + 1] !== bits) { + s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2]; + tree[m * 2 + 1] = bits; + } + n--; + } + } + } + function gen_codes(tree, max_code, bl_count) { + var next_code = new Array(MAX_BITS + 1); + var code = 0; + var bits; + var n; + for (bits = 1; bits <= MAX_BITS; bits++) { + next_code[bits] = code = code + bl_count[bits - 1] << 1; + } + for (n = 0; n <= max_code; n++) { + var len = tree[n * 2 + 1]; + if (len === 0) { + continue; + } + tree[n * 2] = bi_reverse(next_code[len]++, len); + } + } + function tr_static_init() { + var n; + var bits; + var length; + var code; + var dist; + var bl_count = new Array(MAX_BITS + 1); + length = 0; + for (code = 0; code < LENGTH_CODES - 1; code++) { + base_length[code] = length; + for (n = 0; n < 1 << extra_lbits[code]; n++) { + _length_code[length++] = code; + } + } + _length_code[length - 1] = code; + dist = 0; + for (code = 0; code < 16; code++) { + base_dist[code] = dist; + for (n = 0; n < 1 << extra_dbits[code]; n++) { + _dist_code[dist++] = code; + } + } + dist >>= 7; + for (; code < D_CODES; code++) { + base_dist[code] = dist << 7; + for (n = 0; n < 1 << extra_dbits[code] - 7; n++) { + _dist_code[256 + dist++] = code; + } + } + for (bits = 0; bits <= MAX_BITS; bits++) { + bl_count[bits] = 0; + } + n = 0; + while (n <= 143) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + while (n <= 255) { + static_ltree[n * 2 + 1] = 9; + n++; + bl_count[9]++; + } + while (n <= 279) { + static_ltree[n * 2 + 1] = 7; + n++; + bl_count[7]++; + } + while (n <= 287) { + static_ltree[n * 2 + 1] = 8; + n++; + bl_count[8]++; + } + gen_codes(static_ltree, L_CODES + 1, bl_count); + for (n = 0; n < D_CODES; n++) { + static_dtree[n * 2 + 1] = 5; + static_dtree[n * 2] = bi_reverse(n, 5); + } + static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS); + static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS); + static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); + } + function init_block(s) { + var n; + for (n = 0; n < L_CODES; n++) { + s.dyn_ltree[n * 2] = 0; + } + for (n = 0; n < D_CODES; n++) { + s.dyn_dtree[n * 2] = 0; + } + for (n = 0; n < BL_CODES; n++) { + s.bl_tree[n * 2] = 0; + } + s.dyn_ltree[END_BLOCK * 2] = 1; + s.opt_len = s.static_len = 0; + s.last_lit = s.matches = 0; + } + function bi_windup(s) { + if (s.bi_valid > 8) { + put_short(s, s.bi_buf); + } else if (s.bi_valid > 0) { + s.pending_buf[s.pending++] = s.bi_buf; + } + s.bi_buf = 0; + s.bi_valid = 0; + } + function copy_block(s, buf, len, header) { + bi_windup(s); + if (header) { + put_short(s, len); + put_short(s, ~len); + } + utils.arraySet(s.pending_buf, s.window, buf, len, s.pending); + s.pending += len; + } + function smaller(tree, n, m, depth) { + var _n2 = n * 2; + var _m2 = m * 2; + return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m]; + } + function pqdownheap(s, tree, k) { + var v = s.heap[k]; + var j = k << 1; + while (j <= s.heap_len) { + if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) { + j++; + } + if (smaller(tree, v, s.heap[j], s.depth)) { + break; + } + s.heap[k] = s.heap[j]; + k = j; + j <<= 1; + } + s.heap[k] = v; + } + function compress_block(s, ltree, dtree) { + var dist; + var lc; + var lx = 0; + var code; + var extra; + if (s.last_lit !== 0) { + do { + dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1]; + lc = s.pending_buf[s.l_buf + lx]; + lx++; + if (dist === 0) { + send_code(s, lc, ltree); + } else { + code = _length_code[lc]; + send_code(s, code + LITERALS + 1, ltree); + extra = extra_lbits[code]; + if (extra !== 0) { + lc -= base_length[code]; + send_bits(s, lc, extra); + } + dist--; + code = d_code(dist); + send_code(s, code, dtree); + extra = extra_dbits[code]; + if (extra !== 0) { + dist -= base_dist[code]; + send_bits(s, dist, extra); + } + } + } while (lx < s.last_lit); + } + send_code(s, END_BLOCK, ltree); + } + function build_tree(s, desc) { + var tree = desc.dyn_tree; + var stree = desc.stat_desc.static_tree; + var has_stree = desc.stat_desc.has_stree; + var elems = desc.stat_desc.elems; + var n, m; + var max_code = -1; + var node; + s.heap_len = 0; + s.heap_max = HEAP_SIZE; + for (n = 0; n < elems; n++) { + if (tree[n * 2] !== 0) { + s.heap[++s.heap_len] = max_code = n; + s.depth[n] = 0; + } else { + tree[n * 2 + 1] = 0; + } + } + while (s.heap_len < 2) { + node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0; + tree[node * 2] = 1; + s.depth[node] = 0; + s.opt_len--; + if (has_stree) { + s.static_len -= stree[node * 2 + 1]; + } + } + desc.max_code = max_code; + for (n = s.heap_len >> 1; n >= 1; n--) { + pqdownheap(s, tree, n); + } + node = elems; + do { + n = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[ + 1 + /*SMALLEST*/ + ] = s.heap[s.heap_len--]; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + m = s.heap[ + 1 + /*SMALLEST*/ + ]; + s.heap[--s.heap_max] = n; + s.heap[--s.heap_max] = m; + tree[node * 2] = tree[n * 2] + tree[m * 2]; + s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1; + tree[n * 2 + 1] = tree[m * 2 + 1] = node; + s.heap[ + 1 + /*SMALLEST*/ + ] = node++; + pqdownheap( + s, + tree, + 1 + /*SMALLEST*/ + ); + } while (s.heap_len >= 2); + s.heap[--s.heap_max] = s.heap[ + 1 + /*SMALLEST*/ + ]; + gen_bitlen(s, desc); + gen_codes(tree, max_code, s.bl_count); + } + function scan_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + tree[(max_code + 1) * 2 + 1] = 65535; + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + s.bl_tree[curlen * 2] += count; + } else if (curlen !== 0) { + if (curlen !== prevlen) { + s.bl_tree[curlen * 2]++; + } + s.bl_tree[REP_3_6 * 2]++; + } else if (count <= 10) { + s.bl_tree[REPZ_3_10 * 2]++; + } else { + s.bl_tree[REPZ_11_138 * 2]++; + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function send_tree(s, tree, max_code) { + var n; + var prevlen = -1; + var curlen; + var nextlen = tree[0 * 2 + 1]; + var count = 0; + var max_count = 7; + var min_count = 4; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } + for (n = 0; n <= max_code; n++) { + curlen = nextlen; + nextlen = tree[(n + 1) * 2 + 1]; + if (++count < max_count && curlen === nextlen) { + continue; + } else if (count < min_count) { + do { + send_code(s, curlen, s.bl_tree); + } while (--count !== 0); + } else if (curlen !== 0) { + if (curlen !== prevlen) { + send_code(s, curlen, s.bl_tree); + count--; + } + send_code(s, REP_3_6, s.bl_tree); + send_bits(s, count - 3, 2); + } else if (count <= 10) { + send_code(s, REPZ_3_10, s.bl_tree); + send_bits(s, count - 3, 3); + } else { + send_code(s, REPZ_11_138, s.bl_tree); + send_bits(s, count - 11, 7); + } + count = 0; + prevlen = curlen; + if (nextlen === 0) { + max_count = 138; + min_count = 3; + } else if (curlen === nextlen) { + max_count = 6; + min_count = 3; + } else { + max_count = 7; + min_count = 4; + } + } + } + function build_bl_tree(s) { + var max_blindex; + scan_tree(s, s.dyn_ltree, s.l_desc.max_code); + scan_tree(s, s.dyn_dtree, s.d_desc.max_code); + build_tree(s, s.bl_desc); + for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) { + if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) { + break; + } + } + s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; + return max_blindex; + } + function send_all_trees(s, lcodes, dcodes, blcodes) { + var rank; + send_bits(s, lcodes - 257, 5); + send_bits(s, dcodes - 1, 5); + send_bits(s, blcodes - 4, 4); + for (rank = 0; rank < blcodes; rank++) { + send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3); + } + send_tree(s, s.dyn_ltree, lcodes - 1); + send_tree(s, s.dyn_dtree, dcodes - 1); + } + function detect_data_type(s) { + var black_mask = 4093624447; + var n; + for (n = 0; n <= 31; n++, black_mask >>>= 1) { + if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) { + return Z_BINARY; + } + } + if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) { + return Z_TEXT; + } + for (n = 32; n < LITERALS; n++) { + if (s.dyn_ltree[n * 2] !== 0) { + return Z_TEXT; + } + } + return Z_BINARY; + } + var static_init_done = false; + function _tr_init(s) { + if (!static_init_done) { + tr_static_init(); + static_init_done = true; + } + s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc); + s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc); + s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc); + s.bi_buf = 0; + s.bi_valid = 0; + init_block(s); + } + function _tr_stored_block(s, buf, stored_len, last2) { + send_bits(s, (STORED_BLOCK << 1) + (last2 ? 1 : 0), 3); + copy_block(s, buf, stored_len, true); + } + function _tr_align(s) { + send_bits(s, STATIC_TREES << 1, 3); + send_code(s, END_BLOCK, static_ltree); + bi_flush(s); + } + function _tr_flush_block(s, buf, stored_len, last2) { + var opt_lenb, static_lenb; + var max_blindex = 0; + if (s.level > 0) { + if (s.strm.data_type === Z_UNKNOWN) { + s.strm.data_type = detect_data_type(s); + } + build_tree(s, s.l_desc); + build_tree(s, s.d_desc); + max_blindex = build_bl_tree(s); + opt_lenb = s.opt_len + 3 + 7 >>> 3; + static_lenb = s.static_len + 3 + 7 >>> 3; + if (static_lenb <= opt_lenb) { + opt_lenb = static_lenb; + } + } else { + opt_lenb = static_lenb = stored_len + 5; + } + if (stored_len + 4 <= opt_lenb && buf !== -1) { + _tr_stored_block(s, buf, stored_len, last2); + } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) { + send_bits(s, (STATIC_TREES << 1) + (last2 ? 1 : 0), 3); + compress_block(s, static_ltree, static_dtree); + } else { + send_bits(s, (DYN_TREES << 1) + (last2 ? 1 : 0), 3); + send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1); + compress_block(s, s.dyn_ltree, s.dyn_dtree); + } + init_block(s); + if (last2) { + bi_windup(s); + } + } + function _tr_tally(s, dist, lc) { + s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255; + s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255; + s.pending_buf[s.l_buf + s.last_lit] = lc & 255; + s.last_lit++; + if (dist === 0) { + s.dyn_ltree[lc * 2]++; + } else { + s.matches++; + dist--; + s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++; + s.dyn_dtree[d_code(dist) * 2]++; + } + return s.last_lit === s.lit_bufsize - 1; + } + exports2._tr_init = _tr_init; + exports2._tr_stored_block = _tr_stored_block; + exports2._tr_flush_block = _tr_flush_block; + exports2._tr_tally = _tr_tally; + exports2._tr_align = _tr_align; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js +var require_adler32 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function adler32(adler, buf, len, pos) { + var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0; + while (len !== 0) { + n = len > 2e3 ? 2e3 : len; + len -= n; + do { + s1 = s1 + buf[pos++] | 0; + s2 = s2 + s1 | 0; + } while (--n); + s1 %= 65521; + s2 %= 65521; + } + return s1 | s2 << 16 | 0; + } + module2.exports = adler32; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js +var require_crc322 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function makeTable() { + var c, table = []; + for (var n = 0; n < 256; n++) { + c = n; + for (var k = 0; k < 8; k++) { + c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1; + } + table[n] = c; + } + return table; + } + var crcTable = makeTable(); + function crc322(crc, buf, len, pos) { + var t = crcTable, end = pos + len; + crc ^= -1; + for (var i = pos; i < end; i++) { + crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255]; + } + return crc ^ -1; + } + module2.exports = crc322; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js +var require_messages = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = { + 2: "need dictionary", + /* Z_NEED_DICT 2 */ + 1: "stream end", + /* Z_STREAM_END 1 */ + 0: "", + /* Z_OK 0 */ + "-1": "file error", + /* Z_ERRNO (-1) */ + "-2": "stream error", + /* Z_STREAM_ERROR (-2) */ + "-3": "data error", + /* Z_DATA_ERROR (-3) */ + "-4": "insufficient memory", + /* Z_MEM_ERROR (-4) */ + "-5": "buffer error", + /* Z_BUF_ERROR (-5) */ + "-6": "incompatible version" + /* Z_VERSION_ERROR (-6) */ + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js +var require_deflate = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var trees = require_trees(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var msg = require_messages(); + var Z_NO_FLUSH = 0; + var Z_PARTIAL_FLUSH = 1; + var Z_FULL_FLUSH = 3; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_BUF_ERROR = -5; + var Z_DEFAULT_COMPRESSION = -1; + var Z_FILTERED = 1; + var Z_HUFFMAN_ONLY = 2; + var Z_RLE = 3; + var Z_FIXED = 4; + var Z_DEFAULT_STRATEGY = 0; + var Z_UNKNOWN = 2; + var Z_DEFLATED = 8; + var MAX_MEM_LEVEL = 9; + var MAX_WBITS = 15; + var DEF_MEM_LEVEL = 8; + var LENGTH_CODES = 29; + var LITERALS = 256; + var L_CODES = LITERALS + 1 + LENGTH_CODES; + var D_CODES = 30; + var BL_CODES = 19; + var HEAP_SIZE = 2 * L_CODES + 1; + var MAX_BITS = 15; + var MIN_MATCH = 3; + var MAX_MATCH = 258; + var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1; + var PRESET_DICT = 32; + var INIT_STATE = 42; + var EXTRA_STATE = 69; + var NAME_STATE = 73; + var COMMENT_STATE = 91; + var HCRC_STATE = 103; + var BUSY_STATE = 113; + var FINISH_STATE = 666; + var BS_NEED_MORE = 1; + var BS_BLOCK_DONE = 2; + var BS_FINISH_STARTED = 3; + var BS_FINISH_DONE = 4; + var OS_CODE = 3; + function err(strm, errorCode) { + strm.msg = msg[errorCode]; + return errorCode; + } + function rank(f) { + return (f << 1) - (f > 4 ? 9 : 0); + } + function zero(buf) { + var len = buf.length; + while (--len >= 0) { + buf[len] = 0; + } + } + function flush_pending(strm) { + var s = strm.state; + var len = s.pending; + if (len > strm.avail_out) { + len = strm.avail_out; + } + if (len === 0) { + return; + } + utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out); + strm.next_out += len; + s.pending_out += len; + strm.total_out += len; + strm.avail_out -= len; + s.pending -= len; + if (s.pending === 0) { + s.pending_out = 0; + } + } + function flush_block_only(s, last2) { + trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last2); + s.block_start = s.strstart; + flush_pending(s.strm); + } + function put_byte(s, b) { + s.pending_buf[s.pending++] = b; + } + function putShortMSB(s, b) { + s.pending_buf[s.pending++] = b >>> 8 & 255; + s.pending_buf[s.pending++] = b & 255; + } + function read_buf(strm, buf, start, size) { + var len = strm.avail_in; + if (len > size) { + len = size; + } + if (len === 0) { + return 0; + } + strm.avail_in -= len; + utils.arraySet(buf, strm.input, strm.next_in, len, start); + if (strm.state.wrap === 1) { + strm.adler = adler32(strm.adler, buf, len, start); + } else if (strm.state.wrap === 2) { + strm.adler = crc322(strm.adler, buf, len, start); + } + strm.next_in += len; + strm.total_in += len; + return len; + } + function longest_match(s, cur_match) { + var chain_length = s.max_chain_length; + var scan = s.strstart; + var match; + var len; + var best_len = s.prev_length; + var nice_match = s.nice_match; + var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0; + var _win = s.window; + var wmask = s.w_mask; + var prev = s.prev; + var strend = s.strstart + MAX_MATCH; + var scan_end1 = _win[scan + best_len - 1]; + var scan_end = _win[scan + best_len]; + if (s.prev_length >= s.good_match) { + chain_length >>= 2; + } + if (nice_match > s.lookahead) { + nice_match = s.lookahead; + } + do { + match = cur_match; + if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) { + continue; + } + scan += 2; + match++; + do { + } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); + len = MAX_MATCH - (strend - scan); + scan = strend - MAX_MATCH; + if (len > best_len) { + s.match_start = cur_match; + best_len = len; + if (len >= nice_match) { + break; + } + scan_end1 = _win[scan + best_len - 1]; + scan_end = _win[scan + best_len]; + } + } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0); + if (best_len <= s.lookahead) { + return best_len; + } + return s.lookahead; + } + function fill_window(s) { + var _w_size = s.w_size; + var p, n, m, more, str; + do { + more = s.window_size - s.lookahead - s.strstart; + if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) { + utils.arraySet(s.window, s.window, _w_size, _w_size, 0); + s.match_start -= _w_size; + s.strstart -= _w_size; + s.block_start -= _w_size; + n = s.hash_size; + p = n; + do { + m = s.head[--p]; + s.head[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + n = _w_size; + p = n; + do { + m = s.prev[--p]; + s.prev[p] = m >= _w_size ? m - _w_size : 0; + } while (--n); + more += _w_size; + } + if (s.strm.avail_in === 0) { + break; + } + n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more); + s.lookahead += n; + if (s.lookahead + s.insert >= MIN_MATCH) { + str = s.strstart - s.insert; + s.ins_h = s.window[str]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; + while (s.insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + s.insert--; + if (s.lookahead + s.insert < MIN_MATCH) { + break; + } + } + } + } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0); + } + function deflate_stored(s, flush2) { + var max_block_size = 65535; + if (max_block_size > s.pending_buf_size - 5) { + max_block_size = s.pending_buf_size - 5; + } + for (; ; ) { + if (s.lookahead <= 1) { + fill_window(s); + if (s.lookahead === 0 && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.strstart += s.lookahead; + s.lookahead = 0; + var max_start = s.block_start + max_block_size; + if (s.strstart === 0 || s.strstart >= max_start) { + s.lookahead = s.strstart - max_start; + s.strstart = max_start; + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.strstart > s.block_start) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_NEED_MORE; + } + function deflate_fast(s, flush2) { + var hash_head; + var bflush; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) { + s.match_length--; + do { + s.strstart++; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } while (--s.match_length !== 0); + s.strstart++; + } else { + s.strstart += s.match_length; + s.match_length = 0; + s.ins_h = s.window[s.strstart]; + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; + } + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_slow(s, flush2) { + var hash_head; + var bflush; + var max_insert; + for (; ; ) { + if (s.lookahead < MIN_LOOKAHEAD) { + fill_window(s); + if (s.lookahead < MIN_LOOKAHEAD && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + hash_head = 0; + if (s.lookahead >= MIN_MATCH) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + s.prev_length = s.match_length; + s.prev_match = s.match_start; + s.match_length = MIN_MATCH - 1; + if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) { + s.match_length = longest_match(s, hash_head); + if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) { + s.match_length = MIN_MATCH - 1; + } + } + if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) { + max_insert = s.strstart + s.lookahead - MIN_MATCH; + bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH); + s.lookahead -= s.prev_length - 1; + s.prev_length -= 2; + do { + if (++s.strstart <= max_insert) { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask; + hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = s.strstart; + } + } while (--s.prev_length !== 0); + s.match_available = 0; + s.match_length = MIN_MATCH - 1; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } else if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + if (bflush) { + flush_block_only(s, false); + } + s.strstart++; + s.lookahead--; + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } else { + s.match_available = 1; + s.strstart++; + s.lookahead--; + } + } + if (s.match_available) { + bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]); + s.match_available = 0; + } + s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_rle(s, flush2) { + var bflush; + var prev; + var scan, strend; + var _win = s.window; + for (; ; ) { + if (s.lookahead <= MAX_MATCH) { + fill_window(s); + if (s.lookahead <= MAX_MATCH && flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + if (s.lookahead === 0) { + break; + } + } + s.match_length = 0; + if (s.lookahead >= MIN_MATCH && s.strstart > 0) { + scan = s.strstart - 1; + prev = _win[scan]; + if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) { + strend = s.strstart + MAX_MATCH; + do { + } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend); + s.match_length = MAX_MATCH - (strend - scan); + if (s.match_length > s.lookahead) { + s.match_length = s.lookahead; + } + } + } + if (s.match_length >= MIN_MATCH) { + bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH); + s.lookahead -= s.match_length; + s.strstart += s.match_length; + s.match_length = 0; + } else { + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + } + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function deflate_huff(s, flush2) { + var bflush; + for (; ; ) { + if (s.lookahead === 0) { + fill_window(s); + if (s.lookahead === 0) { + if (flush2 === Z_NO_FLUSH) { + return BS_NEED_MORE; + } + break; + } + } + s.match_length = 0; + bflush = trees._tr_tally(s, 0, s.window[s.strstart]); + s.lookahead--; + s.strstart++; + if (bflush) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + } + s.insert = 0; + if (flush2 === Z_FINISH) { + flush_block_only(s, true); + if (s.strm.avail_out === 0) { + return BS_FINISH_STARTED; + } + return BS_FINISH_DONE; + } + if (s.last_lit) { + flush_block_only(s, false); + if (s.strm.avail_out === 0) { + return BS_NEED_MORE; + } + } + return BS_BLOCK_DONE; + } + function Config(good_length, max_lazy, nice_length, max_chain, func) { + this.good_length = good_length; + this.max_lazy = max_lazy; + this.nice_length = nice_length; + this.max_chain = max_chain; + this.func = func; + } + var configuration_table; + configuration_table = [ + /* good lazy nice chain */ + new Config(0, 0, 0, 0, deflate_stored), + /* 0 store only */ + new Config(4, 4, 8, 4, deflate_fast), + /* 1 max speed, no lazy matches */ + new Config(4, 5, 16, 8, deflate_fast), + /* 2 */ + new Config(4, 6, 32, 32, deflate_fast), + /* 3 */ + new Config(4, 4, 16, 16, deflate_slow), + /* 4 lazy matches */ + new Config(8, 16, 32, 32, deflate_slow), + /* 5 */ + new Config(8, 16, 128, 128, deflate_slow), + /* 6 */ + new Config(8, 32, 128, 256, deflate_slow), + /* 7 */ + new Config(32, 128, 258, 1024, deflate_slow), + /* 8 */ + new Config(32, 258, 258, 4096, deflate_slow) + /* 9 max compression */ + ]; + function lm_init(s) { + s.window_size = 2 * s.w_size; + zero(s.head); + s.max_lazy_match = configuration_table[s.level].max_lazy; + s.good_match = configuration_table[s.level].good_length; + s.nice_match = configuration_table[s.level].nice_length; + s.max_chain_length = configuration_table[s.level].max_chain; + s.strstart = 0; + s.block_start = 0; + s.lookahead = 0; + s.insert = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + s.ins_h = 0; + } + function DeflateState() { + this.strm = null; + this.status = 0; + this.pending_buf = null; + this.pending_buf_size = 0; + this.pending_out = 0; + this.pending = 0; + this.wrap = 0; + this.gzhead = null; + this.gzindex = 0; + this.method = Z_DEFLATED; + this.last_flush = -1; + this.w_size = 0; + this.w_bits = 0; + this.w_mask = 0; + this.window = null; + this.window_size = 0; + this.prev = null; + this.head = null; + this.ins_h = 0; + this.hash_size = 0; + this.hash_bits = 0; + this.hash_mask = 0; + this.hash_shift = 0; + this.block_start = 0; + this.match_length = 0; + this.prev_match = 0; + this.match_available = 0; + this.strstart = 0; + this.match_start = 0; + this.lookahead = 0; + this.prev_length = 0; + this.max_chain_length = 0; + this.max_lazy_match = 0; + this.level = 0; + this.strategy = 0; + this.good_match = 0; + this.nice_match = 0; + this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2); + this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2); + this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2); + zero(this.dyn_ltree); + zero(this.dyn_dtree); + zero(this.bl_tree); + this.l_desc = null; + this.d_desc = null; + this.bl_desc = null; + this.bl_count = new utils.Buf16(MAX_BITS + 1); + this.heap = new utils.Buf16(2 * L_CODES + 1); + zero(this.heap); + this.heap_len = 0; + this.heap_max = 0; + this.depth = new utils.Buf16(2 * L_CODES + 1); + zero(this.depth); + this.l_buf = 0; + this.lit_bufsize = 0; + this.last_lit = 0; + this.d_buf = 0; + this.opt_len = 0; + this.static_len = 0; + this.matches = 0; + this.insert = 0; + this.bi_buf = 0; + this.bi_valid = 0; + } + function deflateResetKeep(strm) { + var s; + if (!strm || !strm.state) { + return err(strm, Z_STREAM_ERROR); + } + strm.total_in = strm.total_out = 0; + strm.data_type = Z_UNKNOWN; + s = strm.state; + s.pending = 0; + s.pending_out = 0; + if (s.wrap < 0) { + s.wrap = -s.wrap; + } + s.status = s.wrap ? INIT_STATE : BUSY_STATE; + strm.adler = s.wrap === 2 ? 0 : 1; + s.last_flush = Z_NO_FLUSH; + trees._tr_init(s); + return Z_OK; + } + function deflateReset(strm) { + var ret = deflateResetKeep(strm); + if (ret === Z_OK) { + lm_init(strm.state); + } + return ret; + } + function deflateSetHeader(strm, head) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + if (strm.state.wrap !== 2) { + return Z_STREAM_ERROR; + } + strm.state.gzhead = head; + return Z_OK; + } + function deflateInit2(strm, level, method2, windowBits, memLevel, strategy) { + if (!strm) { + return Z_STREAM_ERROR; + } + var wrap = 1; + if (level === Z_DEFAULT_COMPRESSION) { + level = 6; + } + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else if (windowBits > 15) { + wrap = 2; + windowBits -= 16; + } + if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method2 !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) { + return err(strm, Z_STREAM_ERROR); + } + if (windowBits === 8) { + windowBits = 9; + } + var s = new DeflateState(); + strm.state = s; + s.strm = strm; + s.wrap = wrap; + s.gzhead = null; + s.w_bits = windowBits; + s.w_size = 1 << s.w_bits; + s.w_mask = s.w_size - 1; + s.hash_bits = memLevel + 7; + s.hash_size = 1 << s.hash_bits; + s.hash_mask = s.hash_size - 1; + s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH); + s.window = new utils.Buf8(s.w_size * 2); + s.head = new utils.Buf16(s.hash_size); + s.prev = new utils.Buf16(s.w_size); + s.lit_bufsize = 1 << memLevel + 6; + s.pending_buf_size = s.lit_bufsize * 4; + s.pending_buf = new utils.Buf8(s.pending_buf_size); + s.d_buf = 1 * s.lit_bufsize; + s.l_buf = (1 + 2) * s.lit_bufsize; + s.level = level; + s.strategy = strategy; + s.method = method2; + return deflateReset(strm); + } + function deflateInit(strm, level) { + return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY); + } + function deflate2(strm, flush2) { + var old_flush, s; + var beg, val; + if (!strm || !strm.state || flush2 > Z_BLOCK || flush2 < 0) { + return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR; + } + s = strm.state; + if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush2 !== Z_FINISH) { + return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR); + } + s.strm = strm; + old_flush = s.last_flush; + s.last_flush = flush2; + if (s.status === INIT_STATE) { + if (s.wrap === 2) { + strm.adler = 0; + put_byte(s, 31); + put_byte(s, 139); + put_byte(s, 8); + if (!s.gzhead) { + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, 0); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, OS_CODE); + s.status = BUSY_STATE; + } else { + put_byte( + s, + (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16) + ); + put_byte(s, s.gzhead.time & 255); + put_byte(s, s.gzhead.time >> 8 & 255); + put_byte(s, s.gzhead.time >> 16 & 255); + put_byte(s, s.gzhead.time >> 24 & 255); + put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0); + put_byte(s, s.gzhead.os & 255); + if (s.gzhead.extra && s.gzhead.extra.length) { + put_byte(s, s.gzhead.extra.length & 255); + put_byte(s, s.gzhead.extra.length >> 8 & 255); + } + if (s.gzhead.hcrc) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending, 0); + } + s.gzindex = 0; + s.status = EXTRA_STATE; + } + } else { + var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8; + var level_flags = -1; + if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) { + level_flags = 0; + } else if (s.level < 6) { + level_flags = 1; + } else if (s.level === 6) { + level_flags = 2; + } else { + level_flags = 3; + } + header |= level_flags << 6; + if (s.strstart !== 0) { + header |= PRESET_DICT; + } + header += 31 - header % 31; + s.status = BUSY_STATE; + putShortMSB(s, header); + if (s.strstart !== 0) { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + strm.adler = 1; + } + } + if (s.status === EXTRA_STATE) { + if (s.gzhead.extra) { + beg = s.pending; + while (s.gzindex < (s.gzhead.extra.length & 65535)) { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + break; + } + } + put_byte(s, s.gzhead.extra[s.gzindex] & 255); + s.gzindex++; + } + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (s.gzindex === s.gzhead.extra.length) { + s.gzindex = 0; + s.status = NAME_STATE; + } + } else { + s.status = NAME_STATE; + } + } + if (s.status === NAME_STATE) { + if (s.gzhead.name) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.name.length) { + val = s.gzhead.name.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.gzindex = 0; + s.status = COMMENT_STATE; + } + } else { + s.status = COMMENT_STATE; + } + } + if (s.status === COMMENT_STATE) { + if (s.gzhead.comment) { + beg = s.pending; + do { + if (s.pending === s.pending_buf_size) { + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + flush_pending(strm); + beg = s.pending; + if (s.pending === s.pending_buf_size) { + val = 1; + break; + } + } + if (s.gzindex < s.gzhead.comment.length) { + val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255; + } else { + val = 0; + } + put_byte(s, val); + } while (val !== 0); + if (s.gzhead.hcrc && s.pending > beg) { + strm.adler = crc322(strm.adler, s.pending_buf, s.pending - beg, beg); + } + if (val === 0) { + s.status = HCRC_STATE; + } + } else { + s.status = HCRC_STATE; + } + } + if (s.status === HCRC_STATE) { + if (s.gzhead.hcrc) { + if (s.pending + 2 > s.pending_buf_size) { + flush_pending(strm); + } + if (s.pending + 2 <= s.pending_buf_size) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + strm.adler = 0; + s.status = BUSY_STATE; + } + } else { + s.status = BUSY_STATE; + } + } + if (s.pending !== 0) { + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } else if (strm.avail_in === 0 && rank(flush2) <= rank(old_flush) && flush2 !== Z_FINISH) { + return err(strm, Z_BUF_ERROR); + } + if (s.status === FINISH_STATE && strm.avail_in !== 0) { + return err(strm, Z_BUF_ERROR); + } + if (strm.avail_in !== 0 || s.lookahead !== 0 || flush2 !== Z_NO_FLUSH && s.status !== FINISH_STATE) { + var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush2) : s.strategy === Z_RLE ? deflate_rle(s, flush2) : configuration_table[s.level].func(s, flush2); + if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) { + s.status = FINISH_STATE; + } + if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) { + if (strm.avail_out === 0) { + s.last_flush = -1; + } + return Z_OK; + } + if (bstate === BS_BLOCK_DONE) { + if (flush2 === Z_PARTIAL_FLUSH) { + trees._tr_align(s); + } else if (flush2 !== Z_BLOCK) { + trees._tr_stored_block(s, 0, 0, false); + if (flush2 === Z_FULL_FLUSH) { + zero(s.head); + if (s.lookahead === 0) { + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + } + } + flush_pending(strm); + if (strm.avail_out === 0) { + s.last_flush = -1; + return Z_OK; + } + } + } + if (flush2 !== Z_FINISH) { + return Z_OK; + } + if (s.wrap <= 0) { + return Z_STREAM_END; + } + if (s.wrap === 2) { + put_byte(s, strm.adler & 255); + put_byte(s, strm.adler >> 8 & 255); + put_byte(s, strm.adler >> 16 & 255); + put_byte(s, strm.adler >> 24 & 255); + put_byte(s, strm.total_in & 255); + put_byte(s, strm.total_in >> 8 & 255); + put_byte(s, strm.total_in >> 16 & 255); + put_byte(s, strm.total_in >> 24 & 255); + } else { + putShortMSB(s, strm.adler >>> 16); + putShortMSB(s, strm.adler & 65535); + } + flush_pending(strm); + if (s.wrap > 0) { + s.wrap = -s.wrap; + } + return s.pending !== 0 ? Z_OK : Z_STREAM_END; + } + function deflateEnd(strm) { + var status2; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + status2 = strm.state.status; + if (status2 !== INIT_STATE && status2 !== EXTRA_STATE && status2 !== NAME_STATE && status2 !== COMMENT_STATE && status2 !== HCRC_STATE && status2 !== BUSY_STATE && status2 !== FINISH_STATE) { + return err(strm, Z_STREAM_ERROR); + } + strm.state = null; + return status2 === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK; + } + function deflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var s; + var str, n; + var wrap; + var avail; + var next; + var input; + var tmpDict; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + s = strm.state; + wrap = s.wrap; + if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) { + return Z_STREAM_ERROR; + } + if (wrap === 1) { + strm.adler = adler32(strm.adler, dictionary, dictLength, 0); + } + s.wrap = 0; + if (dictLength >= s.w_size) { + if (wrap === 0) { + zero(s.head); + s.strstart = 0; + s.block_start = 0; + s.insert = 0; + } + tmpDict = new utils.Buf8(s.w_size); + utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0); + dictionary = tmpDict; + dictLength = s.w_size; + } + avail = strm.avail_in; + next = strm.next_in; + input = strm.input; + strm.avail_in = dictLength; + strm.next_in = 0; + strm.input = dictionary; + fill_window(s); + while (s.lookahead >= MIN_MATCH) { + str = s.strstart; + n = s.lookahead - (MIN_MATCH - 1); + do { + s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask; + s.prev[str & s.w_mask] = s.head[s.ins_h]; + s.head[s.ins_h] = str; + str++; + } while (--n); + s.strstart = str; + s.lookahead = MIN_MATCH - 1; + fill_window(s); + } + s.strstart += s.lookahead; + s.block_start = s.strstart; + s.insert = s.lookahead; + s.lookahead = 0; + s.match_length = s.prev_length = MIN_MATCH - 1; + s.match_available = 0; + strm.next_in = next; + strm.input = input; + strm.avail_in = avail; + s.wrap = wrap; + return Z_OK; + } + exports2.deflateInit = deflateInit; + exports2.deflateInit2 = deflateInit2; + exports2.deflateReset = deflateReset; + exports2.deflateResetKeep = deflateResetKeep; + exports2.deflateSetHeader = deflateSetHeader; + exports2.deflate = deflate2; + exports2.deflateEnd = deflateEnd; + exports2.deflateSetDictionary = deflateSetDictionary; + exports2.deflateInfo = "pako deflate (from Nodeca project)"; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js +var require_strings = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var STR_APPLY_OK = true; + var STR_APPLY_UIA_OK = true; + try { + String.fromCharCode.apply(null, [0]); + } catch (__) { + STR_APPLY_OK = false; + } + try { + String.fromCharCode.apply(null, new Uint8Array(1)); + } catch (__) { + STR_APPLY_UIA_OK = false; + } + var _utf8len = new utils.Buf8(256); + for (q = 0; q < 256; q++) { + _utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1; + } + var q; + _utf8len[254] = _utf8len[254] = 1; + exports2.string2buf = function(str) { + var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; + for (m_pos = 0; m_pos < str_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4; + } + buf = new utils.Buf8(buf_len); + for (i = 0, m_pos = 0; i < buf_len; m_pos++) { + c = str.charCodeAt(m_pos); + if ((c & 64512) === 55296 && m_pos + 1 < str_len) { + c2 = str.charCodeAt(m_pos + 1); + if ((c2 & 64512) === 56320) { + c = 65536 + (c - 55296 << 10) + (c2 - 56320); + m_pos++; + } + } + if (c < 128) { + buf[i++] = c; + } else if (c < 2048) { + buf[i++] = 192 | c >>> 6; + buf[i++] = 128 | c & 63; + } else if (c < 65536) { + buf[i++] = 224 | c >>> 12; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } else { + buf[i++] = 240 | c >>> 18; + buf[i++] = 128 | c >>> 12 & 63; + buf[i++] = 128 | c >>> 6 & 63; + buf[i++] = 128 | c & 63; + } + } + return buf; + }; + function buf2binstring(buf, len) { + if (len < 65534) { + if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) { + return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len)); + } + } + var result = ""; + for (var i = 0; i < len; i++) { + result += String.fromCharCode(buf[i]); + } + return result; + } + exports2.buf2binstring = function(buf) { + return buf2binstring(buf, buf.length); + }; + exports2.binstring2buf = function(str) { + var buf = new utils.Buf8(str.length); + for (var i = 0, len = buf.length; i < len; i++) { + buf[i] = str.charCodeAt(i); + } + return buf; + }; + exports2.buf2string = function(buf, max) { + var i, out, c, c_len; + var len = max || buf.length; + var utf16buf = new Array(len * 2); + for (out = 0, i = 0; i < len; ) { + c = buf[i++]; + if (c < 128) { + utf16buf[out++] = c; + continue; + } + c_len = _utf8len[c]; + if (c_len > 4) { + utf16buf[out++] = 65533; + i += c_len - 1; + continue; + } + c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7; + while (c_len > 1 && i < len) { + c = c << 6 | buf[i++] & 63; + c_len--; + } + if (c_len > 1) { + utf16buf[out++] = 65533; + continue; + } + if (c < 65536) { + utf16buf[out++] = c; + } else { + c -= 65536; + utf16buf[out++] = 55296 | c >> 10 & 1023; + utf16buf[out++] = 56320 | c & 1023; + } + } + return buf2binstring(utf16buf, out); + }; + exports2.utf8border = function(buf, max) { + var pos; + max = max || buf.length; + if (max > buf.length) { + max = buf.length; + } + pos = max - 1; + while (pos >= 0 && (buf[pos] & 192) === 128) { + pos--; + } + if (pos < 0) { + return max; + } + if (pos === 0) { + return max; + } + return pos + _utf8len[buf[pos]] > max ? pos : max; + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js +var require_zstream = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function ZStream() { + this.input = null; + this.next_in = 0; + this.avail_in = 0; + this.total_in = 0; + this.output = null; + this.next_out = 0; + this.avail_out = 0; + this.total_out = 0; + this.msg = ""; + this.state = null; + this.data_type = 2; + this.adler = 0; + } + module2.exports = ZStream; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js +var require_deflate2 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var zlib_deflate = require_deflate(); + var utils = require_common(); + var strings = require_strings(); + var msg = require_messages(); + var ZStream = require_zstream(); + var toString = Object.prototype.toString; + var Z_NO_FLUSH = 0; + var Z_FINISH = 4; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_SYNC_FLUSH = 2; + var Z_DEFAULT_COMPRESSION = -1; + var Z_DEFAULT_STRATEGY = 0; + var Z_DEFLATED = 8; + function Deflate(options) { + if (!(this instanceof Deflate)) return new Deflate(options); + this.options = utils.assign({ + level: Z_DEFAULT_COMPRESSION, + method: Z_DEFLATED, + chunkSize: 16384, + windowBits: 15, + memLevel: 8, + strategy: Z_DEFAULT_STRATEGY, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits > 0) { + opt.windowBits = -opt.windowBits; + } else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) { + opt.windowBits += 16; + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_deflate.deflateInit2( + this.strm, + opt.level, + opt.method, + opt.windowBits, + opt.memLevel, + opt.strategy + ); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + if (opt.header) { + zlib_deflate.deflateSetHeader(this.strm, opt.header); + } + if (opt.dictionary) { + var dict; + if (typeof opt.dictionary === "string") { + dict = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + dict = new Uint8Array(opt.dictionary); + } else { + dict = opt.dictionary; + } + status2 = zlib_deflate.deflateSetDictionary(this.strm, dict); + if (status2 !== Z_OK) { + throw new Error(msg[status2]); + } + this._dict_set = true; + } + } + Deflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var status2, _mode; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.string2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_deflate.deflate(strm, _mode); + if (status2 !== Z_STREAM_END && status2 !== Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out))); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== Z_STREAM_END); + if (_mode === Z_FINISH) { + status2 = zlib_deflate.deflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === Z_OK; + } + if (_mode === Z_SYNC_FLUSH) { + this.onEnd(Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Deflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Deflate.prototype.onEnd = function(status2) { + if (status2 === Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function deflate2(input, options) { + var deflator = new Deflate(options); + deflator.push(input, true); + if (deflator.err) { + throw deflator.msg || msg[deflator.err]; + } + return deflator.result; + } + function deflateRaw(input, options) { + options = options || {}; + options.raw = true; + return deflate2(input, options); + } + function gzip(input, options) { + options = options || {}; + options.gzip = true; + return deflate2(input, options); + } + exports2.Deflate = Deflate; + exports2.deflate = deflate2; + exports2.deflateRaw = deflateRaw; + exports2.gzip = gzip; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js +var require_inffast = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var BAD = 30; + var TYPE = 12; + module2.exports = function inflate_fast(strm, start) { + var state; + var _in; + var last2; + var _out; + var beg; + var end; + var dmax; + var wsize; + var whave; + var wnext; + var s_window; + var hold; + var bits; + var lcode; + var dcode; + var lmask; + var dmask; + var here; + var op; + var len; + var dist; + var from; + var from_source; + var input, output; + state = strm.state; + _in = strm.next_in; + input = strm.input; + last2 = _in + (strm.avail_in - 5); + _out = strm.next_out; + output = strm.output; + beg = _out - (start - strm.avail_out); + end = _out + (strm.avail_out - 257); + dmax = state.dmax; + wsize = state.wsize; + whave = state.whave; + wnext = state.wnext; + s_window = state.window; + hold = state.hold; + bits = state.bits; + lcode = state.lencode; + dcode = state.distcode; + lmask = (1 << state.lenbits) - 1; + dmask = (1 << state.distbits) - 1; + top: + do { + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = lcode[hold & lmask]; + dolen: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op === 0) { + output[_out++] = here & 65535; + } else if (op & 16) { + len = here & 65535; + op &= 15; + if (op) { + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + len += hold & (1 << op) - 1; + hold >>>= op; + bits -= op; + } + if (bits < 15) { + hold += input[_in++] << bits; + bits += 8; + hold += input[_in++] << bits; + bits += 8; + } + here = dcode[hold & dmask]; + dodist: + for (; ; ) { + op = here >>> 24; + hold >>>= op; + bits -= op; + op = here >>> 16 & 255; + if (op & 16) { + dist = here & 65535; + op &= 15; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + if (bits < op) { + hold += input[_in++] << bits; + bits += 8; + } + } + dist += hold & (1 << op) - 1; + if (dist > dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + hold >>>= op; + bits -= op; + op = _out - beg; + if (dist > op) { + op = dist - op; + if (op > whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break top; + } + } + from = 0; + from_source = s_window; + if (wnext === 0) { + from += wsize - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } else if (wnext < op) { + from += wsize + wnext - op; + op -= wnext; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = 0; + if (wnext < len) { + op = wnext; + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + } else { + from += wnext - op; + if (op < len) { + len -= op; + do { + output[_out++] = s_window[from++]; + } while (--op); + from = _out - dist; + from_source = output; + } + } + while (len > 2) { + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + output[_out++] = from_source[from++]; + len -= 3; + } + if (len) { + output[_out++] = from_source[from++]; + if (len > 1) { + output[_out++] = from_source[from++]; + } + } + } else { + from = _out - dist; + do { + output[_out++] = output[from++]; + output[_out++] = output[from++]; + output[_out++] = output[from++]; + len -= 3; + } while (len > 2); + if (len) { + output[_out++] = output[from++]; + if (len > 1) { + output[_out++] = output[from++]; + } + } + } + } else if ((op & 64) === 0) { + here = dcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dodist; + } else { + strm.msg = "invalid distance code"; + state.mode = BAD; + break top; + } + break; + } + } else if ((op & 64) === 0) { + here = lcode[(here & 65535) + (hold & (1 << op) - 1)]; + continue dolen; + } else if (op & 32) { + state.mode = TYPE; + break top; + } else { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break top; + } + break; + } + } while (_in < last2 && _out < end); + len = bits >> 3; + _in -= len; + bits -= len << 3; + hold &= (1 << bits) - 1; + strm.next_in = _in; + strm.next_out = _out; + strm.avail_in = _in < last2 ? 5 + (last2 - _in) : 5 - (_in - last2); + strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end); + state.hold = hold; + state.bits = bits; + return; + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js +var require_inftrees = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var MAXBITS = 15; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var lbase = [ + /* Length codes 257..285 base */ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 13, + 15, + 17, + 19, + 23, + 27, + 31, + 35, + 43, + 51, + 59, + 67, + 83, + 99, + 115, + 131, + 163, + 195, + 227, + 258, + 0, + 0 + ]; + var lext = [ + /* Length codes 257..285 extra */ + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 16, + 17, + 17, + 17, + 17, + 18, + 18, + 18, + 18, + 19, + 19, + 19, + 19, + 20, + 20, + 20, + 20, + 21, + 21, + 21, + 21, + 16, + 72, + 78 + ]; + var dbase = [ + /* Distance codes 0..29 base */ + 1, + 2, + 3, + 4, + 5, + 7, + 9, + 13, + 17, + 25, + 33, + 49, + 65, + 97, + 129, + 193, + 257, + 385, + 513, + 769, + 1025, + 1537, + 2049, + 3073, + 4097, + 6145, + 8193, + 12289, + 16385, + 24577, + 0, + 0 + ]; + var dext = [ + /* Distance codes 0..29 extra */ + 16, + 16, + 16, + 16, + 17, + 17, + 18, + 18, + 19, + 19, + 20, + 20, + 21, + 21, + 22, + 22, + 23, + 23, + 24, + 24, + 25, + 25, + 26, + 26, + 27, + 27, + 28, + 28, + 29, + 29, + 64, + 64 + ]; + module2.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) { + var bits = opts.bits; + var len = 0; + var sym = 0; + var min = 0, max = 0; + var root2 = 0; + var curr = 0; + var drop = 0; + var left = 0; + var used = 0; + var huff = 0; + var incr; + var fill; + var low; + var mask; + var next; + var base = null; + var base_index = 0; + var end; + var count = new utils.Buf16(MAXBITS + 1); + var offs = new utils.Buf16(MAXBITS + 1); + var extra = null; + var extra_index = 0; + var here_bits, here_op, here_val; + for (len = 0; len <= MAXBITS; len++) { + count[len] = 0; + } + for (sym = 0; sym < codes; sym++) { + count[lens[lens_index + sym]]++; + } + root2 = bits; + for (max = MAXBITS; max >= 1; max--) { + if (count[max] !== 0) { + break; + } + } + if (root2 > max) { + root2 = max; + } + if (max === 0) { + table[table_index++] = 1 << 24 | 64 << 16 | 0; + table[table_index++] = 1 << 24 | 64 << 16 | 0; + opts.bits = 1; + return 0; + } + for (min = 1; min < max; min++) { + if (count[min] !== 0) { + break; + } + } + if (root2 < min) { + root2 = min; + } + left = 1; + for (len = 1; len <= MAXBITS; len++) { + left <<= 1; + left -= count[len]; + if (left < 0) { + return -1; + } + } + if (left > 0 && (type === CODES || max !== 1)) { + return -1; + } + offs[1] = 0; + for (len = 1; len < MAXBITS; len++) { + offs[len + 1] = offs[len] + count[len]; + } + for (sym = 0; sym < codes; sym++) { + if (lens[lens_index + sym] !== 0) { + work[offs[lens[lens_index + sym]]++] = sym; + } + } + if (type === CODES) { + base = extra = work; + end = 19; + } else if (type === LENS) { + base = lbase; + base_index -= 257; + extra = lext; + extra_index -= 257; + end = 256; + } else { + base = dbase; + extra = dext; + end = -1; + } + huff = 0; + sym = 0; + len = min; + next = table_index; + curr = root2; + drop = 0; + low = -1; + used = 1 << root2; + mask = used - 1; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + for (; ; ) { + here_bits = len - drop; + if (work[sym] < end) { + here_op = 0; + here_val = work[sym]; + } else if (work[sym] > end) { + here_op = extra[extra_index + work[sym]]; + here_val = base[base_index + work[sym]]; + } else { + here_op = 32 + 64; + here_val = 0; + } + incr = 1 << len - drop; + fill = 1 << curr; + min = fill; + do { + fill -= incr; + table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0; + } while (fill !== 0); + incr = 1 << len - 1; + while (huff & incr) { + incr >>= 1; + } + if (incr !== 0) { + huff &= incr - 1; + huff += incr; + } else { + huff = 0; + } + sym++; + if (--count[len] === 0) { + if (len === max) { + break; + } + len = lens[lens_index + work[sym]]; + } + if (len > root2 && (huff & mask) !== low) { + if (drop === 0) { + drop = root2; + } + next += min; + curr = len - drop; + left = 1 << curr; + while (curr + drop < max) { + left -= count[curr + drop]; + if (left <= 0) { + break; + } + curr++; + left <<= 1; + } + used += 1 << curr; + if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) { + return 1; + } + low = huff & mask; + table[low] = root2 << 24 | curr << 16 | next - table_index | 0; + } + } + if (huff !== 0) { + table[next + huff] = len - drop << 24 | 64 << 16 | 0; + } + opts.bits = root2; + return 0; + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js +var require_inflate = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var utils = require_common(); + var adler32 = require_adler32(); + var crc322 = require_crc322(); + var inflate_fast = require_inffast(); + var inflate_table = require_inftrees(); + var CODES = 0; + var LENS = 1; + var DISTS = 2; + var Z_FINISH = 4; + var Z_BLOCK = 5; + var Z_TREES = 6; + var Z_OK = 0; + var Z_STREAM_END = 1; + var Z_NEED_DICT = 2; + var Z_STREAM_ERROR = -2; + var Z_DATA_ERROR = -3; + var Z_MEM_ERROR = -4; + var Z_BUF_ERROR = -5; + var Z_DEFLATED = 8; + var HEAD = 1; + var FLAGS = 2; + var TIME = 3; + var OS = 4; + var EXLEN = 5; + var EXTRA2 = 6; + var NAME = 7; + var COMMENT = 8; + var HCRC = 9; + var DICTID = 10; + var DICT = 11; + var TYPE = 12; + var TYPEDO = 13; + var STORED = 14; + var COPY_ = 15; + var COPY = 16; + var TABLE = 17; + var LENLENS = 18; + var CODELENS = 19; + var LEN_ = 20; + var LEN = 21; + var LENEXT = 22; + var DIST = 23; + var DISTEXT = 24; + var MATCH = 25; + var LIT = 26; + var CHECK = 27; + var LENGTH = 28; + var DONE = 29; + var BAD = 30; + var MEM = 31; + var SYNC = 32; + var ENOUGH_LENS = 852; + var ENOUGH_DISTS = 592; + var MAX_WBITS = 15; + var DEF_WBITS = MAX_WBITS; + function zswap32(q) { + return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24); + } + function InflateState() { + this.mode = 0; + this.last = false; + this.wrap = 0; + this.havedict = false; + this.flags = 0; + this.dmax = 0; + this.check = 0; + this.total = 0; + this.head = null; + this.wbits = 0; + this.wsize = 0; + this.whave = 0; + this.wnext = 0; + this.window = null; + this.hold = 0; + this.bits = 0; + this.length = 0; + this.offset = 0; + this.extra = 0; + this.lencode = null; + this.distcode = null; + this.lenbits = 0; + this.distbits = 0; + this.ncode = 0; + this.nlen = 0; + this.ndist = 0; + this.have = 0; + this.next = null; + this.lens = new utils.Buf16(320); + this.work = new utils.Buf16(288); + this.lendyn = null; + this.distdyn = null; + this.sane = 0; + this.back = 0; + this.was = 0; + } + function inflateResetKeep(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + strm.total_in = strm.total_out = state.total = 0; + strm.msg = ""; + if (state.wrap) { + strm.adler = state.wrap & 1; + } + state.mode = HEAD; + state.last = 0; + state.havedict = 0; + state.dmax = 32768; + state.head = null; + state.hold = 0; + state.bits = 0; + state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS); + state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS); + state.sane = 1; + state.back = -1; + return Z_OK; + } + function inflateReset(strm) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + state.wsize = 0; + state.whave = 0; + state.wnext = 0; + return inflateResetKeep(strm); + } + function inflateReset2(strm, windowBits) { + var wrap; + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (windowBits < 0) { + wrap = 0; + windowBits = -windowBits; + } else { + wrap = (windowBits >> 4) + 1; + if (windowBits < 48) { + windowBits &= 15; + } + } + if (windowBits && (windowBits < 8 || windowBits > 15)) { + return Z_STREAM_ERROR; + } + if (state.window !== null && state.wbits !== windowBits) { + state.window = null; + } + state.wrap = wrap; + state.wbits = windowBits; + return inflateReset(strm); + } + function inflateInit2(strm, windowBits) { + var ret; + var state; + if (!strm) { + return Z_STREAM_ERROR; + } + state = new InflateState(); + strm.state = state; + state.window = null; + ret = inflateReset2(strm, windowBits); + if (ret !== Z_OK) { + strm.state = null; + } + return ret; + } + function inflateInit(strm) { + return inflateInit2(strm, DEF_WBITS); + } + var virgin = true; + var lenfix; + var distfix; + function fixedtables(state) { + if (virgin) { + var sym; + lenfix = new utils.Buf32(512); + distfix = new utils.Buf32(32); + sym = 0; + while (sym < 144) { + state.lens[sym++] = 8; + } + while (sym < 256) { + state.lens[sym++] = 9; + } + while (sym < 280) { + state.lens[sym++] = 7; + } + while (sym < 288) { + state.lens[sym++] = 8; + } + inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 }); + sym = 0; + while (sym < 32) { + state.lens[sym++] = 5; + } + inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 }); + virgin = false; + } + state.lencode = lenfix; + state.lenbits = 9; + state.distcode = distfix; + state.distbits = 5; + } + function updatewindow(strm, src, end, copy2) { + var dist; + var state = strm.state; + if (state.window === null) { + state.wsize = 1 << state.wbits; + state.wnext = 0; + state.whave = 0; + state.window = new utils.Buf8(state.wsize); + } + if (copy2 >= state.wsize) { + utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0); + state.wnext = 0; + state.whave = state.wsize; + } else { + dist = state.wsize - state.wnext; + if (dist > copy2) { + dist = copy2; + } + utils.arraySet(state.window, src, end - copy2, dist, state.wnext); + copy2 -= dist; + if (copy2) { + utils.arraySet(state.window, src, end - copy2, copy2, 0); + state.wnext = copy2; + state.whave = state.wsize; + } else { + state.wnext += dist; + if (state.wnext === state.wsize) { + state.wnext = 0; + } + if (state.whave < state.wsize) { + state.whave += dist; + } + } + } + return 0; + } + function inflate2(strm, flush2) { + var state; + var input, output; + var next; + var put; + var have, left; + var hold; + var bits; + var _in, _out; + var copy2; + var from; + var from_source; + var here = 0; + var here_bits, here_op, here_val; + var last_bits, last_op, last_val; + var len; + var ret; + var hbuf = new utils.Buf8(4); + var opts; + var n; + var order = ( + /* permutation of code lengths */ + [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15] + ); + if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.mode === TYPE) { + state.mode = TYPEDO; + } + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + _in = have; + _out = left; + ret = Z_OK; + inf_leave: + for (; ; ) { + switch (state.mode) { + case HEAD: + if (state.wrap === 0) { + state.mode = TYPEDO; + break; + } + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.wrap & 2 && hold === 35615) { + state.check = 0; + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + hold = 0; + bits = 0; + state.mode = FLAGS; + break; + } + state.flags = 0; + if (state.head) { + state.head.done = false; + } + if (!(state.wrap & 1) || /* check if zlib header allowed */ + (((hold & 255) << 8) + (hold >> 8)) % 31) { + strm.msg = "incorrect header check"; + state.mode = BAD; + break; + } + if ((hold & 15) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + hold >>>= 4; + bits -= 4; + len = (hold & 15) + 8; + if (state.wbits === 0) { + state.wbits = len; + } else if (len > state.wbits) { + strm.msg = "invalid window size"; + state.mode = BAD; + break; + } + state.dmax = 1 << len; + strm.adler = state.check = 1; + state.mode = hold & 512 ? DICTID : TYPE; + hold = 0; + bits = 0; + break; + case FLAGS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.flags = hold; + if ((state.flags & 255) !== Z_DEFLATED) { + strm.msg = "unknown compression method"; + state.mode = BAD; + break; + } + if (state.flags & 57344) { + strm.msg = "unknown header flags set"; + state.mode = BAD; + break; + } + if (state.head) { + state.head.text = hold >> 8 & 1; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = TIME; + case TIME: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.time = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + hbuf[2] = hold >>> 16 & 255; + hbuf[3] = hold >>> 24 & 255; + state.check = crc322(state.check, hbuf, 4, 0); + } + hold = 0; + bits = 0; + state.mode = OS; + case OS: + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (state.head) { + state.head.xflags = hold & 255; + state.head.os = hold >> 8; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + state.mode = EXLEN; + case EXLEN: + if (state.flags & 1024) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length = hold; + if (state.head) { + state.head.extra_len = hold; + } + if (state.flags & 512) { + hbuf[0] = hold & 255; + hbuf[1] = hold >>> 8 & 255; + state.check = crc322(state.check, hbuf, 2, 0); + } + hold = 0; + bits = 0; + } else if (state.head) { + state.head.extra = null; + } + state.mode = EXTRA2; + case EXTRA2: + if (state.flags & 1024) { + copy2 = state.length; + if (copy2 > have) { + copy2 = have; + } + if (copy2) { + if (state.head) { + len = state.head.extra_len - state.length; + if (!state.head.extra) { + state.head.extra = new Array(state.head.extra_len); + } + utils.arraySet( + state.head.extra, + input, + next, + // extra field is limited to 65536 bytes + // - no need for additional size check + copy2, + /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/ + len + ); + } + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + state.length -= copy2; + } + if (state.length) { + break inf_leave; + } + } + state.length = 0; + state.mode = NAME; + case NAME: + if (state.flags & 2048) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.name += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.name = null; + } + state.length = 0; + state.mode = COMMENT; + case COMMENT: + if (state.flags & 4096) { + if (have === 0) { + break inf_leave; + } + copy2 = 0; + do { + len = input[next + copy2++]; + if (state.head && len && state.length < 65536) { + state.head.comment += String.fromCharCode(len); + } + } while (len && copy2 < have); + if (state.flags & 512) { + state.check = crc322(state.check, input, copy2, next); + } + have -= copy2; + next += copy2; + if (len) { + break inf_leave; + } + } else if (state.head) { + state.head.comment = null; + } + state.mode = HCRC; + case HCRC: + if (state.flags & 512) { + while (bits < 16) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.check & 65535)) { + strm.msg = "header crc mismatch"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + if (state.head) { + state.head.hcrc = state.flags >> 9 & 1; + state.head.done = true; + } + strm.adler = state.check = 0; + state.mode = TYPE; + break; + case DICTID: + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + strm.adler = state.check = zswap32(hold); + hold = 0; + bits = 0; + state.mode = DICT; + case DICT: + if (state.havedict === 0) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + return Z_NEED_DICT; + } + strm.adler = state.check = 1; + state.mode = TYPE; + case TYPE: + if (flush2 === Z_BLOCK || flush2 === Z_TREES) { + break inf_leave; + } + case TYPEDO: + if (state.last) { + hold >>>= bits & 7; + bits -= bits & 7; + state.mode = CHECK; + break; + } + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.last = hold & 1; + hold >>>= 1; + bits -= 1; + switch (hold & 3) { + case 0: + state.mode = STORED; + break; + case 1: + fixedtables(state); + state.mode = LEN_; + if (flush2 === Z_TREES) { + hold >>>= 2; + bits -= 2; + break inf_leave; + } + break; + case 2: + state.mode = TABLE; + break; + case 3: + strm.msg = "invalid block type"; + state.mode = BAD; + } + hold >>>= 2; + bits -= 2; + break; + case STORED: + hold >>>= bits & 7; + bits -= bits & 7; + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((hold & 65535) !== (hold >>> 16 ^ 65535)) { + strm.msg = "invalid stored block lengths"; + state.mode = BAD; + break; + } + state.length = hold & 65535; + hold = 0; + bits = 0; + state.mode = COPY_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case COPY_: + state.mode = COPY; + case COPY: + copy2 = state.length; + if (copy2) { + if (copy2 > have) { + copy2 = have; + } + if (copy2 > left) { + copy2 = left; + } + if (copy2 === 0) { + break inf_leave; + } + utils.arraySet(output, input, next, copy2, put); + have -= copy2; + next += copy2; + left -= copy2; + put += copy2; + state.length -= copy2; + break; + } + state.mode = TYPE; + break; + case TABLE: + while (bits < 14) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.nlen = (hold & 31) + 257; + hold >>>= 5; + bits -= 5; + state.ndist = (hold & 31) + 1; + hold >>>= 5; + bits -= 5; + state.ncode = (hold & 15) + 4; + hold >>>= 4; + bits -= 4; + if (state.nlen > 286 || state.ndist > 30) { + strm.msg = "too many length or distance symbols"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = LENLENS; + case LENLENS: + while (state.have < state.ncode) { + while (bits < 3) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.lens[order[state.have++]] = hold & 7; + hold >>>= 3; + bits -= 3; + } + while (state.have < 19) { + state.lens[order[state.have++]] = 0; + } + state.lencode = state.lendyn; + state.lenbits = 7; + opts = { bits: state.lenbits }; + ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid code lengths set"; + state.mode = BAD; + break; + } + state.have = 0; + state.mode = CODELENS; + case CODELENS: + while (state.have < state.nlen + state.ndist) { + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_val < 16) { + hold >>>= here_bits; + bits -= here_bits; + state.lens[state.have++] = here_val; + } else { + if (here_val === 16) { + n = here_bits + 2; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + if (state.have === 0) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + len = state.lens[state.have - 1]; + copy2 = 3 + (hold & 3); + hold >>>= 2; + bits -= 2; + } else if (here_val === 17) { + n = here_bits + 3; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 3 + (hold & 7); + hold >>>= 3; + bits -= 3; + } else { + n = here_bits + 7; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= here_bits; + bits -= here_bits; + len = 0; + copy2 = 11 + (hold & 127); + hold >>>= 7; + bits -= 7; + } + if (state.have + copy2 > state.nlen + state.ndist) { + strm.msg = "invalid bit length repeat"; + state.mode = BAD; + break; + } + while (copy2--) { + state.lens[state.have++] = len; + } + } + } + if (state.mode === BAD) { + break; + } + if (state.lens[256] === 0) { + strm.msg = "invalid code -- missing end-of-block"; + state.mode = BAD; + break; + } + state.lenbits = 9; + opts = { bits: state.lenbits }; + ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); + state.lenbits = opts.bits; + if (ret) { + strm.msg = "invalid literal/lengths set"; + state.mode = BAD; + break; + } + state.distbits = 6; + state.distcode = state.distdyn; + opts = { bits: state.distbits }; + ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); + state.distbits = opts.bits; + if (ret) { + strm.msg = "invalid distances set"; + state.mode = BAD; + break; + } + state.mode = LEN_; + if (flush2 === Z_TREES) { + break inf_leave; + } + case LEN_: + state.mode = LEN; + case LEN: + if (have >= 6 && left >= 258) { + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + inflate_fast(strm, _out); + put = strm.next_out; + output = strm.output; + left = strm.avail_out; + next = strm.next_in; + input = strm.input; + have = strm.avail_in; + hold = state.hold; + bits = state.bits; + if (state.mode === TYPE) { + state.back = -1; + } + break; + } + state.back = 0; + for (; ; ) { + here = state.lencode[hold & (1 << state.lenbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (here_op && (here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + state.length = here_val; + if (here_op === 0) { + state.mode = LIT; + break; + } + if (here_op & 32) { + state.back = -1; + state.mode = TYPE; + break; + } + if (here_op & 64) { + strm.msg = "invalid literal/length code"; + state.mode = BAD; + break; + } + state.extra = here_op & 15; + state.mode = LENEXT; + case LENEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.length += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + state.was = state.length; + state.mode = DIST; + case DIST: + for (; ; ) { + here = state.distcode[hold & (1 << state.distbits) - 1]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if ((here_op & 240) === 0) { + last_bits = here_bits; + last_op = here_op; + last_val = here_val; + for (; ; ) { + here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)]; + here_bits = here >>> 24; + here_op = here >>> 16 & 255; + here_val = here & 65535; + if (last_bits + here_bits <= bits) { + break; + } + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + hold >>>= last_bits; + bits -= last_bits; + state.back += last_bits; + } + hold >>>= here_bits; + bits -= here_bits; + state.back += here_bits; + if (here_op & 64) { + strm.msg = "invalid distance code"; + state.mode = BAD; + break; + } + state.offset = here_val; + state.extra = here_op & 15; + state.mode = DISTEXT; + case DISTEXT: + if (state.extra) { + n = state.extra; + while (bits < n) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + state.offset += hold & (1 << state.extra) - 1; + hold >>>= state.extra; + bits -= state.extra; + state.back += state.extra; + } + if (state.offset > state.dmax) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + state.mode = MATCH; + case MATCH: + if (left === 0) { + break inf_leave; + } + copy2 = _out - left; + if (state.offset > copy2) { + copy2 = state.offset - copy2; + if (copy2 > state.whave) { + if (state.sane) { + strm.msg = "invalid distance too far back"; + state.mode = BAD; + break; + } + } + if (copy2 > state.wnext) { + copy2 -= state.wnext; + from = state.wsize - copy2; + } else { + from = state.wnext - copy2; + } + if (copy2 > state.length) { + copy2 = state.length; + } + from_source = state.window; + } else { + from_source = output; + from = put - state.offset; + copy2 = state.length; + } + if (copy2 > left) { + copy2 = left; + } + left -= copy2; + state.length -= copy2; + do { + output[put++] = from_source[from++]; + } while (--copy2); + if (state.length === 0) { + state.mode = LEN; + } + break; + case LIT: + if (left === 0) { + break inf_leave; + } + output[put++] = state.length; + left--; + state.mode = LEN; + break; + case CHECK: + if (state.wrap) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold |= input[next++] << bits; + bits += 8; + } + _out -= left; + strm.total_out += _out; + state.total += _out; + if (_out) { + strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/ + state.flags ? crc322(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out); + } + _out = left; + if ((state.flags ? hold : zswap32(hold)) !== state.check) { + strm.msg = "incorrect data check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = LENGTH; + case LENGTH: + if (state.wrap && state.flags) { + while (bits < 32) { + if (have === 0) { + break inf_leave; + } + have--; + hold += input[next++] << bits; + bits += 8; + } + if (hold !== (state.total & 4294967295)) { + strm.msg = "incorrect length check"; + state.mode = BAD; + break; + } + hold = 0; + bits = 0; + } + state.mode = DONE; + case DONE: + ret = Z_STREAM_END; + break inf_leave; + case BAD: + ret = Z_DATA_ERROR; + break inf_leave; + case MEM: + return Z_MEM_ERROR; + case SYNC: + default: + return Z_STREAM_ERROR; + } + } + strm.next_out = put; + strm.avail_out = left; + strm.next_in = next; + strm.avail_in = have; + state.hold = hold; + state.bits = bits; + if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush2 !== Z_FINISH)) { + if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) { + state.mode = MEM; + return Z_MEM_ERROR; + } + } + _in -= strm.avail_in; + _out -= strm.avail_out; + strm.total_in += _in; + strm.total_out += _out; + state.total += _out; + if (state.wrap && _out) { + strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/ + state.flags ? crc322(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out); + } + strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0); + if ((_in === 0 && _out === 0 || flush2 === Z_FINISH) && ret === Z_OK) { + ret = Z_BUF_ERROR; + } + return ret; + } + function inflateEnd(strm) { + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + var state = strm.state; + if (state.window) { + state.window = null; + } + strm.state = null; + return Z_OK; + } + function inflateGetHeader(strm, head) { + var state; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if ((state.wrap & 2) === 0) { + return Z_STREAM_ERROR; + } + state.head = head; + head.done = false; + return Z_OK; + } + function inflateSetDictionary(strm, dictionary) { + var dictLength = dictionary.length; + var state; + var dictid; + var ret; + if (!strm || !strm.state) { + return Z_STREAM_ERROR; + } + state = strm.state; + if (state.wrap !== 0 && state.mode !== DICT) { + return Z_STREAM_ERROR; + } + if (state.mode === DICT) { + dictid = 1; + dictid = adler32(dictid, dictionary, dictLength, 0); + if (dictid !== state.check) { + return Z_DATA_ERROR; + } + } + ret = updatewindow(strm, dictionary, dictLength, dictLength); + if (ret) { + state.mode = MEM; + return Z_MEM_ERROR; + } + state.havedict = 1; + return Z_OK; + } + exports2.inflateReset = inflateReset; + exports2.inflateReset2 = inflateReset2; + exports2.inflateResetKeep = inflateResetKeep; + exports2.inflateInit = inflateInit; + exports2.inflateInit2 = inflateInit2; + exports2.inflate = inflate2; + exports2.inflateEnd = inflateEnd; + exports2.inflateGetHeader = inflateGetHeader; + exports2.inflateSetDictionary = inflateSetDictionary; + exports2.inflateInfo = "pako inflate (from Nodeca project)"; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js +var require_constants = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = { + /* Allowed flush values; see deflate() and inflate() below for details */ + Z_NO_FLUSH: 0, + Z_PARTIAL_FLUSH: 1, + Z_SYNC_FLUSH: 2, + Z_FULL_FLUSH: 3, + Z_FINISH: 4, + Z_BLOCK: 5, + Z_TREES: 6, + /* Return codes for the compression/decompression functions. Negative values + * are errors, positive values are used for special but normal events. + */ + Z_OK: 0, + Z_STREAM_END: 1, + Z_NEED_DICT: 2, + Z_ERRNO: -1, + Z_STREAM_ERROR: -2, + Z_DATA_ERROR: -3, + //Z_MEM_ERROR: -4, + Z_BUF_ERROR: -5, + //Z_VERSION_ERROR: -6, + /* compression levels */ + Z_NO_COMPRESSION: 0, + Z_BEST_SPEED: 1, + Z_BEST_COMPRESSION: 9, + Z_DEFAULT_COMPRESSION: -1, + Z_FILTERED: 1, + Z_HUFFMAN_ONLY: 2, + Z_RLE: 3, + Z_FIXED: 4, + Z_DEFAULT_STRATEGY: 0, + /* Possible values of the data_type field (though see inflate()) */ + Z_BINARY: 0, + Z_TEXT: 1, + //Z_ASCII: 1, // = Z_TEXT (deprecated) + Z_UNKNOWN: 2, + /* The deflate compression method */ + Z_DEFLATED: 8 + //Z_NULL: null // Use -1 or null inline, depending on var type + }; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js +var require_gzheader = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function GZheader() { + this.text = 0; + this.time = 0; + this.xflags = 0; + this.os = 0; + this.extra = null; + this.extra_len = 0; + this.name = ""; + this.comment = ""; + this.hcrc = 0; + this.done = false; + } + module2.exports = GZheader; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js +var require_inflate2 = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var zlib_inflate = require_inflate(); + var utils = require_common(); + var strings = require_strings(); + var c = require_constants(); + var msg = require_messages(); + var ZStream = require_zstream(); + var GZheader = require_gzheader(); + var toString = Object.prototype.toString; + function Inflate(options) { + if (!(this instanceof Inflate)) return new Inflate(options); + this.options = utils.assign({ + chunkSize: 16384, + windowBits: 0, + to: "" + }, options || {}); + var opt = this.options; + if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) { + opt.windowBits = -opt.windowBits; + if (opt.windowBits === 0) { + opt.windowBits = -15; + } + } + if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) { + opt.windowBits += 32; + } + if (opt.windowBits > 15 && opt.windowBits < 48) { + if ((opt.windowBits & 15) === 0) { + opt.windowBits |= 15; + } + } + this.err = 0; + this.msg = ""; + this.ended = false; + this.chunks = []; + this.strm = new ZStream(); + this.strm.avail_out = 0; + var status2 = zlib_inflate.inflateInit2( + this.strm, + opt.windowBits + ); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + this.header = new GZheader(); + zlib_inflate.inflateGetHeader(this.strm, this.header); + if (opt.dictionary) { + if (typeof opt.dictionary === "string") { + opt.dictionary = strings.string2buf(opt.dictionary); + } else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") { + opt.dictionary = new Uint8Array(opt.dictionary); + } + if (opt.raw) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary); + if (status2 !== c.Z_OK) { + throw new Error(msg[status2]); + } + } + } + } + Inflate.prototype.push = function(data, mode) { + var strm = this.strm; + var chunkSize = this.options.chunkSize; + var dictionary = this.options.dictionary; + var status2, _mode; + var next_out_utf8, tail, utf8str; + var allowBufError = false; + if (this.ended) { + return false; + } + _mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH; + if (typeof data === "string") { + strm.input = strings.binstring2buf(data); + } else if (toString.call(data) === "[object ArrayBuffer]") { + strm.input = new Uint8Array(data); + } else { + strm.input = data; + } + strm.next_in = 0; + strm.avail_in = strm.input.length; + do { + if (strm.avail_out === 0) { + strm.output = new utils.Buf8(chunkSize); + strm.next_out = 0; + strm.avail_out = chunkSize; + } + status2 = zlib_inflate.inflate(strm, c.Z_NO_FLUSH); + if (status2 === c.Z_NEED_DICT && dictionary) { + status2 = zlib_inflate.inflateSetDictionary(this.strm, dictionary); + } + if (status2 === c.Z_BUF_ERROR && allowBufError === true) { + status2 = c.Z_OK; + allowBufError = false; + } + if (status2 !== c.Z_STREAM_END && status2 !== c.Z_OK) { + this.onEnd(status2); + this.ended = true; + return false; + } + if (strm.next_out) { + if (strm.avail_out === 0 || status2 === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) { + if (this.options.to === "string") { + next_out_utf8 = strings.utf8border(strm.output, strm.next_out); + tail = strm.next_out - next_out_utf8; + utf8str = strings.buf2string(strm.output, next_out_utf8); + strm.next_out = tail; + strm.avail_out = chunkSize - tail; + if (tail) { + utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0); + } + this.onData(utf8str); + } else { + this.onData(utils.shrinkBuf(strm.output, strm.next_out)); + } + } + } + if (strm.avail_in === 0 && strm.avail_out === 0) { + allowBufError = true; + } + } while ((strm.avail_in > 0 || strm.avail_out === 0) && status2 !== c.Z_STREAM_END); + if (status2 === c.Z_STREAM_END) { + _mode = c.Z_FINISH; + } + if (_mode === c.Z_FINISH) { + status2 = zlib_inflate.inflateEnd(this.strm); + this.onEnd(status2); + this.ended = true; + return status2 === c.Z_OK; + } + if (_mode === c.Z_SYNC_FLUSH) { + this.onEnd(c.Z_OK); + strm.avail_out = 0; + return true; + } + return true; + }; + Inflate.prototype.onData = function(chunk) { + this.chunks.push(chunk); + }; + Inflate.prototype.onEnd = function(status2) { + if (status2 === c.Z_OK) { + if (this.options.to === "string") { + this.result = this.chunks.join(""); + } else { + this.result = utils.flattenChunks(this.chunks); + } + } + this.chunks = []; + this.err = status2; + this.msg = this.strm.msg; + }; + function inflate2(input, options) { + var inflator = new Inflate(options); + inflator.push(input, true); + if (inflator.err) { + throw inflator.msg || msg[inflator.err]; + } + return inflator.result; + } + function inflateRaw(input, options) { + options = options || {}; + options.raw = true; + return inflate2(input, options); + } + exports2.Inflate = Inflate; + exports2.inflate = inflate2; + exports2.inflateRaw = inflateRaw; + exports2.ungzip = inflate2; + } +}); + +// node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js +var require_pako = __commonJS({ + "node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var assign2 = require_common().assign; + var deflate2 = require_deflate2(); + var inflate2 = require_inflate2(); + var constants = require_constants(); + var pako2 = {}; + assign2(pako2, deflate2, inflate2, constants); + module2.exports = pako2; + } +}); + +// node_modules/.pnpm/pify@4.0.1/node_modules/pify/index.js +var require_pify = __commonJS({ + "node_modules/.pnpm/pify@4.0.1/node_modules/pify/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var processFn = (fn, options) => function(...args) { + const P = options.promiseModule; + return new P((resolve2, reject) => { + if (options.multiArgs) { + args.push((...result) => { + if (options.errorFirst) { + if (result[0]) { + reject(result); + } else { + result.shift(); + resolve2(result); + } + } else { + resolve2(result); + } + }); + } else if (options.errorFirst) { + args.push((error, result) => { + if (error) { + reject(error); + } else { + resolve2(result); + } + }); + } else { + args.push(resolve2); + } + fn.apply(this, args); + }); + }; + module2.exports = (input, options) => { + options = Object.assign({ + exclude: [/.+(Sync|Stream)$/], + errorFirst: true, + promiseModule: Promise + }, options); + const objType = typeof input; + if (!(input !== null && (objType === "object" || objType === "function"))) { + throw new TypeError(`Expected \`input\` to be a \`Function\` or \`Object\`, got \`${input === null ? "null" : objType}\``); + } + const filter = (key2) => { + const match = (pattern) => typeof pattern === "string" ? key2 === pattern : pattern.test(key2); + return options.include ? options.include.some(match) : !options.exclude.some(match); + }; + let ret; + if (objType === "function") { + ret = function(...args) { + return options.excludeMain ? input(...args) : processFn(input, options).apply(this, args); + }; + } else { + ret = Object.create(Object.getPrototypeOf(input)); + } + for (const key2 in input) { + const property = input[key2]; + ret[key2] = typeof property === "function" && filter(key2) ? processFn(property, options) : property; + } + return ret; + }; + } +}); + +// node_modules/.pnpm/ignore@5.3.1/node_modules/ignore/index.js +var require_ignore = __commonJS({ + "node_modules/.pnpm/ignore@5.3.1/node_modules/ignore/index.js"(exports2, module2) { + init_polyfill_buffer(); + function makeArray(subject) { + return Array.isArray(subject) ? subject : [subject]; + } + var EMPTY = ""; + var SPACE = " "; + var ESCAPE = "\\"; + var REGEX_TEST_BLANK_LINE = /^\s+$/; + var REGEX_INVALID_TRAILING_BACKSLASH = /(?:[^\\]|^)\\$/; + var REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION = /^\\!/; + var REGEX_REPLACE_LEADING_EXCAPED_HASH = /^\\#/; + var REGEX_SPLITALL_CRLF = /\r?\n/g; + var REGEX_TEST_INVALID_PATH = /^\.*\/|^\.+$/; + var SLASH = "/"; + var TMP_KEY_IGNORE = "node-ignore"; + if (typeof Symbol !== "undefined") { + TMP_KEY_IGNORE = Symbol.for("node-ignore"); + } + var KEY_IGNORE = TMP_KEY_IGNORE; + var define2 = (object, key2, value) => Object.defineProperty(object, key2, { value }); + var REGEX_REGEXP_RANGE = /([0-z])-([0-z])/g; + var RETURN_FALSE = () => false; + var sanitizeRange = (range) => range.replace( + REGEX_REGEXP_RANGE, + (match, from, to) => from.charCodeAt(0) <= to.charCodeAt(0) ? match : EMPTY + ); + var cleanRangeBackSlash = (slashes) => { + const { length } = slashes; + return slashes.slice(0, length - length % 2); + }; + var REPLACERS = [ + [ + // remove BOM + // TODO: + // Other similar zero-width characters? + /^\uFEFF/, + () => EMPTY + ], + // > Trailing spaces are ignored unless they are quoted with backslash ("\") + [ + // (a\ ) -> (a ) + // (a ) -> (a) + // (a \ ) -> (a ) + /\\?\s+$/, + (match) => match.indexOf("\\") === 0 ? SPACE : EMPTY + ], + // replace (\ ) with ' ' + [ + /\\\s/g, + () => SPACE + ], + // Escape metacharacters + // which is written down by users but means special for regular expressions. + // > There are 12 characters with special meanings: + // > - the backslash \, + // > - the caret ^, + // > - the dollar sign $, + // > - the period or dot ., + // > - the vertical bar or pipe symbol |, + // > - the question mark ?, + // > - the asterisk or star *, + // > - the plus sign +, + // > - the opening parenthesis (, + // > - the closing parenthesis ), + // > - and the opening square bracket [, + // > - the opening curly brace {, + // > These special characters are often called "metacharacters". + [ + /[\\$.|*+(){^]/g, + (match) => `\\${match}` + ], + [ + // > a question mark (?) matches a single character + /(?!\\)\?/g, + () => "[^/]" + ], + // leading slash + [ + // > A leading slash matches the beginning of the pathname. + // > For example, "/*.c" matches "cat-file.c" but not "mozilla-sha1/sha1.c". + // A leading slash matches the beginning of the pathname + /^\//, + () => "^" + ], + // replace special metacharacter slash after the leading slash + [ + /\//g, + () => "\\/" + ], + [ + // > A leading "**" followed by a slash means match in all directories. + // > For example, "**/foo" matches file or directory "foo" anywhere, + // > the same as pattern "foo". + // > "**/foo/bar" matches file or directory "bar" anywhere that is directly + // > under directory "foo". + // Notice that the '*'s have been replaced as '\\*' + /^\^*\\\*\\\*\\\//, + // '**/foo' <-> 'foo' + () => "^(?:.*\\/)?" + ], + // starting + [ + // there will be no leading '/' + // (which has been replaced by section "leading slash") + // If starts with '**', adding a '^' to the regular expression also works + /^(?=[^^])/, + function startingReplacer() { + return !/\/(?!$)/.test(this) ? "(?:^|\\/)" : "^"; + } + ], + // two globstars + [ + // Use lookahead assertions so that we could match more than one `'/**'` + /\\\/\\\*\\\*(?=\\\/|$)/g, + // Zero, one or several directories + // should not use '*', or it will be replaced by the next replacer + // Check if it is not the last `'/**'` + (_, index2, str) => index2 + 6 < str.length ? "(?:\\/[^\\/]+)*" : "\\/.+" + ], + // normal intermediate wildcards + [ + // Never replace escaped '*' + // ignore rule '\*' will match the path '*' + // 'abc.*/' -> go + // 'abc.*' -> skip this rule, + // coz trailing single wildcard will be handed by [trailing wildcard] + /(^|[^\\]+)(\\\*)+(?=.+)/g, + // '*.js' matches '.js' + // '*.js' doesn't match 'abc' + (_, p1, p2) => { + const unescaped = p2.replace(/\\\*/g, "[^\\/]*"); + return p1 + unescaped; + } + ], + [ + // unescape, revert step 3 except for back slash + // For example, if a user escape a '\\*', + // after step 3, the result will be '\\\\\\*' + /\\\\\\(?=[$.|*+(){^])/g, + () => ESCAPE + ], + [ + // '\\\\' -> '\\' + /\\\\/g, + () => ESCAPE + ], + [ + // > The range notation, e.g. [a-zA-Z], + // > can be used to match one of the characters in a range. + // `\` is escaped by step 3 + /(\\)?\[([^\]/]*?)(\\*)($|\])/g, + (match, leadEscape, range, endEscape, close) => leadEscape === ESCAPE ? `\\[${range}${cleanRangeBackSlash(endEscape)}${close}` : close === "]" ? endEscape.length % 2 === 0 ? `[${sanitizeRange(range)}${endEscape}]` : "[]" : "[]" + ], + // ending + [ + // 'js' will not match 'js.' + // 'ab' will not match 'abc' + /(?:[^*])$/, + // WTF! + // https://git-scm.com/docs/gitignore + // changes in [2.22.1](https://git-scm.com/docs/gitignore/2.22.1) + // which re-fixes #24, #38 + // > If there is a separator at the end of the pattern then the pattern + // > will only match directories, otherwise the pattern can match both + // > files and directories. + // 'js*' will not match 'a.js' + // 'js/' will not match 'a.js' + // 'js' will match 'a.js' and 'a.js/' + (match) => /\/$/.test(match) ? `${match}$` : `${match}(?=$|\\/$)` + ], + // trailing wildcard + [ + /(\^|\\\/)?\\\*$/, + (_, p1) => { + const prefix = p1 ? `${p1}[^/]+` : "[^/]*"; + return `${prefix}(?=$|\\/$)`; + } + ] + ]; + var regexCache = /* @__PURE__ */ Object.create(null); + var makeRegex = (pattern, ignoreCase) => { + let source = regexCache[pattern]; + if (!source) { + source = REPLACERS.reduce( + (prev, current) => prev.replace(current[0], current[1].bind(pattern)), + pattern + ); + regexCache[pattern] = source; + } + return ignoreCase ? new RegExp(source, "i") : new RegExp(source); + }; + var isString = (subject) => typeof subject === "string"; + var checkPattern = (pattern) => pattern && isString(pattern) && !REGEX_TEST_BLANK_LINE.test(pattern) && !REGEX_INVALID_TRAILING_BACKSLASH.test(pattern) && pattern.indexOf("#") !== 0; + var splitPattern = (pattern) => pattern.split(REGEX_SPLITALL_CRLF); + var IgnoreRule = class { + constructor(origin, pattern, negative, regex2) { + this.origin = origin; + this.pattern = pattern; + this.negative = negative; + this.regex = regex2; + } + }; + var createRule = (pattern, ignoreCase) => { + const origin = pattern; + let negative = false; + if (pattern.indexOf("!") === 0) { + negative = true; + pattern = pattern.substr(1); + } + pattern = pattern.replace(REGEX_REPLACE_LEADING_EXCAPED_EXCLAMATION, "!").replace(REGEX_REPLACE_LEADING_EXCAPED_HASH, "#"); + const regex2 = makeRegex(pattern, ignoreCase); + return new IgnoreRule( + origin, + pattern, + negative, + regex2 + ); + }; + var throwError = (message, Ctor) => { + throw new Ctor(message); + }; + var checkPath = (path2, originalPath, doThrow) => { + if (!isString(path2)) { + return doThrow( + `path must be a string, but got \`${originalPath}\``, + TypeError + ); + } + if (!path2) { + return doThrow(`path must not be empty`, TypeError); + } + if (checkPath.isNotRelative(path2)) { + const r = "`path.relative()`d"; + return doThrow( + `path should be a ${r} string, but got "${originalPath}"`, + RangeError + ); + } + return true; + }; + var isNotRelative = (path2) => REGEX_TEST_INVALID_PATH.test(path2); + checkPath.isNotRelative = isNotRelative; + checkPath.convert = (p) => p; + var Ignore = class { + constructor({ + ignorecase = true, + ignoreCase = ignorecase, + allowRelativePaths = false + } = {}) { + define2(this, KEY_IGNORE, true); + this._rules = []; + this._ignoreCase = ignoreCase; + this._allowRelativePaths = allowRelativePaths; + this._initCache(); + } + _initCache() { + this._ignoreCache = /* @__PURE__ */ Object.create(null); + this._testCache = /* @__PURE__ */ Object.create(null); + } + _addPattern(pattern) { + if (pattern && pattern[KEY_IGNORE]) { + this._rules = this._rules.concat(pattern._rules); + this._added = true; + return; + } + if (checkPattern(pattern)) { + const rule = createRule(pattern, this._ignoreCase); + this._added = true; + this._rules.push(rule); + } + } + // @param {Array | string | Ignore} pattern + add(pattern) { + this._added = false; + makeArray( + isString(pattern) ? splitPattern(pattern) : pattern + ).forEach(this._addPattern, this); + if (this._added) { + this._initCache(); + } + return this; + } + // legacy + addPattern(pattern) { + return this.add(pattern); + } + // | ignored : unignored + // negative | 0:0 | 0:1 | 1:0 | 1:1 + // -------- | ------- | ------- | ------- | -------- + // 0 | TEST | TEST | SKIP | X + // 1 | TESTIF | SKIP | TEST | X + // - SKIP: always skip + // - TEST: always test + // - TESTIF: only test if checkUnignored + // - X: that never happen + // @param {boolean} whether should check if the path is unignored, + // setting `checkUnignored` to `false` could reduce additional + // path matching. + // @returns {TestResult} true if a file is ignored + _testOne(path2, checkUnignored) { + let ignored = false; + let unignored = false; + this._rules.forEach((rule) => { + const { negative } = rule; + if (unignored === negative && ignored !== unignored || negative && !ignored && !unignored && !checkUnignored) { + return; + } + const matched = rule.regex.test(path2); + if (matched) { + ignored = !negative; + unignored = negative; + } + }); + return { + ignored, + unignored + }; + } + // @returns {TestResult} + _test(originalPath, cache, checkUnignored, slices) { + const path2 = originalPath && checkPath.convert(originalPath); + checkPath( + path2, + originalPath, + this._allowRelativePaths ? RETURN_FALSE : throwError + ); + return this._t(path2, cache, checkUnignored, slices); + } + _t(path2, cache, checkUnignored, slices) { + if (path2 in cache) { + return cache[path2]; + } + if (!slices) { + slices = path2.split(SLASH); + } + slices.pop(); + if (!slices.length) { + return cache[path2] = this._testOne(path2, checkUnignored); + } + const parent = this._t( + slices.join(SLASH) + SLASH, + cache, + checkUnignored, + slices + ); + return cache[path2] = parent.ignored ? parent : this._testOne(path2, checkUnignored); + } + ignores(path2) { + return this._test(path2, this._ignoreCache, false).ignored; + } + createFilter() { + return (path2) => !this.ignores(path2); + } + filter(paths) { + return makeArray(paths).filter(this.createFilter()); + } + // @returns {TestResult} + test(path2) { + return this._test(path2, this._testCache, true); + } + }; + var factory = (options) => new Ignore(options); + var isPathValid = (path2) => checkPath(path2 && checkPath.convert(path2), path2, RETURN_FALSE); + factory.isPathValid = isPathValid; + factory.default = factory; + module2.exports = factory; + if ( + // Detect `process` so that it can run in browsers. + typeof process !== "undefined" && (process.env && process.env.IGNORE_TEST_WIN32 || process.platform === "win32") + ) { + const makePosix = (str) => /^\\\\\?\\/.test(str) || /["<>|\u0000-\u001F]+/u.test(str) ? str : str.replace(/\\/g, "/"); + checkPath.convert = makePosix; + const REGIX_IS_WINDOWS_PATH_ABSOLUTE = /^[a-z]:\//i; + checkPath.isNotRelative = (path2) => REGIX_IS_WINDOWS_PATH_ABSOLUTE.test(path2) || isNotRelative(path2); + } + } +}); + +// node_modules/.pnpm/clean-git-ref@2.0.1/node_modules/clean-git-ref/lib/index.js +var require_lib2 = __commonJS({ + "node_modules/.pnpm/clean-git-ref@2.0.1/node_modules/clean-git-ref/lib/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + function escapeRegExp(string) { + return string.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + } + function replaceAll(str, search, replacement) { + search = search instanceof RegExp ? search : new RegExp(escapeRegExp(search), "g"); + return str.replace(search, replacement); + } + var CleanGitRef = { + clean: function clean(value) { + if (typeof value !== "string") { + throw new Error("Expected a string, received: " + value); + } + value = replaceAll(value, "./", "/"); + value = replaceAll(value, "..", "."); + value = replaceAll(value, " ", "-"); + value = replaceAll(value, /^[~^:?*\\\-]/g, ""); + value = replaceAll(value, /[~^:?*\\]/g, "-"); + value = replaceAll(value, /[~^:?*\\\-]$/g, ""); + value = replaceAll(value, "@{", "-"); + value = replaceAll(value, /\.$/g, ""); + value = replaceAll(value, /\/$/g, ""); + value = replaceAll(value, /\.lock$/g, ""); + return value; + } + }; + module2.exports = CleanGitRef; + } +}); + +// node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/onp.js +var require_onp = __commonJS({ + "node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/onp.js"(exports2, module2) { + init_polyfill_buffer(); + module2.exports = function(a_, b_) { + var a = a_, b = b_, m = a.length, n = b.length, reverse = false, ed = null, offset = m + 1, path2 = [], pathposi = [], ses = [], lcs = "", SES_DELETE = -1, SES_COMMON = 0, SES_ADD = 1; + var tmp1, tmp2; + var init3 = function() { + if (m >= n) { + tmp1 = a; + tmp2 = m; + a = b; + b = tmp1; + m = n; + n = tmp2; + reverse = true; + offset = m + 1; + } + }; + var P = function(x, y, k) { + return { + "x": x, + "y": y, + "k": k + }; + }; + var seselem = function(elem, t) { + return { + "elem": elem, + "t": t + }; + }; + var snake = function(k, p, pp) { + var r, x, y; + if (p > pp) { + r = path2[k - 1 + offset]; + } else { + r = path2[k + 1 + offset]; + } + y = Math.max(p, pp); + x = y - k; + while (x < m && y < n && a[x] === b[y]) { + ++x; + ++y; + } + path2[k + offset] = pathposi.length; + pathposi[pathposi.length] = new P(x, y, r); + return y; + }; + var recordseq = function(epc) { + var x_idx, y_idx, px_idx, py_idx, i; + x_idx = y_idx = 1; + px_idx = py_idx = 0; + for (i = epc.length - 1; i >= 0; --i) { + while (px_idx < epc[i].x || py_idx < epc[i].y) { + if (epc[i].y - epc[i].x > py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(b[py_idx], SES_DELETE); + } else { + ses[ses.length] = new seselem(b[py_idx], SES_ADD); + } + ++y_idx; + ++py_idx; + } else if (epc[i].y - epc[i].x < py_idx - px_idx) { + if (reverse) { + ses[ses.length] = new seselem(a[px_idx], SES_ADD); + } else { + ses[ses.length] = new seselem(a[px_idx], SES_DELETE); + } + ++x_idx; + ++px_idx; + } else { + ses[ses.length] = new seselem(a[px_idx], SES_COMMON); + lcs += a[px_idx]; + ++x_idx; + ++y_idx; + ++px_idx; + ++py_idx; + } + } + } + }; + init3(); + return { + SES_DELETE: -1, + SES_COMMON: 0, + SES_ADD: 1, + editdistance: function() { + return ed; + }, + getlcs: function() { + return lcs; + }, + getses: function() { + return ses; + }, + compose: function() { + var delta, size, fp, p, r, epc, i, k; + delta = n - m; + size = m + n + 3; + fp = {}; + for (i = 0; i < size; ++i) { + fp[i] = -1; + path2[i] = -1; + } + p = -1; + do { + ++p; + for (k = -p; k <= delta - 1; ++k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + for (k = delta + p; k >= delta + 1; --k) { + fp[k + offset] = snake(k, fp[k - 1 + offset] + 1, fp[k + 1 + offset]); + } + fp[delta + offset] = snake(delta, fp[delta - 1 + offset] + 1, fp[delta + 1 + offset]); + } while (fp[delta + offset] !== n); + ed = delta + 2 * p; + r = path2[delta + offset]; + epc = []; + while (r !== -1) { + epc[epc.length] = new P(pathposi[r].x, pathposi[r].y, null); + r = pathposi[r].k; + } + recordseq(epc); + } + }; + }; + } +}); + +// node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/diff3.js +var require_diff3 = __commonJS({ + "node_modules/.pnpm/diff3@0.0.3/node_modules/diff3/diff3.js"(exports2, module2) { + init_polyfill_buffer(); + var onp = require_onp(); + function longestCommonSubsequence(file1, file2) { + var diff3 = new onp(file1, file2); + diff3.compose(); + var ses = diff3.getses(); + var root2; + var prev; + var file1RevIdx = file1.length - 1, file2RevIdx = file2.length - 1; + for (var i = ses.length - 1; i >= 0; --i) { + if (ses[i].t === diff3.SES_COMMON) { + if (prev) { + prev.chain = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = prev.chain; + } else { + root2 = { + file1index: file1RevIdx, + file2index: file2RevIdx, + chain: null + }; + prev = root2; + } + file1RevIdx--; + file2RevIdx--; + } else if (ses[i].t === diff3.SES_DELETE) { + file1RevIdx--; + } else if (ses[i].t === diff3.SES_ADD) { + file2RevIdx--; + } + } + var tail = { + file1index: -1, + file2index: -1, + chain: null + }; + if (!prev) { + return tail; + } + prev.chain = tail; + return root2; + } + function diffIndices(file1, file2) { + var result = []; + var tail1 = file1.length; + var tail2 = file2.length; + for (var candidate = longestCommonSubsequence(file1, file2); candidate !== null; candidate = candidate.chain) { + var mismatchLength1 = tail1 - candidate.file1index - 1; + var mismatchLength2 = tail2 - candidate.file2index - 1; + tail1 = candidate.file1index; + tail2 = candidate.file2index; + if (mismatchLength1 || mismatchLength2) { + result.push({ + file1: [tail1 + 1, mismatchLength1], + file2: [tail2 + 1, mismatchLength2] + }); + } + } + result.reverse(); + return result; + } + function diff3MergeIndices(a, o, b) { + var i; + var m1 = diffIndices(o, a); + var m2 = diffIndices(o, b); + var hunks = []; + function addHunk(h, side2) { + hunks.push([h.file1[0], side2, h.file1[1], h.file2[0], h.file2[1]]); + } + for (i = 0; i < m1.length; i++) { + addHunk(m1[i], 0); + } + for (i = 0; i < m2.length; i++) { + addHunk(m2[i], 2); + } + hunks.sort(function(x, y) { + return x[0] - y[0]; + }); + var result = []; + var commonOffset = 0; + function copyCommon(targetOffset) { + if (targetOffset > commonOffset) { + result.push([1, commonOffset, targetOffset - commonOffset]); + commonOffset = targetOffset; + } + } + for (var hunkIndex = 0; hunkIndex < hunks.length; hunkIndex++) { + var firstHunkIndex = hunkIndex; + var hunk = hunks[hunkIndex]; + var regionLhs = hunk[0]; + var regionRhs = regionLhs + hunk[2]; + while (hunkIndex < hunks.length - 1) { + var maybeOverlapping = hunks[hunkIndex + 1]; + var maybeLhs = maybeOverlapping[0]; + if (maybeLhs > regionRhs) break; + regionRhs = Math.max(regionRhs, maybeLhs + maybeOverlapping[2]); + hunkIndex++; + } + copyCommon(regionLhs); + if (firstHunkIndex == hunkIndex) { + if (hunk[4] > 0) { + result.push([hunk[1], hunk[3], hunk[4]]); + } + } else { + var regions = { + 0: [a.length, -1, o.length, -1], + 2: [b.length, -1, o.length, -1] + }; + for (i = firstHunkIndex; i <= hunkIndex; i++) { + hunk = hunks[i]; + var side = hunk[1]; + var r = regions[side]; + var oLhs = hunk[0]; + var oRhs = oLhs + hunk[2]; + var abLhs = hunk[3]; + var abRhs = abLhs + hunk[4]; + r[0] = Math.min(abLhs, r[0]); + r[1] = Math.max(abRhs, r[1]); + r[2] = Math.min(oLhs, r[2]); + r[3] = Math.max(oRhs, r[3]); + } + var aLhs = regions[0][0] + (regionLhs - regions[0][2]); + var aRhs = regions[0][1] + (regionRhs - regions[0][3]); + var bLhs = regions[2][0] + (regionLhs - regions[2][2]); + var bRhs = regions[2][1] + (regionRhs - regions[2][3]); + result.push([ + -1, + aLhs, + aRhs - aLhs, + regionLhs, + regionRhs - regionLhs, + bLhs, + bRhs - bLhs + ]); + } + commonOffset = regionRhs; + } + copyCommon(o.length); + return result; + } + function diff3Merge2(a, o, b) { + var result = []; + var files = [a, o, b]; + var indices = diff3MergeIndices(a, o, b); + var okLines = []; + function flushOk() { + if (okLines.length) { + result.push({ + ok: okLines + }); + } + okLines = []; + } + function pushOk(xs) { + for (var j = 0; j < xs.length; j++) { + okLines.push(xs[j]); + } + } + function isTrueConflict(rec) { + if (rec[2] != rec[6]) return true; + var aoff = rec[1]; + var boff = rec[5]; + for (var j = 0; j < rec[2]; j++) { + if (a[j + aoff] != b[j + boff]) return true; + } + return false; + } + for (var i = 0; i < indices.length; i++) { + var x = indices[i]; + var side = x[0]; + if (side == -1) { + if (!isTrueConflict(x)) { + pushOk(files[0].slice(x[1], x[1] + x[2])); + } else { + flushOk(); + result.push({ + conflict: { + a: a.slice(x[1], x[1] + x[2]), + aIndex: x[1], + o: o.slice(x[3], x[3] + x[4]), + oIndex: x[3], + b: b.slice(x[5], x[5] + x[6]), + bIndex: x[5] + } + }); + } + } else { + pushOk(files[side].slice(x[1], x[1] + x[2])); + } + } + flushOk(); + return result; + } + module2.exports = diff3Merge2; + } +}); + +// node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/.pnpm/ms@2.1.2/node_modules/ms/index.js"(exports2, module2) { + init_polyfill_buffer(); + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse2(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + "val is not a non-empty string or a valid number. val=" + JSON.stringify(val) + ); + }; + function parse2(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + } +}); + +// node_modules/.pnpm/debug@4.3.5_supports-color@9.4.0/node_modules/debug/src/common.js +var require_common2 = __commonJS({ + "node_modules/.pnpm/debug@4.3.5_supports-color@9.4.0/node_modules/debug/src/common.js"(exports2, module2) { + init_polyfill_buffer(); + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key2) => { + createDebug[key2] = env[key2]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash2 = 0; + for (let i = 0; i < namespace.length; i++) { + hash2 = (hash2 << 5) - hash2 + namespace.charCodeAt(i); + hash2 |= 0; + } + return createDebug.colors[Math.abs(hash2) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug3(...args) { + if (!debug3.enabled) { + return; + } + const self2 = debug3; + const curr = Number(/* @__PURE__ */ new Date()); + const ms = curr - (prevTime || curr); + self2.diff = ms; + self2.prev = prevTime; + self2.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index2 = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index2++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index2]; + match = formatter.call(self2, val); + args.splice(index2, 1); + index2--; + } + return match; + }); + createDebug.formatArgs.call(self2, args); + const logFn = self2.log || createDebug.log; + logFn.apply(self2, args); + } + debug3.namespace = namespace; + debug3.useColors = createDebug.useColors(); + debug3.color = createDebug.selectColor(namespace); + debug3.extend = extend; + debug3.destroy = createDebug.destroy; + Object.defineProperty(debug3, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug3); + } + return debug3; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + let i; + const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + const len = split.length; + for (i = 0; i < len; i++) { + if (!split[i]) { + continue; + } + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); + } else { + createDebug.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name) { + if (name[name.length - 1] === "*") { + return true; + } + let i; + let len; + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + return false; + } + function toNamespace(regexp) { + return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module2.exports = setup; + } +}); + +// node_modules/.pnpm/debug@4.3.5_supports-color@9.4.0/node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/.pnpm/debug@4.3.5_supports-color@9.4.0/node_modules/debug/src/browser.js"(exports2, module2) { + init_polyfill_buffer(); + exports2.formatArgs = formatArgs; + exports2.save = save; + exports2.load = load; + exports2.useColors = useColors; + exports2.storage = localstorage(); + exports2.destroy = /* @__PURE__ */ (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports2.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // Is firebug? http://stackoverflow.com/a/398120/376773 + typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || // Is firefox >= v31? + // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // Double check webkit in userAgent just in case we are in a worker + typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index2 = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index2++; + if (match === "%c") { + lastC = index2; + } + }); + args.splice(lastC, 0, c); + } + exports2.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports2.storage.setItem("debug", namespaces); + } else { + exports2.storage.removeItem("debug"); + } + } catch (error) { + } + } + function load() { + let r; + try { + r = exports2.storage.getItem("debug"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + module2.exports = require_common2()(exports2); + var { formatters } = module2.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } +}); + +// node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/src/index.js +var require_src = __commonJS({ + "node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/src/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + var __importDefault = exports2 && exports2.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports2, "__esModule", { value: true }); + var fs_1 = require("fs"); + var debug_1 = __importDefault(require_browser()); + var log2 = debug_1.default("@kwsites/file-exists"); + function check(path2, isFile, isDirectory) { + log2(`checking %s`, path2); + try { + const stat = fs_1.statSync(path2); + if (stat.isFile() && isFile) { + log2(`[OK] path represents a file`); + return true; + } + if (stat.isDirectory() && isDirectory) { + log2(`[OK] path represents a directory`); + return true; + } + log2(`[FAIL] path represents something other than a file or directory`); + return false; + } catch (e) { + if (e.code === "ENOENT") { + log2(`[FAIL] path is not accessible: %o`, e); + return false; + } + log2(`[FATAL] %o`, e); + throw e; + } + } + function exists2(path2, type = exports2.READABLE) { + return check(path2, (type & exports2.FILE) > 0, (type & exports2.FOLDER) > 0); + } + exports2.exists = exists2; + exports2.FILE = 1; + exports2.FOLDER = 2; + exports2.READABLE = exports2.FILE + exports2.FOLDER; + } +}); + +// node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/index.js +var require_dist = __commonJS({ + "node_modules/.pnpm/@kwsites+file-exists@1.1.1_supports-color@9.4.0/node_modules/@kwsites/file-exists/dist/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + function __export3(m) { + for (var p in m) if (!exports2.hasOwnProperty(p)) exports2[p] = m[p]; + } + Object.defineProperty(exports2, "__esModule", { value: true }); + __export3(require_src()); + } +}); + +// node_modules/.pnpm/@kwsites+promise-deferred@1.1.1/node_modules/@kwsites/promise-deferred/dist/index.js +var require_dist2 = __commonJS({ + "node_modules/.pnpm/@kwsites+promise-deferred@1.1.1/node_modules/@kwsites/promise-deferred/dist/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + Object.defineProperty(exports2, "__esModule", { value: true }); + exports2.createDeferred = exports2.deferred = void 0; + function deferred2() { + let done; + let fail; + let status2 = "pending"; + const promise2 = new Promise((_done, _fail) => { + done = _done; + fail = _fail; + }); + return { + promise: promise2, + done(result) { + if (status2 === "pending") { + status2 = "resolved"; + done(result); + } + }, + fail(error) { + if (status2 === "pending") { + status2 = "rejected"; + fail(error); + } + }, + get fulfilled() { + return status2 !== "pending"; + }, + get status() { + return status2; + } + }; + } + exports2.deferred = deferred2; + exports2.createDeferred = deferred2; + exports2.default = deferred2; + } +}); + +// node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js +var require_color_name = __commonJS({ + "node_modules/.pnpm/color-name@1.1.4/node_modules/color-name/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = { + "aliceblue": [240, 248, 255], + "antiquewhite": [250, 235, 215], + "aqua": [0, 255, 255], + "aquamarine": [127, 255, 212], + "azure": [240, 255, 255], + "beige": [245, 245, 220], + "bisque": [255, 228, 196], + "black": [0, 0, 0], + "blanchedalmond": [255, 235, 205], + "blue": [0, 0, 255], + "blueviolet": [138, 43, 226], + "brown": [165, 42, 42], + "burlywood": [222, 184, 135], + "cadetblue": [95, 158, 160], + "chartreuse": [127, 255, 0], + "chocolate": [210, 105, 30], + "coral": [255, 127, 80], + "cornflowerblue": [100, 149, 237], + "cornsilk": [255, 248, 220], + "crimson": [220, 20, 60], + "cyan": [0, 255, 255], + "darkblue": [0, 0, 139], + "darkcyan": [0, 139, 139], + "darkgoldenrod": [184, 134, 11], + "darkgray": [169, 169, 169], + "darkgreen": [0, 100, 0], + "darkgrey": [169, 169, 169], + "darkkhaki": [189, 183, 107], + "darkmagenta": [139, 0, 139], + "darkolivegreen": [85, 107, 47], + "darkorange": [255, 140, 0], + "darkorchid": [153, 50, 204], + "darkred": [139, 0, 0], + "darksalmon": [233, 150, 122], + "darkseagreen": [143, 188, 143], + "darkslateblue": [72, 61, 139], + "darkslategray": [47, 79, 79], + "darkslategrey": [47, 79, 79], + "darkturquoise": [0, 206, 209], + "darkviolet": [148, 0, 211], + "deeppink": [255, 20, 147], + "deepskyblue": [0, 191, 255], + "dimgray": [105, 105, 105], + "dimgrey": [105, 105, 105], + "dodgerblue": [30, 144, 255], + "firebrick": [178, 34, 34], + "floralwhite": [255, 250, 240], + "forestgreen": [34, 139, 34], + "fuchsia": [255, 0, 255], + "gainsboro": [220, 220, 220], + "ghostwhite": [248, 248, 255], + "gold": [255, 215, 0], + "goldenrod": [218, 165, 32], + "gray": [128, 128, 128], + "green": [0, 128, 0], + "greenyellow": [173, 255, 47], + "grey": [128, 128, 128], + "honeydew": [240, 255, 240], + "hotpink": [255, 105, 180], + "indianred": [205, 92, 92], + "indigo": [75, 0, 130], + "ivory": [255, 255, 240], + "khaki": [240, 230, 140], + "lavender": [230, 230, 250], + "lavenderblush": [255, 240, 245], + "lawngreen": [124, 252, 0], + "lemonchiffon": [255, 250, 205], + "lightblue": [173, 216, 230], + "lightcoral": [240, 128, 128], + "lightcyan": [224, 255, 255], + "lightgoldenrodyellow": [250, 250, 210], + "lightgray": [211, 211, 211], + "lightgreen": [144, 238, 144], + "lightgrey": [211, 211, 211], + "lightpink": [255, 182, 193], + "lightsalmon": [255, 160, 122], + "lightseagreen": [32, 178, 170], + "lightskyblue": [135, 206, 250], + "lightslategray": [119, 136, 153], + "lightslategrey": [119, 136, 153], + "lightsteelblue": [176, 196, 222], + "lightyellow": [255, 255, 224], + "lime": [0, 255, 0], + "limegreen": [50, 205, 50], + "linen": [250, 240, 230], + "magenta": [255, 0, 255], + "maroon": [128, 0, 0], + "mediumaquamarine": [102, 205, 170], + "mediumblue": [0, 0, 205], + "mediumorchid": [186, 85, 211], + "mediumpurple": [147, 112, 219], + "mediumseagreen": [60, 179, 113], + "mediumslateblue": [123, 104, 238], + "mediumspringgreen": [0, 250, 154], + "mediumturquoise": [72, 209, 204], + "mediumvioletred": [199, 21, 133], + "midnightblue": [25, 25, 112], + "mintcream": [245, 255, 250], + "mistyrose": [255, 228, 225], + "moccasin": [255, 228, 181], + "navajowhite": [255, 222, 173], + "navy": [0, 0, 128], + "oldlace": [253, 245, 230], + "olive": [128, 128, 0], + "olivedrab": [107, 142, 35], + "orange": [255, 165, 0], + "orangered": [255, 69, 0], + "orchid": [218, 112, 214], + "palegoldenrod": [238, 232, 170], + "palegreen": [152, 251, 152], + "paleturquoise": [175, 238, 238], + "palevioletred": [219, 112, 147], + "papayawhip": [255, 239, 213], + "peachpuff": [255, 218, 185], + "peru": [205, 133, 63], + "pink": [255, 192, 203], + "plum": [221, 160, 221], + "powderblue": [176, 224, 230], + "purple": [128, 0, 128], + "rebeccapurple": [102, 51, 153], + "red": [255, 0, 0], + "rosybrown": [188, 143, 143], + "royalblue": [65, 105, 225], + "saddlebrown": [139, 69, 19], + "salmon": [250, 128, 114], + "sandybrown": [244, 164, 96], + "seagreen": [46, 139, 87], + "seashell": [255, 245, 238], + "sienna": [160, 82, 45], + "silver": [192, 192, 192], + "skyblue": [135, 206, 235], + "slateblue": [106, 90, 205], + "slategray": [112, 128, 144], + "slategrey": [112, 128, 144], + "snow": [255, 250, 250], + "springgreen": [0, 255, 127], + "steelblue": [70, 130, 180], + "tan": [210, 180, 140], + "teal": [0, 128, 128], + "thistle": [216, 191, 216], + "tomato": [255, 99, 71], + "turquoise": [64, 224, 208], + "violet": [238, 130, 238], + "wheat": [245, 222, 179], + "white": [255, 255, 255], + "whitesmoke": [245, 245, 245], + "yellow": [255, 255, 0], + "yellowgreen": [154, 205, 50] + }; + } +}); + +// node_modules/.pnpm/css-unit-converter@1.1.2/node_modules/css-unit-converter/index.js +var require_css_unit_converter = __commonJS({ + "node_modules/.pnpm/css-unit-converter@1.1.2/node_modules/css-unit-converter/index.js"(exports2, module2) { + init_polyfill_buffer(); + var conversions = { + // length + "px": { + "px": 1, + "cm": 96 / 2.54, + "mm": 96 / 25.4, + "in": 96, + "pt": 96 / 72, + "pc": 16 + }, + "cm": { + "px": 2.54 / 96, + "cm": 1, + "mm": 0.1, + "in": 2.54, + "pt": 2.54 / 72, + "pc": 2.54 / 6 + }, + "mm": { + "px": 25.4 / 96, + "cm": 10, + "mm": 1, + "in": 25.4, + "pt": 25.4 / 72, + "pc": 25.4 / 6 + }, + "in": { + "px": 1 / 96, + "cm": 1 / 2.54, + "mm": 1 / 25.4, + "in": 1, + "pt": 1 / 72, + "pc": 1 / 6 + }, + "pt": { + "px": 0.75, + "cm": 72 / 2.54, + "mm": 72 / 25.4, + "in": 72, + "pt": 1, + "pc": 12 + }, + "pc": { + "px": 6 / 96, + "cm": 6 / 2.54, + "mm": 6 / 25.4, + "in": 6, + "pt": 6 / 72, + "pc": 1 + }, + // angle + "deg": { + "deg": 1, + "grad": 0.9, + "rad": 180 / Math.PI, + "turn": 360 + }, + "grad": { + "deg": 400 / 360, + "grad": 1, + "rad": 200 / Math.PI, + "turn": 400 + }, + "rad": { + "deg": Math.PI / 180, + "grad": Math.PI / 200, + "rad": 1, + "turn": Math.PI * 2 + }, + "turn": { + "deg": 1 / 360, + "grad": 1 / 400, + "rad": 0.5 / Math.PI, + "turn": 1 + }, + // time + "s": { + "s": 1, + "ms": 1 / 1e3 + }, + "ms": { + "s": 1e3, + "ms": 1 + }, + // frequency + "Hz": { + "Hz": 1, + "kHz": 1e3 + }, + "kHz": { + "Hz": 1 / 1e3, + "kHz": 1 + }, + // resolution + "dpi": { + "dpi": 1, + "dpcm": 1 / 2.54, + "dppx": 1 / 96 + }, + "dpcm": { + "dpi": 2.54, + "dpcm": 1, + "dppx": 2.54 / 96 + }, + "dppx": { + "dpi": 96, + "dpcm": 96 / 2.54, + "dppx": 1 + } + }; + module2.exports = function(value, sourceUnit, targetUnit, precision) { + if (!conversions.hasOwnProperty(targetUnit)) + throw new Error("Cannot convert to " + targetUnit); + if (!conversions[targetUnit].hasOwnProperty(sourceUnit)) + throw new Error("Cannot convert from " + sourceUnit + " to " + targetUnit); + var converted = conversions[targetUnit][sourceUnit] * value; + if (precision !== false) { + precision = Math.pow(10, parseInt(precision) || 5); + return Math.round(converted * precision) / precision; + } + return converted; + }; + } +}); + +// node_modules/.pnpm/css-color-converter@2.0.0/node_modules/css-color-converter/lib/index.js +var require_lib3 = __commonJS({ + "node_modules/.pnpm/css-color-converter@2.0.0/node_modules/css-color-converter/lib/index.js"(exports2) { + "use strict"; + init_polyfill_buffer(); + Object.defineProperty(exports2, "__esModule", { + value: true + }); + exports2.fromRgba = fromRgba; + exports2.fromRgb = fromRgb; + exports2.fromHsla = fromHsla; + exports2.fromHsl = fromHsl; + exports2.fromString = fromString2; + exports2["default"] = void 0; + var _colorName = _interopRequireDefault(require_color_name()); + var _cssUnitConverter = _interopRequireDefault(require_css_unit_converter()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + function _classCallCheck(instance10, Constructor) { + if (!(instance10 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray2(arr, i) || _nonIterableRest(); + } + function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray2(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray2(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray2(o, minLen); + } + function _arrayLikeToArray2(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function _iterableToArrayLimit(arr, i) { + if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; + var _arr = []; + var _n = true; + var _d = false; + var _e = void 0; + try { + for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + var hex = /^#([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})?$/; + var shortHex = /^#([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])([0-9a-fA-F])?$/; + var rgb = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var rgbfn = /^rgba?\(\s*(\d+)\s+(\d+)\s+(\d+)(?:\s*\/\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var rgbperc = /^rgba?\(\s*(\d+%)\s*,\s*(\d+%)\s*,\s*(\d+%)(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var rgbpercfn = /^rgba?\(\s*(\d+%)\s+(\d+%)\s+(\d+%)(?:\s*\/\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + var hsl = /^hsla?\(\s*(\d+)(deg|rad|grad|turn)?\s*,\s*(\d+)%\s*,\s*(\d+)%(?:\s*,\s*(0|1|0?\.\d+|\d+%))?\s*\)$/; + function contains2(haystack, needle) { + return haystack.indexOf(needle) > -1; + } + function rgbToHsl(r, g, b) { + var rprim = r / 255; + var gprim = g / 255; + var bprim = b / 255; + var cmax = Math.max(rprim, gprim, bprim); + var cmin = Math.min(rprim, gprim, bprim); + var delta = cmax - cmin; + var l = (cmax + cmin) / 2; + if (delta === 0) { + return [0, 0, l * 100]; + } + var s = delta / (1 - Math.abs(2 * l - 1)); + var h = function() { + switch (cmax) { + case rprim: { + return (gprim - bprim) / delta % 6; + } + case gprim: { + return (bprim - rprim) / delta + 2; + } + default: { + return (rprim - gprim) / delta + 4; + } + } + }(); + return [h * 60, s * 100, l * 100]; + } + function hslToRgb(h, s, l) { + var hprim = h / 60; + var sprim = s / 100; + var lprim = l / 100; + var c = (1 - Math.abs(2 * lprim - 1)) * sprim; + var x = c * (1 - Math.abs(hprim % 2 - 1)); + var m = lprim - c / 2; + var _ref = function() { + if (hprim < 1) return [c, x, 0]; + if (hprim < 2) return [x, c, 0]; + if (hprim < 3) return [0, c, x]; + if (hprim < 4) return [0, x, c]; + if (hprim < 5) return [x, 0, c]; + return [c, 0, x]; + }(), _ref2 = _slicedToArray(_ref, 3), rprim = _ref2[0], gprim = _ref2[1], bprim = _ref2[2]; + return [(rprim + m) * 255, (gprim + m) * 255, (bprim + m) * 255]; + } + var Color = /* @__PURE__ */ function() { + function Color2(_ref3) { + var _ref4 = _slicedToArray(_ref3, 4), r = _ref4[0], g = _ref4[1], b = _ref4[2], a = _ref4[3]; + _classCallCheck(this, Color2); + this.values = [Math.max(Math.min(parseInt(r, 10), 255), 0), Math.max(Math.min(parseInt(g, 10), 255), 0), Math.max(Math.min(parseInt(b, 10), 255), 0), a == null ? 1 : Math.max(Math.min(parseFloat(a), 255), 0)]; + } + _createClass(Color2, [{ + key: "toRgbString", + value: function toRgbString() { + var _this$values = _slicedToArray(this.values, 4), r = _this$values[0], g = _this$values[1], b = _this$values[2], a = _this$values[3]; + if (a === 1) { + return "rgb(".concat(r, ", ").concat(g, ", ").concat(b, ")"); + } + return "rgba(".concat(r, ", ").concat(g, ", ").concat(b, ", ").concat(a, ")"); + } + }, { + key: "toHslString", + value: function toHslString() { + var _this$toHslaArray = this.toHslaArray(), _this$toHslaArray2 = _slicedToArray(_this$toHslaArray, 4), h = _this$toHslaArray2[0], s = _this$toHslaArray2[1], l = _this$toHslaArray2[2], a = _this$toHslaArray2[3]; + if (a === 1) { + return "hsl(".concat(h, ", ").concat(s, "%, ").concat(l, "%)"); + } + return "hsla(".concat(h, ", ").concat(s, "%, ").concat(l, "%, ").concat(a, ")"); + } + }, { + key: "toHexString", + value: function toHexString() { + var _this$values2 = _slicedToArray(this.values, 4), r = _this$values2[0], g = _this$values2[1], b = _this$values2[2], a = _this$values2[3]; + r = Number(r).toString(16).padStart(2, "0"); + g = Number(g).toString(16).padStart(2, "0"); + b = Number(b).toString(16).padStart(2, "0"); + a = a < 1 ? parseInt(a * 255, 10).toString(16).padStart(2, "0") : ""; + return "#".concat(r).concat(g).concat(b).concat(a); + } + }, { + key: "toRgbaArray", + value: function toRgbaArray() { + return this.values; + } + }, { + key: "toHslaArray", + value: function toHslaArray() { + var _this$values3 = _slicedToArray(this.values, 4), r = _this$values3[0], g = _this$values3[1], b = _this$values3[2], a = _this$values3[3]; + var _rgbToHsl = rgbToHsl(r, g, b), _rgbToHsl2 = _slicedToArray(_rgbToHsl, 3), h = _rgbToHsl2[0], s = _rgbToHsl2[1], l = _rgbToHsl2[2]; + return [h, s, l, a]; + } + }]); + return Color2; + }(); + function fromRgba(_ref5) { + var _ref6 = _slicedToArray(_ref5, 4), r = _ref6[0], g = _ref6[1], b = _ref6[2], a = _ref6[3]; + return new Color([r, g, b, a]); + } + function fromRgb(_ref7) { + var _ref8 = _slicedToArray(_ref7, 3), r = _ref8[0], g = _ref8[1], b = _ref8[2]; + return fromRgba([r, g, b, 1]); + } + function fromHsla(_ref9) { + var _ref10 = _slicedToArray(_ref9, 4), h = _ref10[0], s = _ref10[1], l = _ref10[2], a = _ref10[3]; + var _hslToRgb = hslToRgb(h, s, l), _hslToRgb2 = _slicedToArray(_hslToRgb, 3), r = _hslToRgb2[0], g = _hslToRgb2[1], b = _hslToRgb2[2]; + return fromRgba([r, g, b, a]); + } + function fromHsl(_ref11) { + var _ref12 = _slicedToArray(_ref11, 3), h = _ref12[0], s = _ref12[1], l = _ref12[2]; + return fromHsla([h, s, l, 1]); + } + function fromHexString(str) { + var _ref13 = hex.exec(str) || shortHex.exec(str), _ref14 = _slicedToArray(_ref13, 5), r = _ref14[1], g = _ref14[2], b = _ref14[3], a = _ref14[4]; + r = parseInt(r.length < 2 ? r.repeat(2) : r, 16); + g = parseInt(g.length < 2 ? g.repeat(2) : g, 16); + b = parseInt(b.length < 2 ? b.repeat(2) : b, 16); + a = a && (parseInt(a.length < 2 ? a.repeat(2) : a, 16) / 255).toPrecision(1) || 1; + return fromRgba([r, g, b, a]); + } + function fromRgbString(str) { + var _ref15 = rgb.exec(str) || rgbperc.exec(str) || rgbfn.exec(str) || rgbpercfn.exec(str), _ref16 = _slicedToArray(_ref15, 5), r = _ref16[1], g = _ref16[2], b = _ref16[3], a = _ref16[4]; + r = contains2(r, "%") ? parseInt(r, 10) * 255 / 100 : parseInt(r, 10); + g = contains2(g, "%") ? parseInt(g, 10) * 255 / 100 : parseInt(g, 10); + b = contains2(b, "%") > 0 ? parseInt(b, 10) * 255 / 100 : parseInt(b, 10); + a = a === void 0 ? 1 : parseFloat(a) / (contains2(a, "%") ? 100 : 1); + return fromRgba([r, g, b, a]); + } + function fromHslString(str) { + var _hsl$exec = hsl.exec(str), _hsl$exec2 = _slicedToArray(_hsl$exec, 6), h = _hsl$exec2[1], unit = _hsl$exec2[2], s = _hsl$exec2[3], l = _hsl$exec2[4], a = _hsl$exec2[5]; + unit = unit || "deg"; + h = (0, _cssUnitConverter["default"])(parseFloat(h), unit, "deg"); + s = parseFloat(s); + l = parseFloat(l); + a = a === void 0 ? 1 : parseFloat(a) / (contains2(a, "%") ? 100 : 1); + return fromHsla([h, s, l, a]); + } + function fromString2(str) { + if (_colorName["default"][str]) { + return fromRgb(_colorName["default"][str]); + } + if (hex.test(str) || shortHex.test(str)) { + return fromHexString(str); + } + if (rgb.test(str) || rgbperc.test(str) || rgbfn.test(str) || rgbpercfn.test(str)) { + return fromRgbString(str); + } + if (hsl.test(str)) { + return fromHslString(str); + } + return null; + } + var _default = { + fromString: fromString2, + fromRgb, + fromRgba, + fromHsl, + fromHsla + }; + exports2["default"] = _default; + } +}); + +// node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js +var require_isArguments = __commonJS({ + "node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var toStr = Object.prototype.toString; + module2.exports = function isArguments(value) { + var str = toStr.call(value); + var isArgs = str === "[object Arguments]"; + if (!isArgs) { + isArgs = str !== "[object Array]" && value !== null && typeof value === "object" && typeof value.length === "number" && value.length >= 0 && toStr.call(value.callee) === "[object Function]"; + } + return isArgs; + }; + } +}); + +// node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js +var require_implementation = __commonJS({ + "node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var keysShim; + if (!Object.keys) { + has = Object.prototype.hasOwnProperty; + toStr = Object.prototype.toString; + isArgs = require_isArguments(); + isEnumerable = Object.prototype.propertyIsEnumerable; + hasDontEnumBug = !isEnumerable.call({ toString: null }, "toString"); + hasProtoEnumBug = isEnumerable.call(function() { + }, "prototype"); + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ]; + equalsConstructorPrototype = function(o) { + var ctor = o.constructor; + return ctor && ctor.prototype === o; + }; + excludedKeys = { + $applicationCache: true, + $console: true, + $external: true, + $frame: true, + $frameElement: true, + $frames: true, + $innerHeight: true, + $innerWidth: true, + $onmozfullscreenchange: true, + $onmozfullscreenerror: true, + $outerHeight: true, + $outerWidth: true, + $pageXOffset: true, + $pageYOffset: true, + $parent: true, + $scrollLeft: true, + $scrollTop: true, + $scrollX: true, + $scrollY: true, + $self: true, + $webkitIndexedDB: true, + $webkitStorageInfo: true, + $window: true + }; + hasAutomationEqualityBug = function() { + if (typeof window === "undefined") { + return false; + } + for (var k in window) { + try { + if (!excludedKeys["$" + k] && has.call(window, k) && window[k] !== null && typeof window[k] === "object") { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } + } + } catch (e) { + return true; + } + } + return false; + }(); + equalsConstructorPrototypeIfNotBuggy = function(o) { + if (typeof window === "undefined" || !hasAutomationEqualityBug) { + return equalsConstructorPrototype(o); + } + try { + return equalsConstructorPrototype(o); + } catch (e) { + return false; + } + }; + keysShim = function keys(object) { + var isObject2 = object !== null && typeof object === "object"; + var isFunction2 = toStr.call(object) === "[object Function]"; + var isArguments = isArgs(object); + var isString = isObject2 && toStr.call(object) === "[object String]"; + var theKeys = []; + if (!isObject2 && !isFunction2 && !isArguments) { + throw new TypeError("Object.keys called on a non-object"); + } + var skipProto = hasProtoEnumBug && isFunction2; + if (isString && object.length > 0 && !has.call(object, 0)) { + for (var i = 0; i < object.length; ++i) { + theKeys.push(String(i)); + } + } + if (isArguments && object.length > 0) { + for (var j = 0; j < object.length; ++j) { + theKeys.push(String(j)); + } + } else { + for (var name in object) { + if (!(skipProto && name === "prototype") && has.call(object, name)) { + theKeys.push(String(name)); + } + } + } + if (hasDontEnumBug) { + var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); + for (var k = 0; k < dontEnums.length; ++k) { + if (!(skipConstructor && dontEnums[k] === "constructor") && has.call(object, dontEnums[k])) { + theKeys.push(dontEnums[k]); + } + } + } + return theKeys; + }; + } + var has; + var toStr; + var isArgs; + var isEnumerable; + var hasDontEnumBug; + var hasProtoEnumBug; + var dontEnums; + var equalsConstructorPrototype; + var excludedKeys; + var hasAutomationEqualityBug; + var equalsConstructorPrototypeIfNotBuggy; + module2.exports = keysShim; + } +}); + +// node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js +var require_object_keys = __commonJS({ + "node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var slice = Array.prototype.slice; + var isArgs = require_isArguments(); + var origKeys = Object.keys; + var keysShim = origKeys ? function keys(o) { + return origKeys(o); + } : require_implementation(); + var originalKeys = Object.keys; + keysShim.shim = function shimObjectKeys() { + if (Object.keys) { + var keysWorksWithArguments = function() { + var args = Object.keys(arguments); + return args && args.length === arguments.length; + }(1, 2); + if (!keysWorksWithArguments) { + Object.keys = function keys(object) { + if (isArgs(object)) { + return originalKeys(slice.call(object)); + } + return originalKeys(object); + }; + } + } else { + Object.keys = keysShim; + } + return Object.keys || keysShim; + }; + module2.exports = keysShim; + } +}); + +// node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js +var require_es_errors = __commonJS({ + "node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = Error; + } +}); + +// node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js +var require_eval = __commonJS({ + "node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/eval.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = EvalError; + } +}); + +// node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js +var require_range = __commonJS({ + "node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/range.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = RangeError; + } +}); + +// node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js +var require_ref = __commonJS({ + "node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/ref.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = ReferenceError; + } +}); + +// node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js +var require_syntax = __commonJS({ + "node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = SyntaxError; + } +}); + +// node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js +var require_type = __commonJS({ + "node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = TypeError; + } +}); + +// node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js +var require_uri = __commonJS({ + "node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/uri.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = URIError; + } +}); + +// node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js +var require_shams = __commonJS({ + "node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/shams.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = function hasSymbols() { + if (typeof Symbol !== "function" || typeof Object.getOwnPropertySymbols !== "function") { + return false; + } + if (typeof Symbol.iterator === "symbol") { + return true; + } + var obj = {}; + var sym = Symbol("test"); + var symObj = Object(sym); + if (typeof sym === "string") { + return false; + } + if (Object.prototype.toString.call(sym) !== "[object Symbol]") { + return false; + } + if (Object.prototype.toString.call(symObj) !== "[object Symbol]") { + return false; + } + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { + return false; + } + if (typeof Object.keys === "function" && Object.keys(obj).length !== 0) { + return false; + } + if (typeof Object.getOwnPropertyNames === "function" && Object.getOwnPropertyNames(obj).length !== 0) { + return false; + } + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { + return false; + } + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { + return false; + } + if (typeof Object.getOwnPropertyDescriptor === "function") { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { + return false; + } + } + return true; + }; + } +}); + +// node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js +var require_has_symbols = __commonJS({ + "node_modules/.pnpm/has-symbols@1.0.3/node_modules/has-symbols/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var origSymbol = typeof Symbol !== "undefined" && Symbol; + var hasSymbolSham = require_shams(); + module2.exports = function hasNativeSymbols() { + if (typeof origSymbol !== "function") { + return false; + } + if (typeof Symbol !== "function") { + return false; + } + if (typeof origSymbol("foo") !== "symbol") { + return false; + } + if (typeof Symbol("bar") !== "symbol") { + return false; + } + return hasSymbolSham(); + }; + } +}); + +// node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.js +var require_has_proto = __commonJS({ + "node_modules/.pnpm/has-proto@1.0.3/node_modules/has-proto/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var test = { + __proto__: null, + foo: {} + }; + var $Object = Object; + module2.exports = function hasProto() { + return { __proto__: test }.foo === test.foo && !(test instanceof $Object); + }; + } +}); + +// node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js +var require_implementation2 = __commonJS({ + "node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var ERROR_MESSAGE = "Function.prototype.bind called on incompatible "; + var toStr = Object.prototype.toString; + var max = Math.max; + var funcType = "[object Function]"; + var concatty = function concatty2(a, b) { + var arr = []; + for (var i = 0; i < a.length; i += 1) { + arr[i] = a[i]; + } + for (var j = 0; j < b.length; j += 1) { + arr[j + a.length] = b[j]; + } + return arr; + }; + var slicy = function slicy2(arrLike, offset) { + var arr = []; + for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) { + arr[j] = arrLike[i]; + } + return arr; + }; + var joiny = function(arr, joiner) { + var str = ""; + for (var i = 0; i < arr.length; i += 1) { + str += arr[i]; + if (i + 1 < arr.length) { + str += joiner; + } + } + return str; + }; + module2.exports = function bind(that) { + var target = this; + if (typeof target !== "function" || toStr.apply(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slicy(arguments, 1); + var bound; + var binder = function() { + if (this instanceof bound) { + var result = target.apply( + this, + concatty(args, arguments) + ); + if (Object(result) === result) { + return result; + } + return this; + } + return target.apply( + that, + concatty(args, arguments) + ); + }; + var boundLength = max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs[i] = "$" + i; + } + bound = Function("binder", "return function (" + joiny(boundArgs, ",") + "){ return binder.apply(this,arguments); }")(binder); + if (target.prototype) { + var Empty = function Empty2() { + }; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; + } +}); + +// node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js +var require_function_bind = __commonJS({ + "node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation2(); + module2.exports = Function.prototype.bind || implementation; + } +}); + +// node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js +var require_hasown = __commonJS({ + "node_modules/.pnpm/hasown@2.0.2/node_modules/hasown/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var call = Function.prototype.call; + var $hasOwn = Object.prototype.hasOwnProperty; + var bind = require_function_bind(); + module2.exports = bind.call(call, $hasOwn); + } +}); + +// node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/index.js +var require_get_intrinsic = __commonJS({ + "node_modules/.pnpm/get-intrinsic@1.2.4/node_modules/get-intrinsic/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var undefined2; + var $Error = require_es_errors(); + var $EvalError = require_eval(); + var $RangeError = require_range(); + var $ReferenceError = require_ref(); + var $SyntaxError = require_syntax(); + var $TypeError = require_type(); + var $URIError = require_uri(); + var $Function = Function; + var getEvalledConstructor = function(expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ").constructor;")(); + } catch (e) { + } + }; + var $gOPD = Object.getOwnPropertyDescriptor; + if ($gOPD) { + try { + $gOPD({}, ""); + } catch (e) { + $gOPD = null; + } + } + var throwTypeError = function() { + throw new $TypeError(); + }; + var ThrowTypeError = $gOPD ? function() { + try { + arguments.callee; + return throwTypeError; + } catch (calleeThrows) { + try { + return $gOPD(arguments, "callee").get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }() : throwTypeError; + var hasSymbols = require_has_symbols()(); + var hasProto = require_has_proto()(); + var getProto = Object.getPrototypeOf || (hasProto ? function(x) { + return x.__proto__; + } : null); + var needsEval = {}; + var TypedArray = typeof Uint8Array === "undefined" || !getProto ? undefined2 : getProto(Uint8Array); + var INTRINSICS = { + __proto__: null, + "%AggregateError%": typeof AggregateError === "undefined" ? undefined2 : AggregateError, + "%Array%": Array, + "%ArrayBuffer%": typeof ArrayBuffer === "undefined" ? undefined2 : ArrayBuffer, + "%ArrayIteratorPrototype%": hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined2, + "%AsyncFromSyncIteratorPrototype%": undefined2, + "%AsyncFunction%": needsEval, + "%AsyncGenerator%": needsEval, + "%AsyncGeneratorFunction%": needsEval, + "%AsyncIteratorPrototype%": needsEval, + "%Atomics%": typeof Atomics === "undefined" ? undefined2 : Atomics, + "%BigInt%": typeof BigInt === "undefined" ? undefined2 : BigInt, + "%BigInt64Array%": typeof BigInt64Array === "undefined" ? undefined2 : BigInt64Array, + "%BigUint64Array%": typeof BigUint64Array === "undefined" ? undefined2 : BigUint64Array, + "%Boolean%": Boolean, + "%DataView%": typeof DataView === "undefined" ? undefined2 : DataView, + "%Date%": Date, + "%decodeURI%": decodeURI, + "%decodeURIComponent%": decodeURIComponent, + "%encodeURI%": encodeURI, + "%encodeURIComponent%": encodeURIComponent, + "%Error%": $Error, + "%eval%": eval, + // eslint-disable-line no-eval + "%EvalError%": $EvalError, + "%Float32Array%": typeof Float32Array === "undefined" ? undefined2 : Float32Array, + "%Float64Array%": typeof Float64Array === "undefined" ? undefined2 : Float64Array, + "%FinalizationRegistry%": typeof FinalizationRegistry === "undefined" ? undefined2 : FinalizationRegistry, + "%Function%": $Function, + "%GeneratorFunction%": needsEval, + "%Int8Array%": typeof Int8Array === "undefined" ? undefined2 : Int8Array, + "%Int16Array%": typeof Int16Array === "undefined" ? undefined2 : Int16Array, + "%Int32Array%": typeof Int32Array === "undefined" ? undefined2 : Int32Array, + "%isFinite%": isFinite, + "%isNaN%": isNaN, + "%IteratorPrototype%": hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined2, + "%JSON%": typeof JSON === "object" ? JSON : undefined2, + "%Map%": typeof Map === "undefined" ? undefined2 : Map, + "%MapIteratorPrototype%": typeof Map === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Map())[Symbol.iterator]()), + "%Math%": Math, + "%Number%": Number, + "%Object%": Object, + "%parseFloat%": parseFloat, + "%parseInt%": parseInt, + "%Promise%": typeof Promise === "undefined" ? undefined2 : Promise, + "%Proxy%": typeof Proxy === "undefined" ? undefined2 : Proxy, + "%RangeError%": $RangeError, + "%ReferenceError%": $ReferenceError, + "%Reflect%": typeof Reflect === "undefined" ? undefined2 : Reflect, + "%RegExp%": RegExp, + "%Set%": typeof Set === "undefined" ? undefined2 : Set, + "%SetIteratorPrototype%": typeof Set === "undefined" || !hasSymbols || !getProto ? undefined2 : getProto((/* @__PURE__ */ new Set())[Symbol.iterator]()), + "%SharedArrayBuffer%": typeof SharedArrayBuffer === "undefined" ? undefined2 : SharedArrayBuffer, + "%String%": String, + "%StringIteratorPrototype%": hasSymbols && getProto ? getProto(""[Symbol.iterator]()) : undefined2, + "%Symbol%": hasSymbols ? Symbol : undefined2, + "%SyntaxError%": $SyntaxError, + "%ThrowTypeError%": ThrowTypeError, + "%TypedArray%": TypedArray, + "%TypeError%": $TypeError, + "%Uint8Array%": typeof Uint8Array === "undefined" ? undefined2 : Uint8Array, + "%Uint8ClampedArray%": typeof Uint8ClampedArray === "undefined" ? undefined2 : Uint8ClampedArray, + "%Uint16Array%": typeof Uint16Array === "undefined" ? undefined2 : Uint16Array, + "%Uint32Array%": typeof Uint32Array === "undefined" ? undefined2 : Uint32Array, + "%URIError%": $URIError, + "%WeakMap%": typeof WeakMap === "undefined" ? undefined2 : WeakMap, + "%WeakRef%": typeof WeakRef === "undefined" ? undefined2 : WeakRef, + "%WeakSet%": typeof WeakSet === "undefined" ? undefined2 : WeakSet + }; + if (getProto) { + try { + null.error; + } catch (e) { + errorProto = getProto(getProto(e)); + INTRINSICS["%Error.prototype%"] = errorProto; + } + } + var errorProto; + var doEval = function doEval2(name) { + var value; + if (name === "%AsyncFunction%") { + value = getEvalledConstructor("async function () {}"); + } else if (name === "%GeneratorFunction%") { + value = getEvalledConstructor("function* () {}"); + } else if (name === "%AsyncGeneratorFunction%") { + value = getEvalledConstructor("async function* () {}"); + } else if (name === "%AsyncGenerator%") { + var fn = doEval2("%AsyncGeneratorFunction%"); + if (fn) { + value = fn.prototype; + } + } else if (name === "%AsyncIteratorPrototype%") { + var gen = doEval2("%AsyncGenerator%"); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + INTRINSICS[name] = value; + return value; + }; + var LEGACY_ALIASES = { + __proto__: null, + "%ArrayBufferPrototype%": ["ArrayBuffer", "prototype"], + "%ArrayPrototype%": ["Array", "prototype"], + "%ArrayProto_entries%": ["Array", "prototype", "entries"], + "%ArrayProto_forEach%": ["Array", "prototype", "forEach"], + "%ArrayProto_keys%": ["Array", "prototype", "keys"], + "%ArrayProto_values%": ["Array", "prototype", "values"], + "%AsyncFunctionPrototype%": ["AsyncFunction", "prototype"], + "%AsyncGenerator%": ["AsyncGeneratorFunction", "prototype"], + "%AsyncGeneratorPrototype%": ["AsyncGeneratorFunction", "prototype", "prototype"], + "%BooleanPrototype%": ["Boolean", "prototype"], + "%DataViewPrototype%": ["DataView", "prototype"], + "%DatePrototype%": ["Date", "prototype"], + "%ErrorPrototype%": ["Error", "prototype"], + "%EvalErrorPrototype%": ["EvalError", "prototype"], + "%Float32ArrayPrototype%": ["Float32Array", "prototype"], + "%Float64ArrayPrototype%": ["Float64Array", "prototype"], + "%FunctionPrototype%": ["Function", "prototype"], + "%Generator%": ["GeneratorFunction", "prototype"], + "%GeneratorPrototype%": ["GeneratorFunction", "prototype", "prototype"], + "%Int8ArrayPrototype%": ["Int8Array", "prototype"], + "%Int16ArrayPrototype%": ["Int16Array", "prototype"], + "%Int32ArrayPrototype%": ["Int32Array", "prototype"], + "%JSONParse%": ["JSON", "parse"], + "%JSONStringify%": ["JSON", "stringify"], + "%MapPrototype%": ["Map", "prototype"], + "%NumberPrototype%": ["Number", "prototype"], + "%ObjectPrototype%": ["Object", "prototype"], + "%ObjProto_toString%": ["Object", "prototype", "toString"], + "%ObjProto_valueOf%": ["Object", "prototype", "valueOf"], + "%PromisePrototype%": ["Promise", "prototype"], + "%PromiseProto_then%": ["Promise", "prototype", "then"], + "%Promise_all%": ["Promise", "all"], + "%Promise_reject%": ["Promise", "reject"], + "%Promise_resolve%": ["Promise", "resolve"], + "%RangeErrorPrototype%": ["RangeError", "prototype"], + "%ReferenceErrorPrototype%": ["ReferenceError", "prototype"], + "%RegExpPrototype%": ["RegExp", "prototype"], + "%SetPrototype%": ["Set", "prototype"], + "%SharedArrayBufferPrototype%": ["SharedArrayBuffer", "prototype"], + "%StringPrototype%": ["String", "prototype"], + "%SymbolPrototype%": ["Symbol", "prototype"], + "%SyntaxErrorPrototype%": ["SyntaxError", "prototype"], + "%TypedArrayPrototype%": ["TypedArray", "prototype"], + "%TypeErrorPrototype%": ["TypeError", "prototype"], + "%Uint8ArrayPrototype%": ["Uint8Array", "prototype"], + "%Uint8ClampedArrayPrototype%": ["Uint8ClampedArray", "prototype"], + "%Uint16ArrayPrototype%": ["Uint16Array", "prototype"], + "%Uint32ArrayPrototype%": ["Uint32Array", "prototype"], + "%URIErrorPrototype%": ["URIError", "prototype"], + "%WeakMapPrototype%": ["WeakMap", "prototype"], + "%WeakSetPrototype%": ["WeakSet", "prototype"] + }; + var bind = require_function_bind(); + var hasOwn = require_hasown(); + var $concat = bind.call(Function.call, Array.prototype.concat); + var $spliceApply = bind.call(Function.apply, Array.prototype.splice); + var $replace = bind.call(Function.call, String.prototype.replace); + var $strSlice = bind.call(Function.call, String.prototype.slice); + var $exec = bind.call(Function.call, RegExp.prototype.exec); + var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; + var reEscapeChar = /\\(\\)?/g; + var stringToPath = function stringToPath2(string) { + var first2 = $strSlice(string, 0, 1); + var last2 = $strSlice(string, -1); + if (first2 === "%" && last2 !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected closing `%`"); + } else if (last2 === "%" && first2 !== "%") { + throw new $SyntaxError("invalid intrinsic syntax, expected opening `%`"); + } + var result = []; + $replace(string, rePropName, function(match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, "$1") : number || match; + }); + return result; + }; + var getBaseIntrinsic = function getBaseIntrinsic2(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = "%" + alias[0] + "%"; + } + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === "undefined" && !allowMissing) { + throw new $TypeError("intrinsic " + name + " exists, but is not available. Please file an issue!"); + } + return { + alias, + name: intrinsicName, + value + }; + } + throw new $SyntaxError("intrinsic " + name + " does not exist!"); + }; + module2.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== "string" || name.length === 0) { + throw new $TypeError("intrinsic name must be a non-empty string"); + } + if (arguments.length > 1 && typeof allowMissing !== "boolean") { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError("`%` may not be present anywhere but at the beginning and end of the intrinsic name"); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ""; + var intrinsic = getBaseIntrinsic("%" + intrinsicBaseName + "%", allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first2 = $strSlice(part, 0, 1); + var last2 = $strSlice(part, -1); + if ((first2 === '"' || first2 === "'" || first2 === "`" || (last2 === '"' || last2 === "'" || last2 === "`")) && first2 !== last2) { + throw new $SyntaxError("property names with quotes must have matching quotes"); + } + if (part === "constructor" || !isOwn) { + skipFurtherCaching = true; + } + intrinsicBaseName += "." + part; + intrinsicRealName = "%" + intrinsicBaseName + "%"; + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError("base intrinsic for " + name + " exists, but the property is not available."); + } + return void 0; + } + if ($gOPD && i + 1 >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + if (isOwn && "get" in desc && !("originalValue" in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; + }; + } +}); + +// node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.js +var require_es_define_property = __commonJS({ + "node_modules/.pnpm/es-define-property@1.0.0/node_modules/es-define-property/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var $defineProperty = GetIntrinsic("%Object.defineProperty%", true) || false; + if ($defineProperty) { + try { + $defineProperty({}, "a", { value: 1 }); + } catch (e) { + $defineProperty = false; + } + } + module2.exports = $defineProperty; + } +}); + +// node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js +var require_gopd = __commonJS({ + "node_modules/.pnpm/gopd@1.0.1/node_modules/gopd/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var $gOPD = GetIntrinsic("%Object.getOwnPropertyDescriptor%", true); + if ($gOPD) { + try { + $gOPD([], "length"); + } catch (e) { + $gOPD = null; + } + } + module2.exports = $gOPD; + } +}); + +// node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js +var require_define_data_property = __commonJS({ + "node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $defineProperty = require_es_define_property(); + var $SyntaxError = require_syntax(); + var $TypeError = require_type(); + var gopd = require_gopd(); + module2.exports = function defineDataProperty(obj, property, value) { + if (!obj || typeof obj !== "object" && typeof obj !== "function") { + throw new $TypeError("`obj` must be an object or a function`"); + } + if (typeof property !== "string" && typeof property !== "symbol") { + throw new $TypeError("`property` must be a string or a symbol`"); + } + if (arguments.length > 3 && typeof arguments[3] !== "boolean" && arguments[3] !== null) { + throw new $TypeError("`nonEnumerable`, if provided, must be a boolean or null"); + } + if (arguments.length > 4 && typeof arguments[4] !== "boolean" && arguments[4] !== null) { + throw new $TypeError("`nonWritable`, if provided, must be a boolean or null"); + } + if (arguments.length > 5 && typeof arguments[5] !== "boolean" && arguments[5] !== null) { + throw new $TypeError("`nonConfigurable`, if provided, must be a boolean or null"); + } + if (arguments.length > 6 && typeof arguments[6] !== "boolean") { + throw new $TypeError("`loose`, if provided, must be a boolean"); + } + var nonEnumerable = arguments.length > 3 ? arguments[3] : null; + var nonWritable = arguments.length > 4 ? arguments[4] : null; + var nonConfigurable = arguments.length > 5 ? arguments[5] : null; + var loose = arguments.length > 6 ? arguments[6] : false; + var desc = !!gopd && gopd(obj, property); + if ($defineProperty) { + $defineProperty(obj, property, { + configurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable, + enumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable, + value, + writable: nonWritable === null && desc ? desc.writable : !nonWritable + }); + } else if (loose || !nonEnumerable && !nonWritable && !nonConfigurable) { + obj[property] = value; + } else { + throw new $SyntaxError("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable."); + } + }; + } +}); + +// node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js +var require_has_property_descriptors = __commonJS({ + "node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $defineProperty = require_es_define_property(); + var hasPropertyDescriptors = function hasPropertyDescriptors2() { + return !!$defineProperty; + }; + hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { + if (!$defineProperty) { + return null; + } + try { + return $defineProperty([], "length", { value: 1 }).length !== 1; + } catch (e) { + return true; + } + }; + module2.exports = hasPropertyDescriptors; + } +}); + +// node_modules/.pnpm/define-properties@1.2.1/node_modules/define-properties/index.js +var require_define_properties = __commonJS({ + "node_modules/.pnpm/define-properties@1.2.1/node_modules/define-properties/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var keys = require_object_keys(); + var hasSymbols = typeof Symbol === "function" && typeof Symbol("foo") === "symbol"; + var toStr = Object.prototype.toString; + var concat = Array.prototype.concat; + var defineDataProperty = require_define_data_property(); + var isFunction2 = function(fn) { + return typeof fn === "function" && toStr.call(fn) === "[object Function]"; + }; + var supportsDescriptors = require_has_property_descriptors()(); + var defineProperty = function(object, name, value, predicate) { + if (name in object) { + if (predicate === true) { + if (object[name] === value) { + return; + } + } else if (!isFunction2(predicate) || !predicate()) { + return; + } + } + if (supportsDescriptors) { + defineDataProperty(object, name, value, true); + } else { + defineDataProperty(object, name, value); + } + }; + var defineProperties = function(object, map) { + var predicates = arguments.length > 2 ? arguments[2] : {}; + var props = keys(map); + if (hasSymbols) { + props = concat.call(props, Object.getOwnPropertySymbols(map)); + } + for (var i = 0; i < props.length; i += 1) { + defineProperty(object, props[i], map[props[i]], predicates[props[i]]); + } + }; + defineProperties.supportsDescriptors = !!supportsDescriptors; + module2.exports = defineProperties; + } +}); + +// node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js +var require_set_function_length = __commonJS({ + "node_modules/.pnpm/set-function-length@1.2.2/node_modules/set-function-length/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var define2 = require_define_data_property(); + var hasDescriptors = require_has_property_descriptors()(); + var gOPD = require_gopd(); + var $TypeError = require_type(); + var $floor = GetIntrinsic("%Math.floor%"); + module2.exports = function setFunctionLength(fn, length) { + if (typeof fn !== "function") { + throw new $TypeError("`fn` is not a function"); + } + if (typeof length !== "number" || length < 0 || length > 4294967295 || $floor(length) !== length) { + throw new $TypeError("`length` must be a positive 32-bit integer"); + } + var loose = arguments.length > 2 && !!arguments[2]; + var functionLengthIsConfigurable = true; + var functionLengthIsWritable = true; + if ("length" in fn && gOPD) { + var desc = gOPD(fn, "length"); + if (desc && !desc.configurable) { + functionLengthIsConfigurable = false; + } + if (desc && !desc.writable) { + functionLengthIsWritable = false; + } + } + if (functionLengthIsConfigurable || functionLengthIsWritable || !loose) { + if (hasDescriptors) { + define2( + /** @type {Parameters[0]} */ + fn, + "length", + length, + true, + true + ); + } else { + define2( + /** @type {Parameters[0]} */ + fn, + "length", + length + ); + } + } + return fn; + }; + } +}); + +// node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js +var require_call_bind = __commonJS({ + "node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var bind = require_function_bind(); + var GetIntrinsic = require_get_intrinsic(); + var setFunctionLength = require_set_function_length(); + var $TypeError = require_type(); + var $apply = GetIntrinsic("%Function.prototype.apply%"); + var $call = GetIntrinsic("%Function.prototype.call%"); + var $reflectApply = GetIntrinsic("%Reflect.apply%", true) || bind.call($call, $apply); + var $defineProperty = require_es_define_property(); + var $max = GetIntrinsic("%Math.max%"); + module2.exports = function callBind(originalFunction) { + if (typeof originalFunction !== "function") { + throw new $TypeError("a function is required"); + } + var func = $reflectApply(bind, $call, arguments); + return setFunctionLength( + func, + 1 + $max(0, originalFunction.length - (arguments.length - 1)), + true + ); + }; + var applyBind = function applyBind2() { + return $reflectApply(bind, $apply, arguments); + }; + if ($defineProperty) { + $defineProperty(module2.exports, "apply", { value: applyBind }); + } else { + module2.exports.apply = applyBind; + } + } +}); + +// node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js +var require_callBound = __commonJS({ + "node_modules/.pnpm/call-bind@1.0.7/node_modules/call-bind/callBound.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var callBind = require_call_bind(); + var $indexOf = callBind(GetIntrinsic("String.prototype.indexOf")); + module2.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === "function" && $indexOf(name, ".prototype.") > -1) { + return callBind(intrinsic); + } + return intrinsic; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/implementation.js +var require_implementation3 = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var objectKeys = require_object_keys(); + var hasSymbols = require_shams()(); + var callBound = require_callBound(); + var toObject = Object; + var $push = callBound("Array.prototype.push"); + var $propIsEnumerable = callBound("Object.prototype.propertyIsEnumerable"); + var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null; + module2.exports = function assign2(target, source1) { + if (target == null) { + throw new TypeError("target must be an object"); + } + var to = toObject(target); + if (arguments.length === 1) { + return to; + } + for (var s = 1; s < arguments.length; ++s) { + var from = toObject(arguments[s]); + var keys = objectKeys(from); + var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols); + if (getSymbols) { + var syms = getSymbols(from); + for (var j = 0; j < syms.length; ++j) { + var key2 = syms[j]; + if ($propIsEnumerable(from, key2)) { + $push(keys, key2); + } + } + } + for (var i = 0; i < keys.length; ++i) { + var nextKey = keys[i]; + if ($propIsEnumerable(from, nextKey)) { + var propValue = from[nextKey]; + to[nextKey] = propValue; + } + } + } + return to; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/polyfill.js +var require_polyfill = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/polyfill.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation3(); + var lacksProperEnumerationOrder = function() { + if (!Object.assign) { + return false; + } + var str = "abcdefghijklmnopqrst"; + var letters = str.split(""); + var map = {}; + for (var i = 0; i < letters.length; ++i) { + map[letters[i]] = letters[i]; + } + var obj = Object.assign({}, map); + var actual = ""; + for (var k in obj) { + actual += k; + } + return str !== actual; + }; + var assignHasPendingExceptions = function() { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + var thrower = Object.preventExtensions({ 1: 2 }); + try { + Object.assign(thrower, "xy"); + } catch (e) { + return thrower[1] === "y"; + } + return false; + }; + module2.exports = function getPolyfill() { + if (!Object.assign) { + return implementation; + } + if (lacksProperEnumerationOrder()) { + return implementation; + } + if (assignHasPendingExceptions()) { + return implementation; + } + return Object.assign; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/shim.js +var require_shim = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/shim.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var define2 = require_define_properties(); + var getPolyfill = require_polyfill(); + module2.exports = function shimAssign() { + var polyfill = getPolyfill(); + define2( + Object, + { assign: polyfill }, + { assign: function() { + return Object.assign !== polyfill; + } } + ); + return polyfill; + }; + } +}); + +// node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/index.js +var require_object = __commonJS({ + "node_modules/.pnpm/object.assign@4.1.5/node_modules/object.assign/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var defineProperties = require_define_properties(); + var callBind = require_call_bind(); + var implementation = require_implementation3(); + var getPolyfill = require_polyfill(); + var shim = require_shim(); + var polyfill = callBind.apply(getPolyfill()); + var bound = function assign2(target, source1) { + return polyfill(Object, arguments); + }; + defineProperties(bound, { + getPolyfill, + implementation, + shim + }); + module2.exports = bound; + } +}); + +// node_modules/.pnpm/functions-have-names@1.2.3/node_modules/functions-have-names/index.js +var require_functions_have_names = __commonJS({ + "node_modules/.pnpm/functions-have-names@1.2.3/node_modules/functions-have-names/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var functionsHaveNames = function functionsHaveNames2() { + return typeof function f() { + }.name === "string"; + }; + var gOPD = Object.getOwnPropertyDescriptor; + if (gOPD) { + try { + gOPD([], "length"); + } catch (e) { + gOPD = null; + } + } + functionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() { + if (!functionsHaveNames() || !gOPD) { + return false; + } + var desc = gOPD(function() { + }, "name"); + return !!desc && !!desc.configurable; + }; + var $bind = Function.prototype.bind; + functionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() { + return functionsHaveNames() && typeof $bind === "function" && function f() { + }.bind().name !== ""; + }; + module2.exports = functionsHaveNames; + } +}); + +// node_modules/.pnpm/set-function-name@2.0.2/node_modules/set-function-name/index.js +var require_set_function_name = __commonJS({ + "node_modules/.pnpm/set-function-name@2.0.2/node_modules/set-function-name/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var define2 = require_define_data_property(); + var hasDescriptors = require_has_property_descriptors()(); + var functionsHaveConfigurableNames = require_functions_have_names().functionsHaveConfigurableNames(); + var $TypeError = require_type(); + module2.exports = function setFunctionName(fn, name) { + if (typeof fn !== "function") { + throw new $TypeError("`fn` is not a function"); + } + var loose = arguments.length > 2 && !!arguments[2]; + if (!loose || functionsHaveConfigurableNames) { + if (hasDescriptors) { + define2( + /** @type {Parameters[0]} */ + fn, + "name", + name, + true, + true + ); + } else { + define2( + /** @type {Parameters[0]} */ + fn, + "name", + name + ); + } + } + return fn; + }; + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/implementation.js +var require_implementation4 = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var setFunctionName = require_set_function_name(); + var $TypeError = require_type(); + var $Object = Object; + module2.exports = setFunctionName(function flags() { + if (this == null || this !== $Object(this)) { + throw new $TypeError("RegExp.prototype.flags getter called on non-object"); + } + var result = ""; + if (this.hasIndices) { + result += "d"; + } + if (this.global) { + result += "g"; + } + if (this.ignoreCase) { + result += "i"; + } + if (this.multiline) { + result += "m"; + } + if (this.dotAll) { + result += "s"; + } + if (this.unicode) { + result += "u"; + } + if (this.unicodeSets) { + result += "v"; + } + if (this.sticky) { + result += "y"; + } + return result; + }, "get flags", true); + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/polyfill.js +var require_polyfill2 = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/polyfill.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation4(); + var supportsDescriptors = require_define_properties().supportsDescriptors; + var $gOPD = Object.getOwnPropertyDescriptor; + module2.exports = function getPolyfill() { + if (supportsDescriptors && /a/mig.flags === "gim") { + var descriptor = $gOPD(RegExp.prototype, "flags"); + if (descriptor && typeof descriptor.get === "function" && typeof RegExp.prototype.dotAll === "boolean" && typeof RegExp.prototype.hasIndices === "boolean") { + var calls = ""; + var o = {}; + Object.defineProperty(o, "hasIndices", { + get: function() { + calls += "d"; + } + }); + Object.defineProperty(o, "sticky", { + get: function() { + calls += "y"; + } + }); + if (calls === "dy") { + return descriptor.get; + } + } + } + return implementation; + }; + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/shim.js +var require_shim2 = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/shim.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var supportsDescriptors = require_define_properties().supportsDescriptors; + var getPolyfill = require_polyfill2(); + var gOPD = Object.getOwnPropertyDescriptor; + var defineProperty = Object.defineProperty; + var TypeErr = TypeError; + var getProto = Object.getPrototypeOf; + var regex2 = /a/; + module2.exports = function shimFlags() { + if (!supportsDescriptors || !getProto) { + throw new TypeErr("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors"); + } + var polyfill = getPolyfill(); + var proto = getProto(regex2); + var descriptor = gOPD(proto, "flags"); + if (!descriptor || descriptor.get !== polyfill) { + defineProperty(proto, "flags", { + configurable: true, + enumerable: false, + get: polyfill + }); + } + return polyfill; + }; + } +}); + +// node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/index.js +var require_regexp_prototype = __commonJS({ + "node_modules/.pnpm/regexp.prototype.flags@1.5.2/node_modules/regexp.prototype.flags/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var define2 = require_define_properties(); + var callBind = require_call_bind(); + var implementation = require_implementation4(); + var getPolyfill = require_polyfill2(); + var shim = require_shim2(); + var flagsBound = callBind(getPolyfill()); + define2(flagsBound, { + getPolyfill, + implementation, + shim + }); + module2.exports = flagsBound; + } +}); + +// node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js +var require_shams2 = __commonJS({ + "node_modules/.pnpm/has-tostringtag@1.0.2/node_modules/has-tostringtag/shams.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var hasSymbols = require_shams(); + module2.exports = function hasToStringTagShams() { + return hasSymbols() && !!Symbol.toStringTag; + }; + } +}); + +// node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js +var require_is_arguments = __commonJS({ + "node_modules/.pnpm/is-arguments@1.1.1/node_modules/is-arguments/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var hasToStringTag = require_shams2()(); + var callBound = require_callBound(); + var $toString = callBound("Object.prototype.toString"); + var isStandardArguments = function isArguments(value) { + if (hasToStringTag && value && typeof value === "object" && Symbol.toStringTag in value) { + return false; + } + return $toString(value) === "[object Arguments]"; + }; + var isLegacyArguments = function isArguments(value) { + if (isStandardArguments(value)) { + return true; + } + return value !== null && typeof value === "object" && typeof value.length === "number" && value.length >= 0 && $toString(value) !== "[object Array]" && $toString(value.callee) === "[object Function]"; + }; + var supportsStandardArguments = function() { + return isStandardArguments(arguments); + }(); + isStandardArguments.isLegacyArguments = isLegacyArguments; + module2.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments; + } +}); + +// (disabled):node_modules/.pnpm/object-inspect@1.13.2/node_modules/object-inspect/util.inspect +var require_util = __commonJS({ + "(disabled):node_modules/.pnpm/object-inspect@1.13.2/node_modules/object-inspect/util.inspect"() { + init_polyfill_buffer(); + } +}); + +// node_modules/.pnpm/object-inspect@1.13.2/node_modules/object-inspect/index.js +var require_object_inspect = __commonJS({ + "node_modules/.pnpm/object-inspect@1.13.2/node_modules/object-inspect/index.js"(exports2, module2) { + init_polyfill_buffer(); + var hasMap = typeof Map === "function" && Map.prototype; + var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, "size") : null; + var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === "function" ? mapSizeDescriptor.get : null; + var mapForEach = hasMap && Map.prototype.forEach; + var hasSet = typeof Set === "function" && Set.prototype; + var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, "size") : null; + var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === "function" ? setSizeDescriptor.get : null; + var setForEach = hasSet && Set.prototype.forEach; + var hasWeakMap = typeof WeakMap === "function" && WeakMap.prototype; + var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; + var hasWeakSet = typeof WeakSet === "function" && WeakSet.prototype; + var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; + var hasWeakRef = typeof WeakRef === "function" && WeakRef.prototype; + var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; + var booleanValueOf = Boolean.prototype.valueOf; + var objectToString2 = Object.prototype.toString; + var functionToString = Function.prototype.toString; + var $match = String.prototype.match; + var $slice = String.prototype.slice; + var $replace = String.prototype.replace; + var $toUpperCase = String.prototype.toUpperCase; + var $toLowerCase = String.prototype.toLowerCase; + var $test = RegExp.prototype.test; + var $concat = Array.prototype.concat; + var $join = Array.prototype.join; + var $arrSlice = Array.prototype.slice; + var $floor = Math.floor; + var bigIntValueOf = typeof BigInt === "function" ? BigInt.prototype.valueOf : null; + var gOPS = Object.getOwnPropertySymbols; + var symToString = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? Symbol.prototype.toString : null; + var hasShammedSymbols = typeof Symbol === "function" && typeof Symbol.iterator === "object"; + var toStringTag = typeof Symbol === "function" && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? "object" : "symbol") ? Symbol.toStringTag : null; + var isEnumerable = Object.prototype.propertyIsEnumerable; + var gPO = (typeof Reflect === "function" ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ([].__proto__ === Array.prototype ? function(O) { + return O.__proto__; + } : null); + function addNumericSeparator(num2, str) { + if (num2 === Infinity || num2 === -Infinity || num2 !== num2 || num2 && num2 > -1e3 && num2 < 1e3 || $test.call(/e/, str)) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num2 === "number") { + var int = num2 < 0 ? -$floor(-num2) : $floor(num2); + if (int !== num2) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, "$&_") + "." + $replace.call($replace.call(dec, /([0-9]{3})/g, "$&_"), /_$/, ""); + } + } + return $replace.call(str, sepRegex, "$&_"); + } + var utilInspect = require_util(); + var inspectCustom = utilInspect.custom; + var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + module2.exports = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + if (has(opts, "quoteStyle") && (opts.quoteStyle !== "single" && opts.quoteStyle !== "double")) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if (has(opts, "maxStringLength") && (typeof opts.maxStringLength === "number" ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity : opts.maxStringLength !== null)) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, "customInspect") ? opts.customInspect : true; + if (typeof customInspect !== "boolean" && customInspect !== "symbol") { + throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`"); + } + if (has(opts, "indent") && opts.indent !== null && opts.indent !== " " && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, "numericSeparator") && typeof opts.numericSeparator !== "boolean") { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + if (typeof obj === "undefined") { + return "undefined"; + } + if (obj === null) { + return "null"; + } + if (typeof obj === "boolean") { + return obj ? "true" : "false"; + } + if (typeof obj === "string") { + return inspectString(obj, opts); + } + if (typeof obj === "number") { + if (obj === 0) { + return Infinity / obj > 0 ? "0" : "-0"; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === "bigint") { + var bigIntStr = String(obj) + "n"; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + var maxDepth = typeof opts.depth === "undefined" ? 5 : opts.depth; + if (typeof depth === "undefined") { + depth = 0; + } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === "object") { + return isArray(obj) ? "[Array]" : "[Object]"; + } + var indent2 = getIndent(opts, depth); + if (typeof seen === "undefined") { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return "[Circular]"; + } + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, "quoteStyle")) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + if (typeof obj === "function" && !isRegExp(obj)) { + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return "[Function" + (name ? ": " + name : " (anonymous)") + "]" + (keys.length > 0 ? " { " + $join.call(keys, ", ") + " }" : ""); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, "$1") : symToString.call(obj); + return typeof obj === "object" && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = "<" + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += " " + attrs[i].name + "=" + wrapQuotes(quote(attrs[i].value), "double", opts); + } + s += ">"; + if (obj.childNodes && obj.childNodes.length) { + s += "..."; + } + s += ""; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { + return "[]"; + } + var xs = arrObjKeys(obj, inspect); + if (indent2 && !singleLineValues(xs)) { + return "[" + indentedJoin(xs, indent2) + "]"; + } + return "[ " + $join.call(xs, ", ") + " ]"; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!("cause" in Error.prototype) && "cause" in obj && !isEnumerable.call(obj, "cause")) { + return "{ [" + String(obj) + "] " + $join.call($concat.call("[cause]: " + inspect(obj.cause), parts), ", ") + " }"; + } + if (parts.length === 0) { + return "[" + String(obj) + "]"; + } + return "{ [" + String(obj) + "] " + $join.call(parts, ", ") + " }"; + } + if (typeof obj === "object" && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === "function" && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); + } else if (customInspect !== "symbol" && typeof obj.inspect === "function") { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function(value, key2) { + mapParts.push(inspect(key2, obj, true) + " => " + inspect(value, obj)); + }); + } + return collectionOf("Map", mapSize.call(obj), mapParts, indent2); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function(value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf("Set", setSize.call(obj), setParts, indent2); + } + if (isWeakMap(obj)) { + return weakCollectionOf("WeakMap"); + } + if (isWeakSet(obj)) { + return weakCollectionOf("WeakSet"); + } + if (isWeakRef(obj)) { + return weakCollectionOf("WeakRef"); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + if (typeof window !== "undefined" && obj === window) { + return "{ [object Window] }"; + } + if (typeof globalThis !== "undefined" && obj === globalThis || typeof global !== "undefined" && obj === global) { + return "{ [object globalThis] }"; + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? "" : "null prototype"; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? "Object" : ""; + var constructorTag = isPlainObject || typeof obj.constructor !== "function" ? "" : obj.constructor.name ? obj.constructor.name + " " : ""; + var tag2 = constructorTag + (stringTag || protoTag ? "[" + $join.call($concat.call([], stringTag || [], protoTag || []), ": ") + "] " : ""); + if (ys.length === 0) { + return tag2 + "{}"; + } + if (indent2) { + return tag2 + "{" + indentedJoin(ys, indent2) + "}"; + } + return tag2 + "{ " + $join.call(ys, ", ") + " }"; + } + return String(obj); + }; + function wrapQuotes(s, defaultStyle, opts) { + var quoteChar = (opts.quoteStyle || defaultStyle) === "double" ? '"' : "'"; + return quoteChar + s + quoteChar; + } + function quote(s) { + return $replace.call(String(s), /"/g, """); + } + function isArray(obj) { + return toStr(obj) === "[object Array]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isDate(obj) { + return toStr(obj) === "[object Date]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isRegExp(obj) { + return toStr(obj) === "[object RegExp]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isError(obj) { + return toStr(obj) === "[object Error]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isString(obj) { + return toStr(obj) === "[object String]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isNumber(obj) { + return toStr(obj) === "[object Number]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isBoolean(obj) { + return toStr(obj) === "[object Boolean]" && (!toStringTag || !(typeof obj === "object" && toStringTag in obj)); + } + function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === "object" && obj instanceof Symbol; + } + if (typeof obj === "symbol") { + return true; + } + if (!obj || typeof obj !== "object" || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) { + } + return false; + } + function isBigInt(obj) { + if (!obj || typeof obj !== "object" || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) { + } + return false; + } + var hasOwn = Object.prototype.hasOwnProperty || function(key2) { + return key2 in this; + }; + function has(obj, key2) { + return hasOwn.call(obj, key2); + } + function toStr(obj) { + return objectToString2.call(obj); + } + function nameOf(f) { + if (f.name) { + return f.name; + } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { + return m[1]; + } + return null; + } + function indexOf(xs, x) { + if (xs.indexOf) { + return xs.indexOf(x); + } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { + return i; + } + } + return -1; + } + function isMap(x) { + if (!mapSize || !x || typeof x !== "object") { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; + } catch (e) { + } + return false; + } + function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== "object") { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; + } catch (e) { + } + return false; + } + function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== "object") { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) { + } + return false; + } + function isSet(x) { + if (!setSize || !x || typeof x !== "object") { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; + } catch (e) { + } + return false; + } + function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== "object") { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; + } catch (e) { + } + return false; + } + function isElement(x) { + if (!x || typeof x !== "object") { + return false; + } + if (typeof HTMLElement !== "undefined" && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === "string" && typeof x.getAttribute === "function"; + } + function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = "... " + remaining + " more character" + (remaining > 1 ? "s" : ""); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + var s = $replace.call($replace.call(str, /(['\\])/g, "\\$1"), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, "single", opts); + } + function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: "b", + 9: "t", + 10: "n", + 12: "f", + 13: "r" + }[n]; + if (x) { + return "\\" + x; + } + return "\\x" + (n < 16 ? "0" : "") + $toUpperCase.call(n.toString(16)); + } + function markBoxed(str) { + return "Object(" + str + ")"; + } + function weakCollectionOf(type) { + return type + " { ? }"; + } + function collectionOf(type, size, entries, indent2) { + var joinedEntries = indent2 ? indentedJoin(entries, indent2) : $join.call(entries, ", "); + return type + " (" + size + ") {" + joinedEntries + "}"; + } + function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], "\n") >= 0) { + return false; + } + } + return true; + } + function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === " ") { + baseIndent = " "; + } else if (typeof opts.indent === "number" && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), " "); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; + } + function indentedJoin(xs, indent2) { + if (xs.length === 0) { + return ""; + } + var lineJoiner = "\n" + indent2.prev + indent2.base; + return lineJoiner + $join.call(xs, "," + lineJoiner) + "\n" + indent2.prev; + } + function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ""; + } + } + var syms = typeof gOPS === "function" ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap["$" + syms[k]] = syms[k]; + } + } + for (var key2 in obj) { + if (!has(obj, key2)) { + continue; + } + if (isArr && String(Number(key2)) === key2 && key2 < obj.length) { + continue; + } + if (hasShammedSymbols && symMap["$" + key2] instanceof Symbol) { + continue; + } else if ($test.call(/[^\w$]/, key2)) { + xs.push(inspect(key2, obj) + ": " + inspect(obj[key2], obj)); + } else { + xs.push(key2 + ": " + inspect(obj[key2], obj)); + } + } + if (typeof gOPS === "function") { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push("[" + inspect(syms[j]) + "]: " + inspect(obj[syms[j]], obj)); + } + } + } + return xs; + } + } +}); + +// node_modules/.pnpm/side-channel@1.0.6/node_modules/side-channel/index.js +var require_side_channel = __commonJS({ + "node_modules/.pnpm/side-channel@1.0.6/node_modules/side-channel/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_callBound(); + var inspect = require_object_inspect(); + var $TypeError = require_type(); + var $WeakMap = GetIntrinsic("%WeakMap%", true); + var $Map = GetIntrinsic("%Map%", true); + var $weakMapGet = callBound("WeakMap.prototype.get", true); + var $weakMapSet = callBound("WeakMap.prototype.set", true); + var $weakMapHas = callBound("WeakMap.prototype.has", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSet = callBound("Map.prototype.set", true); + var $mapHas = callBound("Map.prototype.has", true); + var listGetNode = function(list, key2) { + var prev = list; + var curr; + for (; (curr = prev.next) !== null; prev = curr) { + if (curr.key === key2) { + prev.next = curr.next; + curr.next = /** @type {NonNullable} */ + list.next; + list.next = curr; + return curr; + } + } + }; + var listGet = function(objects, key2) { + var node = listGetNode(objects, key2); + return node && node.value; + }; + var listSet = function(objects, key2, value) { + var node = listGetNode(objects, key2); + if (node) { + node.value = value; + } else { + objects.next = /** @type {import('.').ListNode} */ + { + // eslint-disable-line no-param-reassign, no-extra-parens + key: key2, + next: objects.next, + value + }; + } + }; + var listHas = function(objects, key2) { + return !!listGetNode(objects, key2); + }; + module2.exports = function getSideChannel() { + var $wm; + var $m; + var $o; + var channel = { + assert: function(key2) { + if (!channel.has(key2)) { + throw new $TypeError("Side channel does not contain " + inspect(key2)); + } + }, + get: function(key2) { + if ($WeakMap && key2 && (typeof key2 === "object" || typeof key2 === "function")) { + if ($wm) { + return $weakMapGet($wm, key2); + } + } else if ($Map) { + if ($m) { + return $mapGet($m, key2); + } + } else { + if ($o) { + return listGet($o, key2); + } + } + }, + has: function(key2) { + if ($WeakMap && key2 && (typeof key2 === "object" || typeof key2 === "function")) { + if ($wm) { + return $weakMapHas($wm, key2); + } + } else if ($Map) { + if ($m) { + return $mapHas($m, key2); + } + } else { + if ($o) { + return listHas($o, key2); + } + } + return false; + }, + set: function(key2, value) { + if ($WeakMap && key2 && (typeof key2 === "object" || typeof key2 === "function")) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key2, value); + } else if ($Map) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key2, value); + } else { + if (!$o) { + $o = { key: {}, next: null }; + } + listSet($o, key2, value); + } + } + }; + return channel; + }; + } +}); + +// node_modules/.pnpm/internal-slot@1.0.7/node_modules/internal-slot/index.js +var require_internal_slot = __commonJS({ + "node_modules/.pnpm/internal-slot@1.0.7/node_modules/internal-slot/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var hasOwn = require_hasown(); + var channel = require_side_channel()(); + var $TypeError = require_type(); + var SLOT = { + assert: function(O, slot) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + channel.assert(O); + if (!SLOT.has(O, slot)) { + throw new $TypeError("`" + slot + "` is not present on `O`"); + } + }, + get: function(O, slot) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + var slots = channel.get(O); + return slots && slots["$" + slot]; + }, + has: function(O, slot) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + var slots = channel.get(O); + return !!slots && hasOwn(slots, "$" + slot); + }, + set: function(O, slot, V) { + if (!O || typeof O !== "object" && typeof O !== "function") { + throw new $TypeError("`O` is not an object"); + } + if (typeof slot !== "string") { + throw new $TypeError("`slot` must be a string"); + } + var slots = channel.get(O); + if (!slots) { + slots = {}; + channel.set(O, slots); + } + slots["$" + slot] = V; + } + }; + if (Object.freeze) { + Object.freeze(SLOT); + } + module2.exports = SLOT; + } +}); + +// node_modules/.pnpm/stop-iteration-iterator@1.0.0/node_modules/stop-iteration-iterator/index.js +var require_stop_iteration_iterator = __commonJS({ + "node_modules/.pnpm/stop-iteration-iterator@1.0.0/node_modules/stop-iteration-iterator/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var SLOT = require_internal_slot(); + var $SyntaxError = SyntaxError; + var $StopIteration = typeof StopIteration === "object" ? StopIteration : null; + module2.exports = function getStopIterationIterator(origIterator) { + if (!$StopIteration) { + throw new $SyntaxError("this environment lacks StopIteration"); + } + SLOT.set(origIterator, "[[Done]]", false); + var siIterator = { + next: function next() { + var iterator = SLOT.get(this, "[[Iterator]]"); + var done = SLOT.get(iterator, "[[Done]]"); + try { + return { + done, + value: done ? void 0 : iterator.next() + }; + } catch (e) { + SLOT.set(iterator, "[[Done]]", true); + if (e !== $StopIteration) { + throw e; + } + return { + done: true, + value: void 0 + }; + } + } + }; + SLOT.set(siIterator, "[[Iterator]]", origIterator); + return siIterator; + }; + } +}); + +// node_modules/.pnpm/isarray@2.0.5/node_modules/isarray/index.js +var require_isarray = __commonJS({ + "node_modules/.pnpm/isarray@2.0.5/node_modules/isarray/index.js"(exports2, module2) { + init_polyfill_buffer(); + var toString = {}.toString; + module2.exports = Array.isArray || function(arr) { + return toString.call(arr) == "[object Array]"; + }; + } +}); + +// node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/index.js +var require_is_string = __commonJS({ + "node_modules/.pnpm/is-string@1.0.7/node_modules/is-string/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var strValue = String.prototype.valueOf; + var tryStringObject = function tryStringObject2(value) { + try { + strValue.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var strClass = "[object String]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isString(value) { + if (typeof value === "string") { + return true; + } + if (typeof value !== "object") { + return false; + } + return hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass; + }; + } +}); + +// node_modules/.pnpm/is-map@2.0.3/node_modules/is-map/index.js +var require_is_map = __commonJS({ + "node_modules/.pnpm/is-map@2.0.3/node_modules/is-map/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $Map = typeof Map === "function" && Map.prototype ? Map : null; + var $Set = typeof Set === "function" && Set.prototype ? Set : null; + var exported; + if (!$Map) { + exported = function isMap(x) { + return false; + }; + } + var $mapHas = $Map ? Map.prototype.has : null; + var $setHas = $Set ? Set.prototype.has : null; + if (!exported && !$mapHas) { + exported = function isMap(x) { + return false; + }; + } + module2.exports = exported || function isMap(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $mapHas.call(x); + if ($setHas) { + try { + $setHas.call(x); + } catch (e) { + return true; + } + } + return x instanceof $Map; + } catch (e) { + } + return false; + }; + } +}); + +// node_modules/.pnpm/is-set@2.0.3/node_modules/is-set/index.js +var require_is_set = __commonJS({ + "node_modules/.pnpm/is-set@2.0.3/node_modules/is-set/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $Map = typeof Map === "function" && Map.prototype ? Map : null; + var $Set = typeof Set === "function" && Set.prototype ? Set : null; + var exported; + if (!$Set) { + exported = function isSet(x) { + return false; + }; + } + var $mapHas = $Map ? Map.prototype.has : null; + var $setHas = $Set ? Set.prototype.has : null; + if (!exported && !$setHas) { + exported = function isSet(x) { + return false; + }; + } + module2.exports = exported || function isSet(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $setHas.call(x); + if ($mapHas) { + try { + $mapHas.call(x); + } catch (e) { + return true; + } + } + return x instanceof $Set; + } catch (e) { + } + return false; + }; + } +}); + +// node_modules/.pnpm/es-get-iterator@1.1.3/node_modules/es-get-iterator/index.js +var require_es_get_iterator = __commonJS({ + "node_modules/.pnpm/es-get-iterator@1.1.3/node_modules/es-get-iterator/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isArguments = require_is_arguments(); + var getStopIterationIterator = require_stop_iteration_iterator(); + if (require_has_symbols()() || require_shams()()) { + $iterator = Symbol.iterator; + module2.exports = function getIterator3(iterable) { + if (iterable != null && typeof iterable[$iterator] !== "undefined") { + return iterable[$iterator](); + } + if (isArguments(iterable)) { + return Array.prototype[$iterator].call(iterable); + } + }; + } else { + isArray = require_isarray(); + isString = require_is_string(); + GetIntrinsic = require_get_intrinsic(); + $Map = GetIntrinsic("%Map%", true); + $Set = GetIntrinsic("%Set%", true); + callBound = require_callBound(); + $arrayPush = callBound("Array.prototype.push"); + $charCodeAt = callBound("String.prototype.charCodeAt"); + $stringSlice = callBound("String.prototype.slice"); + advanceStringIndex = function advanceStringIndex2(S, index2) { + var length = S.length; + if (index2 + 1 >= length) { + return index2 + 1; + } + var first2 = $charCodeAt(S, index2); + if (first2 < 55296 || first2 > 56319) { + return index2 + 1; + } + var second = $charCodeAt(S, index2 + 1); + if (second < 56320 || second > 57343) { + return index2 + 1; + } + return index2 + 2; + }; + getArrayIterator = function getArrayIterator2(arraylike) { + var i = 0; + return { + next: function next() { + var done = i >= arraylike.length; + var value; + if (!done) { + value = arraylike[i]; + i += 1; + } + return { + done, + value + }; + } + }; + }; + getNonCollectionIterator = function getNonCollectionIterator2(iterable, noPrimordialCollections) { + if (isArray(iterable) || isArguments(iterable)) { + return getArrayIterator(iterable); + } + if (isString(iterable)) { + var i = 0; + return { + next: function next() { + var nextIndex = advanceStringIndex(iterable, i); + var value = $stringSlice(iterable, i, nextIndex); + i = nextIndex; + return { + done: nextIndex > iterable.length, + value + }; + } + }; + } + if (noPrimordialCollections && typeof iterable["_es6-shim iterator_"] !== "undefined") { + return iterable["_es6-shim iterator_"](); + } + }; + if (!$Map && !$Set) { + module2.exports = function getIterator3(iterable) { + if (iterable != null) { + return getNonCollectionIterator(iterable, true); + } + }; + } else { + isMap = require_is_map(); + isSet = require_is_set(); + $mapForEach = callBound("Map.prototype.forEach", true); + $setForEach = callBound("Set.prototype.forEach", true); + if (typeof process === "undefined" || !process.versions || !process.versions.node) { + $mapIterator = callBound("Map.prototype.iterator", true); + $setIterator = callBound("Set.prototype.iterator", true); + } + $mapAtAtIterator = callBound("Map.prototype.@@iterator", true) || callBound("Map.prototype._es6-shim iterator_", true); + $setAtAtIterator = callBound("Set.prototype.@@iterator", true) || callBound("Set.prototype._es6-shim iterator_", true); + getCollectionIterator = function getCollectionIterator2(iterable) { + if (isMap(iterable)) { + if ($mapIterator) { + return getStopIterationIterator($mapIterator(iterable)); + } + if ($mapAtAtIterator) { + return $mapAtAtIterator(iterable); + } + if ($mapForEach) { + var entries = []; + $mapForEach(iterable, function(v, k) { + $arrayPush(entries, [k, v]); + }); + return getArrayIterator(entries); + } + } + if (isSet(iterable)) { + if ($setIterator) { + return getStopIterationIterator($setIterator(iterable)); + } + if ($setAtAtIterator) { + return $setAtAtIterator(iterable); + } + if ($setForEach) { + var values = []; + $setForEach(iterable, function(v) { + $arrayPush(values, v); + }); + return getArrayIterator(values); + } + } + }; + module2.exports = function getIterator3(iterable) { + return getCollectionIterator(iterable) || getNonCollectionIterator(iterable); + }; + } + } + var $iterator; + var isArray; + var isString; + var GetIntrinsic; + var $Map; + var $Set; + var callBound; + var $arrayPush; + var $charCodeAt; + var $stringSlice; + var advanceStringIndex; + var getArrayIterator; + var getNonCollectionIterator; + var isMap; + var isSet; + var $mapForEach; + var $setForEach; + var $mapIterator; + var $setIterator; + var $mapAtAtIterator; + var $setAtAtIterator; + var getCollectionIterator; + } +}); + +// node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/implementation.js +var require_implementation5 = __commonJS({ + "node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/implementation.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var numberIsNaN = function(value) { + return value !== value; + }; + module2.exports = function is(a, b) { + if (a === 0 && b === 0) { + return 1 / a === 1 / b; + } + if (a === b) { + return true; + } + if (numberIsNaN(a) && numberIsNaN(b)) { + return true; + } + return false; + }; + } +}); + +// node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/polyfill.js +var require_polyfill3 = __commonJS({ + "node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/polyfill.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var implementation = require_implementation5(); + module2.exports = function getPolyfill() { + return typeof Object.is === "function" ? Object.is : implementation; + }; + } +}); + +// node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/shim.js +var require_shim3 = __commonJS({ + "node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/shim.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var getPolyfill = require_polyfill3(); + var define2 = require_define_properties(); + module2.exports = function shimObjectIs() { + var polyfill = getPolyfill(); + define2(Object, { is: polyfill }, { + is: function testObjectIs() { + return Object.is !== polyfill; + } + }); + return polyfill; + }; + } +}); + +// node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/index.js +var require_object_is = __commonJS({ + "node_modules/.pnpm/object-is@1.1.6/node_modules/object-is/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var define2 = require_define_properties(); + var callBind = require_call_bind(); + var implementation = require_implementation5(); + var getPolyfill = require_polyfill3(); + var shim = require_shim3(); + var polyfill = callBind(getPolyfill(), Object); + define2(polyfill, { + getPolyfill, + implementation, + shim + }); + module2.exports = polyfill; + } +}); + +// node_modules/.pnpm/is-array-buffer@3.0.4/node_modules/is-array-buffer/index.js +var require_is_array_buffer = __commonJS({ + "node_modules/.pnpm/is-array-buffer@3.0.4/node_modules/is-array-buffer/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBind = require_call_bind(); + var callBound = require_callBound(); + var GetIntrinsic = require_get_intrinsic(); + var $ArrayBuffer = GetIntrinsic("%ArrayBuffer%", true); + var $byteLength = callBound("ArrayBuffer.prototype.byteLength", true); + var $toString = callBound("Object.prototype.toString"); + var abSlice = !!$ArrayBuffer && !$byteLength && new $ArrayBuffer(0).slice; + var $abSlice = !!abSlice && callBind(abSlice); + module2.exports = $byteLength || $abSlice ? function isArrayBuffer(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + try { + if ($byteLength) { + $byteLength(obj); + } else { + $abSlice(obj, 0); + } + return true; + } catch (e) { + return false; + } + } : $ArrayBuffer ? function isArrayBuffer(obj) { + return $toString(obj) === "[object ArrayBuffer]"; + } : function isArrayBuffer(obj) { + return false; + }; + } +}); + +// node_modules/.pnpm/is-date-object@1.0.5/node_modules/is-date-object/index.js +var require_is_date_object = __commonJS({ + "node_modules/.pnpm/is-date-object@1.0.5/node_modules/is-date-object/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var getDay = Date.prototype.getDay; + var tryDateObject = function tryDateGetDayCall(value) { + try { + getDay.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var dateClass = "[object Date]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isDateObject(value) { + if (typeof value !== "object" || value === null) { + return false; + } + return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; + }; + } +}); + +// node_modules/.pnpm/is-regex@1.1.4/node_modules/is-regex/index.js +var require_is_regex = __commonJS({ + "node_modules/.pnpm/is-regex@1.1.4/node_modules/is-regex/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var hasToStringTag = require_shams2()(); + var has; + var $exec; + var isRegexMarker; + var badStringifier; + if (hasToStringTag) { + has = callBound("Object.prototype.hasOwnProperty"); + $exec = callBound("RegExp.prototype.exec"); + isRegexMarker = {}; + throwRegexMarker = function() { + throw isRegexMarker; + }; + badStringifier = { + toString: throwRegexMarker, + valueOf: throwRegexMarker + }; + if (typeof Symbol.toPrimitive === "symbol") { + badStringifier[Symbol.toPrimitive] = throwRegexMarker; + } + } + var throwRegexMarker; + var $toString = callBound("Object.prototype.toString"); + var gOPD = Object.getOwnPropertyDescriptor; + var regexClass = "[object RegExp]"; + module2.exports = hasToStringTag ? function isRegex(value) { + if (!value || typeof value !== "object") { + return false; + } + var descriptor = gOPD(value, "lastIndex"); + var hasLastIndexDataProperty = descriptor && has(descriptor, "value"); + if (!hasLastIndexDataProperty) { + return false; + } + try { + $exec(value, badStringifier); + } catch (e) { + return e === isRegexMarker; + } + } : function isRegex(value) { + if (!value || typeof value !== "object" && typeof value !== "function") { + return false; + } + return $toString(value) === regexClass; + }; + } +}); + +// node_modules/.pnpm/is-shared-array-buffer@1.0.3/node_modules/is-shared-array-buffer/index.js +var require_is_shared_array_buffer = __commonJS({ + "node_modules/.pnpm/is-shared-array-buffer@1.0.3/node_modules/is-shared-array-buffer/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var $byteLength = callBound("SharedArrayBuffer.prototype.byteLength", true); + module2.exports = $byteLength ? function isSharedArrayBuffer(obj) { + if (!obj || typeof obj !== "object") { + return false; + } + try { + $byteLength(obj); + return true; + } catch (e) { + return false; + } + } : function isSharedArrayBuffer(obj) { + return false; + }; + } +}); + +// node_modules/.pnpm/is-number-object@1.0.7/node_modules/is-number-object/index.js +var require_is_number_object = __commonJS({ + "node_modules/.pnpm/is-number-object@1.0.7/node_modules/is-number-object/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var numToStr = Number.prototype.toString; + var tryNumberObject = function tryNumberObject2(value) { + try { + numToStr.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var numClass = "[object Number]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isNumberObject(value) { + if (typeof value === "number") { + return true; + } + if (typeof value !== "object") { + return false; + } + return hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass; + }; + } +}); + +// node_modules/.pnpm/is-boolean-object@1.1.2/node_modules/is-boolean-object/index.js +var require_is_boolean_object = __commonJS({ + "node_modules/.pnpm/is-boolean-object@1.1.2/node_modules/is-boolean-object/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var $boolToStr = callBound("Boolean.prototype.toString"); + var $toString = callBound("Object.prototype.toString"); + var tryBooleanObject = function booleanBrandCheck(value) { + try { + $boolToStr(value); + return true; + } catch (e) { + return false; + } + }; + var boolClass = "[object Boolean]"; + var hasToStringTag = require_shams2()(); + module2.exports = function isBoolean(value) { + if (typeof value === "boolean") { + return true; + } + if (value === null || typeof value !== "object") { + return false; + } + return hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass; + }; + } +}); + +// node_modules/.pnpm/is-symbol@1.0.4/node_modules/is-symbol/index.js +var require_is_symbol = __commonJS({ + "node_modules/.pnpm/is-symbol@1.0.4/node_modules/is-symbol/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var toStr = Object.prototype.toString; + var hasSymbols = require_has_symbols()(); + if (hasSymbols) { + symToStr = Symbol.prototype.toString; + symStringRegex = /^Symbol\(.*\)$/; + isSymbolObject = function isRealSymbolObject(value) { + if (typeof value.valueOf() !== "symbol") { + return false; + } + return symStringRegex.test(symToStr.call(value)); + }; + module2.exports = function isSymbol(value) { + if (typeof value === "symbol") { + return true; + } + if (toStr.call(value) !== "[object Symbol]") { + return false; + } + try { + return isSymbolObject(value); + } catch (e) { + return false; + } + }; + } else { + module2.exports = function isSymbol(value) { + return false; + }; + } + var symToStr; + var symStringRegex; + var isSymbolObject; + } +}); + +// node_modules/.pnpm/has-bigints@1.0.2/node_modules/has-bigints/index.js +var require_has_bigints = __commonJS({ + "node_modules/.pnpm/has-bigints@1.0.2/node_modules/has-bigints/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $BigInt = typeof BigInt !== "undefined" && BigInt; + module2.exports = function hasNativeBigInts() { + return typeof $BigInt === "function" && typeof BigInt === "function" && typeof $BigInt(42) === "bigint" && typeof BigInt(42) === "bigint"; + }; + } +}); + +// node_modules/.pnpm/is-bigint@1.0.4/node_modules/is-bigint/index.js +var require_is_bigint = __commonJS({ + "node_modules/.pnpm/is-bigint@1.0.4/node_modules/is-bigint/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var hasBigInts = require_has_bigints()(); + if (hasBigInts) { + bigIntValueOf = BigInt.prototype.valueOf; + tryBigInt = function tryBigIntObject(value) { + try { + bigIntValueOf.call(value); + return true; + } catch (e) { + } + return false; + }; + module2.exports = function isBigInt(value) { + if (value === null || typeof value === "undefined" || typeof value === "boolean" || typeof value === "string" || typeof value === "number" || typeof value === "symbol" || typeof value === "function") { + return false; + } + if (typeof value === "bigint") { + return true; + } + return tryBigInt(value); + }; + } else { + module2.exports = function isBigInt(value) { + return false; + }; + } + var bigIntValueOf; + var tryBigInt; + } +}); + +// node_modules/.pnpm/which-boxed-primitive@1.0.2/node_modules/which-boxed-primitive/index.js +var require_which_boxed_primitive = __commonJS({ + "node_modules/.pnpm/which-boxed-primitive@1.0.2/node_modules/which-boxed-primitive/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isString = require_is_string(); + var isNumber = require_is_number_object(); + var isBoolean = require_is_boolean_object(); + var isSymbol = require_is_symbol(); + var isBigInt = require_is_bigint(); + module2.exports = function whichBoxedPrimitive(value) { + if (value == null || typeof value !== "object" && typeof value !== "function") { + return null; + } + if (isString(value)) { + return "String"; + } + if (isNumber(value)) { + return "Number"; + } + if (isBoolean(value)) { + return "Boolean"; + } + if (isSymbol(value)) { + return "Symbol"; + } + if (isBigInt(value)) { + return "BigInt"; + } + }; + } +}); + +// node_modules/.pnpm/is-weakmap@2.0.2/node_modules/is-weakmap/index.js +var require_is_weakmap = __commonJS({ + "node_modules/.pnpm/is-weakmap@2.0.2/node_modules/is-weakmap/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var $WeakMap = typeof WeakMap === "function" && WeakMap.prototype ? WeakMap : null; + var $WeakSet = typeof WeakSet === "function" && WeakSet.prototype ? WeakSet : null; + var exported; + if (!$WeakMap) { + exported = function isWeakMap(x) { + return false; + }; + } + var $mapHas = $WeakMap ? $WeakMap.prototype.has : null; + var $setHas = $WeakSet ? $WeakSet.prototype.has : null; + if (!exported && !$mapHas) { + exported = function isWeakMap(x) { + return false; + }; + } + module2.exports = exported || function isWeakMap(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $mapHas.call(x, $mapHas); + if ($setHas) { + try { + $setHas.call(x, $setHas); + } catch (e) { + return true; + } + } + return x instanceof $WeakMap; + } catch (e) { + } + return false; + }; + } +}); + +// node_modules/.pnpm/is-weakset@2.0.3/node_modules/is-weakset/index.js +var require_is_weakset = __commonJS({ + "node_modules/.pnpm/is-weakset@2.0.3/node_modules/is-weakset/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var GetIntrinsic = require_get_intrinsic(); + var callBound = require_callBound(); + var $WeakSet = GetIntrinsic("%WeakSet%", true); + var $setHas = callBound("WeakSet.prototype.has", true); + if ($setHas) { + $mapHas = callBound("WeakMap.prototype.has", true); + module2.exports = function isWeakSet(x) { + if (!x || typeof x !== "object") { + return false; + } + try { + $setHas(x, $setHas); + if ($mapHas) { + try { + $mapHas(x, $mapHas); + } catch (e) { + return true; + } + } + return x instanceof $WeakSet; + } catch (e) { + } + return false; + }; + } else { + module2.exports = function isWeakSet(x) { + return false; + }; + } + var $mapHas; + } +}); + +// node_modules/.pnpm/which-collection@1.0.2/node_modules/which-collection/index.js +var require_which_collection = __commonJS({ + "node_modules/.pnpm/which-collection@1.0.2/node_modules/which-collection/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isMap = require_is_map(); + var isSet = require_is_set(); + var isWeakMap = require_is_weakmap(); + var isWeakSet = require_is_weakset(); + module2.exports = function whichCollection(value) { + if (value && typeof value === "object") { + if (isMap(value)) { + return "Map"; + } + if (isSet(value)) { + return "Set"; + } + if (isWeakMap(value)) { + return "WeakMap"; + } + if (isWeakSet(value)) { + return "WeakSet"; + } + } + return false; + }; + } +}); + +// node_modules/.pnpm/is-callable@1.2.7/node_modules/is-callable/index.js +var require_is_callable = __commonJS({ + "node_modules/.pnpm/is-callable@1.2.7/node_modules/is-callable/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var fnToStr = Function.prototype.toString; + var reflectApply = typeof Reflect === "object" && Reflect !== null && Reflect.apply; + var badArrayLike; + var isCallableMarker; + if (typeof reflectApply === "function" && typeof Object.defineProperty === "function") { + try { + badArrayLike = Object.defineProperty({}, "length", { + get: function() { + throw isCallableMarker; + } + }); + isCallableMarker = {}; + reflectApply(function() { + throw 42; + }, null, badArrayLike); + } catch (_) { + if (_ !== isCallableMarker) { + reflectApply = null; + } + } + } else { + reflectApply = null; + } + var constructorRegex = /^\s*class\b/; + var isES6ClassFn = function isES6ClassFunction(value) { + try { + var fnStr = fnToStr.call(value); + return constructorRegex.test(fnStr); + } catch (e) { + return false; + } + }; + var tryFunctionObject = function tryFunctionToStr(value) { + try { + if (isES6ClassFn(value)) { + return false; + } + fnToStr.call(value); + return true; + } catch (e) { + return false; + } + }; + var toStr = Object.prototype.toString; + var objectClass = "[object Object]"; + var fnClass = "[object Function]"; + var genClass = "[object GeneratorFunction]"; + var ddaClass = "[object HTMLAllCollection]"; + var ddaClass2 = "[object HTML document.all class]"; + var ddaClass3 = "[object HTMLCollection]"; + var hasToStringTag = typeof Symbol === "function" && !!Symbol.toStringTag; + var isIE68 = !(0 in [,]); + var isDDA = function isDocumentDotAll() { + return false; + }; + if (typeof document === "object") { + all = document.all; + if (toStr.call(all) === toStr.call(document.all)) { + isDDA = function isDocumentDotAll(value) { + if ((isIE68 || !value) && (typeof value === "undefined" || typeof value === "object")) { + try { + var str = toStr.call(value); + return (str === ddaClass || str === ddaClass2 || str === ddaClass3 || str === objectClass) && value("") == null; + } catch (e) { + } + } + return false; + }; + } + } + var all; + module2.exports = reflectApply ? function isCallable(value) { + if (isDDA(value)) { + return true; + } + if (!value) { + return false; + } + if (typeof value !== "function" && typeof value !== "object") { + return false; + } + try { + reflectApply(value, null, badArrayLike); + } catch (e) { + if (e !== isCallableMarker) { + return false; + } + } + return !isES6ClassFn(value) && tryFunctionObject(value); + } : function isCallable(value) { + if (isDDA(value)) { + return true; + } + if (!value) { + return false; + } + if (typeof value !== "function" && typeof value !== "object") { + return false; + } + if (hasToStringTag) { + return tryFunctionObject(value); + } + if (isES6ClassFn(value)) { + return false; + } + var strClass = toStr.call(value); + if (strClass !== fnClass && strClass !== genClass && !/^\[object HTML/.test(strClass)) { + return false; + } + return tryFunctionObject(value); + }; + } +}); + +// node_modules/.pnpm/for-each@0.3.3/node_modules/for-each/index.js +var require_for_each = __commonJS({ + "node_modules/.pnpm/for-each@0.3.3/node_modules/for-each/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var isCallable = require_is_callable(); + var toStr = Object.prototype.toString; + var hasOwnProperty = Object.prototype.hasOwnProperty; + var forEachArray = function forEachArray2(array, iterator, receiver) { + for (var i = 0, len = array.length; i < len; i++) { + if (hasOwnProperty.call(array, i)) { + if (receiver == null) { + iterator(array[i], i, array); + } else { + iterator.call(receiver, array[i], i, array); + } + } + } + }; + var forEachString = function forEachString2(string, iterator, receiver) { + for (var i = 0, len = string.length; i < len; i++) { + if (receiver == null) { + iterator(string.charAt(i), i, string); + } else { + iterator.call(receiver, string.charAt(i), i, string); + } + } + }; + var forEachObject = function forEachObject2(object, iterator, receiver) { + for (var k in object) { + if (hasOwnProperty.call(object, k)) { + if (receiver == null) { + iterator(object[k], k, object); + } else { + iterator.call(receiver, object[k], k, object); + } + } + } + }; + var forEach2 = function forEach3(list, iterator, thisArg) { + if (!isCallable(iterator)) { + throw new TypeError("iterator must be a function"); + } + var receiver; + if (arguments.length >= 3) { + receiver = thisArg; + } + if (toStr.call(list) === "[object Array]") { + forEachArray(list, iterator, receiver); + } else if (typeof list === "string") { + forEachString(list, iterator, receiver); + } else { + forEachObject(list, iterator, receiver); + } + }; + module2.exports = forEach2; + } +}); + +// node_modules/.pnpm/possible-typed-array-names@1.0.0/node_modules/possible-typed-array-names/index.js +var require_possible_typed_array_names = __commonJS({ + "node_modules/.pnpm/possible-typed-array-names@1.0.0/node_modules/possible-typed-array-names/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + module2.exports = [ + "Float32Array", + "Float64Array", + "Int8Array", + "Int16Array", + "Int32Array", + "Uint8Array", + "Uint8ClampedArray", + "Uint16Array", + "Uint32Array", + "BigInt64Array", + "BigUint64Array" + ]; + } +}); + +// node_modules/.pnpm/available-typed-arrays@1.0.7/node_modules/available-typed-arrays/index.js +var require_available_typed_arrays = __commonJS({ + "node_modules/.pnpm/available-typed-arrays@1.0.7/node_modules/available-typed-arrays/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var possibleNames = require_possible_typed_array_names(); + var g = typeof globalThis === "undefined" ? global : globalThis; + module2.exports = function availableTypedArrays() { + var out = []; + for (var i = 0; i < possibleNames.length; i++) { + if (typeof g[possibleNames[i]] === "function") { + out[out.length] = possibleNames[i]; + } + } + return out; + }; + } +}); + +// node_modules/.pnpm/which-typed-array@1.1.15/node_modules/which-typed-array/index.js +var require_which_typed_array = __commonJS({ + "node_modules/.pnpm/which-typed-array@1.1.15/node_modules/which-typed-array/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var forEach2 = require_for_each(); + var availableTypedArrays = require_available_typed_arrays(); + var callBind = require_call_bind(); + var callBound = require_callBound(); + var gOPD = require_gopd(); + var $toString = callBound("Object.prototype.toString"); + var hasToStringTag = require_shams2()(); + var g = typeof globalThis === "undefined" ? global : globalThis; + var typedArrays = availableTypedArrays(); + var $slice = callBound("String.prototype.slice"); + var getPrototypeOf = Object.getPrototypeOf; + var $indexOf = callBound("Array.prototype.indexOf", true) || function indexOf(array, value) { + for (var i = 0; i < array.length; i += 1) { + if (array[i] === value) { + return i; + } + } + return -1; + }; + var cache = { __proto__: null }; + if (hasToStringTag && gOPD && getPrototypeOf) { + forEach2(typedArrays, function(typedArray) { + var arr = new g[typedArray](); + if (Symbol.toStringTag in arr) { + var proto = getPrototypeOf(arr); + var descriptor = gOPD(proto, Symbol.toStringTag); + if (!descriptor) { + var superProto = getPrototypeOf(proto); + descriptor = gOPD(superProto, Symbol.toStringTag); + } + cache["$" + typedArray] = callBind(descriptor.get); + } + }); + } else { + forEach2(typedArrays, function(typedArray) { + var arr = new g[typedArray](); + var fn = arr.slice || arr.set; + if (fn) { + cache["$" + typedArray] = callBind(fn); + } + }); + } + var tryTypedArrays = function tryAllTypedArrays(value) { + var found = false; + forEach2( + // eslint-disable-next-line no-extra-parens + /** @type {Record<`\$${TypedArrayName}`, Getter>} */ + /** @type {any} */ + cache, + /** @type {(getter: Getter, name: `\$${import('.').TypedArrayName}`) => void} */ + function(getter, typedArray) { + if (!found) { + try { + if ("$" + getter(value) === typedArray) { + found = $slice(typedArray, 1); + } + } catch (e) { + } + } + } + ); + return found; + }; + var trySlices = function tryAllSlices(value) { + var found = false; + forEach2( + // eslint-disable-next-line no-extra-parens + /** @type {Record<`\$${TypedArrayName}`, Getter>} */ + /** @type {any} */ + cache, + /** @type {(getter: typeof cache, name: `\$${import('.').TypedArrayName}`) => void} */ + function(getter, name) { + if (!found) { + try { + getter(value); + found = $slice(name, 1); + } catch (e) { + } + } + } + ); + return found; + }; + module2.exports = function whichTypedArray(value) { + if (!value || typeof value !== "object") { + return false; + } + if (!hasToStringTag) { + var tag2 = $slice($toString(value), 8, -1); + if ($indexOf(typedArrays, tag2) > -1) { + return tag2; + } + if (tag2 !== "Object") { + return false; + } + return trySlices(value); + } + if (!gOPD) { + return null; + } + return tryTypedArrays(value); + }; + } +}); + +// node_modules/.pnpm/array-buffer-byte-length@1.0.1/node_modules/array-buffer-byte-length/index.js +var require_array_buffer_byte_length = __commonJS({ + "node_modules/.pnpm/array-buffer-byte-length@1.0.1/node_modules/array-buffer-byte-length/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var callBound = require_callBound(); + var $byteLength = callBound("ArrayBuffer.prototype.byteLength", true); + var isArrayBuffer = require_is_array_buffer(); + module2.exports = function byteLength(ab) { + if (!isArrayBuffer(ab)) { + return NaN; + } + return $byteLength ? $byteLength(ab) : ab.byteLength; + }; + } +}); + +// node_modules/.pnpm/deep-equal@2.2.3/node_modules/deep-equal/index.js +var require_deep_equal = __commonJS({ + "node_modules/.pnpm/deep-equal@2.2.3/node_modules/deep-equal/index.js"(exports2, module2) { + "use strict"; + init_polyfill_buffer(); + var assign2 = require_object(); + var callBound = require_callBound(); + var flags = require_regexp_prototype(); + var GetIntrinsic = require_get_intrinsic(); + var getIterator3 = require_es_get_iterator(); + var getSideChannel = require_side_channel(); + var is = require_object_is(); + var isArguments = require_is_arguments(); + var isArray = require_isarray(); + var isArrayBuffer = require_is_array_buffer(); + var isDate = require_is_date_object(); + var isRegex = require_is_regex(); + var isSharedArrayBuffer = require_is_shared_array_buffer(); + var objectKeys = require_object_keys(); + var whichBoxedPrimitive = require_which_boxed_primitive(); + var whichCollection = require_which_collection(); + var whichTypedArray = require_which_typed_array(); + var byteLength = require_array_buffer_byte_length(); + var sabByteLength = callBound("SharedArrayBuffer.prototype.byteLength", true); + var $getTime = callBound("Date.prototype.getTime"); + var gPO = Object.getPrototypeOf; + var $objToString = callBound("Object.prototype.toString"); + var $Set = GetIntrinsic("%Set%", true); + var $mapHas = callBound("Map.prototype.has", true); + var $mapGet = callBound("Map.prototype.get", true); + var $mapSize = callBound("Map.prototype.size", true); + var $setAdd = callBound("Set.prototype.add", true); + var $setDelete = callBound("Set.prototype.delete", true); + var $setHas = callBound("Set.prototype.has", true); + var $setSize = callBound("Set.prototype.size", true); + function setHasEqualElement(set, val1, opts, channel) { + var i = getIterator3(set); + var result; + while ((result = i.next()) && !result.done) { + if (internalDeepEqual(val1, result.value, opts, channel)) { + $setDelete(set, result.value); + return true; + } + } + return false; + } + function findLooseMatchingPrimitives(prim) { + if (typeof prim === "undefined") { + return null; + } + if (typeof prim === "object") { + return void 0; + } + if (typeof prim === "symbol") { + return false; + } + if (typeof prim === "string" || typeof prim === "number") { + return +prim === +prim; + } + return true; + } + function mapMightHaveLoosePrim(a, b, prim, item, opts, channel) { + var altValue = findLooseMatchingPrimitives(prim); + if (altValue != null) { + return altValue; + } + var curB = $mapGet(b, altValue); + var looseOpts = assign2({}, opts, { strict: false }); + if (typeof curB === "undefined" && !$mapHas(b, altValue) || !internalDeepEqual(item, curB, looseOpts, channel)) { + return false; + } + return !$mapHas(a, altValue) && internalDeepEqual(item, curB, looseOpts, channel); + } + function setMightHaveLoosePrim(a, b, prim) { + var altValue = findLooseMatchingPrimitives(prim); + if (altValue != null) { + return altValue; + } + return $setHas(b, altValue) && !$setHas(a, altValue); + } + function mapHasEqualEntry(set, map, key1, item1, opts, channel) { + var i = getIterator3(set); + var result; + var key2; + while ((result = i.next()) && !result.done) { + key2 = result.value; + if ( + // eslint-disable-next-line no-use-before-define + internalDeepEqual(key1, key2, opts, channel) && internalDeepEqual(item1, $mapGet(map, key2), opts, channel) + ) { + $setDelete(set, key2); + return true; + } + } + return false; + } + function internalDeepEqual(actual, expected, options, channel) { + var opts = options || {}; + if (opts.strict ? is(actual, expected) : actual === expected) { + return true; + } + var actualBoxed = whichBoxedPrimitive(actual); + var expectedBoxed = whichBoxedPrimitive(expected); + if (actualBoxed !== expectedBoxed) { + return false; + } + if (!actual || !expected || typeof actual !== "object" && typeof expected !== "object") { + return opts.strict ? is(actual, expected) : actual == expected; + } + var hasActual = channel.has(actual); + var hasExpected = channel.has(expected); + var sentinel; + if (hasActual && hasExpected) { + if (channel.get(actual) === channel.get(expected)) { + return true; + } + } else { + sentinel = {}; + } + if (!hasActual) { + channel.set(actual, sentinel); + } + if (!hasExpected) { + channel.set(expected, sentinel); + } + return objEquiv(actual, expected, opts, channel); + } + function isBuffer(x) { + if (!x || typeof x !== "object" || typeof x.length !== "number") { + return false; + } + if (typeof x.copy !== "function" || typeof x.slice !== "function") { + return false; + } + if (x.length > 0 && typeof x[0] !== "number") { + return false; + } + return !!(x.constructor && x.constructor.isBuffer && x.constructor.isBuffer(x)); + } + function setEquiv(a, b, opts, channel) { + if ($setSize(a) !== $setSize(b)) { + return false; + } + var iA = getIterator3(a); + var iB = getIterator3(b); + var resultA; + var resultB; + var set; + while ((resultA = iA.next()) && !resultA.done) { + if (resultA.value && typeof resultA.value === "object") { + if (!set) { + set = new $Set(); + } + $setAdd(set, resultA.value); + } else if (!$setHas(b, resultA.value)) { + if (opts.strict) { + return false; + } + if (!setMightHaveLoosePrim(a, b, resultA.value)) { + return false; + } + if (!set) { + set = new $Set(); + } + $setAdd(set, resultA.value); + } + } + if (set) { + while ((resultB = iB.next()) && !resultB.done) { + if (resultB.value && typeof resultB.value === "object") { + if (!setHasEqualElement(set, resultB.value, opts.strict, channel)) { + return false; + } + } else if (!opts.strict && !$setHas(a, resultB.value) && !setHasEqualElement(set, resultB.value, opts.strict, channel)) { + return false; + } + } + return $setSize(set) === 0; + } + return true; + } + function mapEquiv(a, b, opts, channel) { + if ($mapSize(a) !== $mapSize(b)) { + return false; + } + var iA = getIterator3(a); + var iB = getIterator3(b); + var resultA; + var resultB; + var set; + var key2; + var item1; + var item2; + while ((resultA = iA.next()) && !resultA.done) { + key2 = resultA.value[0]; + item1 = resultA.value[1]; + if (key2 && typeof key2 === "object") { + if (!set) { + set = new $Set(); + } + $setAdd(set, key2); + } else { + item2 = $mapGet(b, key2); + if (typeof item2 === "undefined" && !$mapHas(b, key2) || !internalDeepEqual(item1, item2, opts, channel)) { + if (opts.strict) { + return false; + } + if (!mapMightHaveLoosePrim(a, b, key2, item1, opts, channel)) { + return false; + } + if (!set) { + set = new $Set(); + } + $setAdd(set, key2); + } + } + } + if (set) { + while ((resultB = iB.next()) && !resultB.done) { + key2 = resultB.value[0]; + item2 = resultB.value[1]; + if (key2 && typeof key2 === "object") { + if (!mapHasEqualEntry(set, a, key2, item2, opts, channel)) { + return false; + } + } else if (!opts.strict && (!a.has(key2) || !internalDeepEqual($mapGet(a, key2), item2, opts, channel)) && !mapHasEqualEntry(set, a, key2, item2, assign2({}, opts, { strict: false }), channel)) { + return false; + } + } + return $setSize(set) === 0; + } + return true; + } + function objEquiv(a, b, opts, channel) { + var i, key2; + if (typeof a !== typeof b) { + return false; + } + if (a == null || b == null) { + return false; + } + if ($objToString(a) !== $objToString(b)) { + return false; + } + if (isArguments(a) !== isArguments(b)) { + return false; + } + var aIsArray = isArray(a); + var bIsArray = isArray(b); + if (aIsArray !== bIsArray) { + return false; + } + var aIsError = a instanceof Error; + var bIsError = b instanceof Error; + if (aIsError !== bIsError) { + return false; + } + if (aIsError || bIsError) { + if (a.name !== b.name || a.message !== b.message) { + return false; + } + } + var aIsRegex = isRegex(a); + var bIsRegex = isRegex(b); + if (aIsRegex !== bIsRegex) { + return false; + } + if ((aIsRegex || bIsRegex) && (a.source !== b.source || flags(a) !== flags(b))) { + return false; + } + var aIsDate = isDate(a); + var bIsDate = isDate(b); + if (aIsDate !== bIsDate) { + return false; + } + if (aIsDate || bIsDate) { + if ($getTime(a) !== $getTime(b)) { + return false; + } + } + if (opts.strict && gPO && gPO(a) !== gPO(b)) { + return false; + } + var aWhich = whichTypedArray(a); + var bWhich = whichTypedArray(b); + if (aWhich !== bWhich) { + return false; + } + if (aWhich || bWhich) { + if (a.length !== b.length) { + return false; + } + for (i = 0; i < a.length; i++) { + if (a[i] !== b[i]) { + return false; + } + } + return true; + } + var aIsBuffer = isBuffer(a); + var bIsBuffer = isBuffer(b); + if (aIsBuffer !== bIsBuffer) { + return false; + } + if (aIsBuffer || bIsBuffer) { + if (a.length !== b.length) { + return false; + } + for (i = 0; i < a.length; i++) { + if (a[i] !== b[i]) { + return false; + } + } + return true; + } + var aIsArrayBuffer = isArrayBuffer(a); + var bIsArrayBuffer = isArrayBuffer(b); + if (aIsArrayBuffer !== bIsArrayBuffer) { + return false; + } + if (aIsArrayBuffer || bIsArrayBuffer) { + if (byteLength(a) !== byteLength(b)) { + return false; + } + return typeof Uint8Array === "function" && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel); + } + var aIsSAB = isSharedArrayBuffer(a); + var bIsSAB = isSharedArrayBuffer(b); + if (aIsSAB !== bIsSAB) { + return false; + } + if (aIsSAB || bIsSAB) { + if (sabByteLength(a) !== sabByteLength(b)) { + return false; + } + return typeof Uint8Array === "function" && internalDeepEqual(new Uint8Array(a), new Uint8Array(b), opts, channel); + } + if (typeof a !== typeof b) { + return false; + } + var ka = objectKeys(a); + var kb = objectKeys(b); + if (ka.length !== kb.length) { + return false; + } + ka.sort(); + kb.sort(); + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) { + return false; + } + } + for (i = ka.length - 1; i >= 0; i--) { + key2 = ka[i]; + if (!internalDeepEqual(a[key2], b[key2], opts, channel)) { + return false; + } + } + var aCollection = whichCollection(a); + var bCollection = whichCollection(b); + if (aCollection !== bCollection) { + return false; + } + if (aCollection === "Set" || bCollection === "Set") { + return setEquiv(a, b, opts, channel); + } + if (aCollection === "Map") { + return mapEquiv(a, b, opts, channel); + } + return true; + } + module2.exports = function deepEqual2(a, b, opts) { + return internalDeepEqual(a, b, opts, getSideChannel()); + }; + } +}); + +// node_modules/.pnpm/js-sha256@0.9.0/node_modules/js-sha256/src/sha256.js +var require_sha256 = __commonJS({ + "node_modules/.pnpm/js-sha256@0.9.0/node_modules/js-sha256/src/sha256.js"(exports, module) { + init_polyfill_buffer(); + (function() { + "use strict"; + var ERROR = "input is invalid type"; + var WINDOW = typeof window === "object"; + var root = WINDOW ? window : {}; + if (root.JS_SHA256_NO_WINDOW) { + WINDOW = false; + } + var WEB_WORKER = !WINDOW && typeof self === "object"; + var NODE_JS = !root.JS_SHA256_NO_NODE_JS && typeof process === "object" && process.versions && process.versions.node; + if (NODE_JS) { + root = global; + } else if (WEB_WORKER) { + root = self; + } + var COMMON_JS = !root.JS_SHA256_NO_COMMON_JS && typeof module === "object" && module.exports; + var AMD = typeof define === "function" && define.amd; + var ARRAY_BUFFER = !root.JS_SHA256_NO_ARRAY_BUFFER && typeof ArrayBuffer !== "undefined"; + var HEX_CHARS = "0123456789abcdef".split(""); + var EXTRA = [-2147483648, 8388608, 32768, 128]; + var SHIFT = [24, 16, 8, 0]; + var K = [ + 1116352408, + 1899447441, + 3049323471, + 3921009573, + 961987163, + 1508970993, + 2453635748, + 2870763221, + 3624381080, + 310598401, + 607225278, + 1426881987, + 1925078388, + 2162078206, + 2614888103, + 3248222580, + 3835390401, + 4022224774, + 264347078, + 604807628, + 770255983, + 1249150122, + 1555081692, + 1996064986, + 2554220882, + 2821834349, + 2952996808, + 3210313671, + 3336571891, + 3584528711, + 113926993, + 338241895, + 666307205, + 773529912, + 1294757372, + 1396182291, + 1695183700, + 1986661051, + 2177026350, + 2456956037, + 2730485921, + 2820302411, + 3259730800, + 3345764771, + 3516065817, + 3600352804, + 4094571909, + 275423344, + 430227734, + 506948616, + 659060556, + 883997877, + 958139571, + 1322822218, + 1537002063, + 1747873779, + 1955562222, + 2024104815, + 2227730452, + 2361852424, + 2428436474, + 2756734187, + 3204031479, + 3329325298 + ]; + var OUTPUT_TYPES = ["hex", "array", "digest", "arrayBuffer"]; + var blocks = []; + if (root.JS_SHA256_NO_NODE_JS || !Array.isArray) { + Array.isArray = function(obj) { + return Object.prototype.toString.call(obj) === "[object Array]"; + }; + } + if (ARRAY_BUFFER && (root.JS_SHA256_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) { + ArrayBuffer.isView = function(obj) { + return typeof obj === "object" && obj.buffer && obj.buffer.constructor === ArrayBuffer; + }; + } + var createOutputMethod = function(outputType, is2242) { + return function(message) { + return new Sha256(is2242, true).update(message)[outputType](); + }; + }; + var createMethod = function(is2242) { + var method2 = createOutputMethod("hex", is2242); + if (NODE_JS) { + method2 = nodeWrap(method2, is2242); + } + method2.create = function() { + return new Sha256(is2242); + }; + method2.update = function(message) { + return method2.create().update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method2[type] = createOutputMethod(type, is2242); + } + return method2; + }; + var nodeWrap = function(method, is224) { + var crypto = eval("require('crypto')"); + var Buffer = eval("require('buffer').Buffer"); + var algorithm = is224 ? "sha224" : "sha256"; + var nodeMethod = function(message) { + if (typeof message === "string") { + return crypto.createHash(algorithm).update(message, "utf8").digest("hex"); + } else { + if (message === null || message === void 0) { + throw new Error(ERROR); + } else if (message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } + } + if (Array.isArray(message) || ArrayBuffer.isView(message) || message.constructor === Buffer) { + return crypto.createHash(algorithm).update(new Buffer(message)).digest("hex"); + } else { + return method(message); + } + }; + return nodeMethod; + }; + var createHmacOutputMethod = function(outputType, is2242) { + return function(key2, message) { + return new HmacSha256(key2, is2242, true).update(message)[outputType](); + }; + }; + var createHmacMethod = function(is2242) { + var method2 = createHmacOutputMethod("hex", is2242); + method2.create = function(key2) { + return new HmacSha256(key2, is2242); + }; + method2.update = function(key2, message) { + return method2.create(key2).update(message); + }; + for (var i = 0; i < OUTPUT_TYPES.length; ++i) { + var type = OUTPUT_TYPES[i]; + method2[type] = createHmacOutputMethod(type, is2242); + } + return method2; + }; + function Sha256(is2242, sharedMemory) { + if (sharedMemory) { + blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0; + this.blocks = blocks; + } else { + this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + } + if (is2242) { + this.h0 = 3238371032; + this.h1 = 914150663; + this.h2 = 812702999; + this.h3 = 4144912697; + this.h4 = 4290775857; + this.h5 = 1750603025; + this.h6 = 1694076839; + this.h7 = 3204075428; + } else { + this.h0 = 1779033703; + this.h1 = 3144134277; + this.h2 = 1013904242; + this.h3 = 2773480762; + this.h4 = 1359893119; + this.h5 = 2600822924; + this.h6 = 528734635; + this.h7 = 1541459225; + } + this.block = this.start = this.bytes = this.hBytes = 0; + this.finalized = this.hashed = false; + this.first = true; + this.is224 = is2242; + } + Sha256.prototype.update = function(message) { + if (this.finalized) { + return; + } + var notString, type = typeof message; + if (type !== "string") { + if (type === "object") { + if (message === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) { + message = new Uint8Array(message); + } else if (!Array.isArray(message)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + notString = true; + } + var code, index2 = 0, i, length = message.length, blocks2 = this.blocks; + while (index2 < length) { + if (this.hashed) { + this.hashed = false; + blocks2[0] = this.block; + blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; + } + if (notString) { + for (i = this.start; index2 < length && i < 64; ++index2) { + blocks2[i >> 2] |= message[index2] << SHIFT[i++ & 3]; + } + } else { + for (i = this.start; index2 < length && i < 64; ++index2) { + code = message.charCodeAt(index2); + if (code < 128) { + blocks2[i >> 2] |= code << SHIFT[i++ & 3]; + } else if (code < 2048) { + blocks2[i >> 2] |= (192 | code >> 6) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } else if (code < 55296 || code >= 57344) { + blocks2[i >> 2] |= (224 | code >> 12) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } else { + code = 65536 + ((code & 1023) << 10 | message.charCodeAt(++index2) & 1023); + blocks2[i >> 2] |= (240 | code >> 18) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 12 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code >> 6 & 63) << SHIFT[i++ & 3]; + blocks2[i >> 2] |= (128 | code & 63) << SHIFT[i++ & 3]; + } + } + } + this.lastByteIndex = i; + this.bytes += i - this.start; + if (i >= 64) { + this.block = blocks2[16]; + this.start = i - 64; + this.hash(); + this.hashed = true; + } else { + this.start = i; + } + } + if (this.bytes > 4294967295) { + this.hBytes += this.bytes / 4294967296 << 0; + this.bytes = this.bytes % 4294967296; + } + return this; + }; + Sha256.prototype.finalize = function() { + if (this.finalized) { + return; + } + this.finalized = true; + var blocks2 = this.blocks, i = this.lastByteIndex; + blocks2[16] = this.block; + blocks2[i >> 2] |= EXTRA[i & 3]; + this.block = blocks2[16]; + if (i >= 56) { + if (!this.hashed) { + this.hash(); + } + blocks2[0] = this.block; + blocks2[16] = blocks2[1] = blocks2[2] = blocks2[3] = blocks2[4] = blocks2[5] = blocks2[6] = blocks2[7] = blocks2[8] = blocks2[9] = blocks2[10] = blocks2[11] = blocks2[12] = blocks2[13] = blocks2[14] = blocks2[15] = 0; + } + blocks2[14] = this.hBytes << 3 | this.bytes >>> 29; + blocks2[15] = this.bytes << 3; + this.hash(); + }; + Sha256.prototype.hash = function() { + var a = this.h0, b = this.h1, c = this.h2, d = this.h3, e = this.h4, f = this.h5, g = this.h6, h = this.h7, blocks2 = this.blocks, j, s0, s1, maj, t1, t2, ch, ab, da, cd, bc; + for (j = 16; j < 64; ++j) { + t1 = blocks2[j - 15]; + s0 = (t1 >>> 7 | t1 << 25) ^ (t1 >>> 18 | t1 << 14) ^ t1 >>> 3; + t1 = blocks2[j - 2]; + s1 = (t1 >>> 17 | t1 << 15) ^ (t1 >>> 19 | t1 << 13) ^ t1 >>> 10; + blocks2[j] = blocks2[j - 16] + s0 + blocks2[j - 7] + s1 << 0; + } + bc = b & c; + for (j = 0; j < 64; j += 4) { + if (this.first) { + if (this.is224) { + ab = 300032; + t1 = blocks2[0] - 1413257819; + h = t1 - 150054599 << 0; + d = t1 + 24177077 << 0; + } else { + ab = 704751109; + t1 = blocks2[0] - 210244248; + h = t1 - 1521486534 << 0; + d = t1 + 143694565 << 0; + } + this.first = false; + } else { + s0 = (a >>> 2 | a << 30) ^ (a >>> 13 | a << 19) ^ (a >>> 22 | a << 10); + s1 = (e >>> 6 | e << 26) ^ (e >>> 11 | e << 21) ^ (e >>> 25 | e << 7); + ab = a & b; + maj = ab ^ a & c ^ bc; + ch = e & f ^ ~e & g; + t1 = h + s1 + ch + K[j] + blocks2[j]; + t2 = s0 + maj; + h = d + t1 << 0; + d = t1 + t2 << 0; + } + s0 = (d >>> 2 | d << 30) ^ (d >>> 13 | d << 19) ^ (d >>> 22 | d << 10); + s1 = (h >>> 6 | h << 26) ^ (h >>> 11 | h << 21) ^ (h >>> 25 | h << 7); + da = d & a; + maj = da ^ d & b ^ ab; + ch = h & e ^ ~h & f; + t1 = g + s1 + ch + K[j + 1] + blocks2[j + 1]; + t2 = s0 + maj; + g = c + t1 << 0; + c = t1 + t2 << 0; + s0 = (c >>> 2 | c << 30) ^ (c >>> 13 | c << 19) ^ (c >>> 22 | c << 10); + s1 = (g >>> 6 | g << 26) ^ (g >>> 11 | g << 21) ^ (g >>> 25 | g << 7); + cd = c & d; + maj = cd ^ c & a ^ da; + ch = g & h ^ ~g & e; + t1 = f + s1 + ch + K[j + 2] + blocks2[j + 2]; + t2 = s0 + maj; + f = b + t1 << 0; + b = t1 + t2 << 0; + s0 = (b >>> 2 | b << 30) ^ (b >>> 13 | b << 19) ^ (b >>> 22 | b << 10); + s1 = (f >>> 6 | f << 26) ^ (f >>> 11 | f << 21) ^ (f >>> 25 | f << 7); + bc = b & c; + maj = bc ^ b & d ^ cd; + ch = f & g ^ ~f & h; + t1 = e + s1 + ch + K[j + 3] + blocks2[j + 3]; + t2 = s0 + maj; + e = a + t1 << 0; + a = t1 + t2 << 0; + } + this.h0 = this.h0 + a << 0; + this.h1 = this.h1 + b << 0; + this.h2 = this.h2 + c << 0; + this.h3 = this.h3 + d << 0; + this.h4 = this.h4 + e << 0; + this.h5 = this.h5 + f << 0; + this.h6 = this.h6 + g << 0; + this.h7 = this.h7 + h << 0; + }; + Sha256.prototype.hex = function() { + this.finalize(); + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7; + var hex = HEX_CHARS[h0 >> 28 & 15] + HEX_CHARS[h0 >> 24 & 15] + HEX_CHARS[h0 >> 20 & 15] + HEX_CHARS[h0 >> 16 & 15] + HEX_CHARS[h0 >> 12 & 15] + HEX_CHARS[h0 >> 8 & 15] + HEX_CHARS[h0 >> 4 & 15] + HEX_CHARS[h0 & 15] + HEX_CHARS[h1 >> 28 & 15] + HEX_CHARS[h1 >> 24 & 15] + HEX_CHARS[h1 >> 20 & 15] + HEX_CHARS[h1 >> 16 & 15] + HEX_CHARS[h1 >> 12 & 15] + HEX_CHARS[h1 >> 8 & 15] + HEX_CHARS[h1 >> 4 & 15] + HEX_CHARS[h1 & 15] + HEX_CHARS[h2 >> 28 & 15] + HEX_CHARS[h2 >> 24 & 15] + HEX_CHARS[h2 >> 20 & 15] + HEX_CHARS[h2 >> 16 & 15] + HEX_CHARS[h2 >> 12 & 15] + HEX_CHARS[h2 >> 8 & 15] + HEX_CHARS[h2 >> 4 & 15] + HEX_CHARS[h2 & 15] + HEX_CHARS[h3 >> 28 & 15] + HEX_CHARS[h3 >> 24 & 15] + HEX_CHARS[h3 >> 20 & 15] + HEX_CHARS[h3 >> 16 & 15] + HEX_CHARS[h3 >> 12 & 15] + HEX_CHARS[h3 >> 8 & 15] + HEX_CHARS[h3 >> 4 & 15] + HEX_CHARS[h3 & 15] + HEX_CHARS[h4 >> 28 & 15] + HEX_CHARS[h4 >> 24 & 15] + HEX_CHARS[h4 >> 20 & 15] + HEX_CHARS[h4 >> 16 & 15] + HEX_CHARS[h4 >> 12 & 15] + HEX_CHARS[h4 >> 8 & 15] + HEX_CHARS[h4 >> 4 & 15] + HEX_CHARS[h4 & 15] + HEX_CHARS[h5 >> 28 & 15] + HEX_CHARS[h5 >> 24 & 15] + HEX_CHARS[h5 >> 20 & 15] + HEX_CHARS[h5 >> 16 & 15] + HEX_CHARS[h5 >> 12 & 15] + HEX_CHARS[h5 >> 8 & 15] + HEX_CHARS[h5 >> 4 & 15] + HEX_CHARS[h5 & 15] + HEX_CHARS[h6 >> 28 & 15] + HEX_CHARS[h6 >> 24 & 15] + HEX_CHARS[h6 >> 20 & 15] + HEX_CHARS[h6 >> 16 & 15] + HEX_CHARS[h6 >> 12 & 15] + HEX_CHARS[h6 >> 8 & 15] + HEX_CHARS[h6 >> 4 & 15] + HEX_CHARS[h6 & 15]; + if (!this.is224) { + hex += HEX_CHARS[h7 >> 28 & 15] + HEX_CHARS[h7 >> 24 & 15] + HEX_CHARS[h7 >> 20 & 15] + HEX_CHARS[h7 >> 16 & 15] + HEX_CHARS[h7 >> 12 & 15] + HEX_CHARS[h7 >> 8 & 15] + HEX_CHARS[h7 >> 4 & 15] + HEX_CHARS[h7 & 15]; + } + return hex; + }; + Sha256.prototype.toString = Sha256.prototype.hex; + Sha256.prototype.digest = function() { + this.finalize(); + var h0 = this.h0, h1 = this.h1, h2 = this.h2, h3 = this.h3, h4 = this.h4, h5 = this.h5, h6 = this.h6, h7 = this.h7; + var arr = [ + h0 >> 24 & 255, + h0 >> 16 & 255, + h0 >> 8 & 255, + h0 & 255, + h1 >> 24 & 255, + h1 >> 16 & 255, + h1 >> 8 & 255, + h1 & 255, + h2 >> 24 & 255, + h2 >> 16 & 255, + h2 >> 8 & 255, + h2 & 255, + h3 >> 24 & 255, + h3 >> 16 & 255, + h3 >> 8 & 255, + h3 & 255, + h4 >> 24 & 255, + h4 >> 16 & 255, + h4 >> 8 & 255, + h4 & 255, + h5 >> 24 & 255, + h5 >> 16 & 255, + h5 >> 8 & 255, + h5 & 255, + h6 >> 24 & 255, + h6 >> 16 & 255, + h6 >> 8 & 255, + h6 & 255 + ]; + if (!this.is224) { + arr.push(h7 >> 24 & 255, h7 >> 16 & 255, h7 >> 8 & 255, h7 & 255); + } + return arr; + }; + Sha256.prototype.array = Sha256.prototype.digest; + Sha256.prototype.arrayBuffer = function() { + this.finalize(); + var buffer2 = new ArrayBuffer(this.is224 ? 28 : 32); + var dataView = new DataView(buffer2); + dataView.setUint32(0, this.h0); + dataView.setUint32(4, this.h1); + dataView.setUint32(8, this.h2); + dataView.setUint32(12, this.h3); + dataView.setUint32(16, this.h4); + dataView.setUint32(20, this.h5); + dataView.setUint32(24, this.h6); + if (!this.is224) { + dataView.setUint32(28, this.h7); + } + return buffer2; + }; + function HmacSha256(key2, is2242, sharedMemory) { + var i, type = typeof key2; + if (type === "string") { + var bytes = [], length = key2.length, index2 = 0, code; + for (i = 0; i < length; ++i) { + code = key2.charCodeAt(i); + if (code < 128) { + bytes[index2++] = code; + } else if (code < 2048) { + bytes[index2++] = 192 | code >> 6; + bytes[index2++] = 128 | code & 63; + } else if (code < 55296 || code >= 57344) { + bytes[index2++] = 224 | code >> 12; + bytes[index2++] = 128 | code >> 6 & 63; + bytes[index2++] = 128 | code & 63; + } else { + code = 65536 + ((code & 1023) << 10 | key2.charCodeAt(++i) & 1023); + bytes[index2++] = 240 | code >> 18; + bytes[index2++] = 128 | code >> 12 & 63; + bytes[index2++] = 128 | code >> 6 & 63; + bytes[index2++] = 128 | code & 63; + } + } + key2 = bytes; + } else { + if (type === "object") { + if (key2 === null) { + throw new Error(ERROR); + } else if (ARRAY_BUFFER && key2.constructor === ArrayBuffer) { + key2 = new Uint8Array(key2); + } else if (!Array.isArray(key2)) { + if (!ARRAY_BUFFER || !ArrayBuffer.isView(key2)) { + throw new Error(ERROR); + } + } + } else { + throw new Error(ERROR); + } + } + if (key2.length > 64) { + key2 = new Sha256(is2242, true).update(key2).array(); + } + var oKeyPad = [], iKeyPad = []; + for (i = 0; i < 64; ++i) { + var b = key2[i] || 0; + oKeyPad[i] = 92 ^ b; + iKeyPad[i] = 54 ^ b; + } + Sha256.call(this, is2242, sharedMemory); + this.update(iKeyPad); + this.oKeyPad = oKeyPad; + this.inner = true; + this.sharedMemory = sharedMemory; + } + HmacSha256.prototype = new Sha256(); + HmacSha256.prototype.finalize = function() { + Sha256.prototype.finalize.call(this); + if (this.inner) { + this.inner = false; + var innerHash = this.array(); + Sha256.call(this, this.is224, this.sharedMemory); + this.update(this.oKeyPad); + this.update(innerHash); + Sha256.prototype.finalize.call(this); + } + }; + var exports = createMethod(); + exports.sha256 = exports; + exports.sha224 = createMethod(true); + exports.sha256.hmac = createHmacMethod(); + exports.sha224.hmac = createHmacMethod(true); + if (COMMON_JS) { + module.exports = exports; + } else { + root.sha256 = exports.sha256; + root.sha224 = exports.sha224; + if (AMD) { + define(function() { + return exports; + }); + } + } + })(); + } +}); + +// node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/compiler.js +var require_compiler = __commonJS({ + "node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/compiler.js"(exports2) { + init_polyfill_buffer(); + (function(Hogan4) { + var rIsWhitespace = /\S/, rQuot = /\"/g, rNewline = /\n/g, rCr = /\r/g, rSlash = /\\/g, rLineSep = /\u2028/, rParagraphSep = /\u2029/; + Hogan4.tags = { + "#": 1, + "^": 2, + "<": 3, + "$": 4, + "/": 5, + "!": 6, + ">": 7, + "=": 8, + "_v": 9, + "{": 10, + "&": 11, + "_t": 12 + }; + Hogan4.scan = function scan(text2, delimiters) { + var len = text2.length, IN_TEXT = 0, IN_TAG_TYPE = 1, IN_TAG = 2, state = IN_TEXT, tagType = null, tag2 = null, buf = "", tokens = [], seenTag = false, i = 0, lineStart = 0, otag = "{{", ctag = "}}"; + function addBuf() { + if (buf.length > 0) { + tokens.push({ tag: "_t", text: new String(buf) }); + buf = ""; + } + } + function lineIsWhitespace() { + var isAllWhitespace = true; + for (var j = lineStart; j < tokens.length; j++) { + isAllWhitespace = Hogan4.tags[tokens[j].tag] < Hogan4.tags["_v"] || tokens[j].tag == "_t" && tokens[j].text.match(rIsWhitespace) === null; + if (!isAllWhitespace) { + return false; + } + } + return isAllWhitespace; + } + function filterLine(haveSeenTag, noNewLine) { + addBuf(); + if (haveSeenTag && lineIsWhitespace()) { + for (var j = lineStart, next; j < tokens.length; j++) { + if (tokens[j].text) { + if ((next = tokens[j + 1]) && next.tag == ">") { + next.indent = tokens[j].text.toString(); + } + tokens.splice(j, 1); + } + } + } else if (!noNewLine) { + tokens.push({ tag: "\n" }); + } + seenTag = false; + lineStart = tokens.length; + } + function changeDelimiters(text3, index2) { + var close = "=" + ctag, closeIndex = text3.indexOf(close, index2), delimiters2 = trim( + text3.substring(text3.indexOf("=", index2) + 1, closeIndex) + ).split(" "); + otag = delimiters2[0]; + ctag = delimiters2[delimiters2.length - 1]; + return closeIndex + close.length - 1; + } + if (delimiters) { + delimiters = delimiters.split(" "); + otag = delimiters[0]; + ctag = delimiters[1]; + } + for (i = 0; i < len; i++) { + if (state == IN_TEXT) { + if (tagChange(otag, text2, i)) { + --i; + addBuf(); + state = IN_TAG_TYPE; + } else { + if (text2.charAt(i) == "\n") { + filterLine(seenTag); + } else { + buf += text2.charAt(i); + } + } + } else if (state == IN_TAG_TYPE) { + i += otag.length - 1; + tag2 = Hogan4.tags[text2.charAt(i + 1)]; + tagType = tag2 ? text2.charAt(i + 1) : "_v"; + if (tagType == "=") { + i = changeDelimiters(text2, i); + state = IN_TEXT; + } else { + if (tag2) { + i++; + } + state = IN_TAG; + } + seenTag = i; + } else { + if (tagChange(ctag, text2, i)) { + tokens.push({ + tag: tagType, + n: trim(buf), + otag, + ctag, + i: tagType == "/" ? seenTag - otag.length : i + ctag.length + }); + buf = ""; + i += ctag.length - 1; + state = IN_TEXT; + if (tagType == "{") { + if (ctag == "}}") { + i++; + } else { + cleanTripleStache(tokens[tokens.length - 1]); + } + } + } else { + buf += text2.charAt(i); + } + } + } + filterLine(seenTag, true); + return tokens; + }; + function cleanTripleStache(token) { + if (token.n.substr(token.n.length - 1) === "}") { + token.n = token.n.substring(0, token.n.length - 1); + } + } + function trim(s) { + if (s.trim) { + return s.trim(); + } + return s.replace(/^\s*|\s*$/g, ""); + } + function tagChange(tag2, text2, index2) { + if (text2.charAt(index2) != tag2.charAt(0)) { + return false; + } + for (var i = 1, l = tag2.length; i < l; i++) { + if (text2.charAt(index2 + i) != tag2.charAt(i)) { + return false; + } + } + return true; + } + var allowedInSuper = { "_t": true, "\n": true, "$": true, "/": true }; + function buildTree(tokens, kind, stack, customTags) { + var instructions = [], opener = null, tail = null, token = null; + tail = stack[stack.length - 1]; + while (tokens.length > 0) { + token = tokens.shift(); + if (tail && tail.tag == "<" && !(token.tag in allowedInSuper)) { + throw new Error("Illegal content in < super tag."); + } + if (Hogan4.tags[token.tag] <= Hogan4.tags["$"] || isOpener(token, customTags)) { + stack.push(token); + token.nodes = buildTree(tokens, token.tag, stack, customTags); + } else if (token.tag == "/") { + if (stack.length === 0) { + throw new Error("Closing tag without opener: /" + token.n); + } + opener = stack.pop(); + if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) { + throw new Error("Nesting error: " + opener.n + " vs. " + token.n); + } + opener.end = token.i; + return instructions; + } else if (token.tag == "\n") { + token.last = tokens.length == 0 || tokens[0].tag == "\n"; + } + instructions.push(token); + } + if (stack.length > 0) { + throw new Error("missing closing tag: " + stack.pop().n); + } + return instructions; + } + function isOpener(token, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].o == token.n) { + token.tag = "#"; + return true; + } + } + } + function isCloser(close, open, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].c == close && tags[i].o == open) { + return true; + } + } + } + function stringifySubstitutions(obj) { + var items = []; + for (var key2 in obj) { + items.push('"' + esc(key2) + '": function(c,p,t,i) {' + obj[key2] + "}"); + } + return "{ " + items.join(",") + " }"; + } + function stringifyPartials(codeObj) { + var partials = []; + for (var key2 in codeObj.partials) { + partials.push('"' + esc(key2) + '":{name:"' + esc(codeObj.partials[key2].name) + '", ' + stringifyPartials(codeObj.partials[key2]) + "}"); + } + return "partials: {" + partials.join(",") + "}, subs: " + stringifySubstitutions(codeObj.subs); + } + Hogan4.stringify = function(codeObj, text2, options) { + return "{code: function (c,p,i) { " + Hogan4.wrapMain(codeObj.code) + " }," + stringifyPartials(codeObj) + "}"; + }; + var serialNo = 0; + Hogan4.generate = function(tree, text2, options) { + serialNo = 0; + var context = { code: "", subs: {}, partials: {} }; + Hogan4.walk(tree, context); + if (options.asString) { + return this.stringify(context, text2, options); + } + return this.makeTemplate(context, text2, options); + }; + Hogan4.wrapMain = function(code) { + return 'var t=this;t.b(i=i||"");' + code + "return t.fl();"; + }; + Hogan4.template = Hogan4.Template; + Hogan4.makeTemplate = function(codeObj, text2, options) { + var template = this.makePartials(codeObj); + template.code = new Function("c", "p", "i", this.wrapMain(codeObj.code)); + return new this.template(template, text2, this, options); + }; + Hogan4.makePartials = function(codeObj) { + var key2, template = { subs: {}, partials: codeObj.partials, name: codeObj.name }; + for (key2 in template.partials) { + template.partials[key2] = this.makePartials(template.partials[key2]); + } + for (key2 in codeObj.subs) { + template.subs[key2] = new Function("c", "p", "t", "i", codeObj.subs[key2]); + } + return template; + }; + function esc(s) { + return s.replace(rSlash, "\\\\").replace(rQuot, '\\"').replace(rNewline, "\\n").replace(rCr, "\\r").replace(rLineSep, "\\u2028").replace(rParagraphSep, "\\u2029"); + } + function chooseMethod(s) { + return ~s.indexOf(".") ? "d" : "f"; + } + function createPartial(node, context) { + var prefix = "<" + (context.prefix || ""); + var sym = prefix + node.n + serialNo++; + context.partials[sym] = { name: node.n, partials: {} }; + context.code += 't.b(t.rp("' + esc(sym) + '",c,p,"' + (node.indent || "") + '"));'; + return sym; + } + Hogan4.codegen = { + "#": function(node, context) { + context.code += "if(t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,0,' + node.i + "," + node.end + ',"' + node.otag + " " + node.ctag + '")){t.rs(c,p,function(c,p,t){'; + Hogan4.walk(node.nodes, context); + context.code += "});c.pop();}"; + }, + "^": function(node, context) { + context.code += "if(!t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,1,0,0,"")){'; + Hogan4.walk(node.nodes, context); + context.code += "};"; + }, + ">": createPartial, + "<": function(node, context) { + var ctx = { partials: {}, code: "", subs: {}, inPartial: true }; + Hogan4.walk(node.nodes, ctx); + var template = context.partials[createPartial(node, context)]; + template.subs = ctx.subs; + template.partials = ctx.partials; + }, + "$": function(node, context) { + var ctx = { subs: {}, code: "", partials: context.partials, prefix: node.n }; + Hogan4.walk(node.nodes, ctx); + context.subs[node.n] = ctx.code; + if (!context.inPartial) { + context.code += 't.sub("' + esc(node.n) + '",c,p,i);'; + } + }, + "\n": function(node, context) { + context.code += write('"\\n"' + (node.last ? "" : " + i")); + }, + "_v": function(node, context) { + context.code += "t.b(t.v(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + }, + "_t": function(node, context) { + context.code += write('"' + esc(node.text) + '"'); + }, + "{": tripleStache, + "&": tripleStache + }; + function tripleStache(node, context) { + context.code += "t.b(t.t(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + } + function write(s) { + return "t.b(" + s + ");"; + } + Hogan4.walk = function(nodelist, context) { + var func; + for (var i = 0, l = nodelist.length; i < l; i++) { + func = Hogan4.codegen[nodelist[i].tag]; + func && func(nodelist[i], context); + } + return context; + }; + Hogan4.parse = function(tokens, text2, options) { + options = options || {}; + return buildTree(tokens, "", [], options.sectionTags || []); + }; + Hogan4.cache = {}; + Hogan4.cacheKey = function(text2, options) { + return [text2, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join("||"); + }; + Hogan4.compile = function(text2, options) { + options = options || {}; + var key2 = Hogan4.cacheKey(text2, options); + var template = this.cache[key2]; + if (template) { + var partials = template.partials; + for (var name in partials) { + delete partials[name].instance; + } + return template; + } + template = this.generate(this.parse(this.scan(text2, options.delimiters), text2, options), text2, options); + return this.cache[key2] = template; + }; + })(typeof exports2 !== "undefined" ? exports2 : Hogan); + } +}); + +// node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/template.js +var require_template = __commonJS({ + "node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/template.js"(exports2) { + init_polyfill_buffer(); + var Hogan4 = {}; + (function(Hogan5) { + Hogan5.Template = function(codeObj, text2, compiler, options) { + codeObj = codeObj || {}; + this.r = codeObj.code || this.r; + this.c = compiler; + this.options = options || {}; + this.text = text2 || ""; + this.partials = codeObj.partials || {}; + this.subs = codeObj.subs || {}; + this.buf = ""; + }; + Hogan5.Template.prototype = { + // render: replaced by generated code. + r: function(context, partials, indent2) { + return ""; + }, + // variable escaping + v: hoganEscape, + // triple stache + t: coerceToString, + render: function render(context, partials, indent2) { + return this.ri([context], partials || {}, indent2); + }, + // render internal -- a hook for overrides that catches partials too + ri: function(context, partials, indent2) { + return this.r(context, partials, indent2); + }, + // ensurePartial + ep: function(symbol, partials) { + var partial = this.partials[symbol]; + var template = partials[partial.name]; + if (partial.instance && partial.base == template) { + return partial.instance; + } + if (typeof template == "string") { + if (!this.c) { + throw new Error("No compiler available."); + } + template = this.c.compile(template, this.options); + } + if (!template) { + return null; + } + this.partials[symbol].base = template; + if (partial.subs) { + if (!partials.stackText) partials.stackText = {}; + for (key in partial.subs) { + if (!partials.stackText[key]) { + partials.stackText[key] = this.activeSub !== void 0 && partials.stackText[this.activeSub] ? partials.stackText[this.activeSub] : this.text; + } + } + template = createSpecializedPartial( + template, + partial.subs, + partial.partials, + this.stackSubs, + this.stackPartials, + partials.stackText + ); + } + this.partials[symbol].instance = template; + return template; + }, + // tries to find a partial in the current scope and render it + rp: function(symbol, context, partials, indent2) { + var partial = this.ep(symbol, partials); + if (!partial) { + return ""; + } + return partial.ri(context, partials, indent2); + }, + // render a section + rs: function(context, partials, section) { + var tail = context[context.length - 1]; + if (!isArray(tail)) { + section(context, partials, this); + return; + } + for (var i = 0; i < tail.length; i++) { + context.push(tail[i]); + section(context, partials, this); + context.pop(); + } + }, + // maybe start a section + s: function(val, ctx, partials, inverted, start, end, tags) { + var pass; + if (isArray(val) && val.length === 0) { + return false; + } + if (typeof val == "function") { + val = this.ms(val, ctx, partials, inverted, start, end, tags); + } + pass = !!val; + if (!inverted && pass && ctx) { + ctx.push(typeof val == "object" ? val : ctx[ctx.length - 1]); + } + return pass; + }, + // find values with dotted names + d: function(key2, ctx, partials, returnFound) { + var found, names = key2.split("."), val = this.f(names[0], ctx, partials, returnFound), doModelGet = this.options.modelGet, cx = null; + if (key2 === "." && isArray(ctx[ctx.length - 2])) { + val = ctx[ctx.length - 1]; + } else { + for (var i = 1; i < names.length; i++) { + found = findInScope(names[i], val, doModelGet); + if (found !== void 0) { + cx = val; + val = found; + } else { + val = ""; + } + } + } + if (returnFound && !val) { + return false; + } + if (!returnFound && typeof val == "function") { + ctx.push(cx); + val = this.mv(val, ctx, partials); + ctx.pop(); + } + return val; + }, + // find values with normal names + f: function(key2, ctx, partials, returnFound) { + var val = false, v = null, found = false, doModelGet = this.options.modelGet; + for (var i = ctx.length - 1; i >= 0; i--) { + v = ctx[i]; + val = findInScope(key2, v, doModelGet); + if (val !== void 0) { + found = true; + break; + } + } + if (!found) { + return returnFound ? false : ""; + } + if (!returnFound && typeof val == "function") { + val = this.mv(val, ctx, partials); + } + return val; + }, + // higher order templates + ls: function(func, cx, partials, text2, tags) { + var oldTags = this.options.delimiters; + this.options.delimiters = tags; + this.b(this.ct(coerceToString(func.call(cx, text2)), cx, partials)); + this.options.delimiters = oldTags; + return false; + }, + // compile text + ct: function(text2, cx, partials) { + if (this.options.disableLambda) { + throw new Error("Lambda features disabled."); + } + return this.c.compile(text2, this.options).render(cx, partials); + }, + // template result buffering + b: function(s) { + this.buf += s; + }, + fl: function() { + var r = this.buf; + this.buf = ""; + return r; + }, + // method replace section + ms: function(func, ctx, partials, inverted, start, end, tags) { + var textSource, cx = ctx[ctx.length - 1], result = func.call(cx); + if (typeof result == "function") { + if (inverted) { + return true; + } else { + textSource = this.activeSub && this.subsText && this.subsText[this.activeSub] ? this.subsText[this.activeSub] : this.text; + return this.ls(result, cx, partials, textSource.substring(start, end), tags); + } + } + return result; + }, + // method replace variable + mv: function(func, ctx, partials) { + var cx = ctx[ctx.length - 1]; + var result = func.call(cx); + if (typeof result == "function") { + return this.ct(coerceToString(result.call(cx)), cx, partials); + } + return result; + }, + sub: function(name, context, partials, indent2) { + var f = this.subs[name]; + if (f) { + this.activeSub = name; + f(context, partials, this, indent2); + this.activeSub = false; + } + } + }; + function findInScope(key2, scope, doModelGet) { + var val; + if (scope && typeof scope == "object") { + if (scope[key2] !== void 0) { + val = scope[key2]; + } else if (doModelGet && scope.get && typeof scope.get == "function") { + val = scope.get(key2); + } + } + return val; + } + function createSpecializedPartial(instance10, subs, partials, stackSubs, stackPartials, stackText) { + function PartialTemplate() { + } + ; + PartialTemplate.prototype = instance10; + function Substitutions() { + } + ; + Substitutions.prototype = instance10.subs; + var key2; + var partial = new PartialTemplate(); + partial.subs = new Substitutions(); + partial.subsText = {}; + partial.buf = ""; + stackSubs = stackSubs || {}; + partial.stackSubs = stackSubs; + partial.subsText = stackText; + for (key2 in subs) { + if (!stackSubs[key2]) stackSubs[key2] = subs[key2]; + } + for (key2 in stackSubs) { + partial.subs[key2] = stackSubs[key2]; + } + stackPartials = stackPartials || {}; + partial.stackPartials = stackPartials; + for (key2 in partials) { + if (!stackPartials[key2]) stackPartials[key2] = partials[key2]; + } + for (key2 in stackPartials) { + partial.partials[key2] = stackPartials[key2]; + } + return partial; + } + var rAmp = /&/g, rLt = //g, rApos = /\'/g, rQuot = /\"/g, hChars = /[&<>\"\']/; + function coerceToString(val) { + return String(val === null || val === void 0 ? "" : val); + } + function hoganEscape(str) { + str = coerceToString(str); + return hChars.test(str) ? str.replace(rAmp, "&").replace(rLt, "<").replace(rGt, ">").replace(rApos, "'").replace(rQuot, """) : str; + } + var isArray = Array.isArray || function(a) { + return Object.prototype.toString.call(a) === "[object Array]"; + }; + })(typeof exports2 !== "undefined" ? exports2 : Hogan4); + } +}); + +// node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/hogan.js +var require_hogan = __commonJS({ + "node_modules/.pnpm/hogan.js@3.0.2/node_modules/hogan.js/lib/hogan.js"(exports2, module2) { + init_polyfill_buffer(); + var Hogan4 = require_compiler(); + Hogan4.Template = require_template().Template; + Hogan4.template = Hogan4.Template; + module2.exports = Hogan4; + } +}); + +// node_modules/.pnpm/feather-icons@4.29.2/node_modules/feather-icons/dist/feather.js +var require_feather = __commonJS({ + "node_modules/.pnpm/feather-icons@4.29.2/node_modules/feather-icons/dist/feather.js"(exports2, module2) { + init_polyfill_buffer(); + (function webpackUniversalModuleDefinition(root2, factory) { + if (typeof exports2 === "object" && typeof module2 === "object") + module2.exports = factory(); + else if (typeof define === "function" && define.amd) + define([], factory); + else if (typeof exports2 === "object") + exports2["feather"] = factory(); + else + root2["feather"] = factory(); + })(typeof self !== "undefined" ? self : exports2, function() { + return ( + /******/ + function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) { + return installedModules[moduleId].exports; + } + var module3 = installedModules[moduleId] = { + /******/ + i: moduleId, + /******/ + l: false, + /******/ + exports: {} + /******/ + }; + modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); + module3.l = true; + return module3.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.d = function(exports3, name, getter) { + if (!__webpack_require__.o(exports3, name)) { + Object.defineProperty(exports3, name, { + /******/ + configurable: false, + /******/ + enumerable: true, + /******/ + get: getter + /******/ + }); + } + }; + __webpack_require__.r = function(exports3) { + Object.defineProperty(exports3, "__esModule", { value: true }); + }; + __webpack_require__.n = function(module3) { + var getter = module3 && module3.__esModule ? ( + /******/ + function getDefault() { + return module3["default"]; + } + ) : ( + /******/ + function getModuleExports() { + return module3; + } + ); + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 0); + }({ + /***/ + "./dist/icons.json": ( + /*!*************************!*\ + !*** ./dist/icons.json ***! + \*************************/ + /*! exports provided: activity, airplay, alert-circle, alert-octagon, alert-triangle, align-center, align-justify, align-left, align-right, anchor, aperture, archive, arrow-down-circle, arrow-down-left, arrow-down-right, arrow-down, arrow-left-circle, arrow-left, arrow-right-circle, arrow-right, arrow-up-circle, arrow-up-left, arrow-up-right, arrow-up, at-sign, award, bar-chart-2, bar-chart, battery-charging, battery, bell-off, bell, bluetooth, bold, book-open, book, bookmark, box, briefcase, calendar, camera-off, camera, cast, check-circle, check-square, check, chevron-down, chevron-left, chevron-right, chevron-up, chevrons-down, chevrons-left, chevrons-right, chevrons-up, chrome, circle, clipboard, clock, cloud-drizzle, cloud-lightning, cloud-off, cloud-rain, cloud-snow, cloud, code, codepen, codesandbox, coffee, columns, command, compass, copy, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, cpu, credit-card, crop, crosshair, database, delete, disc, divide-circle, divide-square, divide, dollar-sign, download-cloud, download, dribbble, droplet, edit-2, edit-3, edit, external-link, eye-off, eye, facebook, fast-forward, feather, figma, file-minus, file-plus, file-text, file, film, filter, flag, folder-minus, folder-plus, folder, framer, frown, gift, git-branch, git-commit, git-merge, git-pull-request, github, gitlab, globe, grid, hard-drive, hash, headphones, heart, help-circle, hexagon, home, image, inbox, info, instagram, italic, key, layers, layout, life-buoy, link-2, link, linkedin, list, loader, lock, log-in, log-out, mail, map-pin, map, maximize-2, maximize, meh, menu, message-circle, message-square, mic-off, mic, minimize-2, minimize, minus-circle, minus-square, minus, monitor, moon, more-horizontal, more-vertical, mouse-pointer, move, music, navigation-2, navigation, octagon, package, paperclip, pause-circle, pause, pen-tool, percent, phone-call, phone-forwarded, phone-incoming, phone-missed, phone-off, phone-outgoing, phone, pie-chart, play-circle, play, plus-circle, plus-square, plus, pocket, power, printer, radio, refresh-ccw, refresh-cw, repeat, rewind, rotate-ccw, rotate-cw, rss, save, scissors, search, send, server, settings, share-2, share, shield-off, shield, shopping-bag, shopping-cart, shuffle, sidebar, skip-back, skip-forward, slack, slash, sliders, smartphone, smile, speaker, square, star, stop-circle, sun, sunrise, sunset, table, tablet, tag, target, terminal, thermometer, thumbs-down, thumbs-up, toggle-left, toggle-right, tool, trash-2, trash, trello, trending-down, trending-up, triangle, truck, tv, twitch, twitter, type, umbrella, underline, unlock, upload-cloud, upload, user-check, user-minus, user-plus, user-x, user, users, video-off, video, voicemail, volume-1, volume-2, volume-x, volume, watch, wifi-off, wifi, wind, x-circle, x-octagon, x-square, x, youtube, zap-off, zap, zoom-in, zoom-out, default */ + /***/ + function(module3) { + module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "table": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' }; + } + ), + /***/ + "./node_modules/classnames/dedupe.js": ( + /*!*******************************************!*\ + !*** ./node_modules/classnames/dedupe.js ***! + \*******************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + "use strict"; + var classNames = function() { + function StorageObject() { + } + StorageObject.prototype = /* @__PURE__ */ Object.create(null); + function _parseArray(resultSet, array) { + var length = array.length; + for (var i = 0; i < length; ++i) { + _parse(resultSet, array[i]); + } + } + var hasOwn = {}.hasOwnProperty; + function _parseNumber(resultSet, num2) { + resultSet[num2] = true; + } + function _parseObject(resultSet, object) { + for (var k in object) { + if (hasOwn.call(object, k)) { + resultSet[k] = !!object[k]; + } + } + } + var SPACE = /\s+/; + function _parseString(resultSet, str) { + var array = str.split(SPACE); + var length = array.length; + for (var i = 0; i < length; ++i) { + resultSet[array[i]] = true; + } + } + function _parse(resultSet, arg) { + if (!arg) return; + var argType = typeof arg; + if (argType === "string") { + _parseString(resultSet, arg); + } else if (Array.isArray(arg)) { + _parseArray(resultSet, arg); + } else if (argType === "object") { + _parseObject(resultSet, arg); + } else if (argType === "number") { + _parseNumber(resultSet, arg); + } + } + function _classNames() { + var len = arguments.length; + var args = Array(len); + for (var i = 0; i < len; i++) { + args[i] = arguments[i]; + } + var classSet = new StorageObject(); + _parseArray(classSet, args); + var list = []; + for (var k in classSet) { + if (classSet[k]) { + list.push(k); + } + } + return list.join(" "); + } + return _classNames; + }(); + if (typeof module3 !== "undefined" && module3.exports) { + module3.exports = classNames; + } else if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return classNames; + }.apply(exports3, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + } + })(); + } + ), + /***/ + "./node_modules/core-js/es/array/from.js": ( + /*!***********************************************!*\ + !*** ./node_modules/core-js/es/array/from.js ***! + \***********************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + __webpack_require__( + /*! ../../modules/es.string.iterator */ + "./node_modules/core-js/modules/es.string.iterator.js" + ); + __webpack_require__( + /*! ../../modules/es.array.from */ + "./node_modules/core-js/modules/es.array.from.js" + ); + var path2 = __webpack_require__( + /*! ../../internals/path */ + "./node_modules/core-js/internals/path.js" + ); + module3.exports = path2.Array.from; + } + ), + /***/ + "./node_modules/core-js/internals/a-function.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/a-function.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(it) { + if (typeof it != "function") { + throw TypeError(String(it) + " is not a function"); + } + return it; + }; + } + ), + /***/ + "./node_modules/core-js/internals/an-object.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/an-object.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var isObject2 = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + module3.exports = function(it) { + if (!isObject2(it)) { + throw TypeError(String(it) + " is not an object"); + } + return it; + }; + } + ), + /***/ + "./node_modules/core-js/internals/array-from.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/array-from.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var bind = __webpack_require__( + /*! ../internals/bind-context */ + "./node_modules/core-js/internals/bind-context.js" + ); + var toObject = __webpack_require__( + /*! ../internals/to-object */ + "./node_modules/core-js/internals/to-object.js" + ); + var callWithSafeIterationClosing = __webpack_require__( + /*! ../internals/call-with-safe-iteration-closing */ + "./node_modules/core-js/internals/call-with-safe-iteration-closing.js" + ); + var isArrayIteratorMethod = __webpack_require__( + /*! ../internals/is-array-iterator-method */ + "./node_modules/core-js/internals/is-array-iterator-method.js" + ); + var toLength = __webpack_require__( + /*! ../internals/to-length */ + "./node_modules/core-js/internals/to-length.js" + ); + var createProperty = __webpack_require__( + /*! ../internals/create-property */ + "./node_modules/core-js/internals/create-property.js" + ); + var getIteratorMethod = __webpack_require__( + /*! ../internals/get-iterator-method */ + "./node_modules/core-js/internals/get-iterator-method.js" + ); + module3.exports = function from(arrayLike) { + var O = toObject(arrayLike); + var C = typeof this == "function" ? this : Array; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : void 0; + var mapping = mapfn !== void 0; + var index2 = 0; + var iteratorMethod = getIteratorMethod(O); + var length, result, step, iterator; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : void 0, 2); + if (iteratorMethod != void 0 && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = iteratorMethod.call(O); + result = new C(); + for (; !(step = iterator.next()).done; index2++) { + createProperty( + result, + index2, + mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index2], true) : step.value + ); + } + } else { + length = toLength(O.length); + result = new C(length); + for (; length > index2; index2++) { + createProperty(result, index2, mapping ? mapfn(O[index2], index2) : O[index2]); + } + } + result.length = index2; + return result; + }; + } + ), + /***/ + "./node_modules/core-js/internals/array-includes.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/array-includes.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toIndexedObject = __webpack_require__( + /*! ../internals/to-indexed-object */ + "./node_modules/core-js/internals/to-indexed-object.js" + ); + var toLength = __webpack_require__( + /*! ../internals/to-length */ + "./node_modules/core-js/internals/to-length.js" + ); + var toAbsoluteIndex = __webpack_require__( + /*! ../internals/to-absolute-index */ + "./node_modules/core-js/internals/to-absolute-index.js" + ); + module3.exports = function(IS_INCLUDES) { + return function($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index2 = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) while (length > index2) { + value = O[index2++]; + if (value != value) return true; + } + else for (; length > index2; index2++) if (IS_INCLUDES || index2 in O) { + if (O[index2] === el) return IS_INCLUDES || index2 || 0; + } + return !IS_INCLUDES && -1; + }; + }; + } + ), + /***/ + "./node_modules/core-js/internals/bind-context.js": ( + /*!********************************************************!*\ + !*** ./node_modules/core-js/internals/bind-context.js ***! + \********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var aFunction = __webpack_require__( + /*! ../internals/a-function */ + "./node_modules/core-js/internals/a-function.js" + ); + module3.exports = function(fn, that, length) { + aFunction(fn); + if (that === void 0) return fn; + switch (length) { + case 0: + return function() { + return fn.call(that); + }; + case 1: + return function(a) { + return fn.call(that, a); + }; + case 2: + return function(a, b) { + return fn.call(that, a, b); + }; + case 3: + return function(a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function() { + return fn.apply(that, arguments); + }; + }; + } + ), + /***/ + "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": ( + /*!****************************************************************************!*\ + !*** ./node_modules/core-js/internals/call-with-safe-iteration-closing.js ***! + \****************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + module3.exports = function(iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + var returnMethod = iterator["return"]; + if (returnMethod !== void 0) anObject(returnMethod.call(iterator)); + throw error; + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/check-correctness-of-iteration.js": ( + /*!**************************************************************************!*\ + !*** ./node_modules/core-js/internals/check-correctness-of-iteration.js ***! + \**************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + var SAFE_CLOSING = false; + try { + var called = 0; + var iteratorWithReturn = { + next: function() { + return { done: !!called++ }; + }, + "return": function() { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function() { + return this; + }; + Array.from(iteratorWithReturn, function() { + throw 2; + }); + } catch (error) { + } + module3.exports = function(exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function() { + return { + next: function() { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { + } + return ITERATION_SUPPORT; + }; + } + ), + /***/ + "./node_modules/core-js/internals/classof-raw.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/classof-raw.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var toString = {}.toString; + module3.exports = function(it) { + return toString.call(it).slice(8, -1); + }; + } + ), + /***/ + "./node_modules/core-js/internals/classof.js": ( + /*!***************************************************!*\ + !*** ./node_modules/core-js/internals/classof.js ***! + \***************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var classofRaw = __webpack_require__( + /*! ../internals/classof-raw */ + "./node_modules/core-js/internals/classof-raw.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var CORRECT_ARGUMENTS = classofRaw(/* @__PURE__ */ function() { + return arguments; + }()) == "Arguments"; + var tryGet = function(it, key2) { + try { + return it[key2]; + } catch (error) { + } + }; + module3.exports = function(it) { + var O, tag2, result; + return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag2 = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag2 : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result; + }; + } + ), + /***/ + "./node_modules/core-js/internals/copy-constructor-properties.js": ( + /*!***********************************************************************!*\ + !*** ./node_modules/core-js/internals/copy-constructor-properties.js ***! + \***********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var ownKeys = __webpack_require__( + /*! ../internals/own-keys */ + "./node_modules/core-js/internals/own-keys.js" + ); + var getOwnPropertyDescriptorModule = __webpack_require__( + /*! ../internals/object-get-own-property-descriptor */ + "./node_modules/core-js/internals/object-get-own-property-descriptor.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + module3.exports = function(target, source) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key2 = keys[i]; + if (!has(target, key2)) defineProperty(target, key2, getOwnPropertyDescriptor(source, key2)); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/correct-prototype-getter.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/correct-prototype-getter.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + module3.exports = !fails(function() { + function F() { + } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + } + ), + /***/ + "./node_modules/core-js/internals/create-iterator-constructor.js": ( + /*!***********************************************************************!*\ + !*** ./node_modules/core-js/internals/create-iterator-constructor.js ***! + \***********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var IteratorPrototype = __webpack_require__( + /*! ../internals/iterators-core */ + "./node_modules/core-js/internals/iterators-core.js" + ).IteratorPrototype; + var create = __webpack_require__( + /*! ../internals/object-create */ + "./node_modules/core-js/internals/object-create.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + var setToStringTag = __webpack_require__( + /*! ../internals/set-to-string-tag */ + "./node_modules/core-js/internals/set-to-string-tag.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var returnThis = function() { + return this; + }; + module3.exports = function(IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + " Iterator"; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; + }; + } + ), + /***/ + "./node_modules/core-js/internals/create-property-descriptor.js": ( + /*!**********************************************************************!*\ + !*** ./node_modules/core-js/internals/create-property-descriptor.js ***! + \**********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value + }; + }; + } + ), + /***/ + "./node_modules/core-js/internals/create-property.js": ( + /*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/create-property.js ***! + \***********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var toPrimitive = __webpack_require__( + /*! ../internals/to-primitive */ + "./node_modules/core-js/internals/to-primitive.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + module3.exports = function(object, key2, value) { + var propertyKey = toPrimitive(key2); + if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else object[propertyKey] = value; + }; + } + ), + /***/ + "./node_modules/core-js/internals/define-iterator.js": ( + /*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/define-iterator.js ***! + \***********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var $ = __webpack_require__( + /*! ../internals/export */ + "./node_modules/core-js/internals/export.js" + ); + var createIteratorConstructor = __webpack_require__( + /*! ../internals/create-iterator-constructor */ + "./node_modules/core-js/internals/create-iterator-constructor.js" + ); + var getPrototypeOf = __webpack_require__( + /*! ../internals/object-get-prototype-of */ + "./node_modules/core-js/internals/object-get-prototype-of.js" + ); + var setPrototypeOf = __webpack_require__( + /*! ../internals/object-set-prototype-of */ + "./node_modules/core-js/internals/object-set-prototype-of.js" + ); + var setToStringTag = __webpack_require__( + /*! ../internals/set-to-string-tag */ + "./node_modules/core-js/internals/set-to-string-tag.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var redefine = __webpack_require__( + /*! ../internals/redefine */ + "./node_modules/core-js/internals/redefine.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var IS_PURE = __webpack_require__( + /*! ../internals/is-pure */ + "./node_modules/core-js/internals/is-pure.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var IteratorsCore = __webpack_require__( + /*! ../internals/iterators-core */ + "./node_modules/core-js/internals/iterators-core.js" + ); + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR = wellKnownSymbol("iterator"); + var KEYS = "keys"; + var VALUES = "values"; + var ENTRIES = "entries"; + var returnThis = function() { + return this; + }; + module3.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + var getIterationMethod = function(KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: + return function keys() { + return new IteratorConstructor(this, KIND); + }; + case VALUES: + return function values() { + return new IteratorConstructor(this, KIND); + }; + case ENTRIES: + return function entries() { + return new IteratorConstructor(this, KIND); + }; + } + return function() { + return new IteratorConstructor(this); + }; + }; + var TO_STRING_TAG = NAME + " Iterator"; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype["@@iterator"] || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == "Array" ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (typeof CurrentIteratorPrototype[ITERATOR] != "function") { + hide(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis; + } + } + if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { + return nativeIterator.call(this); + }; + } + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + hide(IterablePrototype, ITERATOR, defaultIterator); + } + Iterators[NAME] = defaultIterator; + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } + else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + return methods; + }; + } + ), + /***/ + "./node_modules/core-js/internals/descriptors.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/descriptors.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + module3.exports = !fails(function() { + return Object.defineProperty({}, "a", { get: function() { + return 7; + } }).a != 7; + }); + } + ), + /***/ + "./node_modules/core-js/internals/document-create-element.js": ( + /*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/document-create-element.js ***! + \*******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var isObject2 = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + var document2 = global2.document; + var exist = isObject2(document2) && isObject2(document2.createElement); + module3.exports = function(it) { + return exist ? document2.createElement(it) : {}; + }; + } + ), + /***/ + "./node_modules/core-js/internals/enum-bug-keys.js": ( + /*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/enum-bug-keys.js ***! + \*********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = [ + "constructor", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "toLocaleString", + "toString", + "valueOf" + ]; + } + ), + /***/ + "./node_modules/core-js/internals/export.js": ( + /*!**************************************************!*\ + !*** ./node_modules/core-js/internals/export.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var getOwnPropertyDescriptor = __webpack_require__( + /*! ../internals/object-get-own-property-descriptor */ + "./node_modules/core-js/internals/object-get-own-property-descriptor.js" + ).f; + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var redefine = __webpack_require__( + /*! ../internals/redefine */ + "./node_modules/core-js/internals/redefine.js" + ); + var setGlobal = __webpack_require__( + /*! ../internals/set-global */ + "./node_modules/core-js/internals/set-global.js" + ); + var copyConstructorProperties = __webpack_require__( + /*! ../internals/copy-constructor-properties */ + "./node_modules/core-js/internals/copy-constructor-properties.js" + ); + var isForced = __webpack_require__( + /*! ../internals/is-forced */ + "./node_modules/core-js/internals/is-forced.js" + ); + module3.exports = function(options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key2, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global2; + } else if (STATIC) { + target = global2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global2[TARGET] || {}).prototype; + } + if (target) for (key2 in source) { + sourceProperty = source[key2]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key2); + targetProperty = descriptor && descriptor.value; + } else targetProperty = target[key2]; + FORCED = isForced(GLOBAL ? key2 : TARGET + (STATIC ? "." : "#") + key2, options.forced); + if (!FORCED && targetProperty !== void 0) { + if (typeof sourceProperty === typeof targetProperty) continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + if (options.sham || targetProperty && targetProperty.sham) { + hide(sourceProperty, "sham", true); + } + redefine(target, key2, sourceProperty, options); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/fails.js": ( + /*!*************************************************!*\ + !*** ./node_modules/core-js/internals/fails.js ***! + \*************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/function-to-string.js": ( + /*!**************************************************************!*\ + !*** ./node_modules/core-js/internals/function-to-string.js ***! + \**************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + module3.exports = shared("native-function-to-string", Function.toString); + } + ), + /***/ + "./node_modules/core-js/internals/get-iterator-method.js": ( + /*!***************************************************************!*\ + !*** ./node_modules/core-js/internals/get-iterator-method.js ***! + \***************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var classof = __webpack_require__( + /*! ../internals/classof */ + "./node_modules/core-js/internals/classof.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + module3.exports = function(it) { + if (it != void 0) return it[ITERATOR] || it["@@iterator"] || Iterators[classof(it)]; + }; + } + ), + /***/ + "./node_modules/core-js/internals/global.js": ( + /*!**************************************************!*\ + !*** ./node_modules/core-js/internals/global.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + (function(global2) { + var O = "object"; + var check = function(it) { + return it && it.Math == Math && it; + }; + module3.exports = // eslint-disable-next-line no-undef + check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global2 == O && global2) || // eslint-disable-next-line no-new-func + Function("return this")(); + }).call(this, __webpack_require__( + /*! ./../../webpack/buildin/global.js */ + "./node_modules/webpack/buildin/global.js" + )); + } + ), + /***/ + "./node_modules/core-js/internals/has.js": ( + /*!***********************************************!*\ + !*** ./node_modules/core-js/internals/has.js ***! + \***********************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var hasOwnProperty = {}.hasOwnProperty; + module3.exports = function(it, key2) { + return hasOwnProperty.call(it, key2); + }; + } + ), + /***/ + "./node_modules/core-js/internals/hidden-keys.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/hidden-keys.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = {}; + } + ), + /***/ + "./node_modules/core-js/internals/hide.js": ( + /*!************************************************!*\ + !*** ./node_modules/core-js/internals/hide.js ***! + \************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + module3.exports = DESCRIPTORS ? function(object, key2, value) { + return definePropertyModule.f(object, key2, createPropertyDescriptor(1, value)); + } : function(object, key2, value) { + object[key2] = value; + return object; + }; + } + ), + /***/ + "./node_modules/core-js/internals/html.js": ( + /*!************************************************!*\ + !*** ./node_modules/core-js/internals/html.js ***! + \************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var document2 = global2.document; + module3.exports = document2 && document2.documentElement; + } + ), + /***/ + "./node_modules/core-js/internals/ie8-dom-define.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/ie8-dom-define.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + var createElement = __webpack_require__( + /*! ../internals/document-create-element */ + "./node_modules/core-js/internals/document-create-element.js" + ); + module3.exports = !DESCRIPTORS && !fails(function() { + return Object.defineProperty(createElement("div"), "a", { + get: function() { + return 7; + } + }).a != 7; + }); + } + ), + /***/ + "./node_modules/core-js/internals/indexed-object.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/indexed-object.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + var classof = __webpack_require__( + /*! ../internals/classof-raw */ + "./node_modules/core-js/internals/classof-raw.js" + ); + var split = "".split; + module3.exports = fails(function() { + return !Object("z").propertyIsEnumerable(0); + }) ? function(it) { + return classof(it) == "String" ? split.call(it, "") : Object(it); + } : Object; + } + ), + /***/ + "./node_modules/core-js/internals/internal-state.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/internal-state.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var NATIVE_WEAK_MAP = __webpack_require__( + /*! ../internals/native-weak-map */ + "./node_modules/core-js/internals/native-weak-map.js" + ); + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var isObject2 = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var objectHas = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var sharedKey = __webpack_require__( + /*! ../internals/shared-key */ + "./node_modules/core-js/internals/shared-key.js" + ); + var hiddenKeys = __webpack_require__( + /*! ../internals/hidden-keys */ + "./node_modules/core-js/internals/hidden-keys.js" + ); + var WeakMap2 = global2.WeakMap; + var set, get, has; + var enforce = function(it) { + return has(it) ? get(it) : set(it, {}); + }; + var getterFor = function(TYPE) { + return function(it) { + var state; + if (!isObject2(it) || (state = get(it)).type !== TYPE) { + throw TypeError("Incompatible receiver, " + TYPE + " required"); + } + return state; + }; + }; + if (NATIVE_WEAK_MAP) { + var store = new WeakMap2(); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function(it, metadata) { + wmset.call(store, it, metadata); + return metadata; + }; + get = function(it) { + return wmget.call(store, it) || {}; + }; + has = function(it) { + return wmhas.call(store, it); + }; + } else { + var STATE = sharedKey("state"); + hiddenKeys[STATE] = true; + set = function(it, metadata) { + hide(it, STATE, metadata); + return metadata; + }; + get = function(it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function(it) { + return objectHas(it, STATE); + }; + } + module3.exports = { + set, + get, + has, + enforce, + getterFor + }; + } + ), + /***/ + "./node_modules/core-js/internals/is-array-iterator-method.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/is-array-iterator-method.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var Iterators = __webpack_require__( + /*! ../internals/iterators */ + "./node_modules/core-js/internals/iterators.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + var ArrayPrototype = Array.prototype; + module3.exports = function(it) { + return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); + }; + } + ), + /***/ + "./node_modules/core-js/internals/is-forced.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-forced.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + var replacement = /#|\.prototype\./; + var isForced = function(feature, detection) { + var value = data[normalize2(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == "function" ? fails(detection) : !!detection; + }; + var normalize2 = isForced.normalize = function(string) { + return String(string).replace(replacement, ".").toLowerCase(); + }; + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = "N"; + var POLYFILL = isForced.POLYFILL = "P"; + module3.exports = isForced; + } + ), + /***/ + "./node_modules/core-js/internals/is-object.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/is-object.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(it) { + return typeof it === "object" ? it !== null : typeof it === "function"; + }; + } + ), + /***/ + "./node_modules/core-js/internals/is-pure.js": ( + /*!***************************************************!*\ + !*** ./node_modules/core-js/internals/is-pure.js ***! + \***************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = false; + } + ), + /***/ + "./node_modules/core-js/internals/iterators-core.js": ( + /*!**********************************************************!*\ + !*** ./node_modules/core-js/internals/iterators-core.js ***! + \**********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var getPrototypeOf = __webpack_require__( + /*! ../internals/object-get-prototype-of */ + "./node_modules/core-js/internals/object-get-prototype-of.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var IS_PURE = __webpack_require__( + /*! ../internals/is-pure */ + "./node_modules/core-js/internals/is-pure.js" + ); + var ITERATOR = wellKnownSymbol("iterator"); + var BUGGY_SAFARI_ITERATORS = false; + var returnThis = function() { + return this; + }; + var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + if ([].keys) { + arrayIterator = [].keys(); + if (!("next" in arrayIterator)) BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } + } + if (IteratorPrototype == void 0) IteratorPrototype = {}; + if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) hide(IteratorPrototype, ITERATOR, returnThis); + module3.exports = { + IteratorPrototype, + BUGGY_SAFARI_ITERATORS + }; + } + ), + /***/ + "./node_modules/core-js/internals/iterators.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/iterators.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = {}; + } + ), + /***/ + "./node_modules/core-js/internals/native-symbol.js": ( + /*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/native-symbol.js ***! + \*********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var fails = __webpack_require__( + /*! ../internals/fails */ + "./node_modules/core-js/internals/fails.js" + ); + module3.exports = !!Object.getOwnPropertySymbols && !fails(function() { + return !String(Symbol()); + }); + } + ), + /***/ + "./node_modules/core-js/internals/native-weak-map.js": ( + /*!***********************************************************!*\ + !*** ./node_modules/core-js/internals/native-weak-map.js ***! + \***********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var nativeFunctionToString = __webpack_require__( + /*! ../internals/function-to-string */ + "./node_modules/core-js/internals/function-to-string.js" + ); + var WeakMap2 = global2.WeakMap; + module3.exports = typeof WeakMap2 === "function" && /native code/.test(nativeFunctionToString.call(WeakMap2)); + } + ), + /***/ + "./node_modules/core-js/internals/object-create.js": ( + /*!*********************************************************!*\ + !*** ./node_modules/core-js/internals/object-create.js ***! + \*********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var defineProperties = __webpack_require__( + /*! ../internals/object-define-properties */ + "./node_modules/core-js/internals/object-define-properties.js" + ); + var enumBugKeys = __webpack_require__( + /*! ../internals/enum-bug-keys */ + "./node_modules/core-js/internals/enum-bug-keys.js" + ); + var hiddenKeys = __webpack_require__( + /*! ../internals/hidden-keys */ + "./node_modules/core-js/internals/hidden-keys.js" + ); + var html2 = __webpack_require__( + /*! ../internals/html */ + "./node_modules/core-js/internals/html.js" + ); + var documentCreateElement = __webpack_require__( + /*! ../internals/document-create-element */ + "./node_modules/core-js/internals/document-create-element.js" + ); + var sharedKey = __webpack_require__( + /*! ../internals/shared-key */ + "./node_modules/core-js/internals/shared-key.js" + ); + var IE_PROTO = sharedKey("IE_PROTO"); + var PROTOTYPE = "prototype"; + var Empty = function() { + }; + var createDict = function() { + var iframe = documentCreateElement("iframe"); + var length = enumBugKeys.length; + var lt = "<"; + var script = "script"; + var gt = ">"; + var js = "java" + script + ":"; + var iframeDocument; + iframe.style.display = "none"; + html2.appendChild(iframe); + iframe.src = String(js); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + script + gt + "document.F=Object" + lt + "/" + script + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]]; + return createDict(); + }; + module3.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else result = createDict(); + return Properties === void 0 ? result : defineProperties(result, Properties); + }; + hiddenKeys[IE_PROTO] = true; + } + ), + /***/ + "./node_modules/core-js/internals/object-define-properties.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-properties.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var definePropertyModule = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var objectKeys = __webpack_require__( + /*! ../internals/object-keys */ + "./node_modules/core-js/internals/object-keys.js" + ); + module3.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var i = 0; + var key2; + while (length > i) definePropertyModule.f(O, key2 = keys[i++], Properties[key2]); + return O; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-define-property.js": ( + /*!******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-define-property.js ***! + \******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var IE8_DOM_DEFINE = __webpack_require__( + /*! ../internals/ie8-dom-define */ + "./node_modules/core-js/internals/ie8-dom-define.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var toPrimitive = __webpack_require__( + /*! ../internals/to-primitive */ + "./node_modules/core-js/internals/to-primitive.js" + ); + var nativeDefineProperty = Object.defineProperty; + exports3.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return nativeDefineProperty(O, P, Attributes); + } catch (error) { + } + if ("get" in Attributes || "set" in Attributes) throw TypeError("Accessors not supported"); + if ("value" in Attributes) O[P] = Attributes.value; + return O; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-own-property-descriptor.js": ( + /*!******************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-descriptor.js ***! + \******************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var DESCRIPTORS = __webpack_require__( + /*! ../internals/descriptors */ + "./node_modules/core-js/internals/descriptors.js" + ); + var propertyIsEnumerableModule = __webpack_require__( + /*! ../internals/object-property-is-enumerable */ + "./node_modules/core-js/internals/object-property-is-enumerable.js" + ); + var createPropertyDescriptor = __webpack_require__( + /*! ../internals/create-property-descriptor */ + "./node_modules/core-js/internals/create-property-descriptor.js" + ); + var toIndexedObject = __webpack_require__( + /*! ../internals/to-indexed-object */ + "./node_modules/core-js/internals/to-indexed-object.js" + ); + var toPrimitive = __webpack_require__( + /*! ../internals/to-primitive */ + "./node_modules/core-js/internals/to-primitive.js" + ); + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var IE8_DOM_DEFINE = __webpack_require__( + /*! ../internals/ie8-dom-define */ + "./node_modules/core-js/internals/ie8-dom-define.js" + ); + var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + exports3.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { + } + if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-own-property-names.js": ( + /*!*************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-names.js ***! + \*************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var internalObjectKeys = __webpack_require__( + /*! ../internals/object-keys-internal */ + "./node_modules/core-js/internals/object-keys-internal.js" + ); + var enumBugKeys = __webpack_require__( + /*! ../internals/enum-bug-keys */ + "./node_modules/core-js/internals/enum-bug-keys.js" + ); + var hiddenKeys = enumBugKeys.concat("length", "prototype"); + exports3.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-own-property-symbols.js": ( + /*!***************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-own-property-symbols.js ***! + \***************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + exports3.f = Object.getOwnPropertySymbols; + } + ), + /***/ + "./node_modules/core-js/internals/object-get-prototype-of.js": ( + /*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-get-prototype-of.js ***! + \*******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var toObject = __webpack_require__( + /*! ../internals/to-object */ + "./node_modules/core-js/internals/to-object.js" + ); + var sharedKey = __webpack_require__( + /*! ../internals/shared-key */ + "./node_modules/core-js/internals/shared-key.js" + ); + var CORRECT_PROTOTYPE_GETTER = __webpack_require__( + /*! ../internals/correct-prototype-getter */ + "./node_modules/core-js/internals/correct-prototype-getter.js" + ); + var IE_PROTO = sharedKey("IE_PROTO"); + var ObjectPrototype = Object.prototype; + module3.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function(O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + if (typeof O.constructor == "function" && O instanceof O.constructor) { + return O.constructor.prototype; + } + return O instanceof Object ? ObjectPrototype : null; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-keys-internal.js": ( + /*!****************************************************************!*\ + !*** ./node_modules/core-js/internals/object-keys-internal.js ***! + \****************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var toIndexedObject = __webpack_require__( + /*! ../internals/to-indexed-object */ + "./node_modules/core-js/internals/to-indexed-object.js" + ); + var arrayIncludes = __webpack_require__( + /*! ../internals/array-includes */ + "./node_modules/core-js/internals/array-includes.js" + ); + var hiddenKeys = __webpack_require__( + /*! ../internals/hidden-keys */ + "./node_modules/core-js/internals/hidden-keys.js" + ); + var arrayIndexOf = arrayIncludes(false); + module3.exports = function(object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key2; + for (key2 in O) !has(hiddenKeys, key2) && has(O, key2) && result.push(key2); + while (names.length > i) if (has(O, key2 = names[i++])) { + ~arrayIndexOf(result, key2) || result.push(key2); + } + return result; + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-keys.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/internals/object-keys.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var internalObjectKeys = __webpack_require__( + /*! ../internals/object-keys-internal */ + "./node_modules/core-js/internals/object-keys-internal.js" + ); + var enumBugKeys = __webpack_require__( + /*! ../internals/enum-bug-keys */ + "./node_modules/core-js/internals/enum-bug-keys.js" + ); + module3.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); + }; + } + ), + /***/ + "./node_modules/core-js/internals/object-property-is-enumerable.js": ( + /*!*************************************************************************!*\ + !*** ./node_modules/core-js/internals/object-property-is-enumerable.js ***! + \*************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var nativePropertyIsEnumerable = {}.propertyIsEnumerable; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); + exports3.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; + } : nativePropertyIsEnumerable; + } + ), + /***/ + "./node_modules/core-js/internals/object-set-prototype-of.js": ( + /*!*******************************************************************!*\ + !*** ./node_modules/core-js/internals/object-set-prototype-of.js ***! + \*******************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var validateSetPrototypeOfArguments = __webpack_require__( + /*! ../internals/validate-set-prototype-of-arguments */ + "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js" + ); + module3.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() { + var correctSetter = false; + var test = {}; + var setter; + try { + setter = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set; + setter.call(test, []); + correctSetter = test instanceof Array; + } catch (error) { + } + return function setPrototypeOf(O, proto) { + validateSetPrototypeOfArguments(O, proto); + if (correctSetter) setter.call(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : void 0); + } + ), + /***/ + "./node_modules/core-js/internals/own-keys.js": ( + /*!****************************************************!*\ + !*** ./node_modules/core-js/internals/own-keys.js ***! + \****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var getOwnPropertyNamesModule = __webpack_require__( + /*! ../internals/object-get-own-property-names */ + "./node_modules/core-js/internals/object-get-own-property-names.js" + ); + var getOwnPropertySymbolsModule = __webpack_require__( + /*! ../internals/object-get-own-property-symbols */ + "./node_modules/core-js/internals/object-get-own-property-symbols.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + var Reflect2 = global2.Reflect; + module3.exports = Reflect2 && Reflect2.ownKeys || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; + }; + } + ), + /***/ + "./node_modules/core-js/internals/path.js": ( + /*!************************************************!*\ + !*** ./node_modules/core-js/internals/path.js ***! + \************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + module3.exports = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + } + ), + /***/ + "./node_modules/core-js/internals/redefine.js": ( + /*!****************************************************!*\ + !*** ./node_modules/core-js/internals/redefine.js ***! + \****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var setGlobal = __webpack_require__( + /*! ../internals/set-global */ + "./node_modules/core-js/internals/set-global.js" + ); + var nativeFunctionToString = __webpack_require__( + /*! ../internals/function-to-string */ + "./node_modules/core-js/internals/function-to-string.js" + ); + var InternalStateModule = __webpack_require__( + /*! ../internals/internal-state */ + "./node_modules/core-js/internals/internal-state.js" + ); + var getInternalState = InternalStateModule.get; + var enforceInternalState = InternalStateModule.enforce; + var TEMPLATE = String(nativeFunctionToString).split("toString"); + shared("inspectSource", function(it) { + return nativeFunctionToString.call(it); + }); + (module3.exports = function(O, key2, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + if (typeof value == "function") { + if (typeof key2 == "string" && !has(value, "name")) hide(value, "name", key2); + enforceInternalState(value).source = TEMPLATE.join(typeof key2 == "string" ? key2 : ""); + } + if (O === global2) { + if (simple) O[key2] = value; + else setGlobal(key2, value); + return; + } else if (!unsafe) { + delete O[key2]; + } else if (!noTargetGet && O[key2]) { + simple = true; + } + if (simple) O[key2] = value; + else hide(O, key2, value); + })(Function.prototype, "toString", function toString() { + return typeof this == "function" && getInternalState(this).source || nativeFunctionToString.call(this); + }); + } + ), + /***/ + "./node_modules/core-js/internals/require-object-coercible.js": ( + /*!********************************************************************!*\ + !*** ./node_modules/core-js/internals/require-object-coercible.js ***! + \********************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + module3.exports = function(it) { + if (it == void 0) throw TypeError("Can't call method on " + it); + return it; + }; + } + ), + /***/ + "./node_modules/core-js/internals/set-global.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/set-global.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var hide = __webpack_require__( + /*! ../internals/hide */ + "./node_modules/core-js/internals/hide.js" + ); + module3.exports = function(key2, value) { + try { + hide(global2, key2, value); + } catch (error) { + global2[key2] = value; + } + return value; + }; + } + ), + /***/ + "./node_modules/core-js/internals/set-to-string-tag.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/set-to-string-tag.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var defineProperty = __webpack_require__( + /*! ../internals/object-define-property */ + "./node_modules/core-js/internals/object-define-property.js" + ).f; + var has = __webpack_require__( + /*! ../internals/has */ + "./node_modules/core-js/internals/has.js" + ); + var wellKnownSymbol = __webpack_require__( + /*! ../internals/well-known-symbol */ + "./node_modules/core-js/internals/well-known-symbol.js" + ); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + module3.exports = function(it, TAG, STATIC) { + if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { + defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/shared-key.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/shared-key.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + var uid = __webpack_require__( + /*! ../internals/uid */ + "./node_modules/core-js/internals/uid.js" + ); + var keys = shared("keys"); + module3.exports = function(key2) { + return keys[key2] || (keys[key2] = uid(key2)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/shared.js": ( + /*!**************************************************!*\ + !*** ./node_modules/core-js/internals/shared.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var setGlobal = __webpack_require__( + /*! ../internals/set-global */ + "./node_modules/core-js/internals/set-global.js" + ); + var IS_PURE = __webpack_require__( + /*! ../internals/is-pure */ + "./node_modules/core-js/internals/is-pure.js" + ); + var SHARED = "__core-js_shared__"; + var store = global2[SHARED] || setGlobal(SHARED, {}); + (module3.exports = function(key2, value) { + return store[key2] || (store[key2] = value !== void 0 ? value : {}); + })("versions", []).push({ + version: "3.1.3", + mode: IS_PURE ? "pure" : "global", + copyright: "\xA9 2019 Denis Pushkarev (zloirock.ru)" + }); + } + ), + /***/ + "./node_modules/core-js/internals/string-at.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/string-at.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toInteger = __webpack_require__( + /*! ../internals/to-integer */ + "./node_modules/core-js/internals/to-integer.js" + ); + var requireObjectCoercible = __webpack_require__( + /*! ../internals/require-object-coercible */ + "./node_modules/core-js/internals/require-object-coercible.js" + ); + module3.exports = function(that, pos, CONVERT_TO_STRING) { + var S = String(requireObjectCoercible(that)); + var position = toInteger(pos); + var size = S.length; + var first2, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? "" : void 0; + first2 = S.charCodeAt(position); + return first2 < 55296 || first2 > 56319 || position + 1 === size || (second = S.charCodeAt(position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? S.charAt(position) : first2 : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first2 - 55296 << 10) + (second - 56320) + 65536; + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-absolute-index.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/to-absolute-index.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toInteger = __webpack_require__( + /*! ../internals/to-integer */ + "./node_modules/core-js/internals/to-integer.js" + ); + var max = Math.max; + var min = Math.min; + module3.exports = function(index2, length) { + var integer = toInteger(index2); + return integer < 0 ? max(integer + length, 0) : min(integer, length); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-indexed-object.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/to-indexed-object.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var IndexedObject = __webpack_require__( + /*! ../internals/indexed-object */ + "./node_modules/core-js/internals/indexed-object.js" + ); + var requireObjectCoercible = __webpack_require__( + /*! ../internals/require-object-coercible */ + "./node_modules/core-js/internals/require-object-coercible.js" + ); + module3.exports = function(it) { + return IndexedObject(requireObjectCoercible(it)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-integer.js": ( + /*!******************************************************!*\ + !*** ./node_modules/core-js/internals/to-integer.js ***! + \******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var ceil = Math.ceil; + var floor = Math.floor; + module3.exports = function(argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-length.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-length.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var toInteger = __webpack_require__( + /*! ../internals/to-integer */ + "./node_modules/core-js/internals/to-integer.js" + ); + var min = Math.min; + module3.exports = function(argument) { + return argument > 0 ? min(toInteger(argument), 9007199254740991) : 0; + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-object.js": ( + /*!*****************************************************!*\ + !*** ./node_modules/core-js/internals/to-object.js ***! + \*****************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var requireObjectCoercible = __webpack_require__( + /*! ../internals/require-object-coercible */ + "./node_modules/core-js/internals/require-object-coercible.js" + ); + module3.exports = function(argument) { + return Object(requireObjectCoercible(argument)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/to-primitive.js": ( + /*!********************************************************!*\ + !*** ./node_modules/core-js/internals/to-primitive.js ***! + \********************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var isObject2 = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + module3.exports = function(it, S) { + if (!isObject2(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == "function" && !isObject2(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == "function" && !isObject2(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == "function" && !isObject2(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); + }; + } + ), + /***/ + "./node_modules/core-js/internals/uid.js": ( + /*!***********************************************!*\ + !*** ./node_modules/core-js/internals/uid.js ***! + \***********************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var id = 0; + var postfix = Math.random(); + module3.exports = function(key2) { + return "Symbol(".concat(key2 === void 0 ? "" : key2, ")_", (++id + postfix).toString(36)); + }; + } + ), + /***/ + "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js": ( + /*!*******************************************************************************!*\ + !*** ./node_modules/core-js/internals/validate-set-prototype-of-arguments.js ***! + \*******************************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var isObject2 = __webpack_require__( + /*! ../internals/is-object */ + "./node_modules/core-js/internals/is-object.js" + ); + var anObject = __webpack_require__( + /*! ../internals/an-object */ + "./node_modules/core-js/internals/an-object.js" + ); + module3.exports = function(O, proto) { + anObject(O); + if (!isObject2(proto) && proto !== null) { + throw TypeError("Can't set " + String(proto) + " as a prototype"); + } + }; + } + ), + /***/ + "./node_modules/core-js/internals/well-known-symbol.js": ( + /*!*************************************************************!*\ + !*** ./node_modules/core-js/internals/well-known-symbol.js ***! + \*************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var global2 = __webpack_require__( + /*! ../internals/global */ + "./node_modules/core-js/internals/global.js" + ); + var shared = __webpack_require__( + /*! ../internals/shared */ + "./node_modules/core-js/internals/shared.js" + ); + var uid = __webpack_require__( + /*! ../internals/uid */ + "./node_modules/core-js/internals/uid.js" + ); + var NATIVE_SYMBOL = __webpack_require__( + /*! ../internals/native-symbol */ + "./node_modules/core-js/internals/native-symbol.js" + ); + var Symbol2 = global2.Symbol; + var store = shared("wks"); + module3.exports = function(name) { + return store[name] || (store[name] = NATIVE_SYMBOL && Symbol2[name] || (NATIVE_SYMBOL ? Symbol2 : uid)("Symbol." + name)); + }; + } + ), + /***/ + "./node_modules/core-js/modules/es.array.from.js": ( + /*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es.array.from.js ***! + \*******************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + var $ = __webpack_require__( + /*! ../internals/export */ + "./node_modules/core-js/internals/export.js" + ); + var from = __webpack_require__( + /*! ../internals/array-from */ + "./node_modules/core-js/internals/array-from.js" + ); + var checkCorrectnessOfIteration = __webpack_require__( + /*! ../internals/check-correctness-of-iteration */ + "./node_modules/core-js/internals/check-correctness-of-iteration.js" + ); + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function(iterable) { + Array.from(iterable); + }); + $({ target: "Array", stat: true, forced: INCORRECT_ITERATION }, { + from + }); + } + ), + /***/ + "./node_modules/core-js/modules/es.string.iterator.js": ( + /*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es.string.iterator.js ***! + \************************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var codePointAt = __webpack_require__( + /*! ../internals/string-at */ + "./node_modules/core-js/internals/string-at.js" + ); + var InternalStateModule = __webpack_require__( + /*! ../internals/internal-state */ + "./node_modules/core-js/internals/internal-state.js" + ); + var defineIterator = __webpack_require__( + /*! ../internals/define-iterator */ + "./node_modules/core-js/internals/define-iterator.js" + ); + var STRING_ITERATOR = "String Iterator"; + var setInternalState = InternalStateModule.set; + var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + defineIterator(String, "String", function(iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: String(iterated), + index: 0 + }); + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index2 = state.index; + var point; + if (index2 >= string.length) return { value: void 0, done: true }; + point = codePointAt(string, index2, true); + state.index += point.length; + return { value: point, done: false }; + }); + } + ), + /***/ + "./node_modules/webpack/buildin/global.js": ( + /*!***********************************!*\ + !*** (webpack)/buildin/global.js ***! + \***********************************/ + /*! no static exports found */ + /***/ + function(module3, exports3) { + var g; + g = /* @__PURE__ */ function() { + return this; + }(); + try { + g = g || Function("return this")() || (1, eval)("this"); + } catch (e) { + if (typeof window === "object") g = window; + } + module3.exports = g; + } + ), + /***/ + "./src/default-attrs.json": ( + /*!********************************!*\ + !*** ./src/default-attrs.json ***! + \********************************/ + /*! exports provided: xmlns, width, height, viewBox, fill, stroke, stroke-width, stroke-linecap, stroke-linejoin, default */ + /***/ + function(module3) { + module3.exports = { "xmlns": "http://www.w3.org/2000/svg", "width": 24, "height": 24, "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round" }; + } + ), + /***/ + "./src/icon.js": ( + /*!*********************!*\ + !*** ./src/icon.js ***! + \*********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _createClass = /* @__PURE__ */ function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + var _dedupe = __webpack_require__( + /*! classnames/dedupe */ + "./node_modules/classnames/dedupe.js" + ); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _defaultAttrs = __webpack_require__( + /*! ./default-attrs.json */ + "./src/default-attrs.json" + ); + var _defaultAttrs2 = _interopRequireDefault(_defaultAttrs); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function _classCallCheck(instance10, Constructor) { + if (!(instance10 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Icon = function() { + function Icon2(name, contents) { + var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; + _classCallCheck(this, Icon2); + this.name = name; + this.contents = contents; + this.tags = tags; + this.attrs = _extends({}, _defaultAttrs2.default, { class: "feather feather-" + name }); + } + _createClass(Icon2, [{ + key: "toSvg", + value: function toSvg() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var combinedAttrs = _extends({}, this.attrs, attrs, { class: (0, _dedupe2.default)(this.attrs.class, attrs.class) }); + return "" + this.contents + ""; + } + /** + * Return string representation of an `Icon`. + * + * Added for backward compatibility. If old code expects `feather.icons.` + * to be a string, `toString()` will get implicitly called. + * + * @returns {string} + */ + }, { + key: "toString", + value: function toString() { + return this.contents; + } + }]); + return Icon2; + }(); + function attrsToString(attrs) { + return Object.keys(attrs).map(function(key2) { + return key2 + '="' + attrs[key2] + '"'; + }).join(" "); + } + exports3.default = Icon; + } + ), + /***/ + "./src/icons.js": ( + /*!**********************!*\ + !*** ./src/icons.js ***! + \**********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _icon = __webpack_require__( + /*! ./icon */ + "./src/icon.js" + ); + var _icon2 = _interopRequireDefault(_icon); + var _icons = __webpack_require__( + /*! ../dist/icons.json */ + "./dist/icons.json" + ); + var _icons2 = _interopRequireDefault(_icons); + var _tags = __webpack_require__( + /*! ./tags.json */ + "./src/tags.json" + ); + var _tags2 = _interopRequireDefault(_tags); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + exports3.default = Object.keys(_icons2.default).map(function(key2) { + return new _icon2.default(key2, _icons2.default[key2], _tags2.default[key2]); + }).reduce(function(object, icon) { + object[icon.name] = icon; + return object; + }, {}); + } + ), + /***/ + "./src/index.js": ( + /*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + var _icons = __webpack_require__( + /*! ./icons */ + "./src/icons.js" + ); + var _icons2 = _interopRequireDefault(_icons); + var _toSvg = __webpack_require__( + /*! ./to-svg */ + "./src/to-svg.js" + ); + var _toSvg2 = _interopRequireDefault(_toSvg); + var _replace = __webpack_require__( + /*! ./replace */ + "./src/replace.js" + ); + var _replace2 = _interopRequireDefault(_replace); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + module3.exports = { icons: _icons2.default, toSvg: _toSvg2.default, replace: _replace2.default }; + } + ), + /***/ + "./src/replace.js": ( + /*!************************!*\ + !*** ./src/replace.js ***! + \************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _dedupe = __webpack_require__( + /*! classnames/dedupe */ + "./node_modules/classnames/dedupe.js" + ); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _icons = __webpack_require__( + /*! ./icons */ + "./src/icons.js" + ); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function replace() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (typeof document === "undefined") { + throw new Error("`feather.replace()` only works in a browser environment."); + } + var elementsToReplace = document.querySelectorAll("[data-feather]"); + Array.from(elementsToReplace).forEach(function(element2) { + return replaceElement(element2, attrs); + }); + } + function replaceElement(element2) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + var elementAttrs = getAttrs(element2); + var name = elementAttrs["data-feather"]; + delete elementAttrs["data-feather"]; + if (_icons2.default[name] === void 0) { + console.warn("feather: '" + name + "' is not a valid icon"); + return; + } + var svgString = _icons2.default[name].toSvg(_extends({}, attrs, elementAttrs, { class: (0, _dedupe2.default)(attrs.class, elementAttrs.class) })); + var svgDocument = new DOMParser().parseFromString(svgString, "image/svg+xml"); + var svgElement = svgDocument.querySelector("svg"); + element2.parentNode.replaceChild(svgElement, element2); + } + function getAttrs(element2) { + return Array.from(element2.attributes).reduce(function(attrs, attr2) { + attrs[attr2.name] = attr2.value; + return attrs; + }, {}); + } + exports3.default = replace; + } + ), + /***/ + "./src/tags.json": ( + /*!***********************!*\ + !*** ./src/tags.json ***! + \***********************/ + /*! exports provided: activity, airplay, alert-circle, alert-octagon, alert-triangle, align-center, align-justify, align-left, align-right, anchor, archive, at-sign, award, aperture, bar-chart, bar-chart-2, battery, battery-charging, bell, bell-off, bluetooth, book-open, book, bookmark, box, briefcase, calendar, camera, cast, chevron-down, chevron-up, circle, clipboard, clock, cloud-drizzle, cloud-lightning, cloud-rain, cloud-snow, cloud, codepen, codesandbox, code, coffee, columns, command, compass, copy, corner-down-left, corner-down-right, corner-left-down, corner-left-up, corner-right-down, corner-right-up, corner-up-left, corner-up-right, cpu, credit-card, crop, crosshair, database, delete, disc, dollar-sign, droplet, edit, edit-2, edit-3, eye, eye-off, external-link, facebook, fast-forward, figma, file-minus, file-plus, file-text, film, filter, flag, folder-minus, folder-plus, folder, framer, frown, gift, git-branch, git-commit, git-merge, git-pull-request, github, gitlab, globe, hard-drive, hash, headphones, heart, help-circle, hexagon, home, image, inbox, instagram, key, layers, layout, life-buoy, link, link-2, linkedin, list, lock, log-in, log-out, mail, map-pin, map, maximize, maximize-2, meh, menu, message-circle, message-square, mic-off, mic, minimize, minimize-2, minus, monitor, moon, more-horizontal, more-vertical, mouse-pointer, move, music, navigation, navigation-2, octagon, package, paperclip, pause, pause-circle, pen-tool, percent, phone-call, phone-forwarded, phone-incoming, phone-missed, phone-off, phone-outgoing, phone, play, pie-chart, play-circle, plus, plus-circle, plus-square, pocket, power, printer, radio, refresh-cw, refresh-ccw, repeat, rewind, rotate-ccw, rotate-cw, rss, save, scissors, search, send, settings, share-2, shield, shield-off, shopping-bag, shopping-cart, shuffle, skip-back, skip-forward, slack, slash, sliders, smartphone, smile, speaker, star, stop-circle, sun, sunrise, sunset, tablet, tag, target, terminal, thermometer, thumbs-down, thumbs-up, toggle-left, toggle-right, tool, trash, trash-2, triangle, truck, tv, twitch, twitter, type, umbrella, unlock, user-check, user-minus, user-plus, user-x, user, users, video-off, video, voicemail, volume, volume-1, volume-2, volume-x, watch, wifi-off, wifi, wind, x-circle, x-octagon, x-square, x, youtube, zap-off, zap, zoom-in, zoom-out, default */ + /***/ + function(module3) { + module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "chevron-down": ["expand"], "chevron-up": ["collapse"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-buoy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] }; + } + ), + /***/ + "./src/to-svg.js": ( + /*!***********************!*\ + !*** ./src/to-svg.js ***! + \***********************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + "use strict"; + Object.defineProperty(exports3, "__esModule", { + value: true + }); + var _icons = __webpack_require__( + /*! ./icons */ + "./src/icons.js" + ); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function toSvg(name) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."); + if (!name) { + throw new Error("The required `key` (icon name) parameter is missing."); + } + if (!_icons2.default[name]) { + throw new Error("No icon matching '" + name + "'. See the complete list of icons at https://feathericons.com"); + } + return _icons2.default[name].toSvg(attrs); + } + exports3.default = toSvg; + } + ), + /***/ + 0: ( + /*!**************************************************!*\ + !*** multi core-js/es/array/from ./src/index.js ***! + \**************************************************/ + /*! no static exports found */ + /***/ + function(module3, exports3, __webpack_require__) { + __webpack_require__( + /*! core-js/es/array/from */ + "./node_modules/core-js/es/array/from.js" + ); + module3.exports = __webpack_require__( + /*! /home/runner/work/feather/feather/src/index.js */ + "./src/index.js" + ); + } + ) + /******/ + }) + ); + }); + } +}); + +// src/main.ts +var main_exports = {}; +__export(main_exports, { + default: () => ObsidianGit +}); +module.exports = __toCommonJS(main_exports); +init_polyfill_buffer(); + +// node_modules/.pnpm/isomorphic-git@1.27.1/node_modules/isomorphic-git/index.js +init_polyfill_buffer(); +var import_async_lock = __toESM(require_async_lock(), 1); +var import_sha1 = __toESM(require_sha1(), 1); +var import_crc_32 = __toESM(require_crc32(), 1); +var import_pako = __toESM(require_pako(), 1); +var import_pify = __toESM(require_pify(), 1); +var import_ignore = __toESM(require_ignore(), 1); +var import_clean_git_ref = __toESM(require_lib2(), 1); +var import_diff3 = __toESM(require_diff3(), 1); +var BaseError = class _BaseError extends Error { + constructor(message) { + super(message); + this.caller = ""; + } + toJSON() { + return { + code: this.code, + data: this.data, + caller: this.caller, + message: this.message, + stack: this.stack + }; + } + fromJSON(json) { + const e = new _BaseError(json.message); + e.code = json.code; + e.data = json.data; + e.caller = json.caller; + e.stack = json.stack; + return e; + } + get isIsomorphicGitError() { + return true; + } +}; +var UnmergedPathsError = class _UnmergedPathsError extends BaseError { + /** + * @param {Array} filepaths + */ + constructor(filepaths) { + super( + `Modifying the index is not possible because you have unmerged files: ${filepaths.toString}. Fix them up in the work tree, and then use 'git add/rm as appropriate to mark resolution and make a commit.` + ); + this.code = this.name = _UnmergedPathsError.code; + this.data = { filepaths }; + } +}; +UnmergedPathsError.code = "UnmergedPathsError"; +var InternalError = class _InternalError extends BaseError { + /** + * @param {string} message + */ + constructor(message) { + super( + `An internal error caused this command to fail. Please file a bug report at https://github.com/isomorphic-git/isomorphic-git/issues with this error message: ${message}` + ); + this.code = this.name = _InternalError.code; + this.data = { message }; + } +}; +InternalError.code = "InternalError"; +var UnsafeFilepathError = class _UnsafeFilepathError extends BaseError { + /** + * @param {string} filepath + */ + constructor(filepath) { + super(`The filepath "${filepath}" contains unsafe character sequences`); + this.code = this.name = _UnsafeFilepathError.code; + this.data = { filepath }; + } +}; +UnsafeFilepathError.code = "UnsafeFilepathError"; +var BufferCursor = class { + constructor(buffer2) { + this.buffer = buffer2; + this._start = 0; + } + eof() { + return this._start >= this.buffer.length; + } + tell() { + return this._start; + } + seek(n) { + this._start = n; + } + slice(n) { + const r = this.buffer.slice(this._start, this._start + n); + this._start += n; + return r; + } + toString(enc, length) { + const r = this.buffer.toString(enc, this._start, this._start + length); + this._start += length; + return r; + } + write(value, length, enc) { + const r = this.buffer.write(value, this._start, length, enc); + this._start += length; + return r; + } + copy(source, start, end) { + const r = source.copy(this.buffer, this._start, start, end); + this._start += r; + return r; + } + readUInt8() { + const r = this.buffer.readUInt8(this._start); + this._start += 1; + return r; + } + writeUInt8(value) { + const r = this.buffer.writeUInt8(value, this._start); + this._start += 1; + return r; + } + readUInt16BE() { + const r = this.buffer.readUInt16BE(this._start); + this._start += 2; + return r; + } + writeUInt16BE(value) { + const r = this.buffer.writeUInt16BE(value, this._start); + this._start += 2; + return r; + } + readUInt32BE() { + const r = this.buffer.readUInt32BE(this._start); + this._start += 4; + return r; + } + writeUInt32BE(value) { + const r = this.buffer.writeUInt32BE(value, this._start); + this._start += 4; + return r; + } +}; +function compareStrings(a, b) { + return -(a < b) || +(a > b); +} +function comparePath(a, b) { + return compareStrings(a.path, b.path); +} +function normalizeMode(mode) { + let type = mode > 0 ? mode >> 12 : 0; + if (type !== 4 && type !== 8 && type !== 10 && type !== 14) { + type = 8; + } + let permissions = mode & 511; + if (permissions & 73) { + permissions = 493; + } else { + permissions = 420; + } + if (type !== 8) permissions = 0; + return (type << 12) + permissions; +} +var MAX_UINT32 = 2 ** 32; +function SecondsNanoseconds(givenSeconds, givenNanoseconds, milliseconds, date) { + if (givenSeconds !== void 0 && givenNanoseconds !== void 0) { + return [givenSeconds, givenNanoseconds]; + } + if (milliseconds === void 0) { + milliseconds = date.valueOf(); + } + const seconds = Math.floor(milliseconds / 1e3); + const nanoseconds = (milliseconds - seconds * 1e3) * 1e6; + return [seconds, nanoseconds]; +} +function normalizeStats(e) { + const [ctimeSeconds, ctimeNanoseconds] = SecondsNanoseconds( + e.ctimeSeconds, + e.ctimeNanoseconds, + e.ctimeMs, + e.ctime + ); + const [mtimeSeconds, mtimeNanoseconds] = SecondsNanoseconds( + e.mtimeSeconds, + e.mtimeNanoseconds, + e.mtimeMs, + e.mtime + ); + return { + ctimeSeconds: ctimeSeconds % MAX_UINT32, + ctimeNanoseconds: ctimeNanoseconds % MAX_UINT32, + mtimeSeconds: mtimeSeconds % MAX_UINT32, + mtimeNanoseconds: mtimeNanoseconds % MAX_UINT32, + dev: e.dev % MAX_UINT32, + ino: e.ino % MAX_UINT32, + mode: normalizeMode(e.mode % MAX_UINT32), + uid: e.uid % MAX_UINT32, + gid: e.gid % MAX_UINT32, + // size of -1 happens over a BrowserFS HTTP Backend that doesn't serve Content-Length headers + // (like the Karma webserver) because BrowserFS HTTP Backend uses HTTP HEAD requests to do fs.stat + size: e.size > -1 ? e.size % MAX_UINT32 : 0 + }; +} +function toHex(buffer2) { + let hex = ""; + for (const byte of new Uint8Array(buffer2)) { + if (byte < 16) hex += "0"; + hex += byte.toString(16); + } + return hex; +} +var supportsSubtleSHA1 = null; +async function shasum(buffer2) { + if (supportsSubtleSHA1 === null) { + supportsSubtleSHA1 = await testSubtleSHA1(); + } + return supportsSubtleSHA1 ? subtleSHA1(buffer2) : shasumSync(buffer2); +} +function shasumSync(buffer2) { + return new import_sha1.default().update(buffer2).digest("hex"); +} +async function subtleSHA1(buffer2) { + const hash2 = await crypto.subtle.digest("SHA-1", buffer2); + return toHex(hash2); +} +async function testSubtleSHA1() { + try { + const hash2 = await subtleSHA1(new Uint8Array([])); + if (hash2 === "da39a3ee5e6b4b0d3255bfef95601890afd80709") return true; + } catch (_) { + } + return false; +} +function parseCacheEntryFlags(bits) { + return { + assumeValid: Boolean(bits & 32768), + extended: Boolean(bits & 16384), + stage: (bits & 12288) >> 12, + nameLength: bits & 4095 + }; +} +function renderCacheEntryFlags(entry) { + const flags = entry.flags; + flags.extended = false; + flags.nameLength = Math.min(Buffer.from(entry.path).length, 4095); + return (flags.assumeValid ? 32768 : 0) + (flags.extended ? 16384 : 0) + ((flags.stage & 3) << 12) + (flags.nameLength & 4095); +} +var GitIndex = class _GitIndex { + /*:: + _entries: Map + _dirty: boolean // Used to determine if index needs to be saved to filesystem + */ + constructor(entries, unmergedPaths) { + this._dirty = false; + this._unmergedPaths = unmergedPaths || /* @__PURE__ */ new Set(); + this._entries = entries || /* @__PURE__ */ new Map(); + } + _addEntry(entry) { + if (entry.flags.stage === 0) { + entry.stages = [entry]; + this._entries.set(entry.path, entry); + this._unmergedPaths.delete(entry.path); + } else { + let existingEntry = this._entries.get(entry.path); + if (!existingEntry) { + this._entries.set(entry.path, entry); + existingEntry = entry; + } + existingEntry.stages[entry.flags.stage] = entry; + this._unmergedPaths.add(entry.path); + } + } + static async from(buffer2) { + if (Buffer.isBuffer(buffer2)) { + return _GitIndex.fromBuffer(buffer2); + } else if (buffer2 === null) { + return new _GitIndex(null); + } else { + throw new InternalError("invalid type passed to GitIndex.from"); + } + } + static async fromBuffer(buffer2) { + if (buffer2.length === 0) { + throw new InternalError("Index file is empty (.git/index)"); + } + const index2 = new _GitIndex(); + const reader = new BufferCursor(buffer2); + const magic = reader.toString("utf8", 4); + if (magic !== "DIRC") { + throw new InternalError(`Invalid dircache magic file number: ${magic}`); + } + const shaComputed = await shasum(buffer2.slice(0, -20)); + const shaClaimed = buffer2.slice(-20).toString("hex"); + if (shaClaimed !== shaComputed) { + throw new InternalError( + `Invalid checksum in GitIndex buffer: expected ${shaClaimed} but saw ${shaComputed}` + ); + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError(`Unsupported dircache version: ${version2}`); + } + const numEntries = reader.readUInt32BE(); + let i = 0; + while (!reader.eof() && i < numEntries) { + const entry = {}; + entry.ctimeSeconds = reader.readUInt32BE(); + entry.ctimeNanoseconds = reader.readUInt32BE(); + entry.mtimeSeconds = reader.readUInt32BE(); + entry.mtimeNanoseconds = reader.readUInt32BE(); + entry.dev = reader.readUInt32BE(); + entry.ino = reader.readUInt32BE(); + entry.mode = reader.readUInt32BE(); + entry.uid = reader.readUInt32BE(); + entry.gid = reader.readUInt32BE(); + entry.size = reader.readUInt32BE(); + entry.oid = reader.slice(20).toString("hex"); + const flags = reader.readUInt16BE(); + entry.flags = parseCacheEntryFlags(flags); + const pathlength = buffer2.indexOf(0, reader.tell() + 1) - reader.tell(); + if (pathlength < 1) { + throw new InternalError(`Got a path length of: ${pathlength}`); + } + entry.path = reader.toString("utf8", pathlength); + if (entry.path.includes("..\\") || entry.path.includes("../")) { + throw new UnsafeFilepathError(entry.path); + } + let padding = 8 - (reader.tell() - 12) % 8; + if (padding === 0) padding = 8; + while (padding--) { + const tmp = reader.readUInt8(); + if (tmp !== 0) { + throw new InternalError( + `Expected 1-8 null characters but got '${tmp}' after ${entry.path}` + ); + } else if (reader.eof()) { + throw new InternalError("Unexpected end of file"); + } + } + entry.stages = []; + index2._addEntry(entry); + i++; + } + return index2; + } + get unmergedPaths() { + return [...this._unmergedPaths]; + } + get entries() { + return [...this._entries.values()].sort(comparePath); + } + get entriesMap() { + return this._entries; + } + get entriesFlat() { + return [...this.entries].flatMap((entry) => { + return entry.stages.length > 1 ? entry.stages.filter((x) => x) : entry; + }); + } + *[Symbol.iterator]() { + for (const entry of this.entries) { + yield entry; + } + } + insert({ filepath, stats, oid, stage = 0 }) { + if (!stats) { + stats = { + ctimeSeconds: 0, + ctimeNanoseconds: 0, + mtimeSeconds: 0, + mtimeNanoseconds: 0, + dev: 0, + ino: 0, + mode: 0, + uid: 0, + gid: 0, + size: 0 + }; + } + stats = normalizeStats(stats); + const bfilepath = Buffer.from(filepath); + const entry = { + ctimeSeconds: stats.ctimeSeconds, + ctimeNanoseconds: stats.ctimeNanoseconds, + mtimeSeconds: stats.mtimeSeconds, + mtimeNanoseconds: stats.mtimeNanoseconds, + dev: stats.dev, + ino: stats.ino, + // We provide a fallback value for `mode` here because not all fs + // implementations assign it, but we use it in GitTree. + // '100644' is for a "regular non-executable file" + mode: stats.mode || 33188, + uid: stats.uid, + gid: stats.gid, + size: stats.size, + path: filepath, + oid, + flags: { + assumeValid: false, + extended: false, + stage, + nameLength: bfilepath.length < 4095 ? bfilepath.length : 4095 + }, + stages: [] + }; + this._addEntry(entry); + this._dirty = true; + } + delete({ filepath }) { + if (this._entries.has(filepath)) { + this._entries.delete(filepath); + } else { + for (const key2 of this._entries.keys()) { + if (key2.startsWith(filepath + "/")) { + this._entries.delete(key2); + } + } + } + if (this._unmergedPaths.has(filepath)) { + this._unmergedPaths.delete(filepath); + } + this._dirty = true; + } + clear() { + this._entries.clear(); + this._dirty = true; + } + has({ filepath }) { + return this._entries.has(filepath); + } + render() { + return this.entries.map((entry) => `${entry.mode.toString(8)} ${entry.oid} ${entry.path}`).join("\n"); + } + static async _entryToBuffer(entry) { + const bpath = Buffer.from(entry.path); + const length = Math.ceil((62 + bpath.length + 1) / 8) * 8; + const written = Buffer.alloc(length); + const writer = new BufferCursor(written); + const stat = normalizeStats(entry); + writer.writeUInt32BE(stat.ctimeSeconds); + writer.writeUInt32BE(stat.ctimeNanoseconds); + writer.writeUInt32BE(stat.mtimeSeconds); + writer.writeUInt32BE(stat.mtimeNanoseconds); + writer.writeUInt32BE(stat.dev); + writer.writeUInt32BE(stat.ino); + writer.writeUInt32BE(stat.mode); + writer.writeUInt32BE(stat.uid); + writer.writeUInt32BE(stat.gid); + writer.writeUInt32BE(stat.size); + writer.write(entry.oid, 20, "hex"); + writer.writeUInt16BE(renderCacheEntryFlags(entry)); + writer.write(entry.path, bpath.length, "utf8"); + return written; + } + async toObject() { + const header = Buffer.alloc(12); + const writer = new BufferCursor(header); + writer.write("DIRC", 4, "utf8"); + writer.writeUInt32BE(2); + writer.writeUInt32BE(this.entriesFlat.length); + let entryBuffers = []; + for (const entry of this.entries) { + entryBuffers.push(_GitIndex._entryToBuffer(entry)); + if (entry.stages.length > 1) { + for (const stage of entry.stages) { + if (stage && stage !== entry) { + entryBuffers.push(_GitIndex._entryToBuffer(stage)); + } + } + } + } + entryBuffers = await Promise.all(entryBuffers); + const body = Buffer.concat(entryBuffers); + const main = Buffer.concat([header, body]); + const sum = await shasum(main); + return Buffer.concat([main, Buffer.from(sum, "hex")]); + } +}; +function compareStats(entry, stats, filemode = true, trustino = true) { + const e = normalizeStats(entry); + const s = normalizeStats(stats); + const staleness = filemode && e.mode !== s.mode || e.mtimeSeconds !== s.mtimeSeconds || e.ctimeSeconds !== s.ctimeSeconds || e.uid !== s.uid || e.gid !== s.gid || trustino && e.ino !== s.ino || e.size !== s.size; + return staleness; +} +var lock = null; +var IndexCache = Symbol("IndexCache"); +function createCache() { + return { + map: /* @__PURE__ */ new Map(), + stats: /* @__PURE__ */ new Map() + }; +} +async function updateCachedIndexFile(fs, filepath, cache) { + const stat = await fs.lstat(filepath); + const rawIndexFile = await fs.read(filepath); + const index2 = await GitIndex.from(rawIndexFile); + cache.map.set(filepath, index2); + cache.stats.set(filepath, stat); +} +async function isIndexStale(fs, filepath, cache) { + const savedStats = cache.stats.get(filepath); + if (savedStats === void 0) return true; + const currStats = await fs.lstat(filepath); + if (savedStats === null) return false; + if (currStats === null) return false; + return compareStats(savedStats, currStats); +} +var GitIndexManager = class { + /** + * + * @param {object} opts + * @param {import('../models/FileSystem.js').FileSystem} opts.fs + * @param {string} opts.gitdir + * @param {object} opts.cache + * @param {bool} opts.allowUnmerged + * @param {function(GitIndex): any} closure + */ + static async acquire({ fs, gitdir, cache, allowUnmerged = true }, closure) { + if (!cache[IndexCache]) cache[IndexCache] = createCache(); + const filepath = `${gitdir}/index`; + if (lock === null) lock = new import_async_lock.default({ maxPending: Infinity }); + let result; + let unmergedPaths = []; + await lock.acquire(filepath, async () => { + if (await isIndexStale(fs, filepath, cache[IndexCache])) { + await updateCachedIndexFile(fs, filepath, cache[IndexCache]); + } + const index2 = cache[IndexCache].map.get(filepath); + unmergedPaths = index2.unmergedPaths; + if (unmergedPaths.length && !allowUnmerged) + throw new UnmergedPathsError(unmergedPaths); + result = await closure(index2); + if (index2._dirty) { + const buffer2 = await index2.toObject(); + await fs.write(filepath, buffer2); + cache[IndexCache].stats.set(filepath, await fs.lstat(filepath)); + index2._dirty = false; + } + }); + return result; + } +}; +function basename(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 > -1) { + path2 = path2.slice(last2 + 1); + } + return path2; +} +function dirname(path2) { + const last2 = Math.max(path2.lastIndexOf("/"), path2.lastIndexOf("\\")); + if (last2 === -1) return "."; + if (last2 === 0) return "/"; + return path2.slice(0, last2); +} +function flatFileListToDirectoryStructure(files) { + const inodes = /* @__PURE__ */ new Map(); + const mkdir = function(name) { + if (!inodes.has(name)) { + const dir = { + type: "tree", + fullpath: name, + basename: basename(name), + metadata: {}, + children: [] + }; + inodes.set(name, dir); + dir.parent = mkdir(dirname(name)); + if (dir.parent && dir.parent !== dir) dir.parent.children.push(dir); + } + return inodes.get(name); + }; + const mkfile = function(name, metadata) { + if (!inodes.has(name)) { + const file = { + type: "blob", + fullpath: name, + basename: basename(name), + metadata, + // This recursively generates any missing parent folders. + parent: mkdir(dirname(name)), + children: [] + }; + if (file.parent) file.parent.children.push(file); + inodes.set(name, file); + } + return inodes.get(name); + }; + mkdir("."); + for (const file of files) { + mkfile(file.path, file); + } + return inodes; +} +function mode2type(mode) { + switch (mode) { + case 16384: + return "tree"; + case 33188: + return "blob"; + case 33261: + return "blob"; + case 40960: + return "blob"; + case 57344: + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode.toString(8)}`); +} +var GitWalkerIndex = class { + constructor({ fs, gitdir, cache }) { + this.treePromise = GitIndexManager.acquire( + { fs, gitdir, cache }, + async function(index2) { + return flatFileListToDirectoryStructure(index2.entries); + } + ); + const walker = this; + this.ConstructEntry = class StageEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const tree = await this.treePromise; + const inode = tree.get(filepath); + if (!inode) return null; + if (inode.type === "blob") return null; + if (inode.type !== "tree") { + throw new Error(`ENOTDIR: not a directory, scandir '${filepath}'`); + } + const names = inode.children.map((inode2) => inode2.fullpath); + names.sort(compareStrings); + return names; + } + async type(entry) { + if (entry._type === false) { + await entry.stat(); + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + await entry.stat(); + } + return entry._mode; + } + async stat(entry) { + if (entry._stat === false) { + const tree = await this.treePromise; + const inode = tree.get(entry._fullpath); + if (!inode) { + throw new Error( + `ENOENT: no such file or directory, lstat '${entry._fullpath}'` + ); + } + const stats = inode.type === "tree" ? {} : normalizeStats(inode.metadata); + entry._type = inode.type === "tree" ? "tree" : mode2type(stats.mode); + entry._mode = stats.mode; + if (inode.type === "tree") { + entry._stat = void 0; + } else { + entry._stat = stats; + } + } + return entry._stat; + } + async content(_entry) { + } + async oid(entry) { + if (entry._oid === false) { + const tree = await this.treePromise; + const inode = tree.get(entry._fullpath); + entry._oid = inode.metadata.oid; + } + return entry._oid; + } +}; +var GitWalkSymbol = Symbol("GitWalkSymbol"); +function STAGE() { + const o = /* @__PURE__ */ Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerIndex({ fs, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +var NotFoundError = class _NotFoundError extends BaseError { + /** + * @param {string} what + */ + constructor(what) { + super(`Could not find ${what}.`); + this.code = this.name = _NotFoundError.code; + this.data = { what }; + } +}; +NotFoundError.code = "NotFoundError"; +var ObjectTypeError = class _ObjectTypeError extends BaseError { + /** + * @param {string} oid + * @param {'blob'|'commit'|'tag'|'tree'} actual + * @param {'blob'|'commit'|'tag'|'tree'} expected + * @param {string} [filepath] + */ + constructor(oid, actual, expected, filepath) { + super( + `Object ${oid} ${filepath ? `at ${filepath}` : ""}was anticipated to be a ${expected} but it is a ${actual}.` + ); + this.code = this.name = _ObjectTypeError.code; + this.data = { oid, actual, expected, filepath }; + } +}; +ObjectTypeError.code = "ObjectTypeError"; +var InvalidOidError = class _InvalidOidError extends BaseError { + /** + * @param {string} value + */ + constructor(value) { + super(`Expected a 40-char hex object id but saw "${value}".`); + this.code = this.name = _InvalidOidError.code; + this.data = { value }; + } +}; +InvalidOidError.code = "InvalidOidError"; +var NoRefspecError = class _NoRefspecError extends BaseError { + /** + * @param {string} remote + */ + constructor(remote) { + super(`Could not find a fetch refspec for remote "${remote}". Make sure the config file has an entry like the following: +[remote "${remote}"] + fetch = +refs/heads/*:refs/remotes/origin/* +`); + this.code = this.name = _NoRefspecError.code; + this.data = { remote }; + } +}; +NoRefspecError.code = "NoRefspecError"; +var GitPackedRefs = class _GitPackedRefs { + constructor(text2) { + this.refs = /* @__PURE__ */ new Map(); + this.parsedConfig = []; + if (text2) { + let key2 = null; + this.parsedConfig = text2.trim().split("\n").map((line) => { + if (/^\s*#/.test(line)) { + return { line, comment: true }; + } + const i = line.indexOf(" "); + if (line.startsWith("^")) { + const value = line.slice(1); + this.refs.set(key2 + "^{}", value); + return { line, ref: key2, peeled: value }; + } else { + const value = line.slice(0, i); + key2 = line.slice(i + 1); + this.refs.set(key2, value); + return { line, ref: key2, oid: value }; + } + }); + } + return this; + } + static from(text2) { + return new _GitPackedRefs(text2); + } + delete(ref) { + this.parsedConfig = this.parsedConfig.filter((entry) => entry.ref !== ref); + this.refs.delete(ref); + } + toString() { + return this.parsedConfig.map(({ line }) => line).join("\n") + "\n"; + } +}; +var GitRefSpec = class _GitRefSpec { + constructor({ remotePath, localPath, force, matchPrefix }) { + Object.assign(this, { + remotePath, + localPath, + force, + matchPrefix + }); + } + static from(refspec) { + const [ + forceMatch, + remotePath, + remoteGlobMatch, + localPath, + localGlobMatch + ] = refspec.match(/^(\+?)(.*?)(\*?):(.*?)(\*?)$/).slice(1); + const force = forceMatch === "+"; + const remoteIsGlob = remoteGlobMatch === "*"; + const localIsGlob = localGlobMatch === "*"; + if (remoteIsGlob !== localIsGlob) { + throw new InternalError("Invalid refspec"); + } + return new _GitRefSpec({ + remotePath, + localPath, + force, + matchPrefix: remoteIsGlob + }); + } + translate(remoteBranch) { + if (this.matchPrefix) { + if (remoteBranch.startsWith(this.remotePath)) { + return this.localPath + remoteBranch.replace(this.remotePath, ""); + } + } else { + if (remoteBranch === this.remotePath) return this.localPath; + } + return null; + } + reverseTranslate(localBranch) { + if (this.matchPrefix) { + if (localBranch.startsWith(this.localPath)) { + return this.remotePath + localBranch.replace(this.localPath, ""); + } + } else { + if (localBranch === this.localPath) return this.remotePath; + } + return null; + } +}; +var GitRefSpecSet = class _GitRefSpecSet { + constructor(rules = []) { + this.rules = rules; + } + static from(refspecs) { + const rules = []; + for (const refspec of refspecs) { + rules.push(GitRefSpec.from(refspec)); + } + return new _GitRefSpecSet(rules); + } + add(refspec) { + const rule = GitRefSpec.from(refspec); + this.rules.push(rule); + } + translate(remoteRefs) { + const result = []; + for (const rule of this.rules) { + for (const remoteRef of remoteRefs) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result.push([remoteRef, localRef]); + } + } + } + return result; + } + translateOne(remoteRef) { + let result = null; + for (const rule of this.rules) { + const localRef = rule.translate(remoteRef); + if (localRef) { + result = localRef; + } + } + return result; + } + localNamespaces() { + return this.rules.filter((rule) => rule.matchPrefix).map((rule) => rule.localPath.replace(/\/$/, "")); + } +}; +function compareRefNames(a, b) { + const _a2 = a.replace(/\^\{\}$/, ""); + const _b = b.replace(/\^\{\}$/, ""); + const tmp = -(_a2 < _b) || +(_a2 > _b); + if (tmp === 0) { + return a.endsWith("^{}") ? 1 : -1; + } + return tmp; +} +var memo = /* @__PURE__ */ new Map(); +function normalizePath(path2) { + let normalizedPath = memo.get(path2); + if (!normalizedPath) { + normalizedPath = normalizePathInternal(path2); + memo.set(path2, normalizedPath); + } + return normalizedPath; +} +function normalizePathInternal(path2) { + path2 = path2.split("/./").join("/").replace(/\/{2,}/g, "/"); + if (path2 === "/.") return "/"; + if (path2 === "./") return "."; + if (path2.startsWith("./")) path2 = path2.slice(2); + if (path2.endsWith("/.")) path2 = path2.slice(0, -2); + if (path2.length > 1 && path2.endsWith("/")) path2 = path2.slice(0, -1); + if (path2 === "") return "."; + return path2; +} +function join(...parts) { + return normalizePath(parts.map(normalizePath).join("/")); +} +var num = (val) => { + val = val.toLowerCase(); + let n = parseInt(val); + if (val.endsWith("k")) n *= 1024; + if (val.endsWith("m")) n *= 1024 * 1024; + if (val.endsWith("g")) n *= 1024 * 1024 * 1024; + return n; +}; +var bool = (val) => { + val = val.trim().toLowerCase(); + if (val === "true" || val === "yes" || val === "on") return true; + if (val === "false" || val === "no" || val === "off") return false; + throw Error( + `Expected 'true', 'false', 'yes', 'no', 'on', or 'off', but got ${val}` + ); +}; +var schema = { + core: { + filemode: bool, + bare: bool, + logallrefupdates: bool, + symlinks: bool, + ignorecase: bool, + bigFileThreshold: num + } +}; +var SECTION_LINE_REGEX = /^\[([A-Za-z0-9-.]+)(?: "(.*)")?\]$/; +var SECTION_REGEX = /^[A-Za-z0-9-.]+$/; +var VARIABLE_LINE_REGEX = /^([A-Za-z][A-Za-z-]*)(?: *= *(.*))?$/; +var VARIABLE_NAME_REGEX = /^[A-Za-z][A-Za-z-]*$/; +var VARIABLE_VALUE_COMMENT_REGEX = /^(.*?)( *[#;].*)$/; +var extractSectionLine = (line) => { + const matches = SECTION_LINE_REGEX.exec(line); + if (matches != null) { + const [section, subsection] = matches.slice(1); + return [section, subsection]; + } + return null; +}; +var extractVariableLine = (line) => { + const matches = VARIABLE_LINE_REGEX.exec(line); + if (matches != null) { + const [name, rawValue = "true"] = matches.slice(1); + const valueWithoutComments = removeComments(rawValue); + const valueWithoutQuotes = removeQuotes(valueWithoutComments); + return [name, valueWithoutQuotes]; + } + return null; +}; +var removeComments = (rawValue) => { + const commentMatches = VARIABLE_VALUE_COMMENT_REGEX.exec(rawValue); + if (commentMatches == null) { + return rawValue; + } + const [valueWithoutComment, comment] = commentMatches.slice(1); + if (hasOddNumberOfQuotes(valueWithoutComment) && hasOddNumberOfQuotes(comment)) { + return `${valueWithoutComment}${comment}`; + } + return valueWithoutComment; +}; +var hasOddNumberOfQuotes = (text2) => { + const numberOfQuotes = (text2.match(/(?:^|[^\\])"/g) || []).length; + return numberOfQuotes % 2 !== 0; +}; +var removeQuotes = (text2) => { + return text2.split("").reduce((newText, c, idx, text3) => { + const isQuote = c === '"' && text3[idx - 1] !== "\\"; + const isEscapeForQuote = c === "\\" && text3[idx + 1] === '"'; + if (isQuote || isEscapeForQuote) { + return newText; + } + return newText + c; + }, ""); +}; +var lower = (text2) => { + return text2 != null ? text2.toLowerCase() : null; +}; +var getPath = (section, subsection, name) => { + return [lower(section), subsection, lower(name)].filter((a) => a != null).join("."); +}; +var normalizePath$1 = (path2) => { + const pathSegments = path2.split("."); + const section = pathSegments.shift(); + const name = pathSegments.pop(); + const subsection = pathSegments.length ? pathSegments.join(".") : void 0; + return { + section, + subsection, + name, + path: getPath(section, subsection, name), + sectionPath: getPath(section, subsection, null) + }; +}; +var findLastIndex = (array, callback) => { + return array.reduce((lastIndex, item, index2) => { + return callback(item) ? index2 : lastIndex; + }, -1); +}; +var GitConfig = class _GitConfig { + constructor(text2) { + let section = null; + let subsection = null; + this.parsedConfig = text2 ? text2.split("\n").map((line) => { + let name = null; + let value = null; + const trimmedLine = line.trim(); + const extractedSection = extractSectionLine(trimmedLine); + const isSection = extractedSection != null; + if (isSection) { + ; + [section, subsection] = extractedSection; + } else { + const extractedVariable = extractVariableLine(trimmedLine); + const isVariable = extractedVariable != null; + if (isVariable) { + ; + [name, value] = extractedVariable; + } + } + const path2 = getPath(section, subsection, name); + return { line, isSection, section, subsection, name, value, path: path2 }; + }) : []; + } + static from(text2) { + return new _GitConfig(text2); + } + async get(path2, getall = false) { + const normalizedPath = normalizePath$1(path2).path; + const allValues = this.parsedConfig.filter((config) => config.path === normalizedPath).map(({ section, name, value }) => { + const fn = schema[section] && schema[section][name]; + return fn ? fn(value) : value; + }); + return getall ? allValues : allValues.pop(); + } + async getall(path2) { + return this.get(path2, true); + } + async getSubsections(section) { + return this.parsedConfig.filter((config) => config.section === section && config.isSection).map((config) => config.subsection); + } + async deleteSection(section, subsection) { + this.parsedConfig = this.parsedConfig.filter( + (config) => !(config.section === section && config.subsection === subsection) + ); + } + async append(path2, value) { + return this.set(path2, value, true); + } + async set(path2, value, append3 = false) { + const { + section, + subsection, + name, + path: normalizedPath, + sectionPath + } = normalizePath$1(path2); + const configIndex = findLastIndex( + this.parsedConfig, + (config) => config.path === normalizedPath + ); + if (value == null) { + if (configIndex !== -1) { + this.parsedConfig.splice(configIndex, 1); + } + } else { + if (configIndex !== -1) { + const config = this.parsedConfig[configIndex]; + const modifiedConfig = Object.assign({}, config, { + name, + value, + modified: true + }); + if (append3) { + this.parsedConfig.splice(configIndex + 1, 0, modifiedConfig); + } else { + this.parsedConfig[configIndex] = modifiedConfig; + } + } else { + const sectionIndex = this.parsedConfig.findIndex( + (config) => config.path === sectionPath + ); + const newConfig = { + section, + subsection, + name, + value, + modified: true, + path: normalizedPath + }; + if (SECTION_REGEX.test(section) && VARIABLE_NAME_REGEX.test(name)) { + if (sectionIndex >= 0) { + this.parsedConfig.splice(sectionIndex + 1, 0, newConfig); + } else { + const newSection = { + section, + subsection, + modified: true, + path: sectionPath + }; + this.parsedConfig.push(newSection, newConfig); + } + } + } + } + } + toString() { + return this.parsedConfig.map(({ line, section, subsection, name, value, modified: modified2 = false }) => { + if (!modified2) { + return line; + } + if (name != null && value != null) { + if (typeof value === "string" && /[#;]/.test(value)) { + return ` ${name} = "${value}"`; + } + return ` ${name} = ${value}`; + } + if (subsection != null) { + return `[${section} "${subsection}"]`; + } + return `[${section}]`; + }).join("\n"); + } +}; +var GitConfigManager = class { + static async get({ fs, gitdir }) { + const text2 = await fs.read(`${gitdir}/config`, { encoding: "utf8" }); + return GitConfig.from(text2); + } + static async save({ fs, gitdir, config }) { + await fs.write(`${gitdir}/config`, config.toString(), { + encoding: "utf8" + }); + } +}; +var refpaths = (ref) => [ + `${ref}`, + `refs/${ref}`, + `refs/tags/${ref}`, + `refs/heads/${ref}`, + `refs/remotes/${ref}`, + `refs/remotes/${ref}/HEAD` +]; +var GIT_FILES = ["config", "description", "index", "shallow", "commondir"]; +var lock$1; +async function acquireLock(ref, callback) { + if (lock$1 === void 0) lock$1 = new import_async_lock.default(); + return lock$1.acquire(ref, callback); +} +var GitRefManager = class _GitRefManager { + static async updateRemoteRefs({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + refspecs = void 0, + prune = false, + pruneTags = false + }) { + for (const value of refs.values()) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + } + const config = await GitConfigManager.get({ fs, gitdir }); + if (!refspecs) { + refspecs = await config.getall(`remote.${remote}.fetch`); + if (refspecs.length === 0) { + throw new NoRefspecError(remote); + } + refspecs.unshift(`+HEAD:refs/remotes/${remote}/HEAD`); + } + const refspec = GitRefSpecSet.from(refspecs); + const actualRefsToWrite = /* @__PURE__ */ new Map(); + if (pruneTags) { + const tags2 = await _GitRefManager.listRefs({ + fs, + gitdir, + filepath: "refs/tags" + }); + await _GitRefManager.deleteRefs({ + fs, + gitdir, + refs: tags2.map((tag2) => `refs/tags/${tag2}`) + }); + } + if (tags) { + for (const serverRef of refs.keys()) { + if (serverRef.startsWith("refs/tags") && !serverRef.endsWith("^{}")) { + if (!await _GitRefManager.exists({ fs, gitdir, ref: serverRef })) { + const oid = refs.get(serverRef); + actualRefsToWrite.set(serverRef, oid); + } + } + } + } + const refTranslations = refspec.translate([...refs.keys()]); + for (const [serverRef, translatedRef] of refTranslations) { + const value = refs.get(serverRef); + actualRefsToWrite.set(translatedRef, value); + } + const symrefTranslations = refspec.translate([...symrefs.keys()]); + for (const [serverRef, translatedRef] of symrefTranslations) { + const value = symrefs.get(serverRef); + const symtarget = refspec.translateOne(value); + if (symtarget) { + actualRefsToWrite.set(translatedRef, `ref: ${symtarget}`); + } + } + const pruned = []; + if (prune) { + for (const filepath of refspec.localNamespaces()) { + const refs2 = (await _GitRefManager.listRefs({ + fs, + gitdir, + filepath + })).map((file) => `${filepath}/${file}`); + for (const ref of refs2) { + if (!actualRefsToWrite.has(ref)) { + pruned.push(ref); + } + } + } + if (pruned.length > 0) { + await _GitRefManager.deleteRefs({ fs, gitdir, refs: pruned }); + } + } + for (const [key2, value] of actualRefsToWrite) { + await acquireLock( + key2, + async () => fs.write(join(gitdir, key2), `${value.trim()} +`, "utf8") + ); + } + return { pruned }; + } + // TODO: make this less crude? + static async writeRef({ fs, gitdir, ref, value }) { + if (!value.match(/[0-9a-f]{40}/)) { + throw new InvalidOidError(value); + } + await acquireLock( + ref, + async () => fs.write(join(gitdir, ref), `${value.trim()} +`, "utf8") + ); + } + static async writeSymbolicRef({ fs, gitdir, ref, value }) { + await acquireLock( + ref, + async () => fs.write(join(gitdir, ref), `ref: ${value.trim()} +`, "utf8") + ); + } + static async deleteRef({ fs, gitdir, ref }) { + return _GitRefManager.deleteRefs({ fs, gitdir, refs: [ref] }); + } + static async deleteRefs({ fs, gitdir, refs }) { + await Promise.all(refs.map((ref) => fs.rm(join(gitdir, ref)))); + let text2 = await acquireLock( + "packed-refs", + async () => fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }) + ); + const packed = GitPackedRefs.from(text2); + const beforeSize = packed.refs.size; + for (const ref of refs) { + if (packed.refs.has(ref)) { + packed.delete(ref); + } + } + if (packed.refs.size < beforeSize) { + text2 = packed.toString(); + await acquireLock( + "packed-refs", + async () => fs.write(`${gitdir}/packed-refs`, text2, { encoding: "utf8" }) + ); + } + } + /** + * @param {object} args + * @param {import('../models/FileSystem.js').FileSystem} args.fs + * @param {string} args.gitdir + * @param {string} args.ref + * @param {number} [args.depth] + * @returns {Promise} + */ + static async resolve({ fs, gitdir, ref, depth = void 0 }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return ref; + } + } + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return _GitRefManager.resolve({ fs, gitdir, ref, depth }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = await _GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref).filter((p) => !GIT_FILES.includes(p)); + for (const ref2 of allpaths) { + const sha = await acquireLock( + ref2, + async () => await fs.read(`${gitdir}/${ref2}`, { encoding: "utf8" }) || packedMap.get(ref2) + ); + if (sha) { + return _GitRefManager.resolve({ fs, gitdir, ref: sha.trim(), depth }); + } + } + throw new NotFoundError(ref); + } + static async exists({ fs, gitdir, ref }) { + try { + await _GitRefManager.expand({ fs, gitdir, ref }); + return true; + } catch (err) { + return false; + } + } + static async expand({ fs, gitdir, ref }) { + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return ref; + } + const packedMap = await _GitRefManager.packedRefs({ fs, gitdir }); + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + const refExists = await acquireLock( + ref2, + async () => fs.exists(`${gitdir}/${ref2}`) + ); + if (refExists) return ref2; + if (packedMap.has(ref2)) return ref2; + } + throw new NotFoundError(ref); + } + static async expandAgainstMap({ ref, map }) { + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + if (await map.has(ref2)) return ref2; + } + throw new NotFoundError(ref); + } + static resolveAgainstMap({ ref, fullref = ref, depth = void 0, map }) { + if (depth !== void 0) { + depth--; + if (depth === -1) { + return { fullref, oid: ref }; + } + } + if (ref.startsWith("ref: ")) { + ref = ref.slice("ref: ".length); + return _GitRefManager.resolveAgainstMap({ ref, fullref, depth, map }); + } + if (ref.length === 40 && /[0-9a-f]{40}/.test(ref)) { + return { fullref, oid: ref }; + } + const allpaths = refpaths(ref); + for (const ref2 of allpaths) { + const sha = map.get(ref2); + if (sha) { + return _GitRefManager.resolveAgainstMap({ + ref: sha.trim(), + fullref: ref2, + depth, + map + }); + } + } + throw new NotFoundError(ref); + } + static async packedRefs({ fs, gitdir }) { + const text2 = await acquireLock( + "packed-refs", + async () => fs.read(`${gitdir}/packed-refs`, { encoding: "utf8" }) + ); + const packed = GitPackedRefs.from(text2); + return packed.refs; + } + // List all the refs that match the `filepath` prefix + static async listRefs({ fs, gitdir, filepath }) { + const packedMap = _GitRefManager.packedRefs({ fs, gitdir }); + let files = null; + try { + files = await fs.readdirDeep(`${gitdir}/${filepath}`); + files = files.map((x) => x.replace(`${gitdir}/${filepath}/`, "")); + } catch (err) { + files = []; + } + for (let key2 of (await packedMap).keys()) { + if (key2.startsWith(filepath)) { + key2 = key2.replace(filepath + "/", ""); + if (!files.includes(key2)) { + files.push(key2); + } + } + } + files.sort(compareRefNames); + return files; + } + static async listBranches({ fs, gitdir, remote }) { + if (remote) { + return _GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/remotes/${remote}` + }); + } else { + return _GitRefManager.listRefs({ fs, gitdir, filepath: `refs/heads` }); + } + } + static async listTags({ fs, gitdir }) { + const tags = await _GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs/tags` + }); + return tags.filter((x) => !x.endsWith("^{}")); + } +}; +function compareTreeEntryPath(a, b) { + return compareStrings(appendSlashIfDir(a), appendSlashIfDir(b)); +} +function appendSlashIfDir(entry) { + return entry.mode === "040000" ? entry.path + "/" : entry.path; +} +function mode2type$1(mode) { + switch (mode) { + case "040000": + return "tree"; + case "100644": + return "blob"; + case "100755": + return "blob"; + case "120000": + return "blob"; + case "160000": + return "commit"; + } + throw new InternalError(`Unexpected GitTree entry mode: ${mode}`); +} +function parseBuffer(buffer2) { + const _entries = []; + let cursor = 0; + while (cursor < buffer2.length) { + const space2 = buffer2.indexOf(32, cursor); + if (space2 === -1) { + throw new InternalError( + `GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next space character.` + ); + } + const nullchar = buffer2.indexOf(0, cursor); + if (nullchar === -1) { + throw new InternalError( + `GitTree: Error parsing buffer at byte location ${cursor}: Could not find the next null character.` + ); + } + let mode = buffer2.slice(cursor, space2).toString("utf8"); + if (mode === "40000") mode = "040000"; + const type = mode2type$1(mode); + const path2 = buffer2.slice(space2 + 1, nullchar).toString("utf8"); + if (path2.includes("\\") || path2.includes("/")) { + throw new UnsafeFilepathError(path2); + } + const oid = buffer2.slice(nullchar + 1, nullchar + 21).toString("hex"); + cursor = nullchar + 21; + _entries.push({ mode, path: path2, oid, type }); + } + return _entries; +} +function limitModeToAllowed(mode) { + if (typeof mode === "number") { + mode = mode.toString(8); + } + if (mode.match(/^0?4.*/)) return "040000"; + if (mode.match(/^1006.*/)) return "100644"; + if (mode.match(/^1007.*/)) return "100755"; + if (mode.match(/^120.*/)) return "120000"; + if (mode.match(/^160.*/)) return "160000"; + throw new InternalError(`Could not understand file mode: ${mode}`); +} +function nudgeIntoShape(entry) { + if (!entry.oid && entry.sha) { + entry.oid = entry.sha; + } + entry.mode = limitModeToAllowed(entry.mode); + if (!entry.type) { + entry.type = mode2type$1(entry.mode); + } + return entry; +} +var GitTree = class _GitTree { + constructor(entries) { + if (Buffer.isBuffer(entries)) { + this._entries = parseBuffer(entries); + } else if (Array.isArray(entries)) { + this._entries = entries.map(nudgeIntoShape); + } else { + throw new InternalError("invalid type passed to GitTree constructor"); + } + this._entries.sort(comparePath); + } + static from(tree) { + return new _GitTree(tree); + } + render() { + return this._entries.map((entry) => `${entry.mode} ${entry.type} ${entry.oid} ${entry.path}`).join("\n"); + } + toObject() { + const entries = [...this._entries]; + entries.sort(compareTreeEntryPath); + return Buffer.concat( + entries.map((entry) => { + const mode = Buffer.from(entry.mode.replace(/^0/, "")); + const space2 = Buffer.from(" "); + const path2 = Buffer.from(entry.path, "utf8"); + const nullchar = Buffer.from([0]); + const oid = Buffer.from(entry.oid, "hex"); + return Buffer.concat([mode, space2, path2, nullchar, oid]); + }) + ); + } + /** + * @returns {TreeEntry[]} + */ + entries() { + return this._entries; + } + *[Symbol.iterator]() { + for (const entry of this._entries) { + yield entry; + } + } +}; +var GitObject = class { + static wrap({ type, object }) { + return Buffer.concat([ + Buffer.from(`${type} ${object.byteLength.toString()}\0`), + Buffer.from(object) + ]); + } + static unwrap(buffer2) { + const s = buffer2.indexOf(32); + const i = buffer2.indexOf(0); + const type = buffer2.slice(0, s).toString("utf8"); + const length = buffer2.slice(s + 1, i).toString("utf8"); + const actualLength = buffer2.length - (i + 1); + if (parseInt(length) !== actualLength) { + throw new InternalError( + `Length mismatch: expected ${length} bytes but got ${actualLength} instead.` + ); + } + return { + type, + object: Buffer.from(buffer2.slice(i + 1)) + }; + } +}; +async function readObjectLoose({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const file = await fs.read(`${gitdir}/${source}`); + if (!file) { + return null; + } + return { object: file, format: "deflated", source }; +} +function applyDelta(delta, source) { + const reader = new BufferCursor(delta); + const sourceSize = readVarIntLE(reader); + if (sourceSize !== source.byteLength) { + throw new InternalError( + `applyDelta expected source buffer to be ${sourceSize} bytes but the provided buffer was ${source.length} bytes` + ); + } + const targetSize = readVarIntLE(reader); + let target; + const firstOp = readOp(reader, source); + if (firstOp.byteLength === targetSize) { + target = firstOp; + } else { + target = Buffer.alloc(targetSize); + const writer = new BufferCursor(target); + writer.copy(firstOp); + while (!reader.eof()) { + writer.copy(readOp(reader, source)); + } + const tell = writer.tell(); + if (targetSize !== tell) { + throw new InternalError( + `applyDelta expected target buffer to be ${targetSize} bytes but the resulting buffer was ${tell} bytes` + ); + } + } + return target; +} +function readVarIntLE(reader) { + let result = 0; + let shift = 0; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +function readCompactLE(reader, flags, size) { + let result = 0; + let shift = 0; + while (size--) { + if (flags & 1) { + result |= reader.readUInt8() << shift; + } + flags >>= 1; + shift += 8; + } + return result; +} +function readOp(reader, source) { + const byte = reader.readUInt8(); + const COPY = 128; + const OFFS = 15; + const SIZE = 112; + if (byte & COPY) { + const offset = readCompactLE(reader, byte & OFFS, 4); + let size = readCompactLE(reader, (byte & SIZE) >> 4, 3); + if (size === 0) size = 65536; + return source.slice(offset, offset + size); + } else { + return reader.slice(byte); + } +} +function fromValue(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ done: queue.length === 0, value: queue.pop() }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue(iterable); +} +var StreamReader = class { + constructor(stream) { + if (typeof Buffer === "undefined") { + throw new Error("Missing Buffer dependency"); + } + this.stream = getIterator(stream); + this.buffer = null; + this.cursor = 0; + this.undoCursor = 0; + this.started = false; + this._ended = false; + this._discardedBytes = 0; + } + eof() { + return this._ended && this.cursor === this.buffer.length; + } + tell() { + return this._discardedBytes + this.cursor; + } + async byte() { + if (this.eof()) return; + if (!this.started) await this._init(); + if (this.cursor === this.buffer.length) { + await this._loadnext(); + if (this._ended) return; + } + this._moveCursor(1); + return this.buffer[this.undoCursor]; + } + async chunk() { + if (this.eof()) return; + if (!this.started) await this._init(); + if (this.cursor === this.buffer.length) { + await this._loadnext(); + if (this._ended) return; + } + this._moveCursor(this.buffer.length); + return this.buffer.slice(this.undoCursor, this.cursor); + } + async read(n) { + if (this.eof()) return; + if (!this.started) await this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + await this._accumulate(n); + } + this._moveCursor(n); + return this.buffer.slice(this.undoCursor, this.cursor); + } + async skip(n) { + if (this.eof()) return; + if (!this.started) await this._init(); + if (this.cursor + n > this.buffer.length) { + this._trim(); + await this._accumulate(n); + } + this._moveCursor(n); + } + async undo() { + this.cursor = this.undoCursor; + } + async _next() { + this.started = true; + let { done, value } = await this.stream.next(); + if (done) { + this._ended = true; + if (!value) return Buffer.alloc(0); + } + if (value) { + value = Buffer.from(value); + } + return value; + } + _trim() { + this.buffer = this.buffer.slice(this.undoCursor); + this.cursor -= this.undoCursor; + this._discardedBytes += this.undoCursor; + this.undoCursor = 0; + } + _moveCursor(n) { + this.undoCursor = this.cursor; + this.cursor += n; + if (this.cursor > this.buffer.length) { + this.cursor = this.buffer.length; + } + } + async _accumulate(n) { + if (this._ended) return; + const buffers = [this.buffer]; + while (this.cursor + n > lengthBuffers(buffers)) { + const nextbuffer = await this._next(); + if (this._ended) break; + buffers.push(nextbuffer); + } + this.buffer = Buffer.concat(buffers); + } + async _loadnext() { + this._discardedBytes += this.buffer.length; + this.undoCursor = 0; + this.cursor = 0; + this.buffer = await this._next(); + } + async _init() { + this.buffer = await this._next(); + } +}; +function lengthBuffers(buffers) { + return buffers.reduce((acc, buffer2) => acc + buffer2.length, 0); +} +async function listpack(stream, onData) { + const reader = new StreamReader(stream); + let PACK = await reader.read(4); + PACK = PACK.toString("utf8"); + if (PACK !== "PACK") { + throw new InternalError(`Invalid PACK header '${PACK}'`); + } + let version2 = await reader.read(4); + version2 = version2.readUInt32BE(0); + if (version2 !== 2) { + throw new InternalError(`Invalid packfile version: ${version2}`); + } + let numObjects = await reader.read(4); + numObjects = numObjects.readUInt32BE(0); + if (numObjects < 1) return; + while (!reader.eof() && numObjects--) { + const offset = reader.tell(); + const { type, length, ofs, reference } = await parseHeader(reader); + const inflator = new import_pako.default.Inflate(); + while (!inflator.result) { + const chunk = await reader.chunk(); + if (!chunk) break; + inflator.push(chunk, false); + if (inflator.err) { + throw new InternalError(`Pako error: ${inflator.msg}`); + } + if (inflator.result) { + if (inflator.result.length !== length) { + throw new InternalError( + `Inflated object size is different from that stated in packfile.` + ); + } + await reader.undo(); + await reader.read(chunk.length - inflator.strm.avail_in); + const end = reader.tell(); + await onData({ + data: inflator.result, + type, + num: numObjects, + offset, + end, + reference, + ofs + }); + } + } + } +} +async function parseHeader(reader) { + let byte = await reader.byte(); + const type = byte >> 4 & 7; + let length = byte & 15; + if (byte & 128) { + let shift = 4; + do { + byte = await reader.byte(); + length |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + } + let ofs; + let reference; + if (type === 6) { + let shift = 0; + ofs = 0; + const bytes = []; + do { + byte = await reader.byte(); + ofs |= (byte & 127) << shift; + shift += 7; + bytes.push(byte); + } while (byte & 128); + reference = Buffer.from(bytes); + } + if (type === 7) { + const buf = await reader.read(20); + reference = buf; + } + return { type, length, ofs, reference }; +} +var supportsDecompressionStream = false; +async function inflate(buffer2) { + if (supportsDecompressionStream === null) { + supportsDecompressionStream = testDecompressionStream(); + } + return supportsDecompressionStream ? browserInflate(buffer2) : import_pako.default.inflate(buffer2); +} +async function browserInflate(buffer2) { + const ds = new DecompressionStream("deflate"); + const d = new Blob([buffer2]).stream().pipeThrough(ds); + return new Uint8Array(await new Response(d).arrayBuffer()); +} +function testDecompressionStream() { + try { + const ds = new DecompressionStream("deflate"); + if (ds) return true; + } catch (_) { + } + return false; +} +function decodeVarInt(reader) { + const bytes = []; + let byte = 0; + let multibyte = 0; + do { + byte = reader.readUInt8(); + const lastSeven = byte & 127; + bytes.push(lastSeven); + multibyte = byte & 128; + } while (multibyte); + return bytes.reduce((a, b) => a + 1 << 7 | b, -1); +} +function otherVarIntDecode(reader, startWith) { + let result = startWith; + let shift = 4; + let byte = null; + do { + byte = reader.readUInt8(); + result |= (byte & 127) << shift; + shift += 7; + } while (byte & 128); + return result; +} +var GitPackIndex = class _GitPackIndex { + constructor(stuff) { + Object.assign(this, stuff); + this.offsetCache = {}; + } + static async fromIdx({ idx, getExternalRefDelta }) { + const reader = new BufferCursor(idx); + const magic = reader.slice(4).toString("hex"); + if (magic !== "ff744f63") { + return; + } + const version2 = reader.readUInt32BE(); + if (version2 !== 2) { + throw new InternalError( + `Unable to read version ${version2} packfile IDX. (Only version 2 supported)` + ); + } + if (idx.byteLength > 2048 * 1024 * 1024) { + throw new InternalError( + `To keep implementation simple, I haven't implemented the layer 5 feature needed to support packfiles > 2GB in size.` + ); + } + reader.seek(reader.tell() + 4 * 255); + const size = reader.readUInt32BE(); + const hashes = []; + for (let i = 0; i < size; i++) { + const hash2 = reader.slice(20).toString("hex"); + hashes[i] = hash2; + } + reader.seek(reader.tell() + 4 * size); + const offsets = /* @__PURE__ */ new Map(); + for (let i = 0; i < size; i++) { + offsets.set(hashes[i], reader.readUInt32BE()); + } + const packfileSha = reader.slice(20).toString("hex"); + return new _GitPackIndex({ + hashes, + crcs: {}, + offsets, + packfileSha, + getExternalRefDelta + }); + } + static async fromPack({ pack, getExternalRefDelta, onProgress }) { + const listpackTypes = { + 1: "commit", + 2: "tree", + 3: "blob", + 4: "tag", + 6: "ofs-delta", + 7: "ref-delta" + }; + const offsetToObject = {}; + const packfileSha = pack.slice(-20).toString("hex"); + const hashes = []; + const crcs = {}; + const offsets = /* @__PURE__ */ new Map(); + let totalObjectCount = null; + let lastPercent = null; + await listpack([pack], async ({ data, type, reference, offset, num: num2 }) => { + if (totalObjectCount === null) totalObjectCount = num2; + const percent = Math.floor( + (totalObjectCount - num2) * 100 / totalObjectCount + ); + if (percent !== lastPercent) { + if (onProgress) { + await onProgress({ + phase: "Receiving objects", + loaded: totalObjectCount - num2, + total: totalObjectCount + }); + } + } + lastPercent = percent; + type = listpackTypes[type]; + if (["commit", "tree", "blob", "tag"].includes(type)) { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ofs-delta") { + offsetToObject[offset] = { + type, + offset + }; + } else if (type === "ref-delta") { + offsetToObject[offset] = { + type, + offset + }; + } + }); + const offsetArray = Object.keys(offsetToObject).map(Number); + for (const [i, start] of offsetArray.entries()) { + const end = i + 1 === offsetArray.length ? pack.byteLength - 20 : offsetArray[i + 1]; + const o = offsetToObject[start]; + const crc = import_crc_32.default.buf(pack.slice(start, end)) >>> 0; + o.end = end; + o.crc = crc; + } + const p = new _GitPackIndex({ + pack: Promise.resolve(pack), + packfileSha, + crcs, + hashes, + offsets, + getExternalRefDelta + }); + lastPercent = null; + let count = 0; + const objectsByDepth = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + for (let offset in offsetToObject) { + offset = Number(offset); + const percent = Math.floor(count * 100 / totalObjectCount); + if (percent !== lastPercent) { + if (onProgress) { + await onProgress({ + phase: "Resolving deltas", + loaded: count, + total: totalObjectCount + }); + } + } + count++; + lastPercent = percent; + const o = offsetToObject[offset]; + if (o.oid) continue; + try { + p.readDepth = 0; + p.externalReadDepth = 0; + const { type, object } = await p.readSlice({ start: offset }); + objectsByDepth[p.readDepth] += 1; + const oid = await shasum(GitObject.wrap({ type, object })); + o.oid = oid; + hashes.push(oid); + offsets.set(oid, offset); + crcs[oid] = o.crc; + } catch (err) { + continue; + } + } + hashes.sort(); + return p; + } + async toBuffer() { + const buffers = []; + const write = (str, encoding) => { + buffers.push(Buffer.from(str, encoding)); + }; + write("ff744f63", "hex"); + write("00000002", "hex"); + const fanoutBuffer = new BufferCursor(Buffer.alloc(256 * 4)); + for (let i = 0; i < 256; i++) { + let count = 0; + for (const hash2 of this.hashes) { + if (parseInt(hash2.slice(0, 2), 16) <= i) count++; + } + fanoutBuffer.writeUInt32BE(count); + } + buffers.push(fanoutBuffer.buffer); + for (const hash2 of this.hashes) { + write(hash2, "hex"); + } + const crcsBuffer = new BufferCursor(Buffer.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + crcsBuffer.writeUInt32BE(this.crcs[hash2]); + } + buffers.push(crcsBuffer.buffer); + const offsetsBuffer = new BufferCursor(Buffer.alloc(this.hashes.length * 4)); + for (const hash2 of this.hashes) { + offsetsBuffer.writeUInt32BE(this.offsets.get(hash2)); + } + buffers.push(offsetsBuffer.buffer); + write(this.packfileSha, "hex"); + const totalBuffer = Buffer.concat(buffers); + const sha = await shasum(totalBuffer); + const shaBuffer = Buffer.alloc(20); + shaBuffer.write(sha, "hex"); + return Buffer.concat([totalBuffer, shaBuffer]); + } + async load({ pack }) { + this.pack = pack; + } + async unload() { + this.pack = null; + } + async read({ oid }) { + if (!this.offsets.get(oid)) { + if (this.getExternalRefDelta) { + this.externalReadDepth++; + return this.getExternalRefDelta(oid); + } else { + throw new InternalError(`Could not read object ${oid} from packfile`); + } + } + const start = this.offsets.get(oid); + return this.readSlice({ start }); + } + async readSlice({ start }) { + if (this.offsetCache[start]) { + return Object.assign({}, this.offsetCache[start]); + } + this.readDepth++; + const types2 = { + 16: "commit", + 32: "tree", + 48: "blob", + 64: "tag", + 96: "ofs_delta", + 112: "ref_delta" + }; + if (!this.pack) { + throw new InternalError( + "Tried to read from a GitPackIndex with no packfile loaded into memory" + ); + } + const raw = (await this.pack).slice(start); + const reader = new BufferCursor(raw); + const byte = reader.readUInt8(); + const btype = byte & 112; + let type = types2[btype]; + if (type === void 0) { + throw new InternalError("Unrecognized type: 0b" + btype.toString(2)); + } + const lastFour = byte & 15; + let length = lastFour; + const multibyte = byte & 128; + if (multibyte) { + length = otherVarIntDecode(reader, lastFour); + } + let base = null; + let object = null; + if (type === "ofs_delta") { + const offset = decodeVarInt(reader); + const baseOffset = start - offset; + ({ object: base, type } = await this.readSlice({ start: baseOffset })); + } + if (type === "ref_delta") { + const oid = reader.slice(20).toString("hex"); + ({ object: base, type } = await this.read({ oid })); + } + const buffer2 = raw.slice(reader.tell()); + object = Buffer.from(await inflate(buffer2)); + if (object.byteLength !== length) { + throw new InternalError( + `Packfile told us object would have length ${length} but it had length ${object.byteLength}` + ); + } + if (base) { + object = Buffer.from(applyDelta(object, base)); + } + if (this.readDepth > 3) { + this.offsetCache[start] = { type, object }; + } + return { type, format: "content", object }; + } +}; +var PackfileCache = Symbol("PackfileCache"); +async function loadPackIndex({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix +}) { + const idx = await fs.read(filename); + return GitPackIndex.fromIdx({ idx, getExternalRefDelta }); +} +function readPackIndex({ + fs, + cache, + filename, + getExternalRefDelta, + emitter, + emitterPrefix +}) { + if (!cache[PackfileCache]) cache[PackfileCache] = /* @__PURE__ */ new Map(); + let p = cache[PackfileCache].get(filename); + if (!p) { + p = loadPackIndex({ + fs, + filename, + getExternalRefDelta, + emitter, + emitterPrefix + }); + cache[PackfileCache].set(filename, p); + } + return p; +} +async function readObjectPacked({ + fs, + cache, + gitdir, + oid, + format = "content", + getExternalRefDelta +}) { + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) throw new InternalError(p.error); + if (p.offsets.has(oid)) { + if (!p.pack) { + const packFile = indexFile.replace(/idx$/, "pack"); + p.pack = fs.read(packFile); + } + const result = await p.read({ oid, getExternalRefDelta }); + result.format = "content"; + result.source = `objects/pack/${filename.replace(/idx$/, "pack")}`; + return result; + } + } + return null; +} +async function _readObject({ + fs, + cache, + gitdir, + oid, + format = "content" +}) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result; + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + result = { format: "wrapped", object: Buffer.from(`tree 0\0`) }; + } + if (!result) { + result = await readObjectLoose({ fs, gitdir, oid }); + } + if (!result) { + result = await readObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + if (!result) { + throw new NotFoundError(oid); + } + return result; + } + if (format === "deflated") { + return result; + } + if (result.format === "deflated") { + result.object = Buffer.from(await inflate(result.object)); + result.format = "wrapped"; + } + if (format === "wrapped") { + return result; + } + const sha = await shasum(result.object); + if (sha !== oid) { + throw new InternalError( + `SHA check failed! Expected ${oid}, computed ${sha}` + ); + } + const { object, type } = GitObject.unwrap(result.object); + result.type = type; + result.object = object; + result.format = "content"; + if (format === "content") { + return result; + } + throw new InternalError(`invalid requested format "${format}"`); +} +var AlreadyExistsError = class _AlreadyExistsError extends BaseError { + /** + * @param {'note'|'remote'|'tag'|'branch'} noun + * @param {string} where + * @param {boolean} canForce + */ + constructor(noun, where, canForce = true) { + super( + `Failed to create ${noun} at ${where} because it already exists.${canForce ? ` (Hint: use 'force: true' parameter to overwrite existing ${noun}.)` : ""}` + ); + this.code = this.name = _AlreadyExistsError.code; + this.data = { noun, where, canForce }; + } +}; +AlreadyExistsError.code = "AlreadyExistsError"; +var AmbiguousError = class _AmbiguousError extends BaseError { + /** + * @param {'oids'|'refs'} nouns + * @param {string} short + * @param {string[]} matches + */ + constructor(nouns, short, matches) { + super( + `Found multiple ${nouns} matching "${short}" (${matches.join( + ", " + )}). Use a longer abbreviation length to disambiguate them.` + ); + this.code = this.name = _AmbiguousError.code; + this.data = { nouns, short, matches }; + } +}; +AmbiguousError.code = "AmbiguousError"; +var CheckoutConflictError = class _CheckoutConflictError extends BaseError { + /** + * @param {string[]} filepaths + */ + constructor(filepaths) { + super( + `Your local changes to the following files would be overwritten by checkout: ${filepaths.join( + ", " + )}` + ); + this.code = this.name = _CheckoutConflictError.code; + this.data = { filepaths }; + } +}; +CheckoutConflictError.code = "CheckoutConflictError"; +var CommitNotFetchedError = class _CommitNotFetchedError extends BaseError { + /** + * @param {string} ref + * @param {string} oid + */ + constructor(ref, oid) { + super( + `Failed to checkout "${ref}" because commit ${oid} is not available locally. Do a git fetch to make the branch available locally.` + ); + this.code = this.name = _CommitNotFetchedError.code; + this.data = { ref, oid }; + } +}; +CommitNotFetchedError.code = "CommitNotFetchedError"; +var EmptyServerResponseError = class _EmptyServerResponseError extends BaseError { + constructor() { + super(`Empty response from git server.`); + this.code = this.name = _EmptyServerResponseError.code; + this.data = {}; + } +}; +EmptyServerResponseError.code = "EmptyServerResponseError"; +var FastForwardError = class _FastForwardError extends BaseError { + constructor() { + super(`A simple fast-forward merge was not possible.`); + this.code = this.name = _FastForwardError.code; + this.data = {}; + } +}; +FastForwardError.code = "FastForwardError"; +var GitPushError = class _GitPushError extends BaseError { + /** + * @param {string} prettyDetails + * @param {PushResult} result + */ + constructor(prettyDetails, result) { + super(`One or more branches were not updated: ${prettyDetails}`); + this.code = this.name = _GitPushError.code; + this.data = { prettyDetails, result }; + } +}; +GitPushError.code = "GitPushError"; +var HttpError = class _HttpError extends BaseError { + /** + * @param {number} statusCode + * @param {string} statusMessage + * @param {string} response + */ + constructor(statusCode, statusMessage, response) { + super(`HTTP Error: ${statusCode} ${statusMessage}`); + this.code = this.name = _HttpError.code; + this.data = { statusCode, statusMessage, response }; + } +}; +HttpError.code = "HttpError"; +var InvalidFilepathError = class _InvalidFilepathError extends BaseError { + /** + * @param {'leading-slash'|'trailing-slash'|'directory'} [reason] + */ + constructor(reason) { + let message = "invalid filepath"; + if (reason === "leading-slash" || reason === "trailing-slash") { + message = `"filepath" parameter should not include leading or trailing directory separators because these can cause problems on some platforms.`; + } else if (reason === "directory") { + message = `"filepath" should not be a directory.`; + } + super(message); + this.code = this.name = _InvalidFilepathError.code; + this.data = { reason }; + } +}; +InvalidFilepathError.code = "InvalidFilepathError"; +var InvalidRefNameError = class _InvalidRefNameError extends BaseError { + /** + * @param {string} ref + * @param {string} suggestion + * @param {boolean} canForce + */ + constructor(ref, suggestion) { + super( + `"${ref}" would be an invalid git reference. (Hint: a valid alternative would be "${suggestion}".)` + ); + this.code = this.name = _InvalidRefNameError.code; + this.data = { ref, suggestion }; + } +}; +InvalidRefNameError.code = "InvalidRefNameError"; +var MaxDepthError = class _MaxDepthError extends BaseError { + /** + * @param {number} depth + */ + constructor(depth) { + super(`Maximum search depth of ${depth} exceeded.`); + this.code = this.name = _MaxDepthError.code; + this.data = { depth }; + } +}; +MaxDepthError.code = "MaxDepthError"; +var MergeNotSupportedError = class _MergeNotSupportedError extends BaseError { + constructor() { + super(`Merges with conflicts are not supported yet.`); + this.code = this.name = _MergeNotSupportedError.code; + this.data = {}; + } +}; +MergeNotSupportedError.code = "MergeNotSupportedError"; +var MergeConflictError = class _MergeConflictError extends BaseError { + /** + * @param {Array} filepaths + * @param {Array} bothModified + * @param {Array} deleteByUs + * @param {Array} deleteByTheirs + */ + constructor(filepaths, bothModified, deleteByUs, deleteByTheirs) { + super( + `Automatic merge failed with one or more merge conflicts in the following files: ${filepaths.toString()}. Fix conflicts then commit the result.` + ); + this.code = this.name = _MergeConflictError.code; + this.data = { filepaths, bothModified, deleteByUs, deleteByTheirs }; + } +}; +MergeConflictError.code = "MergeConflictError"; +var MissingNameError = class _MissingNameError extends BaseError { + /** + * @param {'author'|'committer'|'tagger'} role + */ + constructor(role) { + super( + `No name was provided for ${role} in the argument or in the .git/config file.` + ); + this.code = this.name = _MissingNameError.code; + this.data = { role }; + } +}; +MissingNameError.code = "MissingNameError"; +var MissingParameterError = class _MissingParameterError extends BaseError { + /** + * @param {string} parameter + */ + constructor(parameter) { + super( + `The function requires a "${parameter}" parameter but none was provided.` + ); + this.code = this.name = _MissingParameterError.code; + this.data = { parameter }; + } +}; +MissingParameterError.code = "MissingParameterError"; +var MultipleGitError = class _MultipleGitError extends BaseError { + /** + * @param {Error[]} errors + * @param {string} message + */ + constructor(errors) { + super( + `There are multiple errors that were thrown by the method. Please refer to the "errors" property to see more` + ); + this.code = this.name = _MultipleGitError.code; + this.data = { errors }; + this.errors = errors; + } +}; +MultipleGitError.code = "MultipleGitError"; +var ParseError = class _ParseError extends BaseError { + /** + * @param {string} expected + * @param {string} actual + */ + constructor(expected, actual) { + super(`Expected "${expected}" but received "${actual}".`); + this.code = this.name = _ParseError.code; + this.data = { expected, actual }; + } +}; +ParseError.code = "ParseError"; +var PushRejectedError = class _PushRejectedError extends BaseError { + /** + * @param {'not-fast-forward'|'tag-exists'} reason + */ + constructor(reason) { + let message = ""; + if (reason === "not-fast-forward") { + message = " because it was not a simple fast-forward"; + } else if (reason === "tag-exists") { + message = " because tag already exists"; + } + super(`Push rejected${message}. Use "force: true" to override.`); + this.code = this.name = _PushRejectedError.code; + this.data = { reason }; + } +}; +PushRejectedError.code = "PushRejectedError"; +var RemoteCapabilityError = class _RemoteCapabilityError extends BaseError { + /** + * @param {'shallow'|'deepen-since'|'deepen-not'|'deepen-relative'} capability + * @param {'depth'|'since'|'exclude'|'relative'} parameter + */ + constructor(capability, parameter) { + super( + `Remote does not support the "${capability}" so the "${parameter}" parameter cannot be used.` + ); + this.code = this.name = _RemoteCapabilityError.code; + this.data = { capability, parameter }; + } +}; +RemoteCapabilityError.code = "RemoteCapabilityError"; +var SmartHttpError = class _SmartHttpError extends BaseError { + /** + * @param {string} preview + * @param {string} response + */ + constructor(preview, response) { + super( + `Remote did not reply using the "smart" HTTP protocol. Expected "001e# service=git-upload-pack" but received: ${preview}` + ); + this.code = this.name = _SmartHttpError.code; + this.data = { preview, response }; + } +}; +SmartHttpError.code = "SmartHttpError"; +var UnknownTransportError = class _UnknownTransportError extends BaseError { + /** + * @param {string} url + * @param {string} transport + * @param {string} [suggestion] + */ + constructor(url, transport, suggestion) { + super( + `Git remote "${url}" uses an unrecognized transport protocol: "${transport}"` + ); + this.code = this.name = _UnknownTransportError.code; + this.data = { url, transport, suggestion }; + } +}; +UnknownTransportError.code = "UnknownTransportError"; +var UrlParseError = class _UrlParseError extends BaseError { + /** + * @param {string} url + */ + constructor(url) { + super(`Cannot parse remote URL: "${url}"`); + this.code = this.name = _UrlParseError.code; + this.data = { url }; + } +}; +UrlParseError.code = "UrlParseError"; +var UserCanceledError = class _UserCanceledError extends BaseError { + constructor() { + super(`The operation was canceled.`); + this.code = this.name = _UserCanceledError.code; + this.data = {}; + } +}; +UserCanceledError.code = "UserCanceledError"; +var IndexResetError = class _IndexResetError extends BaseError { + /** + * @param {Array} filepaths + */ + constructor(filepath) { + super( + `Could not merge index: Entry for '${filepath}' is not up to date. Either reset the index entry to HEAD, or stage your unstaged changes.` + ); + this.code = this.name = _IndexResetError.code; + this.data = { filepath }; + } +}; +IndexResetError.code = "IndexResetError"; +var NoCommitError = class _NoCommitError extends BaseError { + /** + * @param {string} ref + */ + constructor(ref) { + super( + `"${ref}" does not point to any commit. You're maybe working on a repository with no commits yet. ` + ); + this.code = this.name = _NoCommitError.code; + this.data = { ref }; + } +}; +NoCommitError.code = "NoCommitError"; +var Errors = /* @__PURE__ */ Object.freeze({ + __proto__: null, + AlreadyExistsError, + AmbiguousError, + CheckoutConflictError, + CommitNotFetchedError, + EmptyServerResponseError, + FastForwardError, + GitPushError, + HttpError, + InternalError, + InvalidFilepathError, + InvalidOidError, + InvalidRefNameError, + MaxDepthError, + MergeNotSupportedError, + MergeConflictError, + MissingNameError, + MissingParameterError, + MultipleGitError, + NoRefspecError, + NotFoundError, + ObjectTypeError, + ParseError, + PushRejectedError, + RemoteCapabilityError, + SmartHttpError, + UnknownTransportError, + UnsafeFilepathError, + UrlParseError, + UserCanceledError, + UnmergedPathsError, + IndexResetError, + NoCommitError +}); +function formatAuthor({ name, email, timestamp, timezoneOffset }) { + timezoneOffset = formatTimezoneOffset(timezoneOffset); + return `${name} <${email}> ${timestamp} ${timezoneOffset}`; +} +function formatTimezoneOffset(minutes) { + const sign = simpleSign(negateExceptForZero(minutes)); + minutes = Math.abs(minutes); + const hours = Math.floor(minutes / 60); + minutes -= hours * 60; + let strHours = String(hours); + let strMinutes = String(minutes); + if (strHours.length < 2) strHours = "0" + strHours; + if (strMinutes.length < 2) strMinutes = "0" + strMinutes; + return (sign === -1 ? "-" : "+") + strHours + strMinutes; +} +function simpleSign(n) { + return Math.sign(n) || (Object.is(n, -0) ? -1 : 1); +} +function negateExceptForZero(n) { + return n === 0 ? n : -n; +} +function normalizeNewlines(str) { + str = str.replace(/\r/g, ""); + str = str.replace(/^\n+/, ""); + str = str.replace(/\n+$/, "") + "\n"; + return str; +} +function parseAuthor(author) { + const [, name, email, timestamp, offset] = author.match( + /^(.*) <(.*)> (.*) (.*)$/ + ); + return { + name, + email, + timestamp: Number(timestamp), + timezoneOffset: parseTimezoneOffset(offset) + }; +} +function parseTimezoneOffset(offset) { + let [, sign, hours, minutes] = offset.match(/(\+|-)(\d\d)(\d\d)/); + minutes = (sign === "+" ? 1 : -1) * (Number(hours) * 60 + Number(minutes)); + return negateExceptForZero$1(minutes); +} +function negateExceptForZero$1(n) { + return n === 0 ? n : -n; +} +var GitAnnotatedTag = class _GitAnnotatedTag { + constructor(tag2) { + if (typeof tag2 === "string") { + this._tag = tag2; + } else if (Buffer.isBuffer(tag2)) { + this._tag = tag2.toString("utf8"); + } else if (typeof tag2 === "object") { + this._tag = _GitAnnotatedTag.render(tag2); + } else { + throw new InternalError( + "invalid type passed to GitAnnotatedTag constructor" + ); + } + } + static from(tag2) { + return new _GitAnnotatedTag(tag2); + } + static render(obj) { + return `object ${obj.object} +type ${obj.type} +tag ${obj.tag} +tagger ${formatAuthor(obj.tagger)} + +${obj.message} +${obj.gpgsig ? obj.gpgsig : ""}`; + } + justHeaders() { + return this._tag.slice(0, this._tag.indexOf("\n\n")); + } + message() { + const tag2 = this.withoutSignature(); + return tag2.slice(tag2.indexOf("\n\n") + 2); + } + parse() { + return Object.assign(this.headers(), { + message: this.message(), + gpgsig: this.gpgsig() + }); + } + render() { + return this._tag; + } + headers() { + const headers = this.justHeaders().split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = {}; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.tagger) { + obj.tagger = parseAuthor(obj.tagger); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + withoutSignature() { + const tag2 = normalizeNewlines(this._tag); + if (tag2.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) return tag2; + return tag2.slice(0, tag2.lastIndexOf("\n-----BEGIN PGP SIGNATURE-----")); + } + gpgsig() { + if (this._tag.indexOf("\n-----BEGIN PGP SIGNATURE-----") === -1) return; + const signature = this._tag.slice( + this._tag.indexOf("-----BEGIN PGP SIGNATURE-----"), + this._tag.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length + ); + return normalizeNewlines(signature); + } + payload() { + return this.withoutSignature() + "\n"; + } + toObject() { + return Buffer.from(this._tag, "utf8"); + } + static async sign(tag2, sign, secretKey) { + const payload = tag2.payload(); + let { signature } = await sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const signedTag = payload + signature; + return _GitAnnotatedTag.from(signedTag); + } +}; +function indent(str) { + return str.trim().split("\n").map((x) => " " + x).join("\n") + "\n"; +} +function outdent(str) { + return str.split("\n").map((x) => x.replace(/^ /, "")).join("\n"); +} +var GitCommit = class _GitCommit { + constructor(commit2) { + if (typeof commit2 === "string") { + this._commit = commit2; + } else if (Buffer.isBuffer(commit2)) { + this._commit = commit2.toString("utf8"); + } else if (typeof commit2 === "object") { + this._commit = _GitCommit.render(commit2); + } else { + throw new InternalError("invalid type passed to GitCommit constructor"); + } + } + static fromPayloadSignature({ payload, signature }) { + const headers = _GitCommit.justHeaders(payload); + const message = _GitCommit.justMessage(payload); + const commit2 = normalizeNewlines( + headers + "\ngpgsig" + indent(signature) + "\n" + message + ); + return new _GitCommit(commit2); + } + static from(commit2) { + return new _GitCommit(commit2); + } + toObject() { + return Buffer.from(this._commit, "utf8"); + } + // Todo: allow setting the headers and message + headers() { + return this.parseHeaders(); + } + // Todo: allow setting the headers and message + message() { + return _GitCommit.justMessage(this._commit); + } + parse() { + return Object.assign({ message: this.message() }, this.headers()); + } + static justMessage(commit2) { + return normalizeNewlines(commit2.slice(commit2.indexOf("\n\n") + 2)); + } + static justHeaders(commit2) { + return commit2.slice(0, commit2.indexOf("\n\n")); + } + parseHeaders() { + const headers = _GitCommit.justHeaders(this._commit).split("\n"); + const hs = []; + for (const h of headers) { + if (h[0] === " ") { + hs[hs.length - 1] += "\n" + h.slice(1); + } else { + hs.push(h); + } + } + const obj = { + parent: [] + }; + for (const h of hs) { + const key2 = h.slice(0, h.indexOf(" ")); + const value = h.slice(h.indexOf(" ") + 1); + if (Array.isArray(obj[key2])) { + obj[key2].push(value); + } else { + obj[key2] = value; + } + } + if (obj.author) { + obj.author = parseAuthor(obj.author); + } + if (obj.committer) { + obj.committer = parseAuthor(obj.committer); + } + return obj; + } + static renderHeaders(obj) { + let headers = ""; + if (obj.tree) { + headers += `tree ${obj.tree} +`; + } else { + headers += `tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 +`; + } + if (obj.parent) { + if (obj.parent.length === void 0) { + throw new InternalError(`commit 'parent' property should be an array`); + } + for (const p of obj.parent) { + headers += `parent ${p} +`; + } + } + const author = obj.author; + headers += `author ${formatAuthor(author)} +`; + const committer = obj.committer || obj.author; + headers += `committer ${formatAuthor(committer)} +`; + if (obj.gpgsig) { + headers += "gpgsig" + indent(obj.gpgsig); + } + return headers; + } + static render(obj) { + return _GitCommit.renderHeaders(obj) + "\n" + normalizeNewlines(obj.message); + } + render() { + return this._commit; + } + withoutSignature() { + const commit2 = normalizeNewlines(this._commit); + if (commit2.indexOf("\ngpgsig") === -1) return commit2; + const headers = commit2.slice(0, commit2.indexOf("\ngpgsig")); + const message = commit2.slice( + commit2.indexOf("-----END PGP SIGNATURE-----\n") + "-----END PGP SIGNATURE-----\n".length + ); + return normalizeNewlines(headers + "\n" + message); + } + isolateSignature() { + const signature = this._commit.slice( + this._commit.indexOf("-----BEGIN PGP SIGNATURE-----"), + this._commit.indexOf("-----END PGP SIGNATURE-----") + "-----END PGP SIGNATURE-----".length + ); + return outdent(signature); + } + static async sign(commit2, sign, secretKey) { + const payload = commit2.withoutSignature(); + const message = _GitCommit.justMessage(commit2._commit); + let { signature } = await sign({ payload, secretKey }); + signature = normalizeNewlines(signature); + const headers = _GitCommit.justHeaders(commit2._commit); + const signedCommit = headers + "\ngpgsig" + indent(signature) + "\n" + message; + return _GitCommit.from(signedCommit); + } +}; +async function resolveTree({ fs, cache, gitdir, oid }) { + if (oid === "4b825dc642cb6eb9a060e54bf8d69288fbee4904") { + return { tree: GitTree.from([]), oid }; + } + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type === "commit") { + oid = GitCommit.from(object).parse().tree; + return resolveTree({ fs, cache, gitdir, oid }); + } + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "tree"); + } + return { tree: GitTree.from(object), oid }; +} +var GitWalkerRepo = class { + constructor({ fs, gitdir, ref, cache }) { + this.fs = fs; + this.cache = cache; + this.gitdir = gitdir; + this.mapPromise = (async () => { + const map = /* @__PURE__ */ new Map(); + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (e) { + if (e instanceof NotFoundError) { + oid = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"; + } + } + const tree = await resolveTree({ fs, cache: this.cache, gitdir, oid }); + tree.type = "tree"; + tree.mode = "40000"; + map.set(".", tree); + return map; + })(); + const walker = this; + this.ConstructEntry = class TreeEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const { fs, cache, gitdir } = this; + const map = await this.mapPromise; + const obj = map.get(filepath); + if (!obj) throw new Error(`No obj for ${filepath}`); + const oid = obj.oid; + if (!oid) throw new Error(`No oid for obj ${JSON.stringify(obj)}`); + if (obj.type !== "tree") { + return null; + } + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type !== obj.type) { + throw new ObjectTypeError(oid, type, obj.type); + } + const tree = GitTree.from(object); + for (const entry2 of tree) { + map.set(join(filepath, entry2.path), entry2); + } + return tree.entries().map((entry2) => join(filepath, entry2.path)); + } + async type(entry) { + if (entry._type === false) { + const map = await this.mapPromise; + const { type } = map.get(entry._fullpath); + entry._type = type; + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + const map = await this.mapPromise; + const { mode } = map.get(entry._fullpath); + entry._mode = normalizeMode(parseInt(mode, 8)); + } + return entry._mode; + } + async stat(_entry) { + } + async content(entry) { + if (entry._content === false) { + const map = await this.mapPromise; + const { fs, cache, gitdir } = this; + const obj = map.get(entry._fullpath); + const oid = obj.oid; + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type !== "blob") { + entry._content = void 0; + } else { + entry._content = new Uint8Array(object); + } + } + return entry._content; + } + async oid(entry) { + if (entry._oid === false) { + const map = await this.mapPromise; + const obj = map.get(entry._fullpath); + entry._oid = obj.oid; + } + return entry._oid; + } +}; +function TREE({ ref = "HEAD" } = {}) { + const o = /* @__PURE__ */ Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, gitdir, cache }) { + return new GitWalkerRepo({ fs, gitdir, ref, cache }); + } + }); + Object.freeze(o); + return o; +} +var GitWalkerFs = class { + constructor({ fs, dir, gitdir, cache }) { + this.fs = fs; + this.cache = cache; + this.dir = dir; + this.gitdir = gitdir; + const walker = this; + this.ConstructEntry = class WorkdirEntry { + constructor(fullpath) { + this._fullpath = fullpath; + this._type = false; + this._mode = false; + this._stat = false; + this._content = false; + this._oid = false; + } + async type() { + return walker.type(this); + } + async mode() { + return walker.mode(this); + } + async stat() { + return walker.stat(this); + } + async content() { + return walker.content(this); + } + async oid() { + return walker.oid(this); + } + }; + } + async readdir(entry) { + const filepath = entry._fullpath; + const { fs, dir } = this; + const names = await fs.readdir(join(dir, filepath)); + if (names === null) return null; + return names.map((name) => join(filepath, name)); + } + async type(entry) { + if (entry._type === false) { + await entry.stat(); + } + return entry._type; + } + async mode(entry) { + if (entry._mode === false) { + await entry.stat(); + } + return entry._mode; + } + async stat(entry) { + if (entry._stat === false) { + const { fs, dir } = this; + let stat = await fs.lstat(`${dir}/${entry._fullpath}`); + if (!stat) { + throw new Error( + `ENOENT: no such file or directory, lstat '${entry._fullpath}'` + ); + } + let type = stat.isDirectory() ? "tree" : "blob"; + if (type === "blob" && !stat.isFile() && !stat.isSymbolicLink()) { + type = "special"; + } + entry._type = type; + stat = normalizeStats(stat); + entry._mode = stat.mode; + if (stat.size === -1 && entry._actualSize) { + stat.size = entry._actualSize; + } + entry._stat = stat; + } + return entry._stat; + } + async content(entry) { + if (entry._content === false) { + const { fs, dir, gitdir } = this; + if (await entry.type() === "tree") { + entry._content = void 0; + } else { + const config = await GitConfigManager.get({ fs, gitdir }); + const autocrlf = await config.get("core.autocrlf"); + const content = await fs.read(`${dir}/${entry._fullpath}`, { autocrlf }); + entry._actualSize = content.length; + if (entry._stat && entry._stat.size === -1) { + entry._stat.size = entry._actualSize; + } + entry._content = new Uint8Array(content); + } + } + return entry._content; + } + async oid(entry) { + if (entry._oid === false) { + const { fs, gitdir, cache } = this; + let oid; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + const stage = index2.entriesMap.get(entry._fullpath); + const stats = await entry.stat(); + const config = await GitConfigManager.get({ fs, gitdir }); + const filemode = await config.get("core.filemode"); + const trustino = typeof process !== "undefined" ? !(process.platform === "win32") : true; + if (!stage || compareStats(stats, stage, filemode, trustino)) { + const content = await entry.content(); + if (content === void 0) { + oid = void 0; + } else { + oid = await shasum( + GitObject.wrap({ type: "blob", object: await entry.content() }) + ); + if (stage && oid === stage.oid && (!filemode || stats.mode === stage.mode) && compareStats(stats, stage, filemode, trustino)) { + index2.insert({ + filepath: entry._fullpath, + stats, + oid + }); + } + } + } else { + oid = stage.oid; + } + }); + entry._oid = oid; + } + return entry._oid; + } +}; +function WORKDIR() { + const o = /* @__PURE__ */ Object.create(null); + Object.defineProperty(o, GitWalkSymbol, { + value: function({ fs, dir, gitdir, cache }) { + return new GitWalkerFs({ fs, dir, gitdir, cache }); + } + }); + Object.freeze(o); + return o; +} +function arrayRange(start, end) { + const length = end - start; + return Array.from({ length }, (_, i) => start + i); +} +var flat = typeof Array.prototype.flat === "undefined" ? (entries) => entries.reduce((acc, x) => acc.concat(x), []) : (entries) => entries.flat(); +var RunningMinimum = class { + constructor() { + this.value = null; + } + consider(value) { + if (value === null || value === void 0) return; + if (this.value === null) { + this.value = value; + } else if (value < this.value) { + this.value = value; + } + } + reset() { + this.value = null; + } +}; +function* unionOfIterators(sets) { + const min = new RunningMinimum(); + let minimum; + const heads = []; + const numsets = sets.length; + for (let i = 0; i < numsets; i++) { + heads[i] = sets[i].next().value; + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + if (min.value === null) return; + while (true) { + const result = []; + minimum = min.value; + min.reset(); + for (let i = 0; i < numsets; i++) { + if (heads[i] !== void 0 && heads[i] === minimum) { + result[i] = heads[i]; + heads[i] = sets[i].next().value; + } else { + result[i] = null; + } + if (heads[i] !== void 0) { + min.consider(heads[i]); + } + } + yield result; + if (min.value === null) return; + } +} +async function _walk({ + fs, + cache, + dir, + gitdir, + trees, + // @ts-ignore + map = async (_, entry) => entry, + // The default reducer is a flatmap that filters out undefineds. + reduce = async (parent, children2) => { + const flatten = flat(children2); + if (parent !== void 0) flatten.unshift(parent); + return flatten; + }, + // The default iterate function walks all children concurrently + iterate = (walk2, children2) => Promise.all([...children2].map(walk2)) +}) { + const walkers = trees.map( + (proxy) => proxy[GitWalkSymbol]({ fs, dir, gitdir, cache }) + ); + const root2 = new Array(walkers.length).fill("."); + const range = arrayRange(0, walkers.length); + const unionWalkerFromReaddir = async (entries) => { + range.map((i) => { + entries[i] = entries[i] && new walkers[i].ConstructEntry(entries[i]); + }); + const subdirs = await Promise.all( + range.map((i) => entries[i] ? walkers[i].readdir(entries[i]) : []) + ); + const iterators = subdirs.map((array) => array === null ? [] : array).map((array) => array[Symbol.iterator]()); + return { + entries, + children: unionOfIterators(iterators) + }; + }; + const walk2 = async (root3) => { + const { entries, children: children2 } = await unionWalkerFromReaddir(root3); + const fullpath = entries.find((entry) => entry && entry._fullpath)._fullpath; + const parent = await map(fullpath, entries); + if (parent !== null) { + let walkedChildren = await iterate(walk2, children2); + walkedChildren = walkedChildren.filter((x) => x !== void 0); + return reduce(parent, walkedChildren); + } + }; + return walk2(root2); +} +async function rmRecursive(fs, filepath) { + const entries = await fs.readdir(filepath); + if (entries == null) { + await fs.rm(filepath); + } else if (entries.length) { + await Promise.all( + entries.map((entry) => { + const subpath = join(filepath, entry); + return fs.lstat(subpath).then((stat) => { + if (!stat) return; + return stat.isDirectory() ? rmRecursive(fs, subpath) : fs.rm(subpath); + }); + }) + ).then(() => fs.rmdir(filepath)); + } else { + await fs.rmdir(filepath); + } +} +function isPromiseLike(obj) { + return isObject(obj) && isFunction(obj.then) && isFunction(obj.catch); +} +function isObject(obj) { + return obj && typeof obj === "object"; +} +function isFunction(obj) { + return typeof obj === "function"; +} +function isPromiseFs(fs) { + const test = (targetFs) => { + try { + return targetFs.readFile().catch((e) => e); + } catch (e) { + return e; + } + }; + return isPromiseLike(test(fs)); +} +var commands = [ + "readFile", + "writeFile", + "mkdir", + "rmdir", + "unlink", + "stat", + "lstat", + "readdir", + "readlink", + "symlink" +]; +function bindFs(target, fs) { + if (isPromiseFs(fs)) { + for (const command of commands) { + target[`_${command}`] = fs[command].bind(fs); + } + } else { + for (const command of commands) { + target[`_${command}`] = (0, import_pify.default)(fs[command].bind(fs)); + } + } + if (isPromiseFs(fs)) { + if (fs.rm) target._rm = fs.rm.bind(fs); + else if (fs.rmdir.length > 1) target._rm = fs.rmdir.bind(fs); + else target._rm = rmRecursive.bind(null, target); + } else { + if (fs.rm) target._rm = (0, import_pify.default)(fs.rm.bind(fs)); + else if (fs.rmdir.length > 2) target._rm = (0, import_pify.default)(fs.rmdir.bind(fs)); + else target._rm = rmRecursive.bind(null, target); + } +} +var FileSystem = class { + constructor(fs) { + if (typeof fs._original_unwrapped_fs !== "undefined") return fs; + const promises = Object.getOwnPropertyDescriptor(fs, "promises"); + if (promises && promises.enumerable) { + bindFs(this, fs.promises); + } else { + bindFs(this, fs); + } + this._original_unwrapped_fs = fs; + } + /** + * Return true if a file exists, false if it doesn't exist. + * Rethrows errors that aren't related to file existence. + */ + async exists(filepath, options = {}) { + try { + await this._stat(filepath); + return true; + } catch (err) { + if (err.code === "ENOENT" || err.code === "ENOTDIR") { + return false; + } else { + console.log('Unhandled error in "FileSystem.exists()" function', err); + throw err; + } + } + } + /** + * Return the contents of a file if it exists, otherwise returns null. + * + * @param {string} filepath + * @param {object} [options] + * + * @returns {Promise} + */ + async read(filepath, options = {}) { + try { + let buffer2 = await this._readFile(filepath, options); + if (options.autocrlf === "true") { + try { + buffer2 = new TextDecoder("utf8", { fatal: true }).decode(buffer2); + buffer2 = buffer2.replace(/\r\n/g, "\n"); + buffer2 = new TextEncoder().encode(buffer2); + } catch (error) { + } + } + if (typeof buffer2 !== "string") { + buffer2 = Buffer.from(buffer2); + } + return buffer2; + } catch (err) { + return null; + } + } + /** + * Write a file (creating missing directories if need be) without throwing errors. + * + * @param {string} filepath + * @param {Buffer|Uint8Array|string} contents + * @param {object|string} [options] + */ + async write(filepath, contents, options = {}) { + try { + await this._writeFile(filepath, contents, options); + return; + } catch (err) { + await this.mkdir(dirname(filepath)); + await this._writeFile(filepath, contents, options); + } + } + /** + * Make a directory (or series of nested directories) without throwing an error if it already exists. + */ + async mkdir(filepath, _selfCall = false) { + try { + await this._mkdir(filepath); + return; + } catch (err) { + if (err === null) return; + if (err.code === "EEXIST") return; + if (_selfCall) throw err; + if (err.code === "ENOENT") { + const parent = dirname(filepath); + if (parent === "." || parent === "/" || parent === filepath) throw err; + await this.mkdir(parent); + await this.mkdir(filepath, true); + } + } + } + /** + * Delete a file without throwing an error if it is already deleted. + */ + async rm(filepath) { + try { + await this._unlink(filepath); + } catch (err) { + if (err.code !== "ENOENT") throw err; + } + } + /** + * Delete a directory without throwing an error if it is already deleted. + */ + async rmdir(filepath, opts) { + try { + if (opts && opts.recursive) { + await this._rm(filepath, opts); + } else { + await this._rmdir(filepath); + } + } catch (err) { + if (err.code !== "ENOENT") throw err; + } + } + /** + * Read a directory without throwing an error is the directory doesn't exist + */ + async readdir(filepath) { + try { + const names = await this._readdir(filepath); + names.sort(compareStrings); + return names; + } catch (err) { + if (err.code === "ENOTDIR") return null; + return []; + } + } + /** + * Return a flast list of all the files nested inside a directory + * + * Based on an elegant concurrent recursive solution from SO + * https://stackoverflow.com/a/45130990/2168416 + */ + async readdirDeep(dir) { + const subdirs = await this._readdir(dir); + const files = await Promise.all( + subdirs.map(async (subdir) => { + const res = dir + "/" + subdir; + return (await this._stat(res)).isDirectory() ? this.readdirDeep(res) : res; + }) + ); + return files.reduce((a, f) => a.concat(f), []); + } + /** + * Return the Stats of a file/symlink if it exists, otherwise returns null. + * Rethrows errors that aren't related to file existence. + */ + async lstat(filename) { + try { + const stats = await this._lstat(filename); + return stats; + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + } + /** + * Reads the contents of a symlink if it exists, otherwise returns null. + * Rethrows errors that aren't related to file existence. + */ + async readlink(filename, opts = { encoding: "buffer" }) { + try { + const link = await this._readlink(filename, opts); + return Buffer.isBuffer(link) ? link : Buffer.from(link); + } catch (err) { + if (err.code === "ENOENT") { + return null; + } + throw err; + } + } + /** + * Write the contents of buffer to a symlink. + */ + async writelink(filename, buffer2) { + return this._symlink(buffer2.toString("utf8"), filename); + } +}; +function assertParameter(name, value) { + if (value === void 0) { + throw new MissingParameterError(name); + } +} +async function modified(entry, base) { + if (!entry && !base) return false; + if (entry && !base) return true; + if (!entry && base) return true; + if (await entry.type() === "tree" && await base.type() === "tree") { + return false; + } + if (await entry.type() === await base.type() && await entry.mode() === await base.mode() && await entry.oid() === await base.oid()) { + return false; + } + return true; +} +async function abortMerge({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + commit: commit2 = "HEAD", + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + const fs = new FileSystem(_fs); + const trees = [TREE({ ref: commit2 }), WORKDIR(), STAGE()]; + let unmergedPaths = []; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + unmergedPaths = index2.unmergedPaths; + }); + const results = await _walk({ + fs, + cache, + dir, + gitdir, + trees, + map: async function(path2, [head, workdir, index2]) { + const staged = !await modified(workdir, index2); + const unmerged = unmergedPaths.includes(path2); + const unmodified = !await modified(index2, head); + if (staged || unmerged) { + return head ? { + path: path2, + mode: await head.mode(), + oid: await head.oid(), + type: await head.type(), + content: await head.content() + } : void 0; + } + if (unmodified) return false; + else throw new IndexResetError(path2); + } + }); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + for (const entry of results) { + if (entry === false) continue; + if (!entry) { + await fs.rmdir(`${dir}/${entry.path}`, { recursive: true }); + index2.delete({ filepath: entry.path }); + continue; + } + if (entry.type === "blob") { + const content = new TextDecoder().decode(entry.content); + await fs.write(`${dir}/${entry.path}`, content, { mode: entry.mode }); + index2.insert({ + filepath: entry.path, + oid: entry.oid, + stage: 0 + }); + } + } + }); + } catch (err) { + err.caller = "git.abortMerge"; + throw err; + } +} +var GitIgnoreManager = class { + static async isIgnored({ fs, dir, gitdir = join(dir, ".git"), filepath }) { + if (basename(filepath) === ".git") return true; + if (filepath === ".") return false; + let excludes = ""; + const excludesFile = join(gitdir, "info", "exclude"); + if (await fs.exists(excludesFile)) { + excludes = await fs.read(excludesFile, "utf8"); + } + const pairs = [ + { + gitignore: join(dir, ".gitignore"), + filepath + } + ]; + const pieces = filepath.split("/").filter(Boolean); + for (let i = 1; i < pieces.length; i++) { + const folder = pieces.slice(0, i).join("/"); + const file = pieces.slice(i).join("/"); + pairs.push({ + gitignore: join(dir, folder, ".gitignore"), + filepath: file + }); + } + let ignoredStatus = false; + for (const p of pairs) { + let file; + try { + file = await fs.read(p.gitignore, "utf8"); + } catch (err) { + if (err.code === "NOENT") continue; + } + const ign = (0, import_ignore.default)().add(excludes); + ign.add(file); + const parentdir = dirname(p.filepath); + if (parentdir !== "." && ign.ignores(parentdir)) return true; + if (ignoredStatus) { + ignoredStatus = !ign.test(p.filepath).unignored; + } else { + ignoredStatus = ign.test(p.filepath).ignored; + } + } + return ignoredStatus; + } +}; +async function writeObjectLoose({ fs, gitdir, object, format, oid }) { + if (format !== "deflated") { + throw new InternalError( + "GitObjectStoreLoose expects objects to write to be in deflated format" + ); + } + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + const filepath = `${gitdir}/${source}`; + if (!await fs.exists(filepath)) await fs.write(filepath, object); +} +var supportsCompressionStream = null; +async function deflate(buffer2) { + if (supportsCompressionStream === null) { + supportsCompressionStream = testCompressionStream(); + } + return supportsCompressionStream ? browserDeflate(buffer2) : import_pako.default.deflate(buffer2); +} +async function browserDeflate(buffer2) { + const cs = new CompressionStream("deflate"); + const c = new Blob([buffer2]).stream().pipeThrough(cs); + return new Uint8Array(await new Response(c).arrayBuffer()); +} +function testCompressionStream() { + try { + const cs = new CompressionStream("deflate"); + cs.writable.close(); + const stream = new Blob([]).stream(); + stream.cancel(); + return true; + } catch (_) { + return false; + } +} +async function _writeObject({ + fs, + gitdir, + type, + object, + format = "content", + oid = void 0, + dryRun = false +}) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = await shasum(object); + object = Buffer.from(await deflate(object)); + } + if (!dryRun) { + await writeObjectLoose({ fs, gitdir, object, format: "deflated", oid }); + } + return oid; +} +function posixifyPathBuffer(buffer2) { + let idx; + while (~(idx = buffer2.indexOf(92))) buffer2[idx] = 47; + return buffer2; +} +async function add({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {}, + force = false, + parallel = true +}) { + try { + assertParameter("fs", _fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + await GitIndexManager.acquire({ fs, gitdir, cache }, async (index2) => { + return addToIndex({ + dir, + gitdir, + fs, + filepath, + index: index2, + force, + parallel + }); + }); + } catch (err) { + err.caller = "git.add"; + throw err; + } +} +async function addToIndex({ + dir, + gitdir, + fs, + filepath, + index: index2, + force, + parallel +}) { + filepath = Array.isArray(filepath) ? filepath : [filepath]; + const promises = filepath.map(async (currentFilepath) => { + if (!force) { + const ignored = await GitIgnoreManager.isIgnored({ + fs, + dir, + gitdir, + filepath: currentFilepath + }); + if (ignored) return; + } + const stats = await fs.lstat(join(dir, currentFilepath)); + if (!stats) throw new NotFoundError(currentFilepath); + if (stats.isDirectory()) { + const children2 = await fs.readdir(join(dir, currentFilepath)); + if (parallel) { + const promises2 = children2.map( + (child) => addToIndex({ + dir, + gitdir, + fs, + filepath: [join(currentFilepath, child)], + index: index2, + force, + parallel + }) + ); + await Promise.all(promises2); + } else { + for (const child of children2) { + await addToIndex({ + dir, + gitdir, + fs, + filepath: [join(currentFilepath, child)], + index: index2, + force, + parallel + }); + } + } + } else { + const config = await GitConfigManager.get({ fs, gitdir }); + const autocrlf = await config.get("core.autocrlf"); + const object = stats.isSymbolicLink() ? await fs.readlink(join(dir, currentFilepath)).then(posixifyPathBuffer) : await fs.read(join(dir, currentFilepath), { autocrlf }); + if (object === null) throw new NotFoundError(currentFilepath); + const oid = await _writeObject({ fs, gitdir, type: "blob", object }); + index2.insert({ filepath: currentFilepath, stats, oid }); + } + }); + const settledPromises = await Promise.allSettled(promises); + const rejectedPromises = settledPromises.filter((settle) => settle.status === "rejected").map((settle) => settle.reason); + if (rejectedPromises.length > 1) { + throw new MultipleGitError(rejectedPromises); + } + if (rejectedPromises.length === 1) { + throw rejectedPromises[0]; + } + const fulfilledPromises = settledPromises.filter((settle) => settle.status === "fulfilled" && settle.value).map((settle) => settle.value); + return fulfilledPromises; +} +async function _getConfig({ fs, gitdir, path: path2 }) { + const config = await GitConfigManager.get({ fs, gitdir }); + return config.get(path2); +} +function assignDefined(target, ...sources) { + for (const source of sources) { + if (source) { + for (const key2 of Object.keys(source)) { + const val = source[key2]; + if (val !== void 0) { + target[key2] = val; + } + } + } + } + return target; +} +async function normalizeAuthorObject({ fs, gitdir, author, commit: commit2 }) { + const timestamp = Math.floor(Date.now() / 1e3); + const defaultAuthor = { + name: await _getConfig({ fs, gitdir, path: "user.name" }), + email: await _getConfig({ fs, gitdir, path: "user.email" }) || "", + // author.email is allowed to be empty string + timestamp, + timezoneOffset: new Date(timestamp * 1e3).getTimezoneOffset() + }; + const normalizedAuthor = assignDefined( + {}, + defaultAuthor, + commit2 ? commit2.author : void 0, + author + ); + if (normalizedAuthor.name === void 0) { + return void 0; + } + return normalizedAuthor; +} +async function normalizeCommitterObject({ + fs, + gitdir, + author, + committer, + commit: commit2 +}) { + const timestamp = Math.floor(Date.now() / 1e3); + const defaultCommitter = { + name: await _getConfig({ fs, gitdir, path: "user.name" }), + email: await _getConfig({ fs, gitdir, path: "user.email" }) || "", + // committer.email is allowed to be empty string + timestamp, + timezoneOffset: new Date(timestamp * 1e3).getTimezoneOffset() + }; + const normalizedCommitter = assignDefined( + {}, + defaultCommitter, + commit2 ? commit2.committer : void 0, + author, + committer + ); + if (normalizedCommitter.name === void 0) { + return void 0; + } + return normalizedCommitter; +} +async function resolveCommit({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveCommit({ fs, cache, gitdir, oid }); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + return { commit: GitCommit.from(object), oid }; +} +async function _readCommit({ fs, cache, gitdir, oid }) { + const { commit: commit2, oid: commitOid } = await resolveCommit({ + fs, + cache, + gitdir, + oid + }); + const result = { + oid: commitOid, + commit: commit2.parse(), + payload: commit2.withoutSignature() + }; + return result; +} +async function _commit({ + fs, + cache, + onSign, + gitdir, + message, + author: _author, + committer: _committer, + signingKey, + amend = false, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree +}) { + let initialCommit = false; + if (!ref) { + ref = await GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + } + let refOid, refCommit; + try { + refOid = await GitRefManager.resolve({ + fs, + gitdir, + ref + }); + refCommit = await _readCommit({ fs, gitdir, oid: refOid, cache: {} }); + } catch (e) { + initialCommit = true; + } + if (amend && initialCommit) { + throw new NoCommitError(ref); + } + const author = !amend ? await normalizeAuthorObject({ fs, gitdir, author: _author }) : await normalizeAuthorObject({ + fs, + gitdir, + author: _author, + commit: refCommit.commit + }); + if (!author) throw new MissingNameError("author"); + const committer = !amend ? await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }) : await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer, + commit: refCommit.commit + }); + if (!committer) throw new MissingNameError("committer"); + return GitIndexManager.acquire( + { fs, gitdir, cache, allowUnmerged: false }, + async function(index2) { + const inodes = flatFileListToDirectoryStructure(index2.entries); + const inode = inodes.get("."); + if (!tree) { + tree = await constructTree({ fs, gitdir, inode, dryRun }); + } + if (!parent) { + if (!amend) { + parent = refOid ? [refOid] : []; + } else { + parent = refCommit.commit.parent; + } + } else { + parent = await Promise.all( + parent.map((p) => { + return GitRefManager.resolve({ fs, gitdir, ref: p }); + }) + ); + } + if (!message) { + if (!amend) { + throw new MissingParameterError("message"); + } else { + message = refCommit.commit.message; + } + } + let comm = GitCommit.from({ + tree, + parent, + author, + committer, + message + }); + if (signingKey) { + comm = await GitCommit.sign(comm, onSign, signingKey); + } + const oid = await _writeObject({ + fs, + gitdir, + type: "commit", + object: comm.toObject(), + dryRun + }); + if (!noUpdateBranch && !dryRun) { + await GitRefManager.writeRef({ + fs, + gitdir, + ref, + value: oid + }); + } + return oid; + } + ); +} +async function constructTree({ fs, gitdir, inode, dryRun }) { + const children2 = inode.children; + for (const inode2 of children2) { + if (inode2.type === "tree") { + inode2.metadata.mode = "040000"; + inode2.metadata.oid = await constructTree({ fs, gitdir, inode: inode2, dryRun }); + } + } + const entries = children2.map((inode2) => ({ + mode: inode2.metadata.mode, + path: inode2.basename, + oid: inode2.metadata.oid, + type: inode2.type + })); + const tree = GitTree.from(entries); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object: tree.toObject(), + dryRun + }); + return oid; +} +async function resolveFilepath({ fs, cache, gitdir, oid, filepath }) { + if (filepath.startsWith("/")) { + throw new InvalidFilepathError("leading-slash"); + } else if (filepath.endsWith("/")) { + throw new InvalidFilepathError("trailing-slash"); + } + const _oid = oid; + const result = await resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (filepath === "") { + oid = result.oid; + } else { + const pathArray = filepath.split("/"); + oid = await _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid: _oid, + filepath + }); + } + return oid; +} +async function _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath +}) { + const name = pathArray.shift(); + for (const entry of tree) { + if (entry.path === name) { + if (pathArray.length === 0) { + return entry.oid; + } else { + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type !== "tree") { + throw new ObjectTypeError(oid, type, "tree", filepath); + } + tree = GitTree.from(object); + return _resolveFilepath({ + fs, + cache, + gitdir, + tree, + pathArray, + oid, + filepath + }); + } + } + } + throw new NotFoundError(`file or directory found at "${oid}:${filepath}"`); +} +async function _readTree({ + fs, + cache, + gitdir, + oid, + filepath = void 0 +}) { + if (filepath !== void 0) { + oid = await resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const { tree, oid: treeOid } = await resolveTree({ fs, cache, gitdir, oid }); + const result = { + oid: treeOid, + tree: tree.entries() + }; + return result; +} +async function _writeTree({ fs, gitdir, tree }) { + const object = GitTree.from(tree).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object, + format: "content" + }); + return oid; +} +async function _addNote({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey +}) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = await _readTree({ + fs, + cache, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + if (force) { + tree = tree.filter((entry) => entry.path !== oid); + } else { + for (const entry of tree) { + if (entry.path === oid) { + throw new AlreadyExistsError("note", oid); + } + } + } + if (typeof note === "string") { + note = Buffer.from(note, "utf8"); + } + const noteOid = await _writeObject({ + fs, + gitdir, + type: "blob", + object: note, + format: "content" + }); + tree.push({ mode: "100644", path: oid, oid: noteOid, type: "blob" }); + const treeOid = await _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = await _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note added by 'isomorphic-git addNote' +`, + author, + committer, + signingKey + }); + return commitOid; +} +async function addNote({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + note, + force, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("note", note); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) throw new MissingNameError("committer"); + return await _addNote({ + fs: new FileSystem(fs), + cache, + onSign, + gitdir, + ref, + oid, + note, + force, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.addNote"; + throw err; + } +} +async function _addRemote({ fs, gitdir, remote, url, force }) { + if (remote !== import_clean_git_ref.default.clean(remote)) { + throw new InvalidRefNameError(remote, import_clean_git_ref.default.clean(remote)); + } + const config = await GitConfigManager.get({ fs, gitdir }); + if (!force) { + const remoteNames = await config.getSubsections("remote"); + if (remoteNames.includes(remote)) { + if (url !== await config.get(`remote.${remote}.url`)) { + throw new AlreadyExistsError("remote", remote); + } + } + } + await config.set(`remote.${remote}.url`, url); + await config.set( + `remote.${remote}.fetch`, + `+refs/heads/*:refs/remotes/${remote}/*` + ); + await GitConfigManager.save({ fs, gitdir, config }); +} +async function addRemote({ + fs, + dir, + gitdir = join(dir, ".git"), + remote, + url, + force = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("remote", remote); + assertParameter("url", url); + return await _addRemote({ + fs: new FileSystem(fs), + gitdir, + remote, + url, + force + }); + } catch (err) { + err.caller = "git.addRemote"; + throw err; + } +} +async function _annotatedTag({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false +}) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("tag", ref); + } + const oid = await GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + const { type } = await _readObject({ fs, cache, gitdir, oid }); + let tagObject = GitAnnotatedTag.from({ + object: oid, + type, + tag: ref.replace("refs/tags/", ""), + tagger, + message, + gpgsig + }); + if (signingKey) { + tagObject = await GitAnnotatedTag.sign(tagObject, onSign, signingKey); + } + const value = await _writeObject({ + fs, + gitdir, + type: "tag", + object: tagObject.toObject() + }); + await GitRefManager.writeRef({ fs, gitdir, ref, value }); +} +async function annotatedTag({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref, + tagger: _tagger, + message = ref, + gpgsig, + object, + signingKey, + force = false, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const tagger = await normalizeAuthorObject({ fs, gitdir, author: _tagger }); + if (!tagger) throw new MissingNameError("tagger"); + return await _annotatedTag({ + fs, + cache, + onSign, + gitdir, + ref, + tagger, + message, + gpgsig, + object, + signingKey, + force + }); + } catch (err) { + err.caller = "git.annotatedTag"; + throw err; + } +} +async function _branch({ + fs, + gitdir, + ref, + object, + checkout: checkout2 = false, + force = false +}) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + const fullref = `refs/heads/${ref}`; + if (!force) { + const exist = await GitRefManager.exists({ fs, gitdir, ref: fullref }); + if (exist) { + throw new AlreadyExistsError("branch", ref, false); + } + } + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: object || "HEAD" }); + } catch (e) { + } + if (oid) { + await GitRefManager.writeRef({ fs, gitdir, ref: fullref, value: oid }); + } + if (checkout2) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullref + }); + } +} +async function branch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + checkout: checkout2 = false, + force = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _branch({ + fs: new FileSystem(fs), + gitdir, + ref, + object, + checkout: checkout2, + force + }); + } catch (err) { + err.caller = "git.branch"; + throw err; + } +} +var worthWalking = (filepath, root2) => { + if (filepath === "." || root2 == null || root2.length === 0 || root2 === ".") { + return true; + } + if (root2.length >= filepath.length) { + return root2.startsWith(filepath); + } else { + return filepath.startsWith(root2); + } +}; +async function _checkout({ + fs, + cache, + onProgress, + onPostCheckout, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track = true +}) { + let oldOid; + if (onPostCheckout) { + try { + oldOid = await GitRefManager.resolve({ fs, gitdir, ref: "HEAD" }); + } catch (err) { + oldOid = "0000000000000000000000000000000000000000"; + } + } + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (err) { + if (ref === "HEAD") throw err; + const remoteRef = `${remote}/${ref}`; + oid = await GitRefManager.resolve({ + fs, + gitdir, + ref: remoteRef + }); + if (track) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.set(`branch.${ref}.remote`, remote); + await config.set(`branch.${ref}.merge`, `refs/heads/${ref}`); + await GitConfigManager.save({ fs, gitdir, config }); + } + await GitRefManager.writeRef({ + fs, + gitdir, + ref: `refs/heads/${ref}`, + value: oid + }); + } + if (!noCheckout) { + let ops; + try { + ops = await analyze({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths + }); + } catch (err) { + if (err instanceof NotFoundError && err.data.what === oid) { + throw new CommitNotFetchedError(ref, oid); + } else { + throw err; + } + } + const conflicts2 = ops.filter(([method2]) => method2 === "conflict").map(([method2, fullpath]) => fullpath); + if (conflicts2.length > 0) { + throw new CheckoutConflictError(conflicts2); + } + const errors = ops.filter(([method2]) => method2 === "error").map(([method2, fullpath]) => fullpath); + if (errors.length > 0) { + throw new InternalError(errors.join(", ")); + } + if (dryRun) { + if (onPostCheckout) { + await onPostCheckout({ + previousHead: oldOid, + newHead: oid, + type: filepaths != null && filepaths.length > 0 ? "file" : "branch" + }); + } + return; + } + let count = 0; + const total = ops.length; + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + await Promise.all( + ops.filter( + ([method2]) => method2 === "delete" || method2 === "delete-index" + ).map(async function([method2, fullpath]) { + const filepath = `${dir}/${fullpath}`; + if (method2 === "delete") { + await fs.rm(filepath); + } + index2.delete({ filepath: fullpath }); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + }) + ); + }); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + for (const [method2, fullpath] of ops) { + if (method2 === "rmdir" || method2 === "rmdir-index") { + const filepath = `${dir}/${fullpath}`; + try { + if (method2 === "rmdir-index") { + index2.delete({ filepath: fullpath }); + } + await fs.rmdir(filepath); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + if (e.code === "ENOTEMPTY") { + console.log( + `Did not delete ${fullpath} because directory is not empty` + ); + } else { + throw e; + } + } + } + } + }); + await Promise.all( + ops.filter(([method2]) => method2 === "mkdir" || method2 === "mkdir-index").map(async function([_, fullpath]) { + const filepath = `${dir}/${fullpath}`; + await fs.mkdir(filepath); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + }) + ); + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + await Promise.all( + ops.filter( + ([method2]) => method2 === "create" || method2 === "create-index" || method2 === "update" || method2 === "mkdir-index" + ).map(async function([method2, fullpath, oid2, mode, chmod]) { + const filepath = `${dir}/${fullpath}`; + try { + if (method2 !== "create-index" && method2 !== "mkdir-index") { + const { object } = await _readObject({ fs, cache, gitdir, oid: oid2 }); + if (chmod) { + await fs.rm(filepath); + } + if (mode === 33188) { + await fs.write(filepath, object); + } else if (mode === 33261) { + await fs.write(filepath, object, { mode: 511 }); + } else if (mode === 40960) { + await fs.writelink(filepath, object); + } else { + throw new InternalError( + `Invalid mode 0o${mode.toString(8)} detected in blob ${oid2}` + ); + } + } + const stats = await fs.lstat(filepath); + if (mode === 33261) { + stats.mode = 493; + } + if (method2 === "mkdir-index") { + stats.mode = 57344; + } + index2.insert({ + filepath: fullpath, + stats, + oid: oid2 + }); + if (onProgress) { + await onProgress({ + phase: "Updating workdir", + loaded: ++count, + total + }); + } + } catch (e) { + console.log(e); + } + }) + ); + }); + if (onPostCheckout) { + await onPostCheckout({ + previousHead: oldOid, + newHead: oid, + type: filepaths != null && filepaths.length > 0 ? "file" : "branch" + }); + } + } + if (!noUpdateHead) { + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + if (fullRef.startsWith("refs/heads")) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullRef + }); + } else { + await GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value: oid }); + } + } +} +async function analyze({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + force, + filepaths +}) { + let count = 0; + return _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: async function(fullpath, [commit2, workdir, stage]) { + if (fullpath === ".") return; + if (filepaths && !filepaths.some((base) => worthWalking(fullpath, base))) { + return null; + } + if (onProgress) { + await onProgress({ phase: "Analyzing workdir", loaded: ++count }); + } + const key2 = [!!stage, !!commit2, !!workdir].map(Number).join(""); + switch (key2) { + case "000": + return; + case "001": + if (force && filepaths && filepaths.includes(fullpath)) { + return ["delete", fullpath]; + } + return; + case "010": { + switch (await commit2.type()) { + case "tree": { + return ["mkdir", fullpath]; + } + case "blob": { + return [ + "create", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + case "commit": { + return [ + "mkdir-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + default: { + return [ + "error", + `new entry Unhandled type ${await commit2.type()}` + ]; + } + } + } + case "011": { + switch (`${await commit2.type()}-${await workdir.type()}`) { + case "tree-tree": { + return; + } + case "tree-blob": + case "blob-tree": { + return ["conflict", fullpath]; + } + case "blob-blob": { + if (await commit2.oid() !== await workdir.oid()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await workdir.mode() + ]; + } else { + return ["conflict", fullpath]; + } + } else { + if (await commit2.mode() !== await workdir.mode()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + true + ]; + } else { + return ["conflict", fullpath]; + } + } else { + return [ + "create-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + } + } + case "commit-tree": { + return; + } + case "commit-blob": { + return ["conflict", fullpath]; + } + default: { + return ["error", `new entry Unhandled type ${commit2.type}`]; + } + } + } + case "100": { + return ["delete-index", fullpath]; + } + case "101": { + switch (await stage.type()) { + case "tree": { + return ["rmdir", fullpath]; + } + case "blob": { + if (await stage.oid() !== await workdir.oid()) { + if (force) { + return ["delete", fullpath]; + } else { + return ["conflict", fullpath]; + } + } else { + return ["delete", fullpath]; + } + } + case "commit": { + return ["rmdir-index", fullpath]; + } + default: { + return [ + "error", + `delete entry Unhandled type ${await stage.type()}` + ]; + } + } + } + case "110": + case "111": { + switch (`${await stage.type()}-${await commit2.type()}`) { + case "tree-tree": { + return; + } + case "blob-blob": { + if (await stage.oid() === await commit2.oid() && await stage.mode() === await commit2.mode() && !force) { + return; + } + if (workdir) { + if (await workdir.oid() !== await stage.oid() && await workdir.oid() !== await commit2.oid()) { + if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await workdir.mode() + ]; + } else { + return ["conflict", fullpath]; + } + } + } else if (force) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + await commit2.mode() !== await stage.mode() + ]; + } + if (await commit2.mode() !== await stage.mode()) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + true + ]; + } + if (await commit2.oid() !== await stage.oid()) { + return [ + "update", + fullpath, + await commit2.oid(), + await commit2.mode(), + false + ]; + } else { + return; + } + } + case "tree-blob": { + return ["update-dir-to-blob", fullpath, await commit2.oid()]; + } + case "blob-tree": { + return ["update-blob-to-tree", fullpath]; + } + case "commit-commit": { + return [ + "mkdir-index", + fullpath, + await commit2.oid(), + await commit2.mode() + ]; + } + default: { + return [ + "error", + `update entry Unhandled type ${await stage.type()}-${await commit2.type()}` + ]; + } + } + } + } + }, + // Modify the default flat mapping + reduce: async function(parent, children2) { + children2 = flat(children2); + if (!parent) { + return children2; + } else if (parent && parent[0] === "rmdir") { + children2.push(parent); + return children2; + } else { + children2.unshift(parent); + return children2; + } + } + }); +} +async function checkout({ + fs, + onProgress, + onPostCheckout, + dir, + gitdir = join(dir, ".git"), + remote = "origin", + ref: _ref, + filepaths, + noCheckout = false, + noUpdateHead = _ref === void 0, + dryRun = false, + force = false, + track = true, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + const ref = _ref || "HEAD"; + return await _checkout({ + fs: new FileSystem(fs), + cache, + onProgress, + onPostCheckout, + dir, + gitdir, + remote, + ref, + filepaths, + noCheckout, + noUpdateHead, + dryRun, + force, + track + }); + } catch (err) { + err.caller = "git.checkout"; + throw err; + } +} +var abbreviateRx = new RegExp("^refs/(heads/|tags/|remotes/)?(.*)"); +function abbreviateRef(ref) { + const match = abbreviateRx.exec(ref); + if (match) { + if (match[1] === "remotes/" && ref.endsWith("/HEAD")) { + return match[2].slice(0, -5); + } else { + return match[2]; + } + } + return ref; +} +async function _currentBranch({ + fs, + gitdir, + fullname = false, + test = false +}) { + const ref = await GitRefManager.resolve({ + fs, + gitdir, + ref: "HEAD", + depth: 2 + }); + if (test) { + try { + await GitRefManager.resolve({ fs, gitdir, ref }); + } catch (_) { + return; + } + } + if (!ref.startsWith("refs/")) return; + return fullname ? ref : abbreviateRef(ref); +} +function translateSSHtoHTTP(url) { + url = url.replace(/^git@([^:]+):/, "https://$1/"); + url = url.replace(/^ssh:\/\//, "https://"); + return url; +} +function calculateBasicAuthHeader({ username = "", password = "" }) { + return `Basic ${Buffer.from(`${username}:${password}`).toString("base64")}`; +} +async function forAwait(iterable, cb) { + const iter = getIterator(iterable); + while (true) { + const { value, done } = await iter.next(); + if (value) await cb(value); + if (done) break; + } + if (iter.return) iter.return(); +} +async function collect(iterable) { + let size = 0; + const buffers = []; + await forAwait(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; +} +function extractAuthFromUrl(url) { + let userpass = url.match(/^https?:\/\/([^/]+)@/); + if (userpass == null) return { url, auth: {} }; + userpass = userpass[1]; + const [username, password] = userpass.split(":"); + url = url.replace(`${userpass}@`, ""); + return { url, auth: { username, password } }; +} +function padHex(b, n) { + const s = n.toString(16); + return "0".repeat(b - s.length) + s; +} +var GitPktLine = class { + static flush() { + return Buffer.from("0000", "utf8"); + } + static delim() { + return Buffer.from("0001", "utf8"); + } + static encode(line) { + if (typeof line === "string") { + line = Buffer.from(line); + } + const length = line.length + 4; + const hexlength = padHex(4, length); + return Buffer.concat([Buffer.from(hexlength, "utf8"), line]); + } + static streamReader(stream) { + const reader = new StreamReader(stream); + return async function read() { + try { + let length = await reader.read(4); + if (length == null) return true; + length = parseInt(length.toString("utf8"), 16); + if (length === 0) return null; + if (length === 1) return null; + const buffer2 = await reader.read(length - 4); + if (buffer2 == null) return true; + return buffer2; + } catch (err) { + stream.error = err; + return true; + } + }; + } +}; +async function parseCapabilitiesV2(read) { + const capabilities2 = {}; + let line; + while (true) { + line = await read(); + if (line === true) break; + if (line === null) continue; + line = line.toString("utf8").replace(/\n$/, ""); + const i = line.indexOf("="); + if (i > -1) { + const key2 = line.slice(0, i); + const value = line.slice(i + 1); + capabilities2[key2] = value; + } else { + capabilities2[line] = true; + } + } + return { protocolVersion: 2, capabilities2 }; +} +async function parseRefsAdResponse(stream, { service }) { + const capabilities = /* @__PURE__ */ new Set(); + const refs = /* @__PURE__ */ new Map(); + const symrefs = /* @__PURE__ */ new Map(); + const read = GitPktLine.streamReader(stream); + let lineOne = await read(); + while (lineOne === null) lineOne = await read(); + if (lineOne === true) throw new EmptyServerResponseError(); + if (lineOne.includes("version 2")) { + return parseCapabilitiesV2(read); + } + if (lineOne.toString("utf8").replace(/\n$/, "") !== `# service=${service}`) { + throw new ParseError(`# service=${service}\\n`, lineOne.toString("utf8")); + } + let lineTwo = await read(); + while (lineTwo === null) lineTwo = await read(); + if (lineTwo === true) return { capabilities, refs, symrefs }; + lineTwo = lineTwo.toString("utf8"); + if (lineTwo.includes("version 2")) { + return parseCapabilitiesV2(read); + } + const [firstRef, capabilitiesLine] = splitAndAssert(lineTwo, "\0", "\\x00"); + capabilitiesLine.split(" ").map((x) => capabilities.add(x)); + if (firstRef !== "0000000000000000000000000000000000000000 capabilities^{}") { + const [ref, name] = splitAndAssert(firstRef, " ", " "); + refs.set(name, ref); + while (true) { + const line = await read(); + if (line === true) break; + if (line !== null) { + const [ref2, name2] = splitAndAssert(line.toString("utf8"), " ", " "); + refs.set(name2, ref2); + } + } + } + for (const cap of capabilities) { + if (cap.startsWith("symref=")) { + const m = cap.match(/symref=([^:]+):(.*)/); + if (m.length === 3) { + symrefs.set(m[1], m[2]); + } + } + } + return { protocolVersion: 1, capabilities, refs, symrefs }; +} +function splitAndAssert(line, sep2, expected) { + const split = line.trim().split(sep2); + if (split.length !== 2) { + throw new ParseError( + `Two strings separated by '${expected}'`, + line.toString("utf8") + ); + } + return split; +} +var corsProxify = (corsProxy, url) => corsProxy.endsWith("?") ? `${corsProxy}${url}` : `${corsProxy}/${url.replace(/^https?:\/\//, "")}`; +var updateHeaders = (headers, auth) => { + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (auth.headers) { + Object.assign(headers, auth.headers); + } +}; +var stringifyBody = async (res) => { + try { + const data = Buffer.from(await collect(res.body)); + const response = data.toString("utf8"); + const preview = response.length < 256 ? response : response.slice(0, 256) + "..."; + return { preview, response, data }; + } catch (e) { + return {}; + } +}; +var GitRemoteHTTP = class { + static async capabilities() { + return ["discover", "connect"]; + } + /** + * @param {Object} args + * @param {HttpClient} args.http + * @param {ProgressCallback} [args.onProgress] + * @param {AuthCallback} [args.onAuth] + * @param {AuthFailureCallback} [args.onAuthFailure] + * @param {AuthSuccessCallback} [args.onAuthSuccess] + * @param {string} [args.corsProxy] + * @param {string} args.service + * @param {string} args.url + * @param {Object} args.headers + * @param {1 | 2} args.protocolVersion - Git Protocol Version + */ + static async discover({ + http, + onProgress, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service, + url: _origUrl, + headers, + protocolVersion + }) { + let { url, auth } = extractAuthFromUrl(_origUrl); + const proxifiedURL = corsProxy ? corsProxify(corsProxy, url) : url; + if (auth.username || auth.password) { + headers.Authorization = calculateBasicAuthHeader(auth); + } + if (protocolVersion === 2) { + headers["Git-Protocol"] = "version=2"; + } + let res; + let tryAgain; + let providedAuthBefore = false; + do { + res = await http.request({ + onProgress, + method: "GET", + url: `${proxifiedURL}/info/refs?service=${service}`, + headers + }); + tryAgain = false; + if (res.statusCode === 401 || res.statusCode === 203) { + const getAuth = providedAuthBefore ? onAuthFailure : onAuth; + if (getAuth) { + auth = await getAuth(url, { + ...auth, + headers: { ...headers } + }); + if (auth && auth.cancel) { + throw new UserCanceledError(); + } else if (auth) { + updateHeaders(headers, auth); + providedAuthBefore = true; + tryAgain = true; + } + } + } else if (res.statusCode === 200 && providedAuthBefore && onAuthSuccess) { + await onAuthSuccess(url, auth); + } + } while (tryAgain); + if (res.statusCode !== 200) { + const { response } = await stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + if (res.headers["content-type"] === `application/x-${service}-advertisement`) { + const remoteHTTP = await parseRefsAdResponse(res.body, { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } else { + const { preview, response, data } = await stringifyBody(res); + try { + const remoteHTTP = await parseRefsAdResponse([data], { service }); + remoteHTTP.auth = auth; + return remoteHTTP; + } catch (e) { + throw new SmartHttpError(preview, response); + } + } + } + /** + * @param {Object} args + * @param {HttpClient} args.http + * @param {ProgressCallback} [args.onProgress] + * @param {string} [args.corsProxy] + * @param {string} args.service + * @param {string} args.url + * @param {Object} [args.headers] + * @param {any} args.body + * @param {any} args.auth + */ + static async connect({ + http, + onProgress, + corsProxy, + service, + url, + auth, + body, + headers + }) { + const urlAuth = extractAuthFromUrl(url); + if (urlAuth) url = urlAuth.url; + if (corsProxy) url = corsProxify(corsProxy, url); + headers["content-type"] = `application/x-${service}-request`; + headers.accept = `application/x-${service}-result`; + updateHeaders(headers, auth); + const res = await http.request({ + onProgress, + method: "POST", + url: `${url}/${service}`, + body, + headers + }); + if (res.statusCode !== 200) { + const { response } = stringifyBody(res); + throw new HttpError(res.statusCode, res.statusMessage, response); + } + return res; + } +}; +function parseRemoteUrl({ url }) { + if (url.startsWith("git@")) { + return { + transport: "ssh", + address: url + }; + } + const matches = url.match(/(\w+)(:\/\/|::)(.*)/); + if (matches === null) return; + if (matches[2] === "://") { + return { + transport: matches[1], + address: matches[0] + }; + } + if (matches[2] === "::") { + return { + transport: matches[1], + address: matches[3] + }; + } +} +var GitRemoteManager = class { + static getRemoteHelperFor({ url }) { + const remoteHelpers = /* @__PURE__ */ new Map(); + remoteHelpers.set("http", GitRemoteHTTP); + remoteHelpers.set("https", GitRemoteHTTP); + const parts = parseRemoteUrl({ url }); + if (!parts) { + throw new UrlParseError(url); + } + if (remoteHelpers.has(parts.transport)) { + return remoteHelpers.get(parts.transport); + } + throw new UnknownTransportError( + url, + parts.transport, + parts.transport === "ssh" ? translateSSHtoHTTP(url) : void 0 + ); + } +}; +var lock$2 = null; +var GitShallowManager = class { + static async read({ fs, gitdir }) { + if (lock$2 === null) lock$2 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + const oids = /* @__PURE__ */ new Set(); + await lock$2.acquire(filepath, async function() { + const text2 = await fs.read(filepath, { encoding: "utf8" }); + if (text2 === null) return oids; + if (text2.trim() === "") return oids; + text2.trim().split("\n").map((oid) => oids.add(oid)); + }); + return oids; + } + static async write({ fs, gitdir, oids }) { + if (lock$2 === null) lock$2 = new import_async_lock.default(); + const filepath = join(gitdir, "shallow"); + if (oids.size > 0) { + const text2 = [...oids].join("\n") + "\n"; + await lock$2.acquire(filepath, async function() { + await fs.write(filepath, text2, { + encoding: "utf8" + }); + }); + } else { + await lock$2.acquire(filepath, async function() { + await fs.rm(filepath); + }); + } + } +}; +async function hasObjectLoose({ fs, gitdir, oid }) { + const source = `objects/${oid.slice(0, 2)}/${oid.slice(2)}`; + return fs.exists(`${gitdir}/${source}`); +} +async function hasObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta +}) { + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) throw new InternalError(p.error); + if (p.offsets.has(oid)) { + return true; + } + } + return false; +} +async function hasObject({ + fs, + cache, + gitdir, + oid, + format = "content" +}) { + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + let result = await hasObjectLoose({ fs, gitdir, oid }); + if (!result) { + result = await hasObjectPacked({ + fs, + cache, + gitdir, + oid, + getExternalRefDelta + }); + } + return result; +} +function emptyPackfile(pack) { + const pheader = "5041434b"; + const version2 = "00000002"; + const obCount = "00000000"; + const header = pheader + version2 + obCount; + return pack.slice(0, 12).toString("hex") === header; +} +function filterCapabilities(server, client) { + const serverNames = server.map((cap) => cap.split("=", 1)[0]); + return client.filter((cap) => { + const name = cap.split("=", 1)[0]; + return serverNames.includes(name); + }); +} +var pkg = { + name: "isomorphic-git", + version: "1.27.1", + agent: "git/isomorphic-git@1.27.1" +}; +var FIFO = class { + constructor() { + this._queue = []; + } + write(chunk) { + if (this._ended) { + throw Error("You cannot write to a FIFO that has already been ended!"); + } + if (this._waiting) { + const resolve2 = this._waiting; + this._waiting = null; + resolve2({ value: chunk }); + } else { + this._queue.push(chunk); + } + } + end() { + this._ended = true; + if (this._waiting) { + const resolve2 = this._waiting; + this._waiting = null; + resolve2({ done: true }); + } + } + destroy(err) { + this.error = err; + this.end(); + } + async next() { + if (this._queue.length > 0) { + return { value: this._queue.shift() }; + } + if (this._ended) { + return { done: true }; + } + if (this._waiting) { + throw Error( + "You cannot call read until the previous call to read has returned!" + ); + } + return new Promise((resolve2) => { + this._waiting = resolve2; + }); + } +}; +function findSplit(str) { + const r = str.indexOf("\r"); + const n = str.indexOf("\n"); + if (r === -1 && n === -1) return -1; + if (r === -1) return n + 1; + if (n === -1) return r + 1; + if (n === r + 1) return n + 1; + return Math.min(r, n) + 1; +} +function splitLines(input) { + const output = new FIFO(); + let tmp = ""; + (async () => { + await forAwait(input, (chunk) => { + chunk = chunk.toString("utf8"); + tmp += chunk; + while (true) { + const i = findSplit(tmp); + if (i === -1) break; + output.write(tmp.slice(0, i)); + tmp = tmp.slice(i); + } + }); + if (tmp.length > 0) { + output.write(tmp); + } + output.end(); + })(); + return output; +} +var GitSideBand = class { + static demux(input) { + const read = GitPktLine.streamReader(input); + const packetlines = new FIFO(); + const packfile = new FIFO(); + const progress = new FIFO(); + const nextBit = async function() { + const line = await read(); + if (line === null) return nextBit(); + if (line === true) { + packetlines.end(); + progress.end(); + input.error ? packfile.destroy(input.error) : packfile.end(); + return; + } + switch (line[0]) { + case 1: { + packfile.write(line.slice(1)); + break; + } + case 2: { + progress.write(line.slice(1)); + break; + } + case 3: { + const error = line.slice(1); + progress.write(error); + packetlines.end(); + progress.end(); + packfile.destroy(new Error(error.toString("utf8"))); + return; + } + default: { + packetlines.write(line); + } + } + nextBit(); + }; + nextBit(); + return { + packetlines, + packfile, + progress + }; + } + // static mux ({ + // protocol, // 'side-band' or 'side-band-64k' + // packetlines, + // packfile, + // progress, + // error + // }) { + // const MAX_PACKET_LENGTH = protocol === 'side-band-64k' ? 999 : 65519 + // let output = new PassThrough() + // packetlines.on('data', data => { + // if (data === null) { + // output.write(GitPktLine.flush()) + // } else { + // output.write(GitPktLine.encode(data)) + // } + // }) + // let packfileWasEmpty = true + // let packfileEnded = false + // let progressEnded = false + // let errorEnded = false + // let goodbye = Buffer.concat([ + // GitPktLine.encode(Buffer.from('010A', 'hex')), + // GitPktLine.flush() + // ]) + // packfile + // .on('data', data => { + // packfileWasEmpty = false + // const buffers = splitBuffer(data, MAX_PACKET_LENGTH) + // for (const buffer of buffers) { + // output.write( + // GitPktLine.encode(Buffer.concat([Buffer.from('01', 'hex'), buffer])) + // ) + // } + // }) + // .on('end', () => { + // packfileEnded = true + // if (!packfileWasEmpty) output.write(goodbye) + // if (progressEnded && errorEnded) output.end() + // }) + // progress + // .on('data', data => { + // const buffers = splitBuffer(data, MAX_PACKET_LENGTH) + // for (const buffer of buffers) { + // output.write( + // GitPktLine.encode(Buffer.concat([Buffer.from('02', 'hex'), buffer])) + // ) + // } + // }) + // .on('end', () => { + // progressEnded = true + // if (packfileEnded && errorEnded) output.end() + // }) + // error + // .on('data', data => { + // const buffers = splitBuffer(data, MAX_PACKET_LENGTH) + // for (const buffer of buffers) { + // output.write( + // GitPktLine.encode(Buffer.concat([Buffer.from('03', 'hex'), buffer])) + // ) + // } + // }) + // .on('end', () => { + // errorEnded = true + // if (progressEnded && packfileEnded) output.end() + // }) + // return output + // } +}; +async function parseUploadPackResponse(stream) { + const { packetlines, packfile, progress } = GitSideBand.demux(stream); + const shallows = []; + const unshallows = []; + const acks = []; + let nak = false; + let done = false; + return new Promise((resolve2, reject) => { + forAwait(packetlines, (data) => { + const line = data.toString("utf8").trim(); + if (line.startsWith("shallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + shallows.push(oid); + } else if (line.startsWith("unshallow")) { + const oid = line.slice(-41).trim(); + if (oid.length !== 40) { + reject(new InvalidOidError(oid)); + } + unshallows.push(oid); + } else if (line.startsWith("ACK")) { + const [, oid, status2] = line.split(" "); + acks.push({ oid, status: status2 }); + if (!status2) done = true; + } else if (line.startsWith("NAK")) { + nak = true; + done = true; + } else { + done = true; + nak = true; + } + if (done) { + stream.error ? reject(stream.error) : resolve2({ shallows, unshallows, acks, nak, packfile, progress }); + } + }).finally(() => { + if (!done) { + stream.error ? reject(stream.error) : resolve2({ shallows, unshallows, acks, nak, packfile, progress }); + } + }); + }); +} +function writeUploadPackRequest({ + capabilities = [], + wants = [], + haves = [], + shallows = [], + depth = null, + since = null, + exclude = [] +}) { + const packstream = []; + wants = [...new Set(wants)]; + let firstLineCapabilities = ` ${capabilities.join(" ")}`; + for (const oid of wants) { + packstream.push(GitPktLine.encode(`want ${oid}${firstLineCapabilities} +`)); + firstLineCapabilities = ""; + } + for (const oid of shallows) { + packstream.push(GitPktLine.encode(`shallow ${oid} +`)); + } + if (depth !== null) { + packstream.push(GitPktLine.encode(`deepen ${depth} +`)); + } + if (since !== null) { + packstream.push( + GitPktLine.encode(`deepen-since ${Math.floor(since.valueOf() / 1e3)} +`) + ); + } + for (const oid of exclude) { + packstream.push(GitPktLine.encode(`deepen-not ${oid} +`)); + } + packstream.push(GitPktLine.flush()); + for (const oid of haves) { + packstream.push(GitPktLine.encode(`have ${oid} +`)); + } + packstream.push(GitPktLine.encode(`done +`)); + return packstream; +} +async function _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote: _remote, + url: _url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative: relative2 = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false +}) { + const ref = _ref || await _currentBranch({ fs, gitdir, test: true }); + const config = await GitConfigManager.get({ fs, gitdir }); + const remote = _remote || ref && await config.get(`branch.${ref}.remote`) || "origin"; + const url = _url || await config.get(`remote.${remote}.url`); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || ref && await config.get(`branch.${ref}.merge`) || _ref || "HEAD"; + if (corsProxy === void 0) { + corsProxy = await config.get("http.corsProxy"); + } + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remoteHTTP = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = remoteHTTP.auth; + const remoteRefs = remoteHTTP.refs; + if (remoteRefs.size === 0) { + return { + defaultBranch: null, + fetchHead: null, + fetchHeadDescription: null + }; + } + if (depth !== null && !remoteHTTP.capabilities.has("shallow")) { + throw new RemoteCapabilityError("shallow", "depth"); + } + if (since !== null && !remoteHTTP.capabilities.has("deepen-since")) { + throw new RemoteCapabilityError("deepen-since", "since"); + } + if (exclude.length > 0 && !remoteHTTP.capabilities.has("deepen-not")) { + throw new RemoteCapabilityError("deepen-not", "exclude"); + } + if (relative2 === true && !remoteHTTP.capabilities.has("deepen-relative")) { + throw new RemoteCapabilityError("deepen-relative", "relative"); + } + const { oid, fullref } = GitRefManager.resolveAgainstMap({ + ref: remoteRef, + map: remoteRefs + }); + for (const remoteRef2 of remoteRefs.keys()) { + if (remoteRef2 === fullref || remoteRef2 === "HEAD" || remoteRef2.startsWith("refs/heads/") || tags && remoteRef2.startsWith("refs/tags/")) { + continue; + } + remoteRefs.delete(remoteRef2); + } + const capabilities = filterCapabilities( + [...remoteHTTP.capabilities], + [ + "multi_ack_detailed", + "no-done", + "side-band-64k", + // Note: I removed 'thin-pack' option since our code doesn't "fatten" packfiles, + // which is necessary for compatibility with git. It was the cause of mysterious + // 'fatal: pack has [x] unresolved deltas' errors that plagued us for some time. + // isomorphic-git is perfectly happy with thin packfiles in .git/objects/pack but + // canonical git it turns out is NOT. + "ofs-delta", + `agent=${pkg.agent}` + ] + ); + if (relative2) capabilities.push("deepen-relative"); + const wants = singleBranch ? [oid] : remoteRefs.values(); + const haveRefs = singleBranch ? [ref] : await GitRefManager.listRefs({ + fs, + gitdir, + filepath: `refs` + }); + let haves = []; + for (let ref2 of haveRefs) { + try { + ref2 = await GitRefManager.expand({ fs, gitdir, ref: ref2 }); + const oid2 = await GitRefManager.resolve({ fs, gitdir, ref: ref2 }); + if (await hasObject({ fs, cache, gitdir, oid: oid2 })) { + haves.push(oid2); + } + } catch (err) { + } + } + haves = [...new Set(haves)]; + const oids = await GitShallowManager.read({ fs, gitdir }); + const shallows = remoteHTTP.capabilities.has("shallow") ? [...oids] : []; + const packstream = writeUploadPackRequest({ + capabilities, + wants, + haves, + shallows, + depth, + since, + exclude + }); + const packbuffer = Buffer.from(await collect(packstream)); + const raw = await GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-upload-pack", + url, + auth, + body: [packbuffer], + headers + }); + const response = await parseUploadPackResponse(raw.body); + if (raw.headers) { + response.headers = raw.headers; + } + for (const oid2 of response.shallows) { + if (!oids.has(oid2)) { + try { + const { object } = await _readObject({ fs, cache, gitdir, oid: oid2 }); + const commit2 = new GitCommit(object); + const hasParents = await Promise.all( + commit2.headers().parent.map((oid3) => hasObject({ fs, cache, gitdir, oid: oid3 })) + ); + const haveAllParents = hasParents.length === 0 || hasParents.every((has) => has); + if (!haveAllParents) { + oids.add(oid2); + } + } catch (err) { + oids.add(oid2); + } + } + } + for (const oid2 of response.unshallows) { + oids.delete(oid2); + } + await GitShallowManager.write({ fs, gitdir, oids }); + if (singleBranch) { + const refs = /* @__PURE__ */ new Map([[fullref, oid]]); + const symrefs = /* @__PURE__ */ new Map(); + let bail = 10; + let key2 = fullref; + while (bail--) { + const value = remoteHTTP.symrefs.get(key2); + if (value === void 0) break; + symrefs.set(key2, value); + key2 = value; + } + const realRef = remoteRefs.get(key2); + if (realRef) { + refs.set(key2, realRef); + } + const { pruned } = await GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs, + symrefs, + tags, + prune + }); + if (prune) { + response.pruned = pruned; + } + } else { + const { pruned } = await GitRefManager.updateRemoteRefs({ + fs, + gitdir, + remote, + refs: remoteRefs, + symrefs: remoteHTTP.symrefs, + tags, + prune, + pruneTags + }); + if (prune) { + response.pruned = pruned; + } + } + response.HEAD = remoteHTTP.symrefs.get("HEAD"); + if (response.HEAD === void 0) { + const { oid: oid2 } = GitRefManager.resolveAgainstMap({ + ref: "HEAD", + map: remoteRefs + }); + for (const [key2, value] of remoteRefs.entries()) { + if (key2 !== "HEAD" && value === oid2) { + response.HEAD = key2; + break; + } + } + } + const noun = fullref.startsWith("refs/tags") ? "tag" : "branch"; + response.FETCH_HEAD = { + oid, + description: `${noun} '${abbreviateRef(fullref)}' of ${url}` + }; + if (onProgress || onMessage) { + const lines = splitLines(response.progress); + forAwait(lines, async (line) => { + if (onMessage) await onMessage(line); + if (onProgress) { + const matches = line.match(/([^:]*).*\((\d+?)\/(\d+?)\)/); + if (matches) { + await onProgress({ + phase: matches[1].trim(), + loaded: parseInt(matches[2], 10), + total: parseInt(matches[3], 10) + }); + } + } + }); + } + const packfile = Buffer.from(await collect(response.packfile)); + if (raw.body.error) throw raw.body.error; + const packfileSha = packfile.slice(-20).toString("hex"); + const res = { + defaultBranch: response.HEAD, + fetchHead: response.FETCH_HEAD.oid, + fetchHeadDescription: response.FETCH_HEAD.description + }; + if (response.headers) { + res.headers = response.headers; + } + if (prune) { + res.pruned = response.pruned; + } + if (packfileSha !== "" && !emptyPackfile(packfile)) { + res.packfile = `objects/pack/pack-${packfileSha}.pack`; + const fullpath = join(gitdir, res.packfile); + await fs.write(fullpath, packfile); + const getExternalRefDelta = (oid2) => _readObject({ fs, cache, gitdir, oid: oid2 }); + const idx = await GitPackIndex.fromPack({ + pack: packfile, + getExternalRefDelta, + onProgress + }); + await fs.write(fullpath.replace(/\.pack$/, ".idx"), await idx.toBuffer()); + } + return res; +} +async function _init({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" +}) { + if (await fs.exists(gitdir + "/config")) return; + let folders = [ + "hooks", + "info", + "objects/info", + "objects/pack", + "refs/heads", + "refs/tags" + ]; + folders = folders.map((dir2) => gitdir + "/" + dir2); + for (const folder of folders) { + await fs.mkdir(folder); + } + await fs.write( + gitdir + "/config", + `[core] + repositoryformatversion = 0 + filemode = false + bare = ${bare} +` + (bare ? "" : " logallrefupdates = true\n") + " symlinks = false\n ignorecase = true\n" + ); + await fs.write(gitdir + "/HEAD", `ref: refs/heads/${defaultBranch} +`); +} +async function _clone({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + onPostCheckout, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative: relative2, + singleBranch, + noCheckout, + noTags, + headers +}) { + try { + await _init({ fs, gitdir }); + await _addRemote({ fs, gitdir, remote, url, force: false }); + if (corsProxy) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.set(`http.corsProxy`, corsProxy); + await GitConfigManager.save({ fs, gitdir, config }); + } + const { defaultBranch, fetchHead } = await _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + corsProxy, + depth, + since, + exclude, + relative: relative2, + singleBranch, + headers, + tags: !noTags + }); + if (fetchHead === null) return; + ref = ref || defaultBranch; + ref = ref.replace("refs/heads/", ""); + await _checkout({ + fs, + cache, + onProgress, + onPostCheckout, + dir, + gitdir, + ref, + remote, + noCheckout + }); + } catch (err) { + await fs.rmdir(gitdir, { recursive: true, maxRetries: 10 }).catch(() => void 0); + throw err; + } +} +async function clone({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + onPostCheckout, + dir, + gitdir = join(dir, ".git"), + url, + corsProxy = void 0, + ref = void 0, + remote = "origin", + depth = void 0, + since = void 0, + exclude = [], + relative: relative2 = false, + singleBranch = false, + noCheckout = false, + noTags = false, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + if (!noCheckout) { + assertParameter("dir", dir); + } + assertParameter("url", url); + return await _clone({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + onPostCheckout, + dir, + gitdir, + url, + corsProxy, + ref, + remote, + depth, + since, + exclude, + relative: relative2, + singleBranch, + noCheckout, + noTags, + headers + }); + } catch (err) { + err.caller = "git.clone"; + throw err; + } +} +async function commit({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + message, + author, + committer, + signingKey, + amend = false, + dryRun = false, + noUpdateBranch = false, + ref, + parent, + tree, + cache = {} +}) { + try { + assertParameter("fs", _fs); + if (!amend) { + assertParameter("message", message); + } + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + return await _commit({ + fs, + cache, + onSign, + gitdir, + message, + author, + committer, + signingKey, + amend, + dryRun, + noUpdateBranch, + ref, + parent, + tree + }); + } catch (err) { + err.caller = "git.commit"; + throw err; + } +} +async function currentBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + fullname = false, + test = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _currentBranch({ + fs: new FileSystem(fs), + gitdir, + fullname, + test + }); + } catch (err) { + err.caller = "git.currentBranch"; + throw err; + } +} +async function _deleteBranch({ fs, gitdir, ref }) { + ref = ref.startsWith("refs/heads/") ? ref : `refs/heads/${ref}`; + const exist = await GitRefManager.exists({ fs, gitdir, ref }); + if (!exist) { + throw new NotFoundError(ref); + } + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + const currentRef = await _currentBranch({ fs, gitdir, fullname: true }); + if (fullRef === currentRef) { + const value = await GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + await GitRefManager.writeRef({ fs, gitdir, ref: "HEAD", value }); + } + await GitRefManager.deleteRef({ fs, gitdir, ref: fullRef }); + const abbrevRef = abbreviateRef(ref); + const config = await GitConfigManager.get({ fs, gitdir }); + await config.deleteSection("branch", abbrevRef); + await GitConfigManager.save({ fs, gitdir, config }); +} +async function deleteBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref +}) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return await _deleteBranch({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteBranch"; + throw err; + } +} +async function deleteRef({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + await GitRefManager.deleteRef({ fs: new FileSystem(fs), gitdir, ref }); + } catch (err) { + err.caller = "git.deleteRef"; + throw err; + } +} +async function _deleteRemote({ fs, gitdir, remote }) { + const config = await GitConfigManager.get({ fs, gitdir }); + await config.deleteSection("remote", remote); + await GitConfigManager.save({ fs, gitdir, config }); +} +async function deleteRemote({ + fs, + dir, + gitdir = join(dir, ".git"), + remote +}) { + try { + assertParameter("fs", fs); + assertParameter("remote", remote); + return await _deleteRemote({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.deleteRemote"; + throw err; + } +} +async function _deleteTag({ fs, gitdir, ref }) { + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + await GitRefManager.deleteRef({ fs, gitdir, ref }); +} +async function deleteTag({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("ref", ref); + return await _deleteTag({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.deleteTag"; + throw err; + } +} +async function expandOidLoose({ fs, gitdir, oid: short }) { + const prefix = short.slice(0, 2); + const objectsSuffixes = await fs.readdir(`${gitdir}/objects/${prefix}`); + return objectsSuffixes.map((suffix) => `${prefix}${suffix}`).filter((_oid) => _oid.startsWith(short)); +} +async function expandOidPacked({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta +}) { + const results = []; + let list = await fs.readdir(join(gitdir, "objects/pack")); + list = list.filter((x) => x.endsWith(".idx")); + for (const filename of list) { + const indexFile = `${gitdir}/objects/pack/${filename}`; + const p = await readPackIndex({ + fs, + cache, + filename: indexFile, + getExternalRefDelta + }); + if (p.error) throw new InternalError(p.error); + for (const oid of p.offsets.keys()) { + if (oid.startsWith(short)) results.push(oid); + } + } + return results; +} +async function _expandOid({ fs, cache, gitdir, oid: short }) { + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const results = await expandOidLoose({ fs, gitdir, oid: short }); + const packedOids = await expandOidPacked({ + fs, + cache, + gitdir, + oid: short, + getExternalRefDelta + }); + for (const packedOid of packedOids) { + if (results.indexOf(packedOid) === -1) { + results.push(packedOid); + } + } + if (results.length === 1) { + return results[0]; + } + if (results.length > 1) { + throw new AmbiguousError("oids", short, results); + } + throw new NotFoundError(`an object matching "${short}"`); +} +async function expandOid({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _expandOid({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.expandOid"; + throw err; + } +} +async function expandRef({ fs, dir, gitdir = join(dir, ".git"), ref }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await GitRefManager.expand({ + fs: new FileSystem(fs), + gitdir, + ref + }); + } catch (err) { + err.caller = "git.expandRef"; + throw err; + } +} +async function _findMergeBase({ fs, cache, gitdir, oids }) { + const visits = {}; + const passes = oids.length; + let heads = oids.map((oid, index2) => ({ index: index2, oid })); + while (heads.length) { + const result = /* @__PURE__ */ new Set(); + for (const { oid, index: index2 } of heads) { + if (!visits[oid]) visits[oid] = /* @__PURE__ */ new Set(); + visits[oid].add(index2); + if (visits[oid].size === passes) { + result.add(oid); + } + } + if (result.size > 0) { + return [...result]; + } + const newheads = /* @__PURE__ */ new Map(); + for (const { oid, index: index2 } of heads) { + try { + const { object } = await _readObject({ fs, cache, gitdir, oid }); + const commit2 = GitCommit.from(object); + const { parent } = commit2.parseHeaders(); + for (const oid2 of parent) { + if (!visits[oid2] || !visits[oid2].has(index2)) { + newheads.set(oid2 + ":" + index2, { oid: oid2, index: index2 }); + } + } + } catch (err) { + } + } + heads = Array.from(newheads.values()); + } + return []; +} +var LINEBREAKS = /^.*(\r?\n|$)/gm; +function mergeFile({ branches, contents }) { + const ourName = branches[1]; + const theirName = branches[2]; + const baseContent = contents[0]; + const ourContent = contents[1]; + const theirContent = contents[2]; + const ours = ourContent.match(LINEBREAKS); + const base = baseContent.match(LINEBREAKS); + const theirs = theirContent.match(LINEBREAKS); + const result = (0, import_diff3.default)(ours, base, theirs); + const markerSize = 7; + let mergedText = ""; + let cleanMerge = true; + for (const item of result) { + if (item.ok) { + mergedText += item.ok.join(""); + } + if (item.conflict) { + cleanMerge = false; + mergedText += `${"<".repeat(markerSize)} ${ourName} +`; + mergedText += item.conflict.a.join(""); + mergedText += `${"=".repeat(markerSize)} +`; + mergedText += item.conflict.b.join(""); + mergedText += `${">".repeat(markerSize)} ${theirName} +`; + } + } + return { cleanMerge, mergedText }; +} +async function mergeTree({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + index: index2, + ourOid, + baseOid, + theirOid, + ourName = "ours", + baseName = "base", + theirName = "theirs", + dryRun = false, + abortOnConflict = true, + mergeDriver +}) { + const ourTree = TREE({ ref: ourOid }); + const baseTree = TREE({ ref: baseOid }); + const theirTree = TREE({ ref: theirOid }); + const unmergedFiles = []; + const bothModified = []; + const deleteByUs = []; + const deleteByTheirs = []; + const results = await _walk({ + fs, + cache, + dir, + gitdir, + trees: [ourTree, baseTree, theirTree], + map: async function(filepath, [ours, base, theirs]) { + const path2 = basename(filepath); + const ourChange = await modified(ours, base); + const theirChange = await modified(theirs, base); + switch (`${ourChange}-${theirChange}`) { + case "false-false": { + return { + mode: await base.mode(), + path: path2, + oid: await base.oid(), + type: await base.type() + }; + } + case "false-true": { + return theirs ? { + mode: await theirs.mode(), + path: path2, + oid: await theirs.oid(), + type: await theirs.type() + } : void 0; + } + case "true-false": { + return ours ? { + mode: await ours.mode(), + path: path2, + oid: await ours.oid(), + type: await ours.type() + } : void 0; + } + case "true-true": { + if (ours && base && theirs && await ours.type() === "blob" && await base.type() === "blob" && await theirs.type() === "blob") { + return mergeBlobs({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + baseName, + theirName, + mergeDriver + }).then(async (r) => { + if (!r.cleanMerge) { + unmergedFiles.push(filepath); + bothModified.push(filepath); + if (!abortOnConflict) { + const baseOid2 = await base.oid(); + const ourOid2 = await ours.oid(); + const theirOid2 = await theirs.oid(); + index2.delete({ filepath }); + index2.insert({ filepath, oid: baseOid2, stage: 1 }); + index2.insert({ filepath, oid: ourOid2, stage: 2 }); + index2.insert({ filepath, oid: theirOid2, stage: 3 }); + } + } else if (!abortOnConflict) { + index2.insert({ filepath, oid: r.mergeResult.oid, stage: 0 }); + } + return r.mergeResult; + }); + } + if (base && !ours && theirs && await base.type() === "blob" && await theirs.type() === "blob") { + unmergedFiles.push(filepath); + deleteByUs.push(filepath); + if (!abortOnConflict) { + const baseOid2 = await base.oid(); + const theirOid2 = await theirs.oid(); + index2.delete({ filepath }); + index2.insert({ filepath, oid: baseOid2, stage: 1 }); + index2.insert({ filepath, oid: theirOid2, stage: 3 }); + } + return { + mode: await theirs.mode(), + oid: await theirs.oid(), + type: "blob", + path: path2 + }; + } + if (base && ours && !theirs && await base.type() === "blob" && await ours.type() === "blob") { + unmergedFiles.push(filepath); + deleteByTheirs.push(filepath); + if (!abortOnConflict) { + const baseOid2 = await base.oid(); + const ourOid2 = await ours.oid(); + index2.delete({ filepath }); + index2.insert({ filepath, oid: baseOid2, stage: 1 }); + index2.insert({ filepath, oid: ourOid2, stage: 2 }); + } + return { + mode: await ours.mode(), + oid: await ours.oid(), + type: "blob", + path: path2 + }; + } + if (base && !ours && !theirs && await base.type() === "blob") { + return void 0; + } + throw new MergeNotSupportedError(); + } + } + }, + /** + * @param {TreeEntry} [parent] + * @param {Array} children + */ + reduce: unmergedFiles.length !== 0 && (!dir || abortOnConflict) ? void 0 : async (parent, children2) => { + const entries = children2.filter(Boolean); + if (!parent) return; + if (parent && parent.type === "tree" && entries.length === 0) return; + if (entries.length > 0) { + const tree = new GitTree(entries); + const object = tree.toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tree", + object, + dryRun + }); + parent.oid = oid; + } + return parent; + } + }); + if (unmergedFiles.length !== 0) { + if (dir && !abortOnConflict) { + await _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref: results.oid })], + map: async function(filepath, [entry]) { + const path2 = `${dir}/${filepath}`; + if (await entry.type() === "blob") { + const mode = await entry.mode(); + const content = new TextDecoder().decode(await entry.content()); + await fs.write(path2, content, { mode }); + } + return true; + } + }); + } + return new MergeConflictError( + unmergedFiles, + bothModified, + deleteByUs, + deleteByTheirs + ); + } + return results.oid; +} +async function mergeBlobs({ + fs, + gitdir, + path: path2, + ours, + base, + theirs, + ourName, + theirName, + baseName, + dryRun, + mergeDriver = mergeFile +}) { + const type = "blob"; + const mode = await base.mode() === await ours.mode() ? await theirs.mode() : await ours.mode(); + if (await ours.oid() === await theirs.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await ours.oid(), type } + }; + } + if (await ours.oid() === await base.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await theirs.oid(), type } + }; + } + if (await theirs.oid() === await base.oid()) { + return { + cleanMerge: true, + mergeResult: { mode, path: path2, oid: await ours.oid(), type } + }; + } + const ourContent = Buffer.from(await ours.content()).toString("utf8"); + const baseContent = Buffer.from(await base.content()).toString("utf8"); + const theirContent = Buffer.from(await theirs.content()).toString("utf8"); + const { mergedText, cleanMerge } = await mergeDriver({ + branches: [baseName, ourName, theirName], + contents: [baseContent, ourContent, theirContent], + path: path2 + }); + const oid = await _writeObject({ + fs, + gitdir, + type: "blob", + object: Buffer.from(mergedText, "utf8"), + dryRun + }); + return { cleanMerge, mergeResult: { mode, path: path2, oid, type } }; +} +async function _merge({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author, + committer, + signingKey, + onSign, + mergeDriver +}) { + if (ours === void 0) { + ours = await _currentBranch({ fs, gitdir, fullname: true }); + } + ours = await GitRefManager.expand({ + fs, + gitdir, + ref: ours + }); + theirs = await GitRefManager.expand({ + fs, + gitdir, + ref: theirs + }); + const ourOid = await GitRefManager.resolve({ + fs, + gitdir, + ref: ours + }); + const theirOid = await GitRefManager.resolve({ + fs, + gitdir, + ref: theirs + }); + const baseOids = await _findMergeBase({ + fs, + cache, + gitdir, + oids: [ourOid, theirOid] + }); + if (baseOids.length !== 1) { + throw new MergeNotSupportedError(); + } + const baseOid = baseOids[0]; + if (baseOid === theirOid) { + return { + oid: ourOid, + alreadyMerged: true + }; + } + if (fastForward2 && baseOid === ourOid) { + if (!dryRun && !noUpdateBranch) { + await GitRefManager.writeRef({ fs, gitdir, ref: ours, value: theirOid }); + } + return { + oid: theirOid, + fastForward: true + }; + } else { + if (fastForwardOnly) { + throw new FastForwardError(); + } + const tree = await GitIndexManager.acquire( + { fs, gitdir, cache, allowUnmerged: false }, + async (index2) => { + return mergeTree({ + fs, + cache, + dir, + gitdir, + index: index2, + ourOid, + theirOid, + baseOid, + ourName: abbreviateRef(ours), + baseName: "base", + theirName: abbreviateRef(theirs), + dryRun, + abortOnConflict, + mergeDriver + }); + } + ); + if (tree instanceof MergeConflictError) throw tree; + if (!message) { + message = `Merge branch '${abbreviateRef(theirs)}' into ${abbreviateRef( + ours + )}`; + } + const oid = await _commit({ + fs, + cache, + gitdir, + message, + ref: ours, + tree, + parent: [ourOid, theirOid], + author, + committer, + signingKey, + onSign, + dryRun, + noUpdateBranch + }); + return { + oid, + tree, + mergeCommit: true + }; + } +} +async function _pull({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + prune, + pruneTags, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey +}) { + try { + if (!ref) { + const head = await _currentBranch({ fs, gitdir }); + if (!head) { + throw new MissingParameterError("ref"); + } + ref = head; + } + const { fetchHead, fetchHeadDescription } = await _fetch({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + corsProxy, + ref, + url, + remote, + remoteRef, + singleBranch, + headers, + prune, + pruneTags + }); + await _merge({ + fs, + cache, + gitdir, + ours: ref, + theirs: fetchHead, + fastForward: fastForward2, + fastForwardOnly, + message: `Merge ${fetchHeadDescription}`, + author, + committer, + signingKey, + dryRun: false, + noUpdateBranch: false + }); + await _checkout({ + fs, + cache, + onProgress, + dir, + gitdir, + ref, + remote, + noCheckout: false + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } +} +async function fastForward({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + corsProxy, + singleBranch, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + const thisWillNotBeUsed = { + name: "", + email: "", + timestamp: Date.now(), + timezoneOffset: 0 + }; + return await _pull({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForwardOnly: true, + corsProxy, + singleBranch, + headers, + author: thisWillNotBeUsed, + committer: thisWillNotBeUsed + }); + } catch (err) { + err.caller = "git.fastForward"; + throw err; + } +} +async function fetch({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + remote, + remoteRef, + url, + corsProxy, + depth = null, + since = null, + exclude = [], + relative: relative2 = false, + tags = false, + singleBranch = false, + headers = {}, + prune = false, + pruneTags = false, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return await _fetch({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + gitdir, + ref, + remote, + remoteRef, + url, + corsProxy, + depth, + since, + exclude, + relative: relative2, + tags, + singleBranch, + headers, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.fetch"; + throw err; + } +} +async function findMergeBase({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return await _findMergeBase({ + fs: new FileSystem(fs), + cache, + gitdir, + oids + }); + } catch (err) { + err.caller = "git.findMergeBase"; + throw err; + } +} +async function _findRoot({ fs, filepath }) { + if (await fs.exists(join(filepath, ".git"))) { + return filepath; + } else { + const parent = dirname(filepath); + if (parent === filepath) { + throw new NotFoundError(`git root for ${filepath}`); + } + return _findRoot({ fs, filepath: parent }); + } +} +async function findRoot({ fs, filepath }) { + try { + assertParameter("fs", fs); + assertParameter("filepath", filepath); + return await _findRoot({ fs: new FileSystem(fs), filepath }); + } catch (err) { + err.caller = "git.findRoot"; + throw err; + } +} +async function getConfig({ fs, dir, gitdir = join(dir, ".git"), path: path2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return await _getConfig({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfig"; + throw err; + } +} +async function _getConfigAll({ fs, gitdir, path: path2 }) { + const config = await GitConfigManager.get({ fs, gitdir }); + return config.getall(path2); +} +async function getConfigAll({ + fs, + dir, + gitdir = join(dir, ".git"), + path: path2 +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + return await _getConfigAll({ + fs: new FileSystem(fs), + gitdir, + path: path2 + }); + } catch (err) { + err.caller = "git.getConfigAll"; + throw err; + } +} +async function getRemoteInfo({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion: 1 + }); + const result = { + capabilities: [...remote.capabilities] + }; + for (const [ref, oid] of remote.refs) { + const parts = ref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = oid; + } + for (const [symref, ref] of remote.symrefs) { + const parts = symref.split("/"); + const last2 = parts.pop(); + let o = result; + for (const part of parts) { + o[part] = o[part] || {}; + o = o[part]; + } + o[last2] = ref; + } + return result; + } catch (err) { + err.caller = "git.getRemoteInfo"; + throw err; + } +} +function formatInfoRefs(remote, prefix, symrefs, peelTags) { + const refs = []; + for (const [key2, value] of remote.refs) { + if (prefix && !key2.startsWith(prefix)) continue; + if (key2.endsWith("^{}")) { + if (peelTags) { + const _key = key2.replace("^{}", ""); + const last2 = refs[refs.length - 1]; + const r = last2.ref === _key ? last2 : refs.find((x) => x.ref === _key); + if (r === void 0) { + throw new Error("I did not expect this to happen"); + } + r.peeled = value; + } + continue; + } + const ref = { ref: key2, oid: value }; + if (symrefs) { + if (remote.symrefs.has(key2)) { + ref.target = remote.symrefs.get(key2); + } + } + refs.push(ref); + } + return refs; +} +async function getRemoteInfo2({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2 +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const remote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 2) { + return { + protocolVersion: remote.protocolVersion, + capabilities: remote.capabilities2 + }; + } + const capabilities = {}; + for (const cap of remote.capabilities) { + const [key2, value] = cap.split("="); + if (value) { + capabilities[key2] = value; + } else { + capabilities[key2] = true; + } + } + return { + protocolVersion: 1, + capabilities, + refs: formatInfoRefs(remote, void 0, true, true) + }; + } catch (err) { + err.caller = "git.getRemoteInfo2"; + throw err; + } +} +async function hashObject({ + type, + object, + format = "content", + oid = void 0 +}) { + if (format !== "deflated") { + if (format !== "wrapped") { + object = GitObject.wrap({ type, object }); + } + oid = await shasum(object); + } + return { oid, object }; +} +async function hashBlob({ object }) { + try { + assertParameter("object", object); + if (typeof object === "string") { + object = Buffer.from(object, "utf8"); + } else { + object = Buffer.from(object); + } + const type = "blob"; + const { oid, object: _object } = await hashObject({ + type: "blob", + format: "content", + object + }); + return { oid, type, object: new Uint8Array(_object), format: "wrapped" }; + } catch (err) { + err.caller = "git.hashBlob"; + throw err; + } +} +async function _indexPack({ + fs, + cache, + onProgress, + dir, + gitdir, + filepath +}) { + try { + filepath = join(dir, filepath); + const pack = await fs.read(filepath); + const getExternalRefDelta = (oid) => _readObject({ fs, cache, gitdir, oid }); + const idx = await GitPackIndex.fromPack({ + pack, + getExternalRefDelta, + onProgress + }); + await fs.write(filepath.replace(/\.pack$/, ".idx"), await idx.toBuffer()); + return { + oids: [...idx.hashes] + }; + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } +} +async function indexPack({ + fs, + onProgress, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", dir); + assertParameter("filepath", filepath); + return await _indexPack({ + fs: new FileSystem(fs), + cache, + onProgress, + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.indexPack"; + throw err; + } +} +async function init({ + fs, + bare = false, + dir, + gitdir = bare ? dir : join(dir, ".git"), + defaultBranch = "master" +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + if (!bare) { + assertParameter("dir", dir); + } + return await _init({ + fs: new FileSystem(fs), + bare, + dir, + gitdir, + defaultBranch + }); + } catch (err) { + err.caller = "git.init"; + throw err; + } +} +async function _isDescendent({ + fs, + cache, + gitdir, + oid, + ancestor, + depth +}) { + const shallows = await GitShallowManager.read({ fs, gitdir }); + if (!oid) { + throw new MissingParameterError("oid"); + } + if (!ancestor) { + throw new MissingParameterError("ancestor"); + } + if (oid === ancestor) return false; + const queue = [oid]; + const visited = /* @__PURE__ */ new Set(); + let searchdepth = 0; + while (queue.length) { + if (searchdepth++ === depth) { + throw new MaxDepthError(depth); + } + const oid2 = queue.shift(); + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: oid2 + }); + if (type !== "commit") { + throw new ObjectTypeError(oid2, type, "commit"); + } + const commit2 = GitCommit.from(object).parse(); + for (const parent of commit2.parent) { + if (parent === ancestor) return true; + } + if (!shallows.has(oid2)) { + for (const parent of commit2.parent) { + if (!visited.has(parent)) { + queue.push(parent); + visited.add(parent); + } + } + } + } + return false; +} +async function isDescendent({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + ancestor, + depth = -1, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + assertParameter("ancestor", ancestor); + return await _isDescendent({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + ancestor, + depth + }); + } catch (err) { + err.caller = "git.isDescendent"; + throw err; + } +} +async function isIgnored({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath +}) { + try { + assertParameter("fs", fs); + assertParameter("dir", dir); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + return GitIgnoreManager.isIgnored({ + fs: new FileSystem(fs), + dir, + gitdir, + filepath + }); + } catch (err) { + err.caller = "git.isIgnored"; + throw err; + } +} +async function listBranches({ + fs, + dir, + gitdir = join(dir, ".git"), + remote +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listBranches({ + fs: new FileSystem(fs), + gitdir, + remote + }); + } catch (err) { + err.caller = "git.listBranches"; + throw err; + } +} +async function _listFiles({ fs, gitdir, ref, cache }) { + if (ref) { + const oid = await GitRefManager.resolve({ gitdir, fs, ref }); + const filenames = []; + await accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid, + filenames, + prefix: "" + }); + return filenames; + } else { + return GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + return index2.entries.map((x) => x.path); + }); + } +} +async function accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid, + filenames, + prefix +}) { + const { tree } = await _readTree({ fs, cache, gitdir, oid }); + for (const entry of tree) { + if (entry.type === "tree") { + await accumulateFilesFromOid({ + fs, + cache, + gitdir, + oid: entry.oid, + filenames, + prefix: join(prefix, entry.path) + }); + } else { + filenames.push(join(prefix, entry.path)); + } + } +} +async function listFiles({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _listFiles({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listFiles"; + throw err; + } +} +async function _listNotes({ fs, cache, gitdir, ref }) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (err instanceof NotFoundError) { + return []; + } + } + const result = await _readTree({ + fs, + cache, + gitdir, + oid: parent + }); + const notes = result.tree.map((entry) => ({ + target: entry.path, + note: entry.oid + })); + return notes; +} +async function listNotes({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _listNotes({ + fs: new FileSystem(fs), + cache, + gitdir, + ref + }); + } catch (err) { + err.caller = "git.listNotes"; + throw err; + } +} +async function _listRemotes({ fs, gitdir }) { + const config = await GitConfigManager.get({ fs, gitdir }); + const remoteNames = await config.getSubsections("remote"); + const remotes = Promise.all( + remoteNames.map(async (remote) => { + const url = await config.get(`remote.${remote}.url`); + return { remote, url }; + }) + ); + return remotes; +} +async function listRemotes({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return await _listRemotes({ + fs: new FileSystem(fs), + gitdir + }); + } catch (err) { + err.caller = "git.listRemotes"; + throw err; + } +} +async function parseListRefsResponse(stream) { + const read = GitPktLine.streamReader(stream); + const refs = []; + let line; + while (true) { + line = await read(); + if (line === true) break; + if (line === null) continue; + line = line.toString("utf8").replace(/\n$/, ""); + const [oid, ref, ...attrs] = line.split(" "); + const r = { ref, oid }; + for (const attr2 of attrs) { + const [name, value] = attr2.split(":"); + if (name === "symref-target") { + r.target = value; + } else if (name === "peeled") { + r.peeled = value; + } + } + refs.push(r); + } + return refs; +} +async function writeListRefsRequest({ prefix, symrefs, peelTags }) { + const packstream = []; + packstream.push(GitPktLine.encode("command=ls-refs\n")); + packstream.push(GitPktLine.encode(`agent=${pkg.agent} +`)); + if (peelTags || symrefs || prefix) { + packstream.push(GitPktLine.delim()); + } + if (peelTags) packstream.push(GitPktLine.encode("peel")); + if (symrefs) packstream.push(GitPktLine.encode("symrefs")); + if (prefix) packstream.push(GitPktLine.encode(`ref-prefix ${prefix}`)); + packstream.push(GitPktLine.flush()); + return packstream; +} +async function listServerRefs({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + url, + headers = {}, + forPush = false, + protocolVersion = 2, + prefix, + symrefs, + peelTags +}) { + try { + assertParameter("http", http); + assertParameter("url", url); + const remote = await GitRemoteHTTP.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + headers, + protocolVersion + }); + if (remote.protocolVersion === 1) { + return formatInfoRefs(remote, prefix, symrefs, peelTags); + } + const body = await writeListRefsRequest({ prefix, symrefs, peelTags }); + const res = await GitRemoteHTTP.connect({ + http, + auth: remote.auth, + headers, + corsProxy, + service: forPush ? "git-receive-pack" : "git-upload-pack", + url, + body + }); + return parseListRefsResponse(res.body); + } catch (err) { + err.caller = "git.listServerRefs"; + throw err; + } +} +async function listTags({ fs, dir, gitdir = join(dir, ".git") }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + return GitRefManager.listTags({ fs: new FileSystem(fs), gitdir }); + } catch (err) { + err.caller = "git.listTags"; + throw err; + } +} +function compareAge(a, b) { + return a.committer.timestamp - b.committer.timestamp; +} +var EMPTY_OID = "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"; +async function resolveFileIdInTree({ fs, cache, gitdir, oid, fileId }) { + if (fileId === EMPTY_OID) return; + const _oid = oid; + let filepath; + const result = await resolveTree({ fs, cache, gitdir, oid }); + const tree = result.tree; + if (fileId === result.oid) { + filepath = result.path; + } else { + filepath = await _resolveFileId({ + fs, + cache, + gitdir, + tree, + fileId, + oid: _oid + }); + if (Array.isArray(filepath)) { + if (filepath.length === 0) filepath = void 0; + else if (filepath.length === 1) filepath = filepath[0]; + } + } + return filepath; +} +async function _resolveFileId({ + fs, + cache, + gitdir, + tree, + fileId, + oid, + filepaths = [], + parentPath = "" +}) { + const walks = tree.entries().map(function(entry) { + let result; + if (entry.oid === fileId) { + result = join(parentPath, entry.path); + filepaths.push(result); + } else if (entry.type === "tree") { + result = _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }).then(function({ object }) { + return _resolveFileId({ + fs, + cache, + gitdir, + tree: GitTree.from(object), + fileId, + oid, + filepaths, + parentPath: join(parentPath, entry.path) + }); + }); + } + return result; + }); + await Promise.all(walks); + return filepaths; +} +async function _log({ + fs, + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow +}) { + const sinceTimestamp = typeof since === "undefined" ? void 0 : Math.floor(since.valueOf() / 1e3); + const commits = []; + const shallowCommits = await GitShallowManager.read({ fs, gitdir }); + const oid = await GitRefManager.resolve({ fs, gitdir, ref }); + const tips = [await _readCommit({ fs, cache, gitdir, oid })]; + let lastFileOid; + let lastCommit; + let isOk; + function endCommit(commit2) { + if (isOk && filepath) commits.push(commit2); + } + while (tips.length > 0) { + const commit2 = tips.pop(); + if (sinceTimestamp !== void 0 && commit2.commit.committer.timestamp <= sinceTimestamp) { + break; + } + if (filepath) { + let vFileOid; + try { + vFileOid = await resolveFilepath({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + filepath + }); + if (lastCommit && lastFileOid !== vFileOid) { + commits.push(lastCommit); + } + lastFileOid = vFileOid; + lastCommit = commit2; + isOk = true; + } catch (e) { + if (e instanceof NotFoundError) { + let found = follow && lastFileOid; + if (found) { + found = await resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: commit2.commit.tree, + fileId: lastFileOid + }); + if (found) { + if (Array.isArray(found)) { + if (lastCommit) { + const lastFound = await resolveFileIdInTree({ + fs, + cache, + gitdir, + oid: lastCommit.commit.tree, + fileId: lastFileOid + }); + if (Array.isArray(lastFound)) { + found = found.filter((p) => lastFound.indexOf(p) === -1); + if (found.length === 1) { + found = found[0]; + filepath = found; + if (lastCommit) commits.push(lastCommit); + } else { + found = false; + if (lastCommit) commits.push(lastCommit); + break; + } + } + } + } else { + filepath = found; + if (lastCommit) commits.push(lastCommit); + } + } + } + if (!found) { + if (isOk && lastFileOid) { + commits.push(lastCommit); + if (!force) break; + } + if (!force && !follow) throw e; + } + lastCommit = commit2; + isOk = false; + } else throw e; + } + } else { + commits.push(commit2); + } + if (depth !== void 0 && commits.length === depth) { + endCommit(commit2); + break; + } + if (!shallowCommits.has(commit2.oid)) { + for (const oid2 of commit2.commit.parent) { + const commit3 = await _readCommit({ fs, cache, gitdir, oid: oid2 }); + if (!tips.map((commit4) => commit4.oid).includes(commit3.oid)) { + tips.push(commit3); + } + } + } + if (tips.length === 0) { + endCommit(commit2); + } + tips.sort((a, b) => compareAge(a.commit, b.commit)); + } + return commits; +} +async function log({ + fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref = "HEAD", + depth, + since, + // Date + force, + follow, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + return await _log({ + fs: new FileSystem(fs), + cache, + gitdir, + filepath, + ref, + depth, + since, + force, + follow + }); + } catch (err) { + err.caller = "git.log"; + throw err; + } +} +async function merge({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ours, + theirs, + fastForward: fastForward2 = true, + fastForwardOnly = false, + dryRun = false, + noUpdateBranch = false, + abortOnConflict = true, + message, + author: _author, + committer: _committer, + signingKey, + cache = {}, + mergeDriver +}) { + try { + assertParameter("fs", _fs); + if (signingKey) { + assertParameter("onSign", onSign); + } + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("author"); + } + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer && (!fastForwardOnly || !fastForward2)) { + throw new MissingNameError("committer"); + } + return await _merge({ + fs, + cache, + dir, + gitdir, + ours, + theirs, + fastForward: fastForward2, + fastForwardOnly, + dryRun, + noUpdateBranch, + abortOnConflict, + message, + author, + committer, + signingKey, + onSign, + mergeDriver + }); + } catch (err) { + err.caller = "git.merge"; + throw err; + } +} +var types = { + commit: 16, + tree: 32, + blob: 48, + tag: 64, + ofs_delta: 96, + ref_delta: 112 +}; +async function _pack({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids +}) { + const hash2 = new import_sha1.default(); + const outputStream = []; + function write(chunk, enc) { + const buff = Buffer.from(chunk, enc); + outputStream.push(buff); + hash2.update(buff); + } + async function writeObject2({ stype, object }) { + const type = types[stype]; + let length = object.length; + let multibyte = length > 15 ? 128 : 0; + const lastFour = length & 15; + length = length >>> 4; + let byte = (multibyte | type | lastFour).toString(16); + write(byte, "hex"); + while (multibyte) { + multibyte = length > 127 ? 128 : 0; + byte = multibyte | length & 127; + write(padHex(2, byte), "hex"); + length = length >>> 7; + } + write(Buffer.from(await deflate(object))); + } + write("PACK"); + write("00000002", "hex"); + write(padHex(8, oids.length), "hex"); + for (const oid of oids) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + await writeObject2({ write, object, stype: type }); + } + const digest = hash2.digest(); + outputStream.push(digest); + return outputStream; +} +async function _packObjects({ fs, cache, gitdir, oids, write }) { + const buffers = await _pack({ fs, cache, gitdir, oids }); + const packfile = Buffer.from(await collect(buffers)); + const packfileSha = packfile.slice(-20).toString("hex"); + const filename = `pack-${packfileSha}.pack`; + if (write) { + await fs.write(join(gitdir, `objects/pack/${filename}`), packfile); + return { filename }; + } + return { + filename, + packfile: new Uint8Array(packfile) + }; +} +async function packObjects({ + fs, + dir, + gitdir = join(dir, ".git"), + oids, + write = false, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oids", oids); + return await _packObjects({ + fs: new FileSystem(fs), + cache, + gitdir, + oids, + write + }); + } catch (err) { + err.caller = "git.packObjects"; + throw err; + } +} +async function pull({ + fs: _fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir = join(dir, ".git"), + ref, + url, + remote, + remoteRef, + prune = false, + pruneTags = false, + fastForward: fastForward2 = true, + fastForwardOnly = false, + corsProxy, + singleBranch, + headers = {}, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) throw new MissingNameError("committer"); + return await _pull({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + dir, + gitdir, + ref, + url, + remote, + remoteRef, + fastForward: fastForward2, + fastForwardOnly, + corsProxy, + singleBranch, + headers, + author, + committer, + signingKey, + prune, + pruneTags + }); + } catch (err) { + err.caller = "git.pull"; + throw err; + } +} +async function listCommitsAndTags({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + start, + finish +}) { + const shallows = await GitShallowManager.read({ fs, gitdir }); + const startingSet = /* @__PURE__ */ new Set(); + const finishingSet = /* @__PURE__ */ new Set(); + for (const ref of start) { + startingSet.add(await GitRefManager.resolve({ fs, gitdir, ref })); + } + for (const ref of finish) { + try { + const oid = await GitRefManager.resolve({ fs, gitdir, ref }); + finishingSet.add(oid); + } catch (err) { + } + } + const visited = /* @__PURE__ */ new Set(); + async function walk2(oid) { + visited.add(oid); + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const commit2 = tag2.headers().object; + return walk2(commit2); + } + if (type !== "commit") { + throw new ObjectTypeError(oid, type, "commit"); + } + if (!shallows.has(oid)) { + const commit2 = GitCommit.from(object); + const parents = commit2.headers().parent; + for (oid of parents) { + if (!finishingSet.has(oid) && !visited.has(oid)) { + await walk2(oid); + } + } + } + } + for (const oid of startingSet) { + await walk2(oid); + } + return visited; +} +async function listObjects({ + fs, + cache, + dir, + gitdir = join(dir, ".git"), + oids +}) { + const visited = /* @__PURE__ */ new Set(); + async function walk2(oid) { + if (visited.has(oid)) return; + visited.add(oid); + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + const tag2 = GitAnnotatedTag.from(object); + const obj = tag2.headers().object; + await walk2(obj); + } else if (type === "commit") { + const commit2 = GitCommit.from(object); + const tree = commit2.headers().tree; + await walk2(tree); + } else if (type === "tree") { + const tree = GitTree.from(object); + for (const entry of tree) { + if (entry.type === "blob") { + visited.add(entry.oid); + } + if (entry.type === "tree") { + await walk2(entry.oid); + } + } + } + } + for (const oid of oids) { + await walk2(oid); + } + return visited; +} +async function parseReceivePackResponse(packfile) { + const result = {}; + let response = ""; + const read = GitPktLine.streamReader(packfile); + let line = await read(); + while (line !== true) { + if (line !== null) response += line.toString("utf8") + "\n"; + line = await read(); + } + const lines = response.toString("utf8").split("\n"); + line = lines.shift(); + if (!line.startsWith("unpack ")) { + throw new ParseError('unpack ok" or "unpack [error message]', line); + } + result.ok = line === "unpack ok"; + if (!result.ok) { + result.error = line.slice("unpack ".length); + } + result.refs = {}; + for (const line2 of lines) { + if (line2.trim() === "") continue; + const status2 = line2.slice(0, 2); + const refAndMessage = line2.slice(3); + let space2 = refAndMessage.indexOf(" "); + if (space2 === -1) space2 = refAndMessage.length; + const ref = refAndMessage.slice(0, space2); + const error = refAndMessage.slice(space2 + 1); + result.refs[ref] = { + ok: status2 === "ok", + error + }; + } + return result; +} +async function writeReceivePackRequest({ + capabilities = [], + triplets = [] +}) { + const packstream = []; + let capsFirstLine = `\0 ${capabilities.join(" ")}`; + for (const trip of triplets) { + packstream.push( + GitPktLine.encode( + `${trip.oldoid} ${trip.oid} ${trip.fullRef}${capsFirstLine} +` + ) + ); + capsFirstLine = ""; + } + packstream.push(GitPktLine.flush()); + return packstream; +} +async function _push({ + fs, + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + onPrePush, + gitdir, + ref: _ref, + remoteRef: _remoteRef, + remote, + url: _url, + force = false, + delete: _delete = false, + corsProxy, + headers = {} +}) { + const ref = _ref || await _currentBranch({ fs, gitdir }); + if (typeof ref === "undefined") { + throw new MissingParameterError("ref"); + } + const config = await GitConfigManager.get({ fs, gitdir }); + remote = remote || await config.get(`branch.${ref}.pushRemote`) || await config.get("remote.pushDefault") || await config.get(`branch.${ref}.remote`) || "origin"; + const url = _url || await config.get(`remote.${remote}.pushurl`) || await config.get(`remote.${remote}.url`); + if (typeof url === "undefined") { + throw new MissingParameterError("remote OR url"); + } + const remoteRef = _remoteRef || await config.get(`branch.${ref}.merge`); + if (typeof url === "undefined") { + throw new MissingParameterError("remoteRef"); + } + if (corsProxy === void 0) { + corsProxy = await config.get("http.corsProxy"); + } + const fullRef = await GitRefManager.expand({ fs, gitdir, ref }); + const oid = _delete ? "0000000000000000000000000000000000000000" : await GitRefManager.resolve({ fs, gitdir, ref: fullRef }); + const GitRemoteHTTP2 = GitRemoteManager.getRemoteHelperFor({ url }); + const httpRemote = await GitRemoteHTTP2.discover({ + http, + onAuth, + onAuthSuccess, + onAuthFailure, + corsProxy, + service: "git-receive-pack", + url, + headers, + protocolVersion: 1 + }); + const auth = httpRemote.auth; + let fullRemoteRef; + if (!remoteRef) { + fullRemoteRef = fullRef; + } else { + try { + fullRemoteRef = await GitRefManager.expandAgainstMap({ + ref: remoteRef, + map: httpRemote.refs + }); + } catch (err) { + if (err instanceof NotFoundError) { + fullRemoteRef = remoteRef.startsWith("refs/") ? remoteRef : `refs/heads/${remoteRef}`; + } else { + throw err; + } + } + } + const oldoid = httpRemote.refs.get(fullRemoteRef) || "0000000000000000000000000000000000000000"; + if (onPrePush) { + const hookCancel = await onPrePush({ + remote, + url, + localRef: { ref: _delete ? "(delete)" : fullRef, oid }, + remoteRef: { ref: fullRemoteRef, oid: oldoid } + }); + if (!hookCancel) throw new UserCanceledError(); + } + const thinPack = !httpRemote.capabilities.has("no-thin"); + let objects = /* @__PURE__ */ new Set(); + if (!_delete) { + const finish = [...httpRemote.refs.values()]; + let skipObjects = /* @__PURE__ */ new Set(); + if (oldoid !== "0000000000000000000000000000000000000000") { + const mergebase = await _findMergeBase({ + fs, + cache, + gitdir, + oids: [oid, oldoid] + }); + for (const oid2 of mergebase) finish.push(oid2); + if (thinPack) { + skipObjects = await listObjects({ fs, cache, gitdir, oids: mergebase }); + } + } + if (!finish.includes(oid)) { + const commits = await listCommitsAndTags({ + fs, + cache, + gitdir, + start: [oid], + finish + }); + objects = await listObjects({ fs, cache, gitdir, oids: commits }); + } + if (thinPack) { + try { + const ref2 = await GitRefManager.resolve({ + fs, + gitdir, + ref: `refs/remotes/${remote}/HEAD`, + depth: 2 + }); + const { oid: oid2 } = await GitRefManager.resolveAgainstMap({ + ref: ref2.replace(`refs/remotes/${remote}/`, ""), + fullref: ref2, + map: httpRemote.refs + }); + const oids = [oid2]; + for (const oid3 of await listObjects({ fs, cache, gitdir, oids })) { + skipObjects.add(oid3); + } + } catch (e) { + } + for (const oid2 of skipObjects) { + objects.delete(oid2); + } + } + if (oid === oldoid) force = true; + if (!force) { + if (fullRef.startsWith("refs/tags") && oldoid !== "0000000000000000000000000000000000000000") { + throw new PushRejectedError("tag-exists"); + } + if (oid !== "0000000000000000000000000000000000000000" && oldoid !== "0000000000000000000000000000000000000000" && !await _isDescendent({ + fs, + cache, + gitdir, + oid, + ancestor: oldoid, + depth: -1 + })) { + throw new PushRejectedError("not-fast-forward"); + } + } + } + const capabilities = filterCapabilities( + [...httpRemote.capabilities], + ["report-status", "side-band-64k", `agent=${pkg.agent}`] + ); + const packstream1 = await writeReceivePackRequest({ + capabilities, + triplets: [{ oldoid, oid, fullRef: fullRemoteRef }] + }); + const packstream2 = _delete ? [] : await _pack({ + fs, + cache, + gitdir, + oids: [...objects] + }); + const res = await GitRemoteHTTP2.connect({ + http, + onProgress, + corsProxy, + service: "git-receive-pack", + url, + auth, + headers, + body: [...packstream1, ...packstream2] + }); + const { packfile, progress } = await GitSideBand.demux(res.body); + if (onMessage) { + const lines = splitLines(progress); + forAwait(lines, async (line) => { + await onMessage(line); + }); + } + const result = await parseReceivePackResponse(packfile); + if (res.headers) { + result.headers = res.headers; + } + if (remote && result.ok && result.refs[fullRemoteRef].ok && !fullRef.startsWith("refs/tags")) { + const ref2 = `refs/remotes/${remote}/${fullRemoteRef.replace( + "refs/heads", + "" + )}`; + if (_delete) { + await GitRefManager.deleteRef({ fs, gitdir, ref: ref2 }); + } else { + await GitRefManager.writeRef({ fs, gitdir, ref: ref2, value: oid }); + } + } + if (result.ok && Object.values(result.refs).every((result2) => result2.ok)) { + return result; + } else { + const prettyDetails = Object.entries(result.refs).filter(([k, v]) => !v.ok).map(([k, v]) => ` + - ${k}: ${v.error}`).join(""); + throw new GitPushError(prettyDetails, result); + } +} +async function push({ + fs, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + onPrePush, + dir, + gitdir = join(dir, ".git"), + ref, + remoteRef, + remote = "origin", + url, + force = false, + delete: _delete = false, + corsProxy, + headers = {}, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("http", http); + assertParameter("gitdir", gitdir); + return await _push({ + fs: new FileSystem(fs), + cache, + http, + onProgress, + onMessage, + onAuth, + onAuthSuccess, + onAuthFailure, + onPrePush, + gitdir, + ref, + remoteRef, + remote, + url, + force, + delete: _delete, + corsProxy, + headers + }); + } catch (err) { + err.caller = "git.push"; + throw err; + } +} +async function resolveBlob({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ fs, cache, gitdir, oid }); + if (type === "tag") { + oid = GitAnnotatedTag.from(object).parse().object; + return resolveBlob({ fs, cache, gitdir, oid }); + } + if (type !== "blob") { + throw new ObjectTypeError(oid, type, "blob"); + } + return { oid, blob: new Uint8Array(object) }; +} +async function _readBlob({ + fs, + cache, + gitdir, + oid, + filepath = void 0 +}) { + if (filepath !== void 0) { + oid = await resolveFilepath({ fs, cache, gitdir, oid, filepath }); + } + const blob = await resolveBlob({ + fs, + cache, + gitdir, + oid + }); + return blob; +} +async function readBlob({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readBlob({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readBlob"; + throw err; + } +} +async function readCommit({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readCommit({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readCommit"; + throw err; + } +} +async function _readNote({ + fs, + cache, + gitdir, + ref = "refs/notes/commits", + oid +}) { + const parent = await GitRefManager.resolve({ gitdir, fs, ref }); + const { blob } = await _readBlob({ + fs, + cache, + gitdir, + oid: parent, + filepath: oid + }); + return blob; +} +async function readNote({ + fs, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oid", oid); + return await _readNote({ + fs: new FileSystem(fs), + cache, + gitdir, + ref, + oid + }); + } catch (err) { + err.caller = "git.readNote"; + throw err; + } +} +async function readObject({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + oid, + format = "parsed", + filepath = void 0, + encoding = void 0, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + if (filepath !== void 0) { + oid = await resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } + const _format = format === "parsed" ? "content" : format; + const result = await _readObject({ + fs, + cache, + gitdir, + oid, + format: _format + }); + result.oid = oid; + if (format === "parsed") { + result.format = "parsed"; + switch (result.type) { + case "commit": + result.object = GitCommit.from(result.object).parse(); + break; + case "tree": + result.object = GitTree.from(result.object).entries(); + break; + case "blob": + if (encoding) { + result.object = result.object.toString(encoding); + } else { + result.object = new Uint8Array(result.object); + result.format = "content"; + } + break; + case "tag": + result.object = GitAnnotatedTag.from(result.object).parse(); + break; + default: + throw new ObjectTypeError( + result.oid, + result.type, + "blob|commit|tag|tree" + ); + } + } else if (result.format === "deflated" || result.format === "wrapped") { + result.type = result.format; + } + return result; + } catch (err) { + err.caller = "git.readObject"; + throw err; + } +} +async function _readTag({ fs, cache, gitdir, oid }) { + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid, + format: "content" + }); + if (type !== "tag") { + throw new ObjectTypeError(oid, type, "tag"); + } + const tag2 = GitAnnotatedTag.from(object); + const result = { + oid, + tag: tag2.parse(), + payload: tag2.payload() + }; + return result; +} +async function readTag({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readTag({ + fs: new FileSystem(fs), + cache, + gitdir, + oid + }); + } catch (err) { + err.caller = "git.readTag"; + throw err; + } +} +async function readTree({ + fs, + dir, + gitdir = join(dir, ".git"), + oid, + filepath = void 0, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + return await _readTree({ + fs: new FileSystem(fs), + cache, + gitdir, + oid, + filepath + }); + } catch (err) { + err.caller = "git.readTree"; + throw err; + } +} +async function remove({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + await GitIndexManager.acquire( + { fs: new FileSystem(_fs), gitdir, cache }, + async function(index2) { + index2.delete({ filepath }); + } + ); + } catch (err) { + err.caller = "git.remove"; + throw err; + } +} +async function _removeNote({ + fs, + cache, + onSign, + gitdir, + ref = "refs/notes/commits", + oid, + author, + committer, + signingKey +}) { + let parent; + try { + parent = await GitRefManager.resolve({ gitdir, fs, ref }); + } catch (err) { + if (!(err instanceof NotFoundError)) { + throw err; + } + } + const result = await _readTree({ + fs, + gitdir, + oid: parent || "4b825dc642cb6eb9a060e54bf8d69288fbee4904" + }); + let tree = result.tree; + tree = tree.filter((entry) => entry.path !== oid); + const treeOid = await _writeTree({ + fs, + gitdir, + tree + }); + const commitOid = await _commit({ + fs, + cache, + onSign, + gitdir, + ref, + tree: treeOid, + parent: parent && [parent], + message: `Note removed by 'isomorphic-git removeNote' +`, + author, + committer, + signingKey + }); + return commitOid; +} +async function removeNote({ + fs: _fs, + onSign, + dir, + gitdir = join(dir, ".git"), + ref = "refs/notes/commits", + oid, + author: _author, + committer: _committer, + signingKey, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("oid", oid); + const fs = new FileSystem(_fs); + const author = await normalizeAuthorObject({ fs, gitdir, author: _author }); + if (!author) throw new MissingNameError("author"); + const committer = await normalizeCommitterObject({ + fs, + gitdir, + author, + committer: _committer + }); + if (!committer) throw new MissingNameError("committer"); + return await _removeNote({ + fs, + cache, + onSign, + gitdir, + ref, + oid, + author, + committer, + signingKey + }); + } catch (err) { + err.caller = "git.removeNote"; + throw err; + } +} +async function _renameBranch({ + fs, + gitdir, + oldref, + ref, + checkout: checkout2 = false +}) { + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (oldref !== import_clean_git_ref.default.clean(oldref)) { + throw new InvalidRefNameError(oldref, import_clean_git_ref.default.clean(oldref)); + } + const fulloldref = `refs/heads/${oldref}`; + const fullnewref = `refs/heads/${ref}`; + const newexist = await GitRefManager.exists({ fs, gitdir, ref: fullnewref }); + if (newexist) { + throw new AlreadyExistsError("branch", ref, false); + } + const value = await GitRefManager.resolve({ + fs, + gitdir, + ref: fulloldref, + depth: 1 + }); + await GitRefManager.writeRef({ fs, gitdir, ref: fullnewref, value }); + await GitRefManager.deleteRef({ fs, gitdir, ref: fulloldref }); + const fullCurrentBranchRef = await _currentBranch({ + fs, + gitdir, + fullname: true + }); + const isCurrentBranch = fullCurrentBranchRef === fulloldref; + if (checkout2 || isCurrentBranch) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref: "HEAD", + value: fullnewref + }); + } +} +async function renameBranch({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + oldref, + checkout: checkout2 = false +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("oldref", oldref); + return await _renameBranch({ + fs: new FileSystem(fs), + gitdir, + ref, + oldref, + checkout: checkout2 + }); + } catch (err) { + err.caller = "git.renameBranch"; + throw err; + } +} +async function hashObject$1({ gitdir, type, object }) { + return shasum(GitObject.wrap({ type, object })); +} +async function resetIndex({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + ref, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + let oid; + let workdirOid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: ref || "HEAD" }); + } catch (e) { + if (ref) { + throw e; + } + } + if (oid) { + try { + oid = await resolveFilepath({ + fs, + cache, + gitdir, + oid, + filepath + }); + } catch (e) { + oid = null; + } + } + let stats = { + ctime: /* @__PURE__ */ new Date(0), + mtime: /* @__PURE__ */ new Date(0), + dev: 0, + ino: 0, + mode: 0, + uid: 0, + gid: 0, + size: 0 + }; + const object = dir && await fs.read(join(dir, filepath)); + if (object) { + workdirOid = await hashObject$1({ + gitdir, + type: "blob", + object + }); + if (oid === workdirOid) { + stats = await fs.lstat(join(dir, filepath)); + } + } + await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + index2.delete({ filepath }); + if (oid) { + index2.insert({ filepath, stats, oid }); + } + }); + } catch (err) { + err.caller = "git.reset"; + throw err; + } +} +async function resolveRef({ + fs, + dir, + gitdir = join(dir, ".git"), + ref, + depth +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const oid = await GitRefManager.resolve({ + fs: new FileSystem(fs), + gitdir, + ref, + depth + }); + return oid; + } catch (err) { + err.caller = "git.resolveRef"; + throw err; + } +} +async function setConfig({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + path: path2, + value, + append: append3 = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("path", path2); + const fs = new FileSystem(_fs); + const config = await GitConfigManager.get({ fs, gitdir }); + if (append3) { + await config.append(path2, value); + } else { + await config.set(path2, value); + } + await GitConfigManager.save({ fs, gitdir, config }); + } catch (err) { + err.caller = "git.setConfig"; + throw err; + } +} +async function status({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + filepath, + cache = {} +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + const ignored = await GitIgnoreManager.isIgnored({ + fs, + gitdir, + dir, + filepath + }); + if (ignored) { + return "ignored"; + } + const headTree = await getHeadTree({ fs, cache, gitdir }); + const treeOid = await getOidAtPath({ + fs, + cache, + gitdir, + tree: headTree, + path: filepath + }); + const indexEntry = await GitIndexManager.acquire( + { fs, gitdir, cache }, + async function(index2) { + for (const entry of index2) { + if (entry.path === filepath) return entry; + } + return null; + } + ); + const stats = await fs.lstat(join(dir, filepath)); + const H = treeOid !== null; + const I = indexEntry !== null; + const W = stats !== null; + const getWorkdirOid = async () => { + if (I && !compareStats(indexEntry, stats)) { + return indexEntry.oid; + } else { + const object = await fs.read(join(dir, filepath)); + const workdirOid = await hashObject$1({ + gitdir, + type: "blob", + object + }); + if (I && indexEntry.oid === workdirOid) { + if (stats.size !== -1) { + GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + index2.insert({ filepath, stats, oid: workdirOid }); + }); + } + } + return workdirOid; + } + }; + if (!H && !W && !I) return "absent"; + if (!H && !W && I) return "*absent"; + if (!H && W && !I) return "*added"; + if (!H && W && I) { + const workdirOid = await getWorkdirOid(); + return workdirOid === indexEntry.oid ? "added" : "*added"; + } + if (H && !W && !I) return "deleted"; + if (H && !W && I) { + return treeOid === indexEntry.oid ? "*deleted" : "*deleted"; + } + if (H && W && !I) { + const workdirOid = await getWorkdirOid(); + return workdirOid === treeOid ? "*undeleted" : "*undeletemodified"; + } + if (H && W && I) { + const workdirOid = await getWorkdirOid(); + if (workdirOid === treeOid) { + return workdirOid === indexEntry.oid ? "unmodified" : "*unmodified"; + } else { + return workdirOid === indexEntry.oid ? "modified" : "*modified"; + } + } + } catch (err) { + err.caller = "git.status"; + throw err; + } +} +async function getOidAtPath({ fs, cache, gitdir, tree, path: path2 }) { + if (typeof path2 === "string") path2 = path2.split("/"); + const dirname3 = path2.shift(); + for (const entry of tree) { + if (entry.path === dirname3) { + if (path2.length === 0) { + return entry.oid; + } + const { type, object } = await _readObject({ + fs, + cache, + gitdir, + oid: entry.oid + }); + if (type === "tree") { + const tree2 = GitTree.from(object); + return getOidAtPath({ fs, cache, gitdir, tree: tree2, path: path2 }); + } + if (type === "blob") { + throw new ObjectTypeError(entry.oid, type, "blob", path2.join("/")); + } + } + } + return null; +} +async function getHeadTree({ fs, cache, gitdir }) { + let oid; + try { + oid = await GitRefManager.resolve({ fs, gitdir, ref: "HEAD" }); + } catch (e) { + if (e instanceof NotFoundError) { + return []; + } + } + const { tree } = await _readTree({ fs, cache, gitdir, oid }); + return tree; +} +async function statusMatrix({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref = "HEAD", + filepaths = ["."], + filter, + cache = {}, + ignored: shouldIgnore = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + return await _walk({ + fs, + cache, + dir, + gitdir, + trees: [TREE({ ref }), WORKDIR(), STAGE()], + map: async function(filepath, [head, workdir, stage]) { + if (!head && !stage && workdir) { + if (!shouldIgnore) { + const isIgnored2 = await GitIgnoreManager.isIgnored({ + fs, + dir, + filepath + }); + if (isIgnored2) { + return null; + } + } + } + if (!filepaths.some((base) => worthWalking(filepath, base))) { + return null; + } + if (filter) { + if (!filter(filepath)) return; + } + const [headType, workdirType, stageType] = await Promise.all([ + head && head.type(), + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [headType, workdirType, stageType].includes("blob"); + if ((headType === "tree" || headType === "special") && !isBlob) return; + if (headType === "commit") return null; + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) return; + const headOid = headType === "blob" ? await head.oid() : void 0; + const stageOid = stageType === "blob" ? await stage.oid() : void 0; + let workdirOid; + if (headType !== "blob" && workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = await workdir.oid(); + } + const entry = [void 0, headOid, workdirOid, stageOid]; + const result = entry.map((value) => entry.indexOf(value)); + result.shift(); + return [filepath, ...result]; + } + }); + } catch (err) { + err.caller = "git.statusMatrix"; + throw err; + } +} +async function tag({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + object, + force = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + const fs = new FileSystem(_fs); + if (ref === void 0) { + throw new MissingParameterError("ref"); + } + ref = ref.startsWith("refs/tags/") ? ref : `refs/tags/${ref}`; + const value = await GitRefManager.resolve({ + fs, + gitdir, + ref: object || "HEAD" + }); + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("tag", ref); + } + await GitRefManager.writeRef({ fs, gitdir, ref, value }); + } catch (err) { + err.caller = "git.tag"; + throw err; + } +} +async function updateIndex({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + cache = {}, + filepath, + oid, + mode, + add: add2, + remove: remove3, + force +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("filepath", filepath); + const fs = new FileSystem(_fs); + if (remove3) { + return await GitIndexManager.acquire( + { fs, gitdir, cache }, + async function(index2) { + let fileStats2; + if (!force) { + fileStats2 = await fs.lstat(join(dir, filepath)); + if (fileStats2) { + if (fileStats2.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + return; + } + } + if (index2.has({ filepath })) { + index2.delete({ + filepath + }); + } + } + ); + } + let fileStats; + if (!oid) { + fileStats = await fs.lstat(join(dir, filepath)); + if (!fileStats) { + throw new NotFoundError( + `file at "${filepath}" on disk and "remove" not set` + ); + } + if (fileStats.isDirectory()) { + throw new InvalidFilepathError("directory"); + } + } + return await GitIndexManager.acquire({ fs, gitdir, cache }, async function(index2) { + if (!add2 && !index2.has({ filepath })) { + throw new NotFoundError( + `file at "${filepath}" in index and "add" not set` + ); + } + let stats = { + ctime: /* @__PURE__ */ new Date(0), + mtime: /* @__PURE__ */ new Date(0), + dev: 0, + ino: 0, + mode, + uid: 0, + gid: 0, + size: 0 + }; + if (!oid) { + stats = fileStats; + const object = stats.isSymbolicLink() ? await fs.readlink(join(dir, filepath)) : await fs.read(join(dir, filepath)); + oid = await _writeObject({ + fs, + gitdir, + type: "blob", + format: "content", + object + }); + } + index2.insert({ + filepath, + oid, + stats + }); + return oid; + }); + } catch (err) { + err.caller = "git.updateIndex"; + throw err; + } +} +function version() { + try { + return pkg.version; + } catch (err) { + err.caller = "git.version"; + throw err; + } +} +async function walk({ + fs, + dir, + gitdir = join(dir, ".git"), + trees, + map, + reduce, + iterate, + cache = {} +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("trees", trees); + return await _walk({ + fs: new FileSystem(fs), + cache, + dir, + gitdir, + trees, + map, + reduce, + iterate + }); + } catch (err) { + err.caller = "git.walk"; + throw err; + } +} +async function writeBlob({ fs, dir, gitdir = join(dir, ".git"), blob }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("blob", blob); + return await _writeObject({ + fs: new FileSystem(fs), + gitdir, + type: "blob", + object: blob, + format: "content" + }); + } catch (err) { + err.caller = "git.writeBlob"; + throw err; + } +} +async function _writeCommit({ fs, gitdir, commit: commit2 }) { + const object = GitCommit.from(commit2).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "commit", + object, + format: "content" + }); + return oid; +} +async function writeCommit({ + fs, + dir, + gitdir = join(dir, ".git"), + commit: commit2 +}) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("commit", commit2); + return await _writeCommit({ + fs: new FileSystem(fs), + gitdir, + commit: commit2 + }); + } catch (err) { + err.caller = "git.writeCommit"; + throw err; + } +} +async function writeObject({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + type, + object, + format = "parsed", + oid, + encoding = void 0 +}) { + try { + const fs = new FileSystem(_fs); + if (format === "parsed") { + switch (type) { + case "commit": + object = GitCommit.from(object).toObject(); + break; + case "tree": + object = GitTree.from(object).toObject(); + break; + case "blob": + object = Buffer.from(object, encoding); + break; + case "tag": + object = GitAnnotatedTag.from(object).toObject(); + break; + default: + throw new ObjectTypeError(oid || "", type, "blob|commit|tag|tree"); + } + format = "content"; + } + oid = await _writeObject({ + fs, + gitdir, + type, + object, + oid, + format + }); + return oid; + } catch (err) { + err.caller = "git.writeObject"; + throw err; + } +} +async function writeRef({ + fs: _fs, + dir, + gitdir = join(dir, ".git"), + ref, + value, + force = false, + symbolic = false +}) { + try { + assertParameter("fs", _fs); + assertParameter("gitdir", gitdir); + assertParameter("ref", ref); + assertParameter("value", value); + const fs = new FileSystem(_fs); + if (ref !== import_clean_git_ref.default.clean(ref)) { + throw new InvalidRefNameError(ref, import_clean_git_ref.default.clean(ref)); + } + if (!force && await GitRefManager.exists({ fs, gitdir, ref })) { + throw new AlreadyExistsError("ref", ref); + } + if (symbolic) { + await GitRefManager.writeSymbolicRef({ + fs, + gitdir, + ref, + value + }); + } else { + value = await GitRefManager.resolve({ + fs, + gitdir, + ref: value + }); + await GitRefManager.writeRef({ + fs, + gitdir, + ref, + value + }); + } + } catch (err) { + err.caller = "git.writeRef"; + throw err; + } +} +async function _writeTag({ fs, gitdir, tag: tag2 }) { + const object = GitAnnotatedTag.from(tag2).toObject(); + const oid = await _writeObject({ + fs, + gitdir, + type: "tag", + object, + format: "content" + }); + return oid; +} +async function writeTag({ fs, dir, gitdir = join(dir, ".git"), tag: tag2 }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tag", tag2); + return await _writeTag({ + fs: new FileSystem(fs), + gitdir, + tag: tag2 + }); + } catch (err) { + err.caller = "git.writeTag"; + throw err; + } +} +async function writeTree({ fs, dir, gitdir = join(dir, ".git"), tree }) { + try { + assertParameter("fs", fs); + assertParameter("gitdir", gitdir); + assertParameter("tree", tree); + return await _writeTree({ + fs: new FileSystem(fs), + gitdir, + tree + }); + } catch (err) { + err.caller = "git.writeTree"; + throw err; + } +} +var index = { + Errors, + STAGE, + TREE, + WORKDIR, + add, + abortMerge, + addNote, + addRemote, + annotatedTag, + branch, + checkout, + clone, + commit, + getConfig, + getConfigAll, + setConfig, + currentBranch, + deleteBranch, + deleteRef, + deleteRemote, + deleteTag, + expandOid, + expandRef, + fastForward, + fetch, + findMergeBase, + findRoot, + getRemoteInfo, + getRemoteInfo2, + hashBlob, + indexPack, + init, + isDescendent, + isIgnored, + listBranches, + listFiles, + listNotes, + listRemotes, + listServerRefs, + listTags, + log, + merge, + packObjects, + pull, + push, + readBlob, + readCommit, + readNote, + readObject, + readTag, + readTree, + remove, + removeNote, + renameBranch, + resetIndex, + updateIndex, + resolveRef, + status, + statusMatrix, + tag, + version, + walk, + writeBlob, + writeCommit, + writeObject, + writeRef, + writeTag, + writeTree +}; +var isomorphic_git_default = index; + +// src/main.ts +var import_obsidian31 = require("obsidian"); + +// src/lineAuthor/lineAuthorIntegration.ts +init_polyfill_buffer(); +var import_obsidian12 = require("obsidian"); + +// src/gitManager/simpleGit.ts +init_polyfill_buffer(); +var import_child_process2 = require("child_process"); +var import_debug2 = __toESM(require_browser()); +var import_obsidian4 = require("obsidian"); +var path = __toESM(require("path")); +var import_path = require("path"); + +// node_modules/.pnpm/simple-git@https+++codeload.github.com+Vinzent03+git-js+tar.gz+6b9a2d899bc8256e38a1d6f0b8a881_rku6lxlylrt42756swupwur2wa/node_modules/simple-git/dist/esm/index.js +init_polyfill_buffer(); +var import_file_exists = __toESM(require_dist(), 1); +var import_debug = __toESM(require_browser(), 1); +var import_child_process = require("child_process"); +var import_promise_deferred = __toESM(require_dist2(), 1); +var import_promise_deferred2 = __toESM(require_dist2(), 1); +var __defProp2 = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __hasOwnProp2 = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp2 = (obj, key2, value) => key2 in obj ? __defProp2(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp2.call(b, prop)) + __defNormalProp2(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp2(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __markAsModule = (target) => __defProp2(target, "__esModule", { value: true }); +var __esm2 = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export2 = (target, all) => { + for (var name in all) + __defProp2(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, copyDefault, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key2 of __getOwnPropNames2(module2)) + if (!__hasOwnProp2.call(target, key2) && (copyDefault || key2 !== "default")) + __defProp2(target, key2, { get: () => module2[key2], enumerable: !(desc = __getOwnPropDesc2(module2, key2)) || desc.enumerable }); + } + return target; +}; +var __toCommonJS2 = /* @__PURE__ */ ((cache) => { + return (module2, temp) => { + return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp); + }; +})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0); +var __async = (__this, __arguments, generator) => { + return new Promise((resolve2, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve2(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; +var GitError; +var init_git_error = __esm2({ + "src/lib/errors/git-error.ts"() { + GitError = class extends Error { + constructor(task, message) { + super(message); + this.task = task; + Object.setPrototypeOf(this, new.target.prototype); + } + }; + } +}); +var GitResponseError; +var init_git_response_error = __esm2({ + "src/lib/errors/git-response-error.ts"() { + init_git_error(); + GitResponseError = class extends GitError { + constructor(git, message) { + super(void 0, message || String(git)); + this.git = git; + } + }; + } +}); +var TaskConfigurationError; +var init_task_configuration_error = __esm2({ + "src/lib/errors/task-configuration-error.ts"() { + init_git_error(); + TaskConfigurationError = class extends GitError { + constructor(message) { + super(void 0, message); + } + }; + } +}); +function asFunction(source) { + return typeof source === "function" ? source : NOOP; +} +function isUserFunction(source) { + return typeof source === "function" && source !== NOOP; +} +function splitOn(input, char) { + const index2 = input.indexOf(char); + if (index2 <= 0) { + return [input, ""]; + } + return [input.substr(0, index2), input.substr(index2 + 1)]; +} +function first(input, offset = 0) { + return isArrayLike(input) && input.length > offset ? input[offset] : void 0; +} +function last(input, offset = 0) { + if (isArrayLike(input) && input.length > offset) { + return input[input.length - 1 - offset]; + } +} +function isArrayLike(input) { + return !!(input && typeof input.length === "number"); +} +function toLinesWithContent(input = "", trimmed2 = true, separator2 = "\n") { + return input.split(separator2).reduce((output, line) => { + const lineContent = trimmed2 ? line.trim() : line; + if (lineContent) { + output.push(lineContent); + } + return output; + }, []); +} +function forEachLineWithContent(input, callback) { + return toLinesWithContent(input, true).map((line) => callback(line)); +} +function folderExists(path2) { + return (0, import_file_exists.exists)(path2, import_file_exists.FOLDER); +} +function append(target, item) { + if (Array.isArray(target)) { + if (!target.includes(item)) { + target.push(item); + } + } else { + target.add(item); + } + return item; +} +function including(target, item) { + if (Array.isArray(target) && !target.includes(item)) { + target.push(item); + } + return target; +} +function remove2(target, item) { + if (Array.isArray(target)) { + const index2 = target.indexOf(item); + if (index2 >= 0) { + target.splice(index2, 1); + } + } else { + target.delete(item); + } + return item; +} +function asArray(source) { + return Array.isArray(source) ? source : [source]; +} +function asStringArray(source) { + return asArray(source).map(String); +} +function asNumber(source, onNaN = 0) { + if (source == null) { + return onNaN; + } + const num2 = parseInt(source, 10); + return isNaN(num2) ? onNaN : num2; +} +function prefixedArray(input, prefix) { + const output = []; + for (let i = 0, max = input.length; i < max; i++) { + output.push(prefix, input[i]); + } + return output; +} +function bufferToString(input) { + return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); +} +function pick(source, properties) { + return Object.assign({}, ...properties.map((property) => property in source ? { [property]: source[property] } : {})); +} +function delay(duration = 0) { + return new Promise((done) => setTimeout(done, duration)); +} +var NULL; +var NOOP; +var objectToString; +var init_util = __esm2({ + "src/lib/utils/util.ts"() { + NULL = "\0"; + NOOP = () => { + }; + objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); + } +}); +function filterType(input, filter, def) { + if (filter(input)) { + return input; + } + return arguments.length > 2 ? def : void 0; +} +function filterPrimitives(input, omit) { + return /number|string|boolean/.test(typeof input) && (!omit || !omit.includes(typeof input)); +} +function filterPlainObject(input) { + return !!input && objectToString(input) === "[object Object]"; +} +function filterFunction(input) { + return typeof input === "function"; +} +var filterArray; +var filterString; +var filterStringArray; +var filterStringOrStringArray; +var filterHasLength; +var init_argument_filters = __esm2({ + "src/lib/utils/argument-filters.ts"() { + init_util(); + filterArray = (input) => { + return Array.isArray(input); + }; + filterString = (input) => { + return typeof input === "string"; + }; + filterStringArray = (input) => { + return Array.isArray(input) && input.every(filterString); + }; + filterStringOrStringArray = (input) => { + return filterString(input) || Array.isArray(input) && input.every(filterString); + }; + filterHasLength = (input) => { + if (input == null || "number|boolean|function".includes(typeof input)) { + return false; + } + return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; + }; + } +}); +var ExitCodes; +var init_exit_codes = __esm2({ + "src/lib/utils/exit-codes.ts"() { + ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { + ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; + ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; + ExitCodes2[ExitCodes2["NOT_FOUND"] = -2] = "NOT_FOUND"; + ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; + return ExitCodes2; + })(ExitCodes || {}); + } +}); +var GitOutputStreams; +var init_git_output_streams = __esm2({ + "src/lib/utils/git-output-streams.ts"() { + GitOutputStreams = class { + constructor(stdOut, stdErr) { + this.stdOut = stdOut; + this.stdErr = stdErr; + } + asStrings() { + return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); + } + }; + } +}); +var LineParser; +var RemoteLineParser; +var init_line_parser = __esm2({ + "src/lib/utils/line-parser.ts"() { + LineParser = class { + constructor(regExp, useMatches) { + this.matches = []; + this.parse = (line, target) => { + this.resetMatches(); + if (!this._regExp.every((reg, index2) => this.addMatch(reg, index2, line(index2)))) { + return false; + } + return this.useMatches(target, this.prepareMatches()) !== false; + }; + this._regExp = Array.isArray(regExp) ? regExp : [regExp]; + if (useMatches) { + this.useMatches = useMatches; + } + } + useMatches(target, match) { + throw new Error(`LineParser:useMatches not implemented`); + } + resetMatches() { + this.matches.length = 0; + } + prepareMatches() { + return this.matches; + } + addMatch(reg, index2, line) { + const matched = line && reg.exec(line); + if (matched) { + this.pushMatch(index2, matched); + } + return !!matched; + } + pushMatch(_index, matched) { + this.matches.push(...matched.slice(1)); + } + }; + RemoteLineParser = class extends LineParser { + addMatch(reg, index2, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index2, line); + } + pushMatch(index2, matched) { + if (index2 > 0 || matched.length > 1) { + super.pushMatch(index2, matched); + } + } + }; + } +}); +function createInstanceConfig(...options) { + const baseDir = process.cwd(); + const config = Object.assign(__spreadValues({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); + config.baseDir = config.baseDir || baseDir; + config.trimmed = config.trimmed === true; + return config; +} +var defaultOptions; +var init_simple_git_options = __esm2({ + "src/lib/utils/simple-git-options.ts"() { + defaultOptions = { + binary: "git", + maxConcurrentProcesses: 5, + config: [], + trimmed: false + }; + } +}); +function appendTaskOptions(options, commands2 = []) { + if (!filterPlainObject(options)) { + return commands2; + } + return Object.keys(options).reduce((commands22, key2) => { + const value = options[key2]; + if (filterPrimitives(value, ["boolean"])) { + commands22.push(key2 + "=" + value); + } else { + commands22.push(key2); + } + return commands22; + }, commands2); +} +function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { + const command = []; + for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive; i < max; i++) { + if ("string|number".includes(typeof args[i])) { + command.push(String(args[i])); + } + } + appendTaskOptions(trailingOptionsArgument(args), command); + if (!objectOnly) { + command.push(...trailingArrayArgument(args)); + } + return command; +} +function trailingArrayArgument(args) { + const hasTrailingCallback = typeof last(args) === "function"; + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []); +} +function trailingOptionsArgument(args) { + const hasTrailingCallback = filterFunction(last(args)); + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject); +} +function trailingFunctionArgument(args, includeNoop = true) { + const callback = asFunction(last(args)); + return includeNoop || isUserFunction(callback) ? callback : void 0; +} +var init_task_options = __esm2({ + "src/lib/utils/task-options.ts"() { + init_argument_filters(); + init_util(); + } +}); +function callTaskParser(parser3, streams) { + return parser3(streams.stdOut, streams.stdErr); +} +function parseStringResponse(result, parsers12, texts, trim = true) { + asArray(texts).forEach((text2) => { + for (let lines = toLinesWithContent(text2, trim), i = 0, max = lines.length; i < max; i++) { + const line = (offset = 0) => { + if (i + offset >= max) { + return; + } + return lines[i + offset]; + }; + parsers12.some(({ parse: parse2 }) => parse2(line, result)); + } + }); + return result; +} +var init_task_parser = __esm2({ + "src/lib/utils/task-parser.ts"() { + init_util(); + } +}); +var utils_exports = {}; +__export2(utils_exports, { + ExitCodes: () => ExitCodes, + GitOutputStreams: () => GitOutputStreams, + LineParser: () => LineParser, + NOOP: () => NOOP, + NULL: () => NULL, + RemoteLineParser: () => RemoteLineParser, + append: () => append, + appendTaskOptions: () => appendTaskOptions, + asArray: () => asArray, + asFunction: () => asFunction, + asNumber: () => asNumber, + asStringArray: () => asStringArray, + bufferToString: () => bufferToString, + callTaskParser: () => callTaskParser, + createInstanceConfig: () => createInstanceConfig, + delay: () => delay, + filterArray: () => filterArray, + filterFunction: () => filterFunction, + filterHasLength: () => filterHasLength, + filterPlainObject: () => filterPlainObject, + filterPrimitives: () => filterPrimitives, + filterString: () => filterString, + filterStringArray: () => filterStringArray, + filterStringOrStringArray: () => filterStringOrStringArray, + filterType: () => filterType, + first: () => first, + folderExists: () => folderExists, + forEachLineWithContent: () => forEachLineWithContent, + getTrailingOptions: () => getTrailingOptions, + including: () => including, + isUserFunction: () => isUserFunction, + last: () => last, + objectToString: () => objectToString, + parseStringResponse: () => parseStringResponse, + pick: () => pick, + prefixedArray: () => prefixedArray, + remove: () => remove2, + splitOn: () => splitOn, + toLinesWithContent: () => toLinesWithContent, + trailingFunctionArgument: () => trailingFunctionArgument, + trailingOptionsArgument: () => trailingOptionsArgument +}); +var init_utils = __esm2({ + "src/lib/utils/index.ts"() { + init_argument_filters(); + init_exit_codes(); + init_git_output_streams(); + init_line_parser(); + init_simple_git_options(); + init_task_options(); + init_task_parser(); + init_util(); + } +}); +var check_is_repo_exports = {}; +__export2(check_is_repo_exports, { + CheckRepoActions: () => CheckRepoActions, + checkIsBareRepoTask: () => checkIsBareRepoTask, + checkIsRepoRootTask: () => checkIsRepoRootTask, + checkIsRepoTask: () => checkIsRepoTask +}); +function checkIsRepoTask(action) { + switch (action) { + case "bare": + return checkIsBareRepoTask(); + case "root": + return checkIsRepoRootTask(); + } + const commands2 = ["rev-parse", "--is-inside-work-tree"]; + return { + commands: commands2, + format: "utf-8", + onError, + parser + }; +} +function checkIsRepoRootTask() { + const commands2 = ["rev-parse", "--git-dir"]; + return { + commands: commands2, + format: "utf-8", + onError, + parser(path2) { + return /^\.(git)?$/.test(path2.trim()); + } + }; +} +function checkIsBareRepoTask() { + const commands2 = ["rev-parse", "--is-bare-repository"]; + return { + commands: commands2, + format: "utf-8", + onError, + parser + }; +} +function isNotRepoMessage(error) { + return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); +} +var CheckRepoActions; +var onError; +var parser; +var init_check_is_repo = __esm2({ + "src/lib/tasks/check-is-repo.ts"() { + init_utils(); + CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { + CheckRepoActions2["BARE"] = "bare"; + CheckRepoActions2["IN_TREE"] = "tree"; + CheckRepoActions2["IS_REPO_ROOT"] = "root"; + return CheckRepoActions2; + })(CheckRepoActions || {}); + onError = ({ exitCode }, error, done, fail) => { + if (exitCode === 128 && isNotRepoMessage(error)) { + return done(Buffer.from("false")); + } + fail(error); + }; + parser = (text2) => { + return text2.trim() === "true"; + }; + } +}); +function cleanSummaryParser(dryRun, text2) { + const summary = new CleanResponse(dryRun); + const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; + toLinesWithContent(text2).forEach((line) => { + const removed = line.replace(regexp, ""); + summary.paths.push(removed); + (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); + }); + return summary; +} +var CleanResponse; +var removalRegexp; +var dryRunRemovalRegexp; +var isFolderRegexp; +var init_CleanSummary = __esm2({ + "src/lib/responses/CleanSummary.ts"() { + init_utils(); + CleanResponse = class { + constructor(dryRun) { + this.dryRun = dryRun; + this.paths = []; + this.files = []; + this.folders = []; + } + }; + removalRegexp = /^[a-z]+\s*/i; + dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; + isFolderRegexp = /\/$/; + } +}); +var task_exports = {}; +__export2(task_exports, { + EMPTY_COMMANDS: () => EMPTY_COMMANDS, + adhocExecTask: () => adhocExecTask, + configurationErrorTask: () => configurationErrorTask, + isBufferTask: () => isBufferTask, + isEmptyTask: () => isEmptyTask, + straightThroughBufferTask: () => straightThroughBufferTask, + straightThroughStringTask: () => straightThroughStringTask +}); +function adhocExecTask(parser3) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser: parser3 + }; +} +function configurationErrorTask(error) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser() { + throw typeof error === "string" ? new TaskConfigurationError(error) : error; + } + }; +} +function straightThroughStringTask(commands2, trimmed2 = false) { + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return trimmed2 ? String(text2).trim() : text2; + } + }; +} +function straightThroughBufferTask(commands2) { + return { + commands: commands2, + format: "buffer", + parser(buffer2) { + return buffer2; + } + }; +} +function isBufferTask(task) { + return task.format === "buffer"; +} +function isEmptyTask(task) { + return task.format === "empty" || !task.commands.length; +} +var EMPTY_COMMANDS; +var init_task = __esm2({ + "src/lib/tasks/task.ts"() { + init_task_configuration_error(); + EMPTY_COMMANDS = []; + } +}); +var clean_exports = {}; +__export2(clean_exports, { + CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE, + CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED, + CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION, + CleanOptions: () => CleanOptions, + cleanTask: () => cleanTask, + cleanWithOptionsTask: () => cleanWithOptionsTask, + isCleanOptionsArray: () => isCleanOptionsArray +}); +function cleanWithOptionsTask(mode, customArgs) { + const { cleanMode, options, valid } = getCleanOptions(mode); + if (!cleanMode) { + return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED); + } + if (!valid.options) { + return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); + } + options.push(...customArgs); + if (options.some(isInteractiveMode)) { + return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE); + } + return cleanTask(cleanMode, options); +} +function cleanTask(mode, customArgs) { + const commands2 = ["clean", `-${mode}`, ...customArgs]; + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return cleanSummaryParser(mode === "n", text2); + } + }; +} +function isCleanOptionsArray(input) { + return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); +} +function getCleanOptions(input) { + let cleanMode; + let options = []; + let valid = { cleanMode: false, options: true }; + input.replace(/[^a-z]i/g, "").split("").forEach((char) => { + if (isCleanMode(char)) { + cleanMode = char; + valid.cleanMode = true; + } else { + valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`); + } + }); + return { + cleanMode, + options, + valid + }; +} +function isCleanMode(cleanMode) { + return cleanMode === "f" || cleanMode === "n"; +} +function isKnownOption(option) { + return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); +} +function isInteractiveMode(option) { + if (/^-[^\-]/.test(option)) { + return option.indexOf("i") > 0; + } + return option === "--interactive"; +} +var CONFIG_ERROR_INTERACTIVE_MODE; +var CONFIG_ERROR_MODE_REQUIRED; +var CONFIG_ERROR_UNKNOWN_OPTION; +var CleanOptions; +var CleanOptionValues; +var init_clean = __esm2({ + "src/lib/tasks/clean.ts"() { + init_CleanSummary(); + init_utils(); + init_task(); + CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; + CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; + CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; + CleanOptions = /* @__PURE__ */ ((CleanOptions2) => { + CleanOptions2["DRY_RUN"] = "n"; + CleanOptions2["FORCE"] = "f"; + CleanOptions2["IGNORED_INCLUDED"] = "x"; + CleanOptions2["IGNORED_ONLY"] = "X"; + CleanOptions2["EXCLUDING"] = "e"; + CleanOptions2["QUIET"] = "q"; + CleanOptions2["RECURSIVE"] = "d"; + return CleanOptions2; + })(CleanOptions || {}); + CleanOptionValues = /* @__PURE__ */ new Set([ + "i", + ...asStringArray(Object.values(CleanOptions)) + ]); + } +}); +function configListParser(text2) { + const config = new ConfigList(); + for (const item of configParser(text2)) { + config.addValue(item.file, String(item.key), item.value); + } + return config; +} +function configGetParser(text2, key2) { + let value = null; + const values = []; + const scopes = /* @__PURE__ */ new Map(); + for (const item of configParser(text2, key2)) { + if (item.key !== key2) { + continue; + } + values.push(value = item.value); + if (!scopes.has(item.file)) { + scopes.set(item.file, []); + } + scopes.get(item.file).push(value); + } + return { + key: key2, + paths: Array.from(scopes.keys()), + scopes, + value, + values + }; +} +function configFilePath(filePath) { + return filePath.replace(/^(file):/, ""); +} +function* configParser(text2, requestedKey = null) { + const lines = text2.split("\0"); + for (let i = 0, max = lines.length - 1; i < max; ) { + const file = configFilePath(lines[i++]); + let value = lines[i++]; + let key2 = requestedKey; + if (value.includes("\n")) { + const line = splitOn(value, "\n"); + key2 = line[0]; + value = line[1]; + } + yield { file, key: key2, value }; + } +} +var ConfigList; +var init_ConfigList = __esm2({ + "src/lib/responses/ConfigList.ts"() { + init_utils(); + ConfigList = class { + constructor() { + this.files = []; + this.values = /* @__PURE__ */ Object.create(null); + } + get all() { + if (!this._all) { + this._all = this.files.reduce((all, file) => { + return Object.assign(all, this.values[file]); + }, {}); + } + return this._all; + } + addFile(file) { + if (!(file in this.values)) { + const latest = last(this.files); + this.values[file] = latest ? Object.create(this.values[latest]) : {}; + this.files.push(file); + } + return this.values[file]; + } + addValue(file, key2, value) { + const values = this.addFile(file); + if (!values.hasOwnProperty(key2)) { + values[key2] = value; + } else if (Array.isArray(values[key2])) { + values[key2].push(value); + } else { + values[key2] = [values[key2], value]; + } + this._all = void 0; + } + }; + } +}); +function asConfigScope(scope, fallback) { + if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { + return scope; + } + return fallback; +} +function addConfigTask(key2, value, append22, scope) { + const commands2 = ["config", `--${scope}`]; + if (append22) { + commands2.push("--add"); + } + commands2.push(key2, value); + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return text2; + } + }; +} +function getConfigTask(key2, scope) { + const commands2 = ["config", "--null", "--show-origin", "--get-all", key2]; + if (scope) { + commands2.splice(1, 0, `--${scope}`); + } + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return configGetParser(text2, key2); + } + }; +} +function listConfigTask(scope) { + const commands2 = ["config", "--list", "--show-origin", "--null"]; + if (scope) { + commands2.push(`--${scope}`); + } + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return configListParser(text2); + } + }; +} +function config_default() { + return { + addConfig(key2, value, ...rest) { + return this._runTask(addConfigTask(key2, value, rest[0] === true, asConfigScope( + rest[1], + "local" + /* local */ + )), trailingFunctionArgument(arguments)); + }, + getConfig(key2, scope) { + return this._runTask(getConfigTask(key2, asConfigScope(scope, void 0)), trailingFunctionArgument(arguments)); + }, + listConfig(...rest) { + return this._runTask(listConfigTask(asConfigScope(rest[0], void 0)), trailingFunctionArgument(arguments)); + } + }; +} +var GitConfigScope; +var init_config = __esm2({ + "src/lib/tasks/config.ts"() { + init_ConfigList(); + init_utils(); + GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => { + GitConfigScope2["system"] = "system"; + GitConfigScope2["global"] = "global"; + GitConfigScope2["local"] = "local"; + GitConfigScope2["worktree"] = "worktree"; + return GitConfigScope2; + })(GitConfigScope || {}); + } +}); +function grepQueryBuilder(...params) { + return new GrepQuery().param(...params); +} +function parseGrep(grep) { + const paths = /* @__PURE__ */ new Set(); + const results = {}; + forEachLineWithContent(grep, (input) => { + const [path2, line, preview] = input.split(NULL); + paths.add(path2); + (results[path2] = results[path2] || []).push({ + line: asNumber(line), + path: path2, + preview + }); + }); + return { + paths, + results + }; +} +function grep_default() { + return { + grep(searchTerm) { + const then = trailingFunctionArgument(arguments); + const options = getTrailingOptions(arguments); + for (const option of disallowedOptions) { + if (options.includes(option)) { + return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then); + } + } + if (typeof searchTerm === "string") { + searchTerm = grepQueryBuilder().param(searchTerm); + } + const commands2 = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm]; + return this._runTask({ + commands: commands2, + format: "utf-8", + parser(stdOut) { + return parseGrep(stdOut); + } + }, then); + } + }; +} +var disallowedOptions; +var Query; +var _a; +var GrepQuery; +var init_grep = __esm2({ + "src/lib/tasks/grep.ts"() { + init_utils(); + init_task(); + disallowedOptions = ["-h"]; + Query = Symbol("grepQuery"); + GrepQuery = class { + constructor() { + this[_a] = []; + } + *[(_a = Query, Symbol.iterator)]() { + for (const query of this[Query]) { + yield query; + } + } + and(...and) { + and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")"); + return this; + } + param(...param) { + this[Query].push(...prefixedArray(param, "-e")); + return this; + } + }; + } +}); +var reset_exports = {}; +__export2(reset_exports, { + ResetMode: () => ResetMode, + getResetMode: () => getResetMode, + resetTask: () => resetTask +}); +function resetTask(mode, customArgs) { + const commands2 = ["reset"]; + if (isValidResetMode(mode)) { + commands2.push(`--${mode}`); + } + commands2.push(...customArgs); + return straightThroughStringTask(commands2); +} +function getResetMode(mode) { + if (isValidResetMode(mode)) { + return mode; + } + switch (typeof mode) { + case "string": + case "undefined": + return "soft"; + } + return; +} +function isValidResetMode(mode) { + return ResetModes.includes(mode); +} +var ResetMode; +var ResetModes; +var init_reset = __esm2({ + "src/lib/tasks/reset.ts"() { + init_task(); + ResetMode = /* @__PURE__ */ ((ResetMode2) => { + ResetMode2["MIXED"] = "mixed"; + ResetMode2["SOFT"] = "soft"; + ResetMode2["HARD"] = "hard"; + ResetMode2["MERGE"] = "merge"; + ResetMode2["KEEP"] = "keep"; + return ResetMode2; + })(ResetMode || {}); + ResetModes = Array.from(Object.values(ResetMode)); + } +}); +function createLog() { + return (0, import_debug.default)("simple-git"); +} +function prefixedLogger(to, prefix, forward) { + if (!prefix || !String(prefix).replace(/\s*/, "")) { + return !forward ? to : (message, ...args) => { + to(message, ...args); + forward(message, ...args); + }; + } + return (message, ...args) => { + to(`%s ${message}`, prefix, ...args); + if (forward) { + forward(message, ...args); + } + }; +} +function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { + if (typeof name === "string") { + return name; + } + const childNamespace = childDebugger && childDebugger.namespace || ""; + if (childNamespace.startsWith(parentNamespace)) { + return childNamespace.substr(parentNamespace.length + 1); + } + return childNamespace || parentNamespace; +} +function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { + const labelPrefix = label && `[${label}]` || ""; + const spawned = []; + const debugDebugger = typeof verbose === "string" ? infoDebugger.extend(verbose) : verbose; + const key2 = childLoggerName(filterType(verbose, filterString), debugDebugger, infoDebugger); + return step(initialStep); + function sibling(name, initial) { + return append(spawned, createLogger(label, key2.replace(/^[^:]+/, name), initial, infoDebugger)); + } + function step(phase) { + const stepPrefix = phase && `[${phase}]` || ""; + const debug22 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP; + const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug22); + return Object.assign(debugDebugger ? debug22 : info, { + label, + sibling, + info, + step + }); + } +} +var init_git_logger = __esm2({ + "src/lib/git-logger.ts"() { + init_utils(); + import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); + import_debug.default.formatters.B = (value) => { + if (Buffer.isBuffer(value)) { + return value.toString("utf8"); + } + return objectToString(value); + }; + } +}); +var _TasksPendingQueue; +var TasksPendingQueue; +var init_tasks_pending_queue = __esm2({ + "src/lib/runners/tasks-pending-queue.ts"() { + init_git_error(); + init_git_logger(); + _TasksPendingQueue = class { + constructor(logLabel = "GitExecutor") { + this.logLabel = logLabel; + this._queue = /* @__PURE__ */ new Map(); + } + withProgress(task) { + return this._queue.get(task); + } + createProgress(task) { + const name = _TasksPendingQueue.getName(task.commands[0]); + const logger = createLogger(this.logLabel, name); + return { + task, + logger, + name + }; + } + push(task) { + const progress = this.createProgress(task); + progress.logger("Adding task to the queue, commands = %o", task.commands); + this._queue.set(task, progress); + return progress; + } + fatal(err) { + for (const [task, { logger }] of Array.from(this._queue.entries())) { + if (task === err.task) { + logger.info(`Failed %o`, err); + logger(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); + } else { + logger.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + } + this.complete(task); + } + if (this._queue.size !== 0) { + throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } + } + complete(task) { + const progress = this.withProgress(task); + if (progress) { + this._queue.delete(task); + } + } + attempt(task) { + const progress = this.withProgress(task); + if (!progress) { + throw new GitError(void 0, "TasksPendingQueue: attempt called for an unknown task"); + } + progress.logger("Starting task"); + return progress; + } + static getName(name = "empty") { + return `task:${name}:${++_TasksPendingQueue.counter}`; + } + }; + TasksPendingQueue = _TasksPendingQueue; + TasksPendingQueue.counter = 0; + } +}); +function pluginContext(task, commands2) { + return { + method: first(task.commands) || "", + commands: commands2 + }; +} +function onErrorReceived(target, logger) { + return (err) => { + logger(`[ERROR] child process exception %o`, err); + target.push(Buffer.from(String(err.stack), "ascii")); + }; +} +function onDataReceived(target, name, logger, output) { + return (buffer2) => { + logger(`%s received %L bytes`, name, buffer2); + output(`%B`, buffer2); + target.push(buffer2); + }; +} +var GitExecutorChain; +var init_git_executor_chain = __esm2({ + "src/lib/runners/git-executor-chain.ts"() { + init_git_error(); + init_task(); + init_utils(); + init_tasks_pending_queue(); + GitExecutorChain = class { + constructor(_executor, _scheduler, _plugins) { + this._executor = _executor; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = Promise.resolve(); + this._queue = new TasksPendingQueue(); + } + get binary() { + return this._executor.binary; + } + get cwd() { + return this._cwd || this._executor.cwd; + } + set cwd(cwd) { + this._cwd = cwd; + } + get env() { + return this._executor.env; + } + get outputHandler() { + return this._executor.outputHandler; + } + chain() { + return this; + } + push(task) { + this._queue.push(task); + return this._chain = this._chain.then(() => this.attemptTask(task)); + } + attemptTask(task) { + return __async(this, null, function* () { + const onScheduleComplete = yield this._scheduler.next(); + const onQueueComplete = () => this._queue.complete(task); + try { + const { logger } = this._queue.attempt(task); + return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger) : this.attemptRemoteTask(task, logger); + } catch (e) { + throw this.onFatalException(task, e); + } finally { + onQueueComplete(); + onScheduleComplete(); + } + }); + } + onFatalException(task, e) { + const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e)); + this._chain = Promise.resolve(); + this._queue.fatal(gitError); + return gitError; + } + attemptRemoteTask(task, logger) { + return __async(this, null, function* () { + const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands)); + const raw = yield this.gitResponse(task, this.binary, args, this.outputHandler, logger.step("SPAWN")); + const outputStreams = yield this.handleTaskData(task, args, raw, logger.step("HANDLE")); + logger(`passing response to task's parser as a %s`, task.format); + if (isBufferTask(task)) { + return callTaskParser(task.parser, outputStreams); + } + return callTaskParser(task.parser, outputStreams.asStrings()); + }); + } + attemptEmptyTask(task, logger) { + return __async(this, null, function* () { + logger(`empty task bypassing child process to call to task's parser`); + return task.parser(this); + }); + } + handleTaskData(task, args, result, logger) { + const { exitCode, rejection, stdOut, stdErr } = result; + return new Promise((done, fail) => { + logger(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); + const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues(__spreadValues({}, pluginContext(task, args)), result)); + if (error && task.onError) { + logger.info(`exitCode=%s handling with custom error handler`); + return task.onError(result, error, (newStdOut) => { + logger.info(`custom error handler treated as success`); + logger(`custom error returned a %s`, objectToString(newStdOut)); + done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr))); + }, fail); + } + if (error) { + logger.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection); + return fail(error); + } + logger.info(`retrieving task output complete`); + done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); + }); + } + gitResponse(task, command, args, outputHandler, logger) { + return __async(this, null, function* () { + const outputLogger = logger.sibling("output"); + const spawnOptions = this._plugins.exec("spawn.options", { + cwd: this.cwd, + env: this.env, + windowsHide: true + }, pluginContext(task, task.commands)); + return new Promise((done) => { + const stdOut = []; + const stdErr = []; + logger.info(`%s %o`, command, args); + logger("%O", spawnOptions); + let rejection = this._beforeSpawn(task, args); + if (rejection) { + return done({ + stdOut, + stdErr, + exitCode: 9901, + rejection + }); + } + this._plugins.exec("spawn.before", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + const spawned = (0, import_child_process.spawn)(command, args, spawnOptions); + spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger, outputLogger.step("stdOut"))); + spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger, outputLogger.step("stdErr"))); + spawned.on("error", onErrorReceived(stdErr, logger)); + if (outputHandler) { + logger(`Passing child process stdOut/stdErr to custom outputHandler`); + outputHandler(command, spawned.stdout, spawned.stderr, [...args]); + } + this._plugins.exec("spawn.after", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + spawned, + close(exitCode, reason) { + done({ + stdOut, + stdErr, + exitCode, + rejection: rejection || reason + }); + }, + kill(reason) { + if (spawned.killed) { + return; + } + rejection = reason; + spawned.kill("SIGINT"); + } + })); + }); + }); + } + _beforeSpawn(task, args) { + let rejection; + this._plugins.exec("spawn.before", void 0, __spreadProps(__spreadValues({}, pluginContext(task, args)), { + kill(reason) { + rejection = reason || rejection; + } + })); + return rejection; + } + }; + } +}); +var git_executor_exports = {}; +__export2(git_executor_exports, { + GitExecutor: () => GitExecutor +}); +var GitExecutor; +var init_git_executor = __esm2({ + "src/lib/runners/git-executor.ts"() { + init_git_executor_chain(); + GitExecutor = class { + constructor(binary = "git", cwd, _scheduler, _plugins) { + this.binary = binary; + this.cwd = cwd; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = new GitExecutorChain(this, this._scheduler, this._plugins); + } + chain() { + return new GitExecutorChain(this, this._scheduler, this._plugins); + } + push(task) { + return this._chain.push(task); + } + }; + } +}); +function taskCallback(task, response, callback = NOOP) { + const onSuccess = (data) => { + callback(null, data); + }; + const onError2 = (err) => { + if ((err == null ? void 0 : err.task) === task) { + callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, void 0); + } + }; + response.then(onSuccess, onError2); +} +function addDeprecationNoticeToError(err) { + let log2 = (name) => { + console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); + log2 = NOOP; + }; + return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); + function descriptorReducer(all, name) { + if (name in err) { + return all; + } + all[name] = { + enumerable: false, + configurable: false, + get() { + log2(name); + return err.git[name]; + } + }; + return all; + } +} +var init_task_callback = __esm2({ + "src/lib/task-callback.ts"() { + init_git_response_error(); + init_utils(); + } +}); +function changeWorkingDirectoryTask(directory, root2) { + return adhocExecTask((instance10) => { + if (!folderExists(directory)) { + throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); + } + return (root2 || instance10).cwd = directory; + }); +} +var init_change_working_directory = __esm2({ + "src/lib/tasks/change-working-directory.ts"() { + init_utils(); + init_task(); + } +}); +function checkoutTask(args) { + const commands2 = ["checkout", ...args]; + if (commands2[1] === "-b" && commands2.includes("-B")) { + commands2[1] = remove2(commands2, "-B"); + } + return straightThroughStringTask(commands2); +} +function checkout_default() { + return { + checkout() { + return this._runTask(checkoutTask(getTrailingOptions(arguments, 1)), trailingFunctionArgument(arguments)); + }, + checkoutBranch(branchName, startPoint) { + return this._runTask(checkoutTask(["-b", branchName, startPoint, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + }, + checkoutLocalBranch(branchName) { + return this._runTask(checkoutTask(["-b", branchName, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + }; +} +var init_checkout = __esm2({ + "src/lib/tasks/checkout.ts"() { + init_utils(); + init_task(); + } +}); +function parseCommitResult(stdOut) { + const result = { + author: null, + branch: "", + commit: "", + root: false, + summary: { + changes: 0, + insertions: 0, + deletions: 0 + } + }; + return parseStringResponse(result, parsers, stdOut); +} +var parsers; +var init_parse_commit = __esm2({ + "src/lib/parsers/parse-commit.ts"() { + init_utils(); + parsers = [ + new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch2, root2, commit2]) => { + result.branch = branch2; + result.commit = commit2; + result.root = !!root2; + }), + new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { + const parts = author.split("<"); + const email = parts.pop(); + if (!email || !email.includes("@")) { + return; + } + result.author = { + email: email.substr(0, email.length - 1), + name: parts.join("<").trim() + }; + }), + new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { + result.summary.changes = parseInt(changes, 10) || 0; + result.summary.insertions = parseInt(insertions, 10) || 0; + result.summary.deletions = parseInt(deletions, 10) || 0; + }), + new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines, direction]) => { + result.summary.changes = parseInt(changes, 10) || 0; + const count = parseInt(lines, 10) || 0; + if (direction === "-") { + result.summary.deletions = count; + } else if (direction === "+") { + result.summary.insertions = count; + } + }) + ]; + } +}); +function commitTask(message, files, customArgs) { + const commands2 = [ + "-c", + "core.abbrev=40", + "commit", + ...prefixedArray(message, "-m"), + ...files, + ...customArgs + ]; + return { + commands: commands2, + format: "utf-8", + parser: parseCommitResult + }; +} +function commit_default() { + return { + commit(message, ...rest) { + const next = trailingFunctionArgument(arguments); + const task = rejectDeprecatedSignatures(message) || commitTask(asArray(message), asArray(filterType(rest[0], filterStringOrStringArray, [])), [...filterType(rest[1], filterArray, []), ...getTrailingOptions(arguments, 0, true)]); + return this._runTask(task, next); + } + }; + function rejectDeprecatedSignatures(message) { + return !filterStringOrStringArray(message) && configurationErrorTask(`git.commit: requires the commit message to be supplied as a string/string[]`); + } +} +var init_commit = __esm2({ + "src/lib/tasks/commit.ts"() { + init_parse_commit(); + init_utils(); + init_task(); + } +}); +function hashObjectTask(filePath, write) { + const commands2 = ["hash-object", filePath]; + if (write) { + commands2.push("-w"); + } + return straightThroughStringTask(commands2, true); +} +var init_hash_object = __esm2({ + "src/lib/tasks/hash-object.ts"() { + init_task(); + } +}); +function parseInit(bare, path2, text2) { + const response = String(text2).trim(); + let result; + if (result = initResponseRegex.exec(response)) { + return new InitSummary(bare, path2, false, result[1]); + } + if (result = reInitResponseRegex.exec(response)) { + return new InitSummary(bare, path2, true, result[1]); + } + let gitDir = ""; + const tokens = response.split(" "); + while (tokens.length) { + const token = tokens.shift(); + if (token === "in") { + gitDir = tokens.join(" "); + break; + } + } + return new InitSummary(bare, path2, /^re/i.test(response), gitDir); +} +var InitSummary; +var initResponseRegex; +var reInitResponseRegex; +var init_InitSummary = __esm2({ + "src/lib/responses/InitSummary.ts"() { + InitSummary = class { + constructor(bare, path2, existing, gitDir) { + this.bare = bare; + this.path = path2; + this.existing = existing; + this.gitDir = gitDir; + } + }; + initResponseRegex = /^Init.+ repository in (.+)$/; + reInitResponseRegex = /^Rein.+ in (.+)$/; + } +}); +function hasBareCommand(command) { + return command.includes(bareCommand); +} +function initTask(bare = false, path2, customArgs) { + const commands2 = ["init", ...customArgs]; + if (bare && !hasBareCommand(commands2)) { + commands2.splice(1, 0, bareCommand); + } + return { + commands: commands2, + format: "utf-8", + parser(text2) { + return parseInit(commands2.includes("--bare"), path2, text2); + } + }; +} +var bareCommand; +var init_init = __esm2({ + "src/lib/tasks/init.ts"() { + init_InitSummary(); + bareCommand = "--bare"; + } +}); +function logFormatFromCommand(customArgs) { + for (let i = 0; i < customArgs.length; i++) { + const format = logFormatRegex.exec(customArgs[i]); + if (format) { + return `--${format[1]}`; + } + } + return ""; +} +function isLogFormat(customArg) { + return logFormatRegex.test(customArg); +} +var logFormatRegex; +var init_log_format = __esm2({ + "src/lib/args/log-format.ts"() { + logFormatRegex = /^--(stat|numstat|name-only|name-status)(=|$)/; + } +}); +var DiffSummary; +var init_DiffSummary = __esm2({ + "src/lib/responses/DiffSummary.ts"() { + DiffSummary = class { + constructor() { + this.changed = 0; + this.deletions = 0; + this.insertions = 0; + this.files = []; + } + }; + } +}); +function getDiffParser(format = "") { + const parser3 = diffSummaryParsers[format]; + return (stdOut) => parseStringResponse(new DiffSummary(), parser3, stdOut, false); +} +var statParser; +var numStatParser; +var nameOnlyParser; +var nameStatusParser; +var diffSummaryParsers; +var init_parse_diff_summary = __esm2({ + "src/lib/parsers/parse-diff-summary.ts"() { + init_log_format(); + init_DiffSummary(); + init_utils(); + statParser = [ + new LineParser(/(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/, (result, [file, changes, alterations = ""]) => { + result.files.push({ + file: file.trim(), + changes: asNumber(changes), + insertions: alterations.replace(/[^+]/g, "").length, + deletions: alterations.replace(/[^-]/g, "").length, + binary: false + }); + }), + new LineParser(/(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)/, (result, [file, before, after]) => { + result.files.push({ + file: file.trim(), + before: asNumber(before), + after: asNumber(after), + binary: true + }); + }), + new LineParser(/(\d+) files? changed\s*((?:, \d+ [^,]+){0,2})/, (result, [changed, summary]) => { + const inserted = /(\d+) i/.exec(summary); + const deleted = /(\d+) d/.exec(summary); + result.changed = asNumber(changed); + result.insertions = asNumber(inserted == null ? void 0 : inserted[1]); + result.deletions = asNumber(deleted == null ? void 0 : deleted[1]); + }) + ]; + numStatParser = [ + new LineParser(/(\d+)\t(\d+)\t(.+)$/, (result, [changesInsert, changesDelete, file]) => { + const insertions = asNumber(changesInsert); + const deletions = asNumber(changesDelete); + result.changed++; + result.insertions += insertions; + result.deletions += deletions; + result.files.push({ + file, + changes: insertions + deletions, + insertions, + deletions, + binary: false + }); + }), + new LineParser(/-\t-\t(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + after: 0, + before: 0, + binary: true + }); + }) + ]; + nameOnlyParser = [ + new LineParser(/(.+)$/, (result, [file]) => { + result.changed++; + result.files.push({ + file, + changes: 0, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + nameStatusParser = [ + new LineParser(/([ACDMRTUXB])([0-9][0-9][0-9])?\t(.[^\t]+)\t?(.*)?$/, (result, [status2, _similarity, from, to]) => { + result.changed++; + result.files.push({ + file: to != null ? to : from, + changes: 0, + status: status2, + insertions: 0, + deletions: 0, + binary: false + }); + }) + ]; + diffSummaryParsers = { + [ + "" + /* NONE */ + ]: statParser, + [ + "--stat" + /* STAT */ + ]: statParser, + [ + "--numstat" + /* NUM_STAT */ + ]: numStatParser, + [ + "--name-status" + /* NAME_STATUS */ + ]: nameStatusParser, + [ + "--name-only" + /* NAME_ONLY */ + ]: nameOnlyParser + }; + } +}); +function lineBuilder(tokens, fields) { + return fields.reduce((line, field, index2) => { + line[field] = tokens[index2] || ""; + return line; + }, /* @__PURE__ */ Object.create({ diff: null })); +} +function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames, logFormat = "") { + const parseDiffResult = getDiffParser(logFormat); + return function(stdOut) { + const all = toLinesWithContent(stdOut, true, START_BOUNDARY).map(function(item) { + const lineDetail = item.trim().split(COMMIT_BOUNDARY); + const listLogLine = lineBuilder(lineDetail[0].trim().split(splitter), fields); + if (lineDetail.length > 1 && !!lineDetail[1].trim()) { + listLogLine.diff = parseDiffResult(lineDetail[1]); + } + return listLogLine; + }); + return { + all, + latest: all.length && all[0] || null, + total: all.length + }; + }; +} +var START_BOUNDARY; +var COMMIT_BOUNDARY; +var SPLITTER; +var defaultFieldNames; +var init_parse_list_log_summary = __esm2({ + "src/lib/parsers/parse-list-log-summary.ts"() { + init_utils(); + init_parse_diff_summary(); + init_log_format(); + START_BOUNDARY = "\xF2\xF2\xF2\xF2\xF2\xF2 "; + COMMIT_BOUNDARY = " \xF2\xF2"; + SPLITTER = " \xF2 "; + defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; + } +}); +var diff_exports = {}; +__export2(diff_exports, { + diffSummaryTask: () => diffSummaryTask, + validateLogFormatConfig: () => validateLogFormatConfig +}); +function diffSummaryTask(customArgs) { + let logFormat = logFormatFromCommand(customArgs); + const commands2 = ["diff"]; + if (logFormat === "") { + logFormat = "--stat"; + commands2.push("--stat=4096"); + } + commands2.push(...customArgs); + return validateLogFormatConfig(commands2) || { + commands: commands2, + format: "utf-8", + parser: getDiffParser(logFormat) + }; +} +function validateLogFormatConfig(customArgs) { + const flags = customArgs.filter(isLogFormat); + if (flags.length > 1) { + return configurationErrorTask(`Summary flags are mutually exclusive - pick one of ${flags.join(",")}`); + } + if (flags.length && customArgs.includes("-z")) { + return configurationErrorTask(`Summary flag ${flags} parsing is not compatible with null termination option '-z'`); + } +} +var init_diff = __esm2({ + "src/lib/tasks/diff.ts"() { + init_log_format(); + init_parse_diff_summary(); + init_task(); + } +}); +function prettyFormat(format, splitter) { + const fields = []; + const formatStr = []; + Object.keys(format).forEach((field) => { + fields.push(field); + formatStr.push(String(format[field])); + }); + return [fields, formatStr.join(splitter)]; +} +function userOptions(input) { + return Object.keys(input).reduce((out, key2) => { + if (!(key2 in excludeOptions)) { + out[key2] = input[key2]; + } + return out; + }, {}); +} +function parseLogOptions(opt = {}, customArgs = []) { + const splitter = filterType(opt.splitter, filterString, SPLITTER); + const format = !filterPrimitives(opt.format) && opt.format ? opt.format : { + hash: "%H", + date: opt.strictDate === false ? "%ai" : "%aI", + message: "%s", + refs: "%D", + body: opt.multiLine ? "%B" : "%b", + author_name: opt.mailMap !== false ? "%aN" : "%an", + author_email: opt.mailMap !== false ? "%aE" : "%ae" + }; + const [fields, formatStr] = prettyFormat(format, splitter); + const suffix = []; + const command = [ + `--pretty=format:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`, + ...customArgs + ]; + const maxCount = opt.n || opt["max-count"] || opt.maxCount; + if (maxCount) { + command.push(`--max-count=${maxCount}`); + } + if (opt.from || opt.to) { + const rangeOperator = opt.symmetric !== false ? "..." : ".."; + suffix.push(`${opt.from || ""}${rangeOperator}${opt.to || ""}`); + } + if (filterString(opt.file)) { + suffix.push("--follow", opt.file); + } + appendTaskOptions(userOptions(opt), command); + return { + fields, + splitter, + commands: [...command, ...suffix] + }; +} +function logTask(splitter, fields, customArgs) { + const parser3 = createListLogSummaryParser(splitter, fields, logFormatFromCommand(customArgs)); + return { + commands: ["log", ...customArgs], + format: "utf-8", + parser: parser3 + }; +} +function log_default() { + return { + log(...rest) { + const next = trailingFunctionArgument(arguments); + const options = parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray)); + const task = rejectDeprecatedSignatures(...rest) || validateLogFormatConfig(options.commands) || createLogTask(options); + return this._runTask(task, next); + } + }; + function createLogTask(options) { + return logTask(options.splitter, options.fields, options.commands); + } + function rejectDeprecatedSignatures(from, to) { + return filterString(from) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); + } +} +var excludeOptions; +var init_log = __esm2({ + "src/lib/tasks/log.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_utils(); + init_task(); + init_diff(); + excludeOptions = /* @__PURE__ */ ((excludeOptions2) => { + excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty"; + excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count"; + excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount"; + excludeOptions2[excludeOptions2["n"] = 3] = "n"; + excludeOptions2[excludeOptions2["file"] = 4] = "file"; + excludeOptions2[excludeOptions2["format"] = 5] = "format"; + excludeOptions2[excludeOptions2["from"] = 6] = "from"; + excludeOptions2[excludeOptions2["to"] = 7] = "to"; + excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter"; + excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric"; + excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap"; + excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine"; + excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate"; + return excludeOptions2; + })(excludeOptions || {}); + } +}); +var MergeSummaryConflict; +var MergeSummaryDetail; +var init_MergeSummary = __esm2({ + "src/lib/responses/MergeSummary.ts"() { + MergeSummaryConflict = class { + constructor(reason, file = null, meta) { + this.reason = reason; + this.file = file; + this.meta = meta; + } + toString() { + return `${this.file}:${this.reason}`; + } + }; + MergeSummaryDetail = class { + constructor() { + this.conflicts = []; + this.merges = []; + this.result = "success"; + } + get failed() { + return this.conflicts.length > 0; + } + get reason() { + return this.result; + } + toString() { + if (this.conflicts.length) { + return `CONFLICTS: ${this.conflicts.join(", ")}`; + } + return "OK"; + } + }; + } +}); +var PullSummary; +var PullFailedSummary; +var init_PullSummary = __esm2({ + "src/lib/responses/PullSummary.ts"() { + PullSummary = class { + constructor() { + this.remoteMessages = { + all: [] + }; + this.created = []; + this.deleted = []; + this.files = []; + this.deletions = {}; + this.insertions = {}; + this.summary = { + changes: 0, + deletions: 0, + insertions: 0 + }; + } + }; + PullFailedSummary = class { + constructor() { + this.remote = ""; + this.hash = { + local: "", + remote: "" + }; + this.branch = { + local: "", + remote: "" + }; + this.message = ""; + } + toString() { + return this.message; + } + }; + } +}); +function objectEnumerationResult(remoteMessages) { + return remoteMessages.objects = remoteMessages.objects || { + compressing: 0, + counting: 0, + enumerating: 0, + packReused: 0, + reused: { count: 0, delta: 0 }, + total: { count: 0, delta: 0 } + }; +} +function asObjectCount(source) { + const count = /^\s*(\d+)/.exec(source); + const delta = /delta (\d+)/i.exec(source); + return { + count: asNumber(count && count[1] || "0"), + delta: asNumber(delta && delta[1] || "0") + }; +} +var remoteMessagesObjectParsers; +var init_parse_remote_objects = __esm2({ + "src/lib/parsers/parse-remote-objects.ts"() { + init_utils(); + remoteMessagesObjectParsers = [ + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { + const objects = objectEnumerationResult(result.remoteMessages); + objects.total = asObjectCount(total); + objects.reused = asObjectCount(reused); + objects.packReused = asNumber(packReused); + }) + ]; + } +}); +function parseRemoteMessages(_stdOut, stdErr) { + return parseStringResponse({ remoteMessages: new RemoteMessageSummary() }, parsers2, stdErr); +} +var parsers2; +var RemoteMessageSummary; +var init_parse_remote_messages = __esm2({ + "src/lib/parsers/parse-remote-messages.ts"() { + init_utils(); + init_parse_remote_objects(); + parsers2 = [ + new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text2]) => { + result.remoteMessages.all.push(text2.trim()); + return false; + }), + ...remoteMessagesObjectParsers, + new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { + result.remoteMessages.pullRequestUrl = pullRequestUrl; + }), + new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { + result.remoteMessages.vulnerabilities = { + count: asNumber(count), + summary, + url + }; + }) + ]; + RemoteMessageSummary = class { + constructor() { + this.all = []; + } + }; + } +}); +function parsePullErrorResult(stdOut, stdErr) { + const pullError = parseStringResponse(new PullFailedSummary(), errorParsers, [stdOut, stdErr]); + return pullError.message && pullError; +} +var FILE_UPDATE_REGEX; +var SUMMARY_REGEX; +var ACTION_REGEX; +var parsers3; +var errorParsers; +var parsePullDetail; +var parsePullResult; +var init_parse_pull = __esm2({ + "src/lib/parsers/parse-pull.ts"() { + init_PullSummary(); + init_utils(); + init_parse_remote_messages(); + FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; + SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; + ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; + parsers3 = [ + new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { + result.files.push(file); + if (insertions) { + result.insertions[file] = insertions.length; + } + if (deletions) { + result.deletions[file] = deletions.length; + } + }), + new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { + if (insertions !== void 0 || deletions !== void 0) { + result.summary.changes = +changes || 0; + result.summary.insertions = +insertions || 0; + result.summary.deletions = +deletions || 0; + return true; + } + return false; + }), + new LineParser(ACTION_REGEX, (result, [action, file]) => { + append(result.files, file); + append(action === "create" ? result.created : result.deleted, file); + }) + ]; + errorParsers = [ + new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)), + new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)), + new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => { + result.branch.local = branchLocal; + result.hash.local = hashLocal; + result.branch.remote = branchRemote; + result.hash.remote = hashRemote; + }) + ]; + parsePullDetail = (stdOut, stdErr) => { + return parseStringResponse(new PullSummary(), parsers3, [stdOut, stdErr]); + }; + parsePullResult = (stdOut, stdErr) => { + return Object.assign(new PullSummary(), parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr)); + }; + } +}); +var parsers4; +var parseMergeResult; +var parseMergeDetail; +var init_parse_merge = __esm2({ + "src/lib/parsers/parse-merge.ts"() { + init_MergeSummary(); + init_utils(); + init_parse_pull(); + parsers4 = [ + new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { + summary.merges.push(autoMerge); + }), + new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file)); + }), + new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef2]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef: deleteRef2 })); + }), + new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, null)); + }), + new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { + summary.result = result; + }) + ]; + parseMergeResult = (stdOut, stdErr) => { + return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr)); + }; + parseMergeDetail = (stdOut) => { + return parseStringResponse(new MergeSummaryDetail(), parsers4, stdOut); + }; + } +}); +function mergeTask(customArgs) { + if (!customArgs.length) { + return configurationErrorTask("Git.merge requires at least one option"); + } + return { + commands: ["merge", ...customArgs], + format: "utf-8", + parser(stdOut, stdErr) { + const merge2 = parseMergeResult(stdOut, stdErr); + if (merge2.failed) { + throw new GitResponseError(merge2); + } + return merge2; + } + }; +} +var init_merge = __esm2({ + "src/lib/tasks/merge.ts"() { + init_git_response_error(); + init_parse_merge(); + init_task(); + } +}); +function pushResultPushedItem(local, remote, status2) { + const deleted = status2.includes("deleted"); + const tag2 = status2.includes("tag") || /^refs\/tags/.test(local); + const alreadyUpdated = !status2.includes("new"); + return { + deleted, + tag: tag2, + branch: !tag2, + new: !alreadyUpdated, + alreadyUpdated, + local, + remote + }; +} +var parsers5; +var parsePushResult; +var parsePushDetail; +var init_parse_push = __esm2({ + "src/lib/parsers/parse-push.ts"() { + init_utils(); + init_parse_remote_messages(); + parsers5 = [ + new LineParser(/^Pushing to (.+)$/, (result, [repo]) => { + result.repo = repo; + }), + new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { + result.ref = __spreadProps(__spreadValues({}, result.ref || {}), { + local + }); + }), + new LineParser(/^[=*-]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { + result.pushed.push(pushResultPushedItem(local, remote, type)); + }), + new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { + result.branch = __spreadProps(__spreadValues({}, result.branch || {}), { + local, + remote, + remoteName + }); + }), + new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { + result.update = { + head: { + local, + remote + }, + hash: { + from, + to + } + }; + }) + ]; + parsePushResult = (stdOut, stdErr) => { + const pushDetail = parsePushDetail(stdOut, stdErr); + const responseDetail = parseRemoteMessages(stdOut, stdErr); + return __spreadValues(__spreadValues({}, pushDetail), responseDetail); + }; + parsePushDetail = (stdOut, stdErr) => { + return parseStringResponse({ pushed: [] }, parsers5, [stdOut, stdErr]); + }; + } +}); +var push_exports = {}; +__export2(push_exports, { + pushTagsTask: () => pushTagsTask, + pushTask: () => pushTask +}); +function pushTagsTask(ref = {}, customArgs) { + append(customArgs, "--tags"); + return pushTask(ref, customArgs); +} +function pushTask(ref = {}, customArgs) { + const commands2 = ["push", ...customArgs]; + if (ref.branch) { + commands2.splice(1, 0, ref.branch); + } + if (ref.remote) { + commands2.splice(1, 0, ref.remote); + } + remove2(commands2, "-v"); + append(commands2, "--verbose"); + append(commands2, "--porcelain"); + return { + commands: commands2, + format: "utf-8", + parser: parsePushResult + }; +} +var init_push = __esm2({ + "src/lib/tasks/push.ts"() { + init_parse_push(); + init_utils(); + } +}); +var fromPathRegex; +var FileStatusSummary; +var init_FileStatusSummary = __esm2({ + "src/lib/responses/FileStatusSummary.ts"() { + fromPathRegex = /^(.+) -> (.+)$/; + FileStatusSummary = class { + constructor(path2, index2, working_dir) { + this.path = path2; + this.index = index2; + this.working_dir = working_dir; + if (index2 + working_dir === "R") { + const detail = fromPathRegex.exec(path2) || [null, path2, path2]; + this.from = detail[1] || ""; + this.path = detail[2] || ""; + } + } + }; + } +}); +function renamedFile(line) { + const [to, from] = line.split(NULL); + return { + from: from || to, + to + }; +} +function parser2(indexX, indexY, handler) { + return [`${indexX}${indexY}`, handler]; +} +function conflicts(indexX, ...indexY) { + return indexY.map((y) => parser2(indexX, y, (result, file) => append(result.conflicted, file))); +} +function splitLine(result, lineStr) { + const trimmed2 = lineStr.trim(); + switch (" ") { + case trimmed2.charAt(2): + return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3)); + case trimmed2.charAt(1): + return data(" ", trimmed2.charAt(0), trimmed2.substr(2)); + default: + return; + } + function data(index2, workingDir, path2) { + const raw = `${index2}${workingDir}`; + const handler = parsers6.get(raw); + if (handler) { + handler(result, path2); + } + if (raw !== "##" && raw !== "!!") { + result.files.push(new FileStatusSummary(path2.replace(/\0.+$/, ""), index2, workingDir)); + } + } +} +var StatusSummary; +var parsers6; +var parseStatusSummary; +var init_StatusSummary = __esm2({ + "src/lib/responses/StatusSummary.ts"() { + init_utils(); + init_FileStatusSummary(); + StatusSummary = class { + constructor() { + this.not_added = []; + this.conflicted = []; + this.created = []; + this.deleted = []; + this.ignored = void 0; + this.modified = []; + this.renamed = []; + this.files = []; + this.staged = []; + this.ahead = 0; + this.behind = 0; + this.current = null; + this.tracking = null; + this.detached = false; + this.isClean = () => { + return !this.files.length; + }; + } + }; + parsers6 = new Map([ + parser2(" ", "A", (result, file) => append(result.created, file)), + parser2(" ", "D", (result, file) => append(result.deleted, file)), + parser2(" ", "M", (result, file) => append(result.modified, file)), + parser2("A", " ", (result, file) => append(result.created, file) && append(result.staged, file)), + parser2("A", "M", (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)), + parser2("D", " ", (result, file) => append(result.deleted, file) && append(result.staged, file)), + parser2("M", " ", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("M", "M", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("R", " ", (result, file) => { + append(result.renamed, renamedFile(file)); + }), + parser2("R", "M", (result, file) => { + const renamed = renamedFile(file); + append(result.renamed, renamed); + append(result.modified, renamed.to); + }), + parser2("!", "!", (_result, _file) => { + append(_result.ignored = _result.ignored || [], _file); + }), + parser2("?", "?", (result, file) => append(result.not_added, file)), + ...conflicts( + "A", + "A", + "U" + /* UNMERGED */ + ), + ...conflicts( + "D", + "D", + "U" + /* UNMERGED */ + ), + ...conflicts( + "U", + "A", + "D", + "U" + /* UNMERGED */ + ), + [ + "##", + (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + result.detached = /\(no branch\)/.test(line); + } + ] + ]); + parseStatusSummary = function(text2) { + const lines = text2.split(NULL); + const status2 = new StatusSummary(); + for (let i = 0, l = lines.length; i < l; ) { + let line = lines[i++].trim(); + if (!line) { + continue; + } + if (line.charAt(0) === "R") { + line += NULL + (lines[i++] || ""); + } + splitLine(status2, line); + } + return status2; + }; + } +}); +function statusTask(customArgs) { + const commands2 = [ + "status", + "--porcelain", + "-b", + "-u", + "--null", + ...customArgs.filter((arg) => !ignoredOptions.includes(arg)) + ]; + return { + format: "utf-8", + commands: commands2, + parser(text2) { + return parseStatusSummary(text2); + } + }; +} +var ignoredOptions; +var init_status = __esm2({ + "src/lib/tasks/status.ts"() { + init_StatusSummary(); + ignoredOptions = ["--null", "-z"]; + } +}); +function versionResponse(major = 0, minor = 0, patch = 0, agent = "", installed = true) { + return Object.defineProperty({ + major, + minor, + patch, + agent, + installed + }, "toString", { + value() { + return `${this.major}.${this.minor}.${this.patch}`; + }, + configurable: false, + enumerable: false + }); +} +function notInstalledResponse() { + return versionResponse(0, 0, 0, "", false); +} +function version_default() { + return { + version() { + return this._runTask({ + commands: ["--version"], + format: "utf-8", + parser: versionParser, + onError(result, error, done, fail) { + if (result.exitCode === -2) { + return done(Buffer.from(NOT_INSTALLED)); + } + fail(error); + } + }); + } + }; +} +function versionParser(stdOut) { + if (stdOut === NOT_INSTALLED) { + return notInstalledResponse(); + } + return parseStringResponse(versionResponse(0, 0, 0, stdOut), parsers7, stdOut); +} +var NOT_INSTALLED; +var parsers7; +var init_version = __esm2({ + "src/lib/tasks/version.ts"() { + init_utils(); + NOT_INSTALLED = "installed=false"; + parsers7 = [ + new LineParser(/version (\d+)\.(\d+)\.(\d+)(?:\s*\((.+)\))?/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), asNumber(patch), agent)); + }), + new LineParser(/version (\d+)\.(\d+)\.(\D+)(.+)?$/, (result, [major, minor, patch, agent = ""]) => { + Object.assign(result, versionResponse(asNumber(major), asNumber(minor), patch, agent)); + }) + ]; + } +}); +var simple_git_api_exports = {}; +__export2(simple_git_api_exports, { + SimpleGitApi: () => SimpleGitApi +}); +var SimpleGitApi; +var init_simple_git_api = __esm2({ + "src/lib/simple-git-api.ts"() { + init_task_callback(); + init_change_working_directory(); + init_checkout(); + init_commit(); + init_config(); + init_grep(); + init_hash_object(); + init_init(); + init_log(); + init_merge(); + init_push(); + init_status(); + init_task(); + init_version(); + init_utils(); + SimpleGitApi = class { + constructor(_executor) { + this._executor = _executor; + } + _runTask(task, then) { + const chain = this._executor.chain(); + const promise2 = chain.push(task); + if (then) { + taskCallback(task, promise2, then); + } + return Object.create(this, { + then: { value: promise2.then.bind(promise2) }, + catch: { value: promise2.catch.bind(promise2) }, + _executor: { value: chain } + }); + } + add(files) { + return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments)); + } + cwd(directory) { + const next = trailingFunctionArgument(arguments); + if (typeof directory === "string") { + return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next); + } + if (typeof (directory == null ? void 0 : directory.path) === "string") { + return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || void 0), next); + } + return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); + } + hashObject(path2, write) { + return this._runTask(hashObjectTask(path2, write === true), trailingFunctionArgument(arguments)); + } + init(bare) { + return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + merge() { + return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + mergeFromTo(remote, branch2) { + if (!(filterString(remote) && filterString(branch2))) { + return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); + } + return this._runTask(mergeTask([remote, branch2, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); + } + outputHandler(handler) { + this._executor.outputHandler = handler; + return this; + } + push() { + const task = pushTask({ + remote: filterType(arguments[0], filterString), + branch: filterType(arguments[1], filterString) + }, getTrailingOptions(arguments)); + return this._runTask(task, trailingFunctionArgument(arguments)); + } + stash() { + return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + status() { + return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + }; + Object.assign(SimpleGitApi.prototype, checkout_default(), commit_default(), config_default(), grep_default(), log_default(), version_default()); + } +}); +var scheduler_exports = {}; +__export2(scheduler_exports, { + Scheduler: () => Scheduler +}); +var createScheduledTask; +var Scheduler; +var init_scheduler = __esm2({ + "src/lib/runners/scheduler.ts"() { + init_utils(); + init_git_logger(); + createScheduledTask = /* @__PURE__ */ (() => { + let id = 0; + return () => { + id++; + const { promise: promise2, done } = (0, import_promise_deferred.createDeferred)(); + return { + promise: promise2, + done, + id + }; + }; + })(); + Scheduler = class { + constructor(concurrency = 2) { + this.concurrency = concurrency; + this.logger = createLogger("", "scheduler"); + this.pending = []; + this.running = []; + this.logger(`Constructed, concurrency=%s`, concurrency); + } + schedule() { + if (!this.pending.length || this.running.length >= this.concurrency) { + this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); + return; + } + const task = append(this.running, this.pending.shift()); + this.logger(`Attempting id=%s`, task.id); + task.done(() => { + this.logger(`Completing id=`, task.id); + remove2(this.running, task); + this.schedule(); + }); + } + next() { + const { promise: promise2, id } = append(this.pending, createScheduledTask()); + this.logger(`Scheduling id=%s`, id); + this.schedule(); + return promise2; + } + }; + } +}); +var apply_patch_exports = {}; +__export2(apply_patch_exports, { + applyPatchTask: () => applyPatchTask +}); +function applyPatchTask(patches, customArgs) { + return straightThroughStringTask(["apply", ...customArgs, ...patches]); +} +var init_apply_patch = __esm2({ + "src/lib/tasks/apply-patch.ts"() { + init_task(); + } +}); +function branchDeletionSuccess(branch2, hash2) { + return { + branch: branch2, + hash: hash2, + success: true + }; +} +function branchDeletionFailure(branch2) { + return { + branch: branch2, + hash: null, + success: false + }; +} +var BranchDeletionBatch; +var init_BranchDeleteSummary = __esm2({ + "src/lib/responses/BranchDeleteSummary.ts"() { + BranchDeletionBatch = class { + constructor() { + this.all = []; + this.branches = {}; + this.errors = []; + } + get success() { + return !this.errors.length; + } + }; + } +}); +function hasBranchDeletionError(data, processExitCode) { + return processExitCode === 1 && deleteErrorRegex.test(data); +} +var deleteSuccessRegex; +var deleteErrorRegex; +var parsers8; +var parseBranchDeletions; +var init_parse_branch_delete = __esm2({ + "src/lib/parsers/parse-branch-delete.ts"() { + init_BranchDeleteSummary(); + init_utils(); + deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; + deleteErrorRegex = /^error[^']+'([^']+)'/m; + parsers8 = [ + new LineParser(deleteSuccessRegex, (result, [branch2, hash2]) => { + const deletion = branchDeletionSuccess(branch2, hash2); + result.all.push(deletion); + result.branches[branch2] = deletion; + }), + new LineParser(deleteErrorRegex, (result, [branch2]) => { + const deletion = branchDeletionFailure(branch2); + result.errors.push(deletion); + result.all.push(deletion); + result.branches[branch2] = deletion; + }) + ]; + parseBranchDeletions = (stdOut, stdErr) => { + return parseStringResponse(new BranchDeletionBatch(), parsers8, [stdOut, stdErr]); + }; + } +}); +var BranchSummaryResult; +var init_BranchSummary = __esm2({ + "src/lib/responses/BranchSummary.ts"() { + BranchSummaryResult = class { + constructor() { + this.all = []; + this.branches = {}; + this.current = ""; + this.detached = false; + } + push(status2, detached, name, commit2, label) { + if (status2 === "*") { + this.detached = detached; + this.current = name; + } + this.all.push(name); + this.branches[name] = { + current: status2 === "*", + linkedWorkTree: status2 === "+", + name, + commit: commit2, + label + }; + } + }; + } +}); +function branchStatus(input) { + return input ? input.charAt(0) : ""; +} +function parseBranchSummary(stdOut) { + return parseStringResponse(new BranchSummaryResult(), parsers9, stdOut); +} +var parsers9; +var init_parse_branch = __esm2({ + "src/lib/parsers/parse-branch.ts"() { + init_BranchSummary(); + init_utils(); + parsers9 = [ + new LineParser(/^([*+]\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), true, name, commit2, label); + }), + new LineParser(/^([*+]\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s, (result, [current, name, commit2, label]) => { + result.push(branchStatus(current), false, name, commit2, label); + }) + ]; + } +}); +var branch_exports = {}; +__export2(branch_exports, { + branchLocalTask: () => branchLocalTask, + branchTask: () => branchTask, + containsDeleteBranchCommand: () => containsDeleteBranchCommand, + deleteBranchTask: () => deleteBranchTask, + deleteBranchesTask: () => deleteBranchesTask +}); +function containsDeleteBranchCommand(commands2) { + const deleteCommands = ["-d", "-D", "--delete"]; + return commands2.some((command) => deleteCommands.includes(command)); +} +function branchTask(customArgs) { + const isDelete = containsDeleteBranchCommand(customArgs); + const commands2 = ["branch", ...customArgs]; + if (commands2.length === 1) { + commands2.push("-a"); + } + if (!commands2.includes("-v")) { + commands2.splice(1, 0, "-v"); + } + return { + format: "utf-8", + commands: commands2, + parser(stdOut, stdErr) { + if (isDelete) { + return parseBranchDeletions(stdOut, stdErr).all[0]; + } + return parseBranchSummary(stdOut); + } + }; +} +function branchLocalTask() { + const parser3 = parseBranchSummary; + return { + format: "utf-8", + commands: ["branch", "-v"], + parser: parser3 + }; +} +function deleteBranchesTask(branches, forceDelete = false) { + return { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr); + }, + onError({ exitCode, stdOut }, error, done, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + done(stdOut); + } + }; +} +function deleteBranchTask(branch2, forceDelete = false) { + const task = { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch2], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr).branches[branch2]; + }, + onError({ exitCode, stdErr, stdOut }, error, _, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error)); + } + }; + return task; +} +var init_branch = __esm2({ + "src/lib/tasks/branch.ts"() { + init_git_response_error(); + init_parse_branch_delete(); + init_parse_branch(); + init_utils(); + } +}); +var parseCheckIgnore; +var init_CheckIgnore = __esm2({ + "src/lib/responses/CheckIgnore.ts"() { + parseCheckIgnore = (text2) => { + return text2.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); + }; + } +}); +var check_ignore_exports = {}; +__export2(check_ignore_exports, { + checkIgnoreTask: () => checkIgnoreTask +}); +function checkIgnoreTask(paths) { + return { + commands: ["check-ignore", ...paths], + format: "utf-8", + parser: parseCheckIgnore + }; +} +var init_check_ignore = __esm2({ + "src/lib/tasks/check-ignore.ts"() { + init_CheckIgnore(); + } +}); +var clone_exports = {}; +__export2(clone_exports, { + cloneMirrorTask: () => cloneMirrorTask, + cloneTask: () => cloneTask +}); +function disallowedCommand(command) { + return /^--upload-pack(=|$)/.test(command); +} +function cloneTask(repo, directory, customArgs) { + const commands2 = ["clone", ...customArgs]; + filterString(repo) && commands2.push(repo); + filterString(directory) && commands2.push(directory); + const banned = commands2.find(disallowedCommand); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return straightThroughStringTask(commands2); +} +function cloneMirrorTask(repo, directory, customArgs) { + append(customArgs, "--mirror"); + return cloneTask(repo, directory, customArgs); +} +var init_clone = __esm2({ + "src/lib/tasks/clone.ts"() { + init_task(); + init_utils(); + } +}); +function parseFetchResult(stdOut, stdErr) { + const result = { + raw: stdOut, + remote: null, + branches: [], + tags: [], + updated: [], + deleted: [] + }; + return parseStringResponse(result, parsers10, [stdOut, stdErr]); +} +var parsers10; +var init_parse_fetch = __esm2({ + "src/lib/parsers/parse-fetch.ts"() { + init_utils(); + parsers10 = [ + new LineParser(/From (.+)$/, (result, [remote]) => { + result.remote = remote; + }), + new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.branches.push({ + name, + tracking + }); + }), + new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.tags.push({ + name, + tracking + }); + }), + new LineParser(/- \[deleted]\s+\S+\s*-> (.+)$/, (result, [tracking]) => { + result.deleted.push({ + tracking + }); + }), + new LineParser(/\s*([^.]+)\.\.(\S+)\s+(\S+)\s*-> (.+)$/, (result, [from, to, name, tracking]) => { + result.updated.push({ + name, + tracking, + to, + from + }); + }) + ]; + } +}); +var fetch_exports = {}; +__export2(fetch_exports, { + fetchTask: () => fetchTask +}); +function disallowedCommand2(command) { + return /^--upload-pack(=|$)/.test(command); +} +function fetchTask(remote, branch2, customArgs) { + const commands2 = ["fetch", ...customArgs]; + if (remote && branch2) { + commands2.push(remote, branch2); + } + const banned = commands2.find(disallowedCommand2); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return { + commands: commands2, + format: "utf-8", + parser: parseFetchResult + }; +} +var init_fetch = __esm2({ + "src/lib/tasks/fetch.ts"() { + init_parse_fetch(); + init_task(); + } +}); +function parseMoveResult(stdOut) { + return parseStringResponse({ moves: [] }, parsers11, stdOut); +} +var parsers11; +var init_parse_move = __esm2({ + "src/lib/parsers/parse-move.ts"() { + init_utils(); + parsers11 = [ + new LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { + result.moves.push({ from, to }); + }) + ]; + } +}); +var move_exports = {}; +__export2(move_exports, { + moveTask: () => moveTask +}); +function moveTask(from, to) { + return { + commands: ["mv", "-v", ...asArray(from), to], + format: "utf-8", + parser: parseMoveResult + }; +} +var init_move = __esm2({ + "src/lib/tasks/move.ts"() { + init_parse_move(); + init_utils(); + } +}); +var pull_exports = {}; +__export2(pull_exports, { + pullTask: () => pullTask +}); +function pullTask(remote, branch2, customArgs) { + const commands2 = ["pull", ...customArgs]; + if (remote && branch2) { + commands2.splice(1, 0, remote, branch2); + } + return { + commands: commands2, + format: "utf-8", + parser(stdOut, stdErr) { + return parsePullResult(stdOut, stdErr); + }, + onError(result, _error, _done, fail) { + const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr)); + if (pullError) { + return fail(new GitResponseError(pullError)); + } + fail(_error); + } + }; +} +var init_pull = __esm2({ + "src/lib/tasks/pull.ts"() { + init_git_response_error(); + init_parse_pull(); + init_utils(); + } +}); +function parseGetRemotes(text2) { + const remotes = {}; + forEach(text2, ([name]) => remotes[name] = { name }); + return Object.values(remotes); +} +function parseGetRemotesVerbose(text2) { + const remotes = {}; + forEach(text2, ([name, url, purpose]) => { + if (!remotes.hasOwnProperty(name)) { + remotes[name] = { + name, + refs: { fetch: "", push: "" } + }; + } + if (purpose && url) { + remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url; + } + }); + return Object.values(remotes); +} +function forEach(text2, handler) { + forEachLineWithContent(text2, (line) => handler(line.split(/\s+/))); +} +var init_GetRemoteSummary = __esm2({ + "src/lib/responses/GetRemoteSummary.ts"() { + init_utils(); + } +}); +var remote_exports = {}; +__export2(remote_exports, { + addRemoteTask: () => addRemoteTask, + getRemotesTask: () => getRemotesTask, + listRemotesTask: () => listRemotesTask, + remoteTask: () => remoteTask, + removeRemoteTask: () => removeRemoteTask +}); +function addRemoteTask(remoteName, remoteRepo, customArgs = []) { + return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); +} +function getRemotesTask(verbose) { + const commands2 = ["remote"]; + if (verbose) { + commands2.push("-v"); + } + return { + commands: commands2, + format: "utf-8", + parser: verbose ? parseGetRemotesVerbose : parseGetRemotes + }; +} +function listRemotesTask(customArgs = []) { + const commands2 = [...customArgs]; + if (commands2[0] !== "ls-remote") { + commands2.unshift("ls-remote"); + } + return straightThroughStringTask(commands2); +} +function remoteTask(customArgs = []) { + const commands2 = [...customArgs]; + if (commands2[0] !== "remote") { + commands2.unshift("remote"); + } + return straightThroughStringTask(commands2); +} +function removeRemoteTask(remoteName) { + return straightThroughStringTask(["remote", "remove", remoteName]); +} +var init_remote = __esm2({ + "src/lib/tasks/remote.ts"() { + init_GetRemoteSummary(); + init_task(); + } +}); +var stash_list_exports = {}; +__export2(stash_list_exports, { + stashListTask: () => stashListTask +}); +function stashListTask(opt = {}, customArgs) { + const options = parseLogOptions(opt); + const commands2 = ["stash", "list", ...options.commands, ...customArgs]; + const parser3 = createListLogSummaryParser(options.splitter, options.fields, logFormatFromCommand(commands2)); + return validateLogFormatConfig(commands2) || { + commands: commands2, + format: "utf-8", + parser: parser3 + }; +} +var init_stash_list = __esm2({ + "src/lib/tasks/stash-list.ts"() { + init_log_format(); + init_parse_list_log_summary(); + init_diff(); + init_log(); + } +}); +var sub_module_exports = {}; +__export2(sub_module_exports, { + addSubModuleTask: () => addSubModuleTask, + initSubModuleTask: () => initSubModuleTask, + subModuleTask: () => subModuleTask, + updateSubModuleTask: () => updateSubModuleTask +}); +function addSubModuleTask(repo, path2) { + return subModuleTask(["add", repo, path2]); +} +function initSubModuleTask(customArgs) { + return subModuleTask(["init", ...customArgs]); +} +function subModuleTask(customArgs) { + const commands2 = [...customArgs]; + if (commands2[0] !== "submodule") { + commands2.unshift("submodule"); + } + return straightThroughStringTask(commands2); +} +function updateSubModuleTask(customArgs) { + return subModuleTask(["update", ...customArgs]); +} +var init_sub_module = __esm2({ + "src/lib/tasks/sub-module.ts"() { + init_task(); + } +}); +function singleSorted(a, b) { + const aIsNum = isNaN(a); + const bIsNum = isNaN(b); + if (aIsNum !== bIsNum) { + return aIsNum ? 1 : -1; + } + return aIsNum ? sorted(a, b) : 0; +} +function sorted(a, b) { + return a === b ? 0 : a > b ? 1 : -1; +} +function trimmed(input) { + return input.trim(); +} +function toNumber(input) { + if (typeof input === "string") { + return parseInt(input.replace(/^\D+/g, ""), 10) || 0; + } + return 0; +} +var TagList; +var parseTagList; +var init_TagList = __esm2({ + "src/lib/responses/TagList.ts"() { + TagList = class { + constructor(all, latest) { + this.all = all; + this.latest = latest; + } + }; + parseTagList = function(data, customSort = false) { + const tags = data.split("\n").map(trimmed).filter(Boolean); + if (!customSort) { + tags.sort(function(tagA, tagB) { + const partsA = tagA.split("."); + const partsB = tagB.split("."); + if (partsA.length === 1 || partsB.length === 1) { + return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); + } + for (let i = 0, l = Math.max(partsA.length, partsB.length); i < l; i++) { + const diff3 = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff3) { + return diff3; + } + } + return 0; + }); + } + const latest = customSort ? tags[0] : [...tags].reverse().find((tag2) => tag2.indexOf(".") >= 0); + return new TagList(tags, latest); + }; + } +}); +var tag_exports = {}; +__export2(tag_exports, { + addAnnotatedTagTask: () => addAnnotatedTagTask, + addTagTask: () => addTagTask, + tagListTask: () => tagListTask +}); +function tagListTask(customArgs = []) { + const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); + return { + format: "utf-8", + commands: ["tag", "-l", ...customArgs], + parser(text2) { + return parseTagList(text2, hasCustomSort); + } + }; +} +function addTagTask(name) { + return { + format: "utf-8", + commands: ["tag", name], + parser() { + return { name }; + } + }; +} +function addAnnotatedTagTask(name, tagMessage) { + return { + format: "utf-8", + commands: ["tag", "-a", "-m", tagMessage, name], + parser() { + return { name }; + } + }; +} +var init_tag = __esm2({ + "src/lib/tasks/tag.ts"() { + init_TagList(); + } +}); +var require_git = __commonJS2({ + "src/git.js"(exports2, module2) { + var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS2(git_executor_exports)); + var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS2(simple_git_api_exports)); + var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS2(scheduler_exports)); + var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS2(task_exports)); + var { + asArray: asArray2, + filterArray: filterArray2, + filterPrimitives: filterPrimitives2, + filterString: filterString2, + filterStringOrStringArray: filterStringOrStringArray2, + filterType: filterType2, + getTrailingOptions: getTrailingOptions2, + trailingFunctionArgument: trailingFunctionArgument2, + trailingOptionsArgument: trailingOptionsArgument2 + } = (init_utils(), __toCommonJS2(utils_exports)); + var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS2(apply_patch_exports)); + var { + branchTask: branchTask2, + branchLocalTask: branchLocalTask2, + deleteBranchesTask: deleteBranchesTask2, + deleteBranchTask: deleteBranchTask2 + } = (init_branch(), __toCommonJS2(branch_exports)); + var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS2(check_ignore_exports)); + var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS2(check_is_repo_exports)); + var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS2(clone_exports)); + var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS2(clean_exports)); + var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS2(diff_exports)); + var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS2(fetch_exports)); + var { moveTask: moveTask2 } = (init_move(), __toCommonJS2(move_exports)); + var { pullTask: pullTask2 } = (init_pull(), __toCommonJS2(pull_exports)); + var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS2(push_exports)); + var { + addRemoteTask: addRemoteTask2, + getRemotesTask: getRemotesTask2, + listRemotesTask: listRemotesTask2, + remoteTask: remoteTask2, + removeRemoteTask: removeRemoteTask2 + } = (init_remote(), __toCommonJS2(remote_exports)); + var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS2(reset_exports)); + var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS2(stash_list_exports)); + var { + addSubModuleTask: addSubModuleTask2, + initSubModuleTask: initSubModuleTask2, + subModuleTask: subModuleTask2, + updateSubModuleTask: updateSubModuleTask2 + } = (init_sub_module(), __toCommonJS2(sub_module_exports)); + var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS2(tag_exports)); + var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS2(task_exports)); + function Git2(options, plugins) { + this._executor = new GitExecutor2(options.binary, options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); + this._trimmed = options.trimmed; + } + (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; + Git2.prototype.customBinary = function(command) { + this._executor.binary = command; + return this; + }; + Git2.prototype.env = function(name, value) { + if (arguments.length === 1 && typeof name === "object") { + this._executor.env = name; + } else { + (this._executor.env = this._executor.env || {})[name] = value; + } + return this; + }; + Git2.prototype.stashList = function(options) { + return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments)); + }; + function createCloneTask(api, task, repoPath, localPath) { + if (typeof repoPath !== "string") { + return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`); + } + return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments)); + } + Git2.prototype.clone = function() { + return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mirror = function() { + return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mv = function(from, to) { + return this._runTask(moveTask2(from, to), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLatestTag = function(then) { + var git = this; + return this.pull(function() { + git.tags(function(err, tags) { + git.checkout(tags.latest, then); + }); + }); + }; + Git2.prototype.pull = function(remote, branch2, options, then) { + return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.fetch = function(remote, branch2) { + return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch2, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.silent = function(silence) { + console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); + return this; + }; + Git2.prototype.tags = function(options, then) { + return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rebase = function() { + return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.reset = function(mode) { + return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revert = function(commit2) { + const next = trailingFunctionArgument2(arguments); + if (typeof commit2 !== "string") { + return this._runTask(configurationErrorTask2("Commit must be a string"), next); + } + return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit2]), next); + }; + Git2.prototype.addTag = function(name) { + const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) { + return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { + return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { + return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branch = function(options, then) { + return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branchLocal = function(then) { + return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.raw = function(commands2) { + const createRestCommands = !Array.isArray(commands2); + const command = [].slice.call(createRestCommands ? arguments : commands2, 0); + for (let i = 0; i < command.length && createRestCommands; i++) { + if (!filterPrimitives2(command[i])) { + command.splice(i, command.length - i); + break; + } + } + command.push(...getTrailingOptions2(arguments, 0, true)); + var next = trailingFunctionArgument2(arguments); + if (!command.length) { + return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); + } + return this._runTask(straightThroughStringTask2(command, this._trimmed), next); + }; + Git2.prototype.submoduleAdd = function(repo, path2, then) { + return this._runTask(addSubModuleTask2(repo, path2), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleUpdate = function(args, then) { + return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleInit = function(args, then) { + return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.subModule = function(options, then) { + return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.listRemote = function() { + return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addRemote = function(remoteName, remoteRepo, then) { + return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.removeRemote = function(remoteName, then) { + return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.getRemotes = function(verbose, then) { + return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.remote = function(options, then) { + return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.tag = function(options, then) { + const command = getTrailingOptions2(arguments); + if (command[0] !== "tag") { + command.unshift("tag"); + } + return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.updateServerInfo = function(then) { + return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.pushTags = function(remote, then) { + const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments)); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rm = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rmKeepLocal = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.catFile = function(options, then) { + return this._catFile("utf-8", arguments); + }; + Git2.prototype.binaryCatFile = function() { + return this._catFile("buffer", arguments); + }; + Git2.prototype._catFile = function(format, args) { + var handler = trailingFunctionArgument2(args); + var command = ["cat-file"]; + var options = args[0]; + if (typeof options === "string") { + return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler); + } + if (Array.isArray(options)) { + command.push.apply(command, options); + } + const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command); + return this._runTask(task, handler); + }; + Git2.prototype.diff = function(options, then) { + const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.diffSummary = function() { + return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.applyPatch = function(patches) { + const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1))); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revparse = function() { + const commands2 = ["rev-parse", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands2, true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.show = function(options, then) { + return this._runTask(straightThroughStringTask2(["show", ...getTrailingOptions2(arguments, 1)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.clean = function(mode, options, then) { + const usingCleanOptionsArray = isCleanOptionsArray2(mode); + const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || ""; + const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); + return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.exec = function(then) { + const task = { + commands: [], + format: "utf-8", + parser() { + if (typeof then === "function") { + then(); + } + } + }; + return this._runTask(task); + }; + Git2.prototype.clearQueue = function() { + return this; + }; + Git2.prototype.checkIgnore = function(pathnames, then) { + return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkIsRepo = function(checkType, then) { + return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments)); + }; + module2.exports = Git2; + } +}); +init_git_error(); +var GitConstructError = class extends GitError { + constructor(config, message) { + super(void 0, message); + this.config = config; + } +}; +init_git_error(); +init_git_error(); +var GitPluginError = class extends GitError { + constructor(task, plugin, message) { + super(task, message); + this.task = task; + this.plugin = plugin; + Object.setPrototypeOf(this, new.target.prototype); + } +}; +init_git_response_error(); +init_task_configuration_error(); +init_check_is_repo(); +init_clean(); +init_config(); +init_grep(); +init_reset(); +function abortPlugin(signal) { + if (!signal) { + return; + } + const onSpawnAfter = { + type: "spawn.after", + action(_data, context) { + function kill() { + context.kill(new GitPluginError(void 0, "abort", "Abort signal received")); + } + signal.addEventListener("abort", kill); + context.spawned.on("close", () => signal.removeEventListener("abort", kill)); + } + }; + const onSpawnBefore = { + type: "spawn.before", + action(_data, context) { + if (signal.aborted) { + context.kill(new GitPluginError(void 0, "abort", "Abort already signaled")); + } + } + }; + return [onSpawnBefore, onSpawnAfter]; +} +function isConfigSwitch(arg) { + return typeof arg === "string" && arg.trim().toLowerCase() === "-c"; +} +function preventProtocolOverride(arg, next) { + if (!isConfigSwitch(arg)) { + return; + } + if (!/^\s*protocol(.[a-z]+)?.allow/.test(next)) { + return; + } + throw new GitPluginError(void 0, "unsafe", "Configuring protocol.allow is not permitted without enabling allowUnsafeExtProtocol"); +} +function preventUploadPack(arg, method2) { + if (/^\s*--(upload|receive)-pack/.test(arg)) { + throw new GitPluginError(void 0, "unsafe", `Use of --upload-pack or --receive-pack is not permitted without enabling allowUnsafePack`); + } + if (method2 === "clone" && /^\s*-u\b/.test(arg)) { + throw new GitPluginError(void 0, "unsafe", `Use of clone with option -u is not permitted without enabling allowUnsafePack`); + } + if (method2 === "push" && /^\s*--exec\b/.test(arg)) { + throw new GitPluginError(void 0, "unsafe", `Use of push with option --exec is not permitted without enabling allowUnsafePack`); + } +} +function blockUnsafeOperationsPlugin({ + allowUnsafeProtocolOverride = false, + allowUnsafePack = false +} = {}) { + return { + type: "spawn.args", + action(args, context) { + args.forEach((current, index2) => { + const next = index2 < args.length ? args[index2 + 1] : ""; + allowUnsafeProtocolOverride || preventProtocolOverride(current, next); + allowUnsafePack || preventUploadPack(current, context.method); + }); + return args; + } + }; +} +init_utils(); +function commandConfigPrefixingPlugin(configuration) { + const prefix = prefixedArray(configuration, "-c"); + return { + type: "spawn.args", + action(data) { + return [...prefix, ...data]; + } + }; +} +init_utils(); +var never = (0, import_promise_deferred2.deferred)().promise; +function completionDetectionPlugin({ + onClose = true, + onExit = 50 +} = {}) { + function createEvents() { + let exitCode = -1; + const events = { + close: (0, import_promise_deferred2.deferred)(), + closeTimeout: (0, import_promise_deferred2.deferred)(), + exit: (0, import_promise_deferred2.deferred)(), + exitTimeout: (0, import_promise_deferred2.deferred)() + }; + const result = Promise.race([ + onClose === false ? never : events.closeTimeout.promise, + onExit === false ? never : events.exitTimeout.promise + ]); + configureTimeout(onClose, events.close, events.closeTimeout); + configureTimeout(onExit, events.exit, events.exitTimeout); + return { + close(code) { + exitCode = code; + events.close.done(); + }, + exit(code) { + exitCode = code; + events.exit.done(); + }, + get exitCode() { + return exitCode; + }, + result + }; + } + function configureTimeout(flag, event, timeout) { + if (flag === false) { + return; + } + (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done); + } + return { + type: "spawn.after", + action(_0, _1) { + return __async(this, arguments, function* (_data, { spawned, close }) { + var _a2, _b; + const events = createEvents(); + let deferClose = true; + let quickClose = () => void (deferClose = false); + (_a2 = spawned.stdout) == null ? void 0 : _a2.on("data", quickClose); + (_b = spawned.stderr) == null ? void 0 : _b.on("data", quickClose); + spawned.on("error", quickClose); + spawned.on("close", (code) => events.close(code)); + spawned.on("exit", (code) => events.exit(code)); + try { + yield events.result; + if (deferClose) { + yield delay(50); + } + close(events.exitCode); + } catch (err) { + close(events.exitCode, err); + } + }); + } + }; +} +init_git_error(); +function isTaskError(result) { + return !!(result.exitCode && result.stdErr.length); +} +function getErrorMessage(result) { + return Buffer.concat([...result.stdOut, ...result.stdErr]); +} +function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { + return (error, result) => { + if (!overwrite && error || !isError(result)) { + return error; + } + return errorMessage(result); + }; +} +function errorDetectionPlugin(config) { + return { + type: "task.error", + action(data, context) { + const error = config(data.error, { + stdErr: context.stdErr, + stdOut: context.stdOut, + exitCode: context.exitCode + }); + if (Buffer.isBuffer(error)) { + return { error: new GitError(void 0, error.toString("utf-8")) }; + } + return { + error + }; + } + }; +} +init_utils(); +var PluginStore = class { + constructor() { + this.plugins = /* @__PURE__ */ new Set(); + } + add(plugin) { + const plugins = []; + asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2))); + return () => { + plugins.forEach((plugin2) => this.plugins.delete(plugin2)); + }; + } + exec(type, data, context) { + let output = data; + const contextual = Object.freeze(Object.create(context)); + for (const plugin of this.plugins) { + if (plugin.type === type) { + output = plugin.action(output, contextual); + } + } + return output; + } +}; +init_utils(); +function progressMonitorPlugin(progress) { + const progressCommand = "--progress"; + const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; + const onProgress = { + type: "spawn.after", + action(_data, context) { + var _a2; + if (!context.commands.includes(progressCommand)) { + return; + } + (_a2 = context.spawned.stderr) == null ? void 0 : _a2.on("data", (chunk) => { + const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8")); + if (!message) { + return; + } + progress({ + method: context.method, + stage: progressEventStage(message[1]), + progress: asNumber(message[2]), + processed: asNumber(message[3]), + total: asNumber(message[4]) + }); + }); + } + }; + const onArgs = { + type: "spawn.args", + action(args, context) { + if (!progressMethods.includes(context.method)) { + return args; + } + return including(args, progressCommand); + } + }; + return [onArgs, onProgress]; +} +function progressEventStage(input) { + return String(input.toLowerCase().split(" ", 1)) || "unknown"; +} +init_utils(); +function spawnOptionsPlugin(spawnOptions) { + const options = pick(spawnOptions, ["uid", "gid"]); + return { + type: "spawn.options", + action(data) { + return __spreadValues(__spreadValues({}, options), data); + } + }; +} +function timeoutPlugin({ + block, + stdErr = true, + stdOut = true +}) { + if (block > 0) { + return { + type: "spawn.after", + action(_data, context) { + var _a2, _b; + let timeout; + function wait3() { + timeout && clearTimeout(timeout); + timeout = setTimeout(kill, block); + } + function stop() { + var _a3, _b2; + (_a3 = context.spawned.stdout) == null ? void 0 : _a3.off("data", wait3); + (_b2 = context.spawned.stderr) == null ? void 0 : _b2.off("data", wait3); + context.spawned.off("exit", stop); + context.spawned.off("close", stop); + timeout && clearTimeout(timeout); + } + function kill() { + stop(); + context.kill(new GitPluginError(void 0, "timeout", `block timeout reached`)); + } + stdOut && ((_a2 = context.spawned.stdout) == null ? void 0 : _a2.on("data", wait3)); + stdErr && ((_b = context.spawned.stderr) == null ? void 0 : _b.on("data", wait3)); + context.spawned.on("exit", stop); + context.spawned.on("close", stop); + wait3(); + } + }; + } +} +init_utils(); +var Git = require_git(); +function gitInstanceFactory(baseDir, options) { + const plugins = new PluginStore(); + const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); + if (!folderExists(config.baseDir)) { + throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); + } + if (Array.isArray(config.config)) { + plugins.add(commandConfigPrefixingPlugin(config.config)); + } + plugins.add(blockUnsafeOperationsPlugin(config.unsafe)); + plugins.add(completionDetectionPlugin(config.completion)); + config.abort && plugins.add(abortPlugin(config.abort)); + config.progress && plugins.add(progressMonitorPlugin(config.progress)); + config.timeout && plugins.add(timeoutPlugin(config.timeout)); + config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); + plugins.add(errorDetectionPlugin(errorDetectionHandler(true))); + config.errors && plugins.add(errorDetectionPlugin(config.errors)); + return new Git(config, plugins); +} +init_git_response_error(); +var esm_default = gitInstanceFactory; + +// src/constants.ts +init_polyfill_buffer(); +var import_obsidian2 = require("obsidian"); +var DATE_FORMAT = "YYYY-MM-DD"; +var DATE_TIME_FORMAT_MINUTES = `${DATE_FORMAT} HH:mm`; +var DATE_TIME_FORMAT_SECONDS = `${DATE_FORMAT} HH:mm:ss`; +var GIT_LINE_AUTHORING_MOVEMENT_DETECTION_MINIMAL_LENGTH = 40; +var DEFAULT_SETTINGS = { + commitMessage: "vault backup: {{date}}", + commitDateFormat: DATE_TIME_FORMAT_SECONDS, + autoSaveInterval: 0, + autoPushInterval: 0, + autoPullInterval: 0, + autoPullOnBoot: false, + disablePush: false, + pullBeforePush: true, + disablePopups: false, + disablePopupsForNoChanges: false, + listChangedFilesInMessageBody: false, + showStatusBar: true, + updateSubmodules: false, + syncMethod: "merge", + customMessageOnAutoBackup: false, + autoBackupAfterFileChange: false, + treeStructure: false, + refreshSourceControl: import_obsidian2.Platform.isDesktopApp, + basePath: "", + differentIntervalCommitAndPush: false, + changedFilesInStatusBar: false, + showedMobileNotice: false, + refreshSourceControlTimer: 7e3, + showBranchStatusBar: true, + setLastSaveToLastCommit: false, + submoduleRecurseCheckout: false, + gitDir: "", + showFileMenu: true, + authorInHistoryView: "hide", + dateInHistoryView: false, + lineAuthor: { + show: false, + followMovement: "inactive", + authorDisplay: "initials", + showCommitHash: false, + dateTimeFormatOptions: "date", + dateTimeFormatCustomString: DATE_TIME_FORMAT_MINUTES, + dateTimeTimezone: "viewer-local", + coloringMaxAge: "1y", + // colors were picked via: + // https://color.adobe.com/de/create/color-accessibility + colorNew: { r: 255, g: 150, b: 150 }, + colorOld: { r: 120, g: 160, b: 255 }, + textColorCss: "var(--text-muted)", + // more pronounced than line numbers, but less than the content text + ignoreWhitespace: false, + gutterSpacingFallbackLength: 5 + } +}; +var SOURCE_CONTROL_VIEW_CONFIG = { + type: "git-view", + name: "Source Control", + icon: "git-pull-request" +}; +var HISTORY_VIEW_CONFIG = { + type: "git-history-view", + name: "History", + icon: "history" +}; +var DIFF_VIEW_CONFIG = { + type: "diff-view", + name: "Diff View", + icon: "git-pull-request" +}; + +// src/types.ts +init_polyfill_buffer(); +function mergeSettingsByPriority(low, high) { + const lineAuthor = Object.assign({}, low.lineAuthor, high.lineAuthor); + return Object.assign({}, low, high, { lineAuthor }); +} + +// src/utils.ts +init_polyfill_buffer(); +var cssColorConverter = __toESM(require_lib3()); +var import_deep_equal = __toESM(require_deep_equal()); +var import_obsidian3 = require("obsidian"); +var worthWalking2 = (filepath, root2) => { + if (filepath === "." || root2 == null || root2.length === 0 || root2 === ".") { + return true; + } + if (root2.length >= filepath.length) { + return root2.startsWith(filepath); + } else { + return filepath.startsWith(root2); + } +}; +function getNewLeaf(event) { + let leaf; + if (event) { + if (event.button === 0 || event.button === 1) { + const type = import_obsidian3.Keymap.isModEvent(event); + leaf = app.workspace.getLeaf(type); + } + } else { + leaf = app.workspace.getLeaf(false); + } + return leaf; +} +function mayTriggerFileMenu(app2, event, filePath, view, source) { + if (event.button == 2) { + const file = app2.vault.getAbstractFileByPath(filePath); + if (file != null) { + const fileMenu = new import_obsidian3.Menu(); + app2.workspace.trigger("file-menu", fileMenu, file, source, view); + fileMenu.showAtPosition({ x: event.pageX, y: event.pageY }); + } + } +} +function impossibleBranch(x) { + throw new Error("Impossible branch: " + x); +} +function rgbToString(rgb) { + return `rgb(${rgb.r},${rgb.g},${rgb.b})`; +} +function convertToRgb(str) { + var _a2; + const color = (_a2 = cssColorConverter.fromString(str)) == null ? void 0 : _a2.toRgbaArray(); + if (color === void 0) { + return void 0; + } + const [r, g, b] = color; + return { r, g, b }; +} +function momentToEpochSeconds(instant) { + return instant.diff(import_obsidian3.moment.unix(0), "seconds"); +} +function median(array) { + if (array.length === 0) return void 0; + return array.slice().sort()[Math.floor(array.length / 2)]; +} +function strictDeepEqual(a, b) { + return (0, import_deep_equal.default)(a, b, { strict: true }); +} +function resizeToLength(original, desiredLength, fillChar) { + if (original.length <= desiredLength) { + const prefix = new Array(desiredLength - original.length).fill(fillChar).join(""); + return prefix + original; + } else { + return original.substring(original.length - desiredLength); + } +} +function prefixOfLengthAsWhitespace(toBeRenderedText, whitespacePrefixLength) { + if (whitespacePrefixLength <= 0) return toBeRenderedText; + const whitespacePrefix = new Array(whitespacePrefixLength).fill(" ").join(""); + const originalSuffix = toBeRenderedText.substring( + whitespacePrefixLength, + toBeRenderedText.length + ); + return whitespacePrefix + originalSuffix; +} +function between(l, x, r) { + return l <= x && x <= r; +} +function splitRemoteBranch(remoteBranch) { + const [remote, ...branch2] = remoteBranch.split("/"); + return [remote, branch2.length === 0 ? void 0 : branch2.join("/")]; +} +function getDisplayPath(path2) { + if (path2.endsWith("/")) return path2; + return path2.split("/").last().replace(".md", ""); +} +function formatMinutes(minutes) { + if (minutes === 1) return "1 minute"; + return `${minutes} minutes`; +} + +// src/gitManager/gitManager.ts +init_polyfill_buffer(); +var GitManager = class { + constructor(plugin) { + this.plugin = plugin; + this.app = plugin.app; + } + // Constructs a path relative to the vault from a path relative to the git repository + getRelativeVaultPath(path2) { + if (this.plugin.settings.basePath) { + return this.plugin.settings.basePath + "/" + path2; + } else { + return path2; + } + } + // Constructs a path relative to the git repository from a path relative to the vault + // + // @param doConversion - If false, the path is returned as is. This is added because that parameter is often passed on to functions where this method is called. + getRelativeRepoPath(filePath, doConversion = true) { + if (doConversion) { + if (this.plugin.settings.basePath.length > 0) { + return filePath.substring( + this.plugin.settings.basePath.length + 1 + ); + } + } + return filePath; + } + _getTreeStructure(children2, beginLength = 0) { + const list = []; + children2 = [...children2]; + while (children2.length > 0) { + const first2 = children2.first(); + const restPath = first2.path.substring(beginLength); + if (restPath.contains("/")) { + const title = restPath.substring(0, restPath.indexOf("/")); + const childrenWithSameTitle = children2.filter((item) => { + return item.path.substring(beginLength).startsWith(title + "/"); + }); + childrenWithSameTitle.forEach((item) => children2.remove(item)); + const path2 = first2.path.substring( + 0, + restPath.indexOf("/") + beginLength + ); + list.push({ + title, + path: path2, + vaultPath: this.getRelativeVaultPath(path2), + children: this._getTreeStructure( + childrenWithSameTitle, + (beginLength > 0 ? beginLength + title.length : title.length) + 1 + ) + }); + } else { + list.push({ + title: restPath, + data: first2, + path: first2.path, + vaultPath: this.getRelativeVaultPath(first2.path) + }); + children2.remove(first2); + } + } + return list; + } + /* + * Sorts the children and simplifies the title + * If a node only contains another subdirectory, that subdirectory is moved up one level and integrated into the parent node + */ + simplify(tree) { + var _a2, _b, _c, _d; + for (const node of tree) { + while (true) { + const singleChild = ((_a2 = node.children) == null ? void 0 : _a2.length) == 1; + const singleChildIsDir = ((_c = (_b = node.children) == null ? void 0 : _b.first()) == null ? void 0 : _c.data) == void 0; + if (!(node.children != void 0 && singleChild && singleChildIsDir)) + break; + const child = node.children.first(); + node.title += "/" + child.title; + node.data = child.data; + node.path = child.path; + node.vaultPath = child.vaultPath; + node.children = child.children; + } + if (node.children != void 0) { + this.simplify(node.children); + } + (_d = node.children) == null ? void 0 : _d.sort((a, b) => { + const dirCompare = (b.data == void 0 ? 1 : 0) - (a.data == void 0 ? 1 : 0); + if (dirCompare != 0) { + return dirCompare; + } else { + return a.title.localeCompare(b.title); + } + }); + } + return tree.sort((a, b) => { + const dirCompare = (b.data == void 0 ? 1 : 0) - (a.data == void 0 ? 1 : 0); + if (dirCompare != 0) { + return dirCompare; + } else { + return a.title.localeCompare(b.title); + } + }); + } + getTreeStructure(children2) { + const tree = this._getTreeStructure(children2); + const res = this.simplify(tree); + return res; + } + async formatCommitMessage(template) { + let status2; + if (template.includes("{{numFiles}}")) { + status2 = await this.status(); + const numFiles = status2.staged.length; + template = template.replace("{{numFiles}}", String(numFiles)); + } + if (template.includes("{{hostname}}")) { + const hostname = this.plugin.localStorage.getHostname() || ""; + template = template.replace("{{hostname}}", hostname); + } + if (template.includes("{{files}}")) { + status2 = status2 != null ? status2 : await this.status(); + const changeset = {}; + let files = ""; + if (status2.staged.length < 100) { + status2.staged.forEach((value) => { + if (value.index in changeset) { + changeset[value.index].push(value.path); + } else { + changeset[value.index] = [value.path]; + } + }); + const chunks = []; + for (const [action, files2] of Object.entries(changeset)) { + chunks.push(action + " " + files2.join(" ")); + } + files = chunks.join(", "); + } else { + files = "Too many files to list"; + } + template = template.replace("{{files}}", files); + } + const moment6 = window.moment; + template = template.replace( + "{{date}}", + moment6().format(this.plugin.settings.commitDateFormat) + ); + if (this.plugin.settings.listChangedFilesInMessageBody) { + const status22 = status2 != null ? status2 : await this.status(); + let files = ""; + if (status22.staged.length < 100) { + files = status22.staged.map((e) => e.path).join("\n"); + } else { + files = "Too many files to list"; + } + template = template + "\n\nAffected files:\n" + files; + } + return template; + } +}; + +// src/gitManager/simpleGit.ts +var SimpleGit = class extends GitManager { + constructor(plugin) { + super(plugin); + } + async setGitInstance(ignoreError = false) { + if (this.isGitInstalled()) { + const adapter = this.app.vault.adapter; + const vaultBasePath = adapter.getBasePath(); + let basePath = vaultBasePath; + if (this.plugin.settings.basePath) { + const exists2 = await adapter.exists( + (0, import_obsidian4.normalizePath)(this.plugin.settings.basePath) + ); + if (exists2) { + basePath = path.join( + vaultBasePath, + this.plugin.settings.basePath + ); + } else if (!ignoreError) { + new import_obsidian4.Notice("ObsidianGit: Base path does not exist"); + } + } + this.absoluteRepoPath = basePath; + this.git = esm_default({ + baseDir: basePath, + binary: this.plugin.localStorage.getGitPath() || void 0, + config: ["core.quotepath=off"] + }); + const pathPaths = this.plugin.localStorage.getPATHPaths(); + const envVars = this.plugin.localStorage.getEnvVars(); + const gitDir = this.plugin.settings.gitDir; + if (pathPaths.length > 0) { + const path2 = process.env["PATH"] + ":" + pathPaths.join(":"); + process.env["PATH"] = path2; + } + if (gitDir) { + process.env["GIT_DIR"] = gitDir; + } + for (const envVar of envVars) { + const [key2, value] = envVar.split("="); + process.env[key2] = value; + } + import_debug2.default.enable("simple-git"); + if (await this.git.checkIsRepo()) { + const relativeRoot = await this.git.revparse("--show-cdup"); + const absoluteRoot = (0, import_path.resolve)(basePath + import_path.sep + relativeRoot); + this.absoluteRepoPath = absoluteRoot; + await this.git.cwd(absoluteRoot); + } + } + } + // Constructs a path relative to the vault from a path relative to the git repository + getRelativeVaultPath(filePath) { + const adapter = this.app.vault.adapter; + const from = adapter.getBasePath(); + const to = path.join(this.absoluteRepoPath, filePath); + let res = path.relative(from, to); + if (import_obsidian4.Platform.isWin) { + res = res.replace(/\\/g, "/"); + } + return res; + } + // Constructs a path relative to the git repository from a path relative to the vault + // + // @param doConversion - If false, the path is returned as is. This is added because that parameter is often passed on to functions where this method is called. + getRelativeRepoPath(filePath, doConversion = true) { + if (doConversion) { + const adapter = this.plugin.app.vault.adapter; + const vaultPath = adapter.getBasePath(); + const from = this.absoluteRepoPath; + const to = path.join(vaultPath, filePath); + let res = path.relative(from, to); + if (import_obsidian4.Platform.isWin) { + res = res.replace(/\\/g, "/"); + } + return res; + } + return filePath; + } + async status() { + this.plugin.setState(1 /* status */); + const status2 = await this.git.status((err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + const allFilesFormatted = status2.files.map((e) => { + const res = this.formatPath(e); + return { + path: res.path, + from: res.from, + index: e.index === "?" ? "U" : e.index, + working_dir: e.working_dir === "?" ? "U" : e.working_dir, + vault_path: this.getRelativeVaultPath(res.path) + }; + }); + return { + all: allFilesFormatted, + changed: allFilesFormatted.filter((e) => e.working_dir !== " "), + staged: allFilesFormatted.filter( + (e) => e.index !== " " && e.index != "U" + ), + conflicted: status2.conflicted.map( + (path2) => this.formatPath({ path: path2 }).path + ) + }; + } + async submoduleAwareHeadRevisonInContainingDirectory(filepath) { + const repoPath = this.getRelativeRepoPath(filepath); + const containingDirectory = path.dirname(repoPath); + const args = ["-C", containingDirectory, "rev-parse", "HEAD"]; + const result = this.git.raw(args); + result.catch( + (err) => console.warn("obsidian-git: rev-parse error:", err) + ); + return result; + } + async getSubmodulePaths() { + return new Promise(async (resolve2) => { + this.git.outputHandler(async (cmd, stdout, stderr, args) => { + if (!(args.contains("submodule") && args.contains("foreach"))) { + return; + } + let body = ""; + const root2 = this.app.vault.adapter.getBasePath() + (this.plugin.settings.basePath ? "/" + this.plugin.settings.basePath : ""); + stdout.on("data", (chunk) => { + body += chunk.toString("utf8"); + }); + stdout.on("end", async () => { + const submods = body.split("\n"); + const strippedSubmods = submods.map((i) => { + const submod = i.match(/'([^']*)'/); + if (submod != void 0) { + return root2 + "/" + submod[1] + import_path.sep; + } + }).filter((i) => !!i); + strippedSubmods.reverse(); + resolve2(strippedSubmods); + }); + }); + await this.git.subModule(["foreach", "--recursive", ""]); + this.git.outputHandler(() => { + }); + }); + } + //Remove wrong `"` like "My file.md" + formatPath(path2, renamed = false) { + function format(path3) { + if (path3 == void 0) return void 0; + if (path3.startsWith('"') && path3.endsWith('"')) { + return path3.substring(1, path3.length - 1); + } else { + return path3; + } + } + if (renamed) { + return { + from: format(path2.from), + path: format(path2.path) + }; + } else { + return { + path: format(path2.path) + }; + } + } + async blame(path2, trackMovement, ignoreWhitespace) { + path2 = this.getRelativeRepoPath(path2); + if (!await this.isTracked(path2)) return "untracked"; + const inSubmodule = await this.getSubmoduleOfFile(path2); + const args = inSubmodule ? ["-C", inSubmodule.submodule] : []; + const relativePath = inSubmodule ? inSubmodule.relativeFilepath : path2; + args.push("blame", "--porcelain"); + if (ignoreWhitespace) args.push("-w"); + const trackCArg = `-C${GIT_LINE_AUTHORING_MOVEMENT_DETECTION_MINIMAL_LENGTH}`; + switch (trackMovement) { + case "inactive": + break; + case "same-commit": + args.push("-C", trackCArg); + break; + case "all-commits": + args.push("-C", "-C", trackCArg); + break; + default: + impossibleBranch(trackMovement); + } + args.push("--", relativePath); + const rawBlame = await this.git.raw( + args, + (err) => err && console.warn("git-blame", err) + ); + return parseBlame(rawBlame); + } + async isTracked(path2) { + const inSubmodule = await this.getSubmoduleOfFile(path2); + const args = inSubmodule ? ["-C", inSubmodule.submodule] : []; + const relativePath = inSubmodule ? inSubmodule.relativeFilepath : path2; + args.push("ls-files", "--", relativePath); + return this.git.raw(args, (err) => err && console.warn("ls-files", err)).then((x) => x.trim() !== ""); + } + async commitAll({ message }) { + if (this.plugin.settings.updateSubmodules) { + this.plugin.setState(4 /* commit */); + const submodulePaths = await this.getSubmodulePaths(); + for (const item of submodulePaths) { + await this.git.cwd({ path: item, root: false }).add("-A", (err) => this.onError(err)); + await this.git.cwd({ path: item, root: false }).commit( + await this.formatCommitMessage(message), + (err) => this.onError(err) + ); + } + } + this.plugin.setState(3 /* add */); + await this.git.add("-A", (err) => this.onError(err)); + this.plugin.setState(4 /* commit */); + const res = await this.git.commit( + await this.formatCommitMessage(message), + (err) => this.onError(err) + ); + dispatchEvent(new CustomEvent("git-head-update")); + return res.summary.changes; + } + async commit({ + message, + amend + }) { + this.plugin.setState(4 /* commit */); + const res = (await this.git.commit( + await this.formatCommitMessage(message), + amend ? ["--amend"] : [], + (err) => this.onError(err) + )).summary.changes; + dispatchEvent(new CustomEvent("git-head-update")); + this.plugin.setState(0 /* idle */); + return res; + } + async stage(path2, relativeToVault) { + this.plugin.setState(3 /* add */); + path2 = this.getRelativeRepoPath(path2, relativeToVault); + await this.git.add(["--", path2], (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async stageAll({ dir }) { + this.plugin.setState(3 /* add */); + await this.git.add(dir != null ? dir : "-A", (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async unstageAll({ dir }) { + this.plugin.setState(3 /* add */); + await this.git.reset( + dir != void 0 ? ["--", dir] : [], + (err) => this.onError(err) + ); + this.plugin.setState(0 /* idle */); + } + async unstage(path2, relativeToVault) { + this.plugin.setState(3 /* add */); + path2 = this.getRelativeRepoPath(path2, relativeToVault); + await this.git.reset(["--", path2], (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async discard(filepath) { + this.plugin.setState(3 /* add */); + await this.git.checkout(["--", filepath], (err) => this.onError(err)); + this.plugin.setState(0 /* idle */); + } + async hashObject(filepath) { + filepath = this.getRelativeRepoPath(filepath); + const inSubmodule = await this.getSubmoduleOfFile(filepath); + const args = inSubmodule ? ["-C", inSubmodule.submodule] : []; + const relativeFilepath = inSubmodule ? inSubmodule.relativeFilepath : filepath; + args.push("hash-object", "--", relativeFilepath); + const revision = this.git.raw(args); + revision.catch( + (err) => err && console.warn("obsidian-git. hash-object failed:", err == null ? void 0 : err.message) + ); + return revision; + } + async discardAll({ dir }) { + return this.discard(dir != null ? dir : "."); + } + async pull() { + this.plugin.setState(2 /* pull */); + if (this.plugin.settings.updateSubmodules) + await this.git.subModule( + ["update", "--remote", "--merge", "--recursive"], + (err) => this.onError(err) + ); + const branchInfo = await this.branchInfo(); + const localCommit = await this.git.revparse( + [branchInfo.current], + (err) => this.onError(err) + ); + if (!branchInfo.tracking && this.plugin.settings.updateSubmodules) { + this.plugin.log( + "No tracking branch found. Ignoring pull of main repo and updating submodules only." + ); + return; + } + await this.git.fetch((err) => this.onError(err)); + const upstreamCommit = await this.git.revparse( + [branchInfo.tracking], + (err) => this.onError(err) + ); + if (localCommit !== upstreamCommit) { + if (this.plugin.settings.syncMethod === "merge" || this.plugin.settings.syncMethod === "rebase") { + try { + switch (this.plugin.settings.syncMethod) { + case "merge": + await this.git.merge([branchInfo.tracking]); + break; + case "rebase": + await this.git.rebase([branchInfo.tracking]); + } + } catch (err) { + this.plugin.displayError( + `Pull failed (${this.plugin.settings.syncMethod}): ${err.message}` + ); + return; + } + } else if (this.plugin.settings.syncMethod === "reset") { + try { + await this.git.raw( + [ + "update-ref", + `refs/heads/${branchInfo.current}`, + upstreamCommit + ], + (err) => this.onError(err) + ); + await this.unstageAll({}); + } catch (err) { + this.plugin.displayError( + `Sync failed (${this.plugin.settings.syncMethod}): ${err.message}` + ); + } + } + dispatchEvent(new CustomEvent("git-head-update")); + const afterMergeCommit = await this.git.revparse( + [branchInfo.current], + (err) => this.onError(err) + ); + const filesChanged = await this.git.diff([ + `${localCommit}..${afterMergeCommit}`, + "--name-only" + ]); + return filesChanged.split(/\r\n|\r|\n/).filter((value) => value.length > 0).map((e) => { + return { + path: e, + working_dir: "P", + vault_path: this.getRelativeVaultPath(e) + }; + }); + } else { + return []; + } + } + async push() { + this.plugin.setState(5 /* push */); + if (this.plugin.settings.updateSubmodules) { + const res = await this.git.env({ ...process.env, OBSIDIAN_GIT: 1 }).subModule( + [ + "foreach", + "--recursive", + `tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi` + ], + (err) => this.onError(err) + ); + console.log(res); + } + const status2 = await this.git.status(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + if (!trackingBranch && this.plugin.settings.updateSubmodules) { + this.plugin.log( + "No tracking branch found. Ignoring push of main repo and updating submodules only." + ); + return void 0; + } + const remoteChangedFiles = (await this.git.diffSummary( + [currentBranch2, trackingBranch, "--"], + (err) => this.onError(err) + )).changed; + await this.git.env({ ...process.env, OBSIDIAN_GIT: 1 }).push((err) => this.onError(err)); + return remoteChangedFiles; + } + async getUnpushedCommits() { + const status2 = await this.git.status(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + if (trackingBranch == null || currentBranch2 == null) { + return 0; + } + const remoteChangedFiles = (await this.git.diffSummary( + [currentBranch2, trackingBranch, "--"], + (err) => this.onError(err) + )).changed; + return remoteChangedFiles; + } + async canPush() { + if (this.plugin.settings.updateSubmodules === true) { + return true; + } + const status2 = await this.git.status((err) => this.onError(err)); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + if (!trackingBranch) { + return false; + } + const remoteChangedFiles = (await this.git.diffSummary([currentBranch2, trackingBranch, "--"])).changed; + return remoteChangedFiles !== 0; + } + async checkRequirements() { + if (!this.isGitInstalled()) { + return "missing-git"; + } + if (!await this.git.checkIsRepo()) { + return "missing-repo"; + } + return "valid"; + } + async branchInfo() { + const status2 = await this.git.status((err) => this.onError(err)); + const branches = await this.git.branch( + ["--no-color"], + (err) => this.onError(err) + ); + return { + current: status2.current || void 0, + tracking: status2.tracking || void 0, + branches: branches.all + }; + } + async getRemoteUrl(remote) { + try { + return await this.git.remote(["get-url", remote]) || void 0; + } catch (error) { + if (error.toString().contains(remote)) { + return void 0; + } else { + this.onError(error); + } + } + } + // https://github.com/kometenstaub/obsidian-version-history-diff/issues/3 + async log(file, relativeToVault = true, limit) { + let path2; + if (file) { + path2 = this.getRelativeRepoPath(file, relativeToVault); + } + const res = await this.git.log( + { + file: path2, + maxCount: limit, + "-m": null, + "--name-status": null + }, + (err) => this.onError(err) + ); + return res.all.map((e) => { + var _a2, _b, _c, _d; + return { + ...e, + author: { + name: e.author_name, + email: e.author_email + }, + refs: e.refs.split(", ").filter((e2) => e2.length > 0), + diff: { + ...e.diff, + files: (_b = (_a2 = e.diff) == null ? void 0 : _a2.files.map((f) => ({ + ...f, + status: f.status, + path: f.file, + hash: e.hash, + vault_path: this.getRelativeVaultPath(f.file) + }))) != null ? _b : [] + }, + fileName: (_d = (_c = e.diff) == null ? void 0 : _c.files.first()) == null ? void 0 : _d.file + }; + }); + } + async show(commitHash, file, relativeToVault = true) { + const path2 = this.getRelativeRepoPath(file, relativeToVault); + return this.git.show( + [commitHash + ":" + path2], + (err) => this.onError(err) + ); + } + async checkout(branch2, remote) { + if (remote) { + branch2 = `${remote}/${branch2}`; + } + await this.git.checkout(branch2, (err) => this.onError(err)); + if (this.plugin.settings.submoduleRecurseCheckout) { + const submodulePaths = await this.getSubmodulePaths(); + for (const submodulePath of submodulePaths) { + const branchSummary = await this.git.cwd({ path: submodulePath, root: false }).branch(); + if (Object.keys(branchSummary.branches).includes(branch2)) { + await this.git.cwd({ path: submodulePath, root: false }).checkout(branch2, (err) => this.onError(err)); + } + } + } + } + async createBranch(branch2) { + await this.git.checkout(["-b", branch2], (err) => this.onError(err)); + } + async deleteBranch(branch2, force) { + await this.git.branch( + [force ? "-D" : "-d", branch2], + (err) => this.onError(err) + ); + } + async branchIsMerged(branch2) { + const notMergedBranches = await this.git.branch( + ["--no-merged"], + (err) => this.onError(err) + ); + return !notMergedBranches.all.contains(branch2); + } + async init() { + await this.git.init(false, (err) => this.onError(err)); + } + async clone(url, dir, depth) { + await this.git.clone( + url, + path.join( + this.app.vault.adapter.getBasePath(), + dir + ), + depth ? ["--depth", `${depth}`] : [], + (err) => this.onError(err) + ); + } + async setConfig(path2, value) { + if (value == void 0) { + await this.git.raw(["config", "--local", "--unset", path2]); + } else { + await this.git.addConfig(path2, value, (err) => this.onError(err)); + } + } + async getConfig(path2) { + const config = await this.git.listConfig( + "local", + (err) => this.onError(err) + ); + return config.all[path2]; + } + async fetch(remote) { + await this.git.fetch( + remote != void 0 ? [remote] : [], + (err) => this.onError(err) + ); + } + async setRemote(name, url) { + if ((await this.getRemotes()).includes(name)) + await this.git.remote( + ["set-url", name, url], + (err) => this.onError(err) + ); + else { + await this.git.remote( + ["add", name, url], + (err) => this.onError(err) + ); + } + } + async getRemoteBranches(remote) { + const res = await this.git.branch( + ["-r", "--list", `${remote}*`], + (err) => this.onError(err) + ); + const list = []; + for (const item in res.branches) { + list.push(res.branches[item].name); + } + return list; + } + async getRemotes() { + const res = await this.git.remote([], (err) => this.onError(err)); + if (res) { + return res.trim().split("\n"); + } else { + return []; + } + } + async removeRemote(remoteName) { + await this.git.removeRemote(remoteName); + } + async updateUpstreamBranch(remoteBranch) { + try { + await this.git.branch(["--set-upstream-to", remoteBranch]); + } catch (e) { + console.error(e); + try { + await this.git.branch(["--set-upstream", remoteBranch]); + } catch (e2) { + console.error(e2); + await this.git.push( + // A type error occurs here because the third element could be undefined. + // However, it is unlikely to be undefined due to the `remoteBranch`'s format, and error handling is in place. + // Therefore, we temporarily ignore the error. + // @ts-ignore + ["--set-upstream", ...splitRemoteBranch(remoteBranch)], + (err) => this.onError(err) + ); + } + } + } + updateGitPath(_) { + this.setGitInstance(); + } + updateBasePath(_) { + this.setGitInstance(true); + } + async getDiffString(filePath, stagedChanges = false, hash2) { + if (stagedChanges) + return await this.git.diff(["--cached", "--", filePath]); + if (hash2) return await this.git.show([`${hash2}`, "--", filePath]); + else return await this.git.diff(["--", filePath]); + } + async diff(file, commit1, commit2) { + return await this.git.diff([`${commit1}..${commit2}`, "--", file]); + } + async getSubmoduleOfFile(repositoryRelativeFile) { + let submoduleRoot = await this.git.raw( + [ + "-C", + path.dirname(repositoryRelativeFile), + "rev-parse", + "--show-toplevel" + ], + (err) => err && console.warn("get-submodule-of-file", err == null ? void 0 : err.message) + ); + submoduleRoot = submoduleRoot.trim(); + const superProject = await this.git.raw( + [ + "-C", + path.dirname(repositoryRelativeFile), + "rev-parse", + "--show-superproject-working-tree" + ], + (err) => err && console.warn("get-submodule-of-file", err == null ? void 0 : err.message) + ); + if (superProject.trim() === "") { + return void 0; + } + const fsAdapter = this.app.vault.adapter; + const absolutePath = fsAdapter.getFullPath( + path.normalize(repositoryRelativeFile) + ); + const newRelativePath = path.relative(submoduleRoot, absolutePath); + return { submodule: submoduleRoot, relativeFilepath: newRelativePath }; + } + async getLastCommitTime() { + const res = await this.git.log({ n: 1 }, (err) => this.onError(err)); + if (res != null && res.latest != null) { + return new Date(res.latest.date); + } + } + isGitInstalled() { + const command = (0, import_child_process2.spawnSync)( + this.plugin.localStorage.getGitPath() || "git", + ["--version"], + { + stdio: "ignore" + } + ); + if (command.error) { + console.error(command.error); + return false; + } + return true; + } + onError(error) { + if (error) { + const networkFailure = error.message.contains("Could not resolve host") || error.message.match( + /ssh: connect to host .*? port .*?: Operation timed out/ + ) || error.message.match( + /ssh: connect to host .*? port .*?: Network is unreachable/ + ); + if (!networkFailure) { + this.plugin.displayError(error.message); + this.plugin.setState(0 /* idle */); + } else if (!this.plugin.offlineMode) { + this.plugin.displayError( + "Git: Going into offline mode. Future network errors will no longer be displayed.", + 2e3 + ); + } + if (networkFailure) { + this.plugin.offlineMode = true; + this.plugin.setState(0 /* idle */); + } + } + } +}; +var zeroCommit = { + hash: "000000", + isZeroCommit: true, + summary: "" +}; +function parseBlame(blameOutputUnnormalized) { + const blameOutput = blameOutputUnnormalized.replace("\r\n", "\n"); + const blameLines = blameOutput.split("\n"); + const result = { + commits: /* @__PURE__ */ new Map(), + hashPerLine: [void 0], + // one-based indices + originalFileLineNrPerLine: [void 0], + finalFileLineNrPerLine: [void 0], + groupSizePerStartingLine: /* @__PURE__ */ new Map() + }; + let line = 1; + for (let bi = 0; bi < blameLines.length; ) { + if (startsWithNonWhitespace(blameLines[bi])) { + const lineInfo = blameLines[bi].split(" "); + const commitHash = parseLineInfoInto(lineInfo, line, result); + bi++; + for (; startsWithNonWhitespace(blameLines[bi]); bi++) { + const spaceSeparatedHeaderValues = blameLines[bi].split(" "); + parseHeaderInto(spaceSeparatedHeaderValues, result, line); + } + finalizeBlameCommitInfo(result.commits.get(commitHash)); + line += 1; + } else if (blameLines[bi] === "" && bi === blameLines.length - 1) { + } else { + throw Error( + `Expected non-whitespace line or EOF, but found: ${blameLines[bi]}` + ); + } + bi++; + } + return result; +} +function parseLineInfoInto(lineInfo, line, result) { + const hash2 = lineInfo[0]; + result.hashPerLine.push(hash2); + result.originalFileLineNrPerLine.push(parseInt(lineInfo[1])); + result.finalFileLineNrPerLine.push(parseInt(lineInfo[2])); + lineInfo.length >= 4 && result.groupSizePerStartingLine.set(line, parseInt(lineInfo[3])); + if (parseInt(lineInfo[2]) !== line) { + throw Error( + `git-blame output is out of order: ${line} vs ${lineInfo[2]}` + ); + } + return hash2; +} +function parseHeaderInto(header, out, line) { + const key2 = header[0]; + const value = header.slice(1).join(" "); + const commitHash = out.hashPerLine[line]; + const commit2 = out.commits.get(commitHash) || { + hash: commitHash, + author: {}, + committer: {}, + previous: {} + }; + switch (key2) { + case "summary": + commit2.summary = value; + break; + case "author": + commit2.author.name = value; + break; + case "author-mail": + commit2.author.email = removeEmailBrackets(value); + break; + case "author-time": + commit2.author.epochSeconds = parseInt(value); + break; + case "author-tz": + commit2.author.tz = value; + break; + case "committer": + commit2.committer.name = value; + break; + case "committer-mail": + commit2.committer.email = removeEmailBrackets(value); + break; + case "committer-time": + commit2.committer.epochSeconds = parseInt(value); + break; + case "committer-tz": + commit2.committer.tz = value; + break; + case "previous": + commit2.previous.commitHash = value; + break; + case "filename": + commit2.previous.filename = value; + break; + } + out.commits.set(commitHash, commit2); +} +function finalizeBlameCommitInfo(commit2) { + if (commit2.summary === void 0) { + throw Error(`Summary not provided for commit: ${commit2.hash}`); + } + if (isUndefinedOrEmptyObject(commit2.author)) { + commit2.author = void 0; + } + if (isUndefinedOrEmptyObject(commit2.committer)) { + commit2.committer = void 0; + } + if (isUndefinedOrEmptyObject(commit2.previous)) { + commit2.previous = void 0; + } + commit2.isZeroCommit = Boolean(commit2.hash.match(/^0*$/)); +} +function isUndefinedOrEmptyObject(obj) { + return !obj || Object.keys(obj).length === 0; +} +function startsWithNonWhitespace(str) { + return str.length > 0 && str[0].trim() === str[0]; +} +function removeEmailBrackets(gitEmail) { + const prefixCleaned = gitEmail.startsWith("<") ? gitEmail.substring(1) : gitEmail; + return prefixCleaned.endsWith(">") ? prefixCleaned.substring(0, prefixCleaned.length - 1) : prefixCleaned; +} + +// src/lineAuthor/lineAuthorProvider.ts +init_polyfill_buffer(); +var import_state4 = require("@codemirror/state"); + +// src/lineAuthor/control.ts +init_polyfill_buffer(); +var import_state2 = require("@codemirror/state"); +var import_obsidian9 = require("obsidian"); + +// src/lineAuthor/eventsPerFilepath.ts +init_polyfill_buffer(); +var SECONDS = 1e3; +var REMOVE_STALES_FREQUENCY = 60 * SECONDS; +var EventsPerFilePath = class { + constructor() { + this.eventsPerFilepath = /* @__PURE__ */ new Map(); + this.startRemoveStalesSubscribersInterval(); + } + /** + * Run the {@link handler} on the subscribers to {@link filepath}. + */ + ifFilepathDefinedTransformSubscribers(filepath, handler) { + if (!filepath) return; + this.ensureInitialized(filepath); + return handler(this.eventsPerFilepath.get(filepath)); + } + forEachSubscriber(handler) { + this.eventsPerFilepath.forEach((subs) => subs.forEach(handler)); + } + ensureInitialized(filepath) { + if (!this.eventsPerFilepath.get(filepath)) + this.eventsPerFilepath.set(filepath, /* @__PURE__ */ new Set()); + } + startRemoveStalesSubscribersInterval() { + this.removeStalesSubscribersTimer = window.setInterval( + () => this == null ? void 0 : this.forEachSubscriber((las) => las == null ? void 0 : las.removeIfStale()), + REMOVE_STALES_FREQUENCY + ); + } + clear() { + window.clearInterval(this.removeStalesSubscribersTimer); + this.eventsPerFilepath.clear(); + } +}; +var eventsPerFilePathSingleton = new EventsPerFilePath(); + +// src/lineAuthor/model.ts +init_polyfill_buffer(); +var import_state = require("@codemirror/state"); +var import_js_sha256 = __toESM(require_sha256()); + +// src/setting/settings.ts +init_polyfill_buffer(); +var import_obsidian8 = require("obsidian"); + +// src/gitManager/isomorphicGit.ts +init_polyfill_buffer(); + +// node_modules/.pnpm/diff@5.2.0/node_modules/diff/lib/index.mjs +init_polyfill_buffer(); +function Diff() { +} +Diff.prototype = { + diff: function diff(oldString, newString) { + var _options$timeout; + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self2 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + if (options.maxEditLength) { + maxEditLength = Math.min(maxEditLength, options.maxEditLength); + } + var maxExecutionTime = (_options$timeout = options.timeout) !== null && _options$timeout !== void 0 ? _options$timeout : Infinity; + var abortAfterTimestamp = Date.now() + maxExecutionTime; + var bestPath = [{ + oldPos: -1, + lastComponent: void 0 + }]; + var newPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + var minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity; + function execEditLength() { + for (var diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) { + var basePath = void 0; + var removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1]; + if (removePath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = false; + if (addPath) { + var addPathNewPos = addPath.oldPos - diagonalPath; + canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen; + } + var canRemove = removePath && removePath.oldPos + 1 < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canRemove || canAdd && removePath.oldPos + 1 < addPath.oldPos) { + basePath = self2.addToPath(addPath, true, void 0, 0); + } else { + basePath = self2.addToPath(removePath, void 0, true, 1); + } + newPos = self2.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) { + return done(buildValues(self2, basePath.lastComponent, newString, oldString, self2.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + if (basePath.oldPos + 1 >= oldLen) { + maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1); + } + if (newPos + 1 >= newLen) { + minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1); + } + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + addToPath: function addToPath(path2, added, removed, oldPosInc) { + var last2 = path2.lastComponent; + if (last2 && last2.added === added && last2.removed === removed) { + return { + oldPos: path2.oldPos + oldPosInc, + lastComponent: { + count: last2.count + 1, + added, + removed, + previousComponent: last2.previousComponent + } + }; + } else { + return { + oldPos: path2.oldPos + oldPosInc, + lastComponent: { + count: 1, + added, + removed, + previousComponent: last2 + } + }; + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.lastComponent = { + count: commonCount, + previousComponent: basePath.lastComponent + }; + } + basePath.oldPos = oldPos; + return newPos; + }, + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return value.split(""); + }, + join: function join3(chars) { + return chars.join(""); + } +}; +function buildValues(diff3, lastComponent, newString, oldString, useLongestToken) { + var components = []; + var nextComponent; + while (lastComponent) { + components.push(lastComponent); + nextComponent = lastComponent.previousComponent; + delete lastComponent.previousComponent; + lastComponent = nextComponent; + } + components.reverse(); + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff3.join(value); + } else { + component.value = diff3.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff3.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var finalComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof finalComponent.value === "string" && (finalComponent.added || finalComponent.removed) && diff3.equals("", finalComponent.value)) { + components[componentLen - 2].value += finalComponent.value; + components.pop(); + } + return components; +} +var characterDiff = new Diff(); +var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; +var reWhitespace = /\S/; +var wordDiff = new Diff(); +wordDiff.equals = function(left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); +}; +wordDiff.tokenize = function(value) { + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); + for (var i = 0; i < tokens.length - 1; i++) { + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + return tokens; +}; +var lineDiff = new Diff(); +lineDiff.tokenize = function(value) { + if (this.options.stripTrailingCr) { + value = value.replace(/\r\n/g, "\n"); + } + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + return retLines; +}; +function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); +} +var sentenceDiff = new Diff(); +sentenceDiff.tokenize = function(value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); +}; +var cssDiff = new Diff(); +cssDiff.tokenize = function(value) { + return value.split(/([{}:;,]|\s+)/); +}; +function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function(obj2) { + return typeof obj2; + }; + } else { + _typeof = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); +} +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; +} +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} +var objectPrototypeToString = Object.prototype.toString; +var jsonDiff = new Diff(); +jsonDiff.useLongestToken = true; +jsonDiff.tokenize = lineDiff.tokenize; +jsonDiff.castInput = function(value) { + var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) { + return typeof v === "undefined" ? undefinedReplacement : v; + } : _this$options$stringi; + return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " "); +}; +jsonDiff.equals = function(left, right) { + return Diff.prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1")); +}; +function canonicalize(obj, stack, replacementStack, replacer, key2) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) { + obj = replacer(key2, obj); + } + var i; + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + var canonicalizedObj; + if ("[object Array]" === objectPrototypeToString.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key2); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if (_typeof(obj) === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], _key; + for (_key in obj) { + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; +} +var arrayDiff = new Diff(); +arrayDiff.tokenize = function(value) { + return value.slice(); +}; +arrayDiff.join = arrayDiff.removeEmpty = function(value) { + return value; +}; +function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === "undefined") { + options.context = 4; + } + var diff3 = diffLines(oldStr, newStr, options); + if (!diff3) { + return; + } + diff3.push({ + value: "", + lines: [] + }); + function contextLines(lines) { + return lines.map(function(entry) { + return " " + entry; + }); + } + var hunks = []; + var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1; + var _loop = function _loop2(i2) { + var current = diff3[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n"); + current.lines = lines; + if (current.added || current.removed) { + var _curRange; + if (!oldRangeStart) { + var prev = diff3[i2 - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function(entry) { + return (current.added ? "+" : "-") + entry; + }))); + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + if (oldRangeStart) { + if (lines.length <= options.context * 2 && i2 < diff3.length - 2) { + var _curRange2; + (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); + } else { + var _curRange3; + var contextSize = Math.min(lines.length, options.context); + (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i2 >= diff3.length - 2 && lines.length <= options.context) { + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; + if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { + curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file"); + } + if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) { + curRange.push("\\ No newline at end of file"); + } + } + hunks.push(hunk); + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + for (var i = 0; i < diff3.length; i++) { + _loop(i); + } + return { + oldFileName, + newFileName, + oldHeader, + newHeader, + hunks + }; +} +function formatPatch(diff3) { + if (Array.isArray(diff3)) { + return diff3.map(formatPatch).join("\n"); + } + var ret = []; + if (diff3.oldFileName == diff3.newFileName) { + ret.push("Index: " + diff3.oldFileName); + } + ret.push("==================================================================="); + ret.push("--- " + diff3.oldFileName + (typeof diff3.oldHeader === "undefined" ? "" : " " + diff3.oldHeader)); + ret.push("+++ " + diff3.newFileName + (typeof diff3.newHeader === "undefined" ? "" : " " + diff3.newHeader)); + for (var i = 0; i < diff3.hunks.length; i++) { + var hunk = diff3.hunks[i]; + if (hunk.oldLines === 0) { + hunk.oldStart -= 1; + } + if (hunk.newLines === 0) { + hunk.newStart -= 1; + } + ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@"); + ret.push.apply(ret, hunk.lines); + } + return ret.join("\n") + "\n"; +} +function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); +} +function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); +} + +// src/gitManager/isomorphicGit.ts +var import_obsidian7 = require("obsidian"); + +// src/ui/modals/generalModal.ts +init_polyfill_buffer(); +var import_obsidian5 = require("obsidian"); +var generalModalConfigDefaults = { + options: [], + placeholder: "", + allowEmpty: false, + onlySelection: false, + initialValue: void 0 +}; +var GeneralModal = class extends import_obsidian5.SuggestModal { + constructor(config) { + super(app); + this.config = { ...generalModalConfigDefaults, ...config }; + this.setPlaceholder(this.config.placeholder); + } + open() { + super.open(); + if (this.config.initialValue != void 0) { + this.inputEl.value = this.config.initialValue; + this.inputEl.dispatchEvent(new Event("input")); + } + return new Promise((resolve2) => { + this.resolve = resolve2; + }); + } + selectSuggestion(value, evt) { + if (this.resolve) { + let res; + if (this.config.allowEmpty && value === " ") res = ""; + else if (value === "...") res = void 0; + else res = value; + this.resolve(res); + } + super.selectSuggestion(value, evt); + } + onClose() { + if (this.resolve) this.resolve(void 0); + } + getSuggestions(query) { + if (this.config.onlySelection) { + return this.config.options; + } else if (this.config.allowEmpty) { + return [query.length > 0 ? query : " ", ...this.config.options]; + } else { + return [query.length > 0 ? query : "...", ...this.config.options]; + } + } + renderSuggestion(value, el) { + el.setText(value); + } + onChooseSuggestion(item, evt) { + } +}; + +// src/gitManager/myAdapter.ts +init_polyfill_buffer(); +var import_obsidian6 = require("obsidian"); +var MyAdapter = class { + constructor(vault, plugin) { + this.plugin = plugin; + this.promises = {}; + this.adapter = vault.adapter; + this.vault = vault; + this.lastBasePath = this.plugin.settings.basePath; + this.promises.readFile = this.readFile.bind(this); + this.promises.writeFile = this.writeFile.bind(this); + this.promises.readdir = this.readdir.bind(this); + this.promises.mkdir = this.mkdir.bind(this); + this.promises.rmdir = this.rmdir.bind(this); + this.promises.stat = this.stat.bind(this); + this.promises.unlink = this.unlink.bind(this); + this.promises.lstat = this.lstat.bind(this); + this.promises.readlink = this.readlink.bind(this); + this.promises.symlink = this.symlink.bind(this); + } + async readFile(path2, opts) { + var _a2; + this.maybeLog("Read: " + path2 + JSON.stringify(opts)); + if (opts == "utf8" || opts.encoding == "utf8") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + this.maybeLog("Reuse"); + return this.vault.read(file); + } else { + return this.adapter.read(path2); + } + } else { + if (path2.endsWith(this.gitDir + "/index")) { + if (this.plugin.settings.basePath != this.lastBasePath) { + this.clearIndex(); + this.lastBasePath = this.plugin.settings.basePath; + return this.adapter.readBinary(path2); + } + return (_a2 = this.index) != null ? _a2 : this.adapter.readBinary(path2); + } + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + this.maybeLog("Reuse"); + return this.vault.readBinary(file); + } else { + return this.adapter.readBinary(path2); + } + } + } + async writeFile(path2, data) { + this.maybeLog("Write: " + path2); + if (typeof data === "string") { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + return this.vault.modify(file, data); + } else { + return this.adapter.write(path2, data); + } + } else { + if (path2.endsWith(this.gitDir + "/index")) { + this.index = data; + this.indexmtime = Date.now(); + } else { + const file = this.vault.getAbstractFileByPath(path2); + if (file instanceof import_obsidian6.TFile) { + return this.vault.modifyBinary(file, data); + } else { + return this.adapter.writeBinary(path2, data); + } + } + } + } + async readdir(path2) { + if (path2 === ".") path2 = "/"; + const res = await this.adapter.list(path2); + const all = [...res.files, ...res.folders]; + let formattedAll; + if (path2 !== "/") { + formattedAll = all.map( + (e) => (0, import_obsidian6.normalizePath)(e.substring(path2.length)) + ); + } else { + formattedAll = all; + } + return formattedAll; + } + async mkdir(path2) { + return this.adapter.mkdir(path2); + } + async rmdir(path2, opts) { + var _a2, _b; + return this.adapter.rmdir(path2, (_b = (_a2 = opts == null ? void 0 : opts.options) == null ? void 0 : _a2.recursive) != null ? _b : false); + } + async stat(path2) { + if (path2.endsWith(this.gitDir + "/index")) { + if (this.index !== void 0 && this.indexctime != void 0 && this.indexmtime != void 0) { + return { + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false, + size: this.index.length, + type: "file", + ctimeMs: this.indexctime, + mtimeMs: this.indexmtime + }; + } else { + const stat = await this.adapter.stat(path2); + if (stat == void 0) { + throw { code: "ENOENT" }; + } + this.indexctime = stat.ctime; + this.indexmtime = stat.mtime; + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } + } + if (path2 === ".") path2 = "/"; + const file = this.vault.getAbstractFileByPath(path2); + this.maybeLog("Stat: " + path2); + if (file instanceof import_obsidian6.TFile) { + this.maybeLog("Reuse stat"); + return { + ctimeMs: file.stat.ctime, + mtimeMs: file.stat.mtime, + size: file.stat.size, + type: "file", + isFile: () => true, + isDirectory: () => false, + isSymbolicLink: () => false + }; + } else { + const stat = await this.adapter.stat(path2); + if (stat) { + return { + ctimeMs: stat.ctime, + mtimeMs: stat.mtime, + size: stat.size, + type: stat.type === "folder" ? "directory" : stat.type, + isFile: () => stat.type === "file", + isDirectory: () => stat.type === "folder", + isSymbolicLink: () => false + }; + } else { + throw { code: "ENOENT" }; + } + } + } + async unlink(path2) { + return this.adapter.remove(path2); + } + async lstat(path2) { + return this.stat(path2); + } + async readlink(path2) { + throw new Error(`readlink of (${path2}) is not implemented.`); + } + async symlink(path2) { + throw new Error(`symlink of (${path2}) is not implemented.`); + } + async saveAndClear() { + if (this.index !== void 0) { + await this.adapter.writeBinary( + this.plugin.gitManager.getRelativeVaultPath( + this.gitDir + "/index" + ), + this.index, + { + ctime: this.indexctime, + mtime: this.indexmtime + } + ); + } + this.clearIndex(); + } + clearIndex() { + this.index = void 0; + this.indexctime = void 0; + this.indexmtime = void 0; + } + get gitDir() { + return this.plugin.settings.gitDir || ".git"; + } + maybeLog(text2) { + } +}; + +// src/gitManager/isomorphicGit.ts +var IsomorphicGit = class extends GitManager { + constructor(plugin) { + super(plugin); + this.FILE = 0; + this.HEAD = 1; + this.WORKDIR = 2; + this.STAGE = 3; + // Mapping from statusMatrix to git status codes based off git status --short + // See: https://isomorphic-git.org/docs/en/statusMatrix + this.status_mapping = { + "000": " ", + "003": "AD", + "020": "??", + "022": "A ", + "023": "AM", + "100": "D ", + "101": " D", + "103": "MD", + "110": "DA", + // Technically, two files: first one is deleted "D " and second one is untracked "??" + "111": " ", + "113": "MM", + "120": "DA", + // Same as "110" + "121": " M", + "122": "M ", + "123": "MM" + }; + this.noticeLength = 999999; + this.fs = new MyAdapter(this.app.vault, this.plugin); + } + getRepo() { + return { + fs: this.fs, + dir: this.plugin.settings.basePath, + gitdir: this.plugin.settings.gitDir || void 0, + onAuth: () => { + var _a2, _b; + return { + username: (_a2 = this.plugin.localStorage.getUsername()) != null ? _a2 : void 0, + password: (_b = this.plugin.localStorage.getPassword()) != null ? _b : void 0 + }; + }, + onAuthFailure: async () => { + new import_obsidian7.Notice( + "Authentication failed. Please try with different credentials" + ); + const username = await new GeneralModal({ + placeholder: "Specify your username" + }).open(); + if (username) { + const password = await new GeneralModal({ + placeholder: "Specify your password/personal access token" + }).open(); + if (password) { + this.plugin.localStorage.setUsername(username); + this.plugin.localStorage.setPassword(password); + return { + username, + password + }; + } + } + return { cancel: true }; + }, + http: { + async request({ + url, + method: method2, + headers, + body + }) { + if (body) { + body = await collect2(body); + body = body.buffer; + } + const res = await (0, import_obsidian7.requestUrl)({ + url, + method: method2, + headers, + body, + throw: false + }); + return { + url, + method: method2, + headers: res.headers, + body: [new Uint8Array(res.arrayBuffer)], + statusCode: res.status, + statusMessage: res.status.toString() + }; + } + } + }; + } + async wrapFS(call) { + try { + const res = await call; + await this.fs.saveAndClear(); + return res; + } catch (error) { + await this.fs.saveAndClear(); + throw error; + } + } + async status() { + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian7.Notice( + "This takes longer: Getting status", + this.noticeLength + ); + }, 2e4); + try { + this.plugin.setState(1 /* status */); + const status2 = (await this.wrapFS(isomorphic_git_default.statusMatrix({ ...this.getRepo() }))).map((row) => this.getFileStatusResult(row)); + const changed = status2.filter( + (fileStatus) => fileStatus.working_dir !== " " + ); + const staged = status2.filter( + (fileStatus) => fileStatus.index !== " " && fileStatus.index !== "U" + ); + const conflicted = []; + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + return { all: status2, changed, staged, conflicted }; + } catch (error) { + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async commitAll({ + message, + status: status2, + unstagedFiles + }) { + try { + await this.checkAuthorInfo(); + await this.stageAll({ status: status2, unstagedFiles }); + return this.commit({ message }); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async commit({ + message + }) { + try { + await this.checkAuthorInfo(); + this.plugin.setState(4 /* commit */); + const formatMessage = await this.formatCommitMessage(message); + const hadConflict = this.plugin.localStorage.getConflict(); + let parent = void 0; + if (hadConflict) { + const branchInfo = await this.branchInfo(); + parent = [branchInfo.current, branchInfo.tracking]; + } + await this.wrapFS( + isomorphic_git_default.commit({ + ...this.getRepo(), + message: formatMessage, + parent + }) + ); + this.plugin.localStorage.setConflict(false); + return; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async stage(filepath, relativeToVault) { + const gitPath = this.getRelativeRepoPath(filepath, relativeToVault); + let vaultPath; + if (relativeToVault) { + vaultPath = filepath; + } else { + vaultPath = this.getRelativeVaultPath(filepath); + } + try { + this.plugin.setState(3 /* add */); + if (await this.app.vault.adapter.exists(vaultPath)) { + await this.wrapFS( + isomorphic_git_default.add({ ...this.getRepo(), filepath: gitPath }) + ); + } else { + await this.wrapFS( + isomorphic_git_default.remove({ ...this.getRepo(), filepath: gitPath }) + ); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async stageAll({ + dir, + status: status2, + unstagedFiles + }) { + try { + if (status2) { + await Promise.all( + status2.changed.map( + (file) => file.working_dir !== "D" ? this.wrapFS( + isomorphic_git_default.add({ + ...this.getRepo(), + filepath: file.path + }) + ) : isomorphic_git_default.remove({ + ...this.getRepo(), + filepath: file.path + }) + ) + ); + } else { + const filesToStage = unstagedFiles != null ? unstagedFiles : await this.getUnstagedFiles(dir != null ? dir : "."); + await Promise.all( + filesToStage.map( + ({ filepath, deleted }) => deleted ? isomorphic_git_default.remove({ ...this.getRepo(), filepath }) : this.wrapFS( + isomorphic_git_default.add({ ...this.getRepo(), filepath }) + ) + ) + ); + } + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async unstage(filepath, relativeToVault) { + try { + this.plugin.setState(3 /* add */); + filepath = this.getRelativeRepoPath(filepath, relativeToVault); + await this.wrapFS( + isomorphic_git_default.resetIndex({ ...this.getRepo(), filepath }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async unstageAll({ + dir, + status: status2 + }) { + try { + let staged; + if (status2) { + staged = status2.staged.map((file) => file.path); + } else { + const res = await this.getStagedFiles(dir != null ? dir : "."); + staged = res.map(({ filepath }) => filepath); + } + await this.wrapFS( + Promise.all( + staged.map( + (file) => isomorphic_git_default.resetIndex({ ...this.getRepo(), filepath: file }) + ) + ) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async discard(filepath) { + try { + this.plugin.setState(3 /* add */); + await this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + filepaths: [filepath], + force: true + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async discardAll({ + dir, + status: status2 + }) { + let files = []; + if (status2) { + if (dir != void 0) { + files = status2.changed.filter((file) => file.path.startsWith(dir)).map((file) => file.path); + } else { + files = status2.changed.map((file) => file.path); + } + } else { + files = (await this.getUnstagedFiles(dir)).map( + ({ filepath }) => filepath + ); + } + try { + await this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + filepaths: files, + force: true + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + getProgressText(action, event) { + let out = `${action} progress:`; + if (event.phase) { + out = `${out} ${event.phase}:`; + } + if (event.loaded) { + out = `${out} ${event.loaded}`; + if (event.total) { + out = `${out} of ${event.total}`; + } + } + return out; + } + resolveRef(ref) { + return this.wrapFS(isomorphic_git_default.resolveRef({ ...this.getRepo(), ref })); + } + async pull() { + const progressNotice = this.showNotice("Initializing pull"); + try { + this.plugin.setState(2 /* pull */); + const localCommit = await this.resolveRef("HEAD"); + await this.fetch(); + const branchInfo = await this.branchInfo(); + await this.checkAuthorInfo(); + const mergeRes = await this.wrapFS( + isomorphic_git_default.merge({ + ...this.getRepo(), + ours: branchInfo.current, + theirs: branchInfo.tracking, + abortOnConflict: false + }) + ); + if (!mergeRes.alreadyMerged) { + await this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + ref: branchInfo.current, + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Checkout", progress); + } + }, + remote: branchInfo.remote + }) + ); + } + progressNotice == null ? void 0 : progressNotice.hide(); + const upstreamCommit = await this.resolveRef("HEAD"); + const changedFiles = await this.getFileChangesCount( + localCommit, + upstreamCommit + ); + this.showNotice("Finished pull", false); + return changedFiles.map((file) => ({ + path: file.path, + working_dir: "P", + index: "P", + vault_path: this.getRelativeVaultPath(file.path) + })); + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + if (error instanceof Errors.MergeConflictError) { + this.plugin.handleConflict( + error.data.filepaths.map( + (file) => this.getRelativeVaultPath(file) + ) + ); + } + this.plugin.displayError(error); + throw error; + } + } + async push() { + if (!await this.canPush()) { + return 0; + } + const progressNotice = this.showNotice("Initializing push"); + try { + this.plugin.setState(1 /* status */); + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const numChangedFiles = (await this.getFileChangesCount(currentBranch2, trackingBranch)).length; + this.plugin.setState(5 /* push */); + await this.wrapFS( + isomorphic_git_default.push({ + ...this.getRepo(), + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Pushing", progress); + } + } + }) + ); + progressNotice == null ? void 0 : progressNotice.hide(); + return numChangedFiles; + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async getUnpushedCommits() { + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + if (trackingBranch == null || currentBranch2 == null) { + return 0; + } + const localCommit = await this.resolveRef(currentBranch2); + const upstreamCommit = await this.resolveRef(trackingBranch); + const changedFiles = await this.getFileChangesCount( + localCommit, + upstreamCommit + ); + return changedFiles.length; + } + async canPush() { + const status2 = await this.branchInfo(); + const trackingBranch = status2.tracking; + const currentBranch2 = status2.current; + const current = await this.resolveRef(currentBranch2); + const tracking = await this.resolveRef(trackingBranch); + return current != tracking; + } + async checkRequirements() { + const headExists = await this.plugin.app.vault.adapter.exists( + `${this.getRepo().dir}/.git/HEAD` + ); + return headExists ? "valid" : "missing-repo"; + } + async branchInfo() { + var _a2, _b; + try { + const current = await isomorphic_git_default.currentBranch(this.getRepo()) || ""; + const branches = await isomorphic_git_default.listBranches(this.getRepo()); + const remote = (_a2 = await this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + const trackingBranch = (_b = await this.getConfig(`branch.${current}.merge`)) == null ? void 0 : _b.split("refs/heads")[1]; + const tracking = trackingBranch ? remote + trackingBranch : void 0; + return { + current, + tracking, + branches, + remote + }; + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getCurrentRemote() { + var _a2; + const current = await isomorphic_git_default.currentBranch(this.getRepo()) || ""; + const remote = (_a2 = await this.getConfig(`branch.${current}.remote`)) != null ? _a2 : "origin"; + return remote; + } + async checkout(branch2, remote) { + try { + return this.wrapFS( + isomorphic_git_default.checkout({ + ...this.getRepo(), + ref: branch2, + force: !!remote, + remote + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async createBranch(branch2) { + try { + await this.wrapFS( + isomorphic_git_default.branch({ ...this.getRepo(), ref: branch2, checkout: true }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async deleteBranch(branch2) { + try { + await this.wrapFS( + isomorphic_git_default.deleteBranch({ ...this.getRepo(), ref: branch2 }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async branchIsMerged(_) { + return true; + } + async init() { + try { + await this.wrapFS(isomorphic_git_default.init(this.getRepo())); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async clone(url, dir, depth) { + const progressNotice = this.showNotice("Initializing clone"); + try { + await this.wrapFS( + isomorphic_git_default.clone({ + ...this.getRepo(), + dir, + url, + depth, + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Cloning", progress); + } + } + }) + ); + progressNotice == null ? void 0 : progressNotice.hide(); + } catch (error) { + progressNotice == null ? void 0 : progressNotice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async setConfig(path2, value) { + try { + return this.wrapFS( + isomorphic_git_default.setConfig({ + ...this.getRepo(), + path: path2, + value + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getConfig(path2) { + try { + return this.wrapFS( + isomorphic_git_default.getConfig({ + ...this.getRepo(), + path: path2 + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async fetch(remote) { + const progressNotice = this.showNotice("Initializing fetch"); + try { + const args = { + ...this.getRepo(), + onProgress: (progress) => { + if (progressNotice !== void 0) { + progressNotice.noticeEl.innerText = this.getProgressText("Fetching", progress); + } + }, + remote: remote != null ? remote : await this.getCurrentRemote() + }; + await this.wrapFS(isomorphic_git_default.fetch(args)); + progressNotice == null ? void 0 : progressNotice.hide(); + } catch (error) { + this.plugin.displayError(error); + progressNotice == null ? void 0 : progressNotice.hide(); + throw error; + } + } + async setRemote(name, url) { + try { + await this.wrapFS( + isomorphic_git_default.addRemote({ + ...this.getRepo(), + remote: name, + url, + force: true + }) + ); + } catch (error) { + this.plugin.displayError(error); + throw error; + } + } + async getRemoteBranches(remote) { + let remoteBranches = []; + remoteBranches.push( + ...await this.wrapFS( + isomorphic_git_default.listBranches({ ...this.getRepo(), remote }) + ) + ); + remoteBranches.remove("HEAD"); + remoteBranches = remoteBranches.map((e) => `${remote}/${e}`); + return remoteBranches; + } + async getRemotes() { + return (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).map( + (remoteUrl) => remoteUrl.remote + ); + } + async removeRemote(remoteName) { + await this.wrapFS( + isomorphic_git_default.deleteRemote({ ...this.getRepo(), remote: remoteName }) + ); + } + async getRemoteUrl(remote) { + var _a2; + return (_a2 = (await this.wrapFS(isomorphic_git_default.listRemotes({ ...this.getRepo() }))).filter((item) => item.remote == remote)[0]) == null ? void 0 : _a2.url; + } + async log(_, __ = true, limit) { + const logs = await this.wrapFS( + isomorphic_git_default.log({ ...this.getRepo(), depth: limit }) + ); + return Promise.all( + logs.map(async (log2) => { + const completeMessage = log2.commit.message.split("\n\n"); + return { + message: completeMessage[0], + author: { + name: log2.commit.author.name, + email: log2.commit.author.email + }, + body: completeMessage.slice(1).join("\n\n"), + date: new Date( + log2.commit.committer.timestamp + ).toDateString(), + diff: { + changed: 0, + files: (await this.getFileChangesCount( + log2.commit.parent.first(), + log2.oid + )).map((item) => { + return { + path: item.path, + status: item.type, + vault_path: this.getRelativeVaultPath( + item.path + ), + hash: log2.oid, + binary: void 0 + }; + }) + }, + hash: log2.oid, + refs: [] + }; + }) + ); + } + updateBasePath(basePath) { + this.getRepo().dir = basePath; + } + async updateUpstreamBranch(remoteBranch) { + const [remote, branch2] = splitRemoteBranch(remoteBranch); + const branchInfo = await this.branchInfo(); + await this.setConfig( + `branch.${branchInfo.current}.merge`, + `refs/heads/${branch2}` + ); + await this.setConfig(`branch.${branch2}.remote`, remote); + } + updateGitPath(_) { + return; + } + async getFileChangesCount(commitHash1, commitHash2) { + return this.walkDifference({ + walkers: [ + isomorphic_git_default.TREE({ ref: commitHash1 }), + isomorphic_git_default.TREE({ ref: commitHash2 }) + ] + }); + } + async walkDifference({ + walkers, + dir: base + }) { + const res = await this.wrapFS( + isomorphic_git_default.walk({ + ...this.getRepo(), + trees: walkers, + map: async function(filepath, [A, B]) { + if (!worthWalking2(filepath, base)) { + return null; + } + if (await (A == null ? void 0 : A.type()) === "tree" || await (B == null ? void 0 : B.type()) === "tree") { + return; + } + const Aoid = await (A == null ? void 0 : A.oid()); + const Boid = await (B == null ? void 0 : B.oid()); + let type = "equal"; + if (Aoid !== Boid) { + type = "M"; + } + if (Aoid === void 0) { + type = "A"; + } + if (Boid === void 0) { + type = "D"; + } + if (Aoid === void 0 && Boid === void 0) { + console.log("Something weird happened:"); + console.log(A); + console.log(B); + } + if (type === "equal") { + return; + } + return { + path: filepath, + type + }; + } + }) + ); + return res; + } + async getStagedFiles(dir = ".") { + const res = await this.walkDifference({ + walkers: [isomorphic_git_default.TREE({ ref: "HEAD" }), isomorphic_git_default.STAGE()], + dir + }); + return res.map((file) => { + return { + vault_path: this.getRelativeVaultPath(file.path), + filepath: file.path + }; + }); + } + async getUnstagedFiles(base = ".") { + let notice; + const timeout = window.setTimeout(function() { + notice = new import_obsidian7.Notice( + "This takes longer: Getting status", + this.noticeLength + ); + }, 2e4); + try { + const repo = this.getRepo(); + const res = await this.wrapFS( + //Modified from `git.statusMatrix` + isomorphic_git_default.walk({ + ...repo, + trees: [isomorphic_git_default.WORKDIR(), isomorphic_git_default.STAGE()], + map: async function(filepath, [workdir, stage]) { + if (!stage && workdir) { + const isIgnored2 = await isomorphic_git_default.isIgnored({ + ...repo, + filepath + }); + if (isIgnored2) { + return null; + } + } + if (!worthWalking2(filepath, base)) { + return null; + } + const [workdirType, stageType] = await Promise.all([ + workdir && workdir.type(), + stage && stage.type() + ]); + const isBlob = [workdirType, stageType].includes( + "blob" + ); + if ((workdirType === "tree" || workdirType === "special") && !isBlob) + return; + if (stageType === "commit") return null; + if ((stageType === "tree" || stageType === "special") && !isBlob) + return; + const stageOid = stageType === "blob" ? await stage.oid() : void 0; + let workdirOid; + if (workdirType === "blob" && stageType !== "blob") { + workdirOid = "42"; + } else if (workdirType === "blob") { + workdirOid = await workdir.oid(); + } + if (!workdirOid) { + return { + filepath, + deleted: true + }; + } + if (workdirOid !== stageOid) { + return { + filepath, + deleted: false + }; + } + return null; + } + }) + ); + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + return res; + } catch (error) { + window.clearTimeout(timeout); + notice == null ? void 0 : notice.hide(); + this.plugin.displayError(error); + throw error; + } + } + async getDiffString(filePath, stagedChanges = false, hash2) { + const vaultPath = this.getRelativeVaultPath(filePath); + const map = async (file, [A]) => { + if (filePath == file) { + const oid = await A.oid(); + const contents = await isomorphic_git_default.readBlob({ + ...this.getRepo(), + oid + }); + return contents.blob; + } + }; + if (hash2) { + const commitContent = await readBlob({ + ...this.getRepo(), + filepath: filePath, + oid: hash2 + }).then((headBlob) => new TextDecoder().decode(headBlob.blob)).catch((err) => { + if (err instanceof isomorphic_git_default.Errors.NotFoundError) + return void 0; + throw err; + }); + const commit2 = await isomorphic_git_default.readCommit({ + ...this.getRepo(), + oid: hash2 + }); + const previousContent = await readBlob({ + ...this.getRepo(), + filepath: filePath, + oid: commit2.commit.parent.first() + }).then((headBlob) => new TextDecoder().decode(headBlob.blob)).catch((err) => { + if (err instanceof isomorphic_git_default.Errors.NotFoundError) + return void 0; + throw err; + }); + const diff3 = createPatch( + vaultPath, + previousContent != null ? previousContent : "", + commitContent != null ? commitContent : "" + ); + return diff3; + } + const stagedBlob = (await isomorphic_git_default.walk({ + ...this.getRepo(), + trees: [isomorphic_git_default.STAGE()], + map + })).first(); + const stagedContent = new TextDecoder().decode(stagedBlob); + if (stagedChanges) { + const headContent = await this.resolveRef("HEAD").then( + (oid) => readBlob({ + ...this.getRepo(), + filepath: filePath, + oid + }) + ).then((headBlob) => new TextDecoder().decode(headBlob.blob)).catch((err) => { + if (err instanceof isomorphic_git_default.Errors.NotFoundError) + return void 0; + throw err; + }); + const diff3 = createPatch( + vaultPath, + headContent != null ? headContent : "", + stagedContent + ); + return diff3; + } else { + let workdirContent; + if (await this.app.vault.adapter.exists(vaultPath)) { + workdirContent = await this.app.vault.adapter.read(vaultPath); + } else { + workdirContent = ""; + } + const diff3 = createPatch(vaultPath, stagedContent, workdirContent); + return diff3; + } + } + async getLastCommitTime() { + const repo = this.getRepo(); + const oid = await this.resolveRef("HEAD"); + const commit2 = await isomorphic_git_default.readCommit({ ...repo, oid }); + const date = commit2.commit.committer.timestamp; + return new Date(date * 1e3); + } + getFileStatusResult(row) { + const status2 = this.status_mapping[`${row[this.HEAD]}${row[this.WORKDIR]}${row[this.STAGE]}`]; + return { + index: status2[0] == "?" ? "U" : status2[0], + working_dir: status2[1] == "?" ? "U" : status2[1], + path: row[this.FILE], + vault_path: this.getRelativeVaultPath(row[this.FILE]) + }; + } + async checkAuthorInfo() { + const name = await this.getConfig("user.name"); + const email = await this.getConfig("user.email"); + if (!name || !email) { + throw "Git author information is not set. Please set it in the settings."; + } + } + showNotice(message, infinity = true) { + if (!this.plugin.settings.disablePopups) { + return new import_obsidian7.Notice( + message, + infinity ? this.noticeLength : void 0 + ); + } + } +}; +function fromValue2(value) { + let queue = [value]; + return { + next() { + return Promise.resolve({ + done: queue.length === 0, + value: queue.pop() + }); + }, + return() { + queue = []; + return {}; + }, + [Symbol.asyncIterator]() { + return this; + } + }; +} +function getIterator2(iterable) { + if (iterable[Symbol.asyncIterator]) { + return iterable[Symbol.asyncIterator](); + } + if (iterable[Symbol.iterator]) { + return iterable[Symbol.iterator](); + } + if (iterable.next) { + return iterable; + } + return fromValue2(iterable); +} +async function forAwait2(iterable, cb) { + const iter = getIterator2(iterable); + while (true) { + const { value, done } = await iter.next(); + if (value) await cb(value); + if (done) break; + } + if (iter.return) iter.return(); +} +async function collect2(iterable) { + let size = 0; + const buffers = []; + await forAwait2(iterable, (value) => { + buffers.push(value); + size += value.byteLength; + }); + const result = new Uint8Array(size); + let nextIndex = 0; + for (const buffer2 of buffers) { + result.set(buffer2, nextIndex); + nextIndex += buffer2.byteLength; + } + return result; +} + +// src/setting/settings.ts +var FORMAT_STRING_REFERENCE_URL = "https://momentjs.com/docs/#/parsing/string-format/"; +var LINE_AUTHOR_FEATURE_WIKI_LINK = "https://publish.obsidian.md/git-doc/Line+Authoring"; +var ObsidianGitSettingsTab = class extends import_obsidian8.PluginSettingTab { + constructor(app2, plugin) { + super(app2, plugin); + this.plugin = plugin; + this.lineAuthorColorSettings = /* @__PURE__ */ new Map(); + } + get settings() { + return this.plugin.settings; + } + display() { + const { containerEl } = this; + const plugin = this.plugin; + const commitOrBackup = plugin.settings.differentIntervalCommitAndPush ? "commit" : "backup"; + const gitReady = plugin.gitReady; + containerEl.empty(); + if (!gitReady) { + containerEl.createEl("p", { + text: "Git is not ready. When all settings are correct you can configure auto backup, etc." + }); + containerEl.createEl("br"); + } + if (gitReady) { + new import_obsidian8.Setting(containerEl).setName("Automatic").setHeading(); + new import_obsidian8.Setting(containerEl).setName("Split automatic commit and push").setDesc("Enable to use separate timer for commit and push").addToggle( + (toggle) => toggle.setValue( + plugin.settings.differentIntervalCommitAndPush + ).onChange((value) => { + plugin.settings.differentIntervalCommitAndPush = value; + plugin.saveSettings(); + plugin.clearAutoBackup(); + plugin.clearAutoPush(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup( + plugin.settings.autoSaveInterval + ); + } + if (value && plugin.settings.autoPushInterval > 0) { + plugin.startAutoPush( + plugin.settings.autoPushInterval + ); + } + this.display(); + }) + ); + new import_obsidian8.Setting(containerEl).setName(`Vault ${commitOrBackup} interval (minutes)`).setDesc( + `${plugin.settings.differentIntervalCommitAndPush ? "Commit" : "Commit and push"} changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)` + ).addText( + (text2) => text2.setValue(String(plugin.settings.autoSaveInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoSaveInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.clearAutoBackup(); + plugin.startAutoBackup( + plugin.settings.autoSaveInterval + ); + new import_obsidian8.Notice( + `Automatic ${commitOrBackup} enabled! Every ${formatMinutes( + plugin.settings.autoSaveInterval + )}.` + ); + } else if (plugin.settings.autoSaveInterval <= 0) { + plugin.clearAutoBackup() && new import_obsidian8.Notice( + `Automatic ${commitOrBackup} disabled!` + ); + } + } else { + new import_obsidian8.Notice("Please specify a valid number."); + } + }) + ); + if (!plugin.settings.setLastSaveToLastCommit) + new import_obsidian8.Setting(containerEl).setName(`Auto Backup after stopping file edits`).setDesc( + `Requires the ${commitOrBackup} interval not to be 0. + If turned on, do auto ${commitOrBackup} every ${formatMinutes( + plugin.settings.autoSaveInterval + )} after stopping file edits. + This also prevents auto ${commitOrBackup} while editing a file. If turned off, it's independent from the last change.` + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { + plugin.settings.autoBackupAfterFileChange = value; + this.display(); + plugin.saveSettings(); + plugin.clearAutoBackup(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup( + plugin.settings.autoSaveInterval + ); + } + }) + ); + if (!plugin.settings.autoBackupAfterFileChange) + new import_obsidian8.Setting(containerEl).setName(`Auto ${commitOrBackup} after latest commit`).setDesc( + `If turned on, set last auto ${commitOrBackup} time to latest commit` + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.setLastSaveToLastCommit).onChange(async (value) => { + plugin.settings.setLastSaveToLastCommit = value; + plugin.saveSettings(); + this.display(); + plugin.clearAutoBackup(); + await plugin.setUpAutoBackup(); + }) + ); + if (plugin.settings.differentIntervalCommitAndPush) { + new import_obsidian8.Setting(containerEl).setName(`Vault push interval (minutes)`).setDesc( + "Push changes every X minutes. Set to 0 (default) to disable." + ).addText( + (text2) => text2.setValue(String(plugin.settings.autoPushInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPushInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPushInterval > 0) { + plugin.clearAutoPush(); + plugin.startAutoPush( + plugin.settings.autoPushInterval + ); + new import_obsidian8.Notice( + `Automatic push enabled! Every ${formatMinutes( + plugin.settings.autoPushInterval + )}.` + ); + } else if (plugin.settings.autoPushInterval <= 0) { + plugin.clearAutoPush() && new import_obsidian8.Notice( + "Automatic push disabled!" + ); + } + } else { + new import_obsidian8.Notice( + "Please specify a valid number." + ); + } + }) + ); + } + new import_obsidian8.Setting(containerEl).setName("Auto pull interval (minutes)").setDesc( + "Pull changes every X minutes. Set to 0 (default) to disable." + ).addText( + (text2) => text2.setValue(String(plugin.settings.autoPullInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPullInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPullInterval > 0) { + plugin.clearAutoPull(); + plugin.startAutoPull( + plugin.settings.autoPullInterval + ); + new import_obsidian8.Notice( + `Automatic pull enabled! Every ${formatMinutes( + plugin.settings.autoPullInterval + )}.` + ); + } else if (plugin.settings.autoPullInterval <= 0) { + plugin.clearAutoPull() && new import_obsidian8.Notice("Automatic pull disabled!"); + } + } else { + new import_obsidian8.Notice("Please specify a valid number."); + } + }) + ); + new import_obsidian8.Setting(containerEl).setName("Specify custom commit message on auto backup").setDesc("You will get a pop up to specify your message").addToggle( + (toggle) => toggle.setValue(plugin.settings.customMessageOnAutoBackup).onChange((value) => { + plugin.settings.customMessageOnAutoBackup = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Commit message on auto backup/commit").setDesc( + "Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message)" + ).addTextArea( + (text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.autoCommitMessage).onChange((value) => { + plugin.settings.autoCommitMessage = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Commit message").setHeading(); + new import_obsidian8.Setting(containerEl).setName("Commit message on manual backup/commit").setDesc( + "Available placeholders: {{date}} (see below), {{hostname}} (see below), {{numFiles}} (number of changed files in the commit) and {{files}} (changed files in commit message)" + ).addTextArea( + (text2) => text2.setPlaceholder("vault backup: {{date}}").setValue( + plugin.settings.commitMessage ? plugin.settings.commitMessage : "" + ).onChange((value) => { + plugin.settings.commitMessage = value; + plugin.saveSettings(); + }) + ); + const datePlaceholderSetting = new import_obsidian8.Setting(containerEl).setName("{{date}} placeholder format").addText( + (text2) => text2.setPlaceholder(plugin.settings.commitDateFormat).setValue(plugin.settings.commitDateFormat).onChange(async (value) => { + plugin.settings.commitDateFormat = value; + await plugin.saveSettings(); + }) + ); + datePlaceholderSetting.descEl.innerHTML = ` + Specify custom date format. E.g. "${DATE_TIME_FORMAT_SECONDS}. See Moment.js for more formats.`; + new import_obsidian8.Setting(containerEl).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText( + (text2) => { + var _a2; + return text2.setValue((_a2 = plugin.localStorage.getHostname()) != null ? _a2 : "").onChange(async (value) => { + plugin.localStorage.setHostname(value); + }); + } + ); + new import_obsidian8.Setting(containerEl).setName("Preview commit message").addButton( + (button) => button.setButtonText("Preview").onClick(async () => { + const commitMessagePreview = await plugin.gitManager.formatCommitMessage( + plugin.settings.commitMessage + ); + new import_obsidian8.Notice(`${commitMessagePreview}`); + }) + ); + new import_obsidian8.Setting(containerEl).setName("List filenames affected by commit in the commit body").addToggle( + (toggle) => toggle.setValue(plugin.settings.listChangedFilesInMessageBody).onChange((value) => { + plugin.settings.listChangedFilesInMessageBody = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Backup").setHeading(); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Sync Method").setDesc( + "Selects the method used for handling new changes found in your remote git repository." + ).addDropdown((dropdown) => { + const options = { + merge: "Merge", + rebase: "Rebase", + reset: "Other sync service (Only updates the HEAD without touching the working directory)" + }; + dropdown.addOptions(options); + dropdown.setValue(plugin.settings.syncMethod); + dropdown.onChange(async (option) => { + plugin.settings.syncMethod = option; + plugin.saveSettings(); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Pull updates on startup").setDesc("Automatically pull updates when Obsidian starts").addToggle( + (toggle) => toggle.setValue(plugin.settings.autoPullOnBoot).onChange((value) => { + plugin.settings.autoPullOnBoot = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Push on backup").setDesc("Disable to only commit changes").addToggle( + (toggle) => toggle.setValue(!plugin.settings.disablePush).onChange((value) => { + plugin.settings.disablePush = !value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Pull changes before push").setDesc("Commit -> pull -> push (Only if pushing is enabled)").addToggle( + (toggle) => toggle.setValue(plugin.settings.pullBeforePush).onChange((value) => { + plugin.settings.pullBeforePush = value; + plugin.saveSettings(); + }) + ); + if (plugin.gitManager instanceof SimpleGit) { + new import_obsidian8.Setting(containerEl).setName("Line author information").setHeading(); + this.addLineAuthorInfoSettings(); + } + } + new import_obsidian8.Setting(containerEl).setName("History view").setHeading(); + new import_obsidian8.Setting(containerEl).setName("Show Author").setDesc("Show the author of the commit in the history view").addDropdown((dropdown) => { + const options = { + hide: "Hide", + full: "Full", + initials: "Initials" + }; + dropdown.addOptions(options); + dropdown.setValue(plugin.settings.authorInHistoryView); + dropdown.onChange(async (option) => { + plugin.settings.authorInHistoryView = option; + plugin.saveSettings(); + plugin.refresh(); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Show Date").setDesc( + "Show the date of the commit in the history view. The {{date}} placeholder format is used to display the date." + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.dateInHistoryView).onChange((value) => { + plugin.settings.dateInHistoryView = value; + plugin.saveSettings(); + plugin.refresh(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Source control view").setHeading(); + new import_obsidian8.Setting(containerEl).setName( + "Automatically refresh source control view on file changes" + ).setDesc( + "On slower machines this may cause lags. If so, just disable this option" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.refreshSourceControl).onChange((value) => { + plugin.settings.refreshSourceControl = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Source control view refresh interval").setDesc( + "Milliseconds to wait after file change before refreshing the Source Control View" + ).addText( + (toggle) => toggle.setValue( + plugin.settings.refreshSourceControlTimer.toString() + ).setPlaceholder("7000").onChange((value) => { + plugin.settings.refreshSourceControlTimer = Math.max( + parseInt(value), + 500 + ); + plugin.saveSettings(); + plugin.setRefreshDebouncer(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Miscellaneous").setHeading(); + new import_obsidian8.Setting(containerEl).setName("Disable notifications").setDesc( + "Disable notifications for git operations to minimize distraction (refer to status bar for updates). Errors are still shown as notifications even if you enable this setting" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.disablePopups).onChange((value) => { + plugin.settings.disablePopups = value; + this.display(); + plugin.saveSettings(); + }) + ); + if (!plugin.settings.disablePopups) + new import_obsidian8.Setting(containerEl).setName("Hide notifications for no changes").setDesc( + "Don't show notifications when there are no changes to commit/push" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.disablePopupsForNoChanges).onChange((value) => { + plugin.settings.disablePopupsForNoChanges = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show status bar").setDesc( + "Obsidian must be restarted for the changes to take affect" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.showStatusBar).onChange((value) => { + plugin.settings.showStatusBar = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show stage/unstage button in file menu").addToggle( + (toggle) => toggle.setValue(plugin.settings.showFileMenu).onChange((value) => { + plugin.settings.showFileMenu = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show branch status bar").setDesc( + "Obsidian must be restarted for the changes to take affect" + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.showBranchStatusBar).onChange((value) => { + plugin.settings.showBranchStatusBar = value; + plugin.saveSettings(); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Show the count of modified files in the status bar").addToggle( + (toggle) => toggle.setValue(plugin.settings.changedFilesInStatusBar).onChange((value) => { + plugin.settings.changedFilesInStatusBar = value; + plugin.saveSettings(); + }) + ); + if (plugin.gitManager instanceof IsomorphicGit) { + new import_obsidian8.Setting(containerEl).setName("Authentication/commit author").setHeading(); + } else { + new import_obsidian8.Setting(containerEl).setName("Commit author").setHeading(); + } + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian8.Setting(containerEl).setName( + "Username on your git server. E.g. your username on GitHub" + ).addText((cb) => { + var _a2; + cb.setValue((_a2 = plugin.localStorage.getUsername()) != null ? _a2 : ""); + cb.onChange((value) => { + plugin.localStorage.setUsername(value); + }); + }); + if (plugin.gitManager instanceof IsomorphicGit) + new import_obsidian8.Setting(containerEl).setName("Password/Personal access token").setDesc( + "Type in your password. You won't be able to see it again." + ).addText((cb) => { + cb.inputEl.autocapitalize = "off"; + cb.inputEl.autocomplete = "off"; + cb.inputEl.spellcheck = false; + cb.onChange((value) => { + plugin.localStorage.setPassword(value); + }); + }); + if (plugin.gitReady) + new import_obsidian8.Setting(containerEl).setName("Author name for commit").addText(async (cb) => { + cb.setValue(await plugin.gitManager.getConfig("user.name")); + cb.onChange((value) => { + plugin.gitManager.setConfig( + "user.name", + value == "" ? void 0 : value + ); + }); + }); + if (plugin.gitReady) + new import_obsidian8.Setting(containerEl).setName("Author email for commit").addText(async (cb) => { + cb.setValue( + await plugin.gitManager.getConfig("user.email") + ); + cb.onChange((value) => { + plugin.gitManager.setConfig( + "user.email", + value == "" ? void 0 : value + ); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Advanced").setHeading(); + if (plugin.gitManager instanceof SimpleGit) { + new import_obsidian8.Setting(containerEl).setName("Update submodules").setDesc( + '"Create backup" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule' + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.updateSubmodules).onChange((value) => { + plugin.settings.updateSubmodules = value; + plugin.saveSettings(); + }) + ); + if (plugin.settings.updateSubmodules) { + new import_obsidian8.Setting(containerEl).setName("Submodule recurse checkout/switch").setDesc( + "Whenever a checkout happens on the root repository, recurse the checkout on the submodules (if the branches exist)." + ).addToggle( + (toggle) => toggle.setValue(plugin.settings.submoduleRecurseCheckout).onChange((value) => { + plugin.settings.submoduleRecurseCheckout = value; + plugin.saveSettings(); + }) + ); + } + } + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Custom Git binary path").addText((cb) => { + var _a2; + cb.setValue((_a2 = plugin.localStorage.getGitPath()) != null ? _a2 : ""); + cb.setPlaceholder("git"); + cb.onChange((value) => { + plugin.localStorage.setGitPath(value); + plugin.gitManager.updateGitPath(value || "git"); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Additional environment variables").setDesc( + "Use each line for a new environment variable in the format KEY=VALUE" + ).addTextArea((cb) => { + cb.setPlaceholder("GIT_DIR=/path/to/git/dir"); + cb.setValue(plugin.localStorage.getEnvVars().join("\n")); + cb.onChange((value) => { + plugin.localStorage.setEnvVars(value.split("\n")); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Additional PATH environment variable paths").setDesc("Use each line for one path").addTextArea((cb) => { + cb.setValue(plugin.localStorage.getPATHPaths().join("\n")); + cb.onChange((value) => { + plugin.localStorage.setPATHPaths(value.split("\n")); + }); + }); + if (plugin.gitManager instanceof SimpleGit) + new import_obsidian8.Setting(containerEl).setName("Reload with new environment variables").setDesc( + "Removing previously added environment variables will not take effect until Obsidian is restarted." + ).addButton((cb) => { + cb.setButtonText("Reload"); + cb.setCta(); + cb.onClick(() => { + plugin.gitManager.setGitInstance(); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Custom base path (Git repository path)").setDesc( + ` + Sets the relative path to the vault from which the Git binary should be executed. + Mostly used to set the path to the Git repository, which is only required if the Git repository is below the vault root directory. Use "\\" instead of "/" on Windows. + ` + ).addText((cb) => { + cb.setValue(plugin.settings.basePath); + cb.setPlaceholder("directory/directory-with-git-repo"); + cb.onChange((value) => { + plugin.settings.basePath = value; + plugin.saveSettings(); + plugin.gitManager.updateBasePath(value || ""); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Custom Git directory path (Instead of '.git')").setDesc( + `Requires restart of Obsidian to take effect. Use "\\" instead of "/" on Windows.` + ).addText((cb) => { + cb.setValue(plugin.settings.gitDir); + cb.setPlaceholder(".git"); + cb.onChange((value) => { + plugin.settings.gitDir = value; + plugin.saveSettings(); + }); + }); + new import_obsidian8.Setting(containerEl).setName("Disable on this device").setDesc( + "Disables the plugin on this device. This setting is not synced." + ).addToggle( + (toggle) => toggle.setValue(plugin.localStorage.getPluginDisabled()).onChange((value) => { + plugin.localStorage.setPluginDisabled(value); + if (value) { + plugin.unloadPlugin(); + } else { + plugin.loadPlugin(); + } + new import_obsidian8.Notice( + "Obsidian must be restarted for the changes to take affect" + ); + }) + ); + new import_obsidian8.Setting(containerEl).setName("Donate").setDesc( + "If you like this Plugin, consider donating to support continued development." + ).addButton((bt) => { + bt.buttonEl.outerHTML = "Buy Me a Coffee at ko-fi.com"; + }); + const info = containerEl.createDiv(); + info.setAttr("align", "center"); + info.setText( + "Debugging and logging:\nYou can always see the logs of this and every other plugin by opening the console with" + ); + const keys = containerEl.createDiv(); + keys.setAttr("align", "center"); + keys.addClass("obsidian-git-shortcuts"); + if (import_obsidian8.Platform.isMacOS === true) { + keys.createEl("kbd", { text: "CMD (\u2318) + OPTION (\u2325) + I" }); + } else { + keys.createEl("kbd", { text: "CTRL + SHIFT + I" }); + } + } + configureLineAuthorShowStatus(show) { + this.settings.lineAuthor.show = show; + this.plugin.saveSettings(); + if (show) this.plugin.lineAuthoringFeature.activateFeature(); + else this.plugin.lineAuthoringFeature.deactivateFeature(); + } + /** + * Persists the setting {@link key} with value {@link value} and + * refreshes the line author info views. + */ + lineAuthorSettingHandler(key2, value) { + this.settings.lineAuthor[key2] = value; + this.plugin.saveSettings(); + this.plugin.lineAuthoringFeature.refreshLineAuthorViews(); + } + /** + * Ensure, that certain last shown values are persisten in the settings. + * + * Necessary for the line author info gutter context menus. + */ + beforeSaveSettings() { + const laSettings = this.settings.lineAuthor; + if (laSettings.authorDisplay !== "hide") { + laSettings.lastShownAuthorDisplay = laSettings.authorDisplay; + } + if (laSettings.dateTimeFormatOptions !== "hide") { + laSettings.lastShownDateTimeFormatOptions = laSettings.dateTimeFormatOptions; + } + } + addLineAuthorInfoSettings() { + const baseLineAuthorInfoSetting = new import_obsidian8.Setting(this.containerEl).setName( + "Show commit authoring information next to each line" + ); + if (!this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform()) { + baseLineAuthorInfoSetting.setDesc("Only available on desktop currently.").setDisabled(true); + } + baseLineAuthorInfoSetting.descEl.innerHTML = ` + Feature guide and quick examples
+ The commit hash, author name and authoring date can all be individually toggled.
Hide everything, to only show the age-colored sidebar.`; + baseLineAuthorInfoSetting.addToggle( + (toggle) => toggle.setValue(this.settings.lineAuthor.show).onChange((value) => { + this.configureLineAuthorShowStatus(value); + this.display(); + }) + ); + if (this.settings.lineAuthor.show) { + const trackMovement = new import_obsidian8.Setting(this.containerEl).setName("Follow movement and copies across files and commits").setDesc("").addDropdown((dropdown) => { + dropdown.addOptions({ + inactive: "Do not follow (default)", + "same-commit": "Follow within same commit", + "all-commits": "Follow within all commits (maybe slow)" + }); + dropdown.setValue(this.settings.lineAuthor.followMovement); + dropdown.onChange( + (value) => this.lineAuthorSettingHandler("followMovement", value) + ); + }); + trackMovement.descEl.innerHTML = ` + By default (deactivated), each line only shows the newest commit where it was changed. +
+ With same commit, cut-copy-paste-ing of text is followed within the same commit and the original commit of authoring will be shown. +
+ With all commits, cut-copy-paste-ing text inbetween multiple commits will be detected. +
+ It uses git-blame and + for matches (at least ${GIT_LINE_AUTHORING_MOVEMENT_DETECTION_MINIMAL_LENGTH} characters) within the same (or all) commit(s), the originating commit's information is shown.`; + new import_obsidian8.Setting(this.containerEl).setName("Show commit hash").addToggle((tgl) => { + tgl.setValue(this.settings.lineAuthor.showCommitHash); + tgl.onChange( + async (value) => this.lineAuthorSettingHandler("showCommitHash", value) + ); + }); + new import_obsidian8.Setting(this.containerEl).setName("Author name display").setDesc("If and how the author is displayed").addDropdown((dropdown) => { + const options = { + hide: "Hide", + initials: "Initials (default)", + "first name": "First name", + "last name": "Last name", + full: "Full name" + }; + dropdown.addOptions(options); + dropdown.setValue(this.settings.lineAuthor.authorDisplay); + dropdown.onChange( + async (value) => this.lineAuthorSettingHandler("authorDisplay", value) + ); + }); + new import_obsidian8.Setting(this.containerEl).setName("Authoring date display").setDesc( + "If and how the date and time of authoring the line is displayed" + ).addDropdown((dropdown) => { + const options = { + hide: "Hide", + date: "Date (default)", + datetime: "Date and time", + "natural language": "Natural language", + custom: "Custom" + }; + dropdown.addOptions(options); + dropdown.setValue( + this.settings.lineAuthor.dateTimeFormatOptions + ); + dropdown.onChange( + async (value) => { + this.lineAuthorSettingHandler( + "dateTimeFormatOptions", + value + ); + this.display(); + } + ); + }); + if (this.settings.lineAuthor.dateTimeFormatOptions === "custom") { + const dateTimeFormatCustomStringSetting = new import_obsidian8.Setting( + this.containerEl + ); + dateTimeFormatCustomStringSetting.setName("Custom authoring date format").addText((cb) => { + cb.setValue( + this.settings.lineAuthor.dateTimeFormatCustomString + ); + cb.setPlaceholder("YYYY-MM-DD HH:mm"); + cb.onChange((value) => { + this.lineAuthorSettingHandler( + "dateTimeFormatCustomString", + value + ); + dateTimeFormatCustomStringSetting.descEl.innerHTML = this.previewCustomDateTimeDescriptionHtml( + value + ); + }); + }); + dateTimeFormatCustomStringSetting.descEl.innerHTML = this.previewCustomDateTimeDescriptionHtml( + this.settings.lineAuthor.dateTimeFormatCustomString + ); + } + new import_obsidian8.Setting(this.containerEl).setName("Authoring date display timezone").addDropdown((dropdown) => { + const options = { + "viewer-local": "My local (default)", + "author-local": "Author's local", + utc0000: "UTC+0000/Z" + }; + dropdown.addOptions(options); + dropdown.setValue( + this.settings.lineAuthor.dateTimeTimezone + ); + dropdown.onChange( + async (value) => this.lineAuthorSettingHandler("dateTimeTimezone", value) + ); + }).descEl.innerHTML = ` + The time-zone in which the authoring date should be shown. + Either your local time-zone (default), + the author's time-zone during commit creation or + UTC\xB100:00. + `; + const oldestAgeSetting = new import_obsidian8.Setting(this.containerEl).setName( + "Oldest age in coloring" + ); + oldestAgeSetting.descEl.innerHTML = this.previewOldestAgeDescriptionHtml( + this.settings.lineAuthor.coloringMaxAge + )[0]; + oldestAgeSetting.addText((text2) => { + text2.setPlaceholder("1y"); + text2.setValue(this.settings.lineAuthor.coloringMaxAge); + text2.onChange((value) => { + const [preview, valid] = this.previewOldestAgeDescriptionHtml(value); + oldestAgeSetting.descEl.innerHTML = preview; + if (valid) { + this.lineAuthorSettingHandler("coloringMaxAge", value); + this.refreshColorSettingsName("oldest"); + } + }); + }); + this.createColorSetting("newest"); + this.createColorSetting("oldest"); + new import_obsidian8.Setting(this.containerEl).setName("Text color").addText((field) => { + field.setValue(this.settings.lineAuthor.textColorCss); + field.onChange((value) => { + this.lineAuthorSettingHandler("textColorCss", value); + }); + }).descEl.innerHTML = ` + The CSS color of the gutter text.
+ + It is higly recommended to use + + CSS variables + defined by themes + (e.g.
var(--text-muted)
or +
var(--text-on-accent)
, + because they automatically adapt to theme changes.
+ + See: + List of available CSS variables in Obsidian + + `; + new import_obsidian8.Setting(this.containerEl).setName("Ignore whitespace and newlines in changes").addToggle((tgl) => { + tgl.setValue(this.settings.lineAuthor.ignoreWhitespace); + tgl.onChange( + (value) => this.lineAuthorSettingHandler("ignoreWhitespace", value) + ); + }).descEl.innerHTML = ` + Whitespace and newlines are interpreted as + part of the document and in changes + by default (hence not ignored). + This makes the last line being shown as 'changed' + when a new subsequent line is added, + even if the previously last line's text is the same. +
+ If you don't care about purely-whitespace changes + (e.g. list nesting / quote indentation changes), + then activating this will provide more meaningful change detection. + `; + } + } + createColorSetting(which) { + const setting = new import_obsidian8.Setting(this.containerEl).setName("").addText((text2) => { + const color = pickColor(which, this.settings.lineAuthor); + const defaultColor = pickColor( + which, + DEFAULT_SETTINGS.lineAuthor + ); + text2.setPlaceholder(rgbToString(defaultColor)); + text2.setValue(rgbToString(color)); + text2.onChange((colorNew) => { + const rgb = convertToRgb(colorNew); + if (rgb !== void 0) { + const key2 = which === "newest" ? "colorNew" : "colorOld"; + this.lineAuthorSettingHandler(key2, rgb); + } + this.refreshColorSettingsDesc(which, rgb); + }); + }); + this.lineAuthorColorSettings.set(which, setting); + this.refreshColorSettingsName(which); + this.refreshColorSettingsDesc( + which, + pickColor(which, this.settings.lineAuthor) + ); + } + refreshColorSettingsName(which) { + const settingsDom = this.lineAuthorColorSettings.get(which); + if (settingsDom) { + const whichDescriber = which === "oldest" ? `oldest (${this.settings.lineAuthor.coloringMaxAge} or older)` : "newest"; + settingsDom.nameEl.innerText = `Color for ${whichDescriber} commits`; + } + } + refreshColorSettingsDesc(which, rgb) { + const settingsDom = this.lineAuthorColorSettings.get(which); + if (settingsDom) { + settingsDom.descEl.innerHTML = this.colorSettingPreviewDescHtml( + which, + this.settings.lineAuthor, + rgb !== void 0 + ); + } + } + colorSettingPreviewDescHtml(which, laSettings, colorIsValid) { + const rgbStr = colorIsValid ? previewColor(which, laSettings) : `rgba(127,127,127,0.3)`; + const today = import_obsidian8.moment.unix(import_obsidian8.moment.now() / 1e3).format("YYYY-MM-DD"); + const text2 = colorIsValid ? `abcdef Author Name ${today}` : "invalid color"; + const preview = `
${text2}
`; + return `Supports 'rgb(r,g,b)', 'hsl(h,s,l)', hex (#) and + named colors (e.g. 'black', 'purple'). Color preview: ${preview}`; + } + previewCustomDateTimeDescriptionHtml(dateTimeFormatCustomString) { + const formattedDateTime = (0, import_obsidian8.moment)().format(dateTimeFormatCustomString); + return `
Format string to display the authoring date.
Currently: ${formattedDateTime}`; + } + previewOldestAgeDescriptionHtml(coloringMaxAge) { + const duration = parseColoringMaxAgeDuration(coloringMaxAge); + const durationString = duration !== void 0 ? `${duration.asDays()} days` : "invalid!"; + return [ + `The oldest age in the line author coloring. Everything older will have the same color. +
Smallest valid age is "1d". Currently: ${durationString}`, + duration + ]; + } +}; +function pickColor(which, las) { + return which === "oldest" ? las.colorOld : las.colorNew; +} +function parseColoringMaxAgeDuration(durationString) { + const duration = import_obsidian8.moment.duration("P" + durationString.toUpperCase()); + return duration.isValid() && duration.asDays() && duration.asDays() >= 1 ? duration : void 0; +} + +// src/lineAuthor/model.ts +function lineAuthoringId(head, objHash, path2) { + if (head === void 0 || objHash === void 0 || path2 === void 0) { + return void 0; + } + return `head${head}-obj${objHash}-path${path2}`; +} +var LineAuthoringContainerType = import_state.Annotation.define(); +function newComputationResultAsTransaction(key2, la, state) { + return state.update({ + annotations: LineAuthoringContainerType.of({ + key: key2, + la, + lineOffsetsFromUnsavedChanges: /* @__PURE__ */ new Map() + }) + }); +} +function getLineAuthorAnnotation(tr) { + return tr.annotation(LineAuthoringContainerType); +} +var lineAuthorState = import_state.StateField.define({ + create: (_state) => void 0, + /** + * The state can be updated from either an annotated transaction containing + * the newest line authoring (for the saved document) - or from + * unsaved changes of the document as the user is actively typing in the editor. + * + * In the first case, we take the new line authoring and discard anything we had remembered + * from unsaved changes. In the second case, we use the unsaved changes in {@link enrichUnsavedChanges} to pre-compute information to immediately update the + * line author gutter without needing to wait until the document is saved and the + * line authoring is properly computed. + */ + update: (previous, transaction) => { + var _a2; + return (_a2 = getLineAuthorAnnotation(transaction)) != null ? _a2 : enrichUnsavedChanges(transaction, previous); + }, + // compare cache keys. + // equality rate is >= 95% :) + // hence avoids recomputation of views + compare: (l, r) => (l == null ? void 0 : l.key) === (r == null ? void 0 : r.key) +}); +function laStateDigest(laState) { + var _a2; + const digest = import_js_sha256.sha256.create(); + if (!laState) return digest; + const { la, key: key2, lineOffsetsFromUnsavedChanges } = laState; + digest.update(la === "untracked" ? "t" : "f"); + digest.update(key2); + for (const [k, v] of (_a2 = lineOffsetsFromUnsavedChanges.entries()) != null ? _a2 : []) + digest.update([k, v]); + return digest; +} +var latestSettings = { + get: void 0, + save: void 0 +}; +function provideSettingsAccess(settingsGetter, settingsSetter) { + latestSettings.get = settingsGetter; + latestSettings.save = settingsSetter; +} +function maxAgeInDaysFromSettings(settings) { + var _a2, _b; + return (_b = (_a2 = parseColoringMaxAgeDuration(settings.coloringMaxAge)) == null ? void 0 : _a2.asDays()) != null ? _b : parseColoringMaxAgeDuration( + DEFAULT_SETTINGS.lineAuthor.coloringMaxAge + ).asDays(); +} +function enrichUnsavedChanges(tr, prev) { + if (!prev) return void 0; + if (!tr.changes.empty) { + tr.changes.iterChanges((fromA, toA, fromB, toB) => { + var _a2; + const oldDoc = tr.startState.doc; + const { newDoc } = tr; + const beforeFrom = oldDoc.lineAt(fromA).number; + const beforeTo = oldDoc.lineAt(toA).number; + const afterFrom = newDoc.lineAt(fromB).number; + const afterTo = newDoc.lineAt(toB).number; + const beforeLen = beforeTo - beforeFrom + 1; + const afterLen = afterTo - afterFrom + 1; + for (let afterI = afterFrom; afterI <= afterTo; afterI++) { + let offset = (_a2 = prev.lineOffsetsFromUnsavedChanges.get(afterI)) != null ? _a2 : 0; + const isLastLine = afterTo === afterI; + const changeInNumberOfLines = afterLen - beforeLen; + if (isLastLine) offset += changeInNumberOfLines; + prev.lineOffsetsFromUnsavedChanges.set(afterI, offset); + } + }); + } + return prev; +} + +// src/lineAuthor/control.ts +var LineAuthoringSubscriber = class { + // remember path to detect and adapt to renames + constructor(state) { + this.state = state; + this.subscribeMe(); + } + async notifyLineAuthoring(id, la) { + if (this.view === void 0) { + console.warn( + `Git: View is not defined for editor cache key. Unforeseen situation. id: ${id}` + ); + return; + } + const state = this.view.state; + const transaction = newComputationResultAsTransaction(id, la, state); + this.view.dispatch(transaction); + } + updateToNewState(state) { + const filepathChanged = this.lastSeenPath && this.filepath != this.lastSeenPath; + this.state = state; + if (filepathChanged) { + this.unsubscribeMe(this.lastSeenPath); + this.subscribeMe(); + } + return this; + } + removeIfStale() { + if (this.view.destroyed) { + this.unsubscribeMe(this.lastSeenPath); + } + } + subscribeMe() { + if (this.filepath === void 0) return; + eventsPerFilePathSingleton.ifFilepathDefinedTransformSubscribers( + this.filepath, + (subs) => subs.add(this) + ); + this.lastSeenPath = this.filepath; + } + unsubscribeMe(oldFilepath) { + eventsPerFilePathSingleton.ifFilepathDefinedTransformSubscribers( + oldFilepath, + (subs) => subs.delete(this) + ); + } + get filepath() { + var _a2, _b; + return (_b = (_a2 = this.state.field(import_obsidian9.editorViewField)) == null ? void 0 : _a2.file) == null ? void 0 : _b.path; + } + get view() { + return this.state.field(import_obsidian9.editorEditorField); + } +}; +var subscribeNewEditor = import_state2.StateField.define({ + create: (state) => new LineAuthoringSubscriber(state), + update: (v, transaction) => v.updateToNewState(transaction.state), + compare: (a, b) => a === b +}); + +// src/lineAuthor/view/cache.ts +init_polyfill_buffer(); +function clearViewCache() { + longestRenderedGutter = void 0; + renderedAgeInDaysForAdaptiveInitialColoring = []; + ageIdx = 0; + gutterInstances.clear(); + gutterMarkersRangeSet.clear(); + attachedGutterElements.clear(); +} +var longestRenderedGutter = void 0; +var getLongestRenderedGutter = () => longestRenderedGutter; +function conditionallyUpdateLongestRenderedGutter(gutter2, text2) { + var _a2; + const length = text2.length; + if (length < ((_a2 = longestRenderedGutter == null ? void 0 : longestRenderedGutter.length) != null ? _a2 : 0)) return; + longestRenderedGutter = { gutter: gutter2, length, text: text2 }; + const settings = latestSettings.get(); + if (length !== settings.gutterSpacingFallbackLength) { + settings.gutterSpacingFallbackLength = length; + latestSettings.save(settings); + } +} +var renderedAgeInDaysForAdaptiveInitialColoring = []; +var ADAPTIVE_INITIAL_COLORING_AGE_CACHE_SIZE = 15; +var ageIdx = 0; +function recordRenderedAgeInDays(age) { + renderedAgeInDaysForAdaptiveInitialColoring[ageIdx] = age; + ageIdx = (ageIdx + 1) % ADAPTIVE_INITIAL_COLORING_AGE_CACHE_SIZE; +} +function computeAdaptiveInitialColoringAgeInDays() { + return median(renderedAgeInDaysForAdaptiveInitialColoring); +} +var gutterInstances = /* @__PURE__ */ new Map(); +var gutterMarkersRangeSet = /* @__PURE__ */ new Map(); +var attachedGutterElements = /* @__PURE__ */ new Set(); + +// src/lineAuthor/view/view.ts +init_polyfill_buffer(); +var import_state3 = require("@codemirror/state"); +var import_view2 = require("@codemirror/view"); + +// src/lineAuthor/view/gutter/gutter.ts +init_polyfill_buffer(); +var import_view = require("@codemirror/view"); +var import_js_sha2562 = __toESM(require_sha256()); +var import_obsidian10 = require("obsidian"); + +// src/lineAuthor/view/contextMenu.ts +init_polyfill_buffer(); + +// src/lineAuthor/view/gutter/gutterElementSearch.ts +init_polyfill_buffer(); +var mouseXY = { x: -10, y: -10 }; +function prepareGutterSearchForContextMenuHandling() { + if (mouseXY.x === -10) { + window.addEventListener("mousedown", (e) => { + mouseXY.x = e.clientX; + mouseXY.y = e.clientY; + }); + } +} +function findGutterElementUnderMouse() { + for (const elt of attachedGutterElements) { + if (contains(elt, mouseXY)) return elt; + } +} +function contains(elt, pt) { + const { x, y, width, height } = elt.getBoundingClientRect(); + return x <= pt.x && pt.x <= x + width && y <= pt.y && pt.y <= y + height; +} + +// src/pluginGlobalRef.ts +init_polyfill_buffer(); +var pluginRef = {}; + +// src/lineAuthor/view/contextMenu.ts +var COMMIT_ATTR = "data-commit"; +function handleContextMenu(menu, editor, _mdv) { + if (editor.hasFocus()) return; + const gutterElement = findGutterElementUnderMouse(); + if (!gutterElement) return; + const info = getCommitInfo(gutterElement); + if (!info) return; + if (!info.isZeroCommit && !info.isWaitingGutter) { + addCopyHashMenuItem(info, menu); + } + addConfigurableLineAuthorSettings("showCommitHash", menu); + addConfigurableLineAuthorSettings("authorDisplay", menu); + addConfigurableLineAuthorSettings("dateTimeFormatOptions", menu); +} +function addCopyHashMenuItem(commit2, menu) { + menu.addItem( + (item) => item.setTitle("Copy commit hash").setIcon("copy").setSection("obs-git-line-author-copy").onClick((_e) => navigator.clipboard.writeText(commit2.hash)) + ); +} +function addConfigurableLineAuthorSettings(key2, menu) { + var _a2, _b; + let title; + let actionNewValue; + const settings = pluginRef.plugin.settings.lineAuthor; + const currentValue = settings[key2]; + const currentlyShown = typeof currentValue === "boolean" ? currentValue : currentValue !== "hide"; + const defaultValue = DEFAULT_SETTINGS.lineAuthor[key2]; + if (key2 === "showCommitHash") { + title = "Show commit hash"; + actionNewValue = !currentValue; + } else if (key2 === "authorDisplay") { + const showOption = (_a2 = settings.lastShownAuthorDisplay) != null ? _a2 : defaultValue; + title = "Show author " + (currentlyShown ? currentValue : showOption); + actionNewValue = currentlyShown ? "hide" : showOption; + } else if (key2 === "dateTimeFormatOptions") { + const showOption = (_b = settings.lastShownDateTimeFormatOptions) != null ? _b : defaultValue; + title = "Show " + (currentlyShown ? currentValue : showOption); + title += !title.contains("date") ? " date" : ""; + actionNewValue = currentlyShown ? "hide" : showOption; + } else { + impossibleBranch(key2); + } + menu.addItem( + (item) => item.setTitle(title).setSection("obs-git-line-author-configure").setChecked(currentlyShown).onClick( + (_e) => { + var _a3, _b2; + return (_b2 = (_a3 = pluginRef.plugin) == null ? void 0 : _a3.settingsTab) == null ? void 0 : _b2.lineAuthorSettingHandler( + key2, + actionNewValue + ); + } + ) + ); +} +function enrichCommitInfoForContextMenu(commit2, isWaitingGutter, elt) { + elt.setAttr( + COMMIT_ATTR, + JSON.stringify({ + hash: commit2.hash, + isZeroCommit: commit2.isZeroCommit, + isWaitingGutter + }) + ); +} +function getCommitInfo(elt) { + const commitInfoStr = elt.getAttr(COMMIT_ATTR); + return commitInfoStr ? JSON.parse(commitInfoStr) : void 0; +} + +// src/lineAuthor/view/gutter/coloring.ts +init_polyfill_buffer(); +function previewColor(which, settings) { + return which === "oldest" ? coloringBasedOnCommitAge(0, false, settings).color : coloringBasedOnCommitAge(void 0, true, settings).color; +} +function coloringBasedOnCommitAge(commitAuthorEpochSeonds, isZeroCommit, settings) { + const maxAgeInDays = maxAgeInDaysFromSettings(settings); + const epochSecondsNow = Date.now() / 1e3; + const authoringEpochSeconds = commitAuthorEpochSeonds != null ? commitAuthorEpochSeonds : 0; + const secondsSinceCommit = isZeroCommit ? 0 : epochSecondsNow - authoringEpochSeconds; + const daysSinceCommit = secondsSinceCommit / 60 / 60 / 24; + const x = Math.pow( + Math.clamp(daysSinceCommit / maxAgeInDays, 0, 1), + 1 / 2.3 + ); + const dark = isDarkMode(); + const color0 = settings.colorNew; + const color1 = settings.colorOld; + const scaling = dark ? 0.4 : 1; + const r = lin(color0.r, color1.r, x) * scaling; + const g = lin(color0.g, color1.g, x) * scaling; + const b = lin(color0.b, color1.b, x) * scaling; + const a = dark ? 0.75 : 0.25; + return { color: `rgba(${r},${g},${b},${a})`, daysSinceCommit }; +} +function lin(z0, z1, x) { + return z0 + (z1 - z0) * x; +} +function isDarkMode() { + const obsidian = window == null ? void 0 : window.app; + return (obsidian == null ? void 0 : obsidian.getTheme()) === "obsidian"; +} +function setTextColorCssBasedOnSetting(settings) { + document.body.style.setProperty( + "--obs-git-gutter-text", + settings.textColorCss + ); +} + +// src/lineAuthor/view/gutter/commitChoice.ts +init_polyfill_buffer(); +function chooseNewestCommit(lineAuthoring, startLine, endLine) { + let newest = void 0; + for (let line = startLine; line <= endLine; line++) { + const currentHash = lineAuthoring.hashPerLine[line]; + const currentCommit = lineAuthoring.commits.get(currentHash); + if (!newest || currentCommit.isZeroCommit || isNewerThan(currentCommit, newest)) { + newest = currentCommit; + } + } + return newest; +} +function isNewerThan(left, right) { + var _a2, _b, _c, _d; + const l = (_b = (_a2 = left.author) == null ? void 0 : _a2.epochSeconds) != null ? _b : 0; + const r = (_d = (_c = right.author) == null ? void 0 : _c.epochSeconds) != null ? _d : 0; + return l > r; +} + +// src/lineAuthor/view/gutter/gutter.ts +var VALUE_NOT_FOUND_FALLBACK = "-"; +var NEW_CHANGE_CHARACTER = "+"; +var NEW_CHANGE_NUMBER_OF_CHARACTERS = 3; +var DIFFERING_AUTHOR_COMMITTER_MARKER = "*"; +var NON_WHITESPACE_REGEXP = /\S/g; +var UNINTRUSIVE_CHARACTER_FOR_WAITING_RENDERING = "%"; +var TextGutter = class extends import_view.GutterMarker { + constructor(text2) { + super(); + this.text = text2; + } + eq(other) { + return this.text === (other == null ? void 0 : other.text); + } + toDOM() { + return document.createTextNode(this.text); + } + destroy(dom) { + if (!document.body.contains(dom)) dom.remove(); + } +}; +var LineAuthoringGutter = class extends import_view.GutterMarker { + /** + * **This should only be called {@link lineAuthoringGutterMarker}!** + * + * We want to avoid creating the same instance multiple times for improved performance. + */ + constructor(lineAuthoring, startLine, endLine, key2, settings, options) { + super(); + this.lineAuthoring = lineAuthoring; + this.startLine = startLine; + this.endLine = endLine; + this.key = key2; + this.settings = settings; + this.options = options; + this.point = false; + this.elementClass = "obs-git-blame-gutter"; + } + // Equality used by CodeMirror for optimisations + eq(other) { + return this.key === (other == null ? void 0 : other.key) && this.startLine === (other == null ? void 0 : other.startLine) && this.endLine === (other == null ? void 0 : other.endLine) && (this == null ? void 0 : this.options) === (other == null ? void 0 : other.options); + } + /** + * Renders to a Html node. + * + * It choses the newest commit within the line-range, + * renders it, makes adjustments for fake-commits and finally warps + * it into HTML. + * + * The DOM is actually precomputed with {@link computeDom}, + * which provides a finaliser to run before the DOM is handed over to CodeMirror. + * This is done, because this method is called frequently. It is called, + * whenever a gutter gets into the viewport and needs to be rendered. + * + * The age in days is recorded via {@link recordRenderedAgeInDays} to enable adaptive coloring. + */ + toDOM() { + var _a2; + this.precomputedDomProvider = (_a2 = this.precomputedDomProvider) != null ? _a2 : this.computeDom(); + return this.precomputedDomProvider(); + } + destroy(dom) { + if (!document.body.contains(dom)) { + dom.remove(); + attachedGutterElements.delete(dom); + } + } + /** + * Prepares the DOM for this gutter. + */ + computeDom() { + const commit2 = chooseNewestCommit( + this.lineAuthoring, + this.startLine, + this.endLine + ); + let toBeRenderedText = commit2.isZeroCommit ? "" : this.renderNonZeroCommit(commit2); + const isTrueCommit = !commit2.isZeroCommit && this.options !== "waiting-for-result"; + if (isTrueCommit) { + conditionallyUpdateLongestRenderedGutter(this, toBeRenderedText); + } else { + toBeRenderedText = this.adaptTextForFakeCommit( + commit2, + toBeRenderedText, + this.options + ); + } + const domProvider = this.createHtmlNode( + commit2, + toBeRenderedText, + this.options === "waiting-for-result" + ); + return domProvider; + } + createHtmlNode(commit2, text2, isWaitingGutter) { + var _a2; + const templateElt = window.createDiv(); + templateElt.innerText = text2; + const { color, daysSinceCommit } = coloringBasedOnCommitAge( + (_a2 = commit2 == null ? void 0 : commit2.author) == null ? void 0 : _a2.epochSeconds, + commit2 == null ? void 0 : commit2.isZeroCommit, + this.settings + ); + templateElt.style.backgroundColor = color; + enrichCommitInfoForContextMenu(commit2, isWaitingGutter, templateElt); + function prepareForDomAttachment() { + const elt = templateElt.cloneNode(true); + attachedGutterElements.add(elt); + if (!isWaitingGutter) recordRenderedAgeInDays(daysSinceCommit); + return elt; + } + return prepareForDomAttachment; + } + renderNonZeroCommit(commit2) { + const optionalShortHash = this.settings.showCommitHash ? this.renderHash(commit2) : ""; + const optionalAuthorName = this.settings.authorDisplay === "hide" ? "" : `${this.renderAuthorName( + commit2, + this.settings.authorDisplay + )}`; + const optionalAuthoringDate = this.settings.dateTimeFormatOptions === "hide" ? "" : `${this.renderAuthoringDate( + commit2, + this.settings.dateTimeFormatOptions, + this.settings.dateTimeFormatCustomString, + this.settings.dateTimeTimezone + )}`; + const parts = [ + optionalShortHash, + optionalAuthorName, + optionalAuthoringDate + ]; + return parts.filter((x) => x.length >= 1).join(" "); + } + renderHash(nonZeroCommit) { + return nonZeroCommit.hash.substring(0, 6); + } + renderAuthorName(nonZeroCommit, authorDisplay) { + var _a2, _b, _c, _d; + const name = (_b = (_a2 = nonZeroCommit == null ? void 0 : nonZeroCommit.author) == null ? void 0 : _a2.name) != null ? _b : ""; + const words = name.split(" ").filter((word) => word.length >= 1); + let rendered; + switch (authorDisplay) { + case "initials": + rendered = words.map((word) => word[0].toUpperCase()).join(""); + break; + case "first name": + rendered = (_c = words.first()) != null ? _c : VALUE_NOT_FOUND_FALLBACK; + break; + case "last name": + rendered = (_d = words.last()) != null ? _d : VALUE_NOT_FOUND_FALLBACK; + break; + case "full": + rendered = name; + break; + default: + return impossibleBranch(authorDisplay); + } + if (!strictDeepEqual(nonZeroCommit == null ? void 0 : nonZeroCommit.author, nonZeroCommit == null ? void 0 : nonZeroCommit.committer)) { + rendered = rendered + DIFFERING_AUTHOR_COMMITTER_MARKER; + } + return rendered; + } + renderAuthoringDate(nonZeroCommit, dateTimeFormatOptions, dateTimeFormatCustomString, dateTimeTimezone) { + var _a2; + const FALLBACK_COMMIT_DATE = "?"; + if (((_a2 = nonZeroCommit == null ? void 0 : nonZeroCommit.author) == null ? void 0 : _a2.epochSeconds) === void 0) + return FALLBACK_COMMIT_DATE; + let dateTimeFormatting; + switch (dateTimeFormatOptions) { + case "date": + dateTimeFormatting = DATE_FORMAT; + break; + case "datetime": + dateTimeFormatting = DATE_TIME_FORMAT_MINUTES; + break; + case "custom": + dateTimeFormatting = dateTimeFormatCustomString; + break; + case "natural language": + dateTimeFormatting = (time) => { + const diff3 = time.diff((0, import_obsidian10.moment)()); + const addFluentSuffix = true; + return import_obsidian10.moment.duration(diff3).humanize(addFluentSuffix); + }; + break; + default: + return impossibleBranch(dateTimeFormatOptions); + } + let authoringDate = import_obsidian10.moment.unix( + nonZeroCommit.author.epochSeconds + ); + switch (dateTimeTimezone) { + case "viewer-local": + break; + case "author-local": + authoringDate = authoringDate.utcOffset( + nonZeroCommit.author.tz + ); + dateTimeFormatting += " Z"; + break; + case "utc0000": + authoringDate = authoringDate.utc(); + dateTimeFormatting += "[Z]"; + break; + default: + return impossibleBranch(dateTimeTimezone); + } + if (typeof dateTimeFormatting === "string") { + return authoringDate.format(dateTimeFormatting); + } else { + return dateTimeFormatting(authoringDate); + } + } + adaptTextForFakeCommit(commit2, toBeRenderedText, options) { + var _a2, _b, _c, _d; + const original = (_b = (_a2 = getLongestRenderedGutter()) == null ? void 0 : _a2.text) != null ? _b : toBeRenderedText; + const fillCharacter = options !== "waiting-for-result" && commit2.isZeroCommit ? NEW_CHANGE_CHARACTER : UNINTRUSIVE_CHARACTER_FOR_WAITING_RENDERING; + toBeRenderedText = original.replace( + NON_WHITESPACE_REGEXP, + fillCharacter + ); + const desiredTextLength = (_d = (_c = latestSettings.get()) == null ? void 0 : _c.gutterSpacingFallbackLength) != null ? _d : toBeRenderedText.length; + toBeRenderedText = resizeToLength( + toBeRenderedText, + desiredTextLength, + fillCharacter + ); + if (options !== "waiting-for-result" && commit2.isZeroCommit) { + const numberOfLastCharactersToKeep = Math.min( + desiredTextLength, + NEW_CHANGE_NUMBER_OF_CHARACTERS + ); + toBeRenderedText = prefixOfLengthAsWhitespace( + toBeRenderedText, + desiredTextLength - numberOfLastCharactersToKeep + ); + } + return toBeRenderedText; + } +}; +function lineAuthoringGutterMarker(la, startLine, endLine, key2, settings, options) { + const digest = import_js_sha2562.sha256.create(); + digest.update(Object.values(settings).join(",")); + digest.update(`s${startLine}-e${endLine}-k${key2}-o${options}`); + const cacheKey = digest.hex(); + const cached = gutterInstances.get(cacheKey); + if (cached) return cached; + const result = new LineAuthoringGutter( + la, + startLine, + endLine, + key2, + settings, + options + ); + gutterInstances.set(cacheKey, result); + return result; +} + +// src/lineAuthor/view/gutter/initial.ts +init_polyfill_buffer(); +var import_obsidian11 = require("obsidian"); +function initialSpacingGutter() { + var _a2, _b; + const length = (_b = (_a2 = latestSettings.get()) == null ? void 0 : _a2.gutterSpacingFallbackLength) != null ? _b : DEFAULT_SETTINGS.lineAuthor.gutterSpacingFallbackLength; + return new TextGutter(Array(length).fill("-").join("")); +} +function initialLineAuthoringGutter(settings) { + const { lineAuthoring, ageForInitialRender } = adaptiveInitialColoredWaitingLineAuthoring(settings); + return lineAuthoringGutterMarker( + lineAuthoring, + 1, + 1, + "initialGutter" + ageForInitialRender, + // use a age coloring based cache key + settings, + "waiting-for-result" + ); +} +function adaptiveInitialColoredWaitingLineAuthoring(settings) { + var _a2; + const ageForInitialRender = (_a2 = computeAdaptiveInitialColoringAgeInDays()) != null ? _a2 : maxAgeInDaysFromSettings(settings) * 0.25; + const slightlyOlderAgeForInitialRender = (0, import_obsidian11.moment)().add( + -ageForInitialRender, + "days" + ); + const dummyAuthor = { + name: "", + epochSeconds: momentToEpochSeconds(slightlyOlderAgeForInitialRender), + tz: "+0000" + }; + const dummyCommit = { + hash: "waiting-for-result", + author: dummyAuthor, + committer: dummyAuthor, + isZeroCommit: false + }; + return { + lineAuthoring: { + hashPerLine: [void 0, "waiting-for-result"], + commits: /* @__PURE__ */ new Map([["waiting-for-result", dummyCommit]]) + }, + ageForInitialRender + }; +} + +// src/lineAuthor/view/gutter/untrackedFile.ts +init_polyfill_buffer(); +function newUntrackedFileGutter(key2, settings) { + const dummyLineAuthoring = { + hashPerLine: [void 0, "000000"], + commits: /* @__PURE__ */ new Map([["000000", zeroCommit]]) + }; + return lineAuthoringGutterMarker(dummyLineAuthoring, 1, 1, key2, settings); +} + +// src/lineAuthor/view/view.ts +var UNDISPLAYED = new TextGutter(""); +var lineAuthorGutter = (0, import_view2.gutter)({ + class: "line-author-gutter-container", + markers(view) { + const lineAuthoring = view.state.field(lineAuthorState, false); + return lineAuthoringGutterMarkersRangeSet(view, lineAuthoring); + }, + lineMarkerChange(update2) { + const newLineAuthoringId = laStateDigest( + update2.state.field(lineAuthorState) + ); + const oldLineAuthoringId = laStateDigest( + update2.startState.field(lineAuthorState) + ); + return oldLineAuthoringId !== newLineAuthoringId; + }, + renderEmptyElements: true, + initialSpacer: (view) => { + temporaryWorkaroundGutterSpacingForRenderedLineAuthoring(view); + return initialSpacingGutter(); + }, + updateSpacer: (_sp, update2) => { + var _a2, _b; + temporaryWorkaroundGutterSpacingForRenderedLineAuthoring(update2.view); + return (_b = (_a2 = getLongestRenderedGutter()) == null ? void 0 : _a2.gutter) != null ? _b : initialSpacingGutter(); + } +}); +function lineAuthoringGutterMarkersRangeSet(view, optLA) { + const digest = laStateDigest(optLA); + const doc = view.state.doc; + const lineBlockEndPos = /* @__PURE__ */ new Map(); + for (let line = 1; line <= doc.lines; line++) { + const from = doc.line(line).from; + const to = view.lineBlockAt(from).to; + lineBlockEndPos.set(line, [from, to]); + digest.update([from, to, 0]); + } + const laSettings = latestSettings.get(); + digest.update("s" + Object.values(latestSettings).join(",")); + const cacheKey = digest.hex(); + const cached = gutterMarkersRangeSet.get(cacheKey); + if (cached) return cached; + const { result, allowCache } = computeLineAuthoringGutterMarkersRangeSet( + doc, + lineBlockEndPos, + laSettings, + optLA + ); + if (allowCache) gutterMarkersRangeSet.set(cacheKey, result); + return result; +} +function computeLineAuthoringGutterMarkersRangeSet(doc, blocksPerLine, settings, optLA) { + let allowCache = true; + const docLastLine = doc.lines; + const ranges = []; + function add2(from, to, gutter2) { + return ranges.push(gutter2.range(from, to)); + } + const lineFrom = computeLineMappingForUnsavedChanges(docLastLine, optLA); + const emptyDoc = doc.length === 0; + const lastLineIsEmpty = doc.iterLines(docLastLine, docLastLine + 1).next().value === ""; + for (let startLine = 1; startLine <= docLastLine; startLine++) { + const [from, to] = blocksPerLine.get(startLine); + const endLine = doc.lineAt(to).number; + if (emptyDoc) { + add2(from, to, UNDISPLAYED); + continue; + } + if (startLine === docLastLine && lastLineIsEmpty) { + add2(from, to, UNDISPLAYED); + continue; + } + if (optLA === void 0) { + add2(from, to, initialLineAuthoringGutter(settings)); + allowCache = false; + continue; + } + const { key: key2, la } = optLA; + if (la === "untracked") { + add2(from, to, newUntrackedFileGutter(la, settings)); + continue; + } + const lastAuthorLine = la.hashPerLine.length - 1; + const laStartLine = lineFrom[startLine]; + const laEndLine = lineFrom[endLine]; + if (laEndLine && laEndLine > lastAuthorLine) { + add2(from, to, UNDISPLAYED); + } + if (laStartLine !== void 0 && between(1, laStartLine, lastAuthorLine) && laEndLine !== void 0 && between(1, laEndLine, lastAuthorLine)) { + add2( + from, + to, + lineAuthoringGutterMarker( + la, + laStartLine, + laEndLine, + key2, + settings + ) + ); + continue; + } + if (lastAuthorLine < 1) { + add2(from, to, initialLineAuthoringGutter(settings)); + allowCache = false; + continue; + } + const start = Math.clamp(laStartLine != null ? laStartLine : startLine, 1, lastAuthorLine); + const end = Math.clamp(laEndLine != null ? laEndLine : endLine, 1, lastAuthorLine); + add2( + from, + to, + lineAuthoringGutterMarker( + la, + start, + end, + key2 + "computing", + settings, + "waiting-for-result" + ) + ); + } + return { result: import_state3.RangeSet.of( + ranges, + /* sort = */ + true + ), allowCache }; +} +function computeLineMappingForUnsavedChanges(docLastLine, optLA) { + if (!(optLA == null ? void 0 : optLA.lineOffsetsFromUnsavedChanges)) { + return Array.from(new Array(docLastLine + 1), (ln) => ln); + } + const lineFrom = [void 0]; + let cumulativeLineOffset = 0; + for (let ln = 1; ln <= docLastLine; ln++) { + const unsavedChanges = optLA.lineOffsetsFromUnsavedChanges.get(ln); + cumulativeLineOffset += unsavedChanges != null ? unsavedChanges : 0; + lineFrom[ln] = unsavedChanges === void 0 ? ln - cumulativeLineOffset : void 0; + } + return lineFrom; +} +function temporaryWorkaroundGutterSpacingForRenderedLineAuthoring(view) { + const guttersContainers = view.dom.querySelectorAll( + ".cm-gutters" + ); + guttersContainers.forEach((cont) => { + if (!(cont == null ? void 0 : cont.style)) return; + if (!cont.style.marginLeft) { + cont.style.marginLeft = "unset"; + } + }); +} + +// src/lineAuthor/lineAuthorProvider.ts +var LineAuthorProvider = class { + constructor(plugin) { + this.plugin = plugin; + /** + * Saves all computed line authoring results. + * + * See {@link LineAuthoringId} + */ + this.lineAuthorings = /* @__PURE__ */ new Map(); + } + async trackChanged(file) { + this.trackChangedHelper(file).catch((reason) => { + console.warn("Git: Error in trackChanged." + reason); + return Promise.reject(reason); + }); + } + async trackChangedHelper(file) { + if (!file) return; + if (file.path === void 0) { + console.warn( + "Git: Attempted to track change of undefined filepath. Unforeseen situation." + ); + return; + } + this.computeLineAuthorInfo(file.path); + } + destroy() { + this.lineAuthorings.clear(); + eventsPerFilePathSingleton.clear(); + clearViewCache(); + } + async computeLineAuthorInfo(filepath) { + const gitManager = this.plugin.lineAuthoringFeature.isAvailableOnCurrentPlatform().gitManager; + const headRevision = await gitManager.submoduleAwareHeadRevisonInContainingDirectory( + filepath + ); + const fileHash = await gitManager.hashObject(filepath); + const key2 = lineAuthoringId(headRevision, fileHash, filepath); + if (key2 === void 0) { + return; + } + if (this.lineAuthorings.has(key2)) { + } else { + const gitAuthorResult = await gitManager.blame( + filepath, + this.plugin.settings.lineAuthor.followMovement, + this.plugin.settings.lineAuthor.ignoreWhitespace + ); + this.lineAuthorings.set(key2, gitAuthorResult); + } + this.notifyComputationResultToSubscribers(filepath, key2); + } + notifyComputationResultToSubscribers(filepath, key2) { + eventsPerFilePathSingleton.ifFilepathDefinedTransformSubscribers( + filepath, + async (subs) => subs.forEach( + (sub) => sub.notifyLineAuthoring(key2, this.lineAuthorings.get(key2)) + ) + ); + } +}; +var enabledLineAuthorInfoExtensions = import_state4.Prec.high([ + subscribeNewEditor, + lineAuthorState, + lineAuthorGutter +]); + +// src/lineAuthor/lineAuthorIntegration.ts +var LineAuthoringFeature = class { + constructor(plg) { + this.plg = plg; + this.codeMirrorExtensions = []; + this.handleWorkspaceLeaf = (leaf) => { + const obsView = leaf == null ? void 0 : leaf.view; + const file = obsView == null ? void 0 : obsView.file; + if (!this.lineAuthorInfoProvider) { + console.warn( + "Git: undefined lineAuthorInfoProvider. Unexpected situation." + ); + return; + } + if (file === void 0 || (obsView == null ? void 0 : obsView.allowNoFile) === true) return; + this.lineAuthorInfoProvider.trackChanged(file); + }; + } + // ========================= INIT and DE-INIT ========================== + onLoadPlugin() { + this.plg.registerEditorExtension(this.codeMirrorExtensions); + provideSettingsAccess( + () => this.plg.settings.lineAuthor, + (laSettings) => { + this.plg.settings.lineAuthor = laSettings; + this.plg.saveSettings(); + } + ); + } + conditionallyActivateBySettings() { + if (this.plg.settings.lineAuthor.show) { + this.activateFeature(); + } + } + activateFeature() { + try { + if (!this.isAvailableOnCurrentPlatform().available) return; + setTextColorCssBasedOnSetting(this.plg.settings.lineAuthor); + this.lineAuthorInfoProvider = new LineAuthorProvider(this.plg); + this.createEventHandlers(); + this.activateCodeMirrorExtensions(); + console.log(this.plg.manifest.name + ": Enabled line authoring."); + } catch (e) { + console.warn("Git: Error while loading line authoring feature.", e); + this.deactivateFeature(); + } + } + /** + * Deactivates the feature. This function is very defensive, as it is also + * called to cleanup, if a critical error in the line authoring has occurred. + */ + deactivateFeature() { + var _a2; + this.destroyEventHandlers(); + this.deactivateCodeMirrorExtensions(); + (_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.destroy(); + this.lineAuthorInfoProvider = void 0; + console.log(this.plg.manifest.name + ": Disabled line authoring."); + } + isAvailableOnCurrentPlatform() { + return { + available: this.plg.useSimpleGit && import_obsidian12.Platform.isDesktopApp, + gitManager: this.plg.gitManager instanceof SimpleGit ? this.plg.gitManager : void 0 + }; + } + // ========================= REFRESH ========================== + refreshLineAuthorViews() { + if (this.plg.settings.lineAuthor.show) { + this.deactivateFeature(); + this.activateFeature(); + } + } + // ========================= CODEMIRROR EXTENSIONS ========================== + activateCodeMirrorExtensions() { + this.codeMirrorExtensions.push(enabledLineAuthorInfoExtensions); + this.plg.app.workspace.updateOptions(); + this.plg.app.workspace.iterateAllLeaves(this.handleWorkspaceLeaf); + } + deactivateCodeMirrorExtensions() { + for (const ext of this.codeMirrorExtensions) { + this.codeMirrorExtensions.remove(ext); + } + this.plg.app.workspace.updateOptions(); + } + // ========================= HANDLERS ========================== + createEventHandlers() { + this.gutterContextMenuEvent = this.createGutterContextMenuHandler(); + this.fileOpenEvent = this.createFileOpenEvent(); + this.workspaceLeafChangeEvent = this.createWorkspaceLeafChangeEvent(); + this.fileModificationEvent = this.createVaultFileModificationHandler(); + this.refreshOnCssChangeEvent = this.createCssRefreshHandler(); + this.fileRenameEvent = this.createFileRenameEvent(); + prepareGutterSearchForContextMenuHandling(); + this.plg.registerEvent(this.gutterContextMenuEvent); + this.plg.registerEvent(this.refreshOnCssChangeEvent); + this.plg.registerEvent(this.fileOpenEvent); + this.plg.registerEvent(this.workspaceLeafChangeEvent); + this.plg.registerEvent(this.fileModificationEvent); + this.plg.registerEvent(this.fileRenameEvent); + } + destroyEventHandlers() { + this.plg.app.workspace.offref(this.refreshOnCssChangeEvent); + this.plg.app.workspace.offref(this.fileOpenEvent); + this.plg.app.workspace.offref(this.workspaceLeafChangeEvent); + this.plg.app.workspace.offref(this.refreshOnCssChangeEvent); + this.plg.app.vault.offref(this.fileRenameEvent); + this.plg.app.workspace.offref(this.gutterContextMenuEvent); + } + createFileOpenEvent() { + return this.plg.app.workspace.on( + "file-open", + (file) => { + var _a2; + return (_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.trackChanged(file); + } + ); + } + createWorkspaceLeafChangeEvent() { + return this.plg.app.workspace.on( + "active-leaf-change", + this.handleWorkspaceLeaf + ); + } + createFileRenameEvent() { + return this.plg.app.vault.on( + "rename", + (file, _old) => { + var _a2; + return file instanceof import_obsidian12.TFile && ((_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.trackChanged(file)); + } + ); + } + createVaultFileModificationHandler() { + return this.plg.app.vault.on( + "modify", + (anyPath) => { + var _a2; + return anyPath instanceof import_obsidian12.TFile && ((_a2 = this.lineAuthorInfoProvider) == null ? void 0 : _a2.trackChanged(anyPath)); + } + ); + } + createCssRefreshHandler() { + return this.plg.app.workspace.on( + "css-change", + () => this.refreshLineAuthorViews() + ); + } + createGutterContextMenuHandler() { + return this.plg.app.workspace.on("editor-menu", handleContextMenu); + } +}; + +// src/promiseQueue.ts +init_polyfill_buffer(); +var PromiseQueue = class { + constructor() { + this.tasks = []; + } + addTask(task) { + this.tasks.push(task); + if (this.tasks.length === 1) { + this.handleTask(); + } + } + async handleTask() { + if (this.tasks.length > 0) { + this.tasks[0]().finally(() => { + this.tasks.shift(); + this.handleTask(); + }); + } + } +}; + +// src/statusBar.ts +init_polyfill_buffer(); +var import_obsidian13 = require("obsidian"); +var StatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.messages = []; + this.base = "obsidian-git-statusbar-"; + this.statusBarEl.setAttribute("data-tooltip-position", "top"); + addEventListener("git-refresh", this.refreshCommitTimestamp.bind(this)); + } + displayMessage(message, timeout) { + this.messages.push({ + message: `Git: ${message.slice(0, 100)}`, + timeout + }); + this.display(); + } + display() { + if (this.messages.length > 0 && !this.currentMessage) { + this.currentMessage = this.messages.shift(); + this.statusBarEl.addClass(this.base + "message"); + this.statusBarEl.ariaLabel = ""; + this.statusBarEl.setText(this.currentMessage.message); + this.lastMessageTimestamp = Date.now(); + } else if (this.currentMessage) { + const messageAge = Date.now() - this.lastMessageTimestamp; + if (messageAge >= this.currentMessage.timeout) { + this.currentMessage = null; + this.lastMessageTimestamp = null; + } + } else { + this.displayState(); + } + } + displayState() { + if (this.statusBarEl.getText().length > 3 || !this.statusBarEl.hasChildNodes()) { + this.statusBarEl.empty(); + this.iconEl = this.statusBarEl.createDiv(); + this.textEl = this.statusBarEl.createDiv(); + this.textEl.style.float = "right"; + this.textEl.style.marginLeft = "5px"; + this.iconEl.style.float = "left"; + } + switch (this.plugin.state) { + case 0 /* idle */: + this.displayFromNow(); + break; + case 1 /* status */: + this.statusBarEl.ariaLabel = "Checking repository status..."; + (0, import_obsidian13.setIcon)(this.iconEl, "refresh-cw"); + this.statusBarEl.addClass(this.base + "status"); + break; + case 3 /* add */: + this.statusBarEl.ariaLabel = "Adding files..."; + (0, import_obsidian13.setIcon)(this.iconEl, "refresh-w"); + this.statusBarEl.addClass(this.base + "add"); + break; + case 4 /* commit */: + this.statusBarEl.ariaLabel = "Committing changes..."; + (0, import_obsidian13.setIcon)(this.iconEl, "git-commit"); + this.statusBarEl.addClass(this.base + "commit"); + break; + case 5 /* push */: + this.statusBarEl.ariaLabel = "Pushing changes..."; + (0, import_obsidian13.setIcon)(this.iconEl, "upload"); + this.statusBarEl.addClass(this.base + "push"); + break; + case 2 /* pull */: + this.statusBarEl.ariaLabel = "Pulling changes..."; + (0, import_obsidian13.setIcon)(this.iconEl, "download"); + this.statusBarEl.addClass(this.base + "pull"); + break; + case 6 /* conflicted */: + this.statusBarEl.ariaLabel = "You have conflict files..."; + (0, import_obsidian13.setIcon)(this.iconEl, "alert-circle"); + this.statusBarEl.addClass(this.base + "conflict"); + break; + default: + this.statusBarEl.ariaLabel = "Failed on initialization!"; + (0, import_obsidian13.setIcon)(this.iconEl, "alert-triangle"); + this.statusBarEl.addClass(this.base + "failed-init"); + break; + } + } + displayFromNow() { + var _a2; + const timestamp = this.lastCommitTimestamp; + if (timestamp) { + const moment6 = window.moment; + const fromNow = moment6(timestamp).fromNow(); + this.statusBarEl.ariaLabel = `${this.plugin.offlineMode ? "Offline: " : ""}Last Commit: ${fromNow}`; + if ((_a2 = this.unPushedCommits) != null ? _a2 : 0 > 0) { + this.statusBarEl.ariaLabel += ` +(${this.unPushedCommits} unpushed commits)`; + } + } else { + this.statusBarEl.ariaLabel = this.plugin.offlineMode ? "Git is offline" : "Git is ready"; + } + if (this.plugin.offlineMode) { + (0, import_obsidian13.setIcon)(this.iconEl, "globe"); + } else { + (0, import_obsidian13.setIcon)(this.iconEl, "check"); + } + if (this.plugin.settings.changedFilesInStatusBar && this.plugin.cachedStatus) { + this.textEl.setText( + this.plugin.cachedStatus.changed.length.toString() + ); + } + this.statusBarEl.addClass(this.base + "idle"); + } + async refreshCommitTimestamp() { + this.lastCommitTimestamp = await this.plugin.gitManager.getLastCommitTime(); + this.unPushedCommits = await this.plugin.gitManager.getUnpushedCommits(); + } +}; + +// src/ui/modals/changedFilesModal.ts +init_polyfill_buffer(); +var import_obsidian14 = require("obsidian"); +var ChangedFilesModal = class extends import_obsidian14.FuzzySuggestModal { + constructor(plugin, changedFiles) { + super(plugin.app); + this.plugin = plugin; + this.changedFiles = changedFiles; + this.setPlaceholder( + "Not supported files will be opened by default app!" + ); + } + getItems() { + return this.changedFiles; + } + getItemText(item) { + if (item.index == "U" && item.working_dir == "U") { + return `Untracked | ${item.vault_path}`; + } + let working_dir = ""; + let index2 = ""; + if (item.working_dir != " ") + working_dir = `Working Dir: ${item.working_dir} `; + if (item.index != " ") index2 = `Index: ${item.index}`; + return `${working_dir}${index2} | ${item.vault_path}`; + } + onChooseItem(item, _) { + if (this.plugin.app.metadataCache.getFirstLinkpathDest( + item.vault_path, + "" + ) == null) { + this.app.openWithDefaultApp(item.vault_path); + } else { + this.plugin.app.workspace.openLinkText(item.vault_path, "/"); + } + } +}; + +// src/ui/modals/customMessageModal.ts +init_polyfill_buffer(); +var import_obsidian15 = require("obsidian"); +var CustomMessageModal = class extends import_obsidian15.SuggestModal { + constructor(plugin, fromAutoBackup) { + super(plugin.app); + this.fromAutoBackup = fromAutoBackup; + this.resolve = null; + this.plugin = plugin; + this.setPlaceholder( + "Type your message and select optional the version with the added date." + ); + } + open() { + super.open(); + return new Promise((resolve2) => { + this.resolve = resolve2; + }); + } + onClose() { + if (this.resolve) this.resolve(void 0); + } + selectSuggestion(value, evt) { + if (this.resolve) this.resolve(value); + super.selectSuggestion(value, evt); + } + getSuggestions(query) { + const date = window.moment().format(this.plugin.settings.commitDateFormat); + if (query == "") query = "..."; + return [query, `${date}: ${query}`, `${query}: ${date}`]; + } + renderSuggestion(value, el) { + el.innerText = value; + } + onChooseSuggestion(item, _) { + } +}; + +// src/openInGitHub.ts +init_polyfill_buffer(); +var import_obsidian16 = require("obsidian"); +async function openLineInGitHub(editor, file, manager) { + const data = await getData(file, manager); + if (data.result === "failure") { + new import_obsidian16.Notice(data.reason); + return; + } + const { isGitHub, branch: branch2, repo, user, filePath } = data; + if (isGitHub) { + const from = editor.getCursor("from").line + 1; + const to = editor.getCursor("to").line + 1; + if (from === to) { + window.open( + `https://github.com/${user}/${repo}/blob/${branch2}/${filePath}?plain=1#L${from}` + ); + } else { + window.open( + `https://github.com/${user}/${repo}/blob/${branch2}/${filePath}?plain=1#L${from}-L${to}` + ); + } + } else { + new import_obsidian16.Notice("It seems like you are not using GitHub"); + } +} +async function openHistoryInGitHub(file, manager) { + const data = await getData(file, manager); + if (data.result === "failure") { + new import_obsidian16.Notice(data.reason); + return; + } + const { isGitHub, branch: branch2, repo, user, filePath } = data; + if (isGitHub) { + window.open( + `https://github.com/${user}/${repo}/commits/${branch2}/${filePath}` + ); + } else { + new import_obsidian16.Notice("It seems like you are not using GitHub"); + } +} +async function getData(file, manager) { + const branchInfo = await manager.branchInfo(); + let remoteBranch = branchInfo.tracking; + let branch2 = branchInfo.current; + let remoteUrl = void 0; + let filePath = manager.getRelativeRepoPath(file.path); + if (manager instanceof SimpleGit) { + const submodule = await manager.getSubmoduleOfFile( + manager.getRelativeRepoPath(file.path) + ); + if (submodule) { + filePath = submodule.relativeFilepath; + const status2 = await manager.git.cwd({ + path: submodule.submodule, + root: false + }).status(); + remoteBranch = status2.tracking || void 0; + branch2 = status2.current || void 0; + if (remoteBranch) { + const remote = remoteBranch.substring( + 0, + remoteBranch.indexOf("/") + ); + const config = await manager.git.cwd({ + path: submodule.submodule, + root: false + }).getConfig(`remote.${remote}.url`, "local"); + if (config.value != null) { + remoteUrl = config.value; + } else { + return { + result: "failure", + reason: "Failed to get remote url of submodule" + }; + } + } + } + } + if (remoteBranch == null) { + return { + result: "failure", + reason: "Remote branch is not configured" + }; + } + if (branch2 == null) { + return { + result: "failure", + reason: "Failed to get current branch name" + }; + } + if (remoteUrl == null) { + const remote = remoteBranch.substring(0, remoteBranch.indexOf("/")); + remoteUrl = await manager.getConfig(`remote.${remote}.url`); + if (remoteUrl == null) { + return { + result: "failure", + reason: "Failed to get remote url" + }; + } + } + const res = remoteUrl.match( + /(?:^https:\/\/github\.com\/(.+)\/(.+?)(?:\.git)?$)|(?:^[a-zA-Z]+@github\.com:(.+)\/(.+?)(?:\.git)?$)/ + ); + if (res == null) { + return { + result: "failure", + reason: "Could not parse remote url" + }; + } else { + const [isGitHub, httpsUser, httpsRepo, sshUser, sshRepo] = res; + return { + result: "success", + isGitHub: !!isGitHub, + repo: httpsRepo || sshRepo, + user: httpsUser || sshUser, + branch: branch2, + filePath + }; + } +} + +// src/setting/localStorageSettings.ts +init_polyfill_buffer(); +var LocalStorageSettings = class { + constructor(plugin) { + this.plugin = plugin; + this.prefix = this.plugin.manifest.id + ":"; + } + migrate() { + const keys = [ + "password", + "hostname", + "conflict", + "lastAutoPull", + "lastAutoBackup", + "lastAutoPush", + "gitPath", + "pluginDisabled" + ]; + for (const key2 of keys) { + const old = localStorage.getItem(this.prefix + key2); + if (app.loadLocalStorage(this.prefix + key2) == null && old != null) { + if (old != null) { + app.saveLocalStorage(this.prefix + key2, old); + localStorage.removeItem(this.prefix + key2); + } + } + } + } + getPassword() { + return app.loadLocalStorage(this.prefix + "password"); + } + setPassword(value) { + return app.saveLocalStorage(this.prefix + "password", value); + } + getUsername() { + return app.loadLocalStorage(this.prefix + "username"); + } + setUsername(value) { + return app.saveLocalStorage(this.prefix + "username", value); + } + getHostname() { + return app.loadLocalStorage(this.prefix + "hostname"); + } + setHostname(value) { + return app.saveLocalStorage(this.prefix + "hostname", value); + } + getConflict() { + return app.loadLocalStorage(this.prefix + "conflict") == "true"; + } + setConflict(value) { + return app.saveLocalStorage(this.prefix + "conflict", `${value}`); + } + getLastAutoPull() { + return app.loadLocalStorage(this.prefix + "lastAutoPull"); + } + setLastAutoPull(value) { + return app.saveLocalStorage(this.prefix + "lastAutoPull", value); + } + getLastAutoBackup() { + return app.loadLocalStorage(this.prefix + "lastAutoBackup"); + } + setLastAutoBackup(value) { + return app.saveLocalStorage(this.prefix + "lastAutoBackup", value); + } + getLastAutoPush() { + return app.loadLocalStorage(this.prefix + "lastAutoPush"); + } + setLastAutoPush(value) { + return app.saveLocalStorage(this.prefix + "lastAutoPush", value); + } + getGitPath() { + return app.loadLocalStorage(this.prefix + "gitPath"); + } + setGitPath(value) { + return app.saveLocalStorage(this.prefix + "gitPath", value); + } + getPATHPaths() { + var _a2, _b; + return (_b = (_a2 = app.loadLocalStorage(this.prefix + "PATHPaths")) == null ? void 0 : _a2.split(":")) != null ? _b : []; + } + setPATHPaths(value) { + return app.saveLocalStorage(this.prefix + "PATHPaths", value.join(":")); + } + getEnvVars() { + var _a2; + return JSON.parse( + (_a2 = app.loadLocalStorage(this.prefix + "envVars")) != null ? _a2 : "[]" + ); + } + setEnvVars(value) { + return app.saveLocalStorage( + this.prefix + "envVars", + JSON.stringify(value) + ); + } + getPluginDisabled() { + return app.loadLocalStorage(this.prefix + "pluginDisabled") == "true"; + } + setPluginDisabled(value) { + return app.saveLocalStorage(this.prefix + "pluginDisabled", `${value}`); + } +}; + +// src/ui/diff/diffView.ts +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/diff2html.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/diff-parser.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/types.js +init_polyfill_buffer(); +var LineType; +(function(LineType2) { + LineType2["INSERT"] = "insert"; + LineType2["DELETE"] = "delete"; + LineType2["CONTEXT"] = "context"; +})(LineType || (LineType = {})); +var OutputFormatType = { + LINE_BY_LINE: "line-by-line", + SIDE_BY_SIDE: "side-by-side" +}; +var LineMatchingType = { + LINES: "lines", + WORDS: "words", + NONE: "none" +}; +var DiffStyleType = { + WORD: "word", + CHAR: "char" +}; +var ColorSchemeType; +(function(ColorSchemeType2) { + ColorSchemeType2["AUTO"] = "auto"; + ColorSchemeType2["DARK"] = "dark"; + ColorSchemeType2["LIGHT"] = "light"; +})(ColorSchemeType || (ColorSchemeType = {})); + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/utils.js +init_polyfill_buffer(); +var specials = [ + "-", + "[", + "]", + "/", + "{", + "}", + "(", + ")", + "*", + "+", + "?", + ".", + "\\", + "^", + "$", + "|" +]; +var regex = RegExp("[" + specials.join("\\") + "]", "g"); +function escapeForRegExp(str) { + return str.replace(regex, "\\$&"); +} +function unifyPath(path2) { + return path2 ? path2.replace(/\\/g, "/") : path2; +} +function hashCode(text2) { + let i, chr, len; + let hash2 = 0; + for (i = 0, len = text2.length; i < len; i++) { + chr = text2.charCodeAt(i); + hash2 = (hash2 << 5) - hash2 + chr; + hash2 |= 0; + } + return hash2; +} + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/diff-parser.js +function getExtension(filename, language) { + const filenameParts = filename.split("."); + return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language; +} +function startsWithAny(str, prefixes) { + return prefixes.reduce((startsWith, prefix) => startsWith || str.startsWith(prefix), false); +} +var baseDiffFilenamePrefixes = ["a/", "b/", "i/", "w/", "c/", "o/"]; +function getFilename(line, linePrefix, extraPrefix) { + const prefixes = extraPrefix !== void 0 ? [...baseDiffFilenamePrefixes, extraPrefix] : baseDiffFilenamePrefixes; + const FilenameRegExp = linePrefix ? new RegExp(`^${escapeForRegExp(linePrefix)} "?(.+?)"?$`) : new RegExp('^"?(.+?)"?$'); + const [, filename = ""] = FilenameRegExp.exec(line) || []; + const matchingPrefix = prefixes.find((p) => filename.indexOf(p) === 0); + const fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; + return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, ""); +} +function getSrcFilename(line, srcPrefix) { + return getFilename(line, "---", srcPrefix); +} +function getDstFilename(line, dstPrefix) { + return getFilename(line, "+++", dstPrefix); +} +function parse(diffInput, config = {}) { + const files = []; + let currentFile = null; + let currentBlock = null; + let oldLine = null; + let oldLine2 = null; + let newLine = null; + let possibleOldName = null; + let possibleNewName = null; + const oldFileNameHeader = "--- "; + const newFileNameHeader = "+++ "; + const hunkHeaderPrefix = "@@"; + const oldMode = /^old mode (\d{6})/; + const newMode = /^new mode (\d{6})/; + const deletedFileMode = /^deleted file mode (\d{6})/; + const newFileMode = /^new file mode (\d{6})/; + const copyFrom = /^copy from "?(.+)"?/; + const copyTo = /^copy to "?(.+)"?/; + const renameFrom = /^rename from "?(.+)"?/; + const renameTo = /^rename to "?(.+)"?/; + const similarityIndex = /^similarity index (\d+)%/; + const dissimilarityIndex = /^dissimilarity index (\d+)%/; + const index2 = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; + const binaryFiles = /^Binary files (.*) and (.*) differ/; + const binaryDiff = /^GIT binary patch/; + const combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; + const combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; + const combinedNewFile = /^new file mode (\d{6})/; + const combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; + const diffLines2 = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); + function saveBlock() { + if (currentBlock !== null && currentFile !== null) { + currentFile.blocks.push(currentBlock); + currentBlock = null; + } + } + function saveFile() { + if (currentFile !== null) { + if (!currentFile.oldName && possibleOldName !== null) { + currentFile.oldName = possibleOldName; + } + if (!currentFile.newName && possibleNewName !== null) { + currentFile.newName = possibleNewName; + } + if (currentFile.newName) { + files.push(currentFile); + currentFile = null; + } + } + possibleOldName = null; + possibleNewName = null; + } + function startFile() { + saveBlock(); + saveFile(); + currentFile = { + blocks: [], + deletedLines: 0, + addedLines: 0 + }; + } + function startBlock(line) { + saveBlock(); + let values; + if (currentFile !== null) { + if (values = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)) { + currentFile.isCombined = false; + oldLine = parseInt(values[1], 10); + newLine = parseInt(values[2], 10); + } else if (values = /^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(line)) { + currentFile.isCombined = true; + oldLine = parseInt(values[1], 10); + oldLine2 = parseInt(values[2], 10); + newLine = parseInt(values[3], 10); + } else { + if (line.startsWith(hunkHeaderPrefix)) { + console.error("Failed to parse lines, starting in 0!"); + } + oldLine = 0; + newLine = 0; + currentFile.isCombined = false; + } + } + currentBlock = { + lines: [], + oldStartLine: oldLine, + oldStartLine2: oldLine2, + newStartLine: newLine, + header: line + }; + } + function createLine(line) { + if (currentFile === null || currentBlock === null || oldLine === null || newLine === null) + return; + const currentLine = { + content: line + }; + const addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; + const deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; + if (startsWithAny(line, addedPrefixes)) { + currentFile.addedLines++; + currentLine.type = LineType.INSERT; + currentLine.oldNumber = void 0; + currentLine.newNumber = newLine++; + } else if (startsWithAny(line, deletedPrefixes)) { + currentFile.deletedLines++; + currentLine.type = LineType.DELETE; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = void 0; + } else { + currentLine.type = LineType.CONTEXT; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = newLine++; + } + currentBlock.lines.push(currentLine); + } + function existHunkHeader(line, lineIdx) { + let idx = lineIdx; + while (idx < diffLines2.length - 3) { + if (line.startsWith("diff")) { + return false; + } + if (diffLines2[idx].startsWith(oldFileNameHeader) && diffLines2[idx + 1].startsWith(newFileNameHeader) && diffLines2[idx + 2].startsWith(hunkHeaderPrefix)) { + return true; + } + idx++; + } + return false; + } + diffLines2.forEach((line, lineIndex) => { + if (!line || line.startsWith("*")) { + return; + } + let values; + const prevLine = diffLines2[lineIndex - 1]; + const nxtLine = diffLines2[lineIndex + 1]; + const afterNxtLine = diffLines2[lineIndex + 2]; + if (line.startsWith("diff --git") || line.startsWith("diff --combined")) { + startFile(); + const gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; + if (values = gitDiffStart.exec(line)) { + possibleOldName = getFilename(values[1], void 0, config.dstPrefix); + possibleNewName = getFilename(values[2], void 0, config.srcPrefix); + } + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + currentFile.isGitDiff = true; + return; + } + if (line.startsWith("Binary files") && !(currentFile === null || currentFile === void 0 ? void 0 : currentFile.isGitDiff)) { + startFile(); + const unixDiffBinaryStart = /^Binary files "?([a-ciow]\/.+)"? and "?([a-ciow]\/.+)"? differ/; + if (values = unixDiffBinaryStart.exec(line)) { + possibleOldName = getFilename(values[1], void 0, config.dstPrefix); + possibleNewName = getFilename(values[2], void 0, config.srcPrefix); + } + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + currentFile.isBinary = true; + return; + } + if (!currentFile || !currentFile.isGitDiff && currentFile && line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) && afterNxtLine.startsWith(hunkHeaderPrefix)) { + startFile(); + } + if (currentFile === null || currentFile === void 0 ? void 0 : currentFile.isTooBig) { + return; + } + if (currentFile && (typeof config.diffMaxChanges === "number" && currentFile.addedLines + currentFile.deletedLines > config.diffMaxChanges || typeof config.diffMaxLineLength === "number" && line.length > config.diffMaxLineLength)) { + currentFile.isTooBig = true; + currentFile.addedLines = 0; + currentFile.deletedLines = 0; + currentFile.blocks = []; + currentBlock = null; + const message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; + startBlock(message); + return; + } + if (line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) || line.startsWith(newFileNameHeader) && prevLine.startsWith(oldFileNameHeader)) { + if (currentFile && !currentFile.oldName && line.startsWith("--- ") && (values = getSrcFilename(line, config.srcPrefix))) { + currentFile.oldName = values; + currentFile.language = getExtension(currentFile.oldName, currentFile.language); + return; + } + if (currentFile && !currentFile.newName && line.startsWith("+++ ") && (values = getDstFilename(line, config.dstPrefix))) { + currentFile.newName = values; + currentFile.language = getExtension(currentFile.newName, currentFile.language); + return; + } + } + if (currentFile && (line.startsWith(hunkHeaderPrefix) || currentFile.isGitDiff && currentFile.oldName && currentFile.newName && !currentBlock)) { + startBlock(line); + return; + } + if (currentBlock && (line.startsWith("+") || line.startsWith("-") || line.startsWith(" "))) { + createLine(line); + return; + } + const doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + if (values = oldMode.exec(line)) { + currentFile.oldMode = values[1]; + } else if (values = newMode.exec(line)) { + currentFile.newMode = values[1]; + } else if (values = deletedFileMode.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } else if (values = newFileMode.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = copyFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isCopy = true; + } else if (values = copyTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isCopy = true; + } else if (values = renameFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isRename = true; + } else if (values = renameTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isRename = true; + } else if (values = binaryFiles.exec(line)) { + currentFile.isBinary = true; + currentFile.oldName = getFilename(values[1], void 0, config.srcPrefix); + currentFile.newName = getFilename(values[2], void 0, config.dstPrefix); + startBlock("Binary file"); + } else if (binaryDiff.test(line)) { + currentFile.isBinary = true; + startBlock(line); + } else if (values = similarityIndex.exec(line)) { + currentFile.unchangedPercentage = parseInt(values[1], 10); + } else if (values = dissimilarityIndex.exec(line)) { + currentFile.changedPercentage = parseInt(values[1], 10); + } else if (values = index2.exec(line)) { + currentFile.checksumBefore = values[1]; + currentFile.checksumAfter = values[2]; + values[3] && (currentFile.mode = values[3]); + } else if (values = combinedIndex.exec(line)) { + currentFile.checksumBefore = [values[2], values[3]]; + currentFile.checksumAfter = values[1]; + } else if (values = combinedMode.exec(line)) { + currentFile.oldMode = [values[2], values[3]]; + currentFile.newMode = values[1]; + } else if (values = combinedNewFile.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = combinedDeletedFile.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } + }); + saveBlock(); + saveFile(); + return files; +} + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/file-list-renderer.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/render-utils.js +init_polyfill_buffer(); + +// node_modules/.pnpm/diff@5.1.0/node_modules/diff/lib/index.mjs +init_polyfill_buffer(); +function Diff2() { +} +Diff2.prototype = { + diff: function diff2(oldString, newString) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self2 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + if (options.maxEditLength) { + maxEditLength = Math.min(maxEditLength, options.maxEditLength); + } + var bestPath = [{ + newPos: -1, + components: [] + }]; + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = void 0; + var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self2.pushComponent(basePath.components, void 0, true); + } else { + basePath = addPath; + basePath.newPos++; + self2.pushComponent(basePath.components, true, void 0); + } + _oldPos = self2.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues2(self2, basePath.components, newString, oldString, self2.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + pushComponent: function pushComponent(components, added, removed) { + var last2 = components[components.length - 1]; + if (last2 && last2.added === added && last2.removed === removed) { + components[components.length - 1] = { + count: last2.count + 1, + added, + removed + }; + } else { + components.push({ + count: 1, + added, + removed + }); + } + }, + extractCommon: function extractCommon2(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } + basePath.newPos = newPos; + return oldPos; + }, + equals: function equals2(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty2(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput2(value) { + return value; + }, + tokenize: function tokenize2(value) { + return value.split(""); + }, + join: function join4(chars) { + return chars.join(""); + } +}; +function buildValues2(diff3, components, newString, oldString, useLongestToken) { + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff3.join(value); + } else { + component.value = diff3.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff3.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff3.equals("", lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + return components; +} +function clonePath(path2) { + return { + newPos: path2.newPos, + components: path2.components.slice(0) + }; +} +var characterDiff2 = new Diff2(); +function diffChars(oldStr, newStr, options) { + return characterDiff2.diff(oldStr, newStr, options); +} +var extendedWordChars2 = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; +var reWhitespace2 = /\S/; +var wordDiff2 = new Diff2(); +wordDiff2.equals = function(left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace2.test(left) && !reWhitespace2.test(right); +}; +wordDiff2.tokenize = function(value) { + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); + for (var i = 0; i < tokens.length - 1; i++) { + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars2.test(tokens[i]) && extendedWordChars2.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + return tokens; +}; +function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff2.diff(oldStr, newStr, options); +} +var lineDiff2 = new Diff2(); +lineDiff2.tokenize = function(value) { + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + return retLines; +}; +var sentenceDiff2 = new Diff2(); +sentenceDiff2.tokenize = function(value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); +}; +var cssDiff2 = new Diff2(); +cssDiff2.tokenize = function(value) { + return value.split(/([{}:;,]|\s+)/); +}; +function _typeof2(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof2 = function(obj2) { + return typeof obj2; + }; + } else { + _typeof2 = function(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof2(obj); +} +var objectPrototypeToString2 = Object.prototype.toString; +var jsonDiff2 = new Diff2(); +jsonDiff2.useLongestToken = true; +jsonDiff2.tokenize = lineDiff2.tokenize; +jsonDiff2.castInput = function(value) { + var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) { + return typeof v === "undefined" ? undefinedReplacement : v; + } : _this$options$stringi; + return typeof value === "string" ? value : JSON.stringify(canonicalize2(value, null, null, stringifyReplacer), stringifyReplacer, " "); +}; +jsonDiff2.equals = function(left, right) { + return Diff2.prototype.equals.call(jsonDiff2, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1")); +}; +function canonicalize2(obj, stack, replacementStack, replacer, key2) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) { + obj = replacer(key2, obj); + } + var i; + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + var canonicalizedObj; + if ("[object Array]" === objectPrototypeToString2.call(obj)) { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize2(obj[i], stack, replacementStack, replacer, key2); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if (_typeof2(obj) === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], _key; + for (_key in obj) { + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize2(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; +} +var arrayDiff2 = new Diff2(); +arrayDiff2.tokenize = function(value) { + return value.slice(); +}; +arrayDiff2.join = arrayDiff2.removeEmpty = function(value) { + return value; +}; + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/rematch.js +init_polyfill_buffer(); +function levenshtein(a, b) { + if (a.length === 0) { + return b.length; + } + if (b.length === 0) { + return a.length; + } + const matrix = []; + let i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + let j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) === a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); + } + } + } + return matrix[b.length][a.length]; +} +function newDistanceFn(str) { + return (x, y) => { + const xValue = str(x).trim(); + const yValue = str(y).trim(); + const lev = levenshtein(xValue, yValue); + return lev / (xValue.length + yValue.length); + }; +} +function newMatcherFn(distance2) { + function findBestMatch(a, b, cache = /* @__PURE__ */ new Map()) { + let bestMatchDist = Infinity; + let bestMatch; + for (let i = 0; i < a.length; ++i) { + for (let j = 0; j < b.length; ++j) { + const cacheKey = JSON.stringify([a[i], b[j]]); + let md; + if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) { + md = distance2(a[i], b[j]); + cache.set(cacheKey, md); + } + if (md < bestMatchDist) { + bestMatchDist = md; + bestMatch = { indexA: i, indexB: j, score: bestMatchDist }; + } + } + } + return bestMatch; + } + function group(a, b, level = 0, cache = /* @__PURE__ */ new Map()) { + const bm = findBestMatch(a, b, cache); + if (!bm || a.length + b.length < 3) { + return [[a, b]]; + } + const a1 = a.slice(0, bm.indexA); + const b1 = b.slice(0, bm.indexB); + const aMatch = [a[bm.indexA]]; + const bMatch = [b[bm.indexB]]; + const tailA = bm.indexA + 1; + const tailB = bm.indexB + 1; + const a2 = a.slice(tailA); + const b2 = b.slice(tailB); + const group1 = group(a1, b1, level + 1, cache); + const groupMatch = group(aMatch, bMatch, level + 1, cache); + const group2 = group(a2, b2, level + 1, cache); + let result = groupMatch; + if (bm.indexA > 0 || bm.indexB > 0) { + result = group1.concat(result); + } + if (a.length > tailA || b.length > tailB) { + result = result.concat(group2); + } + return result; + } + return group; +} + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/render-utils.js +var CSSLineClass = { + INSERTS: "d2h-ins", + DELETES: "d2h-del", + CONTEXT: "d2h-cntx", + INFO: "d2h-info", + INSERT_CHANGES: "d2h-ins d2h-change", + DELETE_CHANGES: "d2h-del d2h-change" +}; +var defaultRenderConfig = { + matching: LineMatchingType.NONE, + matchWordsThreshold: 0.25, + maxLineLengthHighlight: 1e4, + diffStyle: DiffStyleType.WORD, + colorScheme: ColorSchemeType.LIGHT +}; +var separator = "/"; +var distance = newDistanceFn((change) => change.value); +var matcher = newMatcherFn(distance); +function isDevNullName(name) { + return name.indexOf("dev/null") !== -1; +} +function removeInsElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/ins>)/g, ""); +} +function removeDelElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/del>)/g, ""); +} +function toCSSClass(lineType) { + switch (lineType) { + case LineType.CONTEXT: + return CSSLineClass.CONTEXT; + case LineType.INSERT: + return CSSLineClass.INSERTS; + case LineType.DELETE: + return CSSLineClass.DELETES; + } +} +function colorSchemeToCss(colorScheme) { + switch (colorScheme) { + case ColorSchemeType.DARK: + return "d2h-dark-color-scheme"; + case ColorSchemeType.AUTO: + return "d2h-auto-color-scheme"; + case ColorSchemeType.LIGHT: + default: + return "d2h-light-color-scheme"; + } +} +function prefixLength(isCombined) { + return isCombined ? 2 : 1; +} +function escapeForHtml(str) { + return str.slice(0).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); +} +function deconstructLine(line, isCombined, escape = true) { + const indexToSplit = prefixLength(isCombined); + return { + prefix: line.substring(0, indexToSplit), + content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit) + }; +} +function filenameDiff(file) { + const oldFilename = unifyPath(file.oldName); + const newFilename = unifyPath(file.newName); + if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { + const prefixPaths = []; + const suffixPaths = []; + const oldFilenameParts = oldFilename.split(separator); + const newFilenameParts = newFilename.split(separator); + const oldFilenamePartsSize = oldFilenameParts.length; + const newFilenamePartsSize = newFilenameParts.length; + let i = 0; + let j = oldFilenamePartsSize - 1; + let k = newFilenamePartsSize - 1; + while (i < j && i < k) { + if (oldFilenameParts[i] === newFilenameParts[i]) { + prefixPaths.push(newFilenameParts[i]); + i += 1; + } else { + break; + } + } + while (j > i && k > i) { + if (oldFilenameParts[j] === newFilenameParts[k]) { + suffixPaths.unshift(newFilenameParts[k]); + j -= 1; + k -= 1; + } else { + break; + } + } + const finalPrefix = prefixPaths.join(separator); + const finalSuffix = suffixPaths.join(separator); + const oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); + const newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); + if (finalPrefix.length && finalSuffix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } else if (finalPrefix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}"; + } else if (finalSuffix.length) { + return "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } + return oldFilename + " \u2192 " + newFilename; + } else if (!isDevNullName(newFilename)) { + return newFilename; + } else { + return oldFilename; + } +} +function getHtmlId(file) { + return `d2h-${hashCode(filenameDiff(file)).toString().slice(-6)}`; +} +function getFileIcon(file) { + let templateName = "file-changed"; + if (file.isRename) { + templateName = "file-renamed"; + } else if (file.isCopy) { + templateName = "file-renamed"; + } else if (file.isNew) { + templateName = "file-added"; + } else if (file.isDeleted) { + templateName = "file-deleted"; + } else if (file.newName !== file.oldName) { + templateName = "file-renamed"; + } + return templateName; +} +function diffHighlight(diffLine1, diffLine2, isCombined, config = {}) { + const { matching, maxLineLengthHighlight, matchWordsThreshold, diffStyle } = Object.assign(Object.assign({}, defaultRenderConfig), config); + const line1 = deconstructLine(diffLine1, isCombined, false); + const line2 = deconstructLine(diffLine2, isCombined, false); + if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) { + return { + oldLine: { + prefix: line1.prefix, + content: escapeForHtml(line1.content) + }, + newLine: { + prefix: line2.prefix, + content: escapeForHtml(line2.content) + } + }; + } + const diff3 = diffStyle === "char" ? diffChars(line1.content, line2.content) : diffWordsWithSpace(line1.content, line2.content); + const changedWords = []; + if (diffStyle === "word" && matching === "words") { + const removed = diff3.filter((element2) => element2.removed); + const added = diff3.filter((element2) => element2.added); + const chunks = matcher(added, removed); + chunks.forEach((chunk) => { + if (chunk[0].length === 1 && chunk[1].length === 1) { + const dist = distance(chunk[0][0], chunk[1][0]); + if (dist < matchWordsThreshold) { + changedWords.push(chunk[0][0]); + changedWords.push(chunk[1][0]); + } + } + }); + } + const highlightedLine = diff3.reduce((highlightedLine2, part) => { + const elemType = part.added ? "ins" : part.removed ? "del" : null; + const addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; + const escapedValue = escapeForHtml(part.value); + return elemType !== null ? `${highlightedLine2}<${elemType}${addClass}>${escapedValue}` : `${highlightedLine2}${escapedValue}`; + }, ""); + return { + oldLine: { + prefix: line1.prefix, + content: removeInsElements(highlightedLine) + }, + newLine: { + prefix: line2.prefix, + content: removeDelElements(highlightedLine) + } + }; +} + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/file-list-renderer.js +var baseTemplatesPath = "file-summary"; +var iconsBaseTemplatesPath = "icon"; +var defaultFileListRendererConfig = { + colorScheme: defaultRenderConfig.colorScheme +}; +var FileListRenderer = class { + constructor(hoganUtils, config = {}) { + this.hoganUtils = hoganUtils; + this.config = Object.assign(Object.assign({}, defaultFileListRendererConfig), config); + } + render(diffFiles) { + const files = diffFiles.map((file) => this.hoganUtils.render(baseTemplatesPath, "line", { + fileHtmlId: getHtmlId(file), + oldName: file.oldName, + newName: file.newName, + fileName: filenameDiff(file), + deletedLines: "-" + file.deletedLines, + addedLines: "+" + file.addedLines + }, { + fileIcon: this.hoganUtils.template(iconsBaseTemplatesPath, getFileIcon(file)) + })).join("\n"); + return this.hoganUtils.render(baseTemplatesPath, "wrapper", { + colorScheme: colorSchemeToCss(this.config.colorScheme), + filesNumber: diffFiles.length, + files + }); + } +}; + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/line-by-line-renderer.js +init_polyfill_buffer(); +var defaultLineByLineRendererConfig = Object.assign(Object.assign({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath = "generic"; +var baseTemplatesPath2 = "line-by-line"; +var iconsBaseTemplatesPath2 = "icon"; +var tagsBaseTemplatesPath = "tag"; +var LineByLineRenderer = class { + constructor(hoganUtils, config = {}) { + this.hoganUtils = hoganUtils; + this.config = Object.assign(Object.assign({}, defaultLineByLineRendererConfig), config); + } + render(diffFiles) { + const diffsHtml = diffFiles.map((file) => { + let diffs; + if (file.blocks.length) { + diffs = this.generateFileHtml(file); + } else { + diffs = this.generateEmptyDiff(); + } + return this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath, "wrapper", { + colorScheme: colorSchemeToCss(this.config.colorScheme), + content: diffsHtml + }); + } + makeFileDiffHtml(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + const fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath2, "file-diff"); + const filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); + const fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath2, "file"); + const fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + } + generateEmptyDiff() { + return this.hoganUtils.render(genericTemplatesPath, "empty-diff", { + contentClass: "d2h-code-line", + CSSLineClass + }); + } + generateFileHtml(file) { + const matcher2 = newMatcherFn(newDistanceFn((e) => deconstructLine(e.content, file.isCombined).content)); + return file.blocks.map((block) => { + let lines = this.hoganUtils.render(genericTemplatesPath, "block-header", { + CSSLineClass, + blockHeader: file.isTooBig ? block.header : escapeForHtml(block.header), + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line" + }); + this.applyLineGroupping(block).forEach(([contextLines, oldLines, newLines]) => { + if (oldLines.length && newLines.length && !contextLines.length) { + this.applyRematchMatching(oldLines, newLines, matcher2).map(([oldLines2, newLines2]) => { + const { left, right } = this.processChangedLines(file, file.isCombined, oldLines2, newLines2); + lines += left; + lines += right; + }); + } else if (contextLines.length) { + contextLines.forEach((line) => { + const { prefix, content } = deconstructLine(line.content, file.isCombined); + lines += this.generateSingleLineHtml(file, { + type: CSSLineClass.CONTEXT, + prefix, + content, + oldNumber: line.oldNumber, + newNumber: line.newNumber + }); + }); + } else if (oldLines.length || newLines.length) { + const { left, right } = this.processChangedLines(file, file.isCombined, oldLines, newLines); + lines += left; + lines += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return lines; + }).join("\n"); + } + applyLineGroupping(block) { + const blockLinesGroups = []; + let oldLines = []; + let newLines = []; + for (let i = 0; i < block.lines.length; i++) { + const diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + } + applyRematchMatching(oldLines, newLines, matcher2) { + const comparisons = oldLines.length * newLines.length; + const maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map((elem) => elem.content.length))); + const doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + } + processChangedLines(file, isCombined, oldLines, newLines) { + const fileHtml = { + right: "", + left: "" + }; + const maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (let i = 0; i < maxLinesNumber; i++) { + const oldLine = oldLines[i]; + const newLine = newLines[i]; + const diff3 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + const preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? Object.assign(Object.assign({}, diff3 !== void 0 ? { + prefix: diff3.oldLine.prefix, + content: diff3.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : Object.assign(Object.assign({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; + const preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? Object.assign(Object.assign({}, diff3 !== void 0 ? { + prefix: diff3.newLine.prefix, + content: diff3.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : Object.assign(Object.assign({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; + const { left, right } = this.generateLineHtml(file, preparedOldLine, preparedNewLine); + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + } + generateLineHtml(file, oldLine, newLine) { + return { + left: this.generateSingleLineHtml(file, oldLine), + right: this.generateSingleLineHtml(file, newLine) + }; + } + generateSingleLineHtml(file, line) { + if (line === void 0) + return ""; + const lineNumberHtml = this.hoganUtils.render(baseTemplatesPath2, "numbers", { + oldNumber: line.oldNumber || "", + newNumber: line.newNumber || "" + }); + return this.hoganUtils.render(genericTemplatesPath, "line", { + type: line.type, + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line", + prefix: line.prefix === " " ? " " : line.prefix, + content: line.content, + lineNumber: lineNumberHtml, + line, + file + }); + } +}; + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/side-by-side-renderer.js +init_polyfill_buffer(); +var defaultSideBySideRendererConfig = Object.assign(Object.assign({}, defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); +var genericTemplatesPath2 = "generic"; +var baseTemplatesPath3 = "side-by-side"; +var iconsBaseTemplatesPath3 = "icon"; +var tagsBaseTemplatesPath2 = "tag"; +var SideBySideRenderer = class { + constructor(hoganUtils, config = {}) { + this.hoganUtils = hoganUtils; + this.config = Object.assign(Object.assign({}, defaultSideBySideRendererConfig), config); + } + render(diffFiles) { + const diffsHtml = diffFiles.map((file) => { + let diffs; + if (file.blocks.length) { + diffs = this.generateFileHtml(file); + } else { + diffs = this.generateEmptyDiff(); + } + return this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath2, "wrapper", { + colorScheme: colorSchemeToCss(this.config.colorScheme), + content: diffsHtml + }); + } + makeFileDiffHtml(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + const fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath3, "file-diff"); + const filePathTemplate = this.hoganUtils.template(genericTemplatesPath2, "file-path"); + const fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath3, "file"); + const fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath2, getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + } + generateEmptyDiff() { + return { + right: "", + left: this.hoganUtils.render(genericTemplatesPath2, "empty-diff", { + contentClass: "d2h-code-side-line", + CSSLineClass + }) + }; + } + generateFileHtml(file) { + const matcher2 = newMatcherFn(newDistanceFn((e) => deconstructLine(e.content, file.isCombined).content)); + return file.blocks.map((block) => { + const fileHtml = { + left: this.makeHeaderHtml(block.header, file), + right: this.makeHeaderHtml("") + }; + this.applyLineGroupping(block).forEach(([contextLines, oldLines, newLines]) => { + if (oldLines.length && newLines.length && !contextLines.length) { + this.applyRematchMatching(oldLines, newLines, matcher2).map(([oldLines2, newLines2]) => { + const { left, right } = this.processChangedLines(file.isCombined, oldLines2, newLines2); + fileHtml.left += left; + fileHtml.right += right; + }); + } else if (contextLines.length) { + contextLines.forEach((line) => { + const { prefix, content } = deconstructLine(line.content, file.isCombined); + const { left, right } = this.generateLineHtml({ + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.oldNumber + }, { + type: CSSLineClass.CONTEXT, + prefix, + content, + number: line.newNumber + }); + fileHtml.left += left; + fileHtml.right += right; + }); + } else if (oldLines.length || newLines.length) { + const { left, right } = this.processChangedLines(file.isCombined, oldLines, newLines); + fileHtml.left += left; + fileHtml.right += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return fileHtml; + }).reduce((accomulated, html2) => { + return { left: accomulated.left + html2.left, right: accomulated.right + html2.right }; + }, { left: "", right: "" }); + } + applyLineGroupping(block) { + const blockLinesGroups = []; + let oldLines = []; + let newLines = []; + for (let i = 0; i < block.lines.length; i++) { + const diffLine = block.lines[i]; + if (diffLine.type !== LineType.INSERT && newLines.length || diffLine.type === LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + } + applyRematchMatching(oldLines, newLines, matcher2) { + const comparisons = oldLines.length * newLines.length; + const maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map((elem) => elem.content.length))); + const doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher2(oldLines, newLines) : [[oldLines, newLines]]; + } + makeHeaderHtml(blockHeader, file) { + return this.hoganUtils.render(genericTemplatesPath2, "block-header", { + CSSLineClass, + blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : escapeForHtml(blockHeader), + lineClass: "d2h-code-side-linenumber", + contentClass: "d2h-code-side-line" + }); + } + processChangedLines(isCombined, oldLines, newLines) { + const fileHtml = { + right: "", + left: "" + }; + const maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (let i = 0; i < maxLinesNumber; i++) { + const oldLine = oldLines[i]; + const newLine = newLines[i]; + const diff3 = oldLine !== void 0 && newLine !== void 0 ? diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + const preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? Object.assign(Object.assign({}, diff3 !== void 0 ? { + prefix: diff3.oldLine.prefix, + content: diff3.oldLine.content, + type: CSSLineClass.DELETE_CHANGES + } : Object.assign(Object.assign({}, deconstructLine(oldLine.content, isCombined)), { type: toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; + const preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? Object.assign(Object.assign({}, diff3 !== void 0 ? { + prefix: diff3.newLine.prefix, + content: diff3.newLine.content, + type: CSSLineClass.INSERT_CHANGES + } : Object.assign(Object.assign({}, deconstructLine(newLine.content, isCombined)), { type: toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; + const { left, right } = this.generateLineHtml(preparedOldLine, preparedNewLine); + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + } + generateLineHtml(oldLine, newLine) { + return { + left: this.generateSingleHtml(oldLine), + right: this.generateSingleHtml(newLine) + }; + } + generateSingleHtml(line) { + const lineClass = "d2h-code-side-linenumber"; + const contentClass = "d2h-code-side-line"; + return this.hoganUtils.render(genericTemplatesPath2, "line", { + type: (line === null || line === void 0 ? void 0 : line.type) || `${CSSLineClass.CONTEXT} d2h-emptyplaceholder`, + lineClass: line !== void 0 ? lineClass : `${lineClass} d2h-code-side-emptyplaceholder`, + contentClass: line !== void 0 ? contentClass : `${contentClass} d2h-code-side-emptyplaceholder`, + prefix: (line === null || line === void 0 ? void 0 : line.prefix) === " " ? " " : line === null || line === void 0 ? void 0 : line.prefix, + content: line === null || line === void 0 ? void 0 : line.content, + lineNumber: line === null || line === void 0 ? void 0 : line.number + }); + } +}; + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/hoganjs-utils.js +init_polyfill_buffer(); +var Hogan3 = __toESM(require_hogan()); + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/diff2html-templates.js +init_polyfill_buffer(); +var Hogan2 = __toESM(require_hogan()); +var defaultTemplates = {}; +defaultTemplates["file-summary-line"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
  • '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("addedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("deletedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
  • "); + return t.fl(); +}, partials: { "'); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' Files changed ('); + t.b(t.v(t.f("filesNumber", c, p, 0))); + t.b(")"); + t.b("\n" + i); + t.b(' hide'); + t.b("\n" + i); + t.b(' show'); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
      '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("files", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-block-header"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + if (t.s(t.f("blockHeader", c, p, 1), c, p, 0, 156, 173, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(t2.t(t2.f("blockHeader", c2, p2, 0))); + }); + c.pop(); + } + if (!t.s(t.f("blockHeader", c, p, 1), c, p, 1, 0, 0, "")) { + t.b(" "); + } + ; + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-empty-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" File without changes"); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-file-path"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(''); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileDiffName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(t.rp(""); + t.b("\n" + i); + t.b('"); + return t.fl(); +}, partials: { ""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("lineNumber", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + if (t.s(t.f("prefix", c, p, 1), c, p, 0, 162, 238, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("prefix", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("prefix", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('  '); + t.b("\n" + i); + } + ; + if (t.s(t.f("content", c, p, 1), c, p, 0, 371, 445, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("content", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("content", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('
    '); + t.b("\n" + i); + } + ; + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["generic-wrapper"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("content", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["icon-file"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("diffs", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["line-by-line-numbers"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b(t.v(t.f("oldNumber", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b(t.v(t.f("newNumber", c, p, 0))); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["side-by-side-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.left", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.right", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('ADDED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('CHANGED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('DELETED'); + return t.fl(); +}, partials: {}, subs: {} }); +defaultTemplates["tag-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('RENAMED'); + return t.fl(); +}, partials: {}, subs: {} }); + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/hoganjs-utils.js +var HoganJsUtils = class { + constructor({ compiledTemplates = {}, rawTemplates = {} }) { + const compiledRawTemplates = Object.entries(rawTemplates).reduce((previousTemplates, [name, templateString]) => { + const compiledTemplate = Hogan3.compile(templateString, { asString: false }); + return Object.assign(Object.assign({}, previousTemplates), { [name]: compiledTemplate }); + }, {}); + this.preCompiledTemplates = Object.assign(Object.assign(Object.assign({}, defaultTemplates), compiledTemplates), compiledRawTemplates); + } + static compile(templateString) { + return Hogan3.compile(templateString, { asString: false }); + } + render(namespace, view, params, partials, indent2) { + const templateKey = this.templateKey(namespace, view); + try { + const template = this.preCompiledTemplates[templateKey]; + return template.render(params, partials, indent2); + } catch (e) { + throw new Error(`Could not find template to render '${templateKey}'`); + } + } + template(namespace, view) { + return this.preCompiledTemplates[this.templateKey(namespace, view)]; + } + templateKey(namespace, view) { + return `${namespace}-${view}`; + } +}; + +// node_modules/.pnpm/diff2html@3.4.48/node_modules/diff2html/lib-esm/diff2html.js +var defaultDiff2HtmlConfig = Object.assign(Object.assign(Object.assign({}, defaultLineByLineRendererConfig), defaultSideBySideRendererConfig), { outputFormat: OutputFormatType.LINE_BY_LINE, drawFileList: true }); +function html(diffInput, configuration = {}) { + const config = Object.assign(Object.assign({}, defaultDiff2HtmlConfig), configuration); + const diffJson = typeof diffInput === "string" ? parse(diffInput, config) : diffInput; + const hoganUtils = new HoganJsUtils(config); + const { colorScheme } = config; + const fileListRendererConfig = { colorScheme }; + const fileList = config.drawFileList ? new FileListRenderer(hoganUtils, fileListRendererConfig).render(diffJson) : ""; + const diffOutput = config.outputFormat === "side-by-side" ? new SideBySideRenderer(hoganUtils, config).render(diffJson) : new LineByLineRenderer(hoganUtils, config).render(diffJson); + return fileList + diffOutput; +} + +// src/ui/diff/diffView.ts +var import_obsidian17 = require("obsidian"); +var DiffView = class extends import_obsidian17.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.gettingDiff = false; + this.gitRefreshBind = this.refresh.bind(this); + this.gitViewRefreshBind = this.refresh.bind(this); + this.parser = new DOMParser(); + this.navigation = true; + addEventListener("git-refresh", this.gitRefreshBind); + addEventListener("git-view-refresh", this.gitViewRefreshBind); + } + getViewType() { + return DIFF_VIEW_CONFIG.type; + } + getDisplayText() { + var _a2; + if (((_a2 = this.state) == null ? void 0 : _a2.file) != null) { + let fileName = this.state.file.split("/").last(); + if (fileName == null ? void 0 : fileName.endsWith(".md")) fileName = fileName.slice(0, -3); + return DIFF_VIEW_CONFIG.name + ` (${fileName})`; + } + return DIFF_VIEW_CONFIG.name; + } + getIcon() { + return DIFF_VIEW_CONFIG.icon; + } + async setState(state, result) { + this.state = state; + if (import_obsidian17.Platform.isMobile) { + this.leaf.view.titleEl.textContent = this.getDisplayText(); + } + await this.refresh(); + } + getState() { + return this.state; + } + onClose() { + removeEventListener("git-refresh", this.gitRefreshBind); + removeEventListener("git-view-refresh", this.gitViewRefreshBind); + return super.onClose(); + } + onOpen() { + this.refresh(); + return super.onOpen(); + } + async refresh() { + var _a2; + if (((_a2 = this.state) == null ? void 0 : _a2.file) && !this.gettingDiff && this.plugin.gitManager) { + this.gettingDiff = true; + try { + let diff3 = await this.plugin.gitManager.getDiffString( + this.state.file, + this.state.staged, + this.state.hash + ); + this.contentEl.empty(); + if (!diff3) { + if (this.plugin.gitManager instanceof SimpleGit && await this.plugin.gitManager.isTracked( + this.state.file + )) { + diff3 = [ + `--- ${this.state.file}`, + `+++ ${this.state.file}`, + "" + ].join("\n"); + } else { + const content = await this.app.vault.adapter.read( + this.plugin.gitManager.getRelativeVaultPath( + this.state.file + ) + ); + const header = `--- /dev/null ++++ ${this.state.file} +@@ -0,0 +1,${content.split("\n").length} @@`; + diff3 = [ + ...header.split("\n"), + ...content.split("\n").map((line) => `+${line}`) + ].join("\n"); + } + } + const diffEl = this.parser.parseFromString(html(diff3), "text/html").querySelector(".d2h-file-diff"); + this.contentEl.append(diffEl); + } finally { + this.gettingDiff = false; + } + } + } +}; + +// src/ui/history/historyView.ts +init_polyfill_buffer(); +var import_obsidian21 = require("obsidian"); + +// src/ui/history/historyView.svelte +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/index.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/animations.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/utils.js +init_polyfill_buffer(); +function noop() { +} +var identity = (x) => x; +function run(fn) { + return fn(); +} +function blank_object() { + return /* @__PURE__ */ Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function is_function(thing) { + return typeof thing === "function"; +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || a && typeof a === "object" || typeof a === "function"; +} +function is_empty(obj) { + return Object.keys(obj).length === 0; +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/environment.js +init_polyfill_buffer(); +var is_client = typeof window !== "undefined"; +var now = is_client ? () => window.performance.now() : () => Date.now(); +var raf = is_client ? (cb) => requestAnimationFrame(cb) : noop; + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/loop.js +init_polyfill_buffer(); +var tasks = /* @__PURE__ */ new Set(); +function run_tasks(now2) { + tasks.forEach((task) => { + if (!task.c(now2)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) raf(run_tasks); +} +function loop(callback) { + let task; + if (tasks.size === 0) raf(run_tasks); + return { + promise: new Promise((fulfill) => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/style_manager.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/dom.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/globals.js +init_polyfill_buffer(); +var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : ( + // @ts-ignore Node typings have this + global +); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/ResizeObserverSingleton.js +var ResizeObserverSingleton = class _ResizeObserverSingleton { + /** @param {ResizeObserverOptions} options */ + constructor(options) { + /** + * @private + * @readonly + * @type {WeakMap} + */ + __publicField(this, "_listeners", "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0); + /** + * @private + * @type {ResizeObserver} + */ + __publicField(this, "_observer"); + /** @type {ResizeObserverOptions} */ + __publicField(this, "options"); + this.options = options; + } + /** + * @param {Element} element + * @param {import('./private.js').Listener} listener + * @returns {() => void} + */ + observe(element2, listener) { + this._listeners.set(element2, listener); + this._getObserver().observe(element2, this.options); + return () => { + this._listeners.delete(element2); + this._observer.unobserve(element2); + }; + } + /** + * @private + */ + _getObserver() { + var _a2; + return (_a2 = this._observer) != null ? _a2 : this._observer = new ResizeObserver((entries) => { + var _a3; + for (const entry of entries) { + _ResizeObserverSingleton.entries.set(entry.target, entry); + (_a3 = this._listeners.get(entry.target)) == null ? void 0 : _a3(entry); + } + }); + } +}; +ResizeObserverSingleton.entries = "WeakMap" in globals ? /* @__PURE__ */ new WeakMap() : void 0; + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/dom.js +var is_hydrating = false; +function start_hydrating() { + is_hydrating = true; +} +function end_hydrating() { + is_hydrating = false; +} +function append2(target, node) { + target.appendChild(node); +} +function append_styles(target, style_sheet_id, styles) { + const append_styles_to = get_root_for_style(target); + if (!append_styles_to.getElementById(style_sheet_id)) { + const style = element("style"); + style.id = style_sheet_id; + style.textContent = styles; + append_stylesheet(append_styles_to, style); + } +} +function get_root_for_style(node) { + if (!node) return document; + const root2 = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root2 && /** @type {ShadowRoot} */ + root2.host) { + return ( + /** @type {ShadowRoot} */ + root2 + ); + } + return node.ownerDocument; +} +function append_empty_stylesheet(node) { + const style_element = element("style"); + style_element.textContent = "/* empty */"; + append_stylesheet(get_root_for_style(node), style_element); + return style_element.sheet; +} +function append_stylesheet(node, style) { + append2( + /** @type {Document} */ + node.head || node, + style + ); + return style.sheet; +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + if (node.parentNode) { + node.parentNode.removeChild(node); + } +} +function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) iterations[i].d(detaching); + } +} +function element(name) { + return document.createElement(name); +} +function text(data) { + return document.createTextNode(data); +} +function space() { + return text(" "); +} +function empty() { + return text(""); +} +function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); +} +function stop_propagation(fn) { + return function(event) { + event.stopPropagation(); + return fn.call(this, event); + }; +} +function attr(node, attribute, value) { + if (value == null) node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) node.setAttribute(attribute, value); +} +function children(element2) { + return Array.from(element2.childNodes); +} +function set_data(text2, data) { + data = "" + data; + if (text2.data === data) return; + text2.data = /** @type {string} */ + data; +} +function set_input_value(input, value) { + input.value = value == null ? "" : value; +} +function set_style(node, key2, value, important) { + if (value == null) { + node.style.removeProperty(key2); + } else { + node.style.setProperty(key2, value, important ? "important" : ""); + } +} +function toggle_class(element2, name, toggle) { + element2.classList.toggle(name, !!toggle); +} +function custom_event(type, detail, { bubbles = false, cancelable = false } = {}) { + return new CustomEvent(type, { detail, bubbles, cancelable }); +} +function get_custom_elements_slots(element2) { + const result = {}; + element2.childNodes.forEach( + /** @param {Element} node */ + (node) => { + result[node.slot || "default"] = true; + } + ); + return result; +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/style_manager.js +var managed_styles = /* @__PURE__ */ new Map(); +var active = 0; +function hash(str) { + let hash2 = 5381; + let i = str.length; + while (i--) hash2 = (hash2 << 5) - hash2 ^ str.charCodeAt(i); + return hash2 >>> 0; +} +function create_style_information(doc, node) { + const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; + managed_styles.set(doc, info); + return info; +} +function create_rule(node, a, b, duration, delay2, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = "{\n"; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}} +`; + } + const rule = keyframes + `100% {${fn(b, 1 - b)}} +}`; + const name = `__svelte_${hash(rule)}_${uid}`; + const doc = get_root_for_style(node); + const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); + if (!rules[name]) { + rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ""; + node.style.animation = `${animation ? `${animation}, ` : ""}${name} ${duration}ms linear ${delay2}ms 1 both`; + active += 1; + return name; +} +function delete_rule(node, name) { + const previous = (node.style.animation || "").split(", "); + const next = previous.filter( + name ? (anim) => anim.indexOf(name) < 0 : (anim) => anim.indexOf("__svelte") === -1 + // remove all Svelte animations + ); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(", "); + active -= deleted; + if (!active) clear_rules(); + } +} +function clear_rules() { + raf(() => { + if (active) return; + managed_styles.forEach((info) => { + const { ownerNode } = info.stylesheet; + if (ownerNode) detach(ownerNode); + }); + managed_styles.clear(); + }); +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/await_block.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/transitions.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/scheduler.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/lifecycle.js +init_polyfill_buffer(); +var current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) throw new Error("Function called outside component initialization"); + return current_component; +} +function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); +} +function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + callbacks.slice().forEach((fn) => fn.call(this, event)); + } +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/scheduler.js +var dirty_components = []; +var binding_callbacks = []; +var render_callbacks = []; +var flush_callbacks = []; +var resolved_promise = /* @__PURE__ */ Promise.resolve(); +var update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn) { + render_callbacks.push(fn); +} +var seen_callbacks = /* @__PURE__ */ new Set(); +var flushidx = 0; +function flush() { + if (flushidx !== 0) { + return; + } + const saved_component = current_component; + do { + try { + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + } catch (e) { + dirty_components.length = 0; + flushidx = 0; + throw e; + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) binding_callbacks.pop()(); + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); +} +function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } +} +function flush_render_callbacks(fns) { + const filtered = []; + const targets = []; + render_callbacks.forEach((c) => fns.indexOf(c) === -1 ? filtered.push(c) : targets.push(c)); + targets.forEach((c) => c()); + render_callbacks = filtered; +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/transitions.js +var promise; +function wait() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; +} +function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? "intro" : "outro"}${kind}`)); +} +var outroing = /* @__PURE__ */ new Set(); +var outros; +function group_outros() { + outros = { + r: 0, + c: [], + p: outros + // parent group + }; +} +function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; +} +function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } +} +function transition_out(block, local, detach2, callback) { + if (block && block.o) { + if (outroing.has(block)) return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach2) block.d(1); + callback(); + } + }); + block.o(local); + } else if (callback) { + callback(); + } +} +var null_transition = { duration: 0 }; +function create_bidirectional_transition(node, fn, params, intro) { + const options = { direction: "both" }; + let config = fn(node, params, options); + let t = intro ? 0 : 1; + let running_program = null; + let pending_program = null; + let animation_name = null; + let original_inert_value; + function clear_animation() { + if (animation_name) delete_rule(node, animation_name); + } + function init3(program, duration) { + const d = ( + /** @type {Program['d']} */ + program.b - t + ); + duration *= Math.abs(d); + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + function go(b) { + const { + delay: delay2 = 0, + duration = 300, + easing = identity, + tick: tick2 = noop, + css + } = config || null_transition; + const program = { + start: now() + delay2, + b + }; + if (!b) { + program.group = outros; + outros.r += 1; + } + if ("inert" in node) { + if (b) { + if (original_inert_value !== void 0) { + node.inert = original_inert_value; + } + } else { + original_inert_value = /** @type {HTMLElement} */ + node.inert; + node.inert = true; + } + } + if (running_program || pending_program) { + pending_program = program; + } else { + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay2, easing, css); + } + if (b) tick2(0, 1); + running_program = init3(program, duration); + add_render_callback(() => dispatch(node, b, "start")); + loop((now2) => { + if (pending_program && now2 > pending_program.start) { + running_program = init3(pending_program, duration); + pending_program = null; + dispatch(node, running_program.b, "start"); + if (css) { + clear_animation(); + animation_name = create_rule( + node, + t, + running_program.b, + running_program.duration, + 0, + easing, + config.css + ); + } + } + if (running_program) { + if (now2 >= running_program.end) { + tick2(t = running_program.b, 1 - t); + dispatch(node, running_program.b, "end"); + if (!pending_program) { + if (running_program.b) { + clear_animation(); + } else { + if (!--running_program.group.r) run_all(running_program.group.c); + } + } + running_program = null; + } else if (now2 >= running_program.start) { + const p = now2 - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick2(t, 1 - t); + } + } + return !!(running_program || pending_program); + }); + } + } + return { + run(b) { + if (is_function(config)) { + wait().then(() => { + const opts = { direction: b ? "in" : "out" }; + config = config(opts); + go(b); + }); + } else { + go(b); + } + }, + end() { + clear_animation(); + running_program = pending_program = null; + } + }; +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/each.js +init_polyfill_buffer(); +function ensure_array_like(array_like_or_iterator) { + return (array_like_or_iterator == null ? void 0 : array_like_or_iterator.length) !== void 0 ? array_like_or_iterator : Array.from(array_like_or_iterator); +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/spread.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/ssr.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/shared/boolean_attributes.js +init_polyfill_buffer(); +var _boolean_attributes = ( + /** @type {const} */ + [ + "allowfullscreen", + "allowpaymentrequest", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "hidden", + "inert", + "ismap", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected" + ] +); +var boolean_attributes = /* @__PURE__ */ new Set([..._boolean_attributes]); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/shared/utils/names.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/Component.js +init_polyfill_buffer(); +function create_component(block) { + block && block.c(); +} +function mount_component(component, target, anchor) { + const { fragment, after_update } = component.$$; + fragment && fragment.m(target, anchor); + add_render_callback(() => { + const new_on_destroy = component.$$.on_mount.map(run).filter(is_function); + if (component.$$.on_destroy) { + component.$$.on_destroy.push(...new_on_destroy); + } else { + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + after_update.forEach(add_render_callback); +} +function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + flush_render_callbacks($$.after_update); + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } +} +function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[i / 31 | 0] |= 1 << i % 31; +} +function init2(component, options, instance10, create_fragment10, not_equal, props, append_styles2 = null, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: [], + // state + props, + update: noop, + not_equal, + bound: blank_object(), + // lifecycle + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + // everything else + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles2 && append_styles2($$.root); + let ready = false; + $$.ctx = instance10 ? instance10(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) $$.bound[i](value); + if (ready) make_dirty(component, i); + } + return ret; + }) : []; + $$.update(); + ready = true; + run_all($$.before_update); + $$.fragment = create_fragment10 ? create_fragment10($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + start_hydrating(); + const nodes = children(options.target); + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } else { + $$.fragment && $$.fragment.c(); + } + if (options.intro) transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor); + end_hydrating(); + flush(); + } + set_current_component(parent_component); +} +var SvelteElement; +if (typeof HTMLElement === "function") { + SvelteElement = class extends HTMLElement { + constructor($$componentCtor, $$slots, use_shadow_dom) { + super(); + /** The Svelte component constructor */ + __publicField(this, "$$ctor"); + /** Slots */ + __publicField(this, "$$s"); + /** The Svelte component instance */ + __publicField(this, "$$c"); + /** Whether or not the custom element is connected */ + __publicField(this, "$$cn", false); + /** Component props data */ + __publicField(this, "$$d", {}); + /** `true` if currently in the process of reflecting component props back to attributes */ + __publicField(this, "$$r", false); + /** @type {Record} Props definition (name, reflected, type etc) */ + __publicField(this, "$$p_d", {}); + /** @type {Record} Event listeners */ + __publicField(this, "$$l", {}); + /** @type {Map} Event listener unsubscribe functions */ + __publicField(this, "$$l_u", /* @__PURE__ */ new Map()); + this.$$ctor = $$componentCtor; + this.$$s = $$slots; + if (use_shadow_dom) { + this.attachShadow({ mode: "open" }); + } + } + addEventListener(type, listener, options) { + this.$$l[type] = this.$$l[type] || []; + this.$$l[type].push(listener); + if (this.$$c) { + const unsub = this.$$c.$on(type, listener); + this.$$l_u.set(listener, unsub); + } + super.addEventListener(type, listener, options); + } + removeEventListener(type, listener, options) { + super.removeEventListener(type, listener, options); + if (this.$$c) { + const unsub = this.$$l_u.get(listener); + if (unsub) { + unsub(); + this.$$l_u.delete(listener); + } + } + } + async connectedCallback() { + this.$$cn = true; + if (!this.$$c) { + let create_slot = function(name) { + return () => { + let node; + const obj = { + c: function create() { + node = element("slot"); + if (name !== "default") { + attr(node, "name", name); + } + }, + /** + * @param {HTMLElement} target + * @param {HTMLElement} [anchor] + */ + m: function mount(target, anchor) { + insert(target, node, anchor); + }, + d: function destroy(detaching) { + if (detaching) { + detach(node); + } + } + }; + return obj; + }; + }; + await Promise.resolve(); + if (!this.$$cn || this.$$c) { + return; + } + const $$slots = {}; + const existing_slots = get_custom_elements_slots(this); + for (const name of this.$$s) { + if (name in existing_slots) { + $$slots[name] = [create_slot(name)]; + } + } + for (const attribute of this.attributes) { + const name = this.$$g_p(attribute.name); + if (!(name in this.$$d)) { + this.$$d[name] = get_custom_element_value(name, attribute.value, this.$$p_d, "toProp"); + } + } + for (const key2 in this.$$p_d) { + if (!(key2 in this.$$d) && this[key2] !== void 0) { + this.$$d[key2] = this[key2]; + delete this[key2]; + } + } + this.$$c = new this.$$ctor({ + target: this.shadowRoot || this, + props: { + ...this.$$d, + $$slots, + $$scope: { + ctx: [] + } + } + }); + const reflect_attributes = () => { + this.$$r = true; + for (const key2 in this.$$p_d) { + this.$$d[key2] = this.$$c.$$.ctx[this.$$c.$$.props[key2]]; + if (this.$$p_d[key2].reflect) { + const attribute_value = get_custom_element_value( + key2, + this.$$d[key2], + this.$$p_d, + "toAttribute" + ); + if (attribute_value == null) { + this.removeAttribute(this.$$p_d[key2].attribute || key2); + } else { + this.setAttribute(this.$$p_d[key2].attribute || key2, attribute_value); + } + } + } + this.$$r = false; + }; + this.$$c.$$.after_update.push(reflect_attributes); + reflect_attributes(); + for (const type in this.$$l) { + for (const listener of this.$$l[type]) { + const unsub = this.$$c.$on(type, listener); + this.$$l_u.set(listener, unsub); + } + } + this.$$l = {}; + } + } + // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte + // and setting attributes through setAttribute etc, this is helpful + attributeChangedCallback(attr2, _oldValue, newValue) { + var _a2; + if (this.$$r) return; + attr2 = this.$$g_p(attr2); + this.$$d[attr2] = get_custom_element_value(attr2, newValue, this.$$p_d, "toProp"); + (_a2 = this.$$c) == null ? void 0 : _a2.$set({ [attr2]: this.$$d[attr2] }); + } + disconnectedCallback() { + this.$$cn = false; + Promise.resolve().then(() => { + if (!this.$$cn && this.$$c) { + this.$$c.$destroy(); + this.$$c = void 0; + } + }); + } + $$g_p(attribute_name) { + return Object.keys(this.$$p_d).find( + (key2) => this.$$p_d[key2].attribute === attribute_name || !this.$$p_d[key2].attribute && key2.toLowerCase() === attribute_name + ) || attribute_name; + } + }; +} +function get_custom_element_value(prop, value, props_definition, transform) { + var _a2; + const type = (_a2 = props_definition[prop]) == null ? void 0 : _a2.type; + value = type === "Boolean" && typeof value !== "boolean" ? value != null : value; + if (!transform || !props_definition[prop]) { + return value; + } else if (transform === "toAttribute") { + switch (type) { + case "Object": + case "Array": + return value == null ? null : JSON.stringify(value); + case "Boolean": + return value ? "" : null; + case "Number": + return value == null ? null : value; + default: + return value; + } + } else { + switch (type) { + case "Object": + case "Array": + return value && JSON.parse(value); + case "Boolean": + return value; + case "Number": + return value != null ? +value : value; + default: + return value; + } + } +} +var SvelteComponent = class { + constructor() { + /** + * ### PRIVATE API + * + * Do not use, may change at any time + * + * @type {any} + */ + __publicField(this, "$$"); + /** + * ### PRIVATE API + * + * Do not use, may change at any time + * + * @type {any} + */ + __publicField(this, "$$set"); + } + /** @returns {void} */ + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + /** + * @template {Extract} K + * @param {K} type + * @param {((e: Events[K]) => void) | null | undefined} callback + * @returns {() => void} + */ + $on(type, callback) { + if (!is_function(callback)) { + return noop; + } + const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); + callbacks.push(callback); + return () => { + const index2 = callbacks.indexOf(callback); + if (index2 !== -1) callbacks.splice(index2, 1); + }; + } + /** + * @param {Partial} props + * @returns {void} + */ + $set(props) { + if (this.$$set && !is_empty(props)) { + this.$$.skip_bound = true; + this.$$set(props); + this.$$.skip_bound = false; + } + } +}; + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/dev.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/shared/version.js +init_polyfill_buffer(); +var PUBLIC_VERSION = "4"; + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/internal/disclose-version/index.js +init_polyfill_buffer(); +if (typeof window !== "undefined") + (window.__svelte || (window.__svelte = { v: /* @__PURE__ */ new Set() })).v.add(PUBLIC_VERSION); + +// node_modules/.pnpm/tslib@2.6.3/node_modules/tslib/tslib.es6.mjs +init_polyfill_buffer(); +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function(resolve2) { + resolve2(value); + }); + } + return new (P || (P = Promise))(function(resolve2, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +// src/ui/history/historyView.svelte +var import_obsidian20 = require("obsidian"); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/index.js +init_polyfill_buffer(); + +// src/ui/history/components/logComponent.svelte +init_polyfill_buffer(); +var import_obsidian19 = require("obsidian"); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/transition/index.js +init_polyfill_buffer(); + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/easing/index.js +init_polyfill_buffer(); +function cubicOut(t) { + const f = t - 1; + return f * f * f + 1; +} + +// node_modules/.pnpm/svelte@4.2.18/node_modules/svelte/src/runtime/transition/index.js +function slide(node, { delay: delay2 = 0, duration = 400, easing = cubicOut, axis = "y" } = {}) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const primary_property = axis === "y" ? "height" : "width"; + const primary_property_value = parseFloat(style[primary_property]); + const secondary_properties = axis === "y" ? ["top", "bottom"] : ["left", "right"]; + const capitalized_secondary_properties = secondary_properties.map( + (e) => `${e[0].toUpperCase()}${e.slice(1)}` + ); + const padding_start_value = parseFloat(style[`padding${capitalized_secondary_properties[0]}`]); + const padding_end_value = parseFloat(style[`padding${capitalized_secondary_properties[1]}`]); + const margin_start_value = parseFloat(style[`margin${capitalized_secondary_properties[0]}`]); + const margin_end_value = parseFloat(style[`margin${capitalized_secondary_properties[1]}`]); + const border_width_start_value = parseFloat( + style[`border${capitalized_secondary_properties[0]}Width`] + ); + const border_width_end_value = parseFloat( + style[`border${capitalized_secondary_properties[1]}Width`] + ); + return { + delay: delay2, + duration, + easing, + css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};${primary_property}: ${t * primary_property_value}px;padding-${secondary_properties[0]}: ${t * padding_start_value}px;padding-${secondary_properties[1]}: ${t * padding_end_value}px;margin-${secondary_properties[0]}: ${t * margin_start_value}px;margin-${secondary_properties[1]}: ${t * margin_end_value}px;border-${secondary_properties[0]}-width: ${t * border_width_start_value}px;border-${secondary_properties[1]}-width: ${t * border_width_end_value}px;` + }; +} + +// src/ui/history/components/logFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian18 = require("obsidian"); +function add_css(target) { + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); +} +function create_if_block(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[7](div); + if (!mounted) { + dispose = [ + listen(div, "auxclick", stop_propagation( + /*open*/ + ctx[4] + )), + listen(div, "click", stop_propagation( + /*open*/ + ctx[4] + )) + ]; + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + ctx[7](null); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment(ctx) { + let main; + let div3; + let div0; + let t0_value = getDisplayPath( + /*diff*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div2; + let div1; + let show_if = ( + /*view*/ + ctx[1].app.vault.getAbstractFileByPath( + /*diff*/ + ctx[0].vault_path + ) instanceof import_obsidian18.TFile + ); + let t2; + let span; + let t3_value = ( + /*diff*/ + ctx[0].status + "" + ); + let t3; + let span_data_type_value; + let div3_data_path_value; + let div3_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block(ctx); + return { + c() { + var _a2, _b; + main = element("main"); + div3 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div2 = element("div"); + div1 = element("div"); + if (if_block) if_block.c(); + t2 = space(); + span = element("span"); + t3 = text(t3_value); + attr(div0, "class", "tree-item-inner nav-file-title-content"); + attr(div1, "class", "buttons"); + attr(span, "class", "type"); + attr(span, "data-type", span_data_type_value = /*diff*/ + ctx[0].status); + attr(div2, "class", "git-tools"); + attr(div3, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div3, "data-path", div3_data_path_value = /*diff*/ + ctx[0].vault_path); + attr( + div3, + "data-tooltip-position", + /*side*/ + ctx[3] + ); + attr(div3, "aria-label", div3_aria_label_value = /*diff*/ + ctx[0].vault_path); + toggle_class( + div3, + "is-active", + /*view*/ + ((_a2 = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*diff*/ + ctx[0].vault_path && /*view*/ + ((_b = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) + ); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div3); + append2(div3, div0); + append2(div0, t0); + append2(div3, t1); + append2(div3, div2); + append2(div2, div1); + if (if_block) if_block.m(div1, null); + append2(div2, t2); + append2(div2, span); + append2(span, t3); + if (!mounted) { + dispose = [ + listen(main, "click", stop_propagation( + /*showDiff*/ + ctx[5] + )), + listen(main, "auxclick", stop_propagation( + /*auxclick_handler*/ + ctx[8] + )), + listen( + main, + "focus", + /*focus_handler*/ + ctx[6] + ) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + var _a2, _b; + if (dirty & /*diff*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*diff*/ + ctx2[0].vault_path + ) + "")) set_data(t0, t0_value); + if (dirty & /*view, diff*/ + 3) show_if = /*view*/ + ctx2[1].app.vault.getAbstractFileByPath( + /*diff*/ + ctx2[0].vault_path + ) instanceof import_obsidian18.TFile; + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block(ctx2); + if_block.c(); + if_block.m(div1, null); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & /*diff*/ + 1 && t3_value !== (t3_value = /*diff*/ + ctx2[0].status + "")) set_data(t3, t3_value); + if (dirty & /*diff*/ + 1 && span_data_type_value !== (span_data_type_value = /*diff*/ + ctx2[0].status)) { + attr(span, "data-type", span_data_type_value); + } + if (dirty & /*diff*/ + 1 && div3_data_path_value !== (div3_data_path_value = /*diff*/ + ctx2[0].vault_path)) { + attr(div3, "data-path", div3_data_path_value); + } + if (dirty & /*side*/ + 8) { + attr( + div3, + "data-tooltip-position", + /*side*/ + ctx2[3] + ); + } + if (dirty & /*diff*/ + 1 && div3_aria_label_value !== (div3_aria_label_value = /*diff*/ + ctx2[0].vault_path)) { + attr(div3, "aria-label", div3_aria_label_value); + } + if (dirty & /*view, diff*/ + 3) { + toggle_class( + div3, + "is-active", + /*view*/ + ((_a2 = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*diff*/ + ctx2[0].vault_path && /*view*/ + ((_b = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) + ); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block) if_block.d(); + mounted = false; + run_all(dispose); + } + }; +} +function instance($$self, $$props, $$invalidate) { + let side; + let { diff: diff3 } = $$props; + let { view } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian18.setIcon)(b, b.getAttr("data-icon"))), 0); + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(diff3.vault_path); + if (file instanceof import_obsidian18.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { + file: diff3.path, + staged: false, + hash: diff3.hash + } + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + const auxclick_handler = (event) => mayTriggerFileMenu(view.app, event, diff3.vault_path, view.leaf, "git-history"); + $$self.$$set = ($$props2) => { + if ("diff" in $$props2) $$invalidate(0, diff3 = $$props2.diff); + if ("view" in $$props2) $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 2) { + $: $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + diff3, + view, + buttons, + side, + open, + showDiff, + focus_handler, + div_binding, + auxclick_handler + ]; +} +var LogFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance, create_fragment, safe_not_equal, { diff: 0, view: 1 }, add_css); + } +}; +var logFileComponent_default = LogFileComponent; + +// src/ui/history/components/logTreeComponent.svelte +init_polyfill_buffer(); +function add_css2(target) { + append_styles(target, "svelte-1lnl15d", "main.svelte-1lnl15d .nav-folder-title-content.svelte-1lnl15d{display:flex;align-items:center}"); +} +function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[8] = list[i]; + return child_ctx; +} +function create_else_block(ctx) { + let div4; + let div3; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2_value = ( + /*entity*/ + ctx[8].title + "" + ); + let t2; + let div3_aria_label_value; + let t3; + let t4; + let current; + let mounted; + let dispose; + function click_handler() { + return ( + /*click_handler*/ + ctx[7]( + /*entity*/ + ctx[8] + ) + ); + } + let if_block = !/*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] && create_if_block_1(ctx); + return { + c() { + div4 = element("div"); + div3 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + div1.innerHTML = ``; + t1 = space(); + div2 = element("div"); + t2 = text(t2_value); + t3 = space(); + if (if_block) if_block.c(); + t4 = space(); + attr(div0, "data-icon", "folder"); + set_style(div0, "padding-right", "5px"); + set_style(div0, "display", "flex"); + attr(div1, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + attr(div2, "class", "tree-item-inner nav-folder-title-content svelte-1lnl15d"); + attr(div3, "class", "tree-item-self is-clickable nav-folder-title"); + attr( + div3, + "data-tooltip-position", + /*side*/ + ctx[5] + ); + attr(div3, "aria-label", div3_aria_label_value = /*entity*/ + ctx[8].vaultPath); + attr(div4, "class", "tree-item nav-folder"); + toggle_class( + div4, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + }, + m(target, anchor) { + insert(target, div4, anchor); + append2(div4, div3); + append2(div3, div0); + append2(div3, t0); + append2(div3, div1); + append2(div3, t1); + append2(div3, div2); + append2(div2, t2); + append2(div4, t3); + if (if_block) if_block.m(div4, null); + append2(div4, t4); + current = true; + if (!mounted) { + dispose = listen(div3, "click", click_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (!current || dirty & /*closed, hierarchy*/ + 17) { + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + } + if ((!current || dirty & /*hierarchy*/ + 1) && t2_value !== (t2_value = /*entity*/ + ctx[8].title + "")) set_data(t2, t2_value); + if (!current || dirty & /*side*/ + 32) { + attr( + div3, + "data-tooltip-position", + /*side*/ + ctx[5] + ); + } + if (!current || dirty & /*hierarchy*/ + 1 && div3_aria_label_value !== (div3_aria_label_value = /*entity*/ + ctx[8].vaultPath)) { + attr(div3, "aria-label", div3_aria_label_value); + } + if (!/*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ]) { + if (if_block) { + if_block.p(ctx, dirty); + if (dirty & /*closed, hierarchy*/ + 17) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_1(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div4, t4); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + if (!current || dirty & /*closed, hierarchy*/ + 17) { + toggle_class( + div4, + "is-collapsed", + /*closed*/ + ctx[4][ + /*entity*/ + ctx[8].title + ] + ); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div4); + } + if (if_block) if_block.d(); + mounted = false; + dispose(); + } + }; +} +function create_if_block2(ctx) { + let div; + let logfilecomponent; + let t; + let current; + logfilecomponent = new logFileComponent_default({ + props: { + diff: ( + /*entity*/ + ctx[8].data + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + div = element("div"); + create_component(logfilecomponent.$$.fragment); + t = space(); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(logfilecomponent, div, null); + append2(div, t); + current = true; + }, + p(ctx2, dirty) { + const logfilecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) logfilecomponent_changes.diff = /*entity*/ + ctx2[8].data; + if (dirty & /*view*/ + 4) logfilecomponent_changes.view = /*view*/ + ctx2[2]; + logfilecomponent.$set(logfilecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(logfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + destroy_component(logfilecomponent); + } + }; +} +function create_if_block_1(ctx) { + let div; + let logtreecomponent; + let div_transition; + let current; + logtreecomponent = new LogTreeComponent({ + props: { + hierarchy: ( + /*entity*/ + ctx[8] + ), + plugin: ( + /*plugin*/ + ctx[1] + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + div = element("div"); + create_component(logtreecomponent.$$.fragment); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(logtreecomponent, div, null); + current = true; + }, + p(ctx2, dirty) { + const logtreecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) logtreecomponent_changes.hierarchy = /*entity*/ + ctx2[8]; + if (dirty & /*plugin*/ + 2) logtreecomponent_changes.plugin = /*plugin*/ + ctx2[1]; + if (dirty & /*view*/ + 4) logtreecomponent_changes.view = /*view*/ + ctx2[2]; + logtreecomponent.$set(logtreecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(logtreecomponent.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (!current) return; + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(logtreecomponent.$$.fragment, local); + if (local) { + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + destroy_component(logtreecomponent); + if (detaching && div_transition) div_transition.end(); + } + }; +} +function create_each_block(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block2, create_else_block]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*entity*/ + ctx2[8].data + ) return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(if_block_anchor); + } + if_blocks[current_block_type_index].d(detaching); + } + }; +} +function create_fragment2(ctx) { + let main; + let current; + let each_value = ensure_array_like( + /*hierarchy*/ + ctx[0].children + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + main = element("main"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(main, "class", "svelte-1lnl15d"); + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx[3] + ); + }, + m(target, anchor) { + insert(target, main, anchor); + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(main, null); + } + } + current = true; + }, + p(ctx2, [dirty]) { + if (dirty & /*hierarchy, view, closed, plugin, side, fold*/ + 119) { + each_value = ensure_array_like( + /*hierarchy*/ + ctx2[0].children + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(main, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + if (!current || dirty & /*topLevel*/ + 8) { + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx2[3] + ); + } + }, + i(local) { + if (current) return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + destroy_each(each_blocks, detaching); + } + }; +} +function instance2($$self, $$props, $$invalidate) { + let side; + let { hierarchy } = $$props; + let { plugin } = $$props; + let { view } = $$props; + let { topLevel = false } = $$props; + const closed = {}; + function fold(item) { + $$invalidate(4, closed[item.title] = !closed[item.title], closed); + } + const click_handler = (entity) => fold(entity); + $$self.$$set = ($$props2) => { + if ("hierarchy" in $$props2) $$invalidate(0, hierarchy = $$props2.hierarchy); + if ("plugin" in $$props2) $$invalidate(1, plugin = $$props2.plugin); + if ("view" in $$props2) $$invalidate(2, view = $$props2.view); + if ("topLevel" in $$props2) $$invalidate(3, topLevel = $$props2.topLevel); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 4) { + $: $$invalidate(5, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [hierarchy, plugin, view, topLevel, closed, side, fold, click_handler]; +} +var LogTreeComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2( + this, + options, + instance2, + create_fragment2, + safe_not_equal, + { + hierarchy: 0, + plugin: 1, + view: 2, + topLevel: 3 + }, + add_css2 + ); + } +}; +var logTreeComponent_default = LogTreeComponent; + +// src/ui/history/components/logComponent.svelte +function get_each_context2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[9] = list[i]; + return child_ctx; +} +function create_if_block_4(ctx) { + let div; + let t_value = ( + /*log*/ + ctx[0].refs.join(", ") + "" + ); + let t; + return { + c() { + div = element("div"); + t = text(t_value); + attr(div, "class", "git-ref"); + }, + m(target, anchor) { + insert(target, div, anchor); + append2(div, t); + }, + p(ctx2, dirty) { + if (dirty & /*log*/ + 1 && t_value !== (t_value = /*log*/ + ctx2[0].refs.join(", ") + "")) set_data(t, t_value); + }, + d(detaching) { + if (detaching) { + detach(div); + } + } + }; +} +function create_if_block_3(ctx) { + let div; + let t_value = ( + /*authorToString*/ + ctx[7]( + /*log*/ + ctx[0] + ) + "" + ); + let t; + return { + c() { + div = element("div"); + t = text(t_value); + attr(div, "class", "git-author"); + }, + m(target, anchor) { + insert(target, div, anchor); + append2(div, t); + }, + p(ctx2, dirty) { + if (dirty & /*log*/ + 1 && t_value !== (t_value = /*authorToString*/ + ctx2[7]( + /*log*/ + ctx2[0] + ) + "")) set_data(t, t_value); + }, + d(detaching) { + if (detaching) { + detach(div); + } + } + }; +} +function create_if_block_2(ctx) { + let div; + let t_value = (0, import_obsidian19.moment)( + /*log*/ + ctx[0].date + ).format( + /*plugin*/ + ctx[3].settings.commitDateFormat + ) + ""; + let t; + return { + c() { + div = element("div"); + t = text(t_value); + attr(div, "class", "git-date"); + }, + m(target, anchor) { + insert(target, div, anchor); + append2(div, t); + }, + p(ctx2, dirty) { + if (dirty & /*log, plugin*/ + 9 && t_value !== (t_value = (0, import_obsidian19.moment)( + /*log*/ + ctx2[0].date + ).format( + /*plugin*/ + ctx2[3].settings.commitDateFormat + ) + "")) set_data(t, t_value); + }, + d(detaching) { + if (detaching) { + detach(div); + } + } + }; +} +function create_if_block3(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_12, create_else_block2]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[2] + ) return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) return; + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) div_transition.end(); + } + }; +} +function create_else_block2(ctx) { + let each_1_anchor; + let current; + let each_value = ensure_array_like( + /*log*/ + ctx[0].diff.files + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block2(get_each_context2(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty & /*view, log*/ + 3) { + each_value = ensure_array_like( + /*log*/ + ctx2[0].diff.files + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context2(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_12(ctx) { + let logtreecomponent; + let current; + logtreecomponent = new logTreeComponent_default({ + props: { + hierarchy: ( + /*logsHierarchy*/ + ctx[6] + ), + plugin: ( + /*plugin*/ + ctx[3] + ), + view: ( + /*view*/ + ctx[1] + ), + topLevel: true + } + }); + return { + c() { + create_component(logtreecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(logtreecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const logtreecomponent_changes = {}; + if (dirty & /*logsHierarchy*/ + 64) logtreecomponent_changes.hierarchy = /*logsHierarchy*/ + ctx2[6]; + if (dirty & /*plugin*/ + 8) logtreecomponent_changes.plugin = /*plugin*/ + ctx2[3]; + if (dirty & /*view*/ + 2) logtreecomponent_changes.view = /*view*/ + ctx2[1]; + logtreecomponent.$set(logtreecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(logtreecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logtreecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(logtreecomponent, detaching); + } + }; +} +function create_each_block2(ctx) { + let logfilecomponent; + let current; + logfilecomponent = new logFileComponent_default({ + props: { + view: ( + /*view*/ + ctx[1] + ), + diff: ( + /*file*/ + ctx[9] + ) + } + }); + return { + c() { + create_component(logfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(logfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const logfilecomponent_changes = {}; + if (dirty & /*view*/ + 2) logfilecomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty & /*log*/ + 1) logfilecomponent_changes.diff = /*file*/ + ctx2[9]; + logfilecomponent.$set(logfilecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(logfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(logfilecomponent, detaching); + } + }; +} +function create_fragment3(ctx) { + var _a2; + let main; + let div4; + let div3; + let div0; + let t0; + let div2; + let t1; + let t2; + let t3; + let div1; + let t4_value = ( + /*log*/ + ctx[0].message + "" + ); + let t4; + let div3_aria_label_value; + let t5; + let current; + let mounted; + let dispose; + let if_block0 = ( + /*log*/ + ctx[0].refs.length > 0 && create_if_block_4(ctx) + ); + let if_block1 = ( + /*plugin*/ + ctx[3].settings.authorInHistoryView != "hide" && /*log*/ + ((_a2 = ctx[0].author) == null ? void 0 : _a2.name) && create_if_block_3(ctx) + ); + let if_block2 = ( + /*plugin*/ + ctx[3].settings.dateInHistoryView && create_if_block_2(ctx) + ); + let if_block3 = !/*isCollapsed*/ + ctx[4] && create_if_block3(ctx); + return { + c() { + var _a3; + main = element("main"); + div4 = element("div"); + div3 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div2 = element("div"); + if (if_block0) if_block0.c(); + t1 = space(); + if (if_block1) if_block1.c(); + t2 = space(); + if (if_block2) if_block2.c(); + t3 = space(); + div1 = element("div"); + t4 = text(t4_value); + t5 = space(); + if (if_block3) if_block3.c(); + attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div0, + "is-collapsed", + /*isCollapsed*/ + ctx[4] + ); + attr(div1, "class", "tree-item-inner nav-folder-title-content"); + attr(div3, "class", "tree-item-self is-clickable nav-folder-title"); + attr(div3, "aria-label", div3_aria_label_value = `${/*log*/ + ctx[0].refs.length > 0 ? ( + /*log*/ + ctx[0].refs.join(", ") + "\n" + ) : ""}${/*log*/ + (_a3 = ctx[0].author) == null ? void 0 : _a3.name} +${(0, import_obsidian19.moment)( + /*log*/ + ctx[0].date + ).format( + /*plugin*/ + ctx[3].settings.commitDateFormat + )} +${/*log*/ + ctx[0].message}`); + attr( + div3, + "data-tooltip-position", + /*side*/ + ctx[5] + ); + attr(div4, "class", "tree-item nav-folder"); + toggle_class( + div4, + "is-collapsed", + /*isCollapsed*/ + ctx[4] + ); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div4); + append2(div4, div3); + append2(div3, div0); + append2(div3, t0); + append2(div3, div2); + if (if_block0) if_block0.m(div2, null); + append2(div2, t1); + if (if_block1) if_block1.m(div2, null); + append2(div2, t2); + if (if_block2) if_block2.m(div2, null); + append2(div2, t3); + append2(div2, div1); + append2(div1, t4); + append2(div4, t5); + if (if_block3) if_block3.m(div4, null); + current = true; + if (!mounted) { + dispose = listen( + div3, + "click", + /*click_handler*/ + ctx[8] + ); + mounted = true; + } + }, + p(ctx2, [dirty]) { + var _a3, _b; + if (!current || dirty & /*isCollapsed*/ + 16) { + toggle_class( + div0, + "is-collapsed", + /*isCollapsed*/ + ctx2[4] + ); + } + if ( + /*log*/ + ctx2[0].refs.length > 0 + ) { + if (if_block0) { + if_block0.p(ctx2, dirty); + } else { + if_block0 = create_if_block_4(ctx2); + if_block0.c(); + if_block0.m(div2, t1); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + if ( + /*plugin*/ + ctx2[3].settings.authorInHistoryView != "hide" && /*log*/ + ((_a3 = ctx2[0].author) == null ? void 0 : _a3.name) + ) { + if (if_block1) { + if_block1.p(ctx2, dirty); + } else { + if_block1 = create_if_block_3(ctx2); + if_block1.c(); + if_block1.m(div2, t2); + } + } else if (if_block1) { + if_block1.d(1); + if_block1 = null; + } + if ( + /*plugin*/ + ctx2[3].settings.dateInHistoryView + ) { + if (if_block2) { + if_block2.p(ctx2, dirty); + } else { + if_block2 = create_if_block_2(ctx2); + if_block2.c(); + if_block2.m(div2, t3); + } + } else if (if_block2) { + if_block2.d(1); + if_block2 = null; + } + if ((!current || dirty & /*log*/ + 1) && t4_value !== (t4_value = /*log*/ + ctx2[0].message + "")) set_data(t4, t4_value); + if (!current || dirty & /*log, plugin*/ + 9 && div3_aria_label_value !== (div3_aria_label_value = `${/*log*/ + ctx2[0].refs.length > 0 ? ( + /*log*/ + ctx2[0].refs.join(", ") + "\n" + ) : ""}${/*log*/ + (_b = ctx2[0].author) == null ? void 0 : _b.name} +${(0, import_obsidian19.moment)( + /*log*/ + ctx2[0].date + ).format( + /*plugin*/ + ctx2[3].settings.commitDateFormat + )} +${/*log*/ + ctx2[0].message}`)) { + attr(div3, "aria-label", div3_aria_label_value); + } + if (!current || dirty & /*side*/ + 32) { + attr( + div3, + "data-tooltip-position", + /*side*/ + ctx2[5] + ); + } + if (!/*isCollapsed*/ + ctx2[4]) { + if (if_block3) { + if_block3.p(ctx2, dirty); + if (dirty & /*isCollapsed*/ + 16) { + transition_in(if_block3, 1); + } + } else { + if_block3 = create_if_block3(ctx2); + if_block3.c(); + transition_in(if_block3, 1); + if_block3.m(div4, null); + } + } else if (if_block3) { + group_outros(); + transition_out(if_block3, 1, 1, () => { + if_block3 = null; + }); + check_outros(); + } + if (!current || dirty & /*isCollapsed*/ + 16) { + toggle_class( + div4, + "is-collapsed", + /*isCollapsed*/ + ctx2[4] + ); + } + }, + i(local) { + if (current) return; + transition_in(if_block3); + current = true; + }, + o(local) { + transition_out(if_block3); + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + if (if_block2) if_block2.d(); + if (if_block3) if_block3.d(); + mounted = false; + dispose(); + } + }; +} +function instance3($$self, $$props, $$invalidate) { + let logsHierarchy; + let side; + let { log: log2 } = $$props; + let { view } = $$props; + let { showTree } = $$props; + let { plugin } = $$props; + let isCollapsed = true; + function authorToString(log3) { + const name = log3.author.name; + if (plugin.settings.authorInHistoryView == "full") { + return name; + } else if (plugin.settings.authorInHistoryView == "initials") { + const words = name.split(" ").filter((word) => word.length > 0); + return words.map((word) => word[0].toUpperCase()).join(""); + } + } + const click_handler = () => $$invalidate(4, isCollapsed = !isCollapsed); + $$self.$$set = ($$props2) => { + if ("log" in $$props2) $$invalidate(0, log2 = $$props2.log); + if ("view" in $$props2) $$invalidate(1, view = $$props2.view); + if ("showTree" in $$props2) $$invalidate(2, showTree = $$props2.showTree); + if ("plugin" in $$props2) $$invalidate(3, plugin = $$props2.plugin); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*plugin, log*/ + 9) { + $: $$invalidate(6, logsHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(log2.diff.files) + }); + } + if ($$self.$$.dirty & /*view*/ + 2) { + $: $$invalidate(5, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + log2, + view, + showTree, + plugin, + isCollapsed, + side, + logsHierarchy, + authorToString, + click_handler + ]; +} +var LogComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance3, create_fragment3, safe_not_equal, { log: 0, view: 1, showTree: 2, plugin: 3 }); + } +}; +var logComponent_default = LogComponent; + +// src/ui/history/historyView.svelte +function get_each_context3(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[11] = list[i]; + return child_ctx; +} +function create_if_block4(ctx) { + let div1; + let div0; + let current; + let each_value = ensure_array_like( + /*logs*/ + ctx[6] + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block3(get_each_context3(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + div1 = element("div"); + div0 = element("div"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(div0, "class", "tree-item-children nav-folder-children"); + attr(div1, "class", "tree-item nav-folder mod-root"); + }, + m(target, anchor) { + insert(target, div1, anchor); + append2(div1, div0); + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(div0, null); + } + } + current = true; + }, + p(ctx2, dirty) { + if (dirty & /*view, showTree, logs, plugin*/ + 71) { + each_value = ensure_array_like( + /*logs*/ + ctx2[6] + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context3(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block3(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(div0, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div1); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_each_block3(ctx) { + let logcomponent; + let current; + logcomponent = new logComponent_default({ + props: { + view: ( + /*view*/ + ctx[1] + ), + showTree: ( + /*showTree*/ + ctx[2] + ), + log: ( + /*log*/ + ctx[11] + ), + plugin: ( + /*plugin*/ + ctx[0] + ) + } + }); + return { + c() { + create_component(logcomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(logcomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const logcomponent_changes = {}; + if (dirty & /*view*/ + 2) logcomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty & /*showTree*/ + 4) logcomponent_changes.showTree = /*showTree*/ + ctx2[2]; + if (dirty & /*logs*/ + 64) logcomponent_changes.log = /*log*/ + ctx2[11]; + if (dirty & /*plugin*/ + 1) logcomponent_changes.plugin = /*plugin*/ + ctx2[0]; + logcomponent.$set(logcomponent_changes); + }, + i(local) { + if (current) return; + transition_in(logcomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(logcomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(logcomponent, detaching); + } + }; +} +function create_fragment4(ctx) { + let main; + let div3; + let div2; + let div0; + let t0; + let div1; + let t1; + let div4; + let current; + let mounted; + let dispose; + let if_block = ( + /*logs*/ + ctx[6] && create_if_block4(ctx) + ); + return { + c() { + main = element("main"); + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + t1 = space(); + div4 = element("div"); + if (if_block) if_block.c(); + attr(div0, "id", "layoutChange"); + attr(div0, "class", "clickable-icon nav-action-button"); + attr(div0, "aria-label", "Change Layout"); + attr(div1, "id", "refresh"); + attr(div1, "class", "clickable-icon nav-action-button"); + attr(div1, "data-icon", "refresh-cw"); + attr(div1, "aria-label", "Refresh"); + set_style(div1, "margin", "1px"); + toggle_class( + div1, + "loading", + /*loading*/ + ctx[4] + ); + attr(div2, "class", "nav-buttons-container"); + attr(div3, "class", "nav-header"); + attr(div4, "class", "nav-files-container"); + set_style(div4, "position", "relative"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div3); + append2(div3, div2); + append2(div2, div0); + ctx[7](div0); + append2(div2, t0); + append2(div2, div1); + ctx[9](div1); + append2(main, t1); + append2(main, div4); + if (if_block) if_block.m(div4, null); + current = true; + if (!mounted) { + dispose = [ + listen( + div0, + "click", + /*click_handler*/ + ctx[8] + ), + listen(div1, "click", triggerRefresh) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (!current || dirty & /*loading*/ + 16) { + toggle_class( + div1, + "loading", + /*loading*/ + ctx2[4] + ); + } + if ( + /*logs*/ + ctx2[6] + ) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty & /*logs*/ + 64) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block4(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div4, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + ctx[7](null); + ctx[9](null); + if (if_block) if_block.d(); + mounted = false; + run_all(dispose); + } + }; +} +function triggerRefresh() { + dispatchEvent(new CustomEvent("git-refresh")); +} +function instance4($$self, $$props, $$invalidate) { + let { plugin } = $$props; + let { view } = $$props; + let loading; + let buttons = []; + let logs; + let showTree = plugin.settings.treeStructure; + let layoutBtn; + addEventListener("git-view-refresh", refresh); + plugin.app.workspace.onLayoutReady(() => { + window.setTimeout( + () => { + buttons.forEach((btn) => (0, import_obsidian20.setIcon)(btn, btn.getAttr("data-icon"))); + (0, import_obsidian20.setIcon)(layoutBtn, showTree ? "list" : "folder"); + }, + 0 + ); + }); + onDestroy(() => { + removeEventListener("git-view-refresh", refresh); + }); + function refresh() { + return __awaiter(this, void 0, void 0, function* () { + $$invalidate(4, loading = true); + const isSimpleGit = plugin.gitManager instanceof SimpleGit; + $$invalidate(6, logs = yield plugin.gitManager.log(void 0, false, isSimpleGit ? 50 : 10)); + $$invalidate(4, loading = false); + }); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + layoutBtn = $$value; + $$invalidate(3, layoutBtn); + }); + } + const click_handler = () => { + $$invalidate(2, showTree = !showTree); + $$invalidate(0, plugin.settings.treeStructure = showTree, plugin); + plugin.saveSettings(); + }; + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[6] = $$value; + $$invalidate(5, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("plugin" in $$props2) $$invalidate(0, plugin = $$props2.plugin); + if ("view" in $$props2) $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*layoutBtn, showTree*/ + 12) { + $: { + if (layoutBtn) { + layoutBtn.empty(); + (0, import_obsidian20.setIcon)(layoutBtn, showTree ? "list" : "folder"); + } + } + } + }; + return [ + plugin, + view, + showTree, + layoutBtn, + loading, + buttons, + logs, + div0_binding, + click_handler, + div1_binding + ]; +} +var HistoryView = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance4, create_fragment4, safe_not_equal, { plugin: 0, view: 1 }); + } +}; +var historyView_default = HistoryView; + +// src/ui/history/historyView.ts +var HistoryView2 = class extends import_obsidian21.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.hoverPopover = null; + } + getViewType() { + return HISTORY_VIEW_CONFIG.type; + } + getDisplayText() { + return HISTORY_VIEW_CONFIG.name; + } + getIcon() { + return HISTORY_VIEW_CONFIG.icon; + } + onClose() { + return super.onClose(); + } + onOpen() { + this._view = new historyView_default({ + target: this.contentEl, + props: { + plugin: this.plugin, + view: this + } + }); + return super.onOpen(); + } +}; + +// src/ui/modals/branchModal.ts +init_polyfill_buffer(); +var import_obsidian22 = require("obsidian"); +var BranchModal = class extends import_obsidian22.FuzzySuggestModal { + constructor(branches) { + super(app); + this.branches = branches; + this.setPlaceholder("Select branch to checkout"); + } + getItems() { + return this.branches; + } + getItemText(item) { + return item; + } + onChooseItem(item, evt) { + this.resolve(item); + } + open() { + super.open(); + return new Promise((resolve2) => { + this.resolve = resolve2; + }); + } + async onClose() { + await new Promise((resolve2) => setTimeout(resolve2, 10)); + if (this.resolve) this.resolve(void 0); + } +}; + +// src/ui/modals/ignoreModal.ts +init_polyfill_buffer(); +var import_obsidian23 = require("obsidian"); +var IgnoreModal = class extends import_obsidian23.Modal { + constructor(app2, content) { + super(app2); + this.content = content; + this.resolve = null; + } + open() { + super.open(); + return new Promise((resolve2) => { + this.resolve = resolve2; + }); + } + onOpen() { + const { contentEl, titleEl } = this; + titleEl.setText("Edit .gitignore"); + const div = contentEl.createDiv(); + const text2 = div.createEl("textarea", { + text: this.content, + cls: ["obsidian-git-textarea"], + attr: { rows: 10, cols: 30, wrap: "off" } + }); + div.createEl("button", { + cls: ["mod-cta", "obsidian-git-center-button"], + text: "Save" + }).addEventListener("click", async () => { + this.resolve(text2.value); + this.close(); + }); + } + onClose() { + const { contentEl } = this; + this.resolve(void 0); + contentEl.empty(); + } +}; + +// src/ui/sourceControl/sourceControl.ts +init_polyfill_buffer(); +var import_obsidian30 = require("obsidian"); + +// src/ui/sourceControl/sourceControl.svelte +init_polyfill_buffer(); +var import_obsidian29 = require("obsidian"); + +// src/ui/modals/discardModal.ts +init_polyfill_buffer(); +var import_obsidian24 = require("obsidian"); +var DiscardModal = class extends import_obsidian24.Modal { + constructor(app2, deletion, filename) { + super(app2); + this.deletion = deletion; + this.filename = filename; + this.resolve = null; + } + myOpen() { + this.open(); + return new Promise((resolve2) => { + this.resolve = resolve2; + }); + } + onOpen() { + const { contentEl, titleEl } = this; + titleEl.setText(`${this.deletion ? "Delete" : "Discard"} this file?`); + contentEl.createEl("p").setText( + `Do you really want to ${this.deletion ? "delete" : "discard the changes of"} "${this.filename}"` + ); + const div = contentEl.createDiv({ cls: "modal-button-container" }); + const discard = div.createEl("button", { + cls: "mod-warning", + text: this.deletion ? "Delete" : "Discard" + }); + discard.addEventListener("click", async () => { + if (this.resolve) this.resolve(true); + this.close(); + }); + discard.addEventListener("keypress", async () => { + if (this.resolve) this.resolve(true); + this.close(); + }); + const close = div.createEl("button", { + text: "Cancel" + }); + close.addEventListener("click", () => { + if (this.resolve) this.resolve(false); + return this.close(); + }); + close.addEventListener("keypress", () => { + if (this.resolve) this.resolve(false); + return this.close(); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +}; + +// src/ui/sourceControl/components/fileComponent.svelte +init_polyfill_buffer(); +var import_obsidian26 = require("obsidian"); + +// node_modules/.pnpm/obsidian-community-lib@https+++codeload.github.com+Vinzent03+obsidian-community-lib+tar.gz+e6_gis2so5ruhuavxzhyb52fw447e/node_modules/obsidian-community-lib/dist/index.js +init_polyfill_buffer(); + +// node_modules/.pnpm/obsidian-community-lib@https+++codeload.github.com+Vinzent03+obsidian-community-lib+tar.gz+e6_gis2so5ruhuavxzhyb52fw447e/node_modules/obsidian-community-lib/dist/utils.js +init_polyfill_buffer(); +var feather = __toESM(require_feather()); +var import_obsidian25 = require("obsidian"); +function hoverPreview(event, view, to) { + const targetEl = event.target; + app.workspace.trigger("hover-link", { + event, + source: view.getViewType(), + hoverParent: view, + targetEl, + linktext: to + }); +} + +// src/ui/sourceControl/components/fileComponent.svelte +function add_css3(target) { + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); +} +function create_if_block5(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[11](div); + if (!mounted) { + dispose = [ + listen(div, "auxclick", stop_propagation( + /*open*/ + ctx[5] + )), + listen(div, "click", stop_propagation( + /*open*/ + ctx[5] + )) + ]; + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + ctx[11](null); + mounted = false; + run_all(dispose); + } + }; +} +function create_fragment5(ctx) { + let main; + let div6; + let div0; + let t0_value = getDisplayPath( + /*change*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div5; + let div3; + let show_if = ( + /*view*/ + ctx[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx[0].vault_path + ) + ); + let t2; + let div1; + let t3; + let div2; + let t4; + let div4; + let t5_value = ( + /*change*/ + ctx[0].working_dir + "" + ); + let t5; + let div4_data_type_value; + let div6_data_path_value; + let div6_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block5(ctx); + return { + c() { + var _a2, _b, _c; + main = element("main"); + div6 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div5 = element("div"); + div3 = element("div"); + if (if_block) if_block.c(); + t2 = space(); + div1 = element("div"); + t3 = space(); + div2 = element("div"); + t4 = space(); + div4 = element("div"); + t5 = text(t5_value); + attr(div0, "class", "tree-item-inner nav-file-title-content"); + attr(div1, "data-icon", "undo"); + attr(div1, "aria-label", "Discard"); + attr(div1, "class", "clickable-icon"); + attr(div2, "data-icon", "plus"); + attr(div2, "aria-label", "Stage"); + attr(div2, "class", "clickable-icon"); + attr(div3, "class", "buttons"); + attr(div4, "class", "type"); + attr(div4, "data-type", div4_data_type_value = /*change*/ + ctx[0].working_dir); + attr(div5, "class", "git-tools"); + attr(div6, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div6, "data-path", div6_data_path_value = /*change*/ + ctx[0].vault_path); + attr( + div6, + "data-tooltip-position", + /*side*/ + ctx[3] + ); + attr(div6, "aria-label", div6_aria_label_value = /*change*/ + ctx[0].vault_path); + toggle_class( + div6, + "is-active", + /*view*/ + ((_a2 = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx[0].vault_path && !/*view*/ + ((_b = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && !/*view*/ + ((_c = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div6); + append2(div6, div0); + append2(div0, t0); + append2(div6, t1); + append2(div6, div5); + append2(div5, div3); + if (if_block) if_block.m(div3, null); + append2(div3, t2); + append2(div3, div1); + ctx[12](div1); + append2(div3, t3); + append2(div3, div2); + ctx[13](div2); + append2(div5, t4); + append2(div5, div4); + append2(div4, t5); + if (!mounted) { + dispose = [ + listen(div1, "click", stop_propagation( + /*discard*/ + ctx[8] + )), + listen(div2, "click", stop_propagation( + /*stage*/ + ctx[6] + )), + listen( + main, + "mouseover", + /*hover*/ + ctx[4] + ), + listen(main, "click", stop_propagation( + /*showDiff*/ + ctx[7] + )), + listen(main, "auxclick", stop_propagation( + /*auxclick_handler*/ + ctx[14] + )), + listen( + main, + "focus", + /*focus_handler*/ + ctx[10] + ) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + var _a2, _b, _c; + if (dirty & /*change*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*change*/ + ctx2[0].vault_path + ) + "")) set_data(t0, t0_value); + if (dirty & /*view, change*/ + 3) show_if = /*view*/ + ctx2[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx2[0].vault_path + ); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block5(ctx2); + if_block.c(); + if_block.m(div3, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & /*change*/ + 1 && t5_value !== (t5_value = /*change*/ + ctx2[0].working_dir + "")) set_data(t5, t5_value); + if (dirty & /*change*/ + 1 && div4_data_type_value !== (div4_data_type_value = /*change*/ + ctx2[0].working_dir)) { + attr(div4, "data-type", div4_data_type_value); + } + if (dirty & /*change*/ + 1 && div6_data_path_value !== (div6_data_path_value = /*change*/ + ctx2[0].vault_path)) { + attr(div6, "data-path", div6_data_path_value); + } + if (dirty & /*side*/ + 8) { + attr( + div6, + "data-tooltip-position", + /*side*/ + ctx2[3] + ); + } + if (dirty & /*change*/ + 1 && div6_aria_label_value !== (div6_aria_label_value = /*change*/ + ctx2[0].vault_path)) { + attr(div6, "aria-label", div6_aria_label_value); + } + if (dirty & /*view, change*/ + 3) { + toggle_class( + div6, + "is-active", + /*view*/ + ((_a2 = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx2[0].vault_path && !/*view*/ + ((_b = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && !/*view*/ + ((_c = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block) if_block.d(); + ctx[12](null); + ctx[13](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance5($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian26.setIcon)(b, b.getAttr("data-icon"))), 0); + function hover(event) { + if (app.vault.getAbstractFileByPath(change.vault_path)) { + hoverPreview(event, view, change.vault_path); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + if (file instanceof import_obsidian26.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function stage() { + manager.stage(change.path, false).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: false } + }); + } + function discard() { + const deleteFile = change.working_dir == "U"; + new DiscardModal(view.app, deleteFile, change.vault_path).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + if (deleteFile) { + view.app.vault.adapter.remove(change.vault_path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } else { + manager.discard(change.path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + } + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + function div2_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(2, buttons); + }); + } + const auxclick_handler = (event) => mayTriggerFileMenu(view.app, event, change.vault_path, view.leaf, "git-source-control"); + $$self.$$set = ($$props2) => { + if ("change" in $$props2) $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) $$invalidate(9, manager = $$props2.manager); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 2) { + $: $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + side, + hover, + open, + stage, + showDiff, + discard, + manager, + focus_handler, + div_binding, + div1_binding, + div2_binding, + auxclick_handler + ]; +} +var FileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance5, create_fragment5, safe_not_equal, { change: 0, view: 1, manager: 9 }, add_css3); + } +}; +var fileComponent_default = FileComponent; + +// src/ui/sourceControl/components/pulledFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian27 = require("obsidian"); +function add_css4(target) { + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); +} +function create_fragment6(ctx) { + let main; + let div2; + let div0; + let t0_value = getDisplayPath( + /*change*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div1; + let span; + let t2_value = ( + /*change*/ + ctx[0].working_dir + "" + ); + let t2; + let span_data_type_value; + let div2_data_path_value; + let div2_aria_label_value; + let mounted; + let dispose; + return { + c() { + main = element("main"); + div2 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div1 = element("div"); + span = element("span"); + t2 = text(t2_value); + attr(div0, "class", "tree-item-inner nav-file-title-content"); + attr(span, "class", "type"); + attr(span, "data-type", span_data_type_value = /*change*/ + ctx[0].working_dir); + attr(div1, "class", "git-tools"); + attr(div2, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div2, "data-path", div2_data_path_value = /*change*/ + ctx[0].vault_path); + attr( + div2, + "data-tooltip-position", + /*side*/ + ctx[2] + ); + attr(div2, "aria-label", div2_aria_label_value = /*change*/ + ctx[0].vault_path); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div2); + append2(div2, div0); + append2(div0, t0); + append2(div2, t1); + append2(div2, div1); + append2(div1, span); + append2(span, t2); + if (!mounted) { + dispose = [ + listen( + main, + "mouseover", + /*hover*/ + ctx[3] + ), + listen(main, "click", stop_propagation( + /*open*/ + ctx[4] + )), + listen(main, "auxclick", stop_propagation( + /*auxclick_handler*/ + ctx[6] + )), + listen( + main, + "focus", + /*focus_handler*/ + ctx[5] + ) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & /*change*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*change*/ + ctx2[0].vault_path + ) + "")) set_data(t0, t0_value); + if (dirty & /*change*/ + 1 && t2_value !== (t2_value = /*change*/ + ctx2[0].working_dir + "")) set_data(t2, t2_value); + if (dirty & /*change*/ + 1 && span_data_type_value !== (span_data_type_value = /*change*/ + ctx2[0].working_dir)) { + attr(span, "data-type", span_data_type_value); + } + if (dirty & /*change*/ + 1 && div2_data_path_value !== (div2_data_path_value = /*change*/ + ctx2[0].vault_path)) { + attr(div2, "data-path", div2_data_path_value); + } + if (dirty & /*side*/ + 4) { + attr( + div2, + "data-tooltip-position", + /*side*/ + ctx2[2] + ); + } + if (dirty & /*change*/ + 1 && div2_aria_label_value !== (div2_aria_label_value = /*change*/ + ctx2[0].vault_path)) { + attr(div2, "aria-label", div2_aria_label_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + mounted = false; + run_all(dispose); + } + }; +} +function instance6($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + function hover(event) { + if (app.vault.getAbstractFileByPath(change.vault_path)) { + hoverPreview(event, view, change.vault_path); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + if (file instanceof import_obsidian27.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + const auxclick_handler = (event) => mayTriggerFileMenu(view.app, event, change.vault_path, view.leaf, "git-source-control"); + $$self.$$set = ($$props2) => { + if ("change" in $$props2) $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 2) { + $: $$invalidate(2, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [change, view, side, hover, open, focus_handler, auxclick_handler]; +} +var PulledFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance6, create_fragment6, safe_not_equal, { change: 0, view: 1 }, add_css4); + } +}; +var pulledFileComponent_default = PulledFileComponent; + +// src/ui/sourceControl/components/stagedFileComponent.svelte +init_polyfill_buffer(); +var import_obsidian28 = require("obsidian"); +function add_css5(target) { + append_styles(target, "svelte-1wbh8tp", "main.svelte-1wbh8tp .nav-file-title.svelte-1wbh8tp{align-items:center}"); +} +function create_if_block6(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[10](div); + if (!mounted) { + dispose = listen(div, "click", stop_propagation( + /*open*/ + ctx[5] + )); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + ctx[10](null); + mounted = false; + dispose(); + } + }; +} +function create_fragment7(ctx) { + let main; + let div5; + let div0; + let t0_value = getDisplayPath( + /*change*/ + ctx[0].vault_path + ) + ""; + let t0; + let t1; + let div4; + let div2; + let show_if = ( + /*view*/ + ctx[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx[0].vault_path + ) + ); + let t2; + let div1; + let t3; + let div3; + let t4_value = ( + /*change*/ + ctx[0].index + "" + ); + let t4; + let div3_data_type_value; + let div5_data_path_value; + let div5_aria_label_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block6(ctx); + return { + c() { + var _a2, _b, _c; + main = element("main"); + div5 = element("div"); + div0 = element("div"); + t0 = text(t0_value); + t1 = space(); + div4 = element("div"); + div2 = element("div"); + if (if_block) if_block.c(); + t2 = space(); + div1 = element("div"); + t3 = space(); + div3 = element("div"); + t4 = text(t4_value); + attr(div0, "class", "tree-item-inner nav-file-title-content"); + attr(div1, "data-icon", "minus"); + attr(div1, "aria-label", "Unstage"); + attr(div1, "class", "clickable-icon"); + attr(div2, "class", "buttons"); + attr(div3, "class", "type"); + attr(div3, "data-type", div3_data_type_value = /*change*/ + ctx[0].index); + attr(div4, "class", "git-tools"); + attr(div5, "class", "tree-item-self is-clickable nav-file-title svelte-1wbh8tp"); + attr(div5, "data-path", div5_data_path_value = /*change*/ + ctx[0].vault_path); + attr( + div5, + "data-tooltip-position", + /*side*/ + ctx[3] + ); + attr(div5, "aria-label", div5_aria_label_value = /*change*/ + ctx[0].vault_path); + toggle_class( + div5, + "is-active", + /*view*/ + ((_a2 = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx[0].vault_path && !/*view*/ + ((_b = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && /*view*/ + ((_c = ctx[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + attr(main, "class", "tree-item nav-file svelte-1wbh8tp"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div5); + append2(div5, div0); + append2(div0, t0); + append2(div5, t1); + append2(div5, div4); + append2(div4, div2); + if (if_block) if_block.m(div2, null); + append2(div2, t2); + append2(div2, div1); + ctx[11](div1); + append2(div4, t3); + append2(div4, div3); + append2(div3, t4); + if (!mounted) { + dispose = [ + listen(div1, "click", stop_propagation( + /*unstage*/ + ctx[7] + )), + listen( + main, + "mouseover", + /*hover*/ + ctx[4] + ), + listen( + main, + "focus", + /*focus_handler*/ + ctx[9] + ), + listen(main, "click", stop_propagation( + /*showDiff*/ + ctx[6] + )), + listen(main, "auxclick", stop_propagation( + /*auxclick_handler*/ + ctx[12] + )) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + var _a2, _b, _c; + if (dirty & /*change*/ + 1 && t0_value !== (t0_value = getDisplayPath( + /*change*/ + ctx2[0].vault_path + ) + "")) set_data(t0, t0_value); + if (dirty & /*view, change*/ + 3) show_if = /*view*/ + ctx2[1].app.vault.getAbstractFileByPath( + /*change*/ + ctx2[0].vault_path + ); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block6(ctx2); + if_block.c(); + if_block.m(div2, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & /*change*/ + 1 && t4_value !== (t4_value = /*change*/ + ctx2[0].index + "")) set_data(t4, t4_value); + if (dirty & /*change*/ + 1 && div3_data_type_value !== (div3_data_type_value = /*change*/ + ctx2[0].index)) { + attr(div3, "data-type", div3_data_type_value); + } + if (dirty & /*change*/ + 1 && div5_data_path_value !== (div5_data_path_value = /*change*/ + ctx2[0].vault_path)) { + attr(div5, "data-path", div5_data_path_value); + } + if (dirty & /*side*/ + 8) { + attr( + div5, + "data-tooltip-position", + /*side*/ + ctx2[3] + ); + } + if (dirty & /*change*/ + 1 && div5_aria_label_value !== (div5_aria_label_value = /*change*/ + ctx2[0].vault_path)) { + attr(div5, "aria-label", div5_aria_label_value); + } + if (dirty & /*view, change*/ + 3) { + toggle_class( + div5, + "is-active", + /*view*/ + ((_a2 = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _a2.file) == /*change*/ + ctx2[0].vault_path && !/*view*/ + ((_b = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _b.hash) && /*view*/ + ((_c = ctx2[1].plugin.lastDiffViewState) == null ? void 0 : _c.staged) + ); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) { + detach(main); + } + if (if_block) if_block.d(); + ctx[11](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance7($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let buttons = []; + window.setTimeout(() => buttons.forEach((b) => (0, import_obsidian28.setIcon)(b, b.getAttr("data-icon"))), 0); + function hover(event) { + if (app.vault.getAbstractFileByPath(change.vault_path)) { + hoverPreview(event, view, change.vault_path); + } + } + function open(event) { + var _a2; + const file = view.app.vault.getAbstractFileByPath(change.vault_path); + if (file instanceof import_obsidian28.TFile) { + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.openFile(file); + } + } + function showDiff(event) { + var _a2; + (_a2 = getNewLeaf(event)) === null || _a2 === void 0 ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: true } + }); + } + function unstage() { + manager.unstage(change.path, false).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + const auxclick_handler = (event) => mayTriggerFileMenu(view.app, event, change.vault_path, view.leaf, "git-source-control"); + $$self.$$set = ($$props2) => { + if ("change" in $$props2) $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) $$invalidate(8, manager = $$props2.manager); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 2) { + $: $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + side, + hover, + open, + showDiff, + unstage, + manager, + focus_handler, + div_binding, + div1_binding, + auxclick_handler + ]; +} +var StagedFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance7, create_fragment7, safe_not_equal, { change: 0, view: 1, manager: 8 }, add_css5); + } +}; +var stagedFileComponent_default = StagedFileComponent; + +// src/ui/sourceControl/components/treeComponent.svelte +init_polyfill_buffer(); +function add_css6(target) { + append_styles(target, "svelte-hup5mn", "main.svelte-hup5mn .nav-folder-title.svelte-hup5mn{align-items:center}"); +} +function get_each_context4(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[16] = list[i]; + return child_ctx; +} +function create_else_block3(ctx) { + let div7; + let div6; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2_value = ( + /*entity*/ + ctx[16].title + "" + ); + let t2; + let t3; + let div5; + let div4; + let t4; + let div3; + let div6_aria_label_value; + let t5; + let t6; + let current; + let mounted; + let dispose; + function select_block_type_2(ctx2, dirty) { + if ( + /*fileType*/ + ctx2[3] == 0 /* staged */ + ) return create_if_block_5; + return create_else_block_1; + } + let current_block_type = select_block_type_2(ctx, -1); + let if_block0 = current_block_type(ctx); + let if_block1 = !/*closed*/ + ctx[5][ + /*entity*/ + ctx[16].title + ] && create_if_block_42(ctx); + function click_handler_3() { + return ( + /*click_handler_3*/ + ctx[14]( + /*entity*/ + ctx[16] + ) + ); + } + function auxclick_handler(...args) { + return ( + /*auxclick_handler*/ + ctx[15]( + /*entity*/ + ctx[16], + ...args + ) + ); + } + return { + c() { + div7 = element("div"); + div6 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + div1.innerHTML = ``; + t1 = space(); + div2 = element("div"); + t2 = text(t2_value); + t3 = space(); + div5 = element("div"); + div4 = element("div"); + if_block0.c(); + t4 = space(); + div3 = element("div"); + t5 = space(); + if (if_block1) if_block1.c(); + t6 = space(); + attr(div0, "data-icon", "folder"); + set_style(div0, "padding-right", "5px"); + set_style(div0, "display", "flex"); + attr(div1, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[16].title + ] + ); + attr(div2, "class", "tree-item-inner nav-folder-title-content"); + set_style(div3, "width", "11px"); + attr(div4, "class", "buttons"); + attr(div5, "class", "git-tools"); + attr(div6, "class", "tree-item-self is-clickable nav-folder-title svelte-hup5mn"); + attr( + div6, + "data-tooltip-position", + /*side*/ + ctx[6] + ); + attr(div6, "aria-label", div6_aria_label_value = /*entity*/ + ctx[16].vaultPath); + attr(div7, "class", "tree-item nav-folder"); + toggle_class( + div7, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[16].title + ] + ); + }, + m(target, anchor) { + insert(target, div7, anchor); + append2(div7, div6); + append2(div6, div0); + append2(div6, t0); + append2(div6, div1); + append2(div6, t1); + append2(div6, div2); + append2(div2, t2); + append2(div6, t3); + append2(div6, div5); + append2(div5, div4); + if_block0.m(div4, null); + append2(div4, t4); + append2(div4, div3); + append2(div7, t5); + if (if_block1) if_block1.m(div7, null); + append2(div7, t6); + current = true; + if (!mounted) { + dispose = [ + listen(div7, "click", stop_propagation(click_handler_3)), + listen(div7, "auxclick", stop_propagation(auxclick_handler)) + ]; + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if (!current || dirty & /*closed, hierarchy*/ + 33) { + toggle_class( + div1, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[16].title + ] + ); + } + if ((!current || dirty & /*hierarchy*/ + 1) && t2_value !== (t2_value = /*entity*/ + ctx[16].title + "")) set_data(t2, t2_value); + if (current_block_type === (current_block_type = select_block_type_2(ctx, dirty)) && if_block0) { + if_block0.p(ctx, dirty); + } else { + if_block0.d(1); + if_block0 = current_block_type(ctx); + if (if_block0) { + if_block0.c(); + if_block0.m(div4, t4); + } + } + if (!current || dirty & /*side*/ + 64) { + attr( + div6, + "data-tooltip-position", + /*side*/ + ctx[6] + ); + } + if (!current || dirty & /*hierarchy*/ + 1 && div6_aria_label_value !== (div6_aria_label_value = /*entity*/ + ctx[16].vaultPath)) { + attr(div6, "aria-label", div6_aria_label_value); + } + if (!/*closed*/ + ctx[5][ + /*entity*/ + ctx[16].title + ]) { + if (if_block1) { + if_block1.p(ctx, dirty); + if (dirty & /*closed, hierarchy*/ + 33) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_42(ctx); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div7, t6); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + if (!current || dirty & /*closed, hierarchy*/ + 33) { + toggle_class( + div7, + "is-collapsed", + /*closed*/ + ctx[5][ + /*entity*/ + ctx[16].title + ] + ); + } + }, + i(local) { + if (current) return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div7); + } + if_block0.d(); + if (if_block1) if_block1.d(); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block7(ctx) { + let div; + let current_block_type_index; + let if_block; + let t; + let current; + const if_block_creators = [create_if_block_13, create_if_block_22, create_if_block_32]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if ( + /*fileType*/ + ctx2[3] == 0 /* staged */ + ) return 0; + if ( + /*fileType*/ + ctx2[3] == 1 /* changed */ + ) return 1; + if ( + /*fileType*/ + ctx2[3] == 2 /* pulled */ + ) return 2; + return -1; + } + if (~(current_block_type_index = select_block_type_1(ctx, -1))) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + } + return { + c() { + div = element("div"); + if (if_block) if_block.c(); + t = space(); + }, + m(target, anchor) { + insert(target, div, anchor); + if (~current_block_type_index) { + if_blocks[current_block_type_index].m(div, null); + } + append2(div, t); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if (~current_block_type_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } + } else { + if (if_block) { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + } + if (~current_block_type_index) { + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, t); + } else { + if_block = null; + } + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if (~current_block_type_index) { + if_blocks[current_block_type_index].d(); + } + } + }; +} +function create_else_block_1(ctx) { + let div0; + let t; + let div1; + let mounted; + let dispose; + function click_handler_1() { + return ( + /*click_handler_1*/ + ctx[12]( + /*entity*/ + ctx[16] + ) + ); + } + function click_handler_2() { + return ( + /*click_handler_2*/ + ctx[13]( + /*entity*/ + ctx[16] + ) + ); + } + return { + c() { + div0 = element("div"); + div0.innerHTML = ``; + t = space(); + div1 = element("div"); + div1.innerHTML = ``; + attr(div0, "data-icon", "undo"); + attr(div0, "aria-label", "Discard"); + attr(div0, "class", "clickable-icon"); + attr(div1, "data-icon", "plus"); + attr(div1, "aria-label", "Stage"); + attr(div1, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div0, anchor); + insert(target, t, anchor); + insert(target, div1, anchor); + if (!mounted) { + dispose = [ + listen(div0, "click", stop_propagation(click_handler_1)), + listen(div1, "click", stop_propagation(click_handler_2)) + ]; + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + d(detaching) { + if (detaching) { + detach(div0); + detach(t); + detach(div1); + } + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block_5(ctx) { + let div; + let mounted; + let dispose; + function click_handler() { + return ( + /*click_handler*/ + ctx[11]( + /*entity*/ + ctx[16] + ) + ); + } + return { + c() { + div = element("div"); + div.innerHTML = ``; + attr(div, "data-icon", "minus"); + attr(div, "aria-label", "Unstage"); + attr(div, "class", "clickable-icon"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (!mounted) { + dispose = listen(div, "click", stop_propagation(click_handler)); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + }, + d(detaching) { + if (detaching) { + detach(div); + } + mounted = false; + dispose(); + } + }; +} +function create_if_block_42(ctx) { + let div; + let treecomponent; + let div_transition; + let current; + treecomponent = new TreeComponent({ + props: { + hierarchy: ( + /*entity*/ + ctx[16] + ), + plugin: ( + /*plugin*/ + ctx[1] + ), + view: ( + /*view*/ + ctx[2] + ), + fileType: ( + /*fileType*/ + ctx[3] + ) + } + }); + return { + c() { + div = element("div"); + create_component(treecomponent.$$.fragment); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(treecomponent, div, null); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) treecomponent_changes.hierarchy = /*entity*/ + ctx2[16]; + if (dirty & /*plugin*/ + 2) treecomponent_changes.plugin = /*plugin*/ + ctx2[1]; + if (dirty & /*view*/ + 4) treecomponent_changes.view = /*view*/ + ctx2[2]; + if (dirty & /*fileType*/ + 8) treecomponent_changes.fileType = /*fileType*/ + ctx2[3]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(treecomponent.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (!current) return; + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + if (local) { + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + destroy_component(treecomponent); + if (detaching && div_transition) div_transition.end(); + } + }; +} +function create_if_block_32(ctx) { + let pulledfilecomponent; + let current; + pulledfilecomponent = new pulledFileComponent_default({ + props: { + change: ( + /*entity*/ + ctx[16].data + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + create_component(pulledfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(pulledfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const pulledfilecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) pulledfilecomponent_changes.change = /*entity*/ + ctx2[16].data; + if (dirty & /*view*/ + 4) pulledfilecomponent_changes.view = /*view*/ + ctx2[2]; + pulledfilecomponent.$set(pulledfilecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(pulledfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(pulledfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(pulledfilecomponent, detaching); + } + }; +} +function create_if_block_22(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ( + /*entity*/ + ctx[16].data + ), + manager: ( + /*plugin*/ + ctx[1].gitManager + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) filecomponent_changes.change = /*entity*/ + ctx2[16].data; + if (dirty & /*plugin*/ + 2) filecomponent_changes.manager = /*plugin*/ + ctx2[1].gitManager; + if (dirty & /*view*/ + 4) filecomponent_changes.view = /*view*/ + ctx2[2]; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_13(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ( + /*entity*/ + ctx[16].data + ), + manager: ( + /*plugin*/ + ctx[1].gitManager + ), + view: ( + /*view*/ + ctx[2] + ) + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty & /*hierarchy*/ + 1) stagedfilecomponent_changes.change = /*entity*/ + ctx2[16].data; + if (dirty & /*plugin*/ + 2) stagedfilecomponent_changes.manager = /*plugin*/ + ctx2[1].gitManager; + if (dirty & /*view*/ + 4) stagedfilecomponent_changes.view = /*view*/ + ctx2[2]; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_each_block4(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block7, create_else_block3]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*entity*/ + ctx2[16].data + ) return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(if_block_anchor); + } + if_blocks[current_block_type_index].d(detaching); + } + }; +} +function create_fragment8(ctx) { + let main; + let current; + let each_value = ensure_array_like( + /*hierarchy*/ + ctx[0].children + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block4(get_each_context4(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + main = element("main"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(main, "class", "svelte-hup5mn"); + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx[4] + ); + }, + m(target, anchor) { + insert(target, main, anchor); + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(main, null); + } + } + current = true; + }, + p(ctx2, [dirty]) { + if (dirty & /*hierarchy, plugin, view, fileType, closed, fold, side, unstage, stage, discard*/ + 2031) { + each_value = ensure_array_like( + /*hierarchy*/ + ctx2[0].children + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context4(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block4(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(main, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + if (!current || dirty & /*topLevel*/ + 16) { + toggle_class( + main, + "topLevel", + /*topLevel*/ + ctx2[4] + ); + } + }, + i(local) { + if (current) return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + destroy_each(each_blocks, detaching); + } + }; +} +function instance8($$self, $$props, $$invalidate) { + let side; + let { hierarchy } = $$props; + let { plugin } = $$props; + let { view } = $$props; + let { fileType } = $$props; + let { topLevel = false } = $$props; + const closed = {}; + function stage(path2) { + plugin.gitManager.stageAll({ dir: path2 }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function unstage(path2) { + plugin.gitManager.unstageAll({ dir: path2 }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function discard(item) { + new DiscardModal(view.app, false, item.vaultPath).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + plugin.gitManager.discardAll({ + dir: item.path, + status: plugin.cachedStatus + }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + }); + } + function fold(item) { + $$invalidate(5, closed[item.title] = !closed[item.title], closed); + } + const click_handler = (entity) => unstage(entity.path); + const click_handler_1 = (entity) => discard(entity); + const click_handler_2 = (entity) => stage(entity.path); + const click_handler_3 = (entity) => fold(entity); + const auxclick_handler = (entity, event) => mayTriggerFileMenu(view.app, event, entity.vaultPath, view.leaf, "git-source-control"); + $$self.$$set = ($$props2) => { + if ("hierarchy" in $$props2) $$invalidate(0, hierarchy = $$props2.hierarchy); + if ("plugin" in $$props2) $$invalidate(1, plugin = $$props2.plugin); + if ("view" in $$props2) $$invalidate(2, view = $$props2.view); + if ("fileType" in $$props2) $$invalidate(3, fileType = $$props2.fileType); + if ("topLevel" in $$props2) $$invalidate(4, topLevel = $$props2.topLevel); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & /*view*/ + 4) { + $: $$invalidate(6, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + hierarchy, + plugin, + view, + fileType, + topLevel, + closed, + side, + stage, + unstage, + discard, + fold, + click_handler, + click_handler_1, + click_handler_2, + click_handler_3, + auxclick_handler + ]; +} +var TreeComponent = class extends SvelteComponent { + constructor(options) { + super(); + init2( + this, + options, + instance8, + create_fragment8, + safe_not_equal, + { + hierarchy: 0, + plugin: 1, + view: 2, + fileType: 3, + topLevel: 4 + }, + add_css6 + ); + } +}; +var treeComponent_default = TreeComponent; + +// src/ui/sourceControl/sourceControl.svelte +function add_css7(target) { + append_styles(target, "svelte-11adhly", `.commit-msg-input.svelte-11adhly.svelte-11adhly{width:100%;overflow:hidden;resize:none;padding:7px 5px;background-color:var(--background-modifier-form-field)}.git-commit-msg.svelte-11adhly.svelte-11adhly{position:relative;padding:0;width:calc(100% - var(--size-4-8));margin:4px auto}main.svelte-11adhly .git-tools .files-count.svelte-11adhly{padding-left:var(--size-2-1);width:11px;display:flex;align-items:center;justify-content:center}.nav-folder-title.svelte-11adhly.svelte-11adhly{align-items:center}.git-commit-msg-clear-button.svelte-11adhly.svelte-11adhly{position:absolute;background:transparent;border-radius:50%;color:var(--search-clear-button-color);cursor:var(--cursor);top:-4px;right:2px;bottom:0px;line-height:0;height:var(--input-height);width:28px;margin:auto;padding:0 0;text-align:center;display:flex;justify-content:center;align-items:center;transition:color 0.15s ease-in-out}.git-commit-msg-clear-button.svelte-11adhly.svelte-11adhly:after{content:"";height:var(--search-clear-button-size);width:var(--search-clear-button-size);display:block;background-color:currentColor;mask-image:url("data:image/svg+xml,");mask-repeat:no-repeat;-webkit-mask-image:url("data:image/svg+xml,");-webkit-mask-repeat:no-repeat}`); +} +function get_each_context5(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[40] = list[i]; + return child_ctx; +} +function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[40] = list[i]; + return child_ctx; +} +function get_each_context_2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[45] = list[i]; + return child_ctx; +} +function create_if_block_8(ctx) { + let div; + let div_aria_label_value; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "class", "git-commit-msg-clear-button svelte-11adhly"); + attr(div, "aria-label", div_aria_label_value = "Clear"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (!mounted) { + dispose = listen( + div, + "click", + /*click_handler_1*/ + ctx[33] + ); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) { + detach(div); + } + mounted = false; + dispose(); + } + }; +} +function create_if_block8(ctx) { + let div18; + let div17; + let div7; + let div6; + let div0; + let t0; + let div1; + let t2; + let div5; + let div3; + let div2; + let t3; + let div4; + let t4_value = ( + /*status*/ + ctx[6].staged.length + "" + ); + let t4; + let t5; + let t6; + let div16; + let div15; + let div8; + let t7; + let div9; + let t9; + let div14; + let div12; + let div10; + let t10; + let div11; + let t11; + let div13; + let t12_value = ( + /*status*/ + ctx[6].changed.length + "" + ); + let t12; + let t13; + let t14; + let current; + let mounted; + let dispose; + let if_block0 = ( + /*stagedOpen*/ + ctx[13] && create_if_block_6(ctx) + ); + let if_block1 = ( + /*changesOpen*/ + ctx[12] && create_if_block_43(ctx) + ); + let if_block2 = ( + /*lastPulledFiles*/ + ctx[7].length > 0 && create_if_block_14(ctx) + ); + return { + c() { + div18 = element("div"); + div17 = element("div"); + div7 = element("div"); + div6 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div1 = element("div"); + div1.textContent = "Staged Changes"; + t2 = space(); + div5 = element("div"); + div3 = element("div"); + div2 = element("div"); + div2.innerHTML = ``; + t3 = space(); + div4 = element("div"); + t4 = text(t4_value); + t5 = space(); + if (if_block0) if_block0.c(); + t6 = space(); + div16 = element("div"); + div15 = element("div"); + div8 = element("div"); + div8.innerHTML = ``; + t7 = space(); + div9 = element("div"); + div9.textContent = "Changes"; + t9 = space(); + div14 = element("div"); + div12 = element("div"); + div10 = element("div"); + div10.innerHTML = ``; + t10 = space(); + div11 = element("div"); + div11.innerHTML = ``; + t11 = space(); + div13 = element("div"); + t12 = text(t12_value); + t13 = space(); + if (if_block1) if_block1.c(); + t14 = space(); + if (if_block2) if_block2.c(); + attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class(div0, "is-collapsed", !/*stagedOpen*/ + ctx[13]); + attr(div1, "class", "tree-item-inner nav-folder-title-content"); + attr(div2, "data-icon", "minus"); + attr(div2, "aria-label", "Unstage"); + attr(div2, "class", "clickable-icon"); + attr(div3, "class", "buttons"); + attr(div4, "class", "files-count svelte-11adhly"); + attr(div5, "class", "git-tools"); + attr(div6, "class", "tree-item-self is-clickable nav-folder-title svelte-11adhly"); + attr(div7, "class", "staged tree-item nav-folder"); + toggle_class(div7, "is-collapsed", !/*stagedOpen*/ + ctx[13]); + attr(div8, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + toggle_class(div8, "is-collapsed", !/*changesOpen*/ + ctx[12]); + attr(div9, "class", "tree-item-inner nav-folder-title-content"); + attr(div10, "data-icon", "undo"); + attr(div10, "aria-label", "Discard"); + attr(div10, "class", "clickable-icon"); + attr(div11, "data-icon", "plus"); + attr(div11, "aria-label", "Stage"); + attr(div11, "class", "clickable-icon"); + attr(div12, "class", "buttons"); + attr(div13, "class", "files-count svelte-11adhly"); + attr(div14, "class", "git-tools"); + attr(div15, "class", "tree-item-self is-clickable nav-folder-title svelte-11adhly"); + attr(div16, "class", "changes tree-item nav-folder"); + toggle_class(div16, "is-collapsed", !/*changesOpen*/ + ctx[12]); + attr(div17, "class", "tree-item-children nav-folder-children"); + attr(div18, "class", "tree-item nav-folder mod-root"); + }, + m(target, anchor) { + insert(target, div18, anchor); + append2(div18, div17); + append2(div17, div7); + append2(div7, div6); + append2(div6, div0); + append2(div6, t0); + append2(div6, div1); + append2(div6, t2); + append2(div6, div5); + append2(div5, div3); + append2(div3, div2); + ctx[34](div2); + append2(div5, t3); + append2(div5, div4); + append2(div4, t4); + append2(div7, t5); + if (if_block0) if_block0.m(div7, null); + append2(div17, t6); + append2(div17, div16); + append2(div16, div15); + append2(div15, div8); + append2(div15, t7); + append2(div15, div9); + append2(div15, t9); + append2(div15, div14); + append2(div14, div12); + append2(div12, div10); + append2(div12, t10); + append2(div12, div11); + ctx[36](div11); + append2(div14, t11); + append2(div14, div13); + append2(div13, t12); + append2(div16, t13); + if (if_block1) if_block1.m(div16, null); + append2(div17, t14); + if (if_block2) if_block2.m(div17, null); + current = true; + if (!mounted) { + dispose = [ + listen(div2, "click", stop_propagation( + /*unstageAll*/ + ctx[19] + )), + listen( + div6, + "click", + /*click_handler_2*/ + ctx[35] + ), + listen(div10, "click", stop_propagation( + /*discard*/ + ctx[22] + )), + listen(div11, "click", stop_propagation( + /*stageAll*/ + ctx[18] + )), + listen( + div15, + "click", + /*click_handler_3*/ + ctx[37] + ) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (!current || dirty[0] & /*stagedOpen*/ + 8192) { + toggle_class(div0, "is-collapsed", !/*stagedOpen*/ + ctx2[13]); + } + if ((!current || dirty[0] & /*status*/ + 64) && t4_value !== (t4_value = /*status*/ + ctx2[6].staged.length + "")) set_data(t4, t4_value); + if ( + /*stagedOpen*/ + ctx2[13] + ) { + if (if_block0) { + if_block0.p(ctx2, dirty); + if (dirty[0] & /*stagedOpen*/ + 8192) { + transition_in(if_block0, 1); + } + } else { + if_block0 = create_if_block_6(ctx2); + if_block0.c(); + transition_in(if_block0, 1); + if_block0.m(div7, null); + } + } else if (if_block0) { + group_outros(); + transition_out(if_block0, 1, 1, () => { + if_block0 = null; + }); + check_outros(); + } + if (!current || dirty[0] & /*stagedOpen*/ + 8192) { + toggle_class(div7, "is-collapsed", !/*stagedOpen*/ + ctx2[13]); + } + if (!current || dirty[0] & /*changesOpen*/ + 4096) { + toggle_class(div8, "is-collapsed", !/*changesOpen*/ + ctx2[12]); + } + if ((!current || dirty[0] & /*status*/ + 64) && t12_value !== (t12_value = /*status*/ + ctx2[6].changed.length + "")) set_data(t12, t12_value); + if ( + /*changesOpen*/ + ctx2[12] + ) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & /*changesOpen*/ + 4096) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_43(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div16, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + if (!current || dirty[0] & /*changesOpen*/ + 4096) { + toggle_class(div16, "is-collapsed", !/*changesOpen*/ + ctx2[12]); + } + if ( + /*lastPulledFiles*/ + ctx2[7].length > 0 + ) { + if (if_block2) { + if_block2.p(ctx2, dirty); + if (dirty[0] & /*lastPulledFiles*/ + 128) { + transition_in(if_block2, 1); + } + } else { + if_block2 = create_if_block_14(ctx2); + if_block2.c(); + transition_in(if_block2, 1); + if_block2.m(div17, null); + } + } else if (if_block2) { + group_outros(); + transition_out(if_block2, 1, 1, () => { + if_block2 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) return; + transition_in(if_block0); + transition_in(if_block1); + transition_in(if_block2); + current = true; + }, + o(local) { + transition_out(if_block0); + transition_out(if_block1); + transition_out(if_block2); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div18); + } + ctx[34](null); + if (if_block0) if_block0.d(); + ctx[36](null); + if (if_block1) if_block1.d(); + if (if_block2) if_block2.d(); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block_6(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_7, create_else_block_2]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[3] + ) return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) return; + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) div_transition.end(); + } + }; +} +function create_else_block_2(ctx) { + let each_1_anchor; + let current; + let each_value_2 = ensure_array_like( + /*status*/ + ctx[6].staged + ); + let each_blocks = []; + for (let i = 0; i < each_value_2.length; i += 1) { + each_blocks[i] = create_each_block_2(get_each_context_2(ctx, each_value_2, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & /*status, view, plugin*/ + 67) { + each_value_2 = ensure_array_like( + /*status*/ + ctx2[6].staged + ); + let i; + for (i = 0; i < each_value_2.length; i += 1) { + const child_ctx = get_each_context_2(ctx2, each_value_2, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_2.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) return; + for (let i = 0; i < each_value_2.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_7(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ( + /*stagedHierarchy*/ + ctx[10] + ), + plugin: ( + /*plugin*/ + ctx[0] + ), + view: ( + /*view*/ + ctx[1] + ), + fileType: 0 /* staged */, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & /*stagedHierarchy*/ + 1024) treecomponent_changes.hierarchy = /*stagedHierarchy*/ + ctx2[10]; + if (dirty[0] & /*plugin*/ + 1) treecomponent_changes.plugin = /*plugin*/ + ctx2[0]; + if (dirty[0] & /*view*/ + 2) treecomponent_changes.view = /*view*/ + ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_2(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ( + /*stagedFile*/ + ctx[45] + ), + view: ( + /*view*/ + ctx[1] + ), + manager: ( + /*plugin*/ + ctx[0].gitManager + ) + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty[0] & /*status*/ + 64) stagedfilecomponent_changes.change = /*stagedFile*/ + ctx2[45]; + if (dirty[0] & /*view*/ + 2) stagedfilecomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty[0] & /*plugin*/ + 1) stagedfilecomponent_changes.manager = /*plugin*/ + ctx2[0].gitManager; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_if_block_43(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_52, create_else_block_12]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[3] + ) return 0; + return 1; + } + current_block_type_index = select_block_type_1(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) return; + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) div_transition.end(); + } + }; +} +function create_else_block_12(ctx) { + let each_1_anchor; + let current; + let each_value_1 = ensure_array_like( + /*status*/ + ctx[6].changed + ); + let each_blocks = []; + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & /*status, view, plugin*/ + 67) { + each_value_1 = ensure_array_like( + /*status*/ + ctx2[6].changed + ); + let i; + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx2, each_value_1, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_1.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) return; + for (let i = 0; i < each_value_1.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_52(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ( + /*changeHierarchy*/ + ctx[9] + ), + plugin: ( + /*plugin*/ + ctx[0] + ), + view: ( + /*view*/ + ctx[1] + ), + fileType: 1 /* changed */, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & /*changeHierarchy*/ + 512) treecomponent_changes.hierarchy = /*changeHierarchy*/ + ctx2[9]; + if (dirty[0] & /*plugin*/ + 1) treecomponent_changes.plugin = /*plugin*/ + ctx2[0]; + if (dirty[0] & /*view*/ + 2) treecomponent_changes.view = /*view*/ + ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_1(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ( + /*change*/ + ctx[40] + ), + view: ( + /*view*/ + ctx[1] + ), + manager: ( + /*plugin*/ + ctx[0].gitManager + ) + } + }); + filecomponent.$on("git-refresh", triggerRefresh2); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty[0] & /*status*/ + 64) filecomponent_changes.change = /*change*/ + ctx2[40]; + if (dirty[0] & /*view*/ + 2) filecomponent_changes.view = /*view*/ + ctx2[1]; + if (dirty[0] & /*plugin*/ + 1) filecomponent_changes.manager = /*plugin*/ + ctx2[0].gitManager; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_14(ctx) { + let div3; + let div2; + let div0; + let t0; + let div1; + let t2; + let span; + let t3_value = ( + /*lastPulledFiles*/ + ctx[7].length + "" + ); + let t3; + let t4; + let current; + let mounted; + let dispose; + let if_block = ( + /*lastPulledFilesOpen*/ + ctx[14] && create_if_block_23(ctx) + ); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + div1 = element("div"); + div1.textContent = "Recently Pulled Files"; + t2 = space(); + span = element("span"); + t3 = text(t3_value); + t4 = space(); + if (if_block) if_block.c(); + attr(div0, "class", "tree-item-icon nav-folder-collapse-indicator collapse-icon"); + attr(div1, "class", "tree-item-inner nav-folder-title-content"); + attr(span, "class", "tree-item-flair"); + attr(div2, "class", "tree-item-self is-clickable nav-folder-title svelte-11adhly"); + attr(div3, "class", "pulled nav-folder"); + toggle_class(div3, "is-collapsed", !/*lastPulledFilesOpen*/ + ctx[14]); + }, + m(target, anchor) { + insert(target, div3, anchor); + append2(div3, div2); + append2(div2, div0); + append2(div2, t0); + append2(div2, div1); + append2(div2, t2); + append2(div2, span); + append2(span, t3); + append2(div3, t4); + if (if_block) if_block.m(div3, null); + current = true; + if (!mounted) { + dispose = listen( + div2, + "click", + /*click_handler_4*/ + ctx[38] + ); + mounted = true; + } + }, + p(ctx2, dirty) { + if ((!current || dirty[0] & /*lastPulledFiles*/ + 128) && t3_value !== (t3_value = /*lastPulledFiles*/ + ctx2[7].length + "")) set_data(t3, t3_value); + if ( + /*lastPulledFilesOpen*/ + ctx2[14] + ) { + if (if_block) { + if_block.p(ctx2, dirty); + if (dirty[0] & /*lastPulledFilesOpen*/ + 16384) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_23(ctx2); + if_block.c(); + transition_in(if_block, 1); + if_block.m(div3, null); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + if (!current || dirty[0] & /*lastPulledFilesOpen*/ + 16384) { + toggle_class(div3, "is-collapsed", !/*lastPulledFilesOpen*/ + ctx2[14]); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) { + detach(div3); + } + if (if_block) if_block.d(); + mounted = false; + dispose(); + } + }; +} +function create_if_block_23(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_33, create_else_block4]; + const if_blocks = []; + function select_block_type_2(ctx2, dirty) { + if ( + /*showTree*/ + ctx2[3] + ) return 0; + return 1; + } + current_block_type_index = select_block_type_2(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "tree-item-children nav-folder-children"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_2(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!current) return; + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(div); + } + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) div_transition.end(); + } + }; +} +function create_else_block4(ctx) { + let each_1_anchor; + let current; + let each_value = ensure_array_like( + /*lastPulledFiles*/ + ctx[7] + ); + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block5(get_each_context5(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + if (each_blocks[i]) { + each_blocks[i].m(target, anchor); + } + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & /*lastPulledFiles, view*/ + 130) { + each_value = ensure_array_like( + /*lastPulledFiles*/ + ctx2[7] + ); + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context5(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block5(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) { + detach(each_1_anchor); + } + destroy_each(each_blocks, detaching); + } + }; +} +function create_if_block_33(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ( + /*lastPulledFilesHierarchy*/ + ctx[11] + ), + plugin: ( + /*plugin*/ + ctx[0] + ), + view: ( + /*view*/ + ctx[1] + ), + fileType: 2 /* pulled */, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & /*lastPulledFilesHierarchy*/ + 2048) treecomponent_changes.hierarchy = /*lastPulledFilesHierarchy*/ + ctx2[11]; + if (dirty[0] & /*plugin*/ + 1) treecomponent_changes.plugin = /*plugin*/ + ctx2[0]; + if (dirty[0] & /*view*/ + 2) treecomponent_changes.view = /*view*/ + ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block5(ctx) { + let pulledfilecomponent; + let current; + pulledfilecomponent = new pulledFileComponent_default({ + props: { + change: ( + /*change*/ + ctx[40] + ), + view: ( + /*view*/ + ctx[1] + ) + } + }); + pulledfilecomponent.$on("git-refresh", triggerRefresh2); + return { + c() { + create_component(pulledfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(pulledfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const pulledfilecomponent_changes = {}; + if (dirty[0] & /*lastPulledFiles*/ + 128) pulledfilecomponent_changes.change = /*change*/ + ctx2[40]; + if (dirty[0] & /*view*/ + 2) pulledfilecomponent_changes.view = /*view*/ + ctx2[1]; + pulledfilecomponent.$set(pulledfilecomponent_changes); + }, + i(local) { + if (current) return; + transition_in(pulledfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(pulledfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(pulledfilecomponent, detaching); + } + }; +} +function create_fragment9(ctx) { + let main; + let div9; + let div8; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2; + let div3; + let t3; + let div4; + let t4; + let div5; + let t5; + let div6; + let t6; + let div7; + let t7; + let div10; + let textarea; + let t8; + let t9; + let div11; + let main_data_type_value; + let current; + let mounted; + let dispose; + let if_block0 = ( + /*commitMessage*/ + ctx[2] && create_if_block_8(ctx) + ); + let if_block1 = ( + /*status*/ + ctx[6] && /*stagedHierarchy*/ + ctx[10] && /*changeHierarchy*/ + ctx[9] && create_if_block8(ctx) + ); + return { + c() { + main = element("main"); + div9 = element("div"); + div8 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + t1 = space(); + div2 = element("div"); + t2 = space(); + div3 = element("div"); + t3 = space(); + div4 = element("div"); + t4 = space(); + div5 = element("div"); + t5 = space(); + div6 = element("div"); + t6 = space(); + div7 = element("div"); + t7 = space(); + div10 = element("div"); + textarea = element("textarea"); + t8 = space(); + if (if_block0) if_block0.c(); + t9 = space(); + div11 = element("div"); + if (if_block1) if_block1.c(); + attr(div0, "id", "backup-btn"); + attr(div0, "data-icon", "arrow-up-circle"); + attr(div0, "class", "clickable-icon nav-action-button"); + attr(div0, "aria-label", "Backup"); + attr(div1, "id", "commit-btn"); + attr(div1, "data-icon", "check"); + attr(div1, "class", "clickable-icon nav-action-button"); + attr(div1, "aria-label", "Commit"); + attr(div2, "id", "stage-all"); + attr(div2, "class", "clickable-icon nav-action-button"); + attr(div2, "data-icon", "plus-circle"); + attr(div2, "aria-label", "Stage all"); + attr(div3, "id", "unstage-all"); + attr(div3, "class", "clickable-icon nav-action-button"); + attr(div3, "data-icon", "minus-circle"); + attr(div3, "aria-label", "Unstage all"); + attr(div4, "id", "push"); + attr(div4, "class", "clickable-icon nav-action-button"); + attr(div4, "data-icon", "upload"); + attr(div4, "aria-label", "Push"); + attr(div5, "id", "pull"); + attr(div5, "class", "clickable-icon nav-action-button"); + attr(div5, "data-icon", "download"); + attr(div5, "aria-label", "Pull"); + attr(div6, "id", "layoutChange"); + attr(div6, "class", "clickable-icon nav-action-button"); + attr(div6, "aria-label", "Change Layout"); + attr(div7, "id", "refresh"); + attr(div7, "class", "clickable-icon nav-action-button"); + attr(div7, "data-icon", "refresh-cw"); + attr(div7, "aria-label", "Refresh"); + set_style(div7, "margin", "1px"); + toggle_class( + div7, + "loading", + /*loading*/ + ctx[5] + ); + attr(div8, "class", "nav-buttons-container"); + attr(div9, "class", "nav-header"); + attr( + textarea, + "rows", + /*rows*/ + ctx[15] + ); + attr(textarea, "class", "commit-msg-input svelte-11adhly"); + attr(textarea, "spellcheck", "true"); + attr(textarea, "placeholder", "Commit Message"); + attr(div10, "class", "git-commit-msg svelte-11adhly"); + attr(div11, "class", "nav-files-container"); + set_style(div11, "position", "relative"); + attr(main, "data-type", main_data_type_value = SOURCE_CONTROL_VIEW_CONFIG.type); + attr(main, "class", "svelte-11adhly"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div9); + append2(div9, div8); + append2(div8, div0); + ctx[23](div0); + append2(div8, t0); + append2(div8, div1); + ctx[24](div1); + append2(div8, t1); + append2(div8, div2); + ctx[25](div2); + append2(div8, t2); + append2(div8, div3); + ctx[26](div3); + append2(div8, t3); + append2(div8, div4); + ctx[27](div4); + append2(div8, t4); + append2(div8, div5); + ctx[28](div5); + append2(div8, t5); + append2(div8, div6); + ctx[29](div6); + append2(div8, t6); + append2(div8, div7); + ctx[31](div7); + append2(main, t7); + append2(main, div10); + append2(div10, textarea); + set_input_value( + textarea, + /*commitMessage*/ + ctx[2] + ); + append2(div10, t8); + if (if_block0) if_block0.m(div10, null); + append2(main, t9); + append2(main, div11); + if (if_block1) if_block1.m(div11, null); + current = true; + if (!mounted) { + dispose = [ + listen( + div0, + "click", + /*backup*/ + ctx[17] + ), + listen( + div1, + "click", + /*commit*/ + ctx[16] + ), + listen( + div2, + "click", + /*stageAll*/ + ctx[18] + ), + listen( + div3, + "click", + /*unstageAll*/ + ctx[19] + ), + listen( + div4, + "click", + /*push*/ + ctx[20] + ), + listen( + div5, + "click", + /*pull*/ + ctx[21] + ), + listen( + div6, + "click", + /*click_handler*/ + ctx[30] + ), + listen(div7, "click", triggerRefresh2), + listen( + textarea, + "input", + /*textarea_input_handler*/ + ctx[32] + ) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (!current || dirty[0] & /*loading*/ + 32) { + toggle_class( + div7, + "loading", + /*loading*/ + ctx2[5] + ); + } + if (!current || dirty[0] & /*rows*/ + 32768) { + attr( + textarea, + "rows", + /*rows*/ + ctx2[15] + ); + } + if (dirty[0] & /*commitMessage*/ + 4) { + set_input_value( + textarea, + /*commitMessage*/ + ctx2[2] + ); + } + if ( + /*commitMessage*/ + ctx2[2] + ) { + if (if_block0) { + if_block0.p(ctx2, dirty); + } else { + if_block0 = create_if_block_8(ctx2); + if_block0.c(); + if_block0.m(div10, null); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + if ( + /*status*/ + ctx2[6] && /*stagedHierarchy*/ + ctx2[10] && /*changeHierarchy*/ + ctx2[9] + ) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & /*status, stagedHierarchy, changeHierarchy*/ + 1600) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block8(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div11, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) { + detach(main); + } + ctx[23](null); + ctx[24](null); + ctx[25](null); + ctx[26](null); + ctx[27](null); + ctx[28](null); + ctx[29](null); + ctx[31](null); + if (if_block0) if_block0.d(); + if (if_block1) if_block1.d(); + mounted = false; + run_all(dispose); + } + }; +} +function triggerRefresh2() { + dispatchEvent(new CustomEvent("git-refresh")); +} +function instance9($$self, $$props, $$invalidate) { + let rows; + let { plugin } = $$props; + let { view } = $$props; + let loading; + let status2; + let lastPulledFiles = []; + let commitMessage = plugin.settings.commitMessage; + let buttons = []; + let changeHierarchy; + let stagedHierarchy; + let lastPulledFilesHierarchy; + let changesOpen = true; + let stagedOpen = true; + let lastPulledFilesOpen = true; + let showTree = plugin.settings.treeStructure; + let layoutBtn; + addEventListener("git-view-refresh", refresh); + plugin.app.workspace.onLayoutReady(() => { + window.setTimeout( + () => { + buttons.forEach((btn) => (0, import_obsidian29.setIcon)(btn, btn.getAttr("data-icon"))); + (0, import_obsidian29.setIcon)(layoutBtn, showTree ? "list" : "folder"); + }, + 0 + ); + }); + onDestroy(() => { + removeEventListener("git-view-refresh", refresh); + }); + function commit2() { + return __awaiter(this, void 0, void 0, function* () { + $$invalidate(5, loading = true); + if (status2) { + if (yield plugin.hasTooBigFiles(status2.staged)) { + plugin.setState(0 /* idle */); + return false; + } + plugin.promiseQueue.addTask(() => plugin.gitManager.commit({ message: commitMessage }).then(() => { + if (commitMessage !== plugin.settings.commitMessage) { + $$invalidate(2, commitMessage = ""); + } + plugin.setUpAutoBackup(); + }).finally(triggerRefresh2)); + } + }); + } + function backup() { + return __awaiter(this, void 0, void 0, function* () { + $$invalidate(5, loading = true); + if (status2) { + plugin.promiseQueue.addTask(() => plugin.createBackup(false, false, commitMessage).then(() => { + if (commitMessage !== plugin.settings.commitMessage) { + $$invalidate(2, commitMessage = ""); + } + }).finally(triggerRefresh2)); + } + }); + } + function refresh() { + return __awaiter(this, void 0, void 0, function* () { + if (!plugin.gitReady) { + $$invalidate(6, status2 = void 0); + return; + } + const unPushedCommits = yield plugin.gitManager.getUnpushedCommits(); + buttons.forEach((btn) => { + var _a2, _b; + if (import_obsidian29.Platform.isMobile) { + btn.removeClass("button-border"); + if (btn.id == "push" && unPushedCommits > 0) { + btn.addClass("button-border"); + } + } else { + (_a2 = btn.firstElementChild) === null || _a2 === void 0 ? void 0 : _a2.removeAttribute("color"); + if (btn.id == "push" && unPushedCommits > 0) { + (_b = btn.firstElementChild) === null || _b === void 0 ? void 0 : _b.setAttr("color", "var(--text-accent)"); + } + } + }); + $$invalidate(6, status2 = plugin.cachedStatus); + if (plugin.lastPulledFiles && plugin.lastPulledFiles != lastPulledFiles) { + $$invalidate(7, lastPulledFiles = plugin.lastPulledFiles); + $$invalidate(11, lastPulledFilesHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(lastPulledFiles) + }); + } + if (status2) { + const sort = (a, b) => { + return a.vault_path.split("/").last().localeCompare(getDisplayPath(b.vault_path)); + }; + status2.changed.sort(sort); + status2.staged.sort(sort); + if (status2.changed.length + status2.staged.length > 500) { + $$invalidate(6, status2 = void 0); + if (!plugin.loading) { + plugin.displayError("Too many changes to display"); + } + } else { + $$invalidate(9, changeHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(status2.changed) + }); + $$invalidate(10, stagedHierarchy = { + title: "", + path: "", + vaultPath: "", + children: plugin.gitManager.getTreeStructure(status2.staged) + }); + } + } else { + $$invalidate(9, changeHierarchy = void 0); + $$invalidate(10, stagedHierarchy = void 0); + } + $$invalidate(5, loading = plugin.loading); + }); + } + function stageAll() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.gitManager.stageAll({ status: status2 }).finally(triggerRefresh2)); + } + function unstageAll() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.gitManager.unstageAll({ status: status2 }).finally(triggerRefresh2)); + } + function push2() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.push().finally(triggerRefresh2)); + } + function pull2() { + $$invalidate(5, loading = true); + plugin.promiseQueue.addTask(() => plugin.pullChangesFromRemote().finally(triggerRefresh2)); + } + function discard() { + new DiscardModal(view.app, false, plugin.gitManager.getRelativeVaultPath("/")).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + plugin.promiseQueue.addTask(() => plugin.gitManager.discardAll({ status: plugin.cachedStatus }).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + })); + } + }); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[5] = $$value; + $$invalidate(8, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(8, buttons); + }); + } + function div2_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(8, buttons); + }); + } + function div3_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(8, buttons); + }); + } + function div4_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[3] = $$value; + $$invalidate(8, buttons); + }); + } + function div5_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[4] = $$value; + $$invalidate(8, buttons); + }); + } + function div6_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + layoutBtn = $$value; + $$invalidate(4, layoutBtn); + }); + } + const click_handler = () => { + $$invalidate(3, showTree = !showTree); + $$invalidate(0, plugin.settings.treeStructure = showTree, plugin); + plugin.saveSettings(); + }; + function div7_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[6] = $$value; + $$invalidate(8, buttons); + }); + } + function textarea_input_handler() { + commitMessage = this.value; + $$invalidate(2, commitMessage); + } + const click_handler_1 = () => $$invalidate(2, commitMessage = ""); + function div2_binding_1($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[8] = $$value; + $$invalidate(8, buttons); + }); + } + const click_handler_2 = () => $$invalidate(13, stagedOpen = !stagedOpen); + function div11_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[9] = $$value; + $$invalidate(8, buttons); + }); + } + const click_handler_3 = () => $$invalidate(12, changesOpen = !changesOpen); + const click_handler_4 = () => $$invalidate(14, lastPulledFilesOpen = !lastPulledFilesOpen); + $$self.$$set = ($$props2) => { + if ("plugin" in $$props2) $$invalidate(0, plugin = $$props2.plugin); + if ("view" in $$props2) $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty[0] & /*layoutBtn, showTree*/ + 24) { + $: { + if (layoutBtn) { + layoutBtn.empty(); + (0, import_obsidian29.setIcon)(layoutBtn, showTree ? "list" : "folder"); + } + } + } + if ($$self.$$.dirty[0] & /*commitMessage*/ + 4) { + $: $$invalidate(15, rows = (commitMessage.match(/\n/g) || []).length + 1 || 1); + } + }; + return [ + plugin, + view, + commitMessage, + showTree, + layoutBtn, + loading, + status2, + lastPulledFiles, + buttons, + changeHierarchy, + stagedHierarchy, + lastPulledFilesHierarchy, + changesOpen, + stagedOpen, + lastPulledFilesOpen, + rows, + commit2, + backup, + stageAll, + unstageAll, + push2, + pull2, + discard, + div0_binding, + div1_binding, + div2_binding, + div3_binding, + div4_binding, + div5_binding, + div6_binding, + click_handler, + div7_binding, + textarea_input_handler, + click_handler_1, + div2_binding_1, + click_handler_2, + div11_binding, + click_handler_3, + click_handler_4 + ]; +} +var SourceControl = class extends SvelteComponent { + constructor(options) { + super(); + init2(this, options, instance9, create_fragment9, safe_not_equal, { plugin: 0, view: 1 }, add_css7, [-1, -1]); + } +}; +var sourceControl_default = SourceControl; + +// src/ui/sourceControl/sourceControl.ts +var GitView = class extends import_obsidian30.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.hoverPopover = null; + } + getViewType() { + return SOURCE_CONTROL_VIEW_CONFIG.type; + } + getDisplayText() { + return SOURCE_CONTROL_VIEW_CONFIG.name; + } + getIcon() { + return SOURCE_CONTROL_VIEW_CONFIG.icon; + } + onClose() { + return super.onClose(); + } + onOpen() { + this._view = new sourceControl_default({ + target: this.contentEl, + props: { + plugin: this.plugin, + view: this + } + }); + return super.onOpen(); + } +}; + +// src/ui/statusBar/branchStatusBar.ts +init_polyfill_buffer(); +var BranchStatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.statusBarEl.addClass("mod-clickable"); + this.statusBarEl.onClickEvent((e) => { + this.plugin.switchBranch(); + }); + } + async display() { + if (this.plugin.gitReady) { + const branchInfo = await this.plugin.gitManager.branchInfo(); + if (branchInfo.current != void 0) { + this.statusBarEl.setText(branchInfo.current); + } else { + this.statusBarEl.empty(); + } + } else { + this.statusBarEl.empty(); + } + } +}; + +// src/main.ts +var ObsidianGit = class extends import_obsidian31.Plugin { + constructor() { + super(...arguments); + this.gitReady = false; + this.promiseQueue = new PromiseQueue(); + this.conflictOutputFile = "conflict-files-obsidian-git.md"; + this.offlineMode = false; + this.loading = false; + this.lineAuthoringFeature = new LineAuthoringFeature(this); + } + setState(state) { + var _a2; + this.state = state; + (_a2 = this.statusBar) == null ? void 0 : _a2.display(); + } + async updateCachedStatus() { + this.cachedStatus = await this.gitManager.status(); + return this.cachedStatus; + } + async refresh() { + const gitView = this.app.workspace.getLeavesOfType( + SOURCE_CONTROL_VIEW_CONFIG.type + ); + const historyView = this.app.workspace.getLeavesOfType( + HISTORY_VIEW_CONFIG.type + ); + if (this.settings.changedFilesInStatusBar || gitView.length > 0 || historyView.length > 0) { + this.loading = true; + dispatchEvent(new CustomEvent("git-view-refresh")); + await this.updateCachedStatus(); + this.loading = false; + dispatchEvent(new CustomEvent("git-view-refresh")); + } + } + async refreshUpdatedHead() { + this.lineAuthoringFeature.refreshLineAuthorViews(); + } + async onload() { + console.log("loading " + this.manifest.name + " plugin"); + pluginRef.plugin = this; + this.localStorage = new LocalStorageSettings(this); + this.localStorage.migrate(); + await this.loadSettings(); + this.migrateSettings(); + this.settingsTab = new ObsidianGitSettingsTab(this.app, this); + this.addSettingTab(this.settingsTab); + if (!this.localStorage.getPluginDisabled()) { + this.loadPlugin(); + } + } + async loadPlugin() { + addEventListener("git-refresh", this.refresh.bind(this)); + addEventListener("git-head-update", this.refreshUpdatedHead.bind(this)); + this.registerView(SOURCE_CONTROL_VIEW_CONFIG.type, (leaf) => { + return new GitView(leaf, this); + }); + this.registerView(HISTORY_VIEW_CONFIG.type, (leaf) => { + return new HistoryView2(leaf, this); + }); + this.registerView(DIFF_VIEW_CONFIG.type, (leaf) => { + return new DiffView(leaf, this); + }); + this.lineAuthoringFeature.onLoadPlugin(); + this.app.workspace.registerHoverLinkSource( + SOURCE_CONTROL_VIEW_CONFIG.type, + { + display: "Git View", + defaultMod: true + } + ); + this.setRefreshDebouncer(); + this.addCommand({ + id: "edit-gitignore", + name: "Edit .gitignore", + callback: async () => { + const path2 = this.gitManager.getRelativeVaultPath(".gitignore"); + if (!await this.app.vault.adapter.exists(path2)) { + this.app.vault.adapter.write(path2, ""); + } + const content = await this.app.vault.adapter.read(path2); + const modal = new IgnoreModal(this.app, content); + const res = await modal.open(); + if (res !== void 0) { + await this.app.vault.adapter.write(path2, res); + this.refresh(); + } + } + }); + this.addCommand({ + id: "open-git-view", + name: "Open source control view", + callback: async () => { + var _a2; + const leafs = this.app.workspace.getLeavesOfType( + SOURCE_CONTROL_VIEW_CONFIG.type + ); + let leaf; + if (leafs.length === 0) { + leaf = (_a2 = this.app.workspace.getRightLeaf(false)) != null ? _a2 : this.app.workspace.getLeaf(); + await leaf.setViewState({ + type: SOURCE_CONTROL_VIEW_CONFIG.type + }); + } else { + leaf = leafs.first(); + } + this.app.workspace.revealLeaf(leaf); + dispatchEvent(new CustomEvent("git-refresh")); + } + }); + this.addCommand({ + id: "open-history-view", + name: "Open history view", + callback: async () => { + var _a2; + const leafs = this.app.workspace.getLeavesOfType( + HISTORY_VIEW_CONFIG.type + ); + let leaf; + if (leafs.length === 0) { + leaf = (_a2 = this.app.workspace.getRightLeaf(false)) != null ? _a2 : this.app.workspace.getLeaf(); + await leaf.setViewState({ + type: HISTORY_VIEW_CONFIG.type + }); + } else { + leaf = leafs.first(); + } + this.app.workspace.revealLeaf(leaf); + dispatchEvent(new CustomEvent("git-refresh")); + } + }); + this.addCommand({ + id: "open-diff-view", + name: "Open diff view", + checkCallback: (checking) => { + var _a2; + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + (_a2 = getNewLeaf()) == null ? void 0 : _a2.setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { + staged: false, + file: this.gitManager.getRelativeRepoPath( + file.path, + true + ) + } + }); + } + } + }); + this.addCommand({ + id: "view-file-on-github", + name: "Open file on GitHub", + editorCallback: (editor, { file }) => { + if (file) + return openLineInGitHub(editor, file, this.gitManager); + } + }); + this.addCommand({ + id: "view-history-on-github", + name: "Open file history on GitHub", + editorCallback: (_, { file }) => { + if (file) return openHistoryInGitHub(file, this.gitManager); + } + }); + this.addCommand({ + id: "pull", + name: "Pull", + callback: () => this.promiseQueue.addTask(() => this.pullChangesFromRemote()) + }); + this.addCommand({ + id: "fetch", + name: "fetch", + callback: () => this.promiseQueue.addTask(() => this.fetch()) + }); + this.addCommand({ + id: "switch-to-remote-branch", + name: "Switch to remote branch", + callback: () => this.promiseQueue.addTask(() => this.switchRemoteBranch()) + }); + this.addCommand({ + id: "add-to-gitignore", + name: "Add file to gitignore", + checkCallback: (checking) => { + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + this.addFileToGitignore(file); + } + } + }); + this.addCommand({ + id: "push", + name: "Create backup", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false)) + }); + this.addCommand({ + id: "backup-and-close", + name: "Create backup and close", + callback: () => this.promiseQueue.addTask(async () => { + await this.createBackup(false); + window.close(); + }) + }); + this.addCommand({ + id: "commit-push-specified-message", + name: "Create backup with specific message", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false, true)) + }); + this.addCommand({ + id: "commit", + name: "Commit all changes", + callback: () => this.promiseQueue.addTask( + () => this.commit({ fromAutoBackup: false }) + ) + }); + this.addCommand({ + id: "commit-specified-message", + name: "Commit all changes with specific message", + callback: () => this.promiseQueue.addTask( + () => this.commit({ + fromAutoBackup: false, + requestCustomMessage: true + }) + ) + }); + this.addCommand({ + id: "commit-staged", + name: "Commit staged", + callback: () => this.promiseQueue.addTask( + () => this.commit({ + fromAutoBackup: false, + requestCustomMessage: false, + onlyStaged: true + }) + ) + }); + if (import_obsidian31.Platform.isDesktopApp) { + this.addCommand({ + id: "commit-amend-staged-specified-message", + name: "Commit Amend", + callback: () => this.promiseQueue.addTask( + () => this.commit({ + fromAutoBackup: false, + requestCustomMessage: true, + onlyStaged: true, + amend: true + }) + ) + }); + } + this.addCommand({ + id: "commit-staged-specified-message", + name: "Commit staged with specific message", + callback: () => this.promiseQueue.addTask( + () => this.commit({ + fromAutoBackup: false, + requestCustomMessage: true, + onlyStaged: true + }) + ) + }); + this.addCommand({ + id: "push2", + name: "Push", + callback: () => this.promiseQueue.addTask(() => this.push()) + }); + this.addCommand({ + id: "stage-current-file", + name: "Stage current file", + checkCallback: (checking) => { + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + this.promiseQueue.addTask(() => this.stageFile(file)); + } + } + }); + this.addCommand({ + id: "unstage-current-file", + name: "Unstage current file", + checkCallback: (checking) => { + const file = this.app.workspace.getActiveFile(); + if (checking) { + return file !== null; + } else { + this.promiseQueue.addTask(() => this.unstageFile(file)); + } + } + }); + this.addCommand({ + id: "edit-remotes", + name: "Edit remotes", + callback: async () => this.editRemotes() + }); + this.addCommand({ + id: "remove-remote", + name: "Remove remote", + callback: async () => this.removeRemote() + }); + this.addCommand({ + id: "set-upstream-branch", + name: "Set upstream branch", + callback: async () => this.setUpstreamBranch() + }); + this.addCommand({ + id: "delete-repo", + name: "CAUTION: Delete repository", + callback: async () => { + const repoExists = await this.app.vault.adapter.exists( + `${this.settings.basePath}/.git` + ); + if (repoExists) { + const modal = new GeneralModal({ + options: ["NO", "YES"], + placeholder: "Do you really want to delete the repository (.git directory)? This action cannot be undone.", + onlySelection: true + }); + const shouldDelete = await modal.open() === "YES"; + if (shouldDelete) { + await this.app.vault.adapter.rmdir( + `${this.settings.basePath}/.git`, + true + ); + new import_obsidian31.Notice( + "Successfully deleted repository. Reloading plugin..." + ); + this.unloadPlugin(); + this.init(); + } + } else { + new import_obsidian31.Notice("No repository found"); + } + } + }); + this.addCommand({ + id: "init-repo", + name: "Initialize a new repo", + callback: async () => this.createNewRepo() + }); + this.addCommand({ + id: "clone-repo", + name: "Clone an existing remote repo", + callback: async () => this.cloneNewRepo() + }); + this.addCommand({ + id: "list-changed-files", + name: "List changed files", + callback: async () => { + if (!await this.isAllInitialized()) return; + const status2 = await this.gitManager.status(); + console.log(status2); + this.setState(0 /* idle */); + if (status2.changed.length + status2.staged.length > 500) { + this.displayError("Too many changes to display"); + return; + } + new ChangedFilesModal(this, status2.all).open(); + } + }); + this.addCommand({ + id: "switch-branch", + name: "Switch branch", + callback: () => { + this.switchBranch(); + } + }); + this.addCommand({ + id: "create-branch", + name: "Create new branch", + callback: () => { + this.createBranch(); + } + }); + this.addCommand({ + id: "delete-branch", + name: "Delete branch", + callback: () => { + this.deleteBranch(); + } + }); + this.addCommand({ + id: "discard-all", + name: "CAUTION: Discard all changes", + callback: async () => { + if (!await this.isAllInitialized()) return false; + const modal = new GeneralModal({ + options: ["NO", "YES"], + placeholder: "Do you want to discard all changes to tracked files? This action cannot be undone.", + onlySelection: true + }); + const shouldDiscardAll = await modal.open() === "YES"; + if (shouldDiscardAll) { + this.promiseQueue.addTask(() => this.discardAll()); + } + } + }); + this.addCommand({ + id: "toggle-line-author-info", + name: "Toggle line author information", + callback: () => { + var _a2; + return (_a2 = this.settingsTab) == null ? void 0 : _a2.configureLineAuthorShowStatus( + !this.settings.lineAuthor.show + ); + } + }); + this.registerEvent( + this.app.workspace.on("file-menu", (menu, file, source) => { + this.handleFileMenu(menu, file, source); + }) + ); + if (this.settings.showStatusBar) { + const statusBarEl = this.addStatusBarItem(); + this.statusBar = new StatusBar(statusBarEl, this); + this.registerInterval( + window.setInterval(() => { + var _a2; + return (_a2 = this.statusBar) == null ? void 0 : _a2.display(); + }, 1e3) + ); + } + if (import_obsidian31.Platform.isDesktop && this.settings.showBranchStatusBar) { + const branchStatusBarEl = this.addStatusBarItem(); + this.branchBar = new BranchStatusBar(branchStatusBarEl, this); + this.registerInterval( + window.setInterval(() => { + var _a2; + return (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + }, 6e4) + ); + } + this.app.workspace.onLayoutReady(() => this.init()); + } + setRefreshDebouncer() { + var _a2; + (_a2 = this.debRefresh) == null ? void 0 : _a2.cancel(); + this.debRefresh = (0, import_obsidian31.debounce)( + () => { + if (this.settings.refreshSourceControl) { + this.refresh(); + } + }, + this.settings.refreshSourceControlTimer, + true + ); + } + async showNotices() { + const length = 1e4; + if (this.manifest.id === "obsidian-git" && import_obsidian31.Platform.isDesktopApp && !this.settings.showedMobileNotice) { + new import_obsidian31.Notice( + "Git is now available on mobile! Please read the plugin's README for more information.", + length + ); + this.settings.showedMobileNotice = true; + await this.saveSettings(); + } + if (this.manifest.id === "obsidian-git-isomorphic") { + new import_obsidian31.Notice( + "Git Mobile is now deprecated. Please uninstall it and install Git instead.", + length + ); + } + } + async addFileToGitignore(file) { + await this.app.vault.adapter.append( + this.gitManager.getRelativeVaultPath(".gitignore"), + "\n" + this.gitManager.getRelativeRepoPath(file.path, true) + ); + this.refresh(); + } + handleFileMenu(menu, file, source) { + if (!this.gitReady) return; + if (!this.settings.showFileMenu) return; + if (!file) return; + if (this.settings.showFileMenu && source == "file-explorer-context-menu") { + menu.addItem((item) => { + item.setTitle(`Git: Stage`).setIcon("plus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(async () => { + if (file instanceof import_obsidian31.TFile) { + await this.gitManager.stage(file.path, true); + } else { + await this.gitManager.stageAll({ + dir: this.gitManager.getRelativeRepoPath( + file.path, + true + ) + }); + } + this.displayMessage(`Staged ${file.path}`); + }); + }); + }); + menu.addItem((item) => { + item.setTitle(`Git: Unstage`).setIcon("minus-circle").setSection("action").onClick((_) => { + this.promiseQueue.addTask(async () => { + if (file instanceof import_obsidian31.TFile) { + await this.gitManager.unstage(file.path, true); + } else { + await this.gitManager.unstageAll({ + dir: this.gitManager.getRelativeRepoPath( + file.path, + true + ) + }); + } + this.displayMessage(`Unstaged ${file.path}`); + }); + }); + }); + menu.addItem((item) => { + item.setTitle(`Git: Add to .gitignore`).setIcon("file-x").setSection("action").onClick((_) => { + this.addFileToGitignore(file); + }); + }); + } + if (source == "git-source-control") { + menu.addItem((item) => { + item.setTitle(`Git: Add to .gitignore`).setIcon("file-x").setSection("action").onClick((_) => { + this.addFileToGitignore(file); + }); + }); + } + } + async migrateSettings() { + if (this.settings.mergeOnPull != void 0) { + this.settings.syncMethod = this.settings.mergeOnPull ? "merge" : "rebase"; + this.settings.mergeOnPull = void 0; + await this.saveSettings(); + } + if (this.settings.autoCommitMessage === void 0) { + this.settings.autoCommitMessage = this.settings.commitMessage; + await this.saveSettings(); + } + if (this.settings.gitPath != void 0) { + this.localStorage.setGitPath(this.settings.gitPath); + this.settings.gitPath = void 0; + await this.saveSettings(); + } + if (this.settings.username != void 0) { + this.localStorage.setPassword(this.settings.username); + this.settings.username = void 0; + await this.saveSettings(); + } + } + unloadPlugin() { + this.gitReady = false; + dispatchEvent(new CustomEvent("git-refresh")); + this.lineAuthoringFeature.deactivateFeature(); + this.clearAutoPull(); + this.clearAutoPush(); + this.clearAutoBackup(); + removeEventListener("git-refresh", this.refresh.bind(this)); + removeEventListener( + "git-head-update", + this.refreshUpdatedHead.bind(this) + ); + this.app.workspace.offref(this.openEvent); + this.app.metadataCache.offref(this.modifyEvent); + this.app.metadataCache.offref(this.deleteEvent); + this.app.metadataCache.offref(this.createEvent); + this.app.metadataCache.offref(this.renameEvent); + this.debRefresh.cancel(); + } + async onunload() { + this.app.workspace.unregisterHoverLinkSource( + SOURCE_CONTROL_VIEW_CONFIG.type + ); + this.unloadPlugin(); + console.log("unloading " + this.manifest.name + " plugin"); + } + async loadSettings() { + let data = await this.loadData(); + if (data == void 0) { + data = { showedMobileNotice: true }; + } + this.settings = mergeSettingsByPriority(DEFAULT_SETTINGS, data); + } + async saveSettings() { + var _a2; + (_a2 = this.settingsTab) == null ? void 0 : _a2.beforeSaveSettings(); + await this.saveData(this.settings); + } + saveLastAuto(date, mode) { + if (mode === "backup") { + this.localStorage.setLastAutoBackup(date.toString()); + } else if (mode === "pull") { + this.localStorage.setLastAutoPull(date.toString()); + } else if (mode === "push") { + this.localStorage.setLastAutoPush(date.toString()); + } + } + loadLastAuto() { + var _a2, _b, _c; + return { + backup: new Date((_a2 = this.localStorage.getLastAutoBackup()) != null ? _a2 : ""), + pull: new Date((_b = this.localStorage.getLastAutoPull()) != null ? _b : ""), + push: new Date((_c = this.localStorage.getLastAutoPush()) != null ? _c : "") + }; + } + get useSimpleGit() { + return import_obsidian31.Platform.isDesktopApp; + } + async init() { + var _a2; + this.showNotices(); + try { + if (this.useSimpleGit) { + this.gitManager = new SimpleGit(this); + await this.gitManager.setGitInstance(); + } else { + this.gitManager = new IsomorphicGit(this); + } + const result = await this.gitManager.checkRequirements(); + switch (result) { + case "missing-git": + this.displayError("Cannot run git command"); + break; + case "missing-repo": + new import_obsidian31.Notice( + "Can't find a valid git repository. Please create one via the given command or clone an existing repo.", + 1e4 + ); + break; + case "valid": + this.gitReady = true; + this.setState(0 /* idle */); + this.openEvent = this.app.workspace.on( + "active-leaf-change", + (leaf) => this.handleViewActiveState(leaf) + ); + this.modifyEvent = this.app.vault.on("modify", () => { + this.debRefresh(); + }); + this.deleteEvent = this.app.vault.on("delete", () => { + this.debRefresh(); + }); + this.createEvent = this.app.vault.on("create", () => { + this.debRefresh(); + }); + this.renameEvent = this.app.vault.on("rename", () => { + this.debRefresh(); + }); + this.registerEvent(this.modifyEvent); + this.registerEvent(this.deleteEvent); + this.registerEvent(this.createEvent); + this.registerEvent(this.renameEvent); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + this.lineAuthoringFeature.conditionallyActivateBySettings(); + dispatchEvent(new CustomEvent("git-refresh")); + if (this.settings.autoPullOnBoot) { + this.promiseQueue.addTask( + () => this.pullChangesFromRemote() + ); + } + this.setUpAutos(); + break; + default: + console.log( + "Something weird happened. The 'checkRequirements' result is " + result + ); + } + } catch (error) { + this.displayError(error); + console.error(error); + } + } + async createNewRepo() { + await this.gitManager.init(); + new import_obsidian31.Notice("Initialized new repo"); + await this.init(); + } + async cloneNewRepo() { + const modal = new GeneralModal({ placeholder: "Enter remote URL" }); + const url = await modal.open(); + if (url) { + const confirmOption = "Vault Root"; + let dir = await new GeneralModal({ + options: this.gitManager instanceof IsomorphicGit ? [confirmOption] : [], + placeholder: "Enter directory for clone. It needs to be empty or not existent.", + allowEmpty: this.gitManager instanceof IsomorphicGit + }).open(); + if (dir !== void 0) { + if (dir === confirmOption) { + dir = "."; + } + dir = (0, import_obsidian31.normalizePath)(dir); + if (dir === "/") { + dir = "."; + } + if (dir === ".") { + const modal2 = new GeneralModal({ + options: ["NO", "YES"], + placeholder: `Does your remote repo contain a ${app.vault.configDir} directory at the root?`, + onlySelection: true + }); + const containsConflictDir = await modal2.open(); + if (containsConflictDir === void 0) { + new import_obsidian31.Notice("Aborted clone"); + return; + } else if (containsConflictDir === "YES") { + const confirmOption2 = "DELETE ALL YOUR LOCAL CONFIG AND PLUGINS"; + const modal3 = new GeneralModal({ + options: ["Abort clone", confirmOption2], + placeholder: `To avoid conflicts, the local ${app.vault.configDir} directory needs to be deleted.`, + onlySelection: true + }); + const shouldDelete = await modal3.open() === confirmOption2; + if (shouldDelete) { + await this.app.vault.adapter.rmdir( + app.vault.configDir, + true + ); + } else { + new import_obsidian31.Notice("Aborted clone"); + return; + } + } + } + const depth = await new GeneralModal({ + placeholder: "Specify depth of clone. Leave empty for full clone.", + allowEmpty: true + }).open(); + let depthInt = void 0; + if (depth !== "") { + depthInt = parseInt(depth); + if (isNaN(depthInt)) { + new import_obsidian31.Notice("Invalid depth. Aborting clone."); + return; + } + } + new import_obsidian31.Notice(`Cloning new repo into "${dir}"`); + const oldBase = this.settings.basePath; + const customDir = dir && dir !== "."; + if (customDir) { + this.settings.basePath = dir; + } + try { + await this.gitManager.clone(url, dir, depthInt); + } catch (error) { + this.settings.basePath = oldBase; + this.saveSettings(); + throw error; + } + new import_obsidian31.Notice("Cloned new repo."); + new import_obsidian31.Notice("Please restart Obsidian"); + if (customDir) { + this.saveSettings(); + } + } + } + } + /** + * Retries to call `this.init()` if necessary, otherwise returns directly + * @returns true if `this.gitManager` is ready to be used, false if not. + */ + async isAllInitialized() { + if (!this.gitReady) { + await this.init(); + } + return this.gitReady; + } + ///Used for command + async pullChangesFromRemote() { + if (!await this.isAllInitialized()) return; + const filesUpdated = await this.pull(); + this.setUpAutoBackup(); + if (filesUpdated === false) { + return; + } + if (!filesUpdated) { + this.displayMessage("Everything is up-to-date"); + } + if (this.gitManager instanceof SimpleGit) { + const status2 = await this.gitManager.status(); + if (status2.conflicted.length > 0) { + this.displayError( + `You have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}` + ); + this.handleConflict(status2.conflicted); + } + } + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + } + async createBackup(fromAutoBackup, requestCustomMessage = false, commitMessage) { + if (!await this.isAllInitialized()) return; + if (this.settings.syncMethod == "reset" && this.settings.pullBeforePush) { + await this.pull(); + } + if (!await this.commit({ + fromAutoBackup, + requestCustomMessage, + commitMessage + })) { + return; + } + if (!this.settings.disablePush) { + if (await this.remotesAreSet() && await this.gitManager.canPush()) { + if (this.settings.syncMethod != "reset" && this.settings.pullBeforePush) { + await this.pull(); + } + await this.push(); + } else { + this.displayMessage("No changes to push"); + } + } + this.setState(0 /* idle */); + } + // Returns true if commit was successfully + async commit({ + fromAutoBackup, + requestCustomMessage = false, + onlyStaged = false, + commitMessage, + amend = false + }) { + if (!await this.isAllInitialized()) return false; + let hadConflict = this.localStorage.getConflict(); + let changedFiles; + let status2; + let unstagedFiles; + if (this.gitManager instanceof SimpleGit) { + this.mayDeleteConflictFile(); + status2 = await this.updateCachedStatus(); + if (status2.conflicted.length == 0) { + this.localStorage.setConflict(false); + hadConflict = false; + } + if (fromAutoBackup && status2.conflicted.length > 0) { + this.displayError( + `Did not commit, because you have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}. Please resolve them and commit per command.` + ); + this.handleConflict(status2.conflicted); + return false; + } + changedFiles = [...status2.changed, ...status2.staged]; + } else if (fromAutoBackup && hadConflict) { + this.setState(6 /* conflicted */); + this.displayError( + `Did not commit, because you have conflicts. Please resolve them and commit per command.` + ); + return false; + } else if (hadConflict) { + await this.mayDeleteConflictFile(); + status2 = await this.updateCachedStatus(); + changedFiles = [...status2.changed, ...status2.staged]; + } else { + if (onlyStaged) { + changedFiles = await this.gitManager.getStagedFiles(); + } else { + unstagedFiles = await this.gitManager.getUnstagedFiles(); + changedFiles = unstagedFiles.map(({ filepath }) => ({ + vault_path: this.gitManager.getRelativeVaultPath(filepath) + })); + } + } + if (await this.hasTooBigFiles(changedFiles)) { + this.setState(0 /* idle */); + return false; + } + if (changedFiles.length !== 0 || hadConflict) { + let cmtMessage = commitMessage != null ? commitMessage : commitMessage = fromAutoBackup ? this.settings.autoCommitMessage : this.settings.commitMessage; + if (fromAutoBackup && this.settings.customMessageOnAutoBackup || requestCustomMessage) { + if (!this.settings.disablePopups && fromAutoBackup) { + new import_obsidian31.Notice( + "Auto backup: Please enter a custom commit message. Leave empty to abort" + ); + } + const tempMessage = await new CustomMessageModal( + this, + true + ).open(); + if (tempMessage != void 0 && tempMessage != "" && tempMessage != "...") { + cmtMessage = tempMessage; + } else { + this.setState(0 /* idle */); + return false; + } + } + let committedFiles; + if (onlyStaged) { + committedFiles = await this.gitManager.commit({ + message: cmtMessage, + amend + }); + } else { + committedFiles = await this.gitManager.commitAll({ + message: cmtMessage, + status: status2, + unstagedFiles, + amend + }); + } + if (this.gitManager instanceof SimpleGit) { + if ((await this.updateCachedStatus()).conflicted.length == 0) { + this.localStorage.setConflict(false); + } + } + let roughly = false; + if (committedFiles === void 0) { + roughly = true; + committedFiles = changedFiles.length; + } + this.setUpAutoBackup(); + this.displayMessage( + `Committed${roughly ? " approx." : ""} ${committedFiles} ${committedFiles == 1 ? "file" : "files"}` + ); + } else { + this.displayMessage("No changes to commit"); + } + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + return true; + } + async hasTooBigFiles(files) { + const branchInfo = await this.gitManager.branchInfo(); + const remote = branchInfo.tracking ? splitRemoteBranch(branchInfo.tracking)[0] : null; + if (remote) { + const remoteUrl = await this.gitManager.getRemoteUrl(remote); + if (remoteUrl == null ? void 0 : remoteUrl.includes("github.com")) { + const tooBigFiles = files.filter((f) => { + const file = this.app.vault.getAbstractFileByPath( + f.vault_path + ); + if (file instanceof import_obsidian31.TFile) { + return file.stat.size >= 1e8; + } + return false; + }); + if (tooBigFiles.length > 0) { + this.displayError( + `Did not commit, because following files are too big: ${tooBigFiles.map( + (e) => e.vault_path + )}. Please remove them.` + ); + return true; + } + } + } + return false; + } + async push() { + if (!await this.isAllInitialized()) return false; + if (!await this.remotesAreSet()) { + return false; + } + const hadConflict = this.localStorage.getConflict(); + if (this.gitManager instanceof SimpleGit) + await this.mayDeleteConflictFile(); + let status2; + if (this.gitManager instanceof SimpleGit && (status2 = await this.updateCachedStatus()).conflicted.length > 0) { + this.displayError( + `Cannot push. You have conflicts in ${status2.conflicted.length} ${status2.conflicted.length == 1 ? "file" : "files"}` + ); + this.handleConflict(status2.conflicted); + return false; + } else if (this.gitManager instanceof IsomorphicGit && hadConflict) { + this.displayError(`Cannot push. You have conflicts`); + this.setState(6 /* conflicted */); + return false; + } + console.log("Pushing...."); + const pushedFiles = await this.gitManager.push(); + if (pushedFiles !== void 0) { + console.log("Pushed!", pushedFiles); + if (pushedFiles > 0) { + this.displayMessage( + `Pushed ${pushedFiles} ${pushedFiles == 1 ? "file" : "files"} to remote` + ); + } else { + this.displayMessage(`No changes to push`); + } + } + this.offlineMode = false; + this.setState(0 /* idle */); + dispatchEvent(new CustomEvent("git-refresh")); + return true; + } + /** Used for internals + Returns whether the pull added a commit or not. + + See {@link pullChangesFromRemote} for the command version. */ + async pull() { + if (!await this.remotesAreSet()) { + return false; + } + const pulledFiles = await this.gitManager.pull() || []; + this.offlineMode = false; + if (pulledFiles.length > 0) { + this.displayMessage( + `Pulled ${pulledFiles.length} ${pulledFiles.length == 1 ? "file" : "files"} from remote` + ); + this.lastPulledFiles = pulledFiles; + } + return pulledFiles.length; + } + async fetch() { + if (!await this.remotesAreSet()) { + return; + } + await this.gitManager.fetch(); + this.displayMessage(`Fetched from remote`); + this.offlineMode = false; + dispatchEvent(new CustomEvent("git-refresh")); + } + async mayDeleteConflictFile() { + const file = this.app.vault.getAbstractFileByPath( + this.conflictOutputFile + ); + if (file) { + this.app.workspace.iterateAllLeaves((leaf) => { + var _a2; + if (leaf.view instanceof import_obsidian31.MarkdownView && ((_a2 = leaf.view.file) == null ? void 0 : _a2.path) == file.path) { + leaf.detach(); + } + }); + await this.app.vault.delete(file); + } + } + async stageFile(file) { + if (!await this.isAllInitialized()) return false; + await this.gitManager.stage(file.path, true); + this.displayMessage(`Staged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + return true; + } + async unstageFile(file) { + if (!await this.isAllInitialized()) return false; + await this.gitManager.unstage(file.path, true); + this.displayMessage(`Unstaged ${file.path}`); + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(0 /* idle */); + return true; + } + async switchBranch() { + var _a2; + if (!await this.isAllInitialized()) return; + const branchInfo = await this.gitManager.branchInfo(); + const selectedBranch = await new BranchModal( + branchInfo.branches + ).open(); + if (selectedBranch != void 0) { + await this.gitManager.checkout(selectedBranch); + this.displayMessage(`Switched to ${selectedBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return selectedBranch; + } + } + async switchRemoteBranch() { + var _a2; + if (!await this.isAllInitialized()) return; + const selectedBranch = await this.selectRemoteBranch() || ""; + const [remote, branch2] = splitRemoteBranch(selectedBranch); + if (branch2 != void 0 && remote != void 0) { + await this.gitManager.checkout(branch2, remote); + this.displayMessage(`Switched to ${selectedBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return selectedBranch; + } + } + async createBranch() { + var _a2; + if (!await this.isAllInitialized()) return; + const newBranch = await new GeneralModal({ + placeholder: "Create new branch" + }).open(); + if (newBranch != void 0) { + await this.gitManager.createBranch(newBranch); + this.displayMessage(`Created new branch ${newBranch}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return newBranch; + } + } + async deleteBranch() { + var _a2; + if (!await this.isAllInitialized()) return; + const branchInfo = await this.gitManager.branchInfo(); + if (branchInfo.current) branchInfo.branches.remove(branchInfo.current); + const branch2 = await new GeneralModal({ + options: branchInfo.branches, + placeholder: "Delete branch", + onlySelection: true + }).open(); + if (branch2 != void 0) { + let force = false; + const merged = await this.gitManager.branchIsMerged(branch2); + if (!merged) { + const forceAnswer = await new GeneralModal({ + options: ["YES", "NO"], + placeholder: "This branch isn't merged into HEAD. Force delete?", + onlySelection: true + }).open(); + if (forceAnswer !== "YES") { + return; + } + force = forceAnswer === "YES"; + } + await this.gitManager.deleteBranch(branch2, force); + this.displayMessage(`Deleted branch ${branch2}`); + (_a2 = this.branchBar) == null ? void 0 : _a2.display(); + return branch2; + } + } + // Ensures that the upstream branch is set. + // If not, it will prompt the user to set it. + // + // An exception is when the user has submodules enabled. + // In this case, the upstream branch is not required, + // to allow pulling/pushing only the submodules and not the outer repo. + async remotesAreSet() { + if (this.settings.updateSubmodules) { + return true; + } + if (!(await this.gitManager.branchInfo()).tracking) { + new import_obsidian31.Notice("No upstream branch is set. Please select one."); + return await this.setUpstreamBranch(); + } + return true; + } + async setUpstreamBranch() { + const remoteBranch = await this.selectRemoteBranch(); + if (remoteBranch == void 0) { + this.displayError("Aborted. No upstream-branch is set!", 1e4); + this.setState(0 /* idle */); + return false; + } else { + await this.gitManager.updateUpstreamBranch(remoteBranch); + this.displayMessage(`Set upstream branch to ${remoteBranch}`); + this.setState(0 /* idle */); + return true; + } + } + async setUpAutoBackup() { + if (this.settings.setLastSaveToLastCommit) { + this.clearAutoBackup(); + const lastCommitDate = await this.gitManager.getLastCommitTime(); + if (lastCommitDate) { + this.localStorage.setLastAutoBackup(lastCommitDate.toString()); + } + } + if (!this.timeoutIDBackup && !this.onFileModifyEventRef) { + const lastAutos = this.loadLastAuto(); + if (this.settings.autoSaveInterval > 0) { + const now2 = /* @__PURE__ */ new Date(); + const diff3 = this.settings.autoSaveInterval - Math.round( + (now2.getTime() - lastAutos.backup.getTime()) / 1e3 / 60 + ); + this.startAutoBackup(diff3 <= 0 ? 0 : diff3); + } + } + } + async setUpAutos() { + this.setUpAutoBackup(); + const lastAutos = this.loadLastAuto(); + if (this.settings.differentIntervalCommitAndPush && this.settings.autoPushInterval > 0) { + const now2 = /* @__PURE__ */ new Date(); + const diff3 = this.settings.autoPushInterval - Math.round( + (now2.getTime() - lastAutos.push.getTime()) / 1e3 / 60 + ); + this.startAutoPush(diff3 <= 0 ? 0 : diff3); + } + if (this.settings.autoPullInterval > 0) { + const now2 = /* @__PURE__ */ new Date(); + const diff3 = this.settings.autoPullInterval - Math.round( + (now2.getTime() - lastAutos.pull.getTime()) / 1e3 / 60 + ); + this.startAutoPull(diff3 <= 0 ? 0 : diff3); + } + } + async discardAll() { + await this.gitManager.discardAll({ + status: this.cachedStatus + }); + new import_obsidian31.Notice( + "All local changes have been discarded. New files remain untouched." + ); + } + clearAutos() { + this.clearAutoBackup(); + this.clearAutoPush(); + this.clearAutoPull(); + } + startAutoBackup(minutes) { + let time = (minutes != null ? minutes : this.settings.autoSaveInterval) * 6e4; + if (this.settings.autoBackupAfterFileChange) { + if (minutes === 0) { + this.doAutoBackup(); + } else { + this.onFileModifyEventRef = this.app.vault.on( + "modify", + () => this.autoBackupDebouncer() + ); + this.autoBackupDebouncer = (0, import_obsidian31.debounce)( + () => this.doAutoBackup(), + time, + true + ); + } + } else { + if (time > 2147483647) time = 2147483647; + this.timeoutIDBackup = window.setTimeout( + () => this.doAutoBackup(), + time + ); + } + } + // This is used for both auto backup and commit + doAutoBackup() { + this.promiseQueue.addTask(() => { + if (this.settings.differentIntervalCommitAndPush) { + return this.commit({ fromAutoBackup: true }); + } else { + return this.createBackup(true); + } + }); + this.saveLastAuto(/* @__PURE__ */ new Date(), "backup"); + this.saveSettings(); + this.startAutoBackup(); + } + startAutoPull(minutes) { + let time = (minutes != null ? minutes : this.settings.autoPullInterval) * 6e4; + if (time > 2147483647) time = 2147483647; + this.timeoutIDPull = window.setTimeout(() => { + this.promiseQueue.addTask(() => this.pullChangesFromRemote()); + this.saveLastAuto(/* @__PURE__ */ new Date(), "pull"); + this.saveSettings(); + this.startAutoPull(); + }, time); + } + startAutoPush(minutes) { + let time = (minutes != null ? minutes : this.settings.autoPushInterval) * 6e4; + if (time > 2147483647) time = 2147483647; + this.timeoutIDPush = window.setTimeout(() => { + this.promiseQueue.addTask(() => this.push()); + this.saveLastAuto(/* @__PURE__ */ new Date(), "push"); + this.saveSettings(); + this.startAutoPush(); + }, time); + } + clearAutoBackup() { + var _a2; + let wasActive = false; + if (this.timeoutIDBackup) { + window.clearTimeout(this.timeoutIDBackup); + this.timeoutIDBackup = void 0; + wasActive = true; + } + if (this.onFileModifyEventRef) { + (_a2 = this.autoBackupDebouncer) == null ? void 0 : _a2.cancel(); + this.app.vault.offref(this.onFileModifyEventRef); + this.onFileModifyEventRef = void 0; + wasActive = true; + } + return wasActive; + } + clearAutoPull() { + if (this.timeoutIDPull) { + window.clearTimeout(this.timeoutIDPull); + this.timeoutIDPull = void 0; + return true; + } + return false; + } + clearAutoPush() { + if (this.timeoutIDPush) { + window.clearTimeout(this.timeoutIDPush); + this.timeoutIDPush = void 0; + return true; + } + return false; + } + async handleConflict(conflicted) { + this.setState(6 /* conflicted */); + this.localStorage.setConflict(true); + let lines; + if (conflicted !== void 0) { + lines = [ + "# Conflicts", + "Please resolve them and commit them using the commands `Git: Commit all changes` followed by `Git: Push`", + "(This file will automatically be deleted before commit)", + "[[#Additional Instructions]] available below file list", + "", + ...conflicted.map((e) => { + const file = this.app.vault.getAbstractFileByPath(e); + if (file instanceof import_obsidian31.TFile) { + const link = this.app.metadataCache.fileToLinktext( + file, + "/" + ); + return `- [[${link}]]`; + } else { + return `- Not a file: ${e}`; + } + }), + ` +# Additional Instructions +I strongly recommend to use "Source mode" for viewing the conflicted files. For simple conflicts, in each file listed above replace every occurrence of the following text blocks with the desired text. + +\`\`\`diff +<<<<<<< HEAD + File changes in local repository +======= + File changes in remote repository +>>>>>>> origin/main +\`\`\`` + ]; + } + this.writeAndOpenFile(lines == null ? void 0 : lines.join("\n")); + } + async editRemotes() { + if (!await this.isAllInitialized()) return; + const remotes = await this.gitManager.getRemotes(); + const nameModal = new GeneralModal({ + options: remotes, + placeholder: "Select or create a new remote by typing its name and selecting it" + }); + const remoteName = await nameModal.open(); + if (remoteName) { + const oldUrl = await this.gitManager.getRemoteUrl(remoteName); + const urlModal = new GeneralModal({ initialValue: oldUrl }); + const remoteURL = await urlModal.open(); + if (remoteURL) { + await this.gitManager.setRemote(remoteName, remoteURL); + return remoteName; + } + } + } + async selectRemoteBranch() { + let remotes = await this.gitManager.getRemotes(); + let selectedRemote; + if (remotes.length === 0) { + selectedRemote = await this.editRemotes(); + if (selectedRemote == void 0) { + remotes = await this.gitManager.getRemotes(); + } + } + const nameModal = new GeneralModal({ + options: remotes, + placeholder: "Select or create a new remote by typing its name and selecting it" + }); + const remoteName = selectedRemote != null ? selectedRemote : await nameModal.open(); + if (remoteName) { + this.displayMessage("Fetching remote branches"); + await this.gitManager.fetch(remoteName); + const branches = await this.gitManager.getRemoteBranches(remoteName); + const branchModal = new GeneralModal({ + options: branches, + placeholder: "Select or create a new remote branch by typing its name and selecting it" + }); + return await branchModal.open(); + } + } + async removeRemote() { + if (!await this.isAllInitialized()) return; + const remotes = await this.gitManager.getRemotes(); + const nameModal = new GeneralModal({ + options: remotes, + placeholder: "Select a remote" + }); + const remoteName = await nameModal.open(); + if (remoteName) { + this.gitManager.removeRemote(remoteName); + } + } + async writeAndOpenFile(text2) { + if (text2 !== void 0) { + await this.app.vault.adapter.write(this.conflictOutputFile, text2); + } + let fileIsAlreadyOpened = false; + this.app.workspace.iterateAllLeaves((leaf) => { + if (leaf.getDisplayText() != "" && this.conflictOutputFile.startsWith(leaf.getDisplayText())) { + fileIsAlreadyOpened = true; + } + }); + if (!fileIsAlreadyOpened) { + this.app.workspace.openLinkText(this.conflictOutputFile, "/", true); + } + } + handleViewActiveState(leaf) { + var _a2, _b; + if (!(leaf == null ? void 0 : leaf.view.getState().file)) return; + const sourceControlLeaf = this.app.workspace.getLeavesOfType(SOURCE_CONTROL_VIEW_CONFIG.type).first(); + const historyLeaf = this.app.workspace.getLeavesOfType(HISTORY_VIEW_CONFIG.type).first(); + (_a2 = sourceControlLeaf == null ? void 0 : sourceControlLeaf.view.containerEl.querySelector(`div.nav-file-title.is-active`)) == null ? void 0 : _a2.removeClass("is-active"); + (_b = historyLeaf == null ? void 0 : historyLeaf.view.containerEl.querySelector(`div.nav-file-title.is-active`)) == null ? void 0 : _b.removeClass("is-active"); + if ((leaf == null ? void 0 : leaf.view) instanceof DiffView) { + const path2 = leaf.view.state.file; + this.lastDiffViewState = leaf.view.getState(); + let el; + if (sourceControlLeaf && leaf.view.state.staged) { + el = sourceControlLeaf.view.containerEl.querySelector( + `div.staged div.nav-file-title[data-path='${path2}']` + ); + } else if (sourceControlLeaf && leaf.view.state.staged === false && !leaf.view.state.hash) { + el = sourceControlLeaf.view.containerEl.querySelector( + `div.changes div.nav-file-title[data-path='${path2}']` + ); + } else if (historyLeaf && leaf.view.state.hash) { + el = historyLeaf.view.containerEl.querySelector( + `div.nav-file-title[data-path='${path2}']` + ); + } + el == null ? void 0 : el.addClass("is-active"); + } else { + this.lastDiffViewState = void 0; + } + } + // region: displaying / formatting messages + displayMessage(message, timeout = 4 * 1e3) { + var _a2; + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + if (!this.settings.disablePopups) { + if (!this.settings.disablePopupsForNoChanges || !message.startsWith("No changes")) { + new import_obsidian31.Notice(message, 5 * 1e3); + } + } + this.log(message); + } + displayError(message, timeout = 10 * 1e3) { + var _a2; + if (message instanceof Errors.UserCanceledError) { + new import_obsidian31.Notice("Aborted"); + return; + } + message = message.toString(); + new import_obsidian31.Notice(message, timeout); + console.log(`git obsidian error: ${message}`); + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + } + log(message) { + console.log(`${this.manifest.id}: ` + message); + } +}; +/*! Bundled license information: + +ieee754/index.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) + +buffer/index.js: + (*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + *) + +safe-buffer/index.js: + (*! safe-buffer. MIT License. Feross Aboukhadijeh *) + +crc-32/crc32.js: + (*! crc32.js (C) 2014-present SheetJS -- http://sheetjs.com *) + +js-sha256/src/sha256.js: + (** + * [js-sha256]{@link https://github.com/emn178/js-sha256} + * + * @version 0.9.0 + * @author Chen, Yi-Cyuan [emn178@gmail.com] + * @copyright Chen, Yi-Cyuan 2014-2017 + * @license MIT + *) + +feather-icons/dist/feather.js: + (*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames + *) +*/ diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json new file mode 100644 index 0000000..3179c1e --- /dev/null +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -0,0 +1,10 @@ +{ + "author": "Vinzent", + "authorUrl": "https://github.com/Vinzent03", + "id": "obsidian-git", + "name": "Git", + "description": "Integrate Git version control with automatic backup and other advanced features.", + "isDesktopOnly": false, + "fundingUrl": "https://ko-fi.com/vinzent", + "version": "2.25.0" +} diff --git a/.obsidian/plugins/obsidian-git/styles.css b/.obsidian/plugins/obsidian-git/styles.css new file mode 100644 index 0000000..d5ad0cc --- /dev/null +++ b/.obsidian/plugins/obsidian-git/styles.css @@ -0,0 +1,562 @@ +@keyframes loading { + 0% { + transform: rotate(0deg); + } + + 100% { + transform: rotate(360deg); + } +} + +.workspace-leaf-content[data-type="git-view"] .button-border { + border: 2px solid var(--interactive-accent); + border-radius: var(--radius-s); +} + +.workspace-leaf-content[data-type="git-view"] .view-content { + padding: 0; +} + +.workspace-leaf-content[data-type="git-history-view"] .view-content { + padding: 0; +} + +.loading > svg { + animation: 2s linear infinite loading; + transform-origin: 50% 50%; + display: inline-block; +} + +.obsidian-git-center { + margin: auto; + text-align: center; + width: 50%; +} + +.obsidian-git-textarea { + display: block; + margin-left: auto; + margin-right: auto; +} + +.obsidian-git-center-button { + display: block; + margin: 20px auto; +} + +.tooltip.mod-left { + overflow-wrap: break-word; +} + +.tooltip.mod-right { + overflow-wrap: break-word; +} +.git-tools { + display: flex; + margin-left: auto; +} +.git-tools .type { + padding-left: var(--size-2-1); + display: flex; + align-items: center; + justify-content: center; + width: 11px; +} + +.git-tools .type[data-type="M"] { + color: orange; +} +.git-tools .type[data-type="D"] { + color: red; +} +.git-tools .buttons { + display: flex; +} +.git-tools .buttons > * { + padding: 0 0; + height: auto; +} + +.is-active .git-tools .buttons > * { + color: var(--nav-item-color-active); +} + +.git-author { + color: var(--text-accent); +} + +.git-date { + color: var(--text-accent); +} + +.git-ref { + color: var(--text-accent); +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-d-none { + display: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-wrapper { + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header { + background-color: var(--background-primary); + border-bottom: 1px solid var(--interactive-accent); + font-family: var(--font-monospace); + height: 35px; + padding: 5px 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header, +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + font-size: 14px; + margin-left: auto; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-added { + border: 1px solid #b4e2b4; + border-radius: 5px 0 0 5px; + color: #399839; + padding: 2px; + text-align: right; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted { + border: 1px solid #e9aeae; + border-radius: 0 5px 5px 0; + color: #c33; + margin-left: 1px; + padding: 2px; + text-align: left; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 15px; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name { + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper { + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + margin-bottom: 1em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse { + -webkit-box-pack: end; + -ms-flex-pack: end; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + cursor: pointer; + display: none; + font-size: 12px; + justify-content: flex-end; + padding: 4px 8px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected { + background-color: #c8e1ff; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input { + margin: 0 4px 0 0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-diff-table { + border-collapse: collapse; + font-family: Menlo, Consolas, monospace; + font-size: 13px; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-files-diff { + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-diff { + overflow-y: hidden; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff { + display: inline-block; + margin-bottom: -8px; + margin-right: -4px; + overflow-x: scroll; + overflow-y: hidden; + width: 50%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line { + padding: 0 8em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + white-space: nowrap; + width: 100%; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + padding: 0 4.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn { + word-wrap: normal; + background: none; + display: inline-block; + padding: 0; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + vertical-align: middle; + white-space: pre; + width: 100%; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + del { + background-color: #ffb6ba; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + del { + background-color: #8d232881; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + border-radius: 0.2em; + display: inline-block; + margin-top: -1px; + text-decoration: none; + vertical-align: middle; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + ins { + background-color: #97f295; + text-align: left; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + ins { + background-color: #1d921996; + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix { + word-wrap: normal; + background: none; + display: inline; + padding: 0; + white-space: pre; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num1 { + float: left; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num1, +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + padding: 0 0.5em; + text-overflow: ellipsis; + width: 3.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + float: right; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + position: absolute; + text-align: right; + width: 7.5em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after { + content: "\200b"; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + overflow: hidden; + padding: 0 0.5em; + position: absolute; + text-align: right; + text-overflow: ellipsis; + width: 4em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-diff-tbody tr { + position: relative; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after { + content: "\200b"; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + direction: rtl; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #fee8e9; + border-color: #e9aeae; +} + +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: #dfd; + border-color: #b4e2b4; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #521b1d83; + border-color: #691d1d73; +} + +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: rgba(30, 71, 30, 0.5); + border-color: #13501381; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-info { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); + color: var(--text-normal); +} + +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-del.d2h-change { + background-color: #fdf2d0; +} + +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-del.d2h-change { + background-color: #55492480; +} + +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-ins.d2h-change { + background-color: #ded; +} + +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-ins.d2h-change { + background-color: rgba(37, 78, 37, 0.418); +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper { + margin-bottom: 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a { + color: #3572b0; + text-decoration: none; +} + +.workspace-leaf-content[data-type="diff-view"] + .d2h-file-list-wrapper + a:visited { + color: #3572b0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header { + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title { + font-weight: 700; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + text-align: left; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list { + display: block; + list-style: none; + margin: 0; + padding: 0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li { + border-bottom: 1px solid var(--background-modifier-border); + margin: 0; + padding: 5px 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li:last-child { + border-bottom: none; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-file-switch { + cursor: pointer; + display: none; + font-size: 10px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-icon { + fill: currentColor; + margin-right: 10px; + vertical-align: middle; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted { + color: #c33; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-added { + color: #399839; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-changed { + color: #d0b44c; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-moved { + color: #3572b0; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-tag { + background-color: var(--background-primary); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 10px; + margin-left: 5px; + padding: 0 2px; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag { + border: 2px solid #c33; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-added-tag { + border: 1px solid #399839; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag { + border: 1px solid #d0b44c; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag { + border: 1px solid #3572b0; +} + +/* ====================== Line Authoring Information ====================== */ + +.cm-gutterElement.obs-git-blame-gutter { + /* Add background color to spacing inbetween and around the gutter for better aesthetics */ + border-width: 0px 2px 0.2px 2px; + border-style: solid; + border-color: var(--background-secondary); + background-color: var(--background-secondary); +} + +.cm-gutterElement.obs-git-blame-gutter > div, +.line-author-settings-preview { + /* delegate text color to settings */ + color: var(--obs-git-gutter-text); + font-family: monospace; + height: 100%; /* ensure, that age-based background color occupies entire parent */ + text-align: right; + padding: 0px 6px 0px 6px; + white-space: pre; /* Keep spaces and do not collapse them. */ +} + +@media (max-width: 800px) { + /* hide git blame gutter not to superpose text */ + .cm-gutterElement.obs-git-blame-gutter { + display: none; + } +} diff --git a/.obsidian/plugins/obsidian-icon-folder/data.json b/.obsidian/plugins/obsidian-icon-folder/data.json new file mode 100644 index 0000000..393d56a --- /dev/null +++ b/.obsidian/plugins/obsidian-icon-folder/data.json @@ -0,0 +1,38 @@ +{ + "settings": { + "migrated": 6, + "iconPacksPath": ".obsidian/icons", + "fontSize": 16, + "emojiStyle": "native", + "iconColor": null, + "recentlyUsedIcons": [ + "🧠", + "LiFileKey", + "👥", + "LiGlobe2", + "🕷" + ], + "recentlyUsedIconsSize": 5, + "rules": [], + "extraMargin": { + "top": 0, + "right": 4, + "bottom": 0, + "left": 0 + }, + "iconInTabsEnabled": false, + "iconInTitleEnabled": false, + "iconInTitlePosition": "above", + "iconInFrontmatterEnabled": false, + "iconInFrontmatterFieldName": "icon", + "iconColorInFrontmatterFieldName": "iconColor", + "iconsBackgroundCheckEnabled": false, + "iconsInNotesEnabled": true, + "iconsInLinksEnabled": true, + "iconIdentifier": ":", + "lucideIconPackType": "native", + "debugMode": false + }, + "Wiki": "LiGlobe2", + "Personajes": "👥" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-icon-folder/main.js b/.obsidian/plugins/obsidian-icon-folder/main.js new file mode 100644 index 0000000..d094d70 --- /dev/null +++ b/.obsidian/plugins/obsidian-icon-folder/main.js @@ -0,0 +1,7046 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ROLLUP +if you want to view the source visit the plugins github repository +*/ + +'use strict'; + +var obsidian = require('obsidian'); +var view = require('@codemirror/view'); +var state = require('@codemirror/state'); +var language = require('@codemirror/language'); + +/****************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) { + var e = new Error(message); + return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e; +}; + +const iconPacks$1 = { + faBrands: { + name: 'font-awesome-brands', + displayName: 'FontAwesome Brands', + path: 'fontawesome-free-6.5.1-web/svgs/brands/', + downloadLink: 'https://github.com/FortAwesome/Font-Awesome/releases/download/6.5.1/fontawesome-free-6.5.1-web.zip', + }, + faRegular: { + name: 'font-awesome-regular', + displayName: 'FontAwesome Regular', + path: 'fontawesome-free-6.5.1-web/svgs/regular/', + downloadLink: 'https://github.com/FortAwesome/Font-Awesome/releases/download/6.5.1/fontawesome-free-6.5.1-web.zip', + }, + faSolid: { + name: 'font-awesome-solid', + displayName: 'FontAwesome Solid', + path: 'fontawesome-free-6.5.1-web/svgs/solid/', + downloadLink: 'https://github.com/FortAwesome/Font-Awesome/releases/download/6.5.1/fontawesome-free-6.5.1-web.zip', + }, + remixIcons: { + name: 'remix-icons', + displayName: 'Remix Icons', + path: '', + downloadLink: 'https://github.com/Remix-Design/RemixIcon/releases/download/v4.2.0/RemixIcon_Svg_v4.2.0.zip', + }, + iconBrew: { + name: 'icon-brew', + displayName: 'Icon Brew', + path: '', + downloadLink: 'https://github.com/FlorianWoelki/obsidian-iconize/raw/main/iconPacks/icon-brew.zip', + }, + /** @source https://simpleicons.org/ */ + simpleIcons: { + name: 'simple-icons', + displayName: 'Simple Icons', + path: 'simple-icons-11.10.0/icons/', + downloadLink: 'https://github.com/simple-icons/simple-icons/archive/refs/tags/11.10.0.zip', + }, + lucide: { + name: 'lucide-icons', + displayName: 'Lucide', + path: '', + downloadLink: 'https://github.com/lucide-icons/lucide/releases/download/0.363.0/lucide-icons-0.363.0.zip', + }, + tablerIcons: { + name: 'tabler-icons', + displayName: 'Tabler Icons', + path: 'svg', + downloadLink: 'https://github.com/tabler/tabler-icons/releases/download/v3.1.0/tabler-icons-3.1.0.zip', + }, + /** @source https://boxicons.com/ */ + boxicons: { + name: 'boxicons', + displayName: 'Boxicons', + path: 'svg', + downloadLink: 'https://github.com/FlorianWoelki/obsidian-iconize/raw/main/iconPacks/boxicons.zip', + }, + /** @source http://nagoshiashumari.github.io/Rpg-Awesome/ */ + rpgAwesome: { + name: 'rpg-awesome', + displayName: 'RPG Awesome', + path: '', + downloadLink: 'https://github.com/FlorianWoelki/obsidian-iconize/raw/main/iconPacks/rpg-awesome.zip', + }, + /** @source https://coolicons.cool/ */ + coolicons: { + name: 'coolicons', + displayName: 'Coolicons', + path: 'cooliocns SVG', + downloadLink: 'https://github.com/krystonschwarze/coolicons/releases/download/v4.1/coolicons.v4.1.zip', + }, + /** @source https://feathericons.com/ */ + feathericons: { + name: 'feather-icons', + displayName: 'Feather Icons', + path: 'feather-4.29.1/icons/', + downloadLink: 'https://github.com/feathericons/feather/archive/refs/tags/v4.29.1.zip', + }, + /** @source https://github.com/primer/octicons */ + octicons: { + name: 'octicons', + displayName: 'Octicons', + path: 'octicons-19.8.0/icons/', + downloadLink: 'https://github.com/primer/octicons/archive/refs/tags/v19.8.0.zip', + }, +}; +/** + * Returns a possible path to the icon pack. + * @param name String of the icon pack name. + * @returns String of the path to the icon pack or undefined if the icon pack does not + * exist. + */ +const getExtraPath = (iconPackName) => { + var _a; + const path = (_a = Object.values(iconPacks$1).find((iconPack) => iconPack.name === iconPackName)) === null || _a === void 0 ? void 0 : _a.path; + return (path === null || path === void 0 ? void 0 : path.length) === 0 ? undefined : path; +}; + +// This library file does not include any other dependency and is a standalone file that +// only include utility functions for manipulating or extracting svg information. +/** + * Extracts an SVG string from a given input string and returns a cleaned up and + * formatted SVG string. + * @param svgString SVG string to extract from. + * @returns Cleaned up and formatted SVG string. + */ +const extract = (svgString) => { + var _a, _b; + // Removes unnecessary spaces and newlines. + svgString = svgString.replace(/(\r\n|\n|\r)/gm, ''); + svgString = svgString.replace(/>\s+<'); + // Create a parser for better parsing of HTML. + const parser = new DOMParser(); + const svg = parser + .parseFromString(svgString, 'text/html') + .querySelector('svg'); + // Removes `width` and `height` from the `style` attribute. + if (svg.hasAttribute('style')) { + svg.style.width = ''; + svg.style.height = ''; + } + // Add `viewbox`, if it is not already a attribute. + if (svg.viewBox.baseVal.width === 0 && svg.viewBox.baseVal.height === 0) { + const width = (_a = svg.width.baseVal.value) !== null && _a !== void 0 ? _a : 16; + const height = (_b = svg.height.baseVal.value) !== null && _b !== void 0 ? _b : 16; + svg.viewBox.baseVal.width = width; + svg.viewBox.baseVal.height = height; + } + if (!svg.hasAttribute('fill')) { + svg.setAttribute('fill', 'currentColor'); + } + const possibleTitle = svg.querySelector('title'); + if (possibleTitle) { + possibleTitle.remove(); + } + svg.setAttribute('width', '16px'); + svg.setAttribute('height', '16px'); + return svg.outerHTML; +}; +/** + * Sets the font size of an SVG string by modifying its width and/or height attributes. + * The font size will be always set in pixels. + * @param svgString SVG string to modify. + * @param fontSize Font size in pixels to set. + * @returns Modified SVG string. + */ +const setFontSize = (svgString, fontSize) => { + const widthRe = new RegExp(/width="[\d.]+(px)?"/); + const heightRe = new RegExp(/height="[\d.]+(px)?"/); + if (svgString.match(widthRe)) { + svgString = svgString.replace(widthRe, `width="${fontSize}px"`); + } + if (svgString.match(heightRe)) { + svgString = svgString.replace(heightRe, `height="${fontSize}px"`); + } + return svgString; +}; +/** + * Replaces the fill or stroke color of an SVG string with a given color. + * @param svgString SVG string to modify. + * @param color Color to set. Defaults to 'currentColor'. + * @returns The modified SVG string. + */ +const colorize = (svgString, color) => { + if (!color) { + color = 'currentColor'; + } + const parser = new DOMParser(); + // Tries to parse the string into a HTML node. + const parsedNode = parser.parseFromString(svgString, 'text/html'); + const svg = parsedNode.querySelector('svg'); + if (svg) { + if (svg.hasAttribute('fill') && svg.getAttribute('fill') !== 'none') { + svg.setAttribute('fill', color); + } + else if (svg.hasAttribute('stroke') && + svg.getAttribute('stroke') !== 'none') { + svg.setAttribute('stroke', color); + } + return svg.outerHTML; + } + return svgString; +}; +var svg = { + extract, + colorize, + setFontSize, +}; + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function commonjsRequire(path) { + throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.'); +} + +var jszip_min = {exports: {}}; + +/*! + +JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/main/LICENSE +*/ +jszip_min.exports; + +(function (module, exports) { + !function(e){module.exports=e();}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t="function"==typeof commonjsRequire&&commonjsRequire;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h);}return o[r].exports}for(var l="function"==typeof commonjsRequire&&commonjsRequire,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l};},{"./support":30,"./utils":32}],2:[function(e,t,r){var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i;}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o;},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate");},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){var n=e("./utils");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return -1^e}(0|t,e,e.length,0):0};},{"./utils":32}],5:[function(e,t,r){r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null;},{}],6:[function(e,t,r){var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n};},{lie:37}],7:[function(e,t,r){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={};}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1);},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0);},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null;},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta});};},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})};},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){function A(e,t){var r,n="";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),c=I.transformTo("string",O.utf8encode(h.name)),d=h.comment,p=I.transformTo("string",s(d)),m=I.transformTo("string",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(n,4)+f+b+p}}var I=e("../utils"),i=e("../stream/GenericWorker"),O=e("../utf8"),B=e("../crc32"),R=e("../signature");function s(e,t,r,n){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[];}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}));},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}});}else this.accumulate=!0;},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null;},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i;},{"../utils":32}],19:[function(e,t,r){var n=e("./Uint8ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){var n=e("./DataReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){var n=e("./ArrayReader");function i(e){n.call(this,e);}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i;},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)};},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b";},{}],24:[function(e,t,r){var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e;}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta});},t.exports=s;},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0);}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e);},t.exports=s;},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0);}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length;}i.prototype.processChunk.call(this,e);},t.exports=s;},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat();},function(e){t.error(e);});}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null;},s.prototype.resume=function(){return !!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0));},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return !1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t);}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s;},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null;}n.prototype={push:function(e){this.emit("data",e);},end:function(){if(this.isFinished)return !1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0;}catch(e){this.emit("error",e);}return !0},error:function(e){return !this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[];},emit:function(e,t){if(this._listeners[e])for(var r=0;r "+e:e}},t.exports=n;},{}],29:[function(e,t,r){var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),u=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter");}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on("data",function(e,t){n.push(e),o&&o(t);}).on("error",function(e){n=[],r(e);}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n);}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length);}else t=this.leftOver.concat(t);this.leftOver=null;}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta});},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null);},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta});},s.Utf8EncodeWorker=l;},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,a){var o=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),u=e("./external");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0);},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4));}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i);}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t};},{"./common":41}],43:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e;}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return -1^e};},{}],46:[function(e,t,r){var h,c=e("../utils/common"),u=e("./trees"),d=e("./adler32"),p=e("./crc32"),n=e("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return (e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0));}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm);}function U(e,t){e.pending_buf[e.pending++]=t;}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t;}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f;}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else {var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1;}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73);}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91);}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103);}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead);}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else {if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0;}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){e.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0;}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30;}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3;}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else {if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2;}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3;}else {for(z=_+7;l>>=_)),u>>>=7,l-=7;}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k;}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v;}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra;}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window;}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]];}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255;}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o));}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8);}(e);};},{"../utils/common":41}],53:[function(e,t,r){t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0;};},{}],54:[function(e,t,r){(function(e){!function(r,n){if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i="[object process]"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e);});}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1;},r.postMessage("","*"),r.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",r.addEventListener?r.addEventListener("message",d,!1):r.attachEvent("onmessage",d),function(e){r.postMessage(a+e,"*");}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data);},function(e){t.port2.postMessage(e);}):l&&"onreadystatechange"in l.createElement("script")?(s=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null;},s.appendChild(t);}):function(e){setTimeout(c,0,e);},e.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r __awaiter(void 0, void 0, void 0, function* () { + const fetched = yield obsidian.requestUrl({ url }); + const bytes = fetched.arrayBuffer; + return bytes; +}); +/** + * Transforms a JSZip file into a File object. + * @param file JSZip file to transform. + * @returns File object of the JSZip file. + */ +const getFileFromJSZipFile = (file) => __awaiter(void 0, void 0, void 0, function* () { + const fileData = yield file.async('blob'); + const filename = file.name.split('/').pop(); + return new File([fileData], filename); +}); +/** + * Read a zip file and return the files inside it. + * @param bytes ArrayBuffer of the zip file. + * @param extraPath String path to filter the files inside the zip file. This can be used + * to set an extra path (like a directory inside the zip file) to filter the files. + * @returns Array of loaded files inside the zip file. + */ +const readZipFile = (bytes_1, ...args_1) => __awaiter(void 0, [bytes_1, ...args_1], void 0, function* (bytes, extraPath = '') { + const unzippedFiles = yield jszip_minExports.loadAsync(bytes); + return Promise.resolve(unzippedFiles).then((unzipped) => { + if (!Object.keys(unzipped.files).length) { + return Promise.reject('No file was found'); + } + const files = []; + // Regex for retrieving the files inside the zip file or inside the directory of a + // zip file. + const regex = new RegExp(extraPath + '(.+)\\.svg', 'g'); + Object.entries(unzippedFiles.files).forEach(([_, v]) => { + const matched = v.name.match(regex); + if (!v.dir && matched && matched.length > 0) { + files.push(v); + } + }); + return files; + }); +}); + +const PLUGIN_NAME = 'iconize'; +const TITLE_ICON_CLASS = 'iconize-title-icon'; +const INLINE_TITLE_WRAPPER_CLASS = 'iconize-inline-title-wrapper'; +/** + * The name of the attribute that is used to store the icon name in the node. + * The value of this attributes contains the prefix and the name of the icon. + */ +const ICON_ATTRIBUTE_NAME = 'data-icon'; +var config = { + PLUGIN_NAME, + TITLE_ICON_CLASS, + INLINE_TITLE_WRAPPER_CLASS, + ICON_ATTRIBUTE_NAME, +}; + +var LoggerPrefix; +(function (LoggerPrefix) { + LoggerPrefix["Outline"] = "Outline"; +})(LoggerPrefix || (LoggerPrefix = {})); +class ConsoleLogger { + constructor(projectPrefix, enabled = false) { + this.logLevels = { + log: { label: 'LOG:' }, + info: { label: 'INFO:' }, + warn: { label: 'WARN:' }, + error: { label: 'ERROR:' }, + }; + this.projectPrefix = projectPrefix; + this.enabled = enabled; + } + formatMessage(level, message, prefix, optionalParams) { + const timestamp = new Date().toISOString(); + const { label } = this.logLevels[level]; + const prefixAsStr = !prefix ? '' : `/${prefix}`; + return [ + `${this.projectPrefix}${prefixAsStr}: [${timestamp}] ${label} ${message}`, + ...optionalParams, + ]; + } + log(message, prefix, ...optionalParams) { + if (this.enabled) { + console.log(...this.formatMessage('log', message, prefix, optionalParams)); + } + } + info(message, prefix, ...optionalParams) { + if (this.enabled) { + console.info(...this.formatMessage('info', message, prefix, optionalParams)); + } + } + warn(message, prefix, ...optionalParams) { + if (this.enabled) { + console.warn(...this.formatMessage('warn', message, prefix, optionalParams)); + } + } + error(message, prefix, ...optionalParams) { + if (this.enabled) { + console.error(...this.formatMessage('error', message, prefix, optionalParams)); + } + } + toggleLogging(enabled) { + this.enabled = enabled; + } +} +const logger = new ConsoleLogger(config.PLUGIN_NAME); + +const LUCIDE_ICON_PACK_NAME = 'lucide-icons'; +let path; +const getPath = () => { + return path; +}; +const setPath = (newPath) => { + if (newPath === 'plugins/obsidian-icon-folder/icons') { + newPath = '.obsidian/plugins/obsidian-icon-folder/icons'; + new obsidian.Notice(`[${config.PLUGIN_NAME}] Due to a change in version v1.2.2, the icon pack folder changed. Please change it in the settings to not be directly in /plugins.`, 8000); + } + path = newPath; +}; +let preloadedIcons = []; +const getPreloadedIcons = () => { + return preloadedIcons; +}; +const resetPreloadedIcons = () => { + preloadedIcons = []; +}; +let iconPacks = []; +const addLucideIconsPack = (plugin) => { + iconPacks.push({ + name: LUCIDE_ICON_PACK_NAME, + prefix: 'Li', + custom: false, + icons: plugin.doesUseNativeLucideIconPack() + ? obsidian.getIconIds() + .map((iconId) => iconId.replace(/^lucide-/, '')) + .map((iconId) => { + const iconEl = obsidian.getIcon(iconId); + iconEl.removeClass('svg-icon'); // Removes native `svg-icon` class. + return { + name: getNormalizedName(iconId), + filename: iconId, + prefix: 'Li', + svgElement: iconEl === null || iconEl === void 0 ? void 0 : iconEl.outerHTML, + svgContent: iconEl === null || iconEl === void 0 ? void 0 : iconEl.innerHTML, + svgViewbox: '', + iconPackName: LUCIDE_ICON_PACK_NAME, + }; + }) + : [], + }); +}; +const addCustomLucideIconPack = (plugin) => __awaiter(void 0, void 0, void 0, function* () { + const iconPackIndex = iconPacks.findIndex((iconPack) => iconPack.name === LUCIDE_ICON_PACK_NAME); + if (iconPackIndex > -1) { + iconPacks.splice(iconPackIndex); + } + const iconPack = iconPacks$1['lucide']; + const arrayBuffer = yield downloadZipFile(iconPack.downloadLink); + yield createZipFile(plugin, `${iconPack.name}.zip`, arrayBuffer); + yield registerIconPack(iconPack.name, arrayBuffer); +}); +const removeCustomLucideIconPack = (plugin) => __awaiter(void 0, void 0, void 0, function* () { + const iconPackIndex = iconPacks.findIndex((iconPack) => iconPack.name === LUCIDE_ICON_PACK_NAME); + if (iconPackIndex > -1) { + iconPacks.splice(iconPackIndex); + } + yield deleteIconPack(plugin, LUCIDE_ICON_PACK_NAME); +}); +const moveIconPackDirectories = (plugin, from, to) => __awaiter(void 0, void 0, void 0, function* () { + // Tries to move all icon packs to the new folder. + for (let i = 0; i < iconPacks.length; i++) { + const iconPack = iconPacks[i]; + if (yield plugin.app.vault.adapter.exists(`${from}/${iconPack.name}`)) { + // Tries to create a new directory in the new path. + const doesDirExist = yield createDirectory(plugin, iconPack.name); + if (doesDirExist) { + new obsidian.Notice(`Directory with name ${iconPack.name} already exists.`); + continue; + } + } + new obsidian.Notice(`Moving ${iconPack.name}...`); + // Move the zip file. + if (yield plugin.app.vault.adapter.exists(`${from}/${iconPack.name}.zip`)) { + yield plugin.app.vault.adapter.copy(`${from}/${iconPack.name}.zip`, `${to}/${iconPack.name}.zip`); + } + // Move all other files inside of the iconpack directory. + const filesInDirectory = yield getFilesInDirectory(plugin, `${from}/${iconPack.name}`); + for (const file of filesInDirectory) { + const fileName = file.split('/').pop(); + yield plugin.app.vault.adapter.copy(`${from}/${iconPack.name}/${fileName}`, `${to}/${iconPack.name}/${fileName}`); + } + new obsidian.Notice(`...moved ${iconPack.name}`); + } + // Removes all the existing icon packs in the `from` directory. + for (let i = 0; i < iconPacks.length; i++) { + const iconPack = iconPacks[i]; + if (yield plugin.app.vault.adapter.exists(`${from}/${iconPack.name}`)) { + yield plugin.app.vault.adapter.rmdir(`${from}/${iconPack.name}`, true); + } + } + // Remove root directory that contains all the icon packs. + if (!to.startsWith(from)) { + yield plugin.app.vault.adapter.rmdir(`${from}`, true); + } +}); +const createCustomIconPackDirectory = (plugin, dir) => __awaiter(void 0, void 0, void 0, function* () { + yield createDirectory(plugin, dir); + const prefix = createIconPackPrefix(dir); + iconPacks.push({ name: dir, icons: [], prefix, custom: true }); +}); +const deleteIconPack = (plugin, dir) => __awaiter(void 0, void 0, void 0, function* () { + iconPacks = iconPacks.filter((iconPack) => iconPack.name !== dir); + // Check for the icon pack directory and delete it. + if (yield plugin.app.vault.adapter.exists(`${path}/${dir}`)) { + yield plugin.app.vault.adapter.rmdir(`${path}/${dir}`, true); + } + // Check for the icon pack zip file and delete it. + if (yield plugin.app.vault.adapter.exists(`${path}/${dir}.zip`)) { + yield plugin.app.vault.adapter.remove(`${path}/${dir}.zip`); + } +}); +const doesIconPackExist = (plugin, iconPackName) => { + return plugin.app.vault.adapter.exists(`${path}/${iconPackName}`); +}; +const createDirectory = (plugin, dir) => __awaiter(void 0, void 0, void 0, function* () { + const doesDirExist = yield plugin.app.vault.adapter.exists(`${path}/${dir}`); + if (!doesDirExist) { + yield plugin.app.vault.adapter.mkdir(`${path}/${dir}`); + } + return doesDirExist; +}); +const getNormalizedName = (s) => { + return s + .split(/[ -]|[ _]/g) + .map((part) => part.charAt(0).toUpperCase() + part.slice(1)) + .join(''); +}; +// export const normalizeFileName = async (plugin: Plugin, oldPath: string) => { +// const fileName = oldPath.split('/').pop(); +// const newPath = oldPath.substring(0, oldPath.indexOf(fileName)) + getNormalizedName(fileName); +// await plugin.app.vault.adapter.rename(oldPath, newPath); +// }; +const createZipFile = (plugin, filename, buffer) => __awaiter(void 0, void 0, void 0, function* () { + yield plugin.app.vault.adapter.writeBinary(`${path}/${filename}`, buffer); +}); +const createFile = (plugin, iconPackName, filename, content, absoluteFilename) => __awaiter(void 0, void 0, void 0, function* () { + const normalizedFilename = getNormalizedName(filename); + const exists = yield plugin.app.vault.adapter.exists(`${path}/${iconPackName}/${normalizedFilename}`); + if (exists) { + const folderSplit = absoluteFilename.split('/'); + if (folderSplit.length >= 2) { + const folderName = folderSplit[folderSplit.length - 2]; + const newFilename = folderName + normalizedFilename; + yield plugin.app.vault.adapter.write(`${path}/${iconPackName}/${newFilename}`, content); + logger.info(`Renamed old file ${normalizedFilename} to ${newFilename} due to duplication`); + new obsidian.Notice(`[${config.PLUGIN_NAME}] Renamed ${normalizedFilename} to ${newFilename} to avoid duplication.`, 8000); + } + else { + logger.warn(`Could not create icons with duplicated file names (file name: ${normalizedFilename})`); + new obsidian.Notice(`[${config.PLUGIN_NAME}] Could not create duplicated icon name (${normalizedFilename})`, 8000); + } + } + else { + yield plugin.app.vault.adapter.write(`${path}/${iconPackName}/${normalizedFilename}`, content); + } +}); +const createDefaultDirectory = (plugin) => __awaiter(void 0, void 0, void 0, function* () { + yield createDirectory(plugin, ''); +}); +const getAllIconPacks = () => { + return iconPacks; +}; +const getFilesInDirectory = (plugin, dir) => __awaiter(void 0, void 0, void 0, function* () { + if (!(yield plugin.app.vault.adapter.exists(dir))) { + return []; + } + return (yield plugin.app.vault.adapter.list(dir)).files; +}); +const validIconName = /^[(A-Z)|(0-9)]/; +const svgViewboxRegex = /viewBox="([^"]*)"/g; +const svgContentRegex = /(.*?)<\/svg>/g; +const generateIcon = (iconPackName, iconName, content) => { + if (content.length === 0) { + return; + } + content = content.replace(/(\r\n|\n|\r)/gm, ''); + content = content.replace(/>\s+<'); + const normalizedName = iconName.charAt(0).toUpperCase() + iconName.substring(1); + if (!validIconName.exec(normalizedName)) { + logger.info(`Skipping icon with invalid name: ${iconName}`); + return null; + } + const svgViewboxMatch = content.match(svgViewboxRegex); + let svgViewbox = ''; + if (svgViewboxMatch && svgViewboxMatch.length !== 0) { + svgViewbox = svgViewboxMatch[0]; + } + const svgContentMatch = content.match(svgContentRegex); + if (!svgContentMatch) { + logger.info(`Skipping icon with invalid svg content: ${iconName}`); + return null; + } + const svgContent = svgContentMatch.map((val) => val.replace(/<\/?svg>/g, '').replace(//g, ''))[0]; + const iconPackPrefix = createIconPackPrefix(iconPackName); + const icon = { + name: normalizedName.split('.svg')[0], + prefix: iconPackPrefix, + iconPackName, + filename: iconName, + svgContent, + svgViewbox, + svgElement: svg.extract(content), + }; + return icon; +}; +const createIconPackPrefix = (iconPackName) => { + if (iconPackName.includes('-')) { + const splitted = iconPackName.split('-'); + let result = splitted[0].charAt(0).toUpperCase(); + for (let i = 1; i < splitted.length; i++) { + result += splitted[i].charAt(0).toLowerCase(); + } + return result; + } + return (iconPackName.charAt(0).toUpperCase() + iconPackName.charAt(1).toLowerCase()); +}; +const loadUsedIcons = (plugin, icons) => __awaiter(void 0, void 0, void 0, function* () { + const iconPacks = (yield listPath(plugin)).folders.map((iconPack) => iconPack.split('/').pop()); + if (plugin.doesUseNativeLucideIconPack()) { + iconPacks.push(LUCIDE_ICON_PACK_NAME); + } + for (let i = 0; i < icons.length; i++) { + const entry = icons[i]; + if (!entry) { + continue; + } + yield loadIcon(plugin, iconPacks, entry); + } +}); +const listPath = (plugin, listPath) => { + return plugin.app.vault.adapter.list(listPath !== null && listPath !== void 0 ? listPath : path); +}; +const getIconPackNameByPrefix = (prefix) => { + var _a; + return (_a = iconPacks.find((iconPack) => iconPack.prefix === prefix)) === null || _a === void 0 ? void 0 : _a.name; +}; +const nextIdentifier = (iconName) => { + return iconName.substring(1).search(/[(A-Z)|(0-9)]/) + 1; +}; +const loadIcon = (plugin, iconPackNames, iconName) => __awaiter(void 0, void 0, void 0, function* () { + const nextLetter = nextIdentifier(iconName); + const prefix = iconName.substring(0, nextLetter); + const name = iconName.substring(nextLetter); + const iconPack = iconPackNames.find((folder) => { + const folderPrefix = createIconPackPrefix(folder); + return prefix === folderPrefix; + }); + if (!iconPack) { + // Ignore because background check automatically adds the icons and icon pack + // directories. + if (!plugin.getSettings().iconsBackgroundCheckEnabled) { + new obsidian.Notice(`Seems like you do not have an icon pack installed. (${iconName})`, 5000); + } + return; + } + if (iconPack === LUCIDE_ICON_PACK_NAME && + plugin.doesUseNativeLucideIconPack()) { + // Native lucide icons already exist for Obsidian. + const lucideIcons = iconPacks.find((iconPack) => iconPack.name === LUCIDE_ICON_PACK_NAME); + const icon = lucideIcons.icons.find((icon) => icon.name === name); + if (!icon) { + logger.warn(`Icon ${icon} does not exist in the native Lucide icon pack.`); + return; + } + preloadedIcons.push(icon); + return; + } + const fullPath = path + '/' + iconPack + '/' + name + '.svg'; + if (!(yield plugin.app.vault.adapter.exists(fullPath))) { + logger.info(`Icon with name '${name}' was not found (full path: ${fullPath})`); + return; + } + const content = yield plugin.app.vault.adapter.read(fullPath); + const icon = generateIcon(iconPack, name, content); + preloadedIcons.push(icon); +}); +const initIconPacks = (plugin) => __awaiter(void 0, void 0, void 0, function* () { + // Remove the beginning slash because paths which start with `/` are the same as without + // a slash. + if (path.startsWith('/')) { + path = path.slice(1); + } + const loadedIconPacks = yield plugin.app.vault.adapter.list(path); + // Extract all zip files which will be downloaded icon packs. + const zipFiles = {}; + for (let i = 0; i < loadedIconPacks.files.length; i++) { + const fileName = loadedIconPacks.files[i]; + if (fileName.endsWith('.zip')) { + const arrayBuffer = yield plugin.app.vault.adapter.readBinary(fileName); + const files = yield readZipFile(arrayBuffer); + const iconPackName = fileName.split('/').pop().split('.zip')[0]; + zipFiles[iconPackName] = files; + } + } + // Check for custom-made icon packs. + for (let i = 0; i < loadedIconPacks.folders.length; i++) { + const folderName = loadedIconPacks.folders[i].split('/').pop(); + // Continue if the icon pack does have a zip file. + if (zipFiles[folderName]) { + continue; + } + const files = yield getFilesInDirectory(plugin, `${path}/${folderName}`); + const loadedIcons = []; + // Convert files into loaded svgs. + for (let j = 0; j < files.length; j++) { + const iconNameRegex = files[j].match(new RegExp(path + '/' + folderName + '/(.*)')); + const iconName = getNormalizedName(iconNameRegex[1]); + const iconContent = yield plugin.app.vault.adapter.read(files[j]); + const icon = generateIcon(folderName, iconName, iconContent); + if (icon) { + loadedIcons.push(icon); + } + } + const prefix = createIconPackPrefix(folderName); + iconPacks.push({ + name: folderName, + icons: loadedIcons, + prefix, + custom: true, + }); + logger.info(`Loaded icon pack '${folderName}' (amount of icons: ${loadedIcons.length})`); + } + // Extract all files from the zip files. + for (const zipFile in zipFiles) { + const files = zipFiles[zipFile]; + const loadedIcons = yield getLoadedIconsFromZipFile(zipFile, files); + const prefix = createIconPackPrefix(zipFile); + if (zipFile === LUCIDE_ICON_PACK_NAME && + !plugin.doesUseCustomLucideIconPack()) { + continue; + } + iconPacks.push({ + name: zipFile, + icons: loadedIcons, + prefix, + custom: false, + }); + logger.info(`Loaded icon pack '${zipFile}' (amount of icons: ${loadedIcons.length})`); + } +}); +const getLoadedIconsFromZipFile = (iconPackName, files) => __awaiter(void 0, void 0, void 0, function* () { + const loadedIcons = []; + const extraPath = getExtraPath(iconPackName); + for (let j = 0; j < files.length; j++) { + // Checks if the icon pack has an extra path. Also ignores files which do not start + // with the extra path. + if (extraPath && !files[j].name.startsWith(extraPath)) { + continue; + } + const file = yield getFileFromJSZipFile(files[j]); + const iconContent = yield file.text(); + const iconName = getNormalizedName(file.name); + const icon = generateIcon(iconPackName, iconName, iconContent); + if (icon) { + loadedIcons.push(icon); + } + } + return loadedIcons; +}); +const addIconToIconPack = (iconPackName, iconName, iconContent) => { + // Normalize the icon name to remove `-` or `_` in the name. + iconName = getNormalizedName(iconName); + const icon = generateIcon(iconPackName, iconName, iconContent); + if (!icon) { + logger.warn(`Icon could not be generated (icon: ${iconName}, content: ${iconContent})`); + return undefined; + } + const iconPack = iconPacks.find((iconPack) => iconPack.name === iconPackName); + if (!iconPack) { + logger.warn(`Iconpack with name '${iconPackName}' was not found`); + return undefined; + } + iconPack.icons.push(icon); + return icon; +}; +const removeIconFromIconPackDirectory = (plugin, iconPackName, iconName) => { + const iconPack = iconPacks.find((iconPack) => iconPack.name === iconPackName); + // Checks if icon pack is custom-made. + if (!iconPack.custom) { + return plugin.app.vault.adapter.rmdir(`${path}/${iconPackName}/${iconName}.svg`, true); + } +}; +const extractIconToIconPack = (plugin, icon, iconContent) => __awaiter(void 0, void 0, void 0, function* () { + const doesIconPackDirExist = yield plugin.app.vault.adapter.exists(`${path}/${icon.iconPackName}`); + if (!doesIconPackDirExist) { + yield plugin.app.vault.adapter.mkdir(`${path}/${icon.iconPackName}`); + } + const doesIconFileExists = yield plugin.app.vault.adapter.exists(`${path}/${icon.iconPackName}/${icon.name}.svg`); + if (!doesIconFileExists) { + yield createFile(plugin, icon.iconPackName, `${icon.name}.svg`, iconContent); + } +}); +const getAllLoadedIconNames = () => { + return iconPacks.reduce((total, iconPack) => { + total.push(...iconPack.icons); + return total; + }, []); +}; +const registerIconPack = (name, arrayBuffer) => __awaiter(void 0, void 0, void 0, function* () { + const files = yield readZipFile(arrayBuffer); + const loadedIcons = yield getLoadedIconsFromZipFile(name, files); + const prefix = createIconPackPrefix(name); + iconPacks.push({ name, icons: loadedIcons, prefix, custom: false }); + logger.info(`Loaded icon pack ${name} (amount of icons: ${loadedIcons.length})`); +}); +const doesIconExists = (iconName) => { + const icons = getAllLoadedIconNames(); + return (icons.find((icon) => icon.name === iconName || icon.prefix + icon.name === iconName) !== undefined); +}; +const getIconsFromIconPack = (iconPackName) => { + return iconPacks.find((iconPack) => iconPack.name === iconPackName); +}; +const getIconFromIconPack = (iconPackName, iconPrefix, iconName) => { + const foundIcon = preloadedIcons.find((icon) => icon.prefix.toLowerCase() === iconPrefix.toLowerCase() && + icon.name.toLowerCase() === iconName.toLowerCase()); + if (foundIcon) { + return foundIcon; + } + const iconPack = iconPacks.find((iconPack) => iconPack.name === iconPackName); + if (!iconPack) { + return undefined; + } + return iconPack.icons.find((icon) => getNormalizedName(icon.name) === iconName); +}; +const getSvgFromLoadedIcon = (iconPrefix, iconName) => { + let icon = ''; + let foundIcon = preloadedIcons.find((icon) => icon.prefix.toLowerCase() === iconPrefix.toLowerCase() && + icon.name.toLowerCase() === iconName.toLowerCase()); + if (!foundIcon) { + iconPacks.forEach((iconPack) => { + const icon = iconPack.icons.find((icon) => { + return (icon.prefix.toLowerCase() === iconPrefix.toLowerCase() && + getNormalizedName(icon.name).toLowerCase() === iconName.toLowerCase()); + }); + if (icon) { + foundIcon = icon; + } + }); + } + if (foundIcon) { + icon = foundIcon.svgElement; + } + return icon; +}; + +/*! Copyright Twitter Inc. and other contributors. Licensed under MIT */ +var twemoji=function(){var twemoji={base:"https://cdn.jsdelivr.net/gh/jdecked/twemoji@15.1.0/assets/",ext:".png",size:"72x72",className:"emoji",convert:{fromCodePoint:fromCodePoint,toCodePoint:toCodePoint},onerror:function onerror(){if(this.parentNode){this.parentNode.replaceChild(createText(this.alt,false),this);}},parse:parse,replace:replace,test:test},escaper={"&":"&","<":"<",">":">","'":"'",'"':"""},re=/(?:\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c[\udffc-\udfff]|\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c[\udffb\udffd-\udfff]|\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c[\udffb-\udffd\udfff]|\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c[\udffb-\udffe]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d\udc8f\ud83c[\udffb-\udfff]|\ud83d\udc91\ud83c[\udffb-\udfff]|\ud83e\udd1d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d\udc8f\udc91]|\ud83e\udd1d)|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf-\uddb3\uddbc\uddbd])(?:\u200d\u27a1\ufe0f)?|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f(?:\u200d\u27a1\ufe0f)?)|(?:\ud83c[\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd-\uddcf\uddd4\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f(?:\u200d\u27a1\ufe0f)?|(?:\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2|\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83d\ude36\u200d\ud83c\udf2b\ufe0f|\u26d3\ufe0f\u200d\ud83d\udca5|\u2764\ufe0f\u200d\ud83d\udd25|\u2764\ufe0f\u200d\ud83e\ude79|\ud83c\udf44\u200d\ud83d\udfeb|\ud83c\udf4b\u200d\ud83d\udfe9|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc26\u200d\ud83d\udd25|\ud83d\udc3b\u200d\u2744\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83d\ude2e\u200d\ud83d\udca8|\ud83d\ude35\u200d\ud83d\udcab|\ud83d\ude42\u200d\u2194\ufe0f|\ud83d\ude42\u200d\u2195\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddd1\u200d\ud83e\uddd2|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b|\ud83d\udc26\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\udd70\udd71\udd7e\udd7f\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|\ud83e\udef0|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c\udfc3|\ud83d\udeb6|\ud83e\uddce)(?:\ud83c[\udffb-\udfff])?(?:\u200d\u27a1\ufe0f)?|(?:\ud83c[\udf85\udfc2\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4\udeb5\udec0\udecc]|\ud83e[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd\uddcf\uddd1-\udddd\udec3-\udec5\udef1-\udef8]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udc8e\udc90\udc92-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5-\uded7\udedc-\udedf\udeeb\udeec\udef4-\udefc\udfe0-\udfeb\udff0]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78-\uddb4\uddb7\uddba\uddbc-\uddcc\uddd0\uddde-\uddff\ude70-\ude7c\ude80-\ude88\ude90-\udebd\udebf-\udec2\udece-\udedb\udee0-\udee8]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,UFE0Fg=/\uFE0F/g,U200D=String.fromCharCode(8205),rescaper=/[&<>'"]/g,shouldntBeParsed=/^(?:iframe|noframes|noscript|script|select|style|textarea)$/,fromCharCode=String.fromCharCode;return twemoji;function createText(text,clean){return document.createTextNode(clean?text.replace(UFE0Fg,""):text)}function escapeHTML(s){return s.replace(rescaper,replacer)}function defaultImageSrcGenerator(icon,options){return "".concat(options.base,options.size,"/",icon,options.ext)}function grabAllTextNodes(node,allText){var childNodes=node.childNodes,length=childNodes.length,subnode,nodeType;while(length--){subnode=childNodes[length];nodeType=subnode.nodeType;if(nodeType===3){allText.push(subnode);}else if(nodeType===1&&!("ownerSVGElement"in subnode)&&!shouldntBeParsed.test(subnode.nodeName.toLowerCase())){grabAllTextNodes(subnode,allText);}}return allText}function grabTheRightIcon(rawText){return toCodePoint(rawText.indexOf(U200D)<0?rawText.replace(UFE0Fg,""):rawText)}function parseNode(node,options){var allText=grabAllTextNodes(node,[]),length=allText.length,attrib,attrname,modified,fragment,subnode,text,match,i,index,img,rawText,iconId,src;while(length--){modified=false;fragment=document.createDocumentFragment();subnode=allText[length];text=subnode.nodeValue;i=0;while(match=re.exec(text)){index=match.index;if(index!==i){fragment.appendChild(createText(text.slice(i,index),true));}rawText=match[0];iconId=grabTheRightIcon(rawText);i=index+rawText.length;src=options.callback(iconId,options);if(iconId&&src){img=new Image;img.onerror=options.onerror;img.setAttribute("draggable","false");attrib=options.attributes(rawText,iconId);for(attrname in attrib){if(attrib.hasOwnProperty(attrname)&&attrname.indexOf("on")!==0&&!img.hasAttribute(attrname)){img.setAttribute(attrname,attrib[attrname]);}}img.className=options.className;img.alt=rawText;img.src=src;modified=true;fragment.appendChild(img);}if(!img)fragment.appendChild(createText(rawText,false));img=null;}if(modified){if(i");}return ret})}function replacer(m){return escaper[m]}function returnNull(){return null}function toSizeSquaredAsset(value){return typeof value==="number"?value+"x"+value:value}function fromCodePoint(codepoint){var code=typeof codepoint==="string"?parseInt(codepoint,16):codepoint;if(code<65536){return fromCharCode(code)}code-=65536;return fromCharCode(55296+(code>>10),56320+(code&1023))}function parse(what,how){if(!how||typeof how==="function"){how={callback:how};}return (typeof what==="string"?parseString:parseNode)(what,{callback:how.callback||defaultImageSrcGenerator,attributes:typeof how.attributes==="function"?how.attributes:returnNull,base:typeof how.base==="string"?how.base:twemoji.base,ext:how.ext||twemoji.ext,size:how.folder||toSizeSquaredAsset(how.size||twemoji.size),className:how.className||twemoji.className,onerror:how.onerror||twemoji.onerror})}function replace(text,callback){return String(text).replace(re,callback)}function test(text){re.lastIndex=0;var result=re.test(text);re.lastIndex=0;return result}function toCodePoint(unicodeSurrogates,sep){var r=[],c=0,p=0,i=0;while(i { + return new RegExp(/[#*0-9]\uFE0F?\u20E3|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26AA\u26B0\u26B1\u26BD\u26BE\u26C4\u26C8\u26CF\u26D1\u26E9\u26F0-\u26F5\u26F7\u26F8\u26FA\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B55\u3030\u303D\u3297\u3299]\uFE0F?|[\u261D\u270C\u270D](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\u270A\u270B](?:\uD83C[\uDFFB-\uDFFF])?|[\u23E9-\u23EC\u23F0\u23F3\u25FD\u2693\u26A1\u26AB\u26C5\u26CE\u26D4\u26EA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2795-\u2797\u27B0\u27BF\u2B50]|\u26D3\uFE0F?(?:\u200D\uD83D\uDCA5)?|\u26F9(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\u2764\uFE0F?(?:\u200D(?:\uD83D\uDD25|\uD83E\uDE79))?|\uD83C(?:[\uDC04\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]\uFE0F?|[\uDF85\uDFC2\uDFC7](?:\uD83C[\uDFFB-\uDFFF])?|[\uDFC4\uDFCA](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDFCB\uDFCC](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF43\uDF45-\uDF4A\uDF4C-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uDDE6\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF]|\uDDE7\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF]|\uDDE8\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF]|\uDDE9\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF]|\uDDEA\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA]|\uDDEB\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7]|\uDDEC\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE]|\uDDED\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA]|\uDDEE\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9]|\uDDEF\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5]|\uDDF0\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF]|\uDDF1\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE]|\uDDF2\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF]|\uDDF3\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF]|\uDDF4\uD83C\uDDF2|\uDDF5\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE]|\uDDF6\uD83C\uDDE6|\uDDF7\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC]|\uDDF8\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF]|\uDDF9\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF]|\uDDFA\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF]|\uDDFB\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA]|\uDDFC\uD83C[\uDDEB\uDDF8]|\uDDFD\uD83C\uDDF0|\uDDFE\uD83C[\uDDEA\uDDF9]|\uDDFF\uD83C[\uDDE6\uDDF2\uDDFC]|\uDF44(?:\u200D\uD83D\uDFEB)?|\uDF4B(?:\u200D\uD83D\uDFE9)?|\uDFC3(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDFF3\uFE0F?(?:\u200D(?:\u26A7\uFE0F?|\uD83C\uDF08))?|\uDFF4(?:\u200D\u2620\uFE0F?|\uDB40\uDC67\uDB40\uDC62\uDB40(?:\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDC73\uDB40\uDC63\uDB40\uDC74|\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F)?)|\uD83D(?:[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3]\uFE0F?|[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC](?:\uD83C[\uDFFB-\uDFFF])?|[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4\uDEB5](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD74\uDD90](?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?|[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC25\uDC27-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE41\uDE43\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEDC-\uDEDF\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB\uDFF0]|\uDC08(?:\u200D\u2B1B)?|\uDC15(?:\u200D\uD83E\uDDBA)?|\uDC26(?:\u200D(?:\u2B1B|\uD83D\uDD25))?|\uDC3B(?:\u200D\u2744\uFE0F?)?|\uDC41\uFE0F?(?:\u200D\uD83D\uDDE8\uFE0F?)?|\uDC68(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDC68\uDC69]\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?)|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?\uDC68\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D\uDC68\uD83C[\uDFFB-\uDFFE])))?))?|\uDC69(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:\uDC8B\u200D\uD83D)?[\uDC68\uDC69]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D(?:[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?|\uDC69\u200D\uD83D(?:\uDC66(?:\u200D\uD83D\uDC66)?|\uDC67(?:\u200D\uD83D[\uDC66\uDC67])?))|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFC-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFD-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFD\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D\uD83D(?:[\uDC68\uDC69]|\uDC8B\u200D\uD83D[\uDC68\uDC69])\uD83C[\uDFFB-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83D[\uDC68\uDC69]\uD83C[\uDFFB-\uDFFE])))?))?|\uDC6F(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDD75(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|\uDE2E(?:\u200D\uD83D\uDCA8)?|\uDE35(?:\u200D\uD83D\uDCAB)?|\uDE36(?:\u200D\uD83C\uDF2B\uFE0F?)?|\uDE42(?:\u200D[\u2194\u2195]\uFE0F?)?|\uDEB6(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?)|\uD83E(?:[\uDD0C\uDD0F\uDD18-\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5\uDEC3-\uDEC5\uDEF0\uDEF2-\uDEF8](?:\uD83C[\uDFFB-\uDFFF])?|[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD\uDDCF\uDDD4\uDDD6-\uDDDD](?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDDDE\uDDDF](?:\u200D[\u2640\u2642]\uFE0F?)?|[\uDD0D\uDD0E\uDD10-\uDD17\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCC\uDDD0\uDDE0-\uDDFF\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC2\uDECE-\uDEDB\uDEE0-\uDEE8]|\uDD3C(?:\u200D[\u2640\u2642]\uFE0F?|\uD83C[\uDFFB-\uDFFF])?|\uDDCE(?:\uD83C[\uDFFB-\uDFFF])?(?:\u200D(?:[\u2640\u2642]\uFE0F?(?:\u200D\u27A1\uFE0F?)?|\u27A1\uFE0F?))?|\uDDD1(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1|\uDDD1\u200D\uD83E\uDDD2(?:\u200D\uD83E\uDDD2)?|\uDDD2(?:\u200D\uD83E\uDDD2)?))|\uD83C(?:\uDFFB(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFC-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFC(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFD-\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFD(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFE(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFD\uDFFF]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?|\uDFFF(?:\u200D(?:[\u2695\u2696\u2708]\uFE0F?|\u2764\uFE0F?\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1\uD83C[\uDFFB-\uDFFE]|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E(?:[\uDDAF\uDDBC\uDDBD](?:\u200D\u27A1\uFE0F?)?|[\uDDB0-\uDDB3]|\uDD1D\u200D\uD83E\uDDD1\uD83C[\uDFFB-\uDFFF])))?))?|\uDEF1(?:\uD83C(?:\uDFFB(?:\u200D\uD83E\uDEF2\uD83C[\uDFFC-\uDFFF])?|\uDFFC(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFD-\uDFFF])?|\uDFFD(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])?|\uDFFE(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFD\uDFFF])?|\uDFFF(?:\u200D\uD83E\uDEF2\uD83C[\uDFFB-\uDFFE])?))?)/, 'g'); +}; +const shortNames = { + '😀': 'grinning face', + '😃': 'grinning face with big eyes', + '😄': 'grinning face with smiling eyes', + '😁': 'beaming face with smiling eyes', + '😆': 'grinning squinting face', + '😅': 'grinning face with sweat', + '🤣': 'rolling on the floor laughing', + '😂': 'face with tears of joy', + '🙂': 'slightly smiling face', + '🙃': 'upside-down face', + '🫠': '⊛ melting face', + '😉': 'winking face', + '😊': 'smiling face with smiling eyes', + '😇': 'smiling face with halo', + '🥰': 'smiling face with hearts', + '😍': 'smiling face with heart-eyes', + '🤩': 'star-struck', + '😘': 'face blowing a kiss', + '😗': 'kissing face', + '☺': 'smiling face', + '😚': 'kissing face with closed eyes', + '😙': 'kissing face with smiling eyes', + '🥲': 'smiling face with tear', + '😋': 'face savoring food', + '😛': 'face with tongue', + '😜': 'winking face with tongue', + '🤪': 'zany face', + '😝': 'squinting face with tongue', + '🤑': 'money-mouth face', + '🤗': 'smiling face with open hands', + '🤭': 'face with hand over mouth', + '🫢': '⊛ face with open eyes and hand over mouth', + '🫣': '⊛ face with peeking eye', + '🤫': 'shushing face', + '🤔': 'thinking face', + '🫡': '⊛ saluting face', + '🤐': 'zipper-mouth face', + '🤨': 'face with raised eyebrow', + '😐': 'neutral face', + '😑': 'expressionless face', + '😶': 'face without mouth', + '🫥': '⊛ dotted line face', + '😶‍🌫️': 'face in clouds', + '😏': 'smirking face', + '😒': 'unamused face', + '🙄': 'face with rolling eyes', + '😬': 'grimacing face', + '😮‍💨': 'face exhaling', + '🤥': 'lying face', + '😌': 'relieved face', + '😔': 'pensive face', + '😪': 'sleepy face', + '🤤': 'drooling face', + '😴': 'sleeping face', + '😷': 'face with medical mask', + '🤒': 'face with thermometer', + '🤕': 'face with head-bandage', + '🤢': 'nauseated face', + '🤮': 'face vomiting', + '🤧': 'sneezing face', + '🥵': 'hot face', + '🥶': 'cold face', + '🥴': 'woozy face', + '😵': 'face with crossed-out eyes', + '😵‍💫': 'face with spiral eyes', + '🤯': 'exploding head', + '🤠': 'cowboy hat face', + '🥳': 'partying face', + '🥸': 'disguised face', + '😎': 'smiling face with sunglasses', + '🤓': 'nerd face', + '🧐': 'face with monocle', + '😕': 'confused face', + '🫤': '⊛ face with diagonal mouth', + '😟': 'worried face', + '🙁': 'slightly frowning face', + '☹': 'frowning face', + '😮': 'face with open mouth', + '😯': 'hushed face', + '😲': 'astonished face', + '😳': 'flushed face', + '🥺': 'pleading face', + '🥹': '⊛ face holding back tears', + '😦': 'frowning face with open mouth', + '😧': 'anguished face', + '😨': 'fearful face', + '😰': 'anxious face with sweat', + '😥': 'sad but relieved face', + '😢': 'crying face', + '😭': 'loudly crying face', + '😱': 'face screaming in fear', + '😖': 'confounded face', + '😣': 'persevering face', + '😞': 'disappointed face', + '😓': 'downcast face with sweat', + '😩': 'weary face', + '😫': 'tired face', + '🥱': 'yawning face', + '😤': 'face with steam from nose', + '😡': 'pouting face', + '😠': 'angry face', + '🤬': 'face with symbols on mouth', + '😈': 'smiling face with horns', + '👿': 'angry face with horns', + '💀': 'skull', + '☠': 'skull and crossbones', + '💩': 'pile of poo', + '🤡': 'clown face', + '👹': 'ogre', + '👺': 'goblin', + '👻': 'ghost', + '👽': 'alien', + '👾': 'alien monster', + '🤖': 'robot', + '😺': 'grinning cat', + '😸': 'grinning cat with smiling eyes', + '😹': 'cat with tears of joy', + '😻': 'smiling cat with heart-eyes', + '😼': 'cat with wry smile', + '😽': 'kissing cat', + '🙀': 'weary cat', + '😿': 'crying cat', + '😾': 'pouting cat', + '🙈': 'see-no-evil monkey', + '🙉': 'hear-no-evil monkey', + '🙊': 'speak-no-evil monkey', + '💋': 'kiss mark', + '💌': 'love letter', + '💘': 'heart with arrow', + '💝': 'heart with ribbon', + '💖': 'sparkling heart', + '💗': 'growing heart', + '💓': 'beating heart', + '💞': 'revolving hearts', + '💕': 'two hearts', + '💟': 'heart decoration', + '❣': 'heart exclamation', + '💔': 'broken heart', + '❤️‍🔥': 'heart on fire', + '❤️‍🩹': 'mending heart', + '❤': 'red heart', + '🧡': 'orange heart', + '💛': 'yellow heart', + '💚': 'green heart', + '💙': 'blue heart', + '💜': 'purple heart', + '🤎': 'brown heart', + '🖤': 'black heart', + '🤍': 'white heart', + '💯': 'hundred points', + '💢': 'anger symbol', + '💥': 'collision', + '💫': 'dizzy', + '💦': 'sweat droplets', + '💨': 'dashing away', + '🕳': 'hole', + '💣': 'bomb', + '💬': 'speech balloon', + '👁️‍🗨️': 'eye in speech bubble', + '🗨': 'left speech bubble', + '🗯': 'right anger bubble', + '💭': 'thought balloon', + '💤': 'zzz', + '👋': 'waving hand', + '🤚': 'raised back of hand', + '🖐': 'hand with fingers splayed', + '✋': 'raised hand', + '🖖': 'vulcan salute', + '🫱': '⊛ rightwards hand', + '🫲': '⊛ leftwards hand', + '🫳': '⊛ palm down hand', + '🫴': '⊛ palm up hand', + '👌': 'OK hand', + '🤌': 'pinched fingers', + '🤏': 'pinching hand', + '✌': 'victory hand', + '🤞': 'crossed fingers', + '🫰': '⊛ hand with index finger and thumb crossed', + '🤟': 'love-you gesture', + '🤘': 'sign of the horns', + '🤙': 'call me hand', + '👈': 'backhand index pointing left', + '👉': 'backhand index pointing right', + '👆': 'backhand index pointing up', + '🖕': 'middle finger', + '👇': 'backhand index pointing down', + '☝': 'index pointing up', + '🫵': '⊛ index pointing at the viewer', + '👍': 'thumbs up', + '👎': 'thumbs down', + '✊': 'raised fist', + '👊': 'oncoming fist', + '🤛': 'left-facing fist', + '🤜': 'right-facing fist', + '👏': 'clapping hands', + '🙌': 'raising hands', + '🫶': '⊛ heart hands', + '👐': 'open hands', + '🤲': 'palms up together', + '🤝': 'handshake', + '🙏': 'folded hands', + '✍': 'writing hand', + '💅': 'nail polish', + '🤳': 'selfie', + '💪': 'flexed biceps', + '🦾': 'mechanical arm', + '🦿': 'mechanical leg', + '🦵': 'leg', + '🦶': 'foot', + '👂': 'ear', + '🦻': 'ear with hearing aid', + '👃': 'nose', + '🧠': 'brain', + '🫀': 'anatomical heart', + '🫁': 'lungs', + '🦷': 'tooth', + '🦴': 'bone', + '👀': 'eyes', + '👁': 'eye', + '👅': 'tongue', + '👄': 'mouth', + '🫦': '⊛ biting lip', + '👶': 'baby', + '🧒': 'child', + '👦': 'boy', + '👧': 'girl', + '🧑': 'person', + '👱': 'person: blond hair', + '👨': 'man', + '🧔': 'person: beard', + '🧔‍♂️': 'man: beard', + '🧔‍♀️': 'woman: beard', + '👨‍🦰': 'man: red hair', + '👨‍🦱': 'man: curly hair', + '👨‍🦳': 'man: white hair', + '👨‍🦲': 'man: bald', + '👩': 'woman', + '👩‍🦰': 'woman: red hair', + '🧑‍🦰': 'person: red hair', + '👩‍🦱': 'woman: curly hair', + '🧑‍🦱': 'person: curly hair', + '👩‍🦳': 'woman: white hair', + '🧑‍🦳': 'person: white hair', + '👩‍🦲': 'woman: bald', + '🧑‍🦲': 'person: bald', + '👱‍♀️': 'woman: blond hair', + '👱‍♂️': 'man: blond hair', + '🧓': 'older person', + '👴': 'old man', + '👵': 'old woman', + '🙍': 'person frowning', + '🙍‍♂️': 'man frowning', + '🙍‍♀️': 'woman frowning', + '🙎': 'person pouting', + '🙎‍♂️': 'man pouting', + '🙎‍♀️': 'woman pouting', + '🙅': 'person gesturing NO', + '🙅‍♂️': 'man gesturing NO', + '🙅‍♀️': 'woman gesturing NO', + '🙆': 'person gesturing OK', + '🙆‍♂️': 'man gesturing OK', + '🙆‍♀️': 'woman gesturing OK', + '💁': 'person tipping hand', + '💁‍♂️': 'man tipping hand', + '💁‍♀️': 'woman tipping hand', + '🙋': 'person raising hand', + '🙋‍♂️': 'man raising hand', + '🙋‍♀️': 'woman raising hand', + '🧏': 'deaf person', + '🧏‍♂️': 'deaf man', + '🧏‍♀️': 'deaf woman', + '🙇': 'person bowing', + '🙇‍♂️': 'man bowing', + '🙇‍♀️': 'woman bowing', + '🤦': 'person facepalming', + '🤦‍♂️': 'man facepalming', + '🤦‍♀️': 'woman facepalming', + '🤷': 'person shrugging', + '🤷‍♂️': 'man shrugging', + '🤷‍♀️': 'woman shrugging', + '🧑‍⚕️': 'health worker', + '👨‍⚕️': 'man health worker', + '👩‍⚕️': 'woman health worker', + '🧑‍🎓': 'student', + '👨‍🎓': 'man student', + '👩‍🎓': 'woman student', + '🧑‍🏫': 'teacher', + '👨‍🏫': 'man teacher', + '👩‍🏫': 'woman teacher', + '🧑‍⚖️': 'judge', + '👨‍⚖️': 'man judge', + '👩‍⚖️': 'woman judge', + '🧑‍🌾': 'farmer', + '👨‍🌾': 'man farmer', + '👩‍🌾': 'woman farmer', + '🧑‍🍳': 'cook', + '👨‍🍳': 'man cook', + '👩‍🍳': 'woman cook', + '🧑‍🔧': 'mechanic', + '👨‍🔧': 'man mechanic', + '👩‍🔧': 'woman mechanic', + '🧑‍🏭': 'factory worker', + '👨‍🏭': 'man factory worker', + '👩‍🏭': 'woman factory worker', + '🧑‍💼': 'office worker', + '👨‍💼': 'man office worker', + '👩‍💼': 'woman office worker', + '🧑‍🔬': 'scientist', + '👨‍🔬': 'man scientist', + '👩‍🔬': 'woman scientist', + '🧑‍💻': 'technologist', + '👨‍💻': 'man technologist', + '👩‍💻': 'woman technologist', + '🧑‍🎤': 'singer', + '👨‍🎤': 'man singer', + '👩‍🎤': 'woman singer', + '🧑‍🎨': 'artist', + '👨‍🎨': 'man artist', + '👩‍🎨': 'woman artist', + '🧑‍✈️': 'pilot', + '👨‍✈️': 'man pilot', + '👩‍✈️': 'woman pilot', + '🧑‍🚀': 'astronaut', + '👨‍🚀': 'man astronaut', + '👩‍🚀': 'woman astronaut', + '🧑‍🚒': 'firefighter', + '👨‍🚒': 'man firefighter', + '👩‍🚒': 'woman firefighter', + '👮': 'police officer', + '👮‍♂️': 'man police officer', + '👮‍♀️': 'woman police officer', + '🕵': 'detective', + '🕵️‍♂️': 'man detective', + '🕵️‍♀️': 'woman detective', + '💂': 'guard', + '💂‍♂️': 'man guard', + '💂‍♀️': 'woman guard', + '🥷': 'ninja', + '👷': 'construction worker', + '👷‍♂️': 'man construction worker', + '👷‍♀️': 'woman construction worker', + '🫅': '⊛ person with crown', + '🤴': 'prince', + '👸': 'princess', + '👳': 'person wearing turban', + '👳‍♂️': 'man wearing turban', + '👳‍♀️': 'woman wearing turban', + '👲': 'person with skullcap', + '🧕': 'woman with headscarf', + '🤵': 'person in tuxedo', + '🤵‍♂️': 'man in tuxedo', + '🤵‍♀️': 'woman in tuxedo', + '👰': 'person with veil', + '👰‍♂️': 'man with veil', + '👰‍♀️': 'woman with veil', + '🤰': 'pregnant woman', + '🫃': '⊛ pregnant man', + '🫄': '⊛ pregnant person', + '🤱': 'breast-feeding', + '👩‍🍼': 'woman feeding baby', + '👨‍🍼': 'man feeding baby', + '🧑‍🍼': 'person feeding baby', + '👼': 'baby angel', + '🎅': 'Santa Claus', + '🤶': 'Mrs. Claus', + '🧑‍🎄': 'mx claus', + '🦸': 'superhero', + '🦸‍♂️': 'man superhero', + '🦸‍♀️': 'woman superhero', + '🦹': 'supervillain', + '🦹‍♂️': 'man supervillain', + '🦹‍♀️': 'woman supervillain', + '🧙': 'mage', + '🧙‍♂️': 'man mage', + '🧙‍♀️': 'woman mage', + '🧚': 'fairy', + '🧚‍♂️': 'man fairy', + '🧚‍♀️': 'woman fairy', + '🧛': 'vampire', + '🧛‍♂️': 'man vampire', + '🧛‍♀️': 'woman vampire', + '🧜': 'merperson', + '🧜‍♂️': 'merman', + '🧜‍♀️': 'mermaid', + '🧝': 'elf', + '🧝‍♂️': 'man elf', + '🧝‍♀️': 'woman elf', + '🧞': 'genie', + '🧞‍♂️': 'man genie', + '🧞‍♀️': 'woman genie', + '🧟': 'zombie', + '🧟‍♂️': 'man zombie', + '🧟‍♀️': 'woman zombie', + '🧌': '⊛ troll', + '💆': 'person getting massage', + '💆‍♂️': 'man getting massage', + '💆‍♀️': 'woman getting massage', + '💇': 'person getting haircut', + '💇‍♂️': 'man getting haircut', + '💇‍♀️': 'woman getting haircut', + '🚶': 'person walking', + '🚶‍♂️': 'man walking', + '🚶‍♀️': 'woman walking', + '🧍': 'person standing', + '🧍‍♂️': 'man standing', + '🧍‍♀️': 'woman standing', + '🧎': 'person kneeling', + '🧎‍♂️': 'man kneeling', + '🧎‍♀️': 'woman kneeling', + '🧑‍🦯': 'person with white cane', + '👨‍🦯': 'man with white cane', + '👩‍🦯': 'woman with white cane', + '🧑‍🦼': 'person in motorized wheelchair', + '👨‍🦼': 'man in motorized wheelchair', + '👩‍🦼': 'woman in motorized wheelchair', + '🧑‍🦽': 'person in manual wheelchair', + '👨‍🦽': 'man in manual wheelchair', + '👩‍🦽': 'woman in manual wheelchair', + '🏃': 'person running', + '🏃‍♂️': 'man running', + '🏃‍♀️': 'woman running', + '💃': 'woman dancing', + '🕺': 'man dancing', + '🕴': 'person in suit levitating', + '👯': 'people with bunny ears', + '👯‍♂️': 'men with bunny ears', + '👯‍♀️': 'women with bunny ears', + '🧖': 'person in steamy room', + '🧖‍♂️': 'man in steamy room', + '🧖‍♀️': 'woman in steamy room', + '🧗': 'person climbing', + '🧗‍♂️': 'man climbing', + '🧗‍♀️': 'woman climbing', + '🤺': 'person fencing', + '🏇': 'horse racing', + '⛷': 'skier', + '🏂': 'snowboarder', + '🏌': 'person golfing', + '🏌️‍♂️': 'man golfing', + '🏌️‍♀️': 'woman golfing', + '🏄': 'person surfing', + '🏄‍♂️': 'man surfing', + '🏄‍♀️': 'woman surfing', + '🚣': 'person rowing boat', + '🚣‍♂️': 'man rowing boat', + '🚣‍♀️': 'woman rowing boat', + '🏊': 'person swimming', + '🏊‍♂️': 'man swimming', + '🏊‍♀️': 'woman swimming', + '⛹': 'person bouncing ball', + '⛹️‍♂️': 'man bouncing ball', + '⛹️‍♀️': 'woman bouncing ball', + '🏋': 'person lifting weights', + '🏋️‍♂️': 'man lifting weights', + '🏋️‍♀️': 'woman lifting weights', + '🚴': 'person biking', + '🚴‍♂️': 'man biking', + '🚴‍♀️': 'woman biking', + '🚵': 'person mountain biking', + '🚵‍♂️': 'man mountain biking', + '🚵‍♀️': 'woman mountain biking', + '🤸': 'person cartwheeling', + '🤸‍♂️': 'man cartwheeling', + '🤸‍♀️': 'woman cartwheeling', + '🤼': 'people wrestling', + '🤼‍♂️': 'men wrestling', + '🤼‍♀️': 'women wrestling', + '🤽': 'person playing water polo', + '🤽‍♂️': 'man playing water polo', + '🤽‍♀️': 'woman playing water polo', + '🤾': 'person playing handball', + '🤾‍♂️': 'man playing handball', + '🤾‍♀️': 'woman playing handball', + '🤹': 'person juggling', + '🤹‍♂️': 'man juggling', + '🤹‍♀️': 'woman juggling', + '🧘': 'person in lotus position', + '🧘‍♂️': 'man in lotus position', + '🧘‍♀️': 'woman in lotus position', + '🛀': 'person taking bath', + '🛌': 'person in bed', + '🧑‍🤝‍🧑': 'people holding hands', + '👭': 'women holding hands', + '👫': 'woman and man holding hands', + '👬': 'men holding hands', + '💏': 'kiss', + '👩‍❤️‍💋‍👨': 'kiss: woman, man', + '👨‍❤️‍💋‍👨': 'kiss: man, man', + '👩‍❤️‍💋‍👩': 'kiss: woman, woman', + '💑': 'couple with heart', + '👩‍❤️‍👨': 'couple with heart: woman, man', + '👨‍❤️‍👨': 'couple with heart: man, man', + '👩‍❤️‍👩': 'couple with heart: woman, woman', + '👪': 'family', + '👨‍👩‍👦': 'family: man, woman, boy', + '👨‍👩‍👧': 'family: man, woman, girl', + '👨‍👩‍👧‍👦': 'family: man, woman, girl, boy', + '👨‍👩‍👦‍👦': 'family: man, woman, boy, boy', + '👨‍👩‍👧‍👧': 'family: man, woman, girl, girl', + '👨‍👨‍👦': 'family: man, man, boy', + '👨‍👨‍👧': 'family: man, man, girl', + '👨‍👨‍👧‍👦': 'family: man, man, girl, boy', + '👨‍👨‍👦‍👦': 'family: man, man, boy, boy', + '👨‍👨‍👧‍👧': 'family: man, man, girl, girl', + '👩‍👩‍👦': 'family: woman, woman, boy', + '👩‍👩‍👧': 'family: woman, woman, girl', + '👩‍👩‍👧‍👦': 'family: woman, woman, girl, boy', + '👩‍👩‍👦‍👦': 'family: woman, woman, boy, boy', + '👩‍👩‍👧‍👧': 'family: woman, woman, girl, girl', + '👨‍👦': 'family: man, boy', + '👨‍👦‍👦': 'family: man, boy, boy', + '👨‍👧': 'family: man, girl', + '👨‍👧‍👦': 'family: man, girl, boy', + '👨‍👧‍👧': 'family: man, girl, girl', + '👩‍👦': 'family: woman, boy', + '👩‍👦‍👦': 'family: woman, boy, boy', + '👩‍👧': 'family: woman, girl', + '👩‍👧‍👦': 'family: woman, girl, boy', + '👩‍👧‍👧': 'family: woman, girl, girl', + '🗣': 'speaking head', + '👤': 'bust in silhouette', + '👥': 'busts in silhouette', + '🫂': 'people hugging', + '👣': 'footprints', + '🦰': 'red hair', + '🦱': 'curly hair', + '🦳': 'white hair', + '🦲': 'bald', + '🐵': 'monkey face', + '🐒': 'monkey', + '🦍': 'gorilla', + '🦧': 'orangutan', + '🐶': 'dog face', + '🐕': 'dog', + '🦮': 'guide dog', + '🐕‍🦺': 'service dog', + '🐩': 'poodle', + '🐺': 'wolf', + '🦊': 'fox', + '🦝': 'raccoon', + '🐱': 'cat face', + '🐈': 'cat', + '🐈‍⬛': 'black cat', + '🦁': 'lion', + '🐯': 'tiger face', + '🐅': 'tiger', + '🐆': 'leopard', + '🐴': 'horse face', + '🐎': 'horse', + '🦄': 'unicorn', + '🦓': 'zebra', + '🦌': 'deer', + '🦬': 'bison', + '🐮': 'cow face', + '🐂': 'ox', + '🐃': 'water buffalo', + '🐄': 'cow', + '🐷': 'pig face', + '🐖': 'pig', + '🐗': 'boar', + '🐽': 'pig nose', + '🐏': 'ram', + '🐑': 'ewe', + '🐐': 'goat', + '🐪': 'camel', + '🐫': 'two-hump camel', + '🦙': 'llama', + '🦒': 'giraffe', + '🐘': 'elephant', + '🦣': 'mammoth', + '🦏': 'rhinoceros', + '🦛': 'hippopotamus', + '🐭': 'mouse face', + '🐁': 'mouse', + '🐀': 'rat', + '🐹': 'hamster', + '🐰': 'rabbit face', + '🐇': 'rabbit', + '🐿': 'chipmunk', + '🦫': 'beaver', + '🦔': 'hedgehog', + '🦇': 'bat', + '🐻': 'bear', + '🐻‍❄️': 'polar bear', + '🐨': 'koala', + '🐼': 'panda', + '🦥': 'sloth', + '🦦': 'otter', + '🦨': 'skunk', + '🦘': 'kangaroo', + '🦡': 'badger', + '🐾': 'paw prints', + '🦃': 'turkey', + '🐔': 'chicken', + '🐓': 'rooster', + '🐣': 'hatching chick', + '🐤': 'baby chick', + '🐥': 'front-facing baby chick', + '🐦': 'bird', + '🐧': 'penguin', + '🕊': 'dove', + '🦅': 'eagle', + '🦆': 'duck', + '🦢': 'swan', + '🦉': 'owl', + '🦤': 'dodo', + '🪶': 'feather', + '🦩': 'flamingo', + '🦚': 'peacock', + '🦜': 'parrot', + '🐸': 'frog', + '🐊': 'crocodile', + '🐢': 'turtle', + '🦎': 'lizard', + '🐍': 'snake', + '🐲': 'dragon face', + '🐉': 'dragon', + '🦕': 'sauropod', + '🦖': 'T-Rex', + '🐳': 'spouting whale', + '🐋': 'whale', + '🐬': 'dolphin', + '🦭': 'seal', + '🐟': 'fish', + '🐠': 'tropical fish', + '🐡': 'blowfish', + '🦈': 'shark', + '🐙': 'octopus', + '🐚': 'spiral shell', + '🪸': '⊛ coral', + '🐌': 'snail', + '🦋': 'butterfly', + '🐛': 'bug', + '🐜': 'ant', + '🐝': 'honeybee', + '🪲': 'beetle', + '🐞': 'lady beetle', + '🦗': 'cricket', + '🪳': 'cockroach', + '🕷': 'spider', + '🕸': 'spider web', + '🦂': 'scorpion', + '🦟': 'mosquito', + '🪰': 'fly', + '🪱': 'worm', + '🦠': 'microbe', + '💐': 'bouquet', + '🌸': 'cherry blossom', + '💮': 'white flower', + '🪷': '⊛ lotus', + '🏵': 'rosette', + '🌹': 'rose', + '🥀': 'wilted flower', + '🌺': 'hibiscus', + '🌻': 'sunflower', + '🌼': 'blossom', + '🌷': 'tulip', + '🌱': 'seedling', + '🪴': 'potted plant', + '🌲': 'evergreen tree', + '🌳': 'deciduous tree', + '🌴': 'palm tree', + '🌵': 'cactus', + '🌾': 'sheaf of rice', + '🌿': 'herb', + '☘': 'shamrock', + '🍀': 'four leaf clover', + '🍁': 'maple leaf', + '🍂': 'fallen leaf', + '🍃': 'leaf fluttering in wind', + '🪹': '⊛ empty nest', + '🪺': '⊛ nest with eggs', + '🍇': 'grapes', + '🍈': 'melon', + '🍉': 'watermelon', + '🍊': 'tangerine', + '🍋': 'lemon', + '🍌': 'banana', + '🍍': 'pineapple', + '🥭': 'mango', + '🍎': 'red apple', + '🍏': 'green apple', + '🍐': 'pear', + '🍑': 'peach', + '🍒': 'cherries', + '🍓': 'strawberry', + '🫐': 'blueberries', + '🥝': 'kiwi fruit', + '🍅': 'tomato', + '🫒': 'olive', + '🥥': 'coconut', + '🥑': 'avocado', + '🍆': 'eggplant', + '🥔': 'potato', + '🥕': 'carrot', + '🌽': 'ear of corn', + '🌶': 'hot pepper', + '🫑': 'bell pepper', + '🥒': 'cucumber', + '🥬': 'leafy green', + '🥦': 'broccoli', + '🧄': 'garlic', + '🧅': 'onion', + '🍄': 'mushroom', + '🥜': 'peanuts', + '🫘': '⊛ beans', + '🌰': 'chestnut', + '🍞': 'bread', + '🥐': 'croissant', + '🥖': 'baguette bread', + '🫓': 'flatbread', + '🥨': 'pretzel', + '🥯': 'bagel', + '🥞': 'pancakes', + '🧇': 'waffle', + '🧀': 'cheese wedge', + '🍖': 'meat on bone', + '🍗': 'poultry leg', + '🥩': 'cut of meat', + '🥓': 'bacon', + '🍔': 'hamburger', + '🍟': 'french fries', + '🍕': 'pizza', + '🌭': 'hot dog', + '🥪': 'sandwich', + '🌮': 'taco', + '🌯': 'burrito', + '🫔': 'tamale', + '🥙': 'stuffed flatbread', + '🧆': 'falafel', + '🥚': 'egg', + '🍳': 'cooking', + '🥘': 'shallow pan of food', + '🍲': 'pot of food', + '🫕': 'fondue', + '🥣': 'bowl with spoon', + '🥗': 'green salad', + '🍿': 'popcorn', + '🧈': 'butter', + '🧂': 'salt', + '🥫': 'canned food', + '🍱': 'bento box', + '🍘': 'rice cracker', + '🍙': 'rice ball', + '🍚': 'cooked rice', + '🍛': 'curry rice', + '🍜': 'steaming bowl', + '🍝': 'spaghetti', + '🍠': 'roasted sweet potato', + '🍢': 'oden', + '🍣': 'sushi', + '🍤': 'fried shrimp', + '🍥': 'fish cake with swirl', + '🥮': 'moon cake', + '🍡': 'dango', + '🥟': 'dumpling', + '🥠': 'fortune cookie', + '🥡': 'takeout box', + '🦀': 'crab', + '🦞': 'lobster', + '🦐': 'shrimp', + '🦑': 'squid', + '🦪': 'oyster', + '🍦': 'soft ice cream', + '🍧': 'shaved ice', + '🍨': 'ice cream', + '🍩': 'doughnut', + '🍪': 'cookie', + '🎂': 'birthday cake', + '🍰': 'shortcake', + '🧁': 'cupcake', + '🥧': 'pie', + '🍫': 'chocolate bar', + '🍬': 'candy', + '🍭': 'lollipop', + '🍮': 'custard', + '🍯': 'honey pot', + '🍼': 'baby bottle', + '🥛': 'glass of milk', + '☕': 'hot beverage', + '🫖': 'teapot', + '🍵': 'teacup without handle', + '🍶': 'sake', + '🍾': 'bottle with popping cork', + '🍷': 'wine glass', + '🍸': 'cocktail glass', + '🍹': 'tropical drink', + '🍺': 'beer mug', + '🍻': 'clinking beer mugs', + '🥂': 'clinking glasses', + '🥃': 'tumbler glass', + '🫗': '⊛ pouring liquid', + '🥤': 'cup with straw', + '🧋': 'bubble tea', + '🧃': 'beverage box', + '🧉': 'mate', + '🧊': 'ice', + '🥢': 'chopsticks', + '🍽': 'fork and knife with plate', + '🍴': 'fork and knife', + '🥄': 'spoon', + '🔪': 'kitchen knife', + '🫙': '⊛ jar', + '🏺': 'amphora', + '🌍': 'globe showing Europe-Africa', + '🌎': 'globe showing Americas', + '🌏': 'globe showing Asia-Australia', + '🌐': 'globe with meridians', + '🗺': 'world map', + '🗾': 'map of Japan', + '🧭': 'compass', + '🏔': 'snow-capped mountain', + '⛰': 'mountain', + '🌋': 'volcano', + '🗻': 'mount fuji', + '🏕': 'camping', + '🏖': 'beach with umbrella', + '🏜': 'desert', + '🏝': 'desert island', + '🏞': 'national park', + '🏟': 'stadium', + '🏛': 'classical building', + '🏗': 'building construction', + '🧱': 'brick', + '🪨': 'rock', + '🪵': 'wood', + '🛖': 'hut', + '🏘': 'houses', + '🏚': 'derelict house', + '🏠': 'house', + '🏡': 'house with garden', + '🏢': 'office building', + '🏣': 'Japanese post office', + '🏤': 'post office', + '🏥': 'hospital', + '🏦': 'bank', + '🏨': 'hotel', + '🏩': 'love hotel', + '🏪': 'convenience store', + '🏫': 'school', + '🏬': 'department store', + '🏭': 'factory', + '🏯': 'Japanese castle', + '🏰': 'castle', + '💒': 'wedding', + '🗼': 'Tokyo tower', + '🗽': 'Statue of Liberty', + '⛪': 'church', + '🕌': 'mosque', + '🛕': 'hindu temple', + '🕍': 'synagogue', + '⛩': 'shinto shrine', + '🕋': 'kaaba', + '⛲': 'fountain', + '⛺': 'tent', + '🌁': 'foggy', + '🌃': 'night with stars', + '🏙': 'cityscape', + '🌄': 'sunrise over mountains', + '🌅': 'sunrise', + '🌆': 'cityscape at dusk', + '🌇': 'sunset', + '🌉': 'bridge at night', + '♨': 'hot springs', + '🎠': 'carousel horse', + '🛝': '⊛ playground slide', + '🎡': 'ferris wheel', + '🎢': 'roller coaster', + '💈': 'barber pole', + '🎪': 'circus tent', + '🚂': 'locomotive', + '🚃': 'railway car', + '🚄': 'high-speed train', + '🚅': 'bullet train', + '🚆': 'train', + '🚇': 'metro', + '🚈': 'light rail', + '🚉': 'station', + '🚊': 'tram', + '🚝': 'monorail', + '🚞': 'mountain railway', + '🚋': 'tram car', + '🚌': 'bus', + '🚍': 'oncoming bus', + '🚎': 'trolleybus', + '🚐': 'minibus', + '🚑': 'ambulance', + '🚒': 'fire engine', + '🚓': 'police car', + '🚔': 'oncoming police car', + '🚕': 'taxi', + '🚖': 'oncoming taxi', + '🚗': 'automobile', + '🚘': 'oncoming automobile', + '🚙': 'sport utility vehicle', + '🛻': 'pickup truck', + '🚚': 'delivery truck', + '🚛': 'articulated lorry', + '🚜': 'tractor', + '🏎': 'racing car', + '🏍': 'motorcycle', + '🛵': 'motor scooter', + '🦽': 'manual wheelchair', + '🦼': 'motorized wheelchair', + '🛺': 'auto rickshaw', + '🚲': 'bicycle', + '🛴': 'kick scooter', + '🛹': 'skateboard', + '🛼': 'roller skate', + '🚏': 'bus stop', + '🛣': 'motorway', + '🛤': 'railway track', + '🛢': 'oil drum', + '⛽': 'fuel pump', + '🛞': '⊛ wheel', + '🚨': 'police car light', + '🚥': 'horizontal traffic light', + '🚦': 'vertical traffic light', + '🛑': 'stop sign', + '🚧': 'construction', + '⚓': 'anchor', + '🛟': '⊛ ring buoy', + '⛵': 'sailboat', + '🛶': 'canoe', + '🚤': 'speedboat', + '🛳': 'passenger ship', + '⛴': 'ferry', + '🛥': 'motor boat', + '🚢': 'ship', + '✈': 'airplane', + '🛩': 'small airplane', + '🛫': 'airplane departure', + '🛬': 'airplane arrival', + '🪂': 'parachute', + '💺': 'seat', + '🚁': 'helicopter', + '🚟': 'suspension railway', + '🚠': 'mountain cableway', + '🚡': 'aerial tramway', + '🛰': 'satellite', + '🚀': 'rocket', + '🛸': 'flying saucer', + '🛎': 'bellhop bell', + '🧳': 'luggage', + '⌛': 'hourglass done', + '⏳': 'hourglass not done', + '⌚': 'watch', + '⏰': 'alarm clock', + '⏱': 'stopwatch', + '⏲': 'timer clock', + '🕰': 'mantelpiece clock', + '🕛': 'twelve o’clock', + '🕧': 'twelve-thirty', + '🕐': 'one o’clock', + '🕜': 'one-thirty', + '🕑': 'two o’clock', + '🕝': 'two-thirty', + '🕒': 'three o’clock', + '🕞': 'three-thirty', + '🕓': 'four o’clock', + '🕟': 'four-thirty', + '🕔': 'five o’clock', + '🕠': 'five-thirty', + '🕕': 'six o’clock', + '🕡': 'six-thirty', + '🕖': 'seven o’clock', + '🕢': 'seven-thirty', + '🕗': 'eight o’clock', + '🕣': 'eight-thirty', + '🕘': 'nine o’clock', + '🕤': 'nine-thirty', + '🕙': 'ten o’clock', + '🕥': 'ten-thirty', + '🕚': 'eleven o’clock', + '🕦': 'eleven-thirty', + '🌑': 'new moon', + '🌒': 'waxing crescent moon', + '🌓': 'first quarter moon', + '🌔': 'waxing gibbous moon', + '🌕': 'full moon', + '🌖': 'waning gibbous moon', + '🌗': 'last quarter moon', + '🌘': 'waning crescent moon', + '🌙': 'crescent moon', + '🌚': 'new moon face', + '🌛': 'first quarter moon face', + '🌜': 'last quarter moon face', + '🌡': 'thermometer', + '☀': 'sun', + '🌝': 'full moon face', + '🌞': 'sun with face', + '🪐': 'ringed planet', + '⭐': 'star', + '🌟': 'glowing star', + '🌠': 'shooting star', + '🌌': 'milky way', + '☁': 'cloud', + '⛅': 'sun behind cloud', + '⛈': 'cloud with lightning and rain', + '🌤': 'sun behind small cloud', + '🌥': 'sun behind large cloud', + '🌦': 'sun behind rain cloud', + '🌧': 'cloud with rain', + '🌨': 'cloud with snow', + '🌩': 'cloud with lightning', + '🌪': 'tornado', + '🌫': 'fog', + '🌬': 'wind face', + '🌀': 'cyclone', + '🌈': 'rainbow', + '🌂': 'closed umbrella', + '☂': 'umbrella', + '☔': 'umbrella with rain drops', + '⛱': 'umbrella on ground', + '⚡': 'high voltage', + '❄': 'snowflake', + '☃': 'snowman', + '⛄': 'snowman without snow', + '☄': 'comet', + '🔥': 'fire', + '💧': 'droplet', + '🌊': 'water wave', + '🎃': 'jack-o-lantern', + '🎄': 'Christmas tree', + '🎆': 'fireworks', + '🎇': 'sparkler', + '🧨': 'firecracker', + '✨': 'sparkles', + '🎈': 'balloon', + '🎉': 'party popper', + '🎊': 'confetti ball', + '🎋': 'tanabata tree', + '🎍': 'pine decoration', + '🎎': 'Japanese dolls', + '🎏': 'carp streamer', + '🎐': 'wind chime', + '🎑': 'moon viewing ceremony', + '🧧': 'red envelope', + '🎀': 'ribbon', + '🎁': 'wrapped gift', + '🎗': 'reminder ribbon', + '🎟': 'admission tickets', + '🎫': 'ticket', + '🎖': 'military medal', + '🏆': 'trophy', + '🏅': 'sports medal', + '🥇': '1st place medal', + '🥈': '2nd place medal', + '🥉': '3rd place medal', + '⚽': 'soccer ball', + '⚾': 'baseball', + '🥎': 'softball', + '🏀': 'basketball', + '🏐': 'volleyball', + '🏈': 'american football', + '🏉': 'rugby football', + '🎾': 'tennis', + '🥏': 'flying disc', + '🎳': 'bowling', + '🏏': 'cricket game', + '🏑': 'field hockey', + '🏒': 'ice hockey', + '🥍': 'lacrosse', + '🏓': 'ping pong', + '🏸': 'badminton', + '🥊': 'boxing glove', + '🥋': 'martial arts uniform', + '🥅': 'goal net', + '⛳': 'flag in hole', + '⛸': 'ice skate', + '🎣': 'fishing pole', + '🤿': 'diving mask', + '🎽': 'running shirt', + '🎿': 'skis', + '🛷': 'sled', + '🥌': 'curling stone', + '🎯': 'bullseye', + '🪀': 'yo-yo', + '🪁': 'kite', + '🎱': 'pool 8 ball', + '🔮': 'crystal ball', + '🪄': 'magic wand', + '🧿': 'nazar amulet', + '🪬': '⊛ hamsa', + '🎮': 'video game', + '🕹': 'joystick', + '🎰': 'slot machine', + '🎲': 'game die', + '🧩': 'puzzle piece', + '🧸': 'teddy bear', + '🪅': 'piñata', + '🪩': '⊛ mirror ball', + '🪆': 'nesting dolls', + '♠': 'spade suit', + '♥': 'heart suit', + '♦': 'diamond suit', + '♣': 'club suit', + '♟': 'chess pawn', + '🃏': 'joker', + '🀄': 'mahjong red dragon', + '🎴': 'flower playing cards', + '🎭': 'performing arts', + '🖼': 'framed picture', + '🎨': 'artist palette', + '🧵': 'thread', + '🪡': 'sewing needle', + '🧶': 'yarn', + '🪢': 'knot', + '👓': 'glasses', + '🕶': 'sunglasses', + '🥽': 'goggles', + '🥼': 'lab coat', + '🦺': 'safety vest', + '👔': 'necktie', + '👕': 't-shirt', + '👖': 'jeans', + '🧣': 'scarf', + '🧤': 'gloves', + '🧥': 'coat', + '🧦': 'socks', + '👗': 'dress', + '👘': 'kimono', + '🥻': 'sari', + '🩱': 'one-piece swimsuit', + '🩲': 'briefs', + '🩳': 'shorts', + '👙': 'bikini', + '👚': 'woman’s clothes', + '👛': 'purse', + '👜': 'handbag', + '👝': 'clutch bag', + '🛍': 'shopping bags', + '🎒': 'backpack', + '🩴': 'thong sandal', + '👞': 'man’s shoe', + '👟': 'running shoe', + '🥾': 'hiking boot', + '🥿': 'flat shoe', + '👠': 'high-heeled shoe', + '👡': 'woman’s sandal', + '🩰': 'ballet shoes', + '👢': 'woman’s boot', + '👑': 'crown', + '👒': 'woman’s hat', + '🎩': 'top hat', + '🎓': 'graduation cap', + '🧢': 'billed cap', + '🪖': 'military helmet', + '⛑': 'rescue worker’s helmet', + '📿': 'prayer beads', + '💄': 'lipstick', + '💍': 'ring', + '💎': 'gem stone', + '🔇': 'muted speaker', + '🔈': 'speaker low volume', + '🔉': 'speaker medium volume', + '🔊': 'speaker high volume', + '📢': 'loudspeaker', + '📣': 'megaphone', + '📯': 'postal horn', + '🔔': 'bell', + '🔕': 'bell with slash', + '🎼': 'musical score', + '🎵': 'musical note', + '🎶': 'musical notes', + '🎙': 'studio microphone', + '🎚': 'level slider', + '🎛': 'control knobs', + '🎤': 'microphone', + '🎧': 'headphone', + '📻': 'radio', + '🎷': 'saxophone', + '🪗': 'accordion', + '🎸': 'guitar', + '🎹': 'musical keyboard', + '🎺': 'trumpet', + '🎻': 'violin', + '🪕': 'banjo', + '🥁': 'drum', + '🪘': 'long drum', + '📱': 'mobile phone', + '📲': 'mobile phone with arrow', + '☎': 'telephone', + '📞': 'telephone receiver', + '📟': 'pager', + '📠': 'fax machine', + '🔋': 'battery', + '🪫': '⊛ low battery', + '🔌': 'electric plug', + '💻': 'laptop', + '🖥': 'desktop computer', + '🖨': 'printer', + '⌨': 'keyboard', + '🖱': 'computer mouse', + '🖲': 'trackball', + '💽': 'computer disk', + '💾': 'floppy disk', + '💿': 'optical disk', + '📀': 'dvd', + '🧮': 'abacus', + '🎥': 'movie camera', + '🎞': 'film frames', + '📽': 'film projector', + '🎬': 'clapper board', + '📺': 'television', + '📷': 'camera', + '📸': 'camera with flash', + '📹': 'video camera', + '📼': 'videocassette', + '🔍': 'magnifying glass tilted left', + '🔎': 'magnifying glass tilted right', + '🕯': 'candle', + '💡': 'light bulb', + '🔦': 'flashlight', + '🏮': 'red paper lantern', + '🪔': 'diya lamp', + '📔': 'notebook with decorative cover', + '📕': 'closed book', + '📖': 'open book', + '📗': 'green book', + '📘': 'blue book', + '📙': 'orange book', + '📚': 'books', + '📓': 'notebook', + '📒': 'ledger', + '📃': 'page with curl', + '📜': 'scroll', + '📄': 'page facing up', + '📰': 'newspaper', + '🗞': 'rolled-up newspaper', + '📑': 'bookmark tabs', + '🔖': 'bookmark', + '🏷': 'label', + '💰': 'money bag', + '🪙': 'coin', + '💴': 'yen banknote', + '💵': 'dollar banknote', + '💶': 'euro banknote', + '💷': 'pound banknote', + '💸': 'money with wings', + '💳': 'credit card', + '🧾': 'receipt', + '💹': 'chart increasing with yen', + '✉': 'envelope', + '📧': 'e-mail', + '📨': 'incoming envelope', + '📩': 'envelope with arrow', + '📤': 'outbox tray', + '📥': 'inbox tray', + '📦': 'package', + '📫': 'closed mailbox with raised flag', + '📪': 'closed mailbox with lowered flag', + '📬': 'open mailbox with raised flag', + '📭': 'open mailbox with lowered flag', + '📮': 'postbox', + '🗳': 'ballot box with ballot', + '✏': 'pencil', + '✒': 'black nib', + '🖋': 'fountain pen', + '🖊': 'pen', + '🖌': 'paintbrush', + '🖍': 'crayon', + '📝': 'memo', + '💼': 'briefcase', + '📁': 'file folder', + '📂': 'open file folder', + '🗂': 'card index dividers', + '📅': 'calendar', + '📆': 'tear-off calendar', + '🗒': 'spiral notepad', + '🗓': 'spiral calendar', + '📇': 'card index', + '📈': 'chart increasing', + '📉': 'chart decreasing', + '📊': 'bar chart', + '📋': 'clipboard', + '📌': 'pushpin', + '📍': 'round pushpin', + '📎': 'paperclip', + '🖇': 'linked paperclips', + '📏': 'straight ruler', + '📐': 'triangular ruler', + '✂': 'scissors', + '🗃': 'card file box', + '🗄': 'file cabinet', + '🗑': 'wastebasket', + '🔒': 'locked', + '🔓': 'unlocked', + '🔏': 'locked with pen', + '🔐': 'locked with key', + '🔑': 'key', + '🗝': 'old key', + '🔨': 'hammer', + '🪓': 'axe', + '⛏': 'pick', + '⚒': 'hammer and pick', + '🛠': 'hammer and wrench', + '🗡': 'dagger', + '⚔': 'crossed swords', + '🔫': 'water pistol', + '🪃': 'boomerang', + '🏹': 'bow and arrow', + '🛡': 'shield', + '🪚': 'carpentry saw', + '🔧': 'wrench', + '🪛': 'screwdriver', + '🔩': 'nut and bolt', + '⚙': 'gear', + '🗜': 'clamp', + '⚖': 'balance scale', + '🦯': 'white cane', + '🔗': 'link', + '⛓': 'chains', + '🪝': 'hook', + '🧰': 'toolbox', + '🧲': 'magnet', + '🪜': 'ladder', + '⚗': 'alembic', + '🧪': 'test tube', + '🧫': 'petri dish', + '🧬': 'dna', + '🔬': 'microscope', + '🔭': 'telescope', + '📡': 'satellite antenna', + '💉': 'syringe', + '🩸': 'drop of blood', + '💊': 'pill', + '🩹': 'adhesive bandage', + '🩼': '⊛ crutch', + '🩺': 'stethoscope', + '🩻': '⊛ x-ray', + '🚪': 'door', + '🛗': 'elevator', + '🪞': 'mirror', + '🪟': 'window', + '🛏': 'bed', + '🛋': 'couch and lamp', + '🪑': 'chair', + '🚽': 'toilet', + '🪠': 'plunger', + '🚿': 'shower', + '🛁': 'bathtub', + '🪤': 'mouse trap', + '🪒': 'razor', + '🧴': 'lotion bottle', + '🧷': 'safety pin', + '🧹': 'broom', + '🧺': 'basket', + '🧻': 'roll of paper', + '🪣': 'bucket', + '🧼': 'soap', + '🫧': '⊛ bubbles', + '🪥': 'toothbrush', + '🧽': 'sponge', + '🧯': 'fire extinguisher', + '🛒': 'shopping cart', + '🚬': 'cigarette', + '⚰': 'coffin', + '🪦': 'headstone', + '⚱': 'funeral urn', + '🗿': 'moai', + '🪧': 'placard', + '🪪': '⊛ identification card', + '🏧': 'ATM sign', + '🚮': 'litter in bin sign', + '🚰': 'potable water', + '♿': 'wheelchair symbol', + '🚹': 'men’s room', + '🚺': 'women’s room', + '🚻': 'restroom', + '🚼': 'baby symbol', + '🚾': 'water closet', + '🛂': 'passport control', + '🛃': 'customs', + '🛄': 'baggage claim', + '🛅': 'left luggage', + '⚠': 'warning', + '🚸': 'children crossing', + '⛔': 'no entry', + '🚫': 'prohibited', + '🚳': 'no bicycles', + '🚭': 'no smoking', + '🚯': 'no littering', + '🚱': 'non-potable water', + '🚷': 'no pedestrians', + '📵': 'no mobile phones', + '🔞': 'no one under eighteen', + '☢': 'radioactive', + '☣': 'biohazard', + '⬆': 'up arrow', + '↗': 'up-right arrow', + '➡': 'right arrow', + '↘': 'down-right arrow', + '⬇': 'down arrow', + '↙': 'down-left arrow', + '⬅': 'left arrow', + '↖': 'up-left arrow', + '↕': 'up-down arrow', + '↔': 'left-right arrow', + '↩': 'right arrow curving left', + '↪': 'left arrow curving right', + '⤴': 'right arrow curving up', + '⤵': 'right arrow curving down', + '🔃': 'clockwise vertical arrows', + '🔄': 'counterclockwise arrows button', + '🔙': 'BACK arrow', + '🔚': 'END arrow', + '🔛': 'ON! arrow', + '🔜': 'SOON arrow', + '🔝': 'TOP arrow', + '🛐': 'place of worship', + '⚛': 'atom symbol', + '🕉': 'om', + '✡': 'star of David', + '☸': 'wheel of dharma', + '☯': 'yin yang', + '✝': 'latin cross', + '☦': 'orthodox cross', + '☪': 'star and crescent', + '☮': 'peace symbol', + '🕎': 'menorah', + '🔯': 'dotted six-pointed star', + '♈': 'Aries', + '♉': 'Taurus', + '♊': 'Gemini', + '♋': 'Cancer', + '♌': 'Leo', + '♍': 'Virgo', + '♎': 'Libra', + '♏': 'Scorpio', + '♐': 'Sagittarius', + '♑': 'Capricorn', + '♒': 'Aquarius', + '♓': 'Pisces', + '⛎': 'Ophiuchus', + '🔀': 'shuffle tracks button', + '🔁': 'repeat button', + '🔂': 'repeat single button', + '▶': 'play button', + '⏩': 'fast-forward button', + '⏭': 'next track button', + '⏯': 'play or pause button', + '◀': 'reverse button', + '⏪': 'fast reverse button', + '⏮': 'last track button', + '🔼': 'upwards button', + '⏫': 'fast up button', + '🔽': 'downwards button', + '⏬': 'fast down button', + '⏸': 'pause button', + '⏹': 'stop button', + '⏺': 'record button', + '⏏': 'eject button', + '🎦': 'cinema', + '🔅': 'dim button', + '🔆': 'bright button', + '📶': 'antenna bars', + '📳': 'vibration mode', + '📴': 'mobile phone off', + '♀': 'female sign', + '♂': 'male sign', + '⚧': 'transgender symbol', + '✖': 'multiply', + '➕': 'plus', + '➖': 'minus', + '➗': 'divide', + '🟰': '⊛ heavy equals sign', + '♾': 'infinity', + '‼': 'double exclamation mark', + '⁉': 'exclamation question mark', + '❓': 'red question mark', + '❔': 'white question mark', + '❕': 'white exclamation mark', + '❗': 'red exclamation mark', + '〰': 'wavy dash', + '💱': 'currency exchange', + '💲': 'heavy dollar sign', + '⚕': 'medical symbol', + '♻': 'recycling symbol', + '⚜': 'fleur-de-lis', + '🔱': 'trident emblem', + '📛': 'name badge', + '🔰': 'Japanese symbol for beginner', + '⭕': 'hollow red circle', + '✅': 'check mark button', + '☑': 'check box with check', + '✔': 'check mark', + '❌': 'cross mark', + '❎': 'cross mark button', + '➰': 'curly loop', + '➿': 'double curly loop', + '〽': 'part alternation mark', + '✳': 'eight-spoked asterisk', + '✴': 'eight-pointed star', + '❇': 'sparkle', + '©': 'copyright', + '®': 'registered', + '™': 'trade mark', + '#️⃣': 'keycap: #', + '*️⃣': 'keycap: *', + '0️⃣': 'keycap: 0', + '1️⃣': 'keycap: 1', + '2️⃣': 'keycap: 2', + '3️⃣': 'keycap: 3', + '4️⃣': 'keycap: 4', + '5️⃣': 'keycap: 5', + '6️⃣': 'keycap: 6', + '7️⃣': 'keycap: 7', + '8️⃣': 'keycap: 8', + '9️⃣': 'keycap: 9', + '🔟': 'keycap: 10', + '🔠': 'input latin uppercase', + '🔡': 'input latin lowercase', + '🔢': 'input numbers', + '🔣': 'input symbols', + '🔤': 'input latin letters', + '🅰': 'A button (blood type)', + '🆎': 'AB button (blood type)', + '🅱': 'B button (blood type)', + '🆑': 'CL button', + '🆒': 'COOL button', + '🆓': 'FREE button', + ℹ: 'information', + '🆔': 'ID button', + 'Ⓜ': 'circled M', + '🆕': 'NEW button', + '🆖': 'NG button', + '🅾': 'O button (blood type)', + '🆗': 'OK button', + '🅿': 'P button', + '🆘': 'SOS button', + '🆙': 'UP! button', + '🆚': 'VS button', + '🈁': 'Japanese “here” button', + '🈂': 'Japanese “service charge” button', + '🈷': 'Japanese “monthly amount” button', + '🈶': 'Japanese “not free of charge” button', + '🈯': 'Japanese “reserved” button', + '🉐': 'Japanese “bargain” button', + '🈹': 'Japanese “discount” button', + '🈚': 'Japanese “free of charge” button', + '🈲': 'Japanese “prohibited” button', + '🉑': 'Japanese “acceptable” button', + '🈸': 'Japanese “application” button', + '🈴': 'Japanese “passing grade” button', + '🈳': 'Japanese “vacancy” button', + '㊗': 'Japanese “congratulations” button', + '㊙': 'Japanese “secret” button', + '🈺': 'Japanese “open for business” button', + '🈵': 'Japanese “no vacancy” button', + '🔴': 'red circle', + '🟠': 'orange circle', + '🟡': 'yellow circle', + '🟢': 'green circle', + '🔵': 'blue circle', + '🟣': 'purple circle', + '🟤': 'brown circle', + '⚫': 'black circle', + '⚪': 'white circle', + '🟥': 'red square', + '🟧': 'orange square', + '🟨': 'yellow square', + '🟩': 'green square', + '🟦': 'blue square', + '🟪': 'purple square', + '🟫': 'brown square', + '⬛': 'black large square', + '⬜': 'white large square', + '◼': 'black medium square', + '◻': 'white medium square', + '◾': 'black medium-small square', + '◽': 'white medium-small square', + '▪': 'black small square', + '▫': 'white small square', + '🔶': 'large orange diamond', + '🔷': 'large blue diamond', + '🔸': 'small orange diamond', + '🔹': 'small blue diamond', + '🔺': 'red triangle pointed up', + '🔻': 'red triangle pointed down', + '💠': 'diamond with a dot', + '🔘': 'radio button', + '🔳': 'white square button', + '🔲': 'black square button', + '🏁': 'chequered flag', + '🚩': 'triangular flag', + '🎌': 'crossed flags', + '🏴': 'black flag', + '🏳': 'white flag', + '🏳️‍🌈': 'rainbow flag', + '🏳️‍⚧️': 'transgender flag', + '🏴‍☠️': 'pirate flag', + '🇦🇨': 'flag: Ascension Island', + '🇦🇩': 'flag: Andorra', + '🇦🇪': 'flag: United Arab Emirates', + '🇦🇫': 'flag: Afghanistan', + '🇦🇬': 'flag: Antigua & Barbuda', + '🇦🇮': 'flag: Anguilla', + '🇦🇱': 'flag: Albania', + '🇦🇲': 'flag: Armenia', + '🇦🇴': 'flag: Angola', + '🇦🇶': 'flag: Antarctica', + '🇦🇷': 'flag: Argentina', + '🇦🇸': 'flag: American Samoa', + '🇦🇹': 'flag: Austria', + '🇦🇺': 'flag: Australia', + '🇦🇼': 'flag: Aruba', + '🇦🇽': 'flag: Åland Islands', + '🇦🇿': 'flag: Azerbaijan', + '🇧🇦': 'flag: Bosnia & Herzegovina', + '🇧🇧': 'flag: Barbados', + '🇧🇩': 'flag: Bangladesh', + '🇧🇪': 'flag: Belgium', + '🇧🇫': 'flag: Burkina Faso', + '🇧🇬': 'flag: Bulgaria', + '🇧🇭': 'flag: Bahrain', + '🇧🇮': 'flag: Burundi', + '🇧🇯': 'flag: Benin', + '🇧🇱': 'flag: St. Barthélemy', + '🇧🇲': 'flag: Bermuda', + '🇧🇳': 'flag: Brunei', + '🇧🇴': 'flag: Bolivia', + '🇧🇶': 'flag: Caribbean Netherlands', + '🇧🇷': 'flag: Brazil', + '🇧🇸': 'flag: Bahamas', + '🇧🇹': 'flag: Bhutan', + '🇧🇻': 'flag: Bouvet Island', + '🇧🇼': 'flag: Botswana', + '🇧🇾': 'flag: Belarus', + '🇧🇿': 'flag: Belize', + '🇨🇦': 'flag: Canada', + '🇨🇨': 'flag: Cocos (Keeling) Islands', + '🇨🇩': 'flag: Congo - Kinshasa', + '🇨🇫': 'flag: Central African Republic', + '🇨🇬': 'flag: Congo - Brazzaville', + '🇨🇭': 'flag: Switzerland', + '🇨🇮': 'flag: Côte d’Ivoire', + '🇨🇰': 'flag: Cook Islands', + '🇨🇱': 'flag: Chile', + '🇨🇲': 'flag: Cameroon', + '🇨🇳': 'flag: China', + '🇨🇴': 'flag: Colombia', + '🇨🇵': 'flag: Clipperton Island', + '🇨🇷': 'flag: Costa Rica', + '🇨🇺': 'flag: Cuba', + '🇨🇻': 'flag: Cape Verde', + '🇨🇼': 'flag: Curaçao', + '🇨🇽': 'flag: Christmas Island', + '🇨🇾': 'flag: Cyprus', + '🇨🇿': 'flag: Czechia', + '🇩🇪': 'flag: Germany', + '🇩🇬': 'flag: Diego Garcia', + '🇩🇯': 'flag: Djibouti', + '🇩🇰': 'flag: Denmark', + '🇩🇲': 'flag: Dominica', + '🇩🇴': 'flag: Dominican Republic', + '🇩🇿': 'flag: Algeria', + '🇪🇦': 'flag: Ceuta & Melilla', + '🇪🇨': 'flag: Ecuador', + '🇪🇪': 'flag: Estonia', + '🇪🇬': 'flag: Egypt', + '🇪🇭': 'flag: Western Sahara', + '🇪🇷': 'flag: Eritrea', + '🇪🇸': 'flag: Spain', + '🇪🇹': 'flag: Ethiopia', + '🇪🇺': 'flag: European Union', + '🇫🇮': 'flag: Finland', + '🇫🇯': 'flag: Fiji', + '🇫🇰': 'flag: Falkland Islands', + '🇫🇲': 'flag: Micronesia', + '🇫🇴': 'flag: Faroe Islands', + '🇫🇷': 'flag: France', + '🇬🇦': 'flag: Gabon', + '🇬🇧': 'flag: United Kingdom', + '🇬🇩': 'flag: Grenada', + '🇬🇪': 'flag: Georgia', + '🇬🇫': 'flag: French Guiana', + '🇬🇬': 'flag: Guernsey', + '🇬🇭': 'flag: Ghana', + '🇬🇮': 'flag: Gibraltar', + '🇬🇱': 'flag: Greenland', + '🇬🇲': 'flag: Gambia', + '🇬🇳': 'flag: Guinea', + '🇬🇵': 'flag: Guadeloupe', + '🇬🇶': 'flag: Equatorial Guinea', + '🇬🇷': 'flag: Greece', + '🇬🇸': 'flag: South Georgia & South Sandwich Islands', + '🇬🇹': 'flag: Guatemala', + '🇬🇺': 'flag: Guam', + '🇬🇼': 'flag: Guinea-Bissau', + '🇬🇾': 'flag: Guyana', + '🇭🇰': 'flag: Hong Kong SAR China', + '🇭🇲': 'flag: Heard & McDonald Islands', + '🇭🇳': 'flag: Honduras', + '🇭🇷': 'flag: Croatia', + '🇭🇹': 'flag: Haiti', + '🇭🇺': 'flag: Hungary', + '🇮🇨': 'flag: Canary Islands', + '🇮🇩': 'flag: Indonesia', + '🇮🇪': 'flag: Ireland', + '🇮🇱': 'flag: Israel', + '🇮🇲': 'flag: Isle of Man', + '🇮🇳': 'flag: India', + '🇮🇴': 'flag: British Indian Ocean Territory', + '🇮🇶': 'flag: Iraq', + '🇮🇷': 'flag: Iran', + '🇮🇸': 'flag: Iceland', + '🇮🇹': 'flag: Italy', + '🇯🇪': 'flag: Jersey', + '🇯🇲': 'flag: Jamaica', + '🇯🇴': 'flag: Jordan', + '🇯🇵': 'flag: Japan', + '🇰🇪': 'flag: Kenya', + '🇰🇬': 'flag: Kyrgyzstan', + '🇰🇭': 'flag: Cambodia', + '🇰🇮': 'flag: Kiribati', + '🇰🇲': 'flag: Comoros', + '🇰🇳': 'flag: St. Kitts & Nevis', + '🇰🇵': 'flag: North Korea', + '🇰🇷': 'flag: South Korea', + '🇰🇼': 'flag: Kuwait', + '🇰🇾': 'flag: Cayman Islands', + '🇰🇿': 'flag: Kazakhstan', + '🇱🇦': 'flag: Laos', + '🇱🇧': 'flag: Lebanon', + '🇱🇨': 'flag: St. Lucia', + '🇱🇮': 'flag: Liechtenstein', + '🇱🇰': 'flag: Sri Lanka', + '🇱🇷': 'flag: Liberia', + '🇱🇸': 'flag: Lesotho', + '🇱🇹': 'flag: Lithuania', + '🇱🇺': 'flag: Luxembourg', + '🇱🇻': 'flag: Latvia', + '🇱🇾': 'flag: Libya', + '🇲🇦': 'flag: Morocco', + '🇲🇨': 'flag: Monaco', + '🇲🇩': 'flag: Moldova', + '🇲🇪': 'flag: Montenegro', + '🇲🇫': 'flag: St. Martin', + '🇲🇬': 'flag: Madagascar', + '🇲🇭': 'flag: Marshall Islands', + '🇲🇰': 'flag: North Macedonia', + '🇲🇱': 'flag: Mali', + '🇲🇲': 'flag: Myanmar (Burma)', + '🇲🇳': 'flag: Mongolia', + '🇲🇴': 'flag: Macao SAR China', + '🇲🇵': 'flag: Northern Mariana Islands', + '🇲🇶': 'flag: Martinique', + '🇲🇷': 'flag: Mauritania', + '🇲🇸': 'flag: Montserrat', + '🇲🇹': 'flag: Malta', + '🇲🇺': 'flag: Mauritius', + '🇲🇻': 'flag: Maldives', + '🇲🇼': 'flag: Malawi', + '🇲🇽': 'flag: Mexico', + '🇲🇾': 'flag: Malaysia', + '🇲🇿': 'flag: Mozambique', + '🇳🇦': 'flag: Namibia', + '🇳🇨': 'flag: New Caledonia', + '🇳🇪': 'flag: Niger', + '🇳🇫': 'flag: Norfolk Island', + '🇳🇬': 'flag: Nigeria', + '🇳🇮': 'flag: Nicaragua', + '🇳🇱': 'flag: Netherlands', + '🇳🇴': 'flag: Norway', + '🇳🇵': 'flag: Nepal', + '🇳🇷': 'flag: Nauru', + '🇳🇺': 'flag: Niue', + '🇳🇿': 'flag: New Zealand', + '🇴🇲': 'flag: Oman', + '🇵🇦': 'flag: Panama', + '🇵🇪': 'flag: Peru', + '🇵🇫': 'flag: French Polynesia', + '🇵🇬': 'flag: Papua New Guinea', + '🇵🇭': 'flag: Philippines', + '🇵🇰': 'flag: Pakistan', + '🇵🇱': 'flag: Poland', + '🇵🇲': 'flag: St. Pierre & Miquelon', + '🇵🇳': 'flag: Pitcairn Islands', + '🇵🇷': 'flag: Puerto Rico', + '🇵🇸': 'flag: Palestinian Territories', + '🇵🇹': 'flag: Portugal', + '🇵🇼': 'flag: Palau', + '🇵🇾': 'flag: Paraguay', + '🇶🇦': 'flag: Qatar', + '🇷🇪': 'flag: Réunion', + '🇷🇴': 'flag: Romania', + '🇷🇸': 'flag: Serbia', + '🇷🇺': 'flag: Russia', + '🇷🇼': 'flag: Rwanda', + '🇸🇦': 'flag: Saudi Arabia', + '🇸🇧': 'flag: Solomon Islands', + '🇸🇨': 'flag: Seychelles', + '🇸🇩': 'flag: Sudan', + '🇸🇪': 'flag: Sweden', + '🇸🇬': 'flag: Singapore', + '🇸🇭': 'flag: St. Helena', + '🇸🇮': 'flag: Slovenia', + '🇸🇯': 'flag: Svalbard & Jan Mayen', + '🇸🇰': 'flag: Slovakia', + '🇸🇱': 'flag: Sierra Leone', + '🇸🇲': 'flag: San Marino', + '🇸🇳': 'flag: Senegal', + '🇸🇴': 'flag: Somalia', + '🇸🇷': 'flag: Suriname', + '🇸🇸': 'flag: South Sudan', + '🇸🇹': 'flag: São Tomé & Príncipe', + '🇸🇻': 'flag: El Salvador', + '🇸🇽': 'flag: Sint Maarten', + '🇸🇾': 'flag: Syria', + '🇸🇿': 'flag: Eswatini', + '🇹🇦': 'flag: Tristan da Cunha', + '🇹🇨': 'flag: Turks & Caicos Islands', + '🇹🇩': 'flag: Chad', + '🇹🇫': 'flag: French Southern Territories', + '🇹🇬': 'flag: Togo', + '🇹🇭': 'flag: Thailand', + '🇹🇯': 'flag: Tajikistan', + '🇹🇰': 'flag: Tokelau', + '🇹🇱': 'flag: Timor-Leste', + '🇹🇲': 'flag: Turkmenistan', + '🇹🇳': 'flag: Tunisia', + '🇹🇴': 'flag: Tonga', + '🇹🇷': 'flag: Turkey', + '🇹🇹': 'flag: Trinidad & Tobago', + '🇹🇻': 'flag: Tuvalu', + '🇹🇼': 'flag: Taiwan', + '🇹🇿': 'flag: Tanzania', + '🇺🇦': 'flag: Ukraine', + '🇺🇬': 'flag: Uganda', + '🇺🇲': 'flag: U.S. Outlying Islands', + '🇺🇳': 'flag: United Nations', + '🇺🇸': 'flag: United States', + '🇺🇾': 'flag: Uruguay', + '🇺🇿': 'flag: Uzbekistan', + '🇻🇦': 'flag: Vatican City', + '🇻🇨': 'flag: St. Vincent & Grenadines', + '🇻🇪': 'flag: Venezuela', + '🇻🇬': 'flag: British Virgin Islands', + '🇻🇮': 'flag: U.S. Virgin Islands', + '🇻🇳': 'flag: Vietnam', + '🇻🇺': 'flag: Vanuatu', + '🇼🇫': 'flag: Wallis & Futuna', + '🇼🇸': 'flag: Samoa', + '🇽🇰': 'flag: Kosovo', + '🇾🇪': 'flag: Yemen', + '🇾🇹': 'flag: Mayotte', + '🇿🇦': 'flag: South Africa', + '🇿🇲': 'flag: Zambia', + '🇿🇼': 'flag: Zimbabwe', + '🏴󠁧󠁢󠁥󠁮󠁧󠁿': 'flag: England', + '🏴󠁧󠁢󠁳󠁣󠁴󠁿': 'flag: Scotland', + '🏴󠁧󠁢󠁷󠁬󠁳󠁿': 'flag: Wales', +}; +const isEmoji = (str) => { + const regex = getRegex(); + const emojiMatches = str.match(regex); + const emojiString = emojiMatches ? emojiMatches.join('') : ''; + return !/\d/.test(str) && emojiString === str; +}; +const parseEmoji = (style, str, size = 16) => { + switch (style) { + case 'twemoji': + return twemoji.parse(str, { + folder: 'svg', + ext: '.svg', + attributes: () => ({ + width: `${size}px`, + height: `${size}px`, + }), + }); + case 'native': + return str; + default: + return null; + } +}; +/** + * Gets the shortcode for a given emoji by the name of the emoji. This function replaces + * spaces with underscores and removes colons. + * @param key String to replace with shortcode. + * @returns String with shortcode, or `undefined` if no shortcode exists. + */ +const getShortcode = (key) => { + var _a; + // Removable of colons is necessary for the flag shortcodes. + return (_a = shortNames[key]) === null || _a === void 0 ? void 0 : _a.replace(/\s/g, '_').replace(/:/g, '').toLowerCase(); +}; +var emoji = { + shortNames, + isEmoji, + getShortcode, + parseEmoji, + getRegex, +}; + +// Default obsidian file icon. +const DEFAULT_FILE_ICON = ''; +// Default obsidian folder icon. +const DEFAULT_FOLDER_ICON = ''; +/** + * Tries to read the file synchronously. + * @param file File that will be read. + * @returns A promise that will resolve to a string which is the content of the file. + */ +const readFileSync = (file) => __awaiter(void 0, void 0, void 0, function* () { + const content = yield new Promise((resolve) => { + const reader = new FileReader(); + reader.readAsText(file, 'UTF-8'); + reader.onload = (readerEvent) => resolve(readerEvent.target.result); + }); + return content; +}); +/** + * Gets all the currently opened files by getting the markdown leaves and then checking + * for the `file` property in the view. This also returns the leaf of the file. + * @param plugin Instance of the IconizePlugin. + * @returns An array of {@link FileWithLeaf} objects. + */ +const getAllOpenedFiles = (plugin) => { + return plugin.app.workspace + .getLeavesOfType('markdown') + .reduce((prev, curr) => { + const file = curr.view.file; + if (file) { + prev.push(Object.assign(Object.assign({}, file), { leaf: curr, pinned: false })); + } + return prev; + }, []); +}; +/** + * Gets the file item title element by either accessing `titleEl` or `selfEl`. + * @param fileItem FileItem which will be used to retrieve the title element from. + * @returns HTMLElement which is the title element. + */ +const getFileItemTitleEl = (fileItem) => { + var _a; + return (_a = fileItem.titleEl) !== null && _a !== void 0 ? _a : fileItem.selfEl; +}; +/** + * Gets the file item inner title element by either accessing `titleInnerEl` or `innerEl`. + * @param fileItem FileItem which will be used to retrieve the inner title element from. + * @returns HTMLElement which is the inner title element. + */ +const getFileItemInnerTitleEl = (fileItem) => { + var _a; + return (_a = fileItem.titleInnerEl) !== null && _a !== void 0 ? _a : fileItem.innerEl; +}; +/** + * A utility function which will add the icon to the icon pack and then extract the icon + * to the icon pack. + * @param plugin IconizePlugin that will be used for extracting the icon. + * @param iconNameWithPrefix String that will be used to add the icon to the icon pack. + */ +const saveIconToIconPack = (plugin, iconNameWithPrefix) => { + const iconNextIdentifier = nextIdentifier(iconNameWithPrefix); + const iconName = iconNameWithPrefix.substring(iconNextIdentifier); + const iconPrefix = iconNameWithPrefix.substring(0, iconNextIdentifier); + const possibleIcon = getSvgFromLoadedIcon(iconPrefix, iconName); + if (!possibleIcon) { + throw new Error(`Icon ${iconNameWithPrefix} could not be found.`); + } + const iconPackName = getIconPackNameByPrefix(iconPrefix); + if (iconPackName === LUCIDE_ICON_PACK_NAME && + !plugin.doesUseCustomLucideIconPack()) { + return; + } + const icon = getIconFromIconPack(iconPackName, iconPrefix, iconName); + extractIconToIconPack(plugin, icon, possibleIcon); +}; +/** + * A utility function which will remove the icon from the icon pack by removing the icon + * file from the icon pack directory. + * @param plugin IconizePlugin that will be used for removing the icon. + * @param iconNameWithPrefix String that will be used to remove the icon from the icon pack. + */ +const removeIconFromIconPack = (plugin, iconNameWithPrefix) => { + const identifier = nextIdentifier(iconNameWithPrefix); + const prefix = iconNameWithPrefix.substring(0, identifier); + const iconName = iconNameWithPrefix.substring(identifier); + const iconPackName = getIconPackNameByPrefix(prefix); + const duplicatedIcon = plugin.getDataPathByValue(iconNameWithPrefix); + if (!duplicatedIcon) { + removeIconFromIconPackDirectory(plugin, iconPackName, iconName); + } +}; +/** + * A utility function which will convert a string to a hexadecimal color. + * @param str String that will be converted to a hexadecimal color. + * @returns A string which is the hexadecimal color. + */ +const stringToHex = (str) => { + const validHex = str.replace(/[^0-9a-fA-F]/g, ''); + const hex = validHex.padStart(6, '0').substring(0, 6); + return `#${hex}`; +}; +/** + * A utility function which will check if a string is a hexadecimal color. + * @param str String that will be checked if it is a hexadecimal color. + * @param includeHash Boolean which will include the hash in the check. + * @returns A boolean which is true if the string is a hexadecimal color. + */ +const isHexadecimal = (str, includeHash = false) => { + const regex = new RegExp(`^${includeHash ? '#' : ''}[0-9A-Fa-f]{1,6}$`); + return regex.test(str); +}; + +// This library file does not include any other dependency and is a standalone file that +/** + * Sets the margin for a specific node. + * @param el Node where the margin will be set. + * @param margin Margin that will be applied to the node. + * @returns The modified node with the applied margin. + */ +const setMargin = (el, margin) => { + el.style.margin = `${margin.top}px ${margin.right}px ${margin.bottom}px ${margin.left}px`; + return el; +}; +/** + * Applies all stylings to the specified svg icon string and applies styling to the node + * (container). The styling to the specified element is only modified when it is an emoji + * or extra margin is defined in the settings. + * @param plugin Instance of the IconizePlugin. + * @param iconString SVG that will be used to apply the svg styles to. + * @param el Node for manipulating the style. + * @returns Icon svg string with the manipulate style attributes. + */ +const applyAll = (plugin, iconString, container) => { + iconString = svg.setFontSize(iconString, plugin.getSettings().fontSize); + container.style.color = plugin.getSettings().iconColor; + iconString = svg.colorize(iconString, plugin.getSettings().iconColor); + // Sets the margin of an element. + const margin = plugin.getSettings().extraMargin; + const normalizedMargin = { + top: margin.top !== undefined ? margin.top : 4, + right: margin.right !== undefined ? margin.right : 4, + left: margin.left !== undefined ? margin.left : 4, + bottom: margin.bottom !== undefined ? margin.bottom : 4, + }; + if (plugin.getSettings().extraMargin) { + setMargin(container, normalizedMargin); + } + if (emoji.isEmoji(iconString)) { + container.style.fontSize = `${plugin.getSettings().fontSize}px`; + container.style.lineHeight = `${plugin.getSettings().fontSize}px`; + } + return iconString; +}; +/** + * Refreshes all the styles of all the applied icons where a `.iconize-icon` + * class is defined. This function only modifies the styling of the node. + * @param plugin Instance of the IconizePlugin. + * @param applyStyles Function that is getting called when the icon node is found and + * typically applies all the styles to the icon. + */ +const refreshIconNodes = (plugin, applyStyles = applyAll) => { + const fileExplorers = plugin.app.workspace.getLeavesOfType('file-explorer'); + for (const fileExplorer of fileExplorers) { + Object.keys(plugin.getData()).forEach((path) => { + const fileItem = fileExplorer.view.fileItems[path]; + if (fileItem) { + const titleEl = getFileItemTitleEl(fileItem); + const iconNode = titleEl.querySelector('.iconize-icon'); + if (iconNode) { + const pathValue = plugin.getData()[path]; + const hasIndividualColor = typeof pathValue === 'object' && pathValue.iconColor; + iconNode.innerHTML = applyStyles(plugin, iconNode.innerHTML, iconNode); + if (hasIndividualColor) { + iconNode.style.color = pathValue.iconColor; + const colorizedInnerHtml = svg.colorize(iconNode.innerHTML, pathValue.iconColor); + iconNode.innerHTML = colorizedInnerHtml; + } + } + } + }); + } +}; +var style = { + applyAll, + setMargin, + refreshIconNodes, +}; + +/** + * Removes the `iconize-icon` icon node from the provided HTMLElement. + * @param el HTMLElement from which the icon node will be removed. + */ +const removeIconInNode = (el) => { + const iconNode = el.querySelector('.iconize-icon'); + if (!iconNode) { + return; + } + iconNode.remove(); +}; +/** + * Removes the 'iconize-icon' icon node from the HTMLElement corresponding + * to the specified file path. + * @param path File path for which the icon node will be removed. + */ +const removeIconInPath = (path, options) => { + var _a; + const node = (_a = options === null || options === void 0 ? void 0 : options.container) !== null && _a !== void 0 ? _a : document.querySelector(`[data-path="${path}"]`); + if (!node) { + logger.warn(`Element with data path not found (path: ${path})`); + return; + } + removeIconInNode(node); +}; +/** + * Sets an icon or emoji for an HTMLElement based on the specified icon name and color. + * The function manipulates the specified node inline. + * @param plugin Instance of the IconizePlugin. + * @param iconName Name of the icon or emoji to add. + * @param node HTMLElement to which the icon or emoji will be added. + * @param color Optional color of the icon to add. + */ +const setIconForNode = (plugin, iconName, node, color) => { + var _a; + // Gets the possible icon based on the icon name. + const iconNextIdentifier = nextIdentifier(iconName); + const possibleIcon = getSvgFromLoadedIcon(iconName.substring(0, iconNextIdentifier), iconName.substring(iconNextIdentifier)); + if (possibleIcon) { + // The icon is possibly not an emoji. + let iconContent = style.applyAll(plugin, possibleIcon, node); + if (color) { + node.style.color = color; + iconContent = svg.colorize(iconContent, color); + } + node.innerHTML = iconContent; + } + else { + const parsedEmoji = (_a = emoji.parseEmoji(plugin.getSettings().emojiStyle, iconName)) !== null && _a !== void 0 ? _a : iconName; + node.innerHTML = style.applyAll(plugin, parsedEmoji, node); + } + node.setAttribute('title', iconName); +}; +/** + * Creates an icon node for the specified path and inserts it to the DOM. + * @param plugin Instance of the IconizePlugin. + * @param path Path for which the icon node will be created. + * @param iconName Name of the icon or emoji to add. + * @param color Optional color of the icon to add. + */ +const createIconNode = (plugin, path, iconName, options) => { + var _a; + // Get the container from the provided options or try to find the node that has the + // path from the document itself. + const node = (_a = options === null || options === void 0 ? void 0 : options.container) !== null && _a !== void 0 ? _a : document.querySelector(`[data-path="${path}"]`); + if (!node) { + logger.warn(`Element with data path not found (path: ${path})`); + return; + } + // Get the folder or file title node. + let titleNode = node.querySelector('.nav-folder-title-content'); + if (!titleNode) { + titleNode = node.querySelector('.nav-file-title-content'); + if (!titleNode) { + logger.warn(`Element with title node not found (path: ${path})`); + return; + } + } + let iconNode = node.querySelector('.iconize-icon'); + // If the icon is already set in the path, we do not need to create a new div element. + if (iconNode) { + setIconForNode(plugin, iconName, iconNode, options === null || options === void 0 ? void 0 : options.color); + } + else { + // Creates a new icon node and inserts it to the DOM. + iconNode = document.createElement('div'); + iconNode.setAttribute(config.ICON_ATTRIBUTE_NAME, iconName); + iconNode.classList.add('iconize-icon'); + setIconForNode(plugin, iconName, iconNode, options === null || options === void 0 ? void 0 : options.color); + node.insertBefore(iconNode, titleNode); + } +}; +/** + * Checks if the element has an icon node by checking if the element has a child with the + * class `iconize-icon`. + * @param element HTMLElement which will be checked if it has an icon. + * @returns Boolean whether the element has an icon node or not. + */ +const doesElementHasIconNode = (element) => { + return element.querySelector('.iconize-icon') !== null; +}; +/** + * Gets the icon name of the element if it has an icon node. + * @param element HTMLElement parent which includes a node with the icon. + * @returns String with the icon name if the element has an icon, `undefined` otherwise. + */ +const getIconFromElement = (element) => { + const iconNode = element.querySelector('.iconize-icon'); + const existingIcon = iconNode === null || iconNode === void 0 ? void 0 : iconNode.getAttribute(config.ICON_ATTRIBUTE_NAME); + return existingIcon; +}; +const getIconNodeFromPath = (path) => { + var _a; + return (_a = document + .querySelector(`[data-path="${path}"]`)) === null || _a === void 0 ? void 0 : _a.querySelector('[data-icon]'); +}; +var dom = { + setIconForNode, + createIconNode, + doesElementHasIconNode, + getIconFromElement, + getIconNodeFromPath, + removeIconInNode, + removeIconInPath, +}; + +class IconsPickerModal extends obsidian.FuzzySuggestModal { + constructor(app, plugin, path) { + super(app); + this.renderIndex = 0; + this.plugin = plugin; + this.path = path; + this.limit = 150; + const pluginRecentltyUsedItems = [ + ...plugin.getSettings().recentlyUsedIcons, + ]; + this.recentlyUsedItems = new Set(pluginRecentltyUsedItems.reverse().filter((iconName) => { + return doesIconExists(iconName) || emoji.isEmoji(iconName); + })); + this.resultContainerEl.classList.add('iconize-modal'); + } + onOpen() { + super.onOpen(); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } + getItemText(item) { + return `${item.name} (${item.prefix})`; + } + getItems() { + const iconKeys = []; + if (this.inputEl.value.length === 0) { + this.renderIndex = 0; + this.recentlyUsedItems.forEach((iconName) => { + if (emoji.isEmoji(iconName)) { + iconKeys.push({ + name: emoji.shortNames[iconName], + prefix: 'Emoji', + displayName: iconName, + iconPackName: null, + }); + return; + } + const nextLetter = nextIdentifier(iconName); + const iconPrefix = iconName.substring(0, nextLetter); + const iconPackName = getIconPackNameByPrefix(iconPrefix); + iconKeys.push({ + name: iconName.substring(nextLetter), + prefix: iconPrefix, + displayName: iconName, + iconPackName: iconPackName, + }); + }); + } + for (const icon of getAllLoadedIconNames()) { + iconKeys.push({ + name: icon.name, + prefix: icon.prefix, + displayName: icon.prefix + icon.name, + iconPackName: icon.iconPackName, + }); + } + Object.entries(emoji.shortNames).forEach(([unicode, shortName]) => { + iconKeys.push({ + name: shortName, + prefix: 'Emoji', + displayName: unicode, + iconPackName: null, + }); + iconKeys.push({ + name: unicode, + prefix: 'Emoji', + displayName: unicode, + iconPackName: null, + }); + }); + return iconKeys; + } + onChooseItem(item) { + var _a; + const iconNameWithPrefix = typeof item === 'object' ? item.displayName : item; + dom.createIconNode(this.plugin, this.path, iconNameWithPrefix); + (_a = this.onSelect) === null || _a === void 0 ? void 0 : _a.call(this, iconNameWithPrefix); + this.plugin.addFolderIcon(this.path, item); + // Extracts the icon file to the icon pack. + if (typeof item === 'object' && !emoji.isEmoji(iconNameWithPrefix)) { + saveIconToIconPack(this.plugin, iconNameWithPrefix); + } + this.plugin.notifyPlugins(); + } + renderSuggestion(item, el) { + super.renderSuggestion(item, el); + // if (getAllIconPacks().length === 0) { + // this.resultContainerEl.style.display = 'block'; + // this.resultContainerEl.innerHTML = '
    You need to create an icon pack.
    '; + // return; + // } + // Render subheadlines for modal. + if (this.recentlyUsedItems.size !== 0 && this.inputEl.value.length === 0) { + if (this.renderIndex === 0) { + const subheadline = this.resultContainerEl.createDiv(); + subheadline.classList.add('iconize-subheadline'); + subheadline.innerText = 'Recently used Icons:'; + this.resultContainerEl.prepend(subheadline); + } + else if (this.renderIndex === this.recentlyUsedItems.size - 1) { + const subheadline = this.resultContainerEl.createDiv(); + subheadline.classList.add('iconize-subheadline'); + subheadline.innerText = 'All Icons:'; + this.resultContainerEl.append(subheadline); + } + } + if (item.item.name !== 'default') { + if (item.item.prefix === 'Emoji') { + const displayName = emoji.parseEmoji(this.plugin.getSettings().emojiStyle, item.item.displayName); + if (!displayName) { + return; + } + el.innerHTML = `
    ${el.innerHTML}
    ${displayName}
    `; + } + else { + el.innerHTML = `
    ${el.innerHTML}
    ${getSvgFromLoadedIcon(item.item.prefix, item.item.name)}
    `; + } + } + this.renderIndex++; + } +} + +var IconInTitlePosition; +(function (IconInTitlePosition) { + IconInTitlePosition["Above"] = "above"; + IconInTitlePosition["Inline"] = "inline"; +})(IconInTitlePosition || (IconInTitlePosition = {})); +const DEFAULT_SETTINGS = { + migrated: 2, + iconPacksPath: '.obsidian/icons', + fontSize: 16, + emojiStyle: 'native', + iconColor: null, + recentlyUsedIcons: [], + recentlyUsedIconsSize: 5, + rules: [], + extraMargin: { + top: 0, + right: 4, + bottom: 0, + left: 0, + }, + iconInTabsEnabled: false, + iconInTitleEnabled: false, + iconInTitlePosition: IconInTitlePosition.Above, + iconInFrontmatterEnabled: false, + iconInFrontmatterFieldName: 'icon', + iconColorInFrontmatterFieldName: 'iconColor', + iconsBackgroundCheckEnabled: false, + iconsInNotesEnabled: true, + iconsInLinksEnabled: true, + iconIdentifier: ':', + lucideIconPackType: 'native', + debugMode: false, +}; + +function migrate$5(plugin) { + return __awaiter(this, void 0, void 0, function* () { + // Migration for new syncing mechanism. + if (plugin.getSettings().migrated === 1) { + new obsidian.Notice('Please delete your old icon packs and redownload your icon packs to use the new syncing mechanism.', 20000); + plugin.getSettings().migrated++; + } + }); +} + +function migrate$4(plugin) { + return __awaiter(this, void 0, void 0, function* () { + // Migration for new order functionality of custom rules. + if (plugin.getSettings().migrated === 2) { + // Sorting alphabetically was the default behavior before. + plugin + .getSettings() + .rules.sort((a, b) => a.rule.localeCompare(b.rule)) + .forEach((rule, i) => { + rule.order = i; + }); + plugin.getSettings().migrated++; + } + }); +} + +class IconCache { + constructor() { + this.cache = new Map(); + this.set = (path, result) => { + this.cache.set(path, result); + }; + this.invalidate = (path) => { + this.cache.delete(path); + }; + this.clear = () => { + this.cache.clear(); + }; + this.get = (path) => { + var _a; + return (_a = this.cache.get(path)) !== null && _a !== void 0 ? _a : null; + }; + this.doesRecordExist = (path) => { + return this.get(path) !== null; + }; + if (IconCache.instance) { + throw new Error('Error: Instantiation failed: Use `IconCache.getInstance()` instead of new.'); + } + IconCache.instance = this; + } +} +IconCache.instance = new IconCache(); +IconCache.getInstance = () => { + return IconCache.instance; +}; + +/** + * Checks if the file type is equal to the `for` property of the custom rule. + * @param rule CustomRule that will be checked. + * @param fileType CustomRuleFileType that will be checked. Can be either `file` or `folder`. + * @returns Boolean whether the custom rule `for` matches the file type or not. + */ +const doesMatchFileType = (rule, fileType) => { + return (rule.for === 'everything' || + (rule.for === 'files' && fileType === 'file') || + (rule.for === 'folders' && fileType === 'folder')); +}; +/** + * Determines whether a given file or folder matches a specified custom rule. + * @param plugin Plugin instance. + * @param rule CustomRule to check against the file or folder. + * @param file TAbstractFile to check against the custom rule. + * @returns Promise that resolves to `true` if the file matches the rule, `false` otherwise. + */ +const isApplicable = (plugin, rule, file) => __awaiter(void 0, void 0, void 0, function* () { + const metadata = yield plugin.app.vault.adapter.stat(file.path); + if (!metadata) { + return false; + } + const fileType = metadata.type; + const doesMatch = doesMatchFileType(rule, fileType); + if (!doesMatch) { + return false; + } + return doesMatchPath(rule, file.path); +}); +/** + * Removes the icon from the custom rule from all the files and folders, if applicable. + * @param plugin IconizePlugin instance. + * @param rule CustomRule where the icons will be removed based on this rule. + */ +const removeFromAllFiles = (plugin, rule) => __awaiter(void 0, void 0, void 0, function* () { + const nodesWithIcon = document.querySelectorAll(`[${config.ICON_ATTRIBUTE_NAME}="${rule.icon}"]`); + for (let i = 0; i < nodesWithIcon.length; i++) { + const node = nodesWithIcon[i]; + // Parent element is the node which contains the data path. + const parent = node.parentElement; + if (!parent) { + continue; + } + const dataPath = parent.getAttribute('data-path'); + if (!dataPath) { + continue; + } + const fileType = (yield plugin.app.vault.adapter.stat(dataPath)).type; + if (doesMatchPath(rule, dataPath) && doesMatchFileType(rule, fileType)) { + dom.removeIconInNode(parent); + IconCache.getInstance().invalidate(dataPath); + } + } +}); +/** + * Gets all the custom rules sorted by their order property in ascending order. + * @param plugin IconizePlugin instance. + * @returns CustomRule array sorted by their order property in ascending order. + */ +const getSortedRules = (plugin) => { + return plugin.getSettings().rules.sort((a, b) => a.order - b.order); +}; +/** + * Tries to add all specific custom rule icons to all registered files and directories. + * It does that by calling the {@link add} function. Custom rules should have the lowest + * priority and will get ignored if an icon already exists in the file or directory. + * @param plugin IconizePlugin instance. + * @param rule CustomRule that will be applied, if applicable, to all files and folders. + */ +const addToAllFiles = (plugin, rule) => __awaiter(void 0, void 0, void 0, function* () { + const fileItems = yield getFileItems(plugin, rule); + for (const fileItem of fileItems) { + yield add$2(plugin, rule, fileItem.file, getFileItemTitleEl(fileItem)); + } +}); +/** + * Tries to add the icon of the custom rule to a file or folder. This function also checks + * if the file type matches the `for` property of the custom rule. + * @param plugin IconizePlugin instance. + * @param rule CustomRule that will be used to check if the rule is applicable to the file + * or directory. + * @param file TAbstractFile that will be used to possibly create the icon for. + * @param container HTMLElement where the icon will be added if the custom rules matches. + * @returns A promise that resolves to `true` if the icon was added, `false` otherwise. + */ +const add$2 = (plugin, rule, file, container) => __awaiter(void 0, void 0, void 0, function* () { + if (container && dom.doesElementHasIconNode(container)) { + return false; + } + // Checks if the file or directory already has an icon. + const hasIcon = plugin.getIconNameFromPath(file.path); + if (hasIcon) { + return false; + } + const doesMatch = yield isApplicable(plugin, rule, file); + if (doesMatch) { + IconCache.getInstance().set(file.path, { + iconNameWithPrefix: rule.icon, + inCustomRule: true, + }); + dom.createIconNode(plugin, file.path, rule.icon, { + color: rule.color, + container, + }); + return true; + } + return false; +}); +/** + * Determines whether a given rule exists in a given path. + * @param rule Rule to check for. + * @param path Path to check in. + * @returns True if the rule exists in the path, false otherwise. + */ +const doesMatchPath = (rule, path) => { + const toMatch = rule.useFilePath ? path : path.split('/').pop(); + try { + // Rule is in some sort of regex. + const regex = new RegExp(rule.rule); + if (toMatch.match(regex)) { + return true; + } + } + catch (_a) { + // Rule is not in some sort of regex, check for basic string match. + return toMatch.includes(rule.rule); + } + return false; +}; +/** + * Gets all the file items that can be applied to the specific custom rule. + * @param plugin Instance of IconizePlugin. + * @param rule Custom rule that will be checked for. + * @returns A promise that resolves to an array of file items that match the custom rule. + */ +const getFileItems = (plugin, rule) => __awaiter(void 0, void 0, void 0, function* () { + const result = []; + for (const fileExplorer of plugin.getRegisteredFileExplorers()) { + const files = Object.values(fileExplorer.fileItems); + for (const fileItem of files) { + if (yield isApplicable(plugin, rule, fileItem.file)) { + result.push(fileItem); + } + } + } + return result; +}); +var customRule = { + getFileItems, + doesMatchPath, + doesMatchFileType, + getSortedRules, + removeFromAllFiles, + add: add$2, + addToAllFiles, + isApplicable, +}; + +function migrate$3(plugin) { + return __awaiter(this, void 0, void 0, function* () { + // Migration for inheritance to custom rule. + if (plugin.getSettings().migrated === 3) { + let hasRemovedInheritance = false; + for (const [key, value] of Object.entries(plugin.getData())) { + if (key === 'settings' || typeof value !== 'object') { + continue; + } + const folderData = value; + const inheritanceIcon = folderData.inheritanceIcon; + if (!inheritanceIcon) { + continue; + } + const folderIconName = folderData.iconName; + // Clean up old data. + if (folderData.iconColor && folderIconName) { + delete folderData.inheritanceIcon; + } + else if (folderIconName) { + delete plugin.getData()[key]; + plugin.getData()[key] = folderIconName; + } + else if (!folderIconName) { + delete plugin.getData()[key]; + } + const folderPath = key + '\\/[\\w\\d\\s]+'; + const newRule = { + icon: inheritanceIcon, + rule: `${folderPath}\\.(?:\\w+\\.)*\\w+`, + for: 'files', + order: 0, + useFilePath: true, + }; + // Reorder existing custom rules so that the new inheritance custom rule + // is at the top. + plugin.getSettings().rules.map((rule) => { + rule.order++; + }); + plugin.getSettings().rules.unshift(newRule); + // Apply the custom rule. + yield customRule.addToAllFiles(plugin, newRule); + hasRemovedInheritance = true; + } + if (hasRemovedInheritance) { + new obsidian.Notice(`[${config.PLUGIN_NAME}] Inheritance has been removed and replaced with custom rules.`); + } + plugin.getSettings().migrated++; + } + }); +} + +function migrate$2(plugin) { + return __awaiter(this, void 0, void 0, function* () { + if (plugin.getSettings().migrated === 4) { + if (plugin.getSettings().emojiStyle === 'none') { + plugin.getSettings().emojiStyle = 'native'; + } + plugin.getSettings().migrated++; + } + }); +} + +function migrate$1(plugin) { + return __awaiter(this, void 0, void 0, function* () { + if (plugin.getSettings().migrated === 5) { + yield deleteIconPack(plugin, LUCIDE_ICON_PACK_NAME); + plugin.getSettings().migrated++; + } + }); +} + +const migrate = (plugin) => __awaiter(void 0, void 0, void 0, function* () { + // eslint-disable-next-line + // @ts-ignore - Required because an older version of the plugin saved the `migrated` + // property as a boolean instead of a number. + if (plugin.getSettings().migrated === true) { + plugin.getSettings().migrated = 1; + } + yield migrate$5(plugin); + yield migrate$4(plugin); + yield migrate$3(plugin); + yield migrate$2(plugin); + yield migrate$1(plugin); + yield plugin.saveIconFolderData(); +}); + +class IconFolderSetting { + constructor(plugin, containerEl) { + this.plugin = plugin; + this.containerEl = containerEl; + } +} + +/** + * Gets the tab leaves of a specific file path by looping through all opened files and + * checking if the file path matches. + * @param plugin IconizePlugin instance. + * @param path String of the file path to get the tab leaf of. + * @returns TabHeaderLeaf array that includes all tab leaves of the file path. + */ +const getTabLeavesOfFilePath = (plugin, path) => { + const openedFiles = getAllOpenedFiles(plugin); + const openedFile = openedFiles.filter((openedFile) => openedFile.path === path); + const leaves = openedFile.map((openedFile) => openedFile.leaf); + return leaves; +}; +/** + * Adds an icon to the tab and its container. This function respects the + * custom rules and individually icon set. + * @param plugin IconizePlugin instance. + * @param file TFile instance of the file to add the icon to. + * @param iconContainer HTMLElement where the icon will be added to. + * @param options AddOptions for the add function which can optionally be used. + */ +const add$1 = (plugin, file, iconContainer, options) => __awaiter(void 0, void 0, void 0, function* () { + var _a; + const iconColor = (_a = options === null || options === void 0 ? void 0 : options.iconColor) !== null && _a !== void 0 ? _a : plugin.getSettings().iconColor; + const data = Object.entries(plugin.getData()); + // Removes the `display: none` from the obsidian styling. + iconContainer.style.display = 'flex'; + // Only add the icon name manually when it is defined in the options. + if (options === null || options === void 0 ? void 0 : options.iconName) { + dom.setIconForNode(plugin, options.iconName, iconContainer, iconColor); + // TODO: Refactor to include option to `insertIconToNode` function. + iconContainer.style.margin = null; + return; + } + // Add icons to tabs if a custom rule is applicable. + for (const rule of customRule.getSortedRules(plugin)) { + const isApplicable = yield customRule.isApplicable(plugin, rule, file); + if (isApplicable) { + dom.setIconForNode(plugin, rule.icon, iconContainer, rule.color); + // TODO: Refactor to include option to `insertIconToNode` function. + iconContainer.style.margin = null; + break; + } + } + // Add icons to tabs if there is an icon set. + const iconData = data.find(([dataPath]) => dataPath === file.path); + if (!iconData) { + return; + } + const value = iconData[1]; + if (typeof value !== 'string' && typeof value !== 'object') { + return; + } + let iconName; + if (typeof value === 'object') { + const v = value; + if (v.iconName === null) { + return; + } + iconName = v.iconName; + } + else { + iconName = value; + } + dom.setIconForNode(plugin, iconName, iconContainer, iconColor); + // TODO: Refactor to include option to `insertIconToNode` function. + iconContainer.style.margin = null; +}); +/** + * Updates the icon in the tab and container by setting calling the `setIconForNode` + * function and removing the margin from the icon container. + * @param plugin IconizePlugin instance. + * @param iconName String of the icon name to update to. + * @param iconContainer HTMLElement where the icon is located and will be updated. + */ +const update = (plugin, iconName, iconContainer) => { + dom.setIconForNode(plugin, iconName, iconContainer); + // TODO: Refactor to include option to `insertIconToNode` function. + iconContainer.style.margin = null; +}; +/** + * Removes the icon from the tab and container by setting the `display` style property + * to `none`. Optionally, the icon can be replaced with the default obsidian icon. + * @param iconContainer HTMLElement where the icon is located and will be removed from. + * @param options RemoveOptions for the remove function which can optionally be used. + */ +const remove$1 = (iconContainer, options) => { + if (!(options === null || options === void 0 ? void 0 : options.replaceWithDefaultIcon)) { + // Removes the display of the icon container to remove the icons from the tabs. + iconContainer.style.display = 'none'; + } + else { + iconContainer.innerHTML = DEFAULT_FILE_ICON; + } +}; +var iconTabs = { + add: add$1, + update, + remove: remove$1, + getTabLeavesOfFilePath, +}; + +const checkMissingIcons = (plugin, data) => __awaiter(void 0, void 0, void 0, function* () { + const missingIcons = new Set(); + const allIcons = new Map(); + const getMissingIcon = (iconNameWithPrefix) => __awaiter(void 0, void 0, void 0, function* () { + const iconNextIdentifier = nextIdentifier(iconNameWithPrefix); + const iconName = iconNameWithPrefix.substring(iconNextIdentifier); + const iconPrefix = iconNameWithPrefix.substring(0, iconNextIdentifier); + const iconPackName = getIconPackNameByPrefix(iconPrefix); + if (iconPackName === LUCIDE_ICON_PACK_NAME && + !plugin.doesUseCustomLucideIconPack()) { + return; + } + const icon = getIconFromIconPack(iconPackName, iconPrefix, iconName); + if (!icon) { + logger.error(`Icon file with name ${iconNameWithPrefix} could not be found`); + return null; + } + const doesIconFileExists = yield plugin.app.vault.adapter.exists(`${getPath()}/${iconPackName}/${iconName}.svg`); + if (!doesIconFileExists) { + const possibleIcon = getSvgFromLoadedIcon(iconPrefix, iconName); + if (!possibleIcon) { + logger.error(`Icon SVG with name ${iconNameWithPrefix} could not be found`); + return null; + } + yield extractIconToIconPack(plugin, icon, possibleIcon); + return icon; + } + return null; + }); + for (const rule of plugin.getSettings().rules) { + if (!emoji.isEmoji(rule.icon)) { + allIcons.set(rule.icon, true); + const icon = yield getMissingIcon(rule.icon); + if (icon) { + missingIcons.add(icon); + } + } + } + for (const [_, value] of data) { + // Check for missing icon names. + let iconNameWithPrefix = value; + if (typeof value === 'object') { + iconNameWithPrefix = value.iconName; + } + if (iconNameWithPrefix && !emoji.isEmoji(iconNameWithPrefix)) { + allIcons.set(iconNameWithPrefix, true); + const icon = yield getMissingIcon(iconNameWithPrefix); + if (icon) { + missingIcons.add(icon); + } + } + } + // Show notice that background check is running. + if (missingIcons.size !== 0) { + new obsidian.Notice(`[${config.PLUGIN_NAME}] Background Check: found missing icons. Adding missing icons...`, 10000); + } + // Iterates over all the missing icons with its path and adds the icon to the node. + for (const icon of missingIcons) { + const normalizedName = getNormalizedName(icon.prefix + icon.name); + const nodesWithIcon = document.querySelectorAll(`[${config.ICON_ATTRIBUTE_NAME}="${normalizedName}"]`); + nodesWithIcon.forEach((node) => { + dom.setIconForNode(plugin, normalizedName, node); + }); + } + // Show notice that background check was finished. + if (missingIcons.size !== 0) { + new obsidian.Notice(`[${config.PLUGIN_NAME}] Background Check: added missing icons`, 10000); + } + // Remove all icon files that can not be found in the data. + for (const iconPack of getAllIconPacks()) { + // Checks if the icon pack exists. + const doesIconPackExist = yield plugin.app.vault.adapter.exists(`${getPath()}/${iconPack.name}`); + if (!doesIconPackExist) { + continue; + } + const iconFiles = yield plugin.app.vault.adapter.list(`${getPath()}/${iconPack.name}`); + for (const iconFilePath of iconFiles.files) { + const iconNameWithExtension = iconFilePath.split('/').pop(); + // Removes the file extension. + const iconName = iconNameWithExtension === null || iconNameWithExtension === void 0 ? void 0 : iconNameWithExtension.substring(0, iconNameWithExtension.length - 4); + const iconNameWithPrefix = iconPack.prefix + iconName; + const doesIconExist = allIcons.get(iconNameWithPrefix); + if (!doesIconExist) { + const path = `${getPath()}/${iconPack.name}/${iconName}.svg`; + const doesPathExist = yield plugin.app.vault.adapter.exists(path); + if (doesPathExist) { + logger.info(`Removing icon with path '${path}' because it is not used anymore`); + // Removes the icon file. + yield plugin.app.vault.adapter.remove(`${getPath()}/${iconPack.name}/${iconName}.svg`); + } + } + } + } +}); +/** + * This function adds all the possible icons to the corresponding nodes. It + * adds the icons, that are defined in the data as a basic string to the nodes + * and the custom rule icons. + * @param plugin Instance of IconizePlugin. + * @param data Data that will be used to add all the icons to the nodes. + * @param registeredFileExplorers A WeakSet of file explorers that are being used as a + * cache for already handled file explorers. + * @param callback Callback is being called whenever the icons are added to one file + * explorer. + */ +const addAll = (plugin, data, registeredFileExplorers, callback) => { + const fileExplorers = plugin.app.workspace.getLeavesOfType('file-explorer'); + for (const fileExplorer of fileExplorers) { + if (registeredFileExplorers.has(fileExplorer.view)) { + continue; + } + registeredFileExplorers.add(fileExplorer.view); + // Adds icons to already open file tabs. + if (plugin.getSettings().iconInTabsEnabled) { + for (const leaf of plugin.app.workspace.getLeavesOfType('markdown')) { + const file = leaf.view.file; + if (file) { + const tabHeaderLeaf = leaf; + const iconColor = plugin.getIconColor(file.path); + iconTabs.add(plugin, file, tabHeaderLeaf.tabHeaderInnerIconEl, { + iconColor, + }); + } + } + } + for (const [dataPath, value] of data) { + const fileItem = fileExplorer.view.fileItems[dataPath]; + if (fileItem) { + const titleEl = getFileItemTitleEl(fileItem); + const titleInnerEl = getFileItemInnerTitleEl(fileItem); + // Need to check this because refreshing the plugin will duplicate all the icons. + if (titleEl.children.length === 2 || titleEl.children.length === 1) { + const iconName = typeof value === 'string' ? value : value.iconName; + const iconColor = typeof value === 'string' ? undefined : value.iconColor; + if (iconName) { + // Removes a possible existing icon. + const existingIcon = titleEl.querySelector('.iconize-icon'); + if (existingIcon) { + existingIcon.remove(); + } + // Creates the new node with the icon inside. + const iconNode = titleEl.createDiv(); + iconNode.setAttribute(config.ICON_ATTRIBUTE_NAME, iconName); + iconNode.classList.add('iconize-icon'); + IconCache.getInstance().set(dataPath, { + iconNameWithPrefix: iconName, + }); + dom.setIconForNode(plugin, iconName, iconNode, iconColor); + titleEl.insertBefore(iconNode, titleInnerEl); + } + } + } + } + // Callback function to register other events to this file explorer. + callback === null || callback === void 0 ? void 0 : callback(); + } + // Handles the custom rules. + for (const rule of customRule.getSortedRules(plugin)) { + customRule.addToAllFiles(plugin, rule); + } +}; +/** + * Gets the icon of a given path. This function returns the first occurrence of an icon. + * @param plugin Instance of the IconizePlugin. + * @param path Path to get the icon of. + * @returns The icon of the path if it exists, undefined otherwise. + */ +const getByPath = (plugin, path) => { + if (path === 'settings' || path === 'migrated') { + return undefined; + } + const value = plugin.getData()[path]; + if (typeof value === 'string') { + // If the value is a plain icon name, return it. + return value; + } + else if (typeof value === 'object') { + const v = value; + if (v.iconName !== null) { + return v.iconName; + } + } + // Tries to get the custom rule for the path and returns its icon if it exists. + const rule = customRule.getSortedRules(plugin).find((rule) => { + return customRule.doesMatchPath(rule, path); + }); + if (rule) { + return rule.icon; + } + return undefined; +}; +/** + * Gets all the icons with their paths as an object. + * @param plugin Instance of the IconizePlugin. + * @returns An object that consists of the path and the icon name for the data + * or custom rule. + */ +const getAllWithPath = (plugin) => { + const result = []; + Object.keys(plugin.getData()).forEach((path) => { + if (path === 'settings' || path === 'migrated') { + return; + } + const icon = getByPath(plugin, path); + if (icon && !emoji.isEmoji(icon)) { + result.push({ path, icon }); + } + }); + // Add all icons for the custom rules with the rule as the path. + for (const rule of plugin.getSettings().rules) { + if (!emoji.isEmoji(rule.icon)) { + result.push({ path: rule.rule, icon: rule.icon }); + } + } + return result; +}; +/** + * Returns the {@link Icon} for the given icon name. It is important, that the icon name + * contains the icon pack prefix. + * @param iconNameWithPrefix String that contains the icon pack prefix combined with the + * icon name. + * @returns Icon if it exists, `null` otherwise. + */ +const getIconByName = (iconNameWithPrefix) => { + const iconNextIdentifier = nextIdentifier(iconNameWithPrefix); + const iconName = iconNameWithPrefix.substring(iconNextIdentifier); + const iconPrefix = iconNameWithPrefix.substring(0, iconNextIdentifier); + const iconPackName = getIconPackNameByPrefix(iconPrefix); + const icon = getIconFromIconPack(iconPackName, iconPrefix, iconName); + if (!icon) { + return null; + } + return icon; +}; +/** + * Returns the {@link Icon} for the given path. + * @param plugin IconizePlugin instance. + * @param path String which is the path to get the icon of. + * @returns Icon or Emoji as string if it exists, `null` otherwise. + */ +const getIconByPath = (plugin, path) => { + const iconNameWithPrefix = getByPath(plugin, path); + if (!iconNameWithPrefix) { + return null; + } + if (emoji.isEmoji(iconNameWithPrefix)) { + return iconNameWithPrefix; + } + return getIconByName(iconNameWithPrefix); +}; +var icon = { + addAll, + getByPath, + getAllWithPath, + getIconByPath, + getIconByName, + checkMissingIcons, +}; + +class CustomIconPackSetting extends IconFolderSetting { + constructor(plugin, containerEl, refreshDisplay) { + super(plugin, containerEl); + this.refreshDisplay = refreshDisplay; + this.dragOverElement = document.createElement('div'); + this.dragOverElement.addClass('iconize-dragover-el'); + this.dragOverElement.style.display = 'hidden'; + this.dragOverElement.innerHTML = '

    Drop to add icon.

    '; + } + normalizeIconPackName(value) { + return value.toLowerCase().replace(/\s/g, '-'); + } + preventDefaults(event) { + event.preventDefault(); + event.stopPropagation(); + } + highlight(el) { + clearTimeout(this.closeTimer); + if (!this.dragTargetElement) { + el.appendChild(this.dragOverElement); + el.classList.add('iconize-dragover'); + this.dragTargetElement = el; + } + } + unhighlight(target, el) { + if (this.dragTargetElement && this.dragTargetElement !== target) { + this.dragTargetElement.removeChild(this.dragOverElement); + this.dragTargetElement.classList.remove('iconize-dragover'); + this.dragTargetElement = undefined; + } + clearTimeout(this.closeTimer); + this.closeTimer = setTimeout(() => { + if (this.dragTargetElement) { + el.removeChild(this.dragOverElement); + el.classList.remove('iconize-dragover'); + this.dragTargetElement = undefined; + } + }, 100); + } + display() { + new obsidian.Setting(this.containerEl) + .setName('Add custom icon pack') + .setDesc('Add a custom icon pack.') + .addText((text) => { + text.setPlaceholder('Your icon pack name'); + this.textComponent = text; + }) + .addButton((btn) => { + btn.setButtonText('Add icon pack'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + const name = this.textComponent.getValue(); + if (name.length === 0) { + return; + } + const normalizedName = this.normalizeIconPackName(this.textComponent.getValue()); + if (yield doesIconPackExist(this.plugin, normalizedName)) { + new obsidian.Notice('Icon pack already exists.'); + return; + } + yield createCustomIconPackDirectory(this.plugin, normalizedName); + this.textComponent.setValue(''); + this.refreshDisplay(); + new obsidian.Notice('Icon pack successfully created.'); + })); + }); + // Sorts lucide icon pack always to the top. + const iconPacks = [...getAllIconPacks()].sort((a, b) => { + if (a.name === LUCIDE_ICON_PACK_NAME) + return -1; + if (b.name === LUCIDE_ICON_PACK_NAME) + return 1; + return a.name.localeCompare(b.name); + }); + iconPacks.forEach((iconPack) => { + const isLucideIconPack = iconPack.name === LUCIDE_ICON_PACK_NAME; + const additionalLucideDescription = '(Native Pack has fewer icons but 100% Obsidian Sync support)'; + const iconPackSetting = new obsidian.Setting(this.containerEl) + .setName(`${iconPack.name} (${iconPack.prefix})`) + .setDesc(`Total icons: ${iconPack.icons.length}${isLucideIconPack ? ` ${additionalLucideDescription}` : ''}`); + // iconPackSetting.addButton((btn) => { + // btn.setIcon('broken-link'); + // btn.setTooltip('Try to fix icon pack'); + // btn.onClick(async () => { + // new Notice('Try to fix icon pack...'); + // getIconPack(iconPack.name).icons = []; + // const icons = await getFilesInDirectory(this.plugin, `${getPath()}/${iconPack.name}`); + // for (let i = 0; i < icons.length; i++) { + // const filePath = icons[i]; + // const fileName = filePath.split('/').pop(); + // const file = await this.plugin.app.vault.adapter.read(filePath); + // const iconContent = file + // .replace(/stroke="#fff"/g, 'stroke="currentColor"') + // .replace(/fill="#fff"/g, 'fill="currentColor"'); + // await this.plugin.app.vault.adapter.write(filePath, iconContent); + // await normalizeFileName(this.plugin, filePath); + // addIconToIconPack(iconPack.name, fileName, iconContent); + // } + // new Notice('...tried to fix icon pack'); + // // Refreshes the DOM. + // Object.entries(this.plugin.getData()).forEach(async ([k, v]) => { + // const doesPathExist = await this.plugin.app.vault.adapter.exists(k, true); + // if (doesPathExist && typeof v === 'string') { + // // dom.removeIconInPath(k); + // dom.createIconNode(this.plugin, k, v); + // } + // }); + // }); + // }); + if (isLucideIconPack) { + iconPackSetting.addDropdown((dropdown) => { + dropdown.addOptions({ + native: 'Native', + custom: 'Custom', + none: 'None', + }); + dropdown.setValue(this.plugin.getSettings().lucideIconPackType); + dropdown.onChange((value) => __awaiter(this, void 0, void 0, function* () { + dropdown.setDisabled(true); + new obsidian.Notice('Changing icon packs...'); + this.plugin.getSettings().lucideIconPackType = value; + yield this.plugin.saveIconFolderData(); + if (value === 'native' || value === 'none') { + yield removeCustomLucideIconPack(this.plugin); + addLucideIconsPack(this.plugin); + } + else { + yield addCustomLucideIconPack(this.plugin); + yield icon.checkMissingIcons(this.plugin, Object.entries(this.plugin.getData())); + } + dropdown.setDisabled(false); + new obsidian.Notice('Done. This change requires a restart of Obsidian'); + })); + }); + return; + } + iconPackSetting.addButton((btn) => { + btn.setIcon('plus'); + btn.setTooltip('Add an icon'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + const fileSelector = document.createElement('input'); + fileSelector.setAttribute('type', 'file'); + fileSelector.setAttribute('multiple', 'multiple'); + fileSelector.setAttribute('accept', '.svg'); + fileSelector.click(); + fileSelector.onchange = (e) => __awaiter(this, void 0, void 0, function* () { + const target = e.target; + for (let i = 0; i < target.files.length; i++) { + const file = target.files[i]; + const content = yield readFileSync(file); + yield createFile(this.plugin, iconPack.name, file.name, content); + addIconToIconPack(iconPack.name, file.name, content); + iconPackSetting.setDesc(`Total icons: ${iconPack.icons.length} (added: ${file.name})`); + } + new obsidian.Notice('Icons successfully added.'); + }); + })); + }); + iconPackSetting.addButton((btn) => { + btn.setIcon('trash'); + btn.setTooltip('Remove the icon pack'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + yield deleteIconPack(this.plugin, iconPack.name); + this.refreshDisplay(); + new obsidian.Notice('Icon pack successfully deleted.'); + })); + }); + ['dragenter', 'dragover', 'dragleave', 'drop'].forEach((event) => { + iconPackSetting.settingEl.addEventListener(event, this.preventDefaults, false); + }); + ['dragenter', 'dragover'].forEach((event) => { + iconPackSetting.settingEl.addEventListener(event, () => this.highlight(iconPackSetting.settingEl), false); + }); + ['dragleave', 'drop'].forEach((event) => { + iconPackSetting.settingEl.addEventListener(event, (event) => this.unhighlight(event.currentTarget, iconPackSetting.settingEl), false); + }); + iconPackSetting.settingEl.addEventListener('drop', (event) => __awaiter(this, void 0, void 0, function* () { + const files = event.dataTransfer.files; + let successful = false; + for (let i = 0; i < files.length; i++) { + const file = files[i]; + if (file.type !== 'image/svg+xml') { + new obsidian.Notice(`File ${file.name} is not a SVG file.`); + continue; + } + successful = true; + const content = yield readFileSync(file); + yield createFile(this.plugin, iconPack.name, file.name, content); + addIconToIconPack(iconPack.name, file.name, content); + iconPackSetting.setDesc(`Total icons: ${iconPack.icons.length} (added: ${file.name})`); + } + if (successful) { + new obsidian.Notice('Icons successfully added.'); + } + }), false); + }); + } +} + +class CustomIconRuleSetting extends IconFolderSetting { + constructor(plugin, containerEl, app, refreshDisplay) { + super(plugin, containerEl); + this.app = app; + this.refreshDisplay = refreshDisplay; + } + /** + * Updates all the open files based on the custom rule that was specified. + * @param rule Rule that will be used to update all the icons for all opened files. + * @param remove Whether to remove the icons that are applicable to the rule or not. + */ + updateIconTabs(rule_1, remove_1) { + return __awaiter(this, arguments, void 0, function* (rule, remove, cachedPaths = []) { + if (this.plugin.getSettings().iconInTabsEnabled) { + for (const openedFile of getAllOpenedFiles(this.plugin)) { + if (cachedPaths.includes(openedFile.path)) { + continue; + } + const applicable = yield customRule.isApplicable(this.plugin, rule, openedFile); + if (!applicable) { + continue; + } + const leaf = openedFile.leaf; + if (remove) { + iconTabs.remove(leaf.tabHeaderInnerIconEl, { + replaceWithDefaultIcon: true, + }); + } + else { + iconTabs.add(this.plugin, openedFile, leaf.tabHeaderInnerIconEl, { + iconName: rule.icon, + iconColor: rule.color, + }); + } + } + } + }); + } + createDescriptionEl(container, text) { + const description = container.createEl('p', { + text, + cls: 'setting-item-description', + }); + description.style.marginBottom = 'var(--size-2-2)'; + } + display() { + new obsidian.Setting(this.containerEl) + .setName('Add icon rule') + .setDesc('Will add the icon based on the defined rule (as a plain string or in regex format).') + .addText((text) => { + text.onChange((value) => { + this.chooseIconBtn.setDisabled(value.length === 0); + this.chooseIconBtn.buttonEl.style.cursor = + value.length === 0 ? 'not-allowed' : 'default'; + this.chooseIconBtn.buttonEl.style.opacity = + value.length === 0 ? '50%' : '100%'; + }); + text.setPlaceholder('regex or simple string'); + this.textComponent = text; + }) + .addButton((btn) => { + btn.setDisabled(true); + btn.setButtonText('Choose icon'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + if (this.textComponent.getValue().length === 0) { + return; + } + const modal = new IconsPickerModal(this.app, this.plugin, ''); + modal.onChooseItem = (item) => __awaiter(this, void 0, void 0, function* () { + const icon = getNormalizedName(typeof item === 'object' ? item.displayName : item); + const rule = { + rule: this.textComponent.getValue(), + icon, + for: 'everything', + order: this.plugin.getSettings().rules.length, + }; + this.plugin.getSettings().rules = [ + ...this.plugin.getSettings().rules, + rule, + ]; + yield this.plugin.saveIconFolderData(); + this.refreshDisplay(); + new obsidian.Notice('Icon rule added.'); + this.textComponent.setValue(''); + saveIconToIconPack(this.plugin, rule.icon); + yield customRule.addToAllFiles(this.plugin, rule); + this.updateIconTabs(rule, false); + }); + modal.open(); + })); + this.chooseIconBtn = btn; + }); + this.plugin.getSettings().rules.forEach((rule) => { + // Keeping track of the old rule so that we can get a reference to it for old values. + const oldRule = Object.assign({}, rule); + const settingRuleEl = new obsidian.Setting(this.containerEl) + .setName(rule.rule) + .setDesc(`Icon: ${rule.icon}`); + const currentOrder = rule.order; + /** + * Re-orders the custom rule based on the value that is passed in. + * @param valueForReorder Number that will be used to determine whether to swap the + * custom rule with the next rule or the previous rule. + */ + const orderCustomRules = (valueForReorder) => __awaiter(this, void 0, void 0, function* () { + const otherRule = this.plugin.getSettings().rules[currentOrder + valueForReorder]; + // Swap the current rule with the next rule. + otherRule.order = otherRule.order - valueForReorder; + rule.order = currentOrder + valueForReorder; + // Refreshes the DOM. + yield customRule.removeFromAllFiles(this.plugin, oldRule); + yield this.plugin.saveIconFolderData(); + const addedPaths = []; + for (const fileExplorer of this.plugin.getRegisteredFileExplorers()) { + const files = Object.values(fileExplorer.fileItems); + for (const rule of customRule.getSortedRules(this.plugin)) { + // Removes the icon tabs from all opened files. + this.updateIconTabs(rule, true, addedPaths); + // Adds the icon tabs to all opened files. + this.updateIconTabs(rule, false, addedPaths); + for (const fileItem of files) { + if (addedPaths.includes(fileItem.file.path)) { + continue; + } + const added = yield customRule.add(this.plugin, rule, fileItem.file, getFileItemTitleEl(fileItem)); + if (added) { + addedPaths.push(fileItem.file.path); + } + } + } + } + this.refreshDisplay(); + }); + // Add the move down custom rule button to re-order the custom rule. + settingRuleEl.addExtraButton((btn) => { + const isFirstOrder = currentOrder === 0; + btn.setDisabled(isFirstOrder); + btn.extraSettingsEl.style.cursor = isFirstOrder + ? 'not-allowed' + : 'default'; + btn.extraSettingsEl.style.opacity = isFirstOrder ? '50%' : '100%'; + btn.setIcon('arrow-up'); + btn.setTooltip('Prioritize the custom rule'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + yield orderCustomRules(-1); + })); + }); + // Add the move up custom rule button to re-order the custom rule. + settingRuleEl.addExtraButton((btn) => { + const isLastOrder = currentOrder === this.plugin.getSettings().rules.length - 1; + btn.setDisabled(isLastOrder); + btn.extraSettingsEl.style.cursor = isLastOrder + ? 'not-allowed' + : 'default'; + btn.extraSettingsEl.style.opacity = isLastOrder ? '50%' : '100%'; + btn.setIcon('arrow-down'); + btn.setTooltip('Deprioritize the custom rule'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + yield orderCustomRules(1); + })); + }); + // Add the edit custom rule button. + settingRuleEl.addButton((btn) => { + btn.setIcon('pencil'); + btn.setTooltip('Edit the custom rule'); + btn.onClick(() => { + var _a, _b; + // Create modal and its children elements. + const modal = new obsidian.Modal(this.plugin.app); + modal.contentEl.style.display = 'block'; + modal.modalEl.classList.add('iconize-custom-modal'); + modal.titleEl.setText('Edit custom rule'); + // Create the input for the rule. + this.createDescriptionEl(modal.contentEl, 'Regex or simple string'); + const input = new obsidian.TextComponent(modal.contentEl); + input.setValue(rule.rule); + input.onChange((value) => __awaiter(this, void 0, void 0, function* () { + rule.rule = value; + })); + const useFilePathContainer = modal.contentEl.createDiv(); + useFilePathContainer.style.display = 'flex'; + useFilePathContainer.style.alignItems = 'center'; + useFilePathContainer.style.justifyContent = 'space-between'; + useFilePathContainer.style.marginTop = 'var(--size-4-5)'; + const useFilePathDescription = useFilePathContainer.createEl('p', { + text: 'Include folders and files that are part of the path.', + cls: 'setting-item-description', + }); + useFilePathDescription.style.margin = '0'; + useFilePathDescription.style.marginBottom = 'var(--size-2-2)'; + new obsidian.ToggleComponent(useFilePathContainer) + .setValue(rule.useFilePath === true) + .onChange((value) => { + rule.useFilePath = value; + }); + // Create the toggle for changing the rule type. + const ruleTypeContainer = modal.contentEl.createDiv(); + ruleTypeContainer.style.display = 'flex'; + ruleTypeContainer.style.alignItems = 'center'; + ruleTypeContainer.style.justifyContent = 'space-between'; + ruleTypeContainer.style.marginTop = 'var(--size-4-5)'; + const ruleTypeDescription = ruleTypeContainer.createEl('p', { + text: 'Where the custom rule gets applied to.', + cls: 'setting-item-description', + }); + ruleTypeDescription.style.margin = '0'; + ruleTypeDescription.style.marginBottom = 'var(--size-2-2)'; + const ruleTypeButton = new obsidian.ButtonComponent(ruleTypeContainer); + const setButtonContent = (isFor) => { + if (isFor === 'folders') { + ruleTypeButton.setIcon('folder'); + } + else if (isFor === 'files') { + ruleTypeButton.setIcon('document'); + } + else { + ruleTypeButton.setIcon('documents'); + } + ruleTypeButton.setTooltip(`Icon applicable to: ${isFor}`); + }; + setButtonContent((_a = rule.for) !== null && _a !== void 0 ? _a : 'everything'); + ruleTypeButton.onClick(() => __awaiter(this, void 0, void 0, function* () { + var _c; + const isFor = (_c = rule.for) !== null && _c !== void 0 ? _c : 'everything'; + this.updateIconTabs(rule, true); + yield customRule.removeFromAllFiles(this.plugin, Object.assign(Object.assign({}, rule), { for: isFor })); + if (isFor === 'folders') { + rule.for = 'everything'; + } + else if (isFor === 'files') { + rule.for = 'folders'; + } + else { + rule.for = 'files'; + } + setButtonContent(rule.for); + })); + // Create the change icon button with icon preview. + this.createDescriptionEl(modal.contentEl, 'Custom rule icon'); + const iconContainer = modal.contentEl.createDiv(); + iconContainer.style.display = 'flex'; + iconContainer.style.alignItems = 'center'; + iconContainer.style.justifyContent = 'space-between'; + const iconEl = iconContainer.createDiv(); + const iconPreviewEl = iconEl.createDiv(); + dom.setIconForNode(this.plugin, rule.icon, iconPreviewEl); + iconEl.style.display = 'flex'; + iconEl.style.alignItems = 'center'; + iconEl.style.justifyContent = 'space-between'; + iconEl.style.margin = null; + iconPreviewEl.innerHTML = svg.setFontSize(iconPreviewEl.innerHTML, 20); + const iconNameEl = iconEl.createEl('div', { + cls: 'setting-item-description', + }); + iconNameEl.style.paddingTop = '0'; + iconNameEl.style.marginLeft = 'var(--size-2-2)'; + iconNameEl.innerText = rule.icon; + const changeIconBtn = new obsidian.ButtonComponent(iconContainer); + changeIconBtn.setButtonText('Change icon'); + changeIconBtn.onClick(() => __awaiter(this, void 0, void 0, function* () { + const modal = new IconsPickerModal(this.app, this.plugin, rule.icon); + modal.onChooseItem = (item) => __awaiter(this, void 0, void 0, function* () { + const icon = typeof item === 'object' ? item.displayName : item; + rule.icon = icon; + dom.setIconForNode(this.plugin, rule.icon, iconPreviewEl); + iconPreviewEl.innerHTML = svg.setFontSize(iconPreviewEl.innerHTML, 20); + iconNameEl.innerText = getNormalizedName(rule.icon); + }); + modal.open(); + })); + // Create the color picker for the rule. + this.createDescriptionEl(modal.contentEl, 'Color of the icon'); + const colorContainer = modal.contentEl.createDiv(); + colorContainer.style.display = 'flex'; + colorContainer.style.alignItems = 'center'; + colorContainer.style.justifyContent = 'space-between'; + const colorPicker = new obsidian.ColorComponent(colorContainer) + .setValue((_b = rule.color) !== null && _b !== void 0 ? _b : '#000000') + .onChange((value) => { + rule.color = value; + }); + const defaultColorButton = new obsidian.ButtonComponent(colorContainer); + defaultColorButton.setTooltip('Set color to the default one'); + defaultColorButton.setButtonText('Default'); + defaultColorButton.onClick(() => { + colorPicker.setValue('#000000'); + rule.color = undefined; + }); + // Create the save button. + const button = new obsidian.ButtonComponent(modal.contentEl); + button.buttonEl.style.marginTop = 'var(--size-4-4)'; + button.buttonEl.style.float = 'right'; + button.setButtonText('Save Changes'); + button.onClick(() => __awaiter(this, void 0, void 0, function* () { + if (!emoji.isEmoji(oldRule.icon)) { + // Tries to remove the previously used icon from the icon pack. + removeIconFromIconPack(this.plugin, oldRule.icon); + } + if (!emoji.isEmoji(rule.icon)) { + // Tries to add the newly used icon to the icon pack. + saveIconToIconPack(this.plugin, rule.icon); + rule.icon = getNormalizedName(rule.icon); + } + this.refreshDisplay(); + new obsidian.Notice('Custom rule updated.'); + // Refresh the DOM. + yield customRule.removeFromAllFiles(this.plugin, oldRule); + this.updateIconTabs(rule, true); + this.plugin.getSettings().rules.forEach((rule) => __awaiter(this, void 0, void 0, function* () { + yield customRule.addToAllFiles(this.plugin, rule); + this.updateIconTabs(rule, false); + })); + yield this.plugin.saveIconFolderData(); + modal.close(); + })); + modal.open(); + }); + }); + // Add the delete custom rule button. + settingRuleEl.addButton((btn) => { + btn.setIcon('trash'); + btn.setTooltip('Remove the custom rule'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + const newRules = this.plugin + .getSettings() + .rules.filter((r) => rule.rule !== r.rule || + rule.color !== r.color || + rule.icon !== r.icon || + rule.for !== r.for); + this.plugin.getSettings().rules = newRules; + yield this.plugin.saveIconFolderData(); + this.refreshDisplay(); + new obsidian.Notice('Custom rule deleted.'); + yield customRule.removeFromAllFiles(this.plugin, rule); + removeIconFromIconPack(this.plugin, rule.icon); + this.updateIconTabs(rule, true); + const previousRules = this.plugin + .getSettings() + .rules.filter((r) => rule.for === r.for); + previousRules.forEach((previousRule) => __awaiter(this, void 0, void 0, function* () { + yield customRule.addToAllFiles(this.plugin, previousRule); + this.updateIconTabs(previousRule, false); + })); + })); + }); + }); + } +} + +const getTitleIcon = (leaf) => { + return leaf.querySelector(`.${config.TITLE_ICON_CLASS}`); +}; +const add = (plugin, inlineTitleEl, svgElement, options) => { + var _a; + if (!inlineTitleEl.parentElement) { + return; + } + if (options === null || options === void 0 ? void 0 : options.fontSize) { + svgElement = svg.setFontSize(svgElement, options.fontSize); + } + let titleIcon = getTitleIcon(inlineTitleEl.parentElement); + if (!titleIcon) { + titleIcon = document.createElement('div'); + } + const isInline = plugin.getSettings().iconInTitlePosition === IconInTitlePosition.Inline; + if (isInline) { + titleIcon.style.display = 'inline-block'; + titleIcon.style.removeProperty('margin-inline'); + titleIcon.style.removeProperty('width'); + } + else { + titleIcon.style.display = 'block'; + titleIcon.style.width = 'var(--line-width)'; + titleIcon.style.marginInline = '0'; + } + titleIcon.classList.add(config.TITLE_ICON_CLASS); + // Checks if the passed element is an emoji. + if (emoji.isEmoji(svgElement) && options.fontSize) { + svgElement = + (_a = emoji.parseEmoji(plugin.getSettings().emojiStyle, svgElement, options.fontSize)) !== null && _a !== void 0 ? _a : svgElement; + titleIcon.style.fontSize = `${options.fontSize}px`; + } + titleIcon.innerHTML = svgElement; + let wrapperElement = inlineTitleEl.parentElement; + // Checks the parent and selects the correct wrapper element. + // This should only happen in the beginning. + if (wrapperElement && + !wrapperElement.classList.contains(config.INLINE_TITLE_WRAPPER_CLASS)) { + wrapperElement = wrapperElement.querySelector(`.${config.INLINE_TITLE_WRAPPER_CLASS}`); + } + // Whenever there is no correct wrapper element, we create one. + if (!wrapperElement) { + wrapperElement = inlineTitleEl.parentElement.createDiv(); + wrapperElement.classList.add(config.INLINE_TITLE_WRAPPER_CLASS); + } + // Avoiding adding the same nodes together when changing the title. + if (wrapperElement !== inlineTitleEl.parentElement) { + inlineTitleEl.parentElement.prepend(wrapperElement); + } + if (isInline) { + wrapperElement.style.display = 'flex'; + wrapperElement.style.alignItems = 'flex-start'; + const inlineTitlePaddingTop = getComputedStyle(inlineTitleEl, null).getPropertyValue('padding-top'); + titleIcon.style.paddingTop = inlineTitlePaddingTop; + if (emoji.isEmoji(svgElement)) { + titleIcon.style.transform = 'translateY(-9%)'; + } + else { + titleIcon.style.transform = 'translateY(9%)'; + } + } + else { + wrapperElement.style.display = 'block'; + titleIcon.style.transform = 'translateY(9%)'; + } + wrapperElement.append(titleIcon); + wrapperElement.append(inlineTitleEl); +}; +const updateStyle = (inlineTitleEl, options) => { + if (!inlineTitleEl.parentElement) { + return; + } + const titleIcon = getTitleIcon(inlineTitleEl.parentElement); + if (!titleIcon) { + return; + } + if (options.fontSize) { + if (!emoji.isEmoji(titleIcon.innerHTML)) { + titleIcon.innerHTML = svg.setFontSize(titleIcon.innerHTML, options.fontSize); + } + else { + titleIcon.style.fontSize = `${options.fontSize}px`; + } + } +}; +/** + * Hides the title icon from the provided HTMLElement. + * @param contentEl HTMLElement to hide the title icon from. + */ +const hide = (inlineTitleEl) => { + if (!inlineTitleEl.parentElement) { + return; + } + const titleIconContainer = getTitleIcon(inlineTitleEl.parentElement); + if (!titleIconContainer) { + return; + } + titleIconContainer.style.display = 'none'; +}; +const remove = (inlineTitleEl) => { + if (!inlineTitleEl.parentElement) { + return; + } + const titleIconContainer = getTitleIcon(inlineTitleEl.parentElement); + if (!titleIconContainer) { + return; + } + titleIconContainer.remove(); +}; +var titleIcon = { + add, + updateStyle, + hide, + remove, +}; + +const calculateFontTextSize = () => { + var _a; + let fontSize = parseFloat((_a = getComputedStyle(document.body).getPropertyValue('--font-text-size')) !== null && _a !== void 0 ? _a : '0'); + if (!fontSize) { + fontSize = parseFloat(getComputedStyle(document.documentElement).fontSize); + } + return fontSize; +}; +const calculateInlineTitleSize = () => { + const fontSize = calculateFontTextSize(); + const inlineTitleSizeValue = getComputedStyle(document.body).getPropertyValue('--inline-title-size'); + const unit = inlineTitleSizeValue.replace(/[\d.]/g, ''); + let inlineTitleSize = parseFloat(inlineTitleSizeValue); + if (unit === 'px') { + inlineTitleSize /= 16; + } + return fontSize * inlineTitleSize; +}; +const isHeader = (value) => { + return /^h[1-6]$/.test(value); +}; +const getHTMLHeaderByToken = (header) => { + for (let i = 1; i <= 6; i++) { + if (header === `header-${i}`) { + return `h${i}`; + } + } + return null; +}; +const calculateHeaderSize = (header) => { + var _a; + const fontSize = calculateFontTextSize(); + const htmlHeader = (_a = getHTMLHeaderByToken(header)) !== null && _a !== void 0 ? _a : header; + const headerComputedStyle = getComputedStyle(document.body).getPropertyValue(`--${htmlHeader}-size`); + let headerSize = parseFloat(headerComputedStyle); + if (isPx(headerComputedStyle)) { + headerSize = pxToRem(headerSize, fontSize); + } + // If there is some `calc` operation going on, it has to be evaluated. + if (headerComputedStyle.includes('calc')) { + const temp = document.createElement('div'); + temp.style.setProperty('font-size', `var(--${htmlHeader}-size)`); + document.body.appendChild(temp); + const computedStyle = window.getComputedStyle(temp); + const computedValue = computedStyle.getPropertyValue('font-size'); + headerSize = parseFloat(computedValue); + if (isPx(computedValue)) { + headerSize = pxToRem(headerSize, fontSize); + } + document.body.removeChild(temp); + } + return fontSize * headerSize; +}; +const pxToRem = (px, baseSize = 16) => { + return px / baseSize; +}; +const isPx = (value) => { + return /^-?\d+(\.\d+)?px$/.test(value); +}; + +class EmojiStyleSetting extends IconFolderSetting { + display() { + const emojiStyle = new obsidian.Setting(this.containerEl) + .setName('Emoji style') + .setDesc('Change the style of your emojis.'); + emojiStyle.addDropdown((dropdown) => { + dropdown.addOption('native', 'Native'); + dropdown.addOption('twemoji', 'Twemoji'); + dropdown.setValue(this.plugin.getSettings().emojiStyle); + dropdown.onChange((value) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().emojiStyle = value; + this.updateDOM(); + yield this.plugin.saveIconFolderData(); + })); + }); + } + updateDOM() { + for (const fileExplorer of this.plugin.getRegisteredFileExplorers()) { + const fileItems = Object.entries(fileExplorer.fileItems); + for (const [path, _] of fileItems) { + let iconName = this.plugin.getData()[path]; + if (!iconName) { + continue; + } + const data = this.plugin.getData()[path]; + if (typeof data === 'object') { + const data = this.plugin.getData()[path]; + if (data.iconName) { + iconName = data.iconName; + } + } + if (emoji.isEmoji(iconName)) { + dom.createIconNode(this.plugin, path, iconName); + if (this.plugin.getSettings().iconInTabsEnabled) { + const tabLeaves = iconTabs.getTabLeavesOfFilePath(this.plugin, path); + for (const tabLeaf of tabLeaves) { + iconTabs.update(this.plugin, iconName, tabLeaf.tabHeaderInnerIconEl); + } + } + if (this.plugin.getSettings().iconInTitleEnabled) { + for (const openedFile of getAllOpenedFiles(this.plugin)) { + const activeView = openedFile.leaf.view; + if (activeView instanceof obsidian.MarkdownView && + openedFile.path === path) { + titleIcon.add(this.plugin, activeView.inlineTitleEl, iconName, { + fontSize: calculateInlineTitleSize(), + }); + } + } + } + } + } + } + for (const rule of customRule.getSortedRules(this.plugin)) { + customRule.addToAllFiles(this.plugin, rule); + } + } +} + +/** + * Helper function that refreshes the style of all the icons that are defined + * or in a custom rule involved. + * @param plugin Instance of the IconizePlugin. + */ +const refreshStyleOfIcons = (plugin) => __awaiter(void 0, void 0, void 0, function* () { + // Refreshes the icon style for all normally added icons. + style.refreshIconNodes(plugin); + // Refreshes the icon style for all custom icon rules, when the color of the rule is + // not defined. + for (const rule of customRule.getSortedRules(plugin)) { + const fileItems = yield customRule.getFileItems(plugin, rule); + for (const fileItem of fileItems) { + const titleEl = getFileItemTitleEl(fileItem); + const iconNode = titleEl.querySelector('.iconize-icon'); + let iconContent = iconNode.innerHTML; + iconContent = style.applyAll(plugin, iconContent, iconNode); + if (rule.color) { + iconContent = svg.colorize(iconContent, rule.color); + iconNode.style.color = rule.color; + } + iconNode.innerHTML = iconContent; + } + } +}); +var helper = { + refreshStyleOfIcons, +}; + +class ExtraMarginSetting extends IconFolderSetting { + display() { + var _a, _b; + const extraMarginSetting = new obsidian.Setting(this.containerEl) + .setName('Extra margin (in pixels)') + .setDesc('Change the margin of the icons.') + .setClass('iconize-setting'); + const extraMarginDropdown = new obsidian.DropdownComponent(extraMarginSetting.controlEl).addOptions({ + top: 'Top', + right: 'Right', + bottom: 'Bottom', + left: 'Left', + }); + const extraMarginSlider = new obsidian.SliderComponent(extraMarginSetting.controlEl) + .setLimits(-24, 24, 1) + .setDynamicTooltip() + .setValue((_b = (_a = this.plugin.getSettings().extraMargin) === null || _a === void 0 ? void 0 : _a.top) !== null && _b !== void 0 ? _b : 2) + .onChange((val) => __awaiter(this, void 0, void 0, function* () { + const dropdownValue = extraMarginDropdown.getValue(); + if (this.plugin.getSettings().extraMargin) { + this.plugin.getSettings().extraMargin[dropdownValue] = val; + } + else { + this.plugin.getSettings().extraMargin = { + [dropdownValue]: val, + }; + } + yield this.plugin.saveIconFolderData(); + helper.refreshStyleOfIcons(this.plugin); + })); + extraMarginDropdown.onChange((val) => { + var _a; + if (this.plugin.getSettings().extraMargin) { + extraMarginSlider.setValue((_a = this.plugin.getSettings().extraMargin[val]) !== null && _a !== void 0 ? _a : 2); + } + else { + extraMarginSlider.setValue(2); + } + }); + extraMarginSetting.components.push(extraMarginDropdown, extraMarginSlider); + } +} + +class ResetButtonComponent extends obsidian.ButtonComponent { + constructor(contentEl) { + super(contentEl); + this.contentEl = contentEl; + this.setTooltip('Restore default'); + this.setIcon('rotate-ccw'); + this.render(); + } + render() { + this.buttonEl.classList.add('clickable-icon'); + this.buttonEl.classList.add('extra-setting-button'); + } +} + +const DEFAULT_VALUE = DEFAULT_SETTINGS.iconColor; +class IconColorSetting extends IconFolderSetting { + display() { + var _a; + const setting = new obsidian.Setting(this.containerEl) + .setName('Icon color') + .setDesc('Change the color of the displayed icons.'); + new ResetButtonComponent(setting.controlEl).onClick(() => __awaiter(this, void 0, void 0, function* () { + colorPicker.setValue(DEFAULT_VALUE); + this.plugin.getSettings().iconColor = null; + // Custom saving to not save the color black in the data. + yield this.plugin.saveIconFolderData(); + helper.refreshStyleOfIcons(this.plugin); + })); + const colorPicker = new obsidian.ColorComponent(setting.controlEl) + .setValue((_a = this.plugin.getSettings().iconColor) !== null && _a !== void 0 ? _a : DEFAULT_VALUE) + .onChange((value) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().iconColor = value; + yield this.plugin.saveIconFolderData(); + helper.refreshStyleOfIcons(this.plugin); + })); + } +} + +const values = { + min: 10, + max: 64, + default: DEFAULT_SETTINGS.fontSize, + step: 1, +}; +class IconFontSizeSetting extends IconFolderSetting { + display() { + const setting = new obsidian.Setting(this.containerEl) + .setName('Icon font size (in pixels)') + .setDesc('Change the font size of the displayed icons.'); + new ResetButtonComponent(setting.controlEl).onClick(() => { + this.slider.setValue(values.default); + }); + setting.addSlider((slider) => { + var _a; + this.slider = slider; + slider + .setLimits(values.min, values.max, values.step) + .setDynamicTooltip() + .setValue((_a = this.plugin.getSettings().fontSize) !== null && _a !== void 0 ? _a : DEFAULT_SETTINGS.fontSize) + .onChange((val) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().fontSize = val; + yield this.plugin.saveIconFolderData(); + helper.refreshStyleOfIcons(this.plugin); + })); + }); + } +} + +class IconPacksPathSetting extends IconFolderSetting { + display() { + const iconPacksPathSetting = new obsidian.Setting(this.containerEl) + .setName('Icon packs folder path') + .setDesc('Change the default icon packs folder path.'); + iconPacksPathSetting.addText((text) => { + this.iconPacksSettingTextComp = text; + text.setValue(this.plugin.getSettings().iconPacksPath); + }); + iconPacksPathSetting.addButton((btn) => { + btn.setButtonText('Save'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + const newPath = this.iconPacksSettingTextComp.getValue(); + const oldPath = this.plugin.getSettings().iconPacksPath; + if (oldPath === this.iconPacksSettingTextComp.getValue()) { + return; + } + new obsidian.Notice('Saving in progress...'); + setPath(newPath); + yield createDefaultDirectory(this.plugin); + yield moveIconPackDirectories(this.plugin, oldPath, newPath); + this.plugin.getSettings().iconPacksPath = newPath; + yield this.plugin.saveIconFolderData(); + new obsidian.Notice('...saved successfully'); + })); + }); + } +} + +class IconPacksBackgroundChecker extends IconFolderSetting { + display() { + new obsidian.Setting(this.containerEl) + .setName('Icons background check') + .setDesc('Check in the background on every load of Obsidian, if icons are missing and it will try to add them to the specific icon pack.') + .addToggle((toggle) => { + toggle + .setValue(this.plugin.getSettings().iconsBackgroundCheckEnabled) + .onChange((enabled) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().iconsBackgroundCheckEnabled = enabled; + yield this.plugin.saveIconFolderData(); + if (enabled) { + new obsidian.Notice('You need to reload Obsidian for this to take effect.', 10000); + } + })); + }); + } +} + +class IconPackBrowserModal extends obsidian.FuzzySuggestModal { + constructor(app, plugin) { + super(app); + this.plugin = plugin; + this.resultContainerEl.classList.add('iconize-browse-modal'); + this.inputEl.placeholder = 'Select to download icon pack'; + } + // eslint-disable-next-line + onAddedIconPack() { } + onOpen() { + super.onOpen(); + } + onClose() { + this.contentEl.empty(); + } + getItemText(item) { + const prefix = createIconPackPrefix(item.name); + return `${item.displayName} (${prefix})`; + } + getItems() { + const predefinedIconPacks = Object.values(iconPacks$1); + const allIconPacks = getAllIconPacks(); + return predefinedIconPacks.filter((iconPack) => allIconPacks.find((ip) => iconPack.name === ip.name) === undefined); + } + onChooseItem(item, _event) { + return __awaiter(this, void 0, void 0, function* () { + new obsidian.Notice(`Adding ${item.displayName}...`); + const arrayBuffer = yield downloadZipFile(item.downloadLink); + yield createZipFile(this.plugin, `${item.name}.zip`, arrayBuffer); + yield registerIconPack(item.name, arrayBuffer); + new obsidian.Notice(`...${item.displayName} added`); + this.onAddedIconPack(); + }); + } + renderSuggestion(item, el) { + super.renderSuggestion(item, el); + el.innerHTML = `
    ${el.innerHTML}
    `; + } +} + +class PredefinedIconPacksSetting extends IconFolderSetting { + constructor(plugin, containerEl, app, refreshDisplay) { + super(plugin, containerEl); + this.app = app; + this.refreshDisplay = refreshDisplay; + } + display() { + new obsidian.Setting(this.containerEl) + .setName('Add predefined icon pack') + .setDesc('Add a predefined icon pack that is officially supported.') + .addButton((btn) => { + btn.setButtonText('Browse icon packs'); + btn.onClick(() => { + const modal = new IconPackBrowserModal(this.app, this.plugin); + modal.onAddedIconPack = () => { + this.refreshDisplay(); + }; + modal.open(); + }); + }); + } +} + +class RecentlyUsedIconsSetting extends IconFolderSetting { + display() { + new obsidian.Setting(this.containerEl) + .setName('Recently used icons limit') + .setDesc('Change the limit for the recently used icons displayed in the icon selection modal.') + .addSlider((slider) => { + var _a; + slider + .setLimits(1, 25, 1) + .setDynamicTooltip() + .setValue((_a = this.plugin.getSettings().recentlyUsedIconsSize) !== null && _a !== void 0 ? _a : DEFAULT_SETTINGS.recentlyUsedIconsSize) + .onChange((val) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().recentlyUsedIconsSize = val; + yield this.plugin.checkRecentlyUsedIcons(); + yield this.plugin.saveIconFolderData(); + })); + }); + } +} + +class ToggleIconInTabs extends IconFolderSetting { + display() { + new obsidian.Setting(this.containerEl) + .setName('Toggle icon in tabs') + .setDesc('Toggles the visibility of an icon for a file in the tab bar.') + .addToggle((toggle) => { + toggle + .setValue(this.plugin.getSettings().iconInTabsEnabled) + .onChange((enabled) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().iconInTabsEnabled = enabled; + yield this.plugin.saveIconFolderData(); + // Updates the already opened files. + this.plugin.app.workspace + .getLeavesOfType('markdown') + .forEach((leaf) => { + const file = leaf.view.file; + if (file) { + const tabHeaderLeaf = leaf; + if (enabled) { + // Adds the icons to already opened files. + iconTabs.add(this.plugin, file, tabHeaderLeaf.tabHeaderInnerIconEl); + } + else { + // Removes the icons from already opened files. + iconTabs.remove(tabHeaderLeaf.tabHeaderInnerIconEl); + } + } + }); + })); + }); + } +} + +class ToggleIconInTitle extends IconFolderSetting { + updateLeaves(options) { + this.plugin.app.workspace.getLeavesOfType('markdown').forEach((leaf) => { + const view = leaf.view; + if (view instanceof obsidian.MarkdownView) { + const foundIcon = icon.getIconByPath(this.plugin, view.file.path); + if (foundIcon && options.enabled) { + if (options.removeBeforeReAdd) { + // Remove the icon before re-adding it. This is needed to update the DOM because + // the icon node will be inserted in the beginning inline title node. + titleIcon.remove(view.contentEl); + } + const content = typeof foundIcon === 'string' ? foundIcon : foundIcon.svgElement; + titleIcon.add(this.plugin, view.inlineTitleEl, content, { + fontSize: calculateInlineTitleSize(), + }); + } + else { + titleIcon.remove(view.contentEl); + } + } + }); + } + display() { + new obsidian.Setting(this.containerEl) + .setName('Toggle icon in title') + .setDesc('Toggles the visibility of an icon above the title of a file.') + .addDropdown((dropdown) => { + this.dropdown = dropdown; + dropdown.setDisabled(!this.plugin.getSettings().iconInTitleEnabled); + dropdown.addOptions({ + above: 'Above title', + inline: 'Next to title', + }); + dropdown.setValue(this.plugin.getSettings().iconInTitlePosition); + dropdown.onChange((value) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().iconInTitlePosition = + value; + yield this.plugin.saveIconFolderData(); + this.updateLeaves({ enabled: true, removeBeforeReAdd: true }); + })); + }) + .addToggle((toggle) => { + toggle + .setValue(this.plugin.getSettings().iconInTitleEnabled) + .onChange((enabled) => __awaiter(this, void 0, void 0, function* () { + if (this.dropdown) { + this.dropdown.setDisabled(!enabled); + } + this.plugin.getSettings().iconInTitleEnabled = enabled; + yield this.plugin.saveIconFolderData(); + this.updateLeaves({ enabled }); + })); + }); + } +} + +class FrontmatterOptions extends IconFolderSetting { + display() { + new obsidian.Setting(this.containerEl) + .setName('Use icon in frontmatter') + .setDesc('Toggles whether to set the icon based on the frontmatter property `icon`.') + .addToggle((toggle) => { + toggle + .setValue(this.plugin.getSettings().iconInFrontmatterEnabled) + .onChange((enabled) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().iconInFrontmatterEnabled = enabled; + yield this.plugin.saveIconFolderData(); + })); + }); + new obsidian.Setting(this.containerEl) + .setName('Frontmatter icon field name') + .setDesc('Sets the name of the frontmatter field which contains the icon.') + .addText((text) => { + this.iconFieldNameTextComp = text; + text.setValue(this.plugin.getSettings().iconInFrontmatterFieldName); + }) + .addButton((button) => { + button.setButtonText('Save'); + button.onClick(() => __awaiter(this, void 0, void 0, function* () { + const newValue = this.iconFieldNameTextComp.getValue(); + const oldValue = this.plugin.getSettings().iconInFrontmatterFieldName; + if (newValue === oldValue) { + return; + } + this.plugin.getSettings().iconInFrontmatterFieldName = newValue; + yield this.plugin.saveIconFolderData(); + new obsidian.Notice('...saved successfully'); + })); + }); + new obsidian.Setting(this.containerEl) + .setName('Frontmatter icon color field name') + .setDesc('Sets the name of the frontmatter field which contains the icon color.') + .addText((text) => { + this.iconColorFieldNameTextComp = text; + text.setValue(this.plugin.getSettings().iconColorInFrontmatterFieldName); + }) + .addButton((button) => { + button.setButtonText('Save'); + button.onClick(() => __awaiter(this, void 0, void 0, function* () { + const newValue = this.iconColorFieldNameTextComp.getValue(); + const oldValue = this.plugin.getSettings().iconColorInFrontmatterFieldName; + if (newValue === oldValue) { + return; + } + this.plugin.getSettings().iconColorInFrontmatterFieldName = newValue; + yield this.plugin.saveIconFolderData(); + new obsidian.Notice('...saved successfully'); + })); + }); + new obsidian.Setting(this.containerEl) + .setName('Refresh icons from frontmatter') + .setDesc('Sets the icon and color for each note in the vault based on the frontmatter properties. WARNING: This will change any manually set icons to the one defined in the frontmatter. IF A NOTE HAS NO FRONTMATTER, THE CURRENT ICON WILL BE REMOVED. Please restart Obsidian after this completes to see the changes.') + .addButton((btn) => { + btn.setButtonText('Refresh').onClick(() => __awaiter(this, void 0, void 0, function* () { + var _a, _b; + if (!this.plugin.getSettings().iconInFrontmatterEnabled) { + new obsidian.Notice(`[${config.PLUGIN_NAME}] Please enable "Use icon in frontmatter".`); + return; + } + new obsidian.Notice(`[${config.PLUGIN_NAME}] Refreshing icons from frontmatter, please wait...`); + const files = this.plugin.app.vault.getMarkdownFiles(); + for (const file of files) { + const fileCache = this.plugin.app.metadataCache.getFileCache(file); + const frontmatterIconKey = this.plugin.getSettings().iconInFrontmatterFieldName; + const frontmatterIconColorKey = this.plugin.getSettings().iconColorInFrontmatterFieldName; + const iconName = (_a = fileCache.frontmatter) === null || _a === void 0 ? void 0 : _a[frontmatterIconKey]; + let iconColor = (_b = fileCache.frontmatter) === null || _b === void 0 ? void 0 : _b[frontmatterIconColorKey]; + if (!iconName) { + yield this.plugin.removeFolderIcon(file.path); + continue; + } + if (typeof iconName !== 'string') { + const message = `${file.path}\nFrontmatter property type \`${frontmatterIconKey}\` has to be of type \`text\`.`; + logger.warn(message); + new obsidian.Notice(`[${config.PLUGIN_NAME}]\n${message}`); + continue; + } + this.plugin.addFolderIcon(file.path, iconName); + if (!iconColor) { + yield this.plugin.removeIconColor(file.path); + continue; + } + if (typeof iconColor !== 'string') { + const message = `${file.path}\nFrontmatter property type \`${frontmatterIconColorKey}\` has to be of type \`text\`.`; + logger.warn(message); + new obsidian.Notice(`[${config.PLUGIN_NAME}]\n${message}`); + continue; + } + iconColor = isHexadecimal(iconColor) + ? stringToHex(iconColor) + : iconColor; + this.plugin.addIconColor(file.path, iconColor); + } + new obsidian.Notice(`[${config.PLUGIN_NAME}] Refreshed icons from frontmatter. Please restart Obsidian to see the changes.`); + })); + }); + } +} + +class ToggleIconsInEditor extends IconFolderSetting { + display() { + new obsidian.Setting(this.containerEl) + .setName('Toggle icons while editing notes') + .setDesc('Toggles whether you are able to add and see icons in your notes and editor (e.g., ability to have :LiSofa: as an icon in your notes).') + .addToggle((toggle) => { + toggle + .setValue(this.plugin.getSettings().iconsInNotesEnabled) + .onChange((enabled) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().iconsInNotesEnabled = enabled; + yield this.plugin.saveIconFolderData(); + new obsidian.Notice(`[${config.PLUGIN_NAME}] Obsidian has to be restarted for this change to take effect.`); + })); + }); + } +} + +class ToggleIconsInLinks extends IconFolderSetting { + display() { + new obsidian.Setting(this.containerEl) + .setName('Toggle icons in links') + .setDesc('Toggles whether you are able to see icons in the links to other notes') + .addToggle((toggle) => { + toggle + .setValue(this.plugin.getSettings().iconsInLinksEnabled) + .onChange((enabled) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().iconsInLinksEnabled = enabled; + yield this.plugin.saveIconFolderData(); + new obsidian.Notice(`[${config.PLUGIN_NAME}] Obsidian has to be restarted for this change to take effect.`); + })); + }); + } +} + +class IconIdentifierSetting extends IconFolderSetting { + display() { + const setting = new obsidian.Setting(this.containerEl) + .setName('Icon identifier') + .setDesc('Change the icon identifier used in notes.') + .setClass('iconize-setting'); + setting.addText((text) => { + this.textComp = text; + text.setValue(this.plugin.getSettings().iconIdentifier); + }); + setting.addButton((btn) => { + btn.setButtonText('Save'); + btn.onClick(() => __awaiter(this, void 0, void 0, function* () { + const newIdentifier = this.textComp.getValue(); + const oldIdentifier = this.plugin.getSettings().iconIdentifier; + if (newIdentifier === oldIdentifier) { + return; + } + this.plugin.getSettings().iconIdentifier = newIdentifier; + yield this.plugin.saveIconFolderData(); + new obsidian.Notice('...saved successfully'); + })); + }); + } +} + +class DebugMode extends IconFolderSetting { + display() { + new obsidian.Setting(this.containerEl) + .setName('Toggle Debug Mode') + .setDesc('Toggle debug mode to see more detailed logs in the console. Do not touch this unless you know what you are doing.') + .addToggle((toggle) => { + toggle + .setValue(this.plugin.getSettings().debugMode) + .onChange((enabled) => __awaiter(this, void 0, void 0, function* () { + this.plugin.getSettings().debugMode = enabled; + yield this.plugin.saveIconFolderData(); + })); + }); + } +} + +class IconFolderSettings extends obsidian.PluginSettingTab { + constructor(app, plugin) { + super(app, plugin); + this.plugin = plugin; + } + display() { + const { plugin, containerEl, app } = this; + containerEl.empty(); + containerEl.createEl('h1', { text: 'General' }); + new RecentlyUsedIconsSetting(plugin, containerEl).display(); + new IconPacksPathSetting(plugin, containerEl).display(); + new IconPacksBackgroundChecker(plugin, containerEl).display(); + new EmojiStyleSetting(plugin, containerEl).display(); + new IconIdentifierSetting(plugin, containerEl).display(); + new DebugMode(plugin, containerEl).display(); + containerEl.createEl('h3', { text: 'Visibility of icons' }); + new ToggleIconInTabs(plugin, containerEl).display(); + new ToggleIconInTitle(plugin, containerEl).display(); + new FrontmatterOptions(plugin, containerEl).display(); + new ToggleIconsInEditor(plugin, containerEl).display(); + new ToggleIconsInLinks(plugin, containerEl).display(); + containerEl.createEl('h1', { + text: 'Icon customization for files/folders', + }); + new IconFontSizeSetting(plugin, containerEl).display(); + new IconColorSetting(plugin, containerEl).display(); + new ExtraMarginSetting(plugin, containerEl).display(); + containerEl.createEl('h1', { text: 'Custom icon rules' }); + new CustomIconRuleSetting(plugin, containerEl, app, () => this.display()).display(); + containerEl.createEl('h1', { text: 'Icon packs' }); + new PredefinedIconPacksSetting(plugin, containerEl, app, () => this.display()).display(); + new CustomIconPackSetting(plugin, containerEl, () => this.display()).display(); + } +} + +function around(obj, factories) { + const removers = Object.keys(factories).map(key => around1(obj, key, factories[key])); + return removers.length === 1 ? removers[0] : function () { removers.forEach(r => r()); }; +} +function around1(obj, method, createWrapper) { + const original = obj[method], hadOwn = obj.hasOwnProperty(method); + let current = createWrapper(original); + // Let our wrapper inherit static props from the wrapping method, + // and the wrapping method, props from the original method + if (original) + Object.setPrototypeOf(current, original); + Object.setPrototypeOf(wrapper, current); + obj[method] = wrapper; + // Return a callback to allow safe removal + return remove; + function wrapper(...args) { + // If we have been deactivated and are no longer wrapped, remove ourselves + if (current === original && obj[method] === wrapper) + remove(); + return current.apply(this, args); + } + function remove() { + // If no other patches, just do a direct removal + if (obj[method] === wrapper) { + if (hadOwn) + obj[method] = original; + else + delete obj[method]; + } + if (current === original) + return; + // Else pass future calls through, and remove wrapper from the prototype chain + current = original; + Object.setPrototypeOf(wrapper, original || Function); + } +} + +class InternalPluginInjector { + constructor(plugin) { + this.plugin = plugin; + } + get fileExplorers() { + return this.plugin.app.workspace.getLeavesOfType('file-explorer'); + } + onMount() { } +} + +/** + * @deprecated After obsidian 1.2.6 in favor of the bookmarks plugin. + */ +class StarredInternalPlugin extends InternalPluginInjector { + constructor(plugin) { + super(plugin); + } + get starred() { + return this.plugin.app.internalPlugins.getPluginById('starred'); + } + get enabled() { + return this.plugin.app.internalPlugins.getPluginById('starred').enabled; + } + get leaf() { + const leaf = this.plugin.app.workspace.getLeavesOfType('starred'); + if (!leaf) { + return undefined; + } + if (leaf.length === 1) { + return leaf[0].view; + } + return undefined; + } + setIcon(filePath, node) { + const iconName = icon.getByPath(this.plugin, filePath); + const iconNode = node.querySelector('.nav-file-icon'); + if (!iconNode || !iconName) { + return; + } + dom.setIconForNode(this.plugin, iconName, iconNode); + } + computeNodesWithPath(callback) { + const { itemLookup, containerEl } = this.leaf; + const navFileEls = containerEl.querySelectorAll('.nav-file'); + navFileEls.forEach((navFileEl) => { + const lookupFile = itemLookup.get(navFileEl); + if (!lookupFile) { + return; + } + callback(navFileEl, lookupFile.path); + }); + } + onMount() { + const nodesWithPath = {}; + this.computeNodesWithPath((node, filePath) => { + nodesWithPath[filePath] = node; + }); + Object.entries(nodesWithPath).forEach(([filePath, node]) => this.setIcon(filePath, node)); + } + register() { + if (!this.plugin.app.internalPlugins.getPluginById('file-explorer').enabled) { + console.info(`[${config.PLUGIN_NAME}/Starred] Skipping starred internal plugin registration because file-explorer is not enabled.`); + return; + } + if (!this.enabled) { + console.info(`[${config.PLUGIN_NAME}/Starred] Skipping starred internal plugin registration because it's not enabled.`); + return; + } + // eslint-disable-next-line + const self = this; + this.plugin.register(around(this.starred.instance, { + addItem: function (next) { + return function (file) { + next.call(this, file); + self.onMount(); + }; + }, + removeItem: function (next) { + return function (file) { + next.call(this, file); + self.onMount(); + }; + }, + })); + } +} + +class BookmarkInternalPlugin extends InternalPluginInjector { + constructor(plugin) { + super(plugin); + } + get bookmark() { + return this.plugin.app.internalPlugins.getPluginById('bookmarks'); + } + get enabled() { + return this.plugin.app.internalPlugins.getPluginById('bookmarks').enabled; + } + get leaf() { + const leaf = this.plugin.app.workspace.getLeavesOfType('bookmarks'); + if (!leaf) { + return undefined; + } + if (leaf.length === 1) { + return leaf[0].view; + } + return undefined; + } + setIconOrRemove(filePath, node) { + var _a; + const iconName = icon.getByPath(this.plugin, filePath); + let iconNode = node.querySelector('.tree-item-icon'); + if (!iconName) { + if (iconNode) { + // Reset the icon to the default obsidian icon. + const items = this.bookmark.instance.items; + const item = items.find((item) => item.path === filePath); + if ((item === null || item === void 0 ? void 0 : item.type) === 'file') { + iconNode.innerHTML = DEFAULT_FILE_ICON; + } + else if ((item === null || item === void 0 ? void 0 : item.type) === 'folder') { + iconNode.innerHTML = DEFAULT_FOLDER_ICON; + } + } + return; + } + // If the icon node is not defined, then we need to recreate it. + if (!iconNode) { + // Get the tree-item-self element where the original icon is set. + const treeItemSelf = node.querySelector('.tree-item-self'); + if (!treeItemSelf) { + return; + } + iconNode = node.createDiv({ cls: 'tree-item-icon' }); + // Prepends the icon to the tree-item-self element as a first child. + treeItemSelf.prepend(iconNode); + } + const defaultMargin = iconNode.style.margin; + const iconColor = (_a = this.plugin.getIconColor(filePath)) !== null && _a !== void 0 ? _a : this.plugin.getSettings().iconColor; + dom.setIconForNode(this.plugin, iconName, iconNode, iconColor); + // Reset the margin to the default value to prevent overlapping with the text. + iconNode.style.margin = defaultMargin; + } + computeNodesWithPath(callback) { + if (!this.leaf) { + return; + } + /** + * Retrieves the lookup item from the bookmark plugin and calls the callback with the + * element and the path of the item. + * @param item BookmarkItem object which can be a folder or a file. + * @param itemDoms WeakMap of the bookmark plugin which contains the lookup item. + */ + const retrieveLookupItem = (item, itemDoms) => { + const lookupItem = itemDoms.get(item); + if (!lookupItem) { + return; + } + if (item.items) { + // If the item is a folder, then we need to retrieve all the items inside it. + for (const subItem of item.items) { + retrieveLookupItem(subItem, itemDoms); + } + } + // If the item is a `file` or a `folder` (not of type `group`), then we can call the callback. + if (item.type === 'file' || item.type === 'folder') { + callback(lookupItem.el, item.path); + } + }; + const { itemDoms } = this.leaf; + // Retrieves all the items of the bookmark plugin which areo objects. + const items = this.bookmark.instance.items; + items.forEach((item) => { + retrieveLookupItem(item, itemDoms); + }); + } + onMount() { + const nodesWithPath = {}; + this.computeNodesWithPath((node, filePath) => { + nodesWithPath[filePath] = node; + }); + Object.entries(nodesWithPath).forEach(([filePath, node]) => this.setIconOrRemove(filePath, node)); + } + register() { + if (!this.plugin.app.internalPlugins.getPluginById('file-explorer').enabled) { + console.info(`[${config.PLUGIN_NAME}/Bookmarks] Skipping bookmark internal plugin registration because file-explorer is not enabled.`); + return; + } + if (!this.enabled) { + console.info(`[${config.PLUGIN_NAME}/Bookmarks] Skipping bookmark internal plugin registration because it's not enabled.`); + return; + } + // eslint-disable-next-line + const self = this; + this.plugin.register(around(this.bookmark.instance, { + addItem: function (next) { + return function (...args) { + next.call(this, ...args); + // TODO: Remove in the future, I could not think of a better way to do this. + setTimeout(() => { + self.onMount(); + }, 1000); + }; + }, + removeItem: function (next) { + return function (...args) { + next.call(this, ...args); + self.onMount(); + }; + }, + })); + } +} + +// TODO: Optimize the code to reduce the number of iterations and improve the +const createIconShortcodeRegex = (plugin) => { + return new RegExp(`(${plugin.getSettings().iconIdentifier})((\\w{1,64}:\\d{17,18})|(\\w{1,64}))(${plugin.getSettings().iconIdentifier})`, 'g'); +}; +const createTreeWalker = (plugin, root) => { + return document.createTreeWalker(root, NodeFilter.SHOW_ALL, { + acceptNode: function (node) { + if (node.nodeName === 'CODE') { + return NodeFilter.FILTER_REJECT; + } + else if (node.nodeName === '#text') { + if (node.nodeValue && + (emoji.getRegex().test(node.nodeValue) || + createIconShortcodeRegex(plugin).test(node.nodeValue))) { + return NodeFilter.FILTER_ACCEPT; + } + else { + return NodeFilter.FILTER_REJECT; + } + } + return NodeFilter.FILTER_SKIP; + }, + }); +}; +const checkForTextNodes = (treeWalker, match, cb) => { + let currentNode = treeWalker.currentNode; + while (currentNode) { + if (currentNode.nodeType === Node.TEXT_NODE) { + const text = currentNode; + const textNodes = [...Array.from(text.parentElement.childNodes)].filter((n) => n instanceof Text); + for (const text of textNodes) { + for (const code of [...text.wholeText.matchAll(match)] + .sort((a, b) => b.index - a.index) + .map((arr) => ({ text: arr[0], index: arr.index }))) { + if (!text.textContent) { + continue; + } + cb(text, code); + } + } + } + currentNode = treeWalker.nextNode(); + } +}; +const processIconInTextMarkdown = (plugin, element) => { + // Ignore if codeblock + const codeElement = element.querySelector('pre > code'); + if (codeElement) { + return; + } + const iconTreeWalker = createTreeWalker(plugin, element); + const iconShortcodeRegex = createIconShortcodeRegex(plugin); + const iconIdentifierLength = plugin.getSettings().iconIdentifier.length; + checkForTextNodes(iconTreeWalker, iconShortcodeRegex, (text, code) => { + var _a, _b, _c, _d; + const shortcode = code.text; + const iconName = shortcode.slice(iconIdentifierLength, shortcode.length - iconIdentifierLength); + const iconObject = icon.getIconByName(iconName); + if (iconObject) { + const toReplace = text.splitText(code.index); + const rootSpan = createSpan({ + cls: 'cm-iconize-icon', + attr: { + 'aria-label': iconName, + 'data-icon': iconName, + 'aria-hidden': 'true', + }, + }); + rootSpan.style.display = 'inline-flex'; + rootSpan.style.transform = 'translateY(13%)'; + const tagName = (_c = (_b = (_a = toReplace.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : ''; + let fontSize = calculateFontTextSize(); + if (isHeader(tagName)) { + fontSize = calculateHeaderSize(tagName); + const svgElement = svg.setFontSize(iconObject.svgElement, fontSize); + rootSpan.innerHTML = svgElement; + } + else { + const svgElement = svg.setFontSize(iconObject.svgElement, fontSize); + rootSpan.innerHTML = svgElement; + } + (_d = toReplace.parentElement) === null || _d === void 0 ? void 0 : _d.insertBefore(rootSpan, toReplace); + toReplace.textContent = toReplace.wholeText.substring(code.text.length); + } + }); + const emojiTreeWalker = createTreeWalker(plugin, element); + checkForTextNodes(emojiTreeWalker, emoji.getRegex(), (text, code) => { + var _a, _b, _c, _d; + if (!emoji.isEmoji(code.text)) { + return; + } + if (plugin.getSettings().emojiStyle === 'twemoji') { + const toReplace = text.splitText(code.index); + const tagName = (_c = (_b = (_a = toReplace.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : ''; + let fontSize = calculateFontTextSize(); + if (isHeader(tagName)) { + fontSize = calculateHeaderSize(tagName); + } + const emojiValue = emoji.parseEmoji(plugin.getSettings().emojiStyle, code.text, fontSize); + if (!emojiValue) { + return; + } + const emojiNode = createSpan(); + emojiNode.innerHTML = emojiValue; + (_d = toReplace.parentElement) === null || _d === void 0 ? void 0 : _d.insertBefore(emojiNode, toReplace); + toReplace.textContent = toReplace.wholeText.substring(code.text.length); + } + }); +}; + +const processIconInLinkMarkdown = (plugin, element, ctx) => { + const linkElements = element.querySelectorAll('a'); + if (!linkElements || linkElements.length === 0) { + return; + } + linkElements.forEach((linkElement) => { + var _a, _b, _c, _d, _e; + // Skip if the link element e.g., is a tag. + if (!linkElement.hasAttribute('data-href')) { + return; + } + const linkHref = linkElement.getAttribute('href'); + if (!linkHref) { + logger.warn('Link element does not have an `href` attribute'); + return; + } + const file = plugin.app.metadataCache.getFirstLinkpathDest(linkHref, ctx.sourcePath); + if (!file) { + logger.warn('Link element does not have a linkpath to a file'); + return; + } + const path = file.path; + const iconValue = icon.getIconByPath(plugin, path); + if (!iconValue) { + return; + } + let fontSize = calculateFontTextSize(); + const tagName = (_c = (_b = (_a = linkElement.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === null || _b === void 0 ? void 0 : _b.toLowerCase()) !== null && _c !== void 0 ? _c : ''; + if (isHeader(tagName)) { + fontSize = calculateHeaderSize(tagName); + } + const iconName = typeof iconValue === 'string' + ? iconValue + : iconValue.prefix + iconValue.name; + const rootSpan = createSpan({ + cls: 'iconize-icon-in-link', + attr: { + title: iconName, + 'aria-label': iconName, + 'data-icon': iconName, + 'aria-hidden': 'true', + }, + }); + rootSpan.style.color = + (_d = plugin.getIconColor(path)) !== null && _d !== void 0 ? _d : plugin.getSettings().iconColor; + if (emoji.isEmoji(iconName)) { + const parsedEmoji = (_e = emoji.parseEmoji(plugin.getSettings().emojiStyle, iconName, fontSize)) !== null && _e !== void 0 ? _e : iconName; + rootSpan.style.transform = 'translateY(0)'; + rootSpan.innerHTML = parsedEmoji; + } + else { + let svgEl = icon.getIconByName(iconName).svgElement; + svgEl = svg.setFontSize(svgEl, fontSize); + if (svgEl) { + rootSpan.style.transform = 'translateY(20%)'; + rootSpan.innerHTML = svgEl; + } + } + linkElement.prepend(rootSpan); + }); +}; + +const TREE_ITEM_CLASS = 'tree-item-self'; +const TREE_ITEM_INNER = 'tree-item-inner'; +class OutlineInternalPlugin extends InternalPluginInjector { + constructor(plugin) { + super(plugin); + } + register() { + if (!this.enabled) { + logger.info('Skipping internal plugin registration because it is not enabled.', LoggerPrefix.Outline); + return; + } + const updateTreeItems = () => { + var _a; + const treeItems = Array.from(this.leaf.tree.containerEl.querySelectorAll(`.${TREE_ITEM_CLASS}`)); + for (const treeItem of treeItems) { + const treeItemInner = treeItem.querySelector(`.${TREE_ITEM_INNER}`); + let text = treeItemInner === null || treeItemInner === void 0 ? void 0 : treeItemInner.getText(); + if (!text) { + continue; + } + const iconShortcodeRegex = createIconShortcodeRegex(this.plugin); + const iconIdentifierLength = this.plugin.getSettings().iconIdentifier.length; + let trimmedLength = 0; + for (const code of [...text.matchAll(iconShortcodeRegex)] + .sort((a, b) => a.index - b.index) + .map((arr) => ({ text: arr[0], index: arr.index }))) { + const shortcode = code.text; + const iconName = shortcode.slice(iconIdentifierLength, shortcode.length - iconIdentifierLength); + const iconObject = icon.getIconByName(iconName); + if (iconObject) { + const startIndex = code.index - trimmedLength; + const endIndex = code.index + code.text.length - trimmedLength; + const str = text.substring(0, startIndex) + text.substring(endIndex); + const iconSpan = createSpan({ + cls: 'cm-iconize-icon', + attr: { + 'aria-label': iconName, + 'data-icon': iconName, + 'aria-hidden': 'true', + }, + }); + const fontSize = parseFloat((_a = getComputedStyle(document.body).getPropertyValue('--nav-item-size')) !== null && _a !== void 0 ? _a : '16'); + const svgElement = svg.setFontSize(iconObject.svgElement, fontSize); + iconSpan.style.display = 'inline-flex'; + iconSpan.style.transform = 'translateY(13%)'; + iconSpan.innerHTML = svgElement; + treeItemInner.innerHTML = treeItemInner.innerHTML.replace(shortcode, iconSpan.outerHTML); + text = str; + trimmedLength += code.text.length; + } + } + } + }; + this.plugin.getEventEmitter().once('allIconsLoaded', () => { + updateTreeItems(); + const callback = (mutations) => { + mutations.forEach((mutation) => { + if (mutation.type !== 'childList') { + return; + } + const addedNodes = mutation.addedNodes; + if (addedNodes.length === 0) { + return; + } + updateTreeItems(); + }); + if (!this.enabled) { + observer.disconnect(); + } + }; + const observer = new MutationObserver(callback); + observer.observe(this.leaf.tree.containerEl, { + childList: true, + subtree: true, + }); + }); + } + get leaf() { + const leaf = this.plugin.app.workspace.getLeavesOfType('outline'); + if (!leaf) { + logger.log('`leaf` in outline is undefined', LoggerPrefix.Outline); + return undefined; + } + if (leaf.length === 0) { + logger.log('`leaf` length in outline is 0', LoggerPrefix.Outline); + return undefined; + } + return leaf[0].view; + } + get outline() { + return this.plugin.app.internalPlugins.getPluginById('outline'); + } + get enabled() { + return this.plugin.app.internalPlugins.getPluginById('outline').enabled; + } +} + +class SuggestionIcon extends obsidian.EditorSuggest { + constructor(app, plugin) { + super(app); + this.plugin = plugin; + } + onTrigger(cursor, editor) { + // Isolate shortcode starting position closest to the cursor. + const shortcodeStart = editor + .getLine(cursor.line) + .substring(0, cursor.ch) + .lastIndexOf(this.plugin.getSettings().iconIdentifier); + // `onTrigger` needs to return `null` as soon as possible to save processing performance. + if (shortcodeStart === -1) { + return null; + } + // Regex for checking if the shortcode is not done yet. + const regex = new RegExp(`^(${this.plugin.getSettings().iconIdentifier})\\w+$`, 'g'); + const regexOngoingShortcode = editor + .getLine(cursor.line) + .substring(shortcodeStart, cursor.ch) + .match(regex); + if (regexOngoingShortcode === null) { + return null; + } + const startingIndex = editor + .getLine(cursor.line) + .indexOf(regexOngoingShortcode[0]); + return { + start: { + line: cursor.line, + ch: startingIndex, + }, + end: { + line: cursor.line, + ch: startingIndex + regexOngoingShortcode[0].length, + }, + query: regexOngoingShortcode[0], + }; + } + getSuggestions(context) { + const queryLowerCase = context.query + .substring(this.plugin.getSettings().iconIdentifier.length) + .toLowerCase(); + // Store all icons corresponding to the current query. + const iconsNameArray = getAllLoadedIconNames() + .filter((iconObject) => { + const name = iconObject.prefix.toLowerCase() + iconObject.name.toLowerCase(); + return name.toLowerCase().includes(queryLowerCase); + }) + .map((iconObject) => iconObject.prefix + iconObject.name); + // Store all emojis correspoding to the current query - parsing whitespaces and + // colons for shortcodes compatibility. + const emojisNameArray = Object.keys(emoji.shortNames).filter((e) => { var _a; return (_a = emoji.getShortcode(e)) === null || _a === void 0 ? void 0 : _a.includes(queryLowerCase); }); + return [...iconsNameArray, ...emojisNameArray]; + } + renderSuggestion(value, el) { + const iconObject = icon.getIconByName(value); + el.style.display = 'flex'; + el.style.alignItems = 'center'; + el.style.gap = '0.25rem'; + if (iconObject) { + // Suggest an icon. + el.innerHTML = `${iconObject.svgElement} ${value}`; + } + else { + // Suggest an emoji - display its shortcode version. + const shortcode = emoji.getShortcode(value); + if (shortcode) { + el.innerHTML = `${value} ${shortcode}`; + } + } + } + selectSuggestion(value) { + const isEmoji = emoji.isEmoji(value.replace(/_/g, ' ')); + if (!isEmoji) { + saveIconToIconPack(this.plugin, value); + } + // Replace query with iconNameWithPrefix or emoji unicode directly. + const updatedValue = isEmoji + ? value + : `${this.plugin.getSettings().iconIdentifier}${value}${this.plugin.getSettings().iconIdentifier}`; + this.context.editor.replaceRange(updatedValue, this.context.start, this.context.end); + } +} + +class IconInTextWidget extends view.WidgetType { + constructor(plugin, id) { + super(); + this.plugin = plugin; + this.id = id; + this.start = -1; + this.end = -1; + } + setPosition(start, end) { + this.start = start; + this.end = end; + } + eq(other) { + return other instanceof IconInTextWidget && other.id === this.id; + } + getSize(view) { + let fontSize = calculateFontTextSize(); + const line = view.state.doc.lineAt(this.end); + const headerMatch = line.text.match(/^#{1,6}\s/); + if (headerMatch && headerMatch[0].trim()) { + const mapping = { + '#': 'h1', + '##': 'h2', + '###': 'h3', + '####': 'h4', + '#####': 'h5', + '######': 'h6', + }; + const header = mapping[headerMatch[0].trim()]; + fontSize = calculateHeaderSize(header); + } + return fontSize; + } + toDOM(view) { + const wrap = createSpan({ + cls: 'cm-iconize-icon', + attr: { + 'aria-label': this.id, + 'data-icon': this.id, + 'aria-hidden': 'true', + }, + }); + const foundIcon = icon.getIconByName(this.id); + const fontSize = this.getSize(view); + if (foundIcon) { + const svgElement = svg.setFontSize(foundIcon.svgElement, fontSize); + wrap.style.display = 'inline-flex'; + wrap.style.transform = 'translateY(13%)'; + wrap.innerHTML = svgElement; + } + else if (emoji.isEmoji(this.id)) { + wrap.innerHTML = emoji.parseEmoji(this.plugin.getSettings().emojiStyle, this.id, fontSize); + } + else { + wrap.append(`${this.plugin.getSettings().iconIdentifier}${this.id}${this.plugin.getSettings().iconIdentifier}`); + } + return wrap; + } + ignoreEvent() { + return false; + } +} + +class IconInLinkWidget extends view.WidgetType { + constructor(plugin, iconData, path, headerType) { + super(); + this.plugin = plugin; + this.iconData = iconData; + this.path = path; + this.headerType = headerType; + } + toDOM() { + var _a; + const iconNode = document.createElement('span'); + const iconName = typeof this.iconData === 'string' + ? this.iconData + : this.iconData.prefix + this.iconData.name; + iconNode.style.color = + (_a = this.plugin.getIconColor(this.path)) !== null && _a !== void 0 ? _a : this.plugin.getSettings().iconColor; + iconNode.setAttribute('title', iconName); + iconNode.classList.add('iconize-icon-in-link'); + if (typeof this.iconData === 'string') { + iconNode.style.transform = 'translateY(0)'; + } + let innerHTML = typeof this.iconData === 'string' + ? this.iconData + : this.iconData.svgElement; + let fontSize = calculateFontTextSize(); + if (this.headerType) { + fontSize = calculateHeaderSize(this.headerType); + } + if (emoji.isEmoji(innerHTML)) { + innerHTML = emoji.parseEmoji(this.plugin.getSettings().emojiStyle, innerHTML, fontSize); + } + else { + innerHTML = svg.setFontSize(innerHTML, fontSize); + } + iconNode.innerHTML = innerHTML; + return iconNode; + } + ignoreEvent() { + return true; + } +} + +const buildLinkDecorations = (view$1, plugin) => { + const builder = new state.RangeSetBuilder(); + const mdView = view$1.state.field(obsidian.editorInfoField); + for (const { from, to } of view$1.visibleRanges) { + language.syntaxTree(view$1.state).iterate({ + from, + to, + enter: (node) => { + const tokenProps = node.type.prop(language.tokenClassNodeProp); + if (tokenProps) { + const props = new Set(tokenProps.split(' ')); + const isLink = props.has('hmd-internal-link'); + const headerType = [ + 'header-1', + 'header-2', + 'header-3', + 'header-4', + 'header-5', + 'header-6', + ].find((header) => props.has(header)); + if (isLink) { + let linkText = view$1.state.doc.sliceString(node.from, node.to); + linkText = linkText.split('#')[0]; + const file = plugin.app.metadataCache.getFirstLinkpathDest(linkText, mdView.file.basename); + if (file) { + const possibleIcon = icon.getIconByPath(plugin, file.path); + if (possibleIcon) { + const iconDecoration = view.Decoration.widget({ + widget: new IconInLinkWidget(plugin, possibleIcon, file.path, headerType), + }); + builder.add(node.from, node.from, iconDecoration); + } + } + } + } + }, + }); + } + return builder.finish(); +}; + +const buildTextDecorations = (view$1, plugin) => { + const ranges = []; + const iconInfo = view$1.state.field(plugin.positionField); + for (const { from, to } of view$1.visibleRanges) { + iconInfo.between(from - 1, to + 1, (from, to, { iconId }) => { + ranges.push([iconId, from, to]); + }); + } + return view.Decoration.set(ranges.map(([code, from, to]) => { + const widget = new IconInTextWidget(plugin, code); + widget.setPosition(from, to); + if (view$1.state.field(obsidian.editorLivePreviewField)) { + return view.Decoration.replace({ + widget, + side: -1, + }).range(from, to); + } + return view.Decoration.widget({ + widget, + side: -1, + }).range(to); + }), true); +}; + +const buildIconInTextPlugin = (plugin) => { + return view.ViewPlugin.fromClass(class IconPlugin { + constructor(view) { + this.plugin = plugin; + this.decorations = buildTextDecorations(view, plugin); + } + update(update) { + this.decorations = buildTextDecorations(update.view, this.plugin); + } + }, { + decorations: (v) => v.decorations, + provide: (plugin) => view.EditorView.atomicRanges.of((view$1) => { + const value = view$1.plugin(plugin); + return value ? value.decorations : view.Decoration.none; + }), + }); +}; + +const buildIconInLinksPlugin = (plugin) => { + return view.ViewPlugin.fromClass(class { + constructor(view) { + this.plugin = plugin; + this.decorations = buildLinkDecorations(view, plugin); + } + destroy() { } + update(update) { + if (update.docChanged || update.viewportChanged) { + this.decorations = buildLinkDecorations(update.view, this.plugin); + } + } + }, { + decorations: (v) => v.decorations, + }); +}; + +// TODO: Optimize the code to reduce the number of iterations and improve the +function checkForSourceMode(plugin) { + let isSourceMode = false; + // Iterate over all leaves to check if any is in source mode + plugin.app.workspace.iterateAllLeaves((leaf) => { + var _a; + if (!isSourceMode && leaf.view.getViewType() === 'markdown') { + if ((_a = leaf.getViewState().state) === null || _a === void 0 ? void 0 : _a.source) { + isSourceMode = true; + } + } + }); + return isSourceMode; +} +class IconPosition extends state.RangeValue { + constructor(text) { + super(); + this.text = text; + } + get iconId() { + return this.text; + } + eq(other) { + return other instanceof IconPosition && other.text === this.text; + } +} +/** + * Builds a position field for the editor state. This field will track the + * positions of the icons in the document. + **/ +const buildPositionField = (plugin) => { + /** + * Checks the ranges of the icons in the document. If the range is not + * excluded, the range is added to the range set. If the range is excluded, + * the range is removed from the range set. + * @param state EditorState to get the ranges from. + * @param excludeFrom Number to exclude from the ranges. + * @param excludeTo Number to exclude to the ranges. + * @param updateRange Function callback to update the range. + */ + const checkRanges = (state, excludeFrom, excludeTo, updateRange) => { + const isSourceMode = checkForSourceMode(plugin); + const text = state.doc.sliceString(0, state.doc.length); + const identifier = plugin.getSettings().iconIdentifier; + const regex = new RegExp(`(${identifier})((\\w{1,64}:\\d{17,18})|(\\w{1,64}))(${identifier})`, 'g'); + for (const { 0: rawCode, index: offset } of text.matchAll(regex)) { + const iconName = rawCode.substring(identifier.length, rawCode.length - identifier.length); + if (!icon.getIconByName(iconName)) { + continue; + } + const from = offset; + const to = offset + rawCode.length; + if (!isNodeInRangeAccepted(state, from, to)) { + continue; + } + if (offset < excludeFrom || offset > excludeTo) { + updateRange(from, to, new IconPosition(iconName), isSourceMode); + continue; + } + updateRange(from, to, new IconPosition(iconName), true); + } + for (const { 0: emojiName, index: offset } of text.matchAll(emoji.getRegex())) { + if (!emoji.isEmoji(emojiName)) { + continue; + } + const from = offset; + const to = offset + emojiName.length; + if (!isNodeInRangeAccepted(state, from, to)) { + continue; + } + if (offset < excludeFrom || offset > excludeTo) { + updateRange(from, to, new IconPosition(emojiName), isSourceMode); + continue; + } + updateRange(from, to, new IconPosition(emojiName), true); + } + }; + const isNodeInRangeAccepted = (state, from, to) => { + let isRangeAccepted = true; + language.syntaxTree(state).iterate({ + from, + to, + enter: ({ type }) => { + var _a; + if (type.name === 'Document') { + return; + } + const allowedNodeTypes = [ + 'header', + 'strong', + 'em', + 'quote', + 'link', + 'list-1', + 'list-2', + 'list-3', + 'highlight', + 'footref', + 'comment', + 'link-alias', + ]; + const excludedNodeTypes = [ + 'formatting', + 'hmd-codeblock', + 'inline-code', + 'hr', + ]; + const nodeProps = (_a = type.prop(language.tokenClassNodeProp)) !== null && _a !== void 0 ? _a : ''; + const s = new Set(nodeProps.split(' ')); + if (excludedNodeTypes.some((t) => s.has(t)) && + allowedNodeTypes.every((t) => !s.has(t))) { + isRangeAccepted = false; + } + }, + }); + return isRangeAccepted; + }; + return state.StateField.define({ + create: (state$1) => { + const rangeSet = new state.RangeSetBuilder(); + const changedLines = []; + checkRanges(state$1, -1, -1, (from, to, iconPosition) => { + changedLines.push({ from, to, iconPosition }); + }); + changedLines.sort((a, b) => a.from - b.from); + for (const { from, to, iconPosition } of changedLines) { + rangeSet.add(from, to, iconPosition); + } + return rangeSet.finish(); + }, + update: (rangeSet, transaction) => { + const newRanges = []; + if (!transaction.docChanged) { + if (transaction.selection) { + const from = transaction.selection.ranges[0].from; + const to = transaction.selection.ranges[0].to; + const lineEnd = transaction.state.doc.lineAt(to).length; + const lineStart = transaction.state.doc.lineAt(from).from; + // Checks the ranges of the icons in the document except for the + // excluded line start and end. + checkRanges(transaction.state, lineStart, lineStart + lineEnd, (from, to, value, removed) => { + rangeSet = rangeSet.update({ + filterFrom: from, + filterTo: to, + filter: () => false, + }); + if (!removed) { + newRanges.push(value.range(from, to)); + } + }); + } + else { + checkRanges(transaction.state, -1, -1, (from, to, value, removed) => { + rangeSet = rangeSet.update({ + filterFrom: from, + filterTo: to, + filter: () => false, + }); + if (!removed) { + newRanges.push(value.range(from, to)); + } + }); + } + newRanges.sort((a, b) => a.from - b.from); + rangeSet = rangeSet.update({ add: newRanges }); + return rangeSet; + } + rangeSet = rangeSet.map(transaction.changes); + const changedLines = []; + transaction.changes.iterChangedRanges((_f, _t, from, to) => { + changedLines.push([ + transaction.state.doc.lineAt(from).number, + transaction.state.doc.lineAt(to).number, + ]); + }); + for (const [start, end] of changedLines) { + const from = transaction.state.doc.line(start).from; + const to = transaction.state.doc.line(end).to; + rangeSet = rangeSet.update({ + filterFrom: from, + filterTo: to, + filter: () => false, + }); + const lineEnd = transaction.state.doc.line(end).length; + const lineStart = transaction.state.doc.line(end).from; + // Checks the ranges of the icons in the document except for the excluded + // line start and end. + checkRanges(transaction.state, lineStart, lineStart + lineEnd, (from, to, value, removed) => { + if (!removed) { + newRanges.push(value.range(from, to)); + } + }); + } + newRanges.sort((a, b) => a.from - b.from); + rangeSet = rangeSet.update({ add: newRanges }); + return rangeSet; + }, + }); +}; + +class ChangeColorModal extends obsidian.Modal { + constructor(app, plugin, path) { + var _a; + super(app); + this.plugin = plugin; + this.path = path; + this.usedColor = this.plugin.getIconColor(this.path); + this.contentEl.style.display = 'block'; + this.modalEl.classList.add('iconize-custom-modal'); + this.titleEl.setText('Change color'); + const description = this.contentEl.createEl('p', { + text: 'Select a color for this icon', + cls: 'setting-item-description', + }); + description.style.marginBottom = 'var(--size-2-2)'; + const colorContainer = this.contentEl.createDiv(); + colorContainer.style.display = 'flex'; + colorContainer.style.alignItems = 'center'; + colorContainer.style.justifyContent = 'space-between'; + const colorPicker = new obsidian.ColorComponent(colorContainer) + .setValue((_a = this.usedColor) !== null && _a !== void 0 ? _a : '#000000') + .onChange((value) => { + this.usedColor = value; + }); + const defaultColorButton = new obsidian.ButtonComponent(colorContainer); + defaultColorButton.setTooltip('Set color to the default one'); + defaultColorButton.setButtonText('Reset'); + defaultColorButton.onClick(() => { + colorPicker.setValue('#000000'); + this.usedColor = undefined; + }); + // Save button. + const button = new obsidian.ButtonComponent(this.contentEl); + button.buttonEl.style.marginTop = 'var(--size-4-4)'; + button.buttonEl.style.float = 'right'; + button.setButtonText('Save Changes'); + button.onClick(() => __awaiter(this, void 0, void 0, function* () { + var _b; + new obsidian.Notice('Color of icon changed.'); + if (this.usedColor) { + this.plugin.addIconColor(this.path, this.usedColor); + } + else { + this.plugin.removeIconColor(this.path); + } + // Refresh the DOM. + const iconNode = dom.getIconNodeFromPath(this.path); + iconNode.style.color = (_b = this.usedColor) !== null && _b !== void 0 ? _b : null; + const colorizedInnerHtml = svg.colorize(iconNode.innerHTML, this.usedColor); + iconNode.innerHTML = colorizedInnerHtml; + this.close(); + })); + } + onOpen() { + super.onOpen(); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +} + +class EventEmitter { + constructor() { + this.listeners = {}; + } + on(type, listener, priority = 0) { + var _a, _b; + var _c; + (_a = (_c = this.listeners)[type]) !== null && _a !== void 0 ? _a : (_c[type] = []); + (_b = this.listeners[type]) === null || _b === void 0 ? void 0 : _b.push({ listener, once: false, priority }); + this.sortListeners(type); + } + once(type, listener, priority = 0) { + var _a, _b; + var _c; + (_a = (_c = this.listeners)[type]) !== null && _a !== void 0 ? _a : (_c[type] = []); + (_b = this.listeners[type]) === null || _b === void 0 ? void 0 : _b.push({ listener, once: true, priority }); + this.sortListeners(type); + } + off(type, listener) { + var _a; + if (!this.listeners[type]) { + return; + } + this.listeners[type] = (_a = this.listeners[type]) === null || _a === void 0 ? void 0 : _a.filter((entry) => entry.listener !== listener); + } + emit(type, payload) { + const listeners = this.listeners[type]; + if (!listeners) { + return; + } + const event = { payload }; + listeners.slice().forEach((entry) => { + entry.listener(event); + if (entry.once) { + this.off(type, entry.listener); + } + }); + } + sortListeners(type) { + var _a; + if (this.listeners[type]) { + (_a = this.listeners[type]) === null || _a === void 0 ? void 0 : _a.sort((a, b) => b.priority - a.priority); + } + } +} + +function getApi(plugin) { + return { + getEventEmitter: () => plugin.getEventEmitter(), + getIconByName: (iconNameWithPrefix) => icon.getIconByName(iconNameWithPrefix), + setIconForNode: (iconName, node, color) => dom.setIconForNode(plugin, iconName, node, color), + saveIconToIconPack: (iconNameWithPrefix) => saveIconToIconPack(plugin, iconNameWithPrefix), + removeIconFromIconPack: (iconNameWithPrefix) => removeIconFromIconPack(plugin, iconNameWithPrefix), + getIconsFromIconPack: getIconsFromIconPack, + getAllIconPacks: getAllIconPacks, + doesElementHasIconNode: dom.doesElementHasIconNode, + getIconFromElement: dom.getIconFromElement, + removeIconInNode: dom.removeIconInNode, + removeIconInPath: dom.removeIconInPath, + util: { + dom, + svg, + }, + version: { + get current() { + return plugin.manifest.version; + }, + }, + }; +} + +class IconizePlugin extends obsidian.Plugin { + constructor() { + super(...arguments); + this.registeredFileExplorers = new Set(); + this.modifiedInternalPlugins = []; + this.positionField = buildPositionField(this); + this.frontmatterCache = new Set(); + this.eventEmitter = new EventEmitter(); + this.api = getApi(this); + } + onload() { + return __awaiter(this, void 0, void 0, function* () { + console.log(`loading ${config.PLUGIN_NAME}`); + // Registers all modified internal plugins. + // Only adds star plugin for obsidian under v0.12.6. + if (!obsidian.requireApiVersion('0.12.6')) { + this.modifiedInternalPlugins.push(new StarredInternalPlugin(this)); + } + else if (obsidian.requireApiVersion('1.2.0')) { + this.modifiedInternalPlugins.push(new BookmarkInternalPlugin(this)); + } + this.modifiedInternalPlugins.push(new OutlineInternalPlugin(this)); + yield this.loadIconFolderData(); + logger.toggleLogging(this.getSettings().debugMode); + setPath(this.getSettings().iconPacksPath); + yield createDefaultDirectory(this); + yield this.checkRecentlyUsedIcons(); + yield migrate(this); + const usedIconNames = icon.getAllWithPath(this).map((value) => value.icon); + if (!this.doesUseCustomLucideIconPack()) { + addLucideIconsPack(this); + } + yield loadUsedIcons(this, usedIconNames); + this.app.workspace.onLayoutReady(() => this.handleChangeLayout()); + this.addCommand({ + id: 'iconize:set-icon-for-file', + name: 'Set icon for file', + hotkeys: [ + { + modifiers: ['Mod', 'Shift'], + key: 'j', + }, + ], + editorCallback: (editor) => __awaiter(this, void 0, void 0, function* () { + var _a; + const file = (_a = editor.editorComponent) === null || _a === void 0 ? void 0 : _a.file; + if (!file) { + logger.warn(`'editor.editorComponent?.file' is undefined for file: ${file}`); + return; + } + const modal = new IconsPickerModal(this.app, this, file.path); + modal.open(); + modal.onSelect = (iconName) => { + IconCache.getInstance().set(file.path, { + iconNameWithPrefix: iconName, + }); + // Update icon in tab when setting is enabled. + if (this.getSettings().iconInTabsEnabled) { + const tabLeaves = iconTabs.getTabLeavesOfFilePath(this, file.path); + for (const tabLeaf of tabLeaves) { + iconTabs.update(this, iconName, tabLeaf.tabHeaderInnerIconEl); + } + } + // Update icon in title when setting is enabled. + if (this.getSettings().iconInTitleEnabled) { + this.addIconInTitle(iconName); + } + }; + }), + }); + this.registerEvent( + // Registering file menu event for listening to file pinning and unpinning. + this.app.workspace.on('file-menu', (menu, file) => { + // I've researched other ways of doing this. However, there is no other way to listen to file pinning and unpinning. + menu.onHide(() => { + const path = file.path; + if (this.getSettings().iconInTabsEnabled) { + for (const openedFile of getAllOpenedFiles(this)) { + if (openedFile.path === path) { + const possibleIcon = IconCache.getInstance().get(path); + if (!possibleIcon) { + return; + } + const tabLeaves = iconTabs.getTabLeavesOfFilePath(this, file.path); + for (const tabLeaf of tabLeaves) { + // Add timeout to ensure that the default icon is already set. + setTimeout(() => { + iconTabs.add(this, file, tabLeaf.tabHeaderInnerIconEl); + }, 5); + } + } + } + } + }); + })); + this.registerEvent(this.app.workspace.on('layout-change', () => this.handleChangeLayout())); + this.registerEvent(this.app.workspace.on('file-menu', (menu, file) => { + const addIconMenuItem = (item) => { + item.setTitle('Change icon'); + item.setIcon('hashtag'); + item.onClick(() => { + const modal = new IconsPickerModal(this.app, this, file.path); + modal.open(); + modal.onSelect = (iconName) => { + IconCache.getInstance().set(file.path, { + iconNameWithPrefix: iconName, + }); + // Update icon in tab when setting is enabled. + if (this.getSettings().iconInTabsEnabled) { + const tabLeaves = iconTabs.getTabLeavesOfFilePath(this, file.path); + for (const tabLeaf of tabLeaves) { + iconTabs.update(this, iconName, tabLeaf.tabHeaderInnerIconEl); + } + } + // Update icon in title when setting is enabled. + if (this.getSettings().iconInTitleEnabled) { + this.addIconInTitle(iconName); + } + }; + }); + }; + const removeIconMenuItem = (item) => { + item.setTitle('Remove icon'); + item.setIcon('trash'); + item.onClick(() => __awaiter(this, void 0, void 0, function* () { + yield this.removeSingleIcon(file); + })); + }; + const changeColorOfIcon = (item) => { + item.setTitle('Change color of icon'); + item.setIcon('palette'); + item.onClick(() => { + const modal = new ChangeColorModal(this.app, this, file.path); + modal.open(); + }); + }; + menu.addItem(addIconMenuItem); + const filePathData = this.getData()[file.path]; + const hasNestedIcon = typeof filePathData === 'object' && + filePathData.iconName !== null; + // Only add remove icon menu item when the file path exists in the data. + // We do not want to show this menu item for e.g. custom rules. + if (filePathData && + (typeof filePathData === 'string' || hasNestedIcon)) { + const icon = typeof filePathData === 'string' + ? filePathData + : filePathData.iconName; + if (!emoji.isEmoji(icon)) { + menu.addItem(changeColorOfIcon); + } + menu.addItem(removeIconMenuItem); + } + })); + // deleting event + this.registerEvent(this.app.vault.on('delete', (file) => { + const path = file.path; + this.removeFolderIcon(path); + })); + // renaming event + this.registerEvent(this.app.vault.on('rename', (file, oldPath) => { + // Check if the file was moved and had an icon before. + const dataPoint = this.data[oldPath]; + if (dataPoint && oldPath !== 'settings') { + const iconNameWithPrefix = typeof dataPoint === 'object' + ? dataPoint.iconName + : dataPoint; + dom.createIconNode(this, file.path, iconNameWithPrefix); + } + this.renameFolder(file.path, oldPath); + })); + if (this.getSettings().iconsInNotesEnabled) { + this.registerMarkdownPostProcessor((el) => processIconInTextMarkdown(this, el)); + this.registerEditorSuggest(new SuggestionIcon(this.app, this)); + this.registerEditorExtension([ + this.positionField, + buildIconInTextPlugin(this), + ]); + } + if (this.getSettings().iconsInLinksEnabled) { + this.registerMarkdownPostProcessor((el, ctx) => processIconInLinkMarkdown(this, el, ctx)); + this.registerEditorExtension([ + this.positionField, + buildIconInLinksPlugin(this), + ]); + } + this.addSettingTab(new IconFolderSettings(this.app, this)); + }); + } + notifyPlugins() { + this.modifiedInternalPlugins.forEach((internalPlugin) => { + if (internalPlugin.enabled) { + internalPlugin.onMount(); + } + }); + } + removeSingleIcon(file) { + return __awaiter(this, void 0, void 0, function* () { + this.removeFolderIcon(file.path); + dom.removeIconInPath(file.path); + IconCache.getInstance().invalidate(file.path); + this.notifyPlugins(); + let didUpdate = false; + // Refreshes the icon tab and title icon for custom rules. + for (const rule of customRule.getSortedRules(this)) { + const applicable = yield customRule.isApplicable(this, rule, file); + if (applicable) { + customRule.add(this, rule, file); + this.addIconInTitle(rule.icon); + const tabLeaves = iconTabs.getTabLeavesOfFilePath(this, file.path); + for (const tabLeaf of tabLeaves) { + iconTabs.add(this, file, tabLeaf.tabHeaderInnerIconEl, { + iconName: rule.icon, + }); + } + didUpdate = true; + break; + } + } + // Only remove icon above titles and icon in tabs if no custom rule was found. + if (!didUpdate) { + // Refreshes icons above title and icons in tabs. + for (const openedFile of getAllOpenedFiles(this)) { + if (this.getSettings().iconInTitleEnabled) { + titleIcon.remove(openedFile.leaf.view.inlineTitleEl); + } + if (this.getSettings().iconInTabsEnabled) { + const leaf = openedFile.leaf; + iconTabs.remove(leaf.tabHeaderInnerIconEl, { + replaceWithDefaultIcon: true, + }); + } + } + } + }); + } + handleChangeLayout() { + // Transform data that are objects to single strings. + const data = Object.entries(this.data); + this.modifiedInternalPlugins.forEach((internalPlugin) => { + if (internalPlugin.enabled) { + internalPlugin.onMount(); + internalPlugin.register(); + } + }); + icon.addAll(this, data, this.registeredFileExplorers, () => { + // After initialization of the icon packs, checks the vault for missing icons and + // adds them. + initIconPacks(this).then(() => __awaiter(this, void 0, void 0, function* () { + if (this.getSettings().iconsBackgroundCheckEnabled) { + const data = Object.entries(this.data); + yield icon.checkMissingIcons(this, data); + resetPreloadedIcons(); + } + this.eventEmitter.emit('allIconsLoaded'); + })); + if (this.getSettings().iconInFrontmatterEnabled) { + const activeFile = this.app.workspace.getActiveFile(); + if (activeFile) { + this.frontmatterCache.add(activeFile.path); + } + } + // Adds the title icon to the active leaf view. + if (this.getSettings().iconInTitleEnabled) { + for (const openedFile of getAllOpenedFiles(this)) { + const iconName = icon.getByPath(this, openedFile.path); + const activeView = openedFile.leaf.view; + if (activeView instanceof obsidian.MarkdownView && iconName) { + let possibleIcon = iconName; + if (!emoji.isEmoji(iconName)) { + const iconNextIdentifier = nextIdentifier(iconName); + possibleIcon = getSvgFromLoadedIcon(iconName.substring(0, iconNextIdentifier), iconName.substring(iconNextIdentifier)); + } + if (possibleIcon) { + titleIcon.add(this, activeView.inlineTitleEl, possibleIcon, { + fontSize: calculateInlineTitleSize(), + }); + } + } + } + } + // Register rename event for adding icons with custom rules to the DOM + // when file was moved to another directory. + this.registerEvent(this.app.vault.on('rename', (file, oldPath) => __awaiter(this, void 0, void 0, function* () { + const sortedRules = customRule.getSortedRules(this); + // Removes possible icons from the renamed file. + sortedRules.forEach((rule) => { + if (customRule.doesMatchPath(rule, oldPath)) { + dom.removeIconInPath(file.path); + } + }); + // Adds possible icons to the renamed file. + sortedRules.forEach((rule) => { + if (customRule.doesMatchPath(rule, oldPath)) { + return; + } + customRule.add(this, rule, file, undefined); + }); + // Updates icon tabs for the renamed file. + for (const rule of customRule.getSortedRules(this)) { + const applicable = yield customRule.isApplicable(this, rule, file); + if (!applicable) { + continue; + } + const openedFiles = getAllOpenedFiles(this); + const openedFile = openedFiles.find((openedFile) => openedFile.path === file.path); + if (openedFile) { + const leaf = openedFile.leaf; + iconTabs.update(this, rule.icon, leaf.tabHeaderInnerIconEl); + } + break; + } + }))); + // Register `layout-change` event for adding icons to tabs when moving a pane or + // enabling reading mode. + this.registerEvent(this.app.workspace.on('layout-change', () => { + var _a, _b; + if (this.getSettings().iconInTitleEnabled) { + const activeView = this.app.workspace.getActiveViewOfType(obsidian.MarkdownView); + if (activeView) { + const file = activeView.file; + const view = activeView.leaf.view.currentMode + .view; + const iconNameWithPrefix = icon.getByPath(this, file.path); + if (!iconNameWithPrefix) { + titleIcon.hide(view.inlineTitleEl); + return; + } + let foundIcon = iconNameWithPrefix; + if (!emoji.isEmoji(foundIcon)) { + foundIcon = (_a = icon.getIconByName(iconNameWithPrefix)) === null || _a === void 0 ? void 0 : _a.svgElement; + // Check for preloaded icons if no icon was found when the start up was faster + // than the loading of the icons. + if (!foundIcon && getPreloadedIcons().length > 0) { + foundIcon = (_b = getPreloadedIcons().find((icon) => icon.prefix + icon.name === iconNameWithPrefix)) === null || _b === void 0 ? void 0 : _b.svgElement; + } + } + if (foundIcon) { + // Removes the node because the editor markdown content is being rerendered + // when the content mode changes back to editing. + titleIcon.remove(view.inlineTitleEl); + titleIcon.add(this, view.inlineTitleEl, foundIcon, { + fontSize: calculateInlineTitleSize(), + }); + } + } + } + if (!this.getSettings().iconInTabsEnabled) { + return; + } + for (const openedFile of getAllOpenedFiles(this)) { + const leaf = openedFile.leaf; + const iconColor = this.getIconColor(leaf.view.file.path); + iconTabs.add(this, openedFile, leaf.tabHeaderInnerIconEl, { + iconColor, + }); + } + })); + // Register `file-open` event for adding icon to title. + this.registerEvent(this.app.workspace.on('file-open', (file) => { + var _a, _b; + if (!this.getSettings().iconInTitleEnabled) { + return; + } + for (const openedFile of getAllOpenedFiles(this)) { + if (openedFile.path !== file.path) { + continue; + } + const leaf = openedFile.leaf.view; + const iconNameWithPrefix = icon.getByPath(this, file.path); + if (!iconNameWithPrefix) { + titleIcon.hide(leaf.inlineTitleEl); + return; + } + let foundIcon = iconNameWithPrefix; + if (!emoji.isEmoji(foundIcon)) { + foundIcon = (_a = icon.getIconByName(iconNameWithPrefix)) === null || _a === void 0 ? void 0 : _a.svgElement; + // Check for preloaded icons if no icon was found when the start up was faster + // than the loading of the icons. + if (!foundIcon && getPreloadedIcons().length > 0) { + foundIcon = (_b = getPreloadedIcons().find((icon) => icon.prefix + icon.name === iconNameWithPrefix)) === null || _b === void 0 ? void 0 : _b.svgElement; + } + } + if (foundIcon) { + titleIcon.add(this, leaf.inlineTitleEl, foundIcon, { + fontSize: calculateInlineTitleSize(), + }); + } + else { + titleIcon.hide(leaf.inlineTitleEl); + } + } + })); + // Register event for frontmatter icon registration. + this.registerEvent(this.app.metadataCache.on('resolve', (file) => __awaiter(this, void 0, void 0, function* () { + if (!this.getSettings().iconInFrontmatterEnabled) { + return; + } + const fileCache = this.app.metadataCache.getFileCache(file); + const iconFrontmatterName = this.getSettings().iconInFrontmatterFieldName; + const iconColorFrontmatterName = this.getSettings().iconColorInFrontmatterFieldName; + if (fileCache === null || fileCache === void 0 ? void 0 : fileCache.frontmatter) { + const { [iconFrontmatterName]: newIconName, [iconColorFrontmatterName]: newIconColor, } = fileCache.frontmatter; + // If `icon` property is empty, we will remove it from the data and remove the icon. + if (!newIconName) { + if (this.frontmatterCache.has(file.path)) { + yield this.removeSingleIcon(file); + this.frontmatterCache.delete(file.path); + } + return; + } + if (typeof newIconName !== 'string') { + new obsidian.Notice(`[${config.PLUGIN_NAME}] Frontmatter property type \`icon\` has to be of type \`text\`.`); + return; + } + if (newIconColor && typeof newIconColor !== 'string') { + new obsidian.Notice(`[${config.PLUGIN_NAME}] Frontmatter property type \`iconColor\` has to be of type \`text\`.`); + return; + } + let iconColor = newIconColor; + if (isHexadecimal(iconColor)) { + iconColor = stringToHex(iconColor); + } + const cachedIcon = IconCache.getInstance().get(file.path); + if (newIconName === (cachedIcon === null || cachedIcon === void 0 ? void 0 : cachedIcon.iconNameWithPrefix) && + iconColor === (cachedIcon === null || cachedIcon === void 0 ? void 0 : cachedIcon.iconColor)) { + return; + } + this.frontmatterCache.add(file.path); + try { + if (!emoji.isEmoji(newIconName)) { + saveIconToIconPack(this, newIconName); + } + } + catch (e) { + logger.warn(`Something went wrong while saving icon to icon pack (error: ${e})`); + new obsidian.Notice(e.message); + return; + } + dom.createIconNode(this, file.path, newIconName, { + color: iconColor, + }); + this.addFolderIcon(file.path, newIconName); + this.addIconColor(file.path, iconColor); + IconCache.getInstance().set(file.path, { + iconNameWithPrefix: newIconName, + iconColor, + }); + // Update icon in tab when setting is enabled. + if (this.getSettings().iconInTabsEnabled) { + const tabLeaves = iconTabs.getTabLeavesOfFilePath(this, file.path); + for (const tabLeaf of tabLeaves) { + iconTabs.update(this, newIconName, tabLeaf.tabHeaderInnerIconEl); + } + } + // Update icon in title when setting is enabled. + if (this.getSettings().iconInTitleEnabled) { + this.addIconInTitle(newIconName); + } + } + }))); + // Register active leaf change event for adding icon of file to tab. + this.registerEvent(this.app.workspace.on('active-leaf-change', (leaf) => { + if (!this.getSettings().iconInTabsEnabled) { + return; + } + // TODO: Maybe change in the future to a more optimal solution. + // Fixes a problem when the file was clicked twice in the same tab. + // See https://github.com/FlorianWoelki/obsidian-iconize/issues/208. + if (leaf.view.getViewType() === 'file-explorer') { + for (const openedFile of getAllOpenedFiles(this)) { + const leaf = openedFile.leaf; + const iconColor = this.getIconColor(leaf.view.file.path); + iconTabs.add(this, openedFile, leaf.tabHeaderInnerIconEl, { + iconColor, + }); + } + return; + } + if (leaf.view.getViewType() !== 'markdown') { + return; + } + const tabHeaderLeaf = leaf; + if (tabHeaderLeaf.view.file) { + const iconColor = this.getIconColor(tabHeaderLeaf.view.file.path); + iconTabs.add(this, tabHeaderLeaf.view.file, tabHeaderLeaf.tabHeaderInnerIconEl, { + iconColor, + }); + } + })); + this.registerEvent(this.app.workspace.on('css-change', () => { + for (const openedFile of getAllOpenedFiles(this)) { + const activeView = openedFile.leaf.view; + if (activeView instanceof obsidian.MarkdownView) { + titleIcon.updateStyle(activeView.inlineTitleEl, { + fontSize: calculateInlineTitleSize(), + }); + } + } + })); + }); + } + addIconInTitle(iconName) { + var _a; + for (const openedFile of getAllOpenedFiles(this)) { + const activeView = openedFile.leaf.view; + if (activeView instanceof obsidian.MarkdownView) { + let possibleIcon = iconName; + if (!emoji.isEmoji(iconName)) { + possibleIcon = (_a = icon.getIconByName(iconName)) === null || _a === void 0 ? void 0 : _a.svgElement; + } + if (possibleIcon) { + titleIcon.add(this, activeView.inlineTitleEl, possibleIcon, { + fontSize: calculateInlineTitleSize(), + }); + } + } + } + } + onunload() { + console.log('unloading obsidian-icon-folder'); + } + renameFolder(newPath, oldPath) { + if (!this.data[oldPath] || newPath === oldPath) { + return; + } + Object.defineProperty(this.data, newPath, Object.getOwnPropertyDescriptor(this.data, oldPath)); + delete this.data[oldPath]; + this.saveIconFolderData(); + } + addIconColor(path, iconColor) { + const pathData = this.getData()[path]; + if (typeof pathData === 'string') { + this.getData()[path] = { + iconName: pathData, + iconColor, + }; + } + else { + pathData.iconColor = iconColor; + } + this.saveIconFolderData(); + } + getIconColor(path) { + const pathData = this.getData()[path]; + if (!pathData) { + return undefined; + } + if (typeof pathData === 'string') { + return undefined; + } + return pathData.iconColor; + } + removeIconColor(path) { + const pathData = this.getData()[path]; + if (typeof pathData === 'string') { + return; + } + const currentValue = pathData; + this.getData()[path] = currentValue.iconName; + this.saveIconFolderData(); + } + removeFolderIcon(path) { + if (!this.data[path]) { + return; + } + // Saves the icon name with prefix to remove it from the icon pack directory later. + const iconData = this.data[path]; + delete this.data[path]; + // Removes the icon from the icon pack directory if it is not used as an icon somewhere + // else. + if (iconData) { + let iconNameWithPrefix = iconData; + if (typeof iconData === 'object') { + iconNameWithPrefix = iconData.iconName; + } + else { + iconNameWithPrefix = iconData; + } + if (!emoji.isEmoji(iconNameWithPrefix)) { + removeIconFromIconPack(this, iconNameWithPrefix); + } + } + //this.addIconsToSearch(); + this.saveIconFolderData(); + } + addFolderIcon(path, icon) { + const iconName = getNormalizedName(typeof icon === 'object' ? icon.displayName : icon); + this.data[path] = iconName; + // Update recently used icons. + if (!this.getSettings().recentlyUsedIcons.includes(iconName)) { + if (this.getSettings().recentlyUsedIcons.length >= + this.getSettings().recentlyUsedIconsSize) { + this.getSettings().recentlyUsedIcons = + this.getSettings().recentlyUsedIcons.slice(0, this.getSettings().recentlyUsedIconsSize - 1); + } + this.getSettings().recentlyUsedIcons.unshift(iconName); + this.checkRecentlyUsedIcons(); + } + //this.addIconsToSearch(); + this.saveIconFolderData(); + } + getSettings() { + return this.data.settings; + } + loadIconFolderData() { + return __awaiter(this, void 0, void 0, function* () { + const data = yield this.loadData(); + if (data) { + Object.entries(DEFAULT_SETTINGS).forEach(([k, v]) => { + if (data.settings[k] === undefined) { + data.settings[k] = v; + } + }); + } + this.data = Object.assign({ settings: Object.assign({}, DEFAULT_SETTINGS) }, {}, data); + }); + } + saveIconFolderData() { + return __awaiter(this, void 0, void 0, function* () { + yield this.saveData(this.data); + }); + } + checkRecentlyUsedIcons() { + return __awaiter(this, void 0, void 0, function* () { + if (this.getSettings().recentlyUsedIcons.length > + this.getSettings().recentlyUsedIconsSize) { + this.getSettings().recentlyUsedIcons = + this.getSettings().recentlyUsedIcons.slice(0, this.getSettings().recentlyUsedIconsSize); + yield this.saveIconFolderData(); + } + }); + } + getEventEmitter() { + return this.eventEmitter; + } + getData() { + return this.data; + } + getIconNameFromPath(path) { + if (typeof this.getData()[path] === 'object') { + return this.getData()[path].iconName; + } + return this.getData()[path]; + } + getRegisteredFileExplorers() { + return this.registeredFileExplorers; + } + doesUseCustomLucideIconPack() { + return this.getSettings().lucideIconPackType === 'custom'; + } + doesUseNativeLucideIconPack() { + return this.getSettings().lucideIconPackType === 'native'; + } + /** + * Returns a possible data path by the given value. This function checks for + * direct icon and custom rules. + * @param value String that will be used to find the data path. + * @returns String that is the data path or `undefined` if no data path was found. + */ + getDataPathByValue(value) { + return Object.entries(this.data).find(([k, v]) => { + if (typeof v === 'string') { + if (value === v) { + return k; + } + } + else if (typeof v === 'object') { + // Check for custom rules. + if (k === 'settings') { + // `rules` are defined in the settings object. + const rules = v.rules; + return rules.find((rule) => rule.icon === value); + } + v = v; + if (value === v.iconName) { + return k; + } + } + }); + } +} + +module.exports = IconizePlugin; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzLy5wbnBtL0Byb2xsdXArcGx1Z2luLXR5cGVzY3JpcHRAMTEuMS42X3JvbGx1cEAyLjc5LjFfdHNsaWJAMi42LjJfdHlwZXNjcmlwdEA1LjQuMi9ub2RlX21vZHVsZXMvdHNsaWIvdHNsaWIuZXM2LmpzIiwic3JjL2ljb24tcGFja3MudHMiLCJzcmMvbGliL3V0aWwvc3ZnLnRzIiwibm9kZV9tb2R1bGVzLy5wbnBtL2pzemlwQDMuMTAuMS9ub2RlX21vZHVsZXMvanN6aXAvZGlzdC9qc3ppcC5taW4uanMiLCJzcmMvemlwLXV0aWwudHMiLCJzcmMvY29uZmlnL2luZGV4LnRzIiwic3JjL2xpYi9sb2dnZXIudHMiLCJzcmMvaWNvbi1wYWNrLW1hbmFnZXIudHMiLCJub2RlX21vZHVsZXMvLnBucG0vQHR3ZW1vamkrYXBpQDE1LjEuMC9ub2RlX21vZHVsZXMvQHR3ZW1vamkvYXBpL2Rpc3QvdHdlbW9qaS5lc20uanMiLCJzcmMvZW1vamkudHMiLCJzcmMvdXRpbC50cyIsInNyYy9saWIvdXRpbC9zdHlsZS50cyIsInNyYy9saWIvdXRpbC9kb20udHMiLCJzcmMvdWkvaWNvbnMtcGlja2VyLW1vZGFsLnRzIiwic3JjL3NldHRpbmdzL2RhdGEudHMiLCJzcmMvbWlncmF0aW9ucy8wMDAxLWNoYW5nZS1taWdyYXRlZC10cnVlLXRvLTEudHMiLCJzcmMvbWlncmF0aW9ucy8wMDAyLW9yZGVyLWN1c3RvbS1ydWxlcy50cyIsInNyYy9saWIvaWNvbi1jYWNoZS50cyIsInNyYy9saWIvY3VzdG9tLXJ1bGUudHMiLCJzcmMvbWlncmF0aW9ucy8wMDAzLWluaGVyaXRhbmNlLXRvLWN1c3RvbS1ydWxlLnRzIiwic3JjL21pZ3JhdGlvbnMvMDAwNC1yZW1vdmUtbm9uZS1lbW9qaS1vcHRpb24udHMiLCJzcmMvbWlncmF0aW9ucy8wMDA1LXJlbW92ZS1kb3dubG9hZGVkLWx1Y2lkZS1pY29uLXBhY2sudHMiLCJzcmMvbWlncmF0aW9ucy9pbmRleC50cyIsInNyYy9zZXR0aW5ncy91aS9pY29uRm9sZGVyU2V0dGluZy50cyIsInNyYy9saWIvaWNvbi10YWJzLnRzIiwic3JjL2xpYi9pY29uLnRzIiwic3JjL3NldHRpbmdzL3VpL2N1c3RvbUljb25QYWNrLnRzIiwic3JjL3NldHRpbmdzL3VpL2N1c3RvbUljb25SdWxlLnRzIiwic3JjL2xpYi9pY29uLXRpdGxlLnRzIiwic3JjL2xpYi91dGlsL3RleHQudHMiLCJzcmMvc2V0dGluZ3MvdWkvZW1vamlTdHlsZS50cyIsInNyYy9zZXR0aW5ncy9oZWxwZXIudHMiLCJzcmMvc2V0dGluZ3MvdWkvZXh0cmFNYXJnaW4udHMiLCJzcmMvc2V0dGluZ3MvUmVzZXRCdXR0b25Db21wb25lbnQudHMiLCJzcmMvc2V0dGluZ3MvdWkvaWNvbkNvbG9yLnRzIiwic3JjL3NldHRpbmdzL3VpL2ljb25Gb250U2l6ZS50cyIsInNyYy9zZXR0aW5ncy91aS9pY29uUGFja3NQYXRoLnRzIiwic3JjL3NldHRpbmdzL3VpL2ljb25QYWNrc0JhY2tncm91bmRDaGVja2VyLnRzIiwic3JjL3VpL2ljb24tcGFjay1icm93c2VyLW1vZGFsLnRzIiwic3JjL3NldHRpbmdzL3VpL3ByZWRlZmluZWRJY29uUGFja3MudHMiLCJzcmMvc2V0dGluZ3MvdWkvcmVjZW50bHlVc2VkSWNvbnMudHMiLCJzcmMvc2V0dGluZ3MvdWkvdG9nZ2xlSWNvbkluVGFicy50cyIsInNyYy9zZXR0aW5ncy91aS90b2dnbGVJY29uSW5UaXRsZS50cyIsInNyYy9zZXR0aW5ncy91aS9mcm9udG1hdHRlck9wdGlvbnMudHMiLCJzcmMvc2V0dGluZ3MvdWkvdG9nZ2xlSWNvbnNJbk5vdGVzLnRzIiwic3JjL3NldHRpbmdzL3VpL3RvZ2dsZUljb25zSW5MaW5rcy50cyIsInNyYy9zZXR0aW5ncy91aS9pY29uSWRlbnRpZmllci50cyIsInNyYy9zZXR0aW5ncy91aS9kZWJ1Z01vZGUudHMiLCJzcmMvc2V0dGluZ3MvdWkvaW5kZXgudHMiLCJub2RlX21vZHVsZXMvLnBucG0vbW9ua2V5LWFyb3VuZEAyLjMuMC9ub2RlX21vZHVsZXMvbW9ua2V5LWFyb3VuZC9tanMvaW5kZXguanMiLCJzcmMvQHR5cGVzL2ludGVybmFsLXBsdWdpbi1pbmplY3Rvci50cyIsInNyYy9pbnRlcm5hbC1wbHVnaW5zL3N0YXJyZWQudHMiLCJzcmMvaW50ZXJuYWwtcGx1Z2lucy9ib29rbWFyay50cyIsInNyYy9lZGl0b3IvbWFya2Rvd24tcHJvY2Vzc29ycy9pY29uLWluLXRleHQudHMiLCJzcmMvZWRpdG9yL21hcmtkb3duLXByb2Nlc3NvcnMvaWNvbi1pbi1saW5rLnRzIiwic3JjL2ludGVybmFsLXBsdWdpbnMvb3V0bGluZS50cyIsInNyYy9lZGl0b3IvaWNvbnMtc3VnZ2VzdGlvbi50cyIsInNyYy9lZGl0b3IvbGl2ZS1wcmV2aWV3L3dpZGdldHMvaWNvbi1pbi10ZXh0LnRzIiwic3JjL2VkaXRvci9saXZlLXByZXZpZXcvd2lkZ2V0cy9pY29uLWluLWxpbmsudHMiLCJzcmMvZWRpdG9yL2xpdmUtcHJldmlldy9kZWNvcmF0aW9ucy9idWlsZC1saW5rLWRlY29yYXRpb25zLnRzIiwic3JjL2VkaXRvci9saXZlLXByZXZpZXcvZGVjb3JhdGlvbnMvYnVpbGQtdGV4dC1kZWNvcmF0aW9ucy50cyIsInNyYy9lZGl0b3IvbGl2ZS1wcmV2aWV3L3BsdWdpbnMvaWNvbi1pbi10ZXh0LnRzIiwic3JjL2VkaXRvci9saXZlLXByZXZpZXcvcGx1Z2lucy9pY29uLWluLWxpbmtzLnRzIiwic3JjL2VkaXRvci9saXZlLXByZXZpZXcvc3RhdGUudHMiLCJzcmMvdWkvY2hhbmdlLWNvbG9yLW1vZGFsLnRzIiwic3JjL2xpYi9ldmVudC9ldmVudC50cyIsInNyYy9saWIvYXBpLnRzIiwic3JjL21haW4udHMiXSwic291cmNlc0NvbnRlbnQiOm51bGwsIm5hbWVzIjpbImljb25QYWNrcyIsInJlcXVpcmUiLCJnbG9iYWwiLCJyZXF1ZXN0VXJsIiwibG9hZEFzeW5jIiwiTm90aWNlIiwiZ2V0SWNvbklkcyIsImdldEljb24iLCJwcmVkZWZpbmVkSWNvblBhY2tzIiwiRnV6enlTdWdnZXN0TW9kYWwiLCJtaWdyYXRlIiwiYWRkIiwibWlncmF0ZTAwMDEiLCJtaWdyYXRlMDAwMiIsIm1pZ3JhdGUwMDAzIiwibWlncmF0ZTAwMDQiLCJtaWdyYXRlMDAwNSIsInJlbW92ZSIsIlNldHRpbmciLCJNb2RhbCIsIlRleHRDb21wb25lbnQiLCJUb2dnbGVDb21wb25lbnQiLCJCdXR0b25Db21wb25lbnQiLCJDb2xvckNvbXBvbmVudCIsIk1hcmtkb3duVmlldyIsIkRyb3Bkb3duQ29tcG9uZW50IiwiU2xpZGVyQ29tcG9uZW50IiwiUGx1Z2luU2V0dGluZ1RhYiIsIlRvZ2dsZUljb25zSW5Ob3RlcyIsIkVkaXRvclN1Z2dlc3QiLCJXaWRnZXRUeXBlIiwidmlldyIsIlJhbmdlU2V0QnVpbGRlciIsImVkaXRvckluZm9GaWVsZCIsInN5bnRheFRyZWUiLCJ0b2tlbkNsYXNzTm9kZVByb3AiLCJEZWNvcmF0aW9uIiwiZWRpdG9yTGl2ZVByZXZpZXdGaWVsZCIsIlZpZXdQbHVnaW4iLCJFZGl0b3JWaWV3IiwiUmFuZ2VWYWx1ZSIsIlN0YXRlRmllbGQiLCJzdGF0ZSIsIlBsdWdpbiIsInJlcXVpcmVBcGlWZXJzaW9uIiwiSWNvbkZvbGRlclNldHRpbmdzVUkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFvR0E7QUFDTyxTQUFTLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUU7QUFDN0QsSUFBSSxTQUFTLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxPQUFPLEtBQUssWUFBWSxDQUFDLEdBQUcsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDLFVBQVUsT0FBTyxFQUFFLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVB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Q0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxPQUFPQSxlQUFPLEVBQUVBLGVBQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtRUFBbUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaURBQWlELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxD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QXFCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLEtBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxVQUFVLEVBQUUsV0FBVyxFQUFFLE9BQU8sV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMscUJBQXFCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGdHQUFnRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUUsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBZSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLDRFQUE0RSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsK0JBQStCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxRQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLGNBQWMsR0FBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMscUNBQXFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksWUFBWSxDQUFDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxHQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtDQUFrQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLE9BQU8sV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEtBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxTQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxFQUFFLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsWUFBWSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxZQUFZLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyw0RUFBNEUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsR0FBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLCtCQUErQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0Is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QyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0lBQW9JLENBQUMsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLDRCQUE0QixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssWUFBWSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEVBQTRFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUUsRUFBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBT0MsY0FBTSxDQUFDQSxjQUFNLENBQUMsV0FBVyxFQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDLDZCQUE2QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFHLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBc0IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxPQUFPLFVBQVUsRUFBRSxXQUFXLEVBQUUsT0FBTyxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLE1BQU0sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsTUFBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVksR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxlQUFlLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMscUNBQW9DLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsTUFBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxxQ0FBb0MsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFjLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQWMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLGNBQWMsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsb0JBQW9CLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPQSxjQUFNLENBQUNBLGNBQU0sQ0FBQyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLE1BQU0sQ0FB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QUFDLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLENBQUMsRUFBRSxFQUFFLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUMsQ0FBQyxDQUFDLE9BQU8sT0FBTyxDQUFDLFNBQVMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksUUFBUSxJQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSSxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsT0FBTyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxRQUFRLElBQUksTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksRUFBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sU0FBUyxHQUFHLFFBQVEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE9BQU8sWUFBWSxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sR0FBRyxHQUFHLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUMsQ0FBQyxPQUFNLENBQUMsT0FBTyxJQUFJLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxTQUFTLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sTUFBTSxDQUFDLFNBQVMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxD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 diff --git a/.obsidian/plugins/obsidian-icon-folder/manifest.json b/.obsidian/plugins/obsidian-icon-folder/manifest.json new file mode 100644 index 0000000..51e4d6a --- /dev/null +++ b/.obsidian/plugins/obsidian-icon-folder/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-icon-folder", + "name": "Iconize", + "version": "2.14.3", + "minAppVersion": "0.9.12", + "description": "Add icons to anything you desire in Obsidian, including files, folders, and text.", + "author": "Florian Woelki", + "authorUrl": "https://florianwoelki.com/", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-icon-folder/styles.css b/.obsidian/plugins/obsidian-icon-folder/styles.css new file mode 100644 index 0000000..945ee33 --- /dev/null +++ b/.obsidian/plugins/obsidian-icon-folder/styles.css @@ -0,0 +1,119 @@ +.iconize-inline-title-wrapper { + width: var(--line-width); + margin-inline: var(--content-margin); +} + +.iconize-title-icon { + max-width: var(--max-width); + margin-right: var(--size-4-2); +} + +.iconize-icon-in-link { + transform: translateY(20%); + margin-right: var(--size-2-2); + display: inline-flex; +} + +.iconize-icon { + border: 1px solid transparent; + margin: 0px 4px 0px 0px; + display: flex; + align-self: center; + margin: auto 0; +} + +.nav-folder-title, +.nav-file-title { + align-items: center; +} + +.iconize-setting input[type='color'] { + margin: 0 6px; +} + +.iconize-modal.prompt-results { + margin: 0; + overflow-y: auto; + display: grid; + grid-template-columns: repeat(5, minmax(0, 1fr)); +} + +.prompt .iconize-subheadline { + margin-top: 12px; + font-size: 12px; + color: gray; + grid-column-start: 1; + grid-column-end: 6; +} + +@media (max-width: 640px) { + .iconize-modal.prompt-results { + grid-template-columns: repeat(3, minmax(0, 1fr)); + } + .prompt .iconize-subheadline { + grid-column-end: 4; + } +} + +.iconize-modal.prompt-results .suggestion-item { + cursor: pointer; + white-space: pre-wrap; + display: flex; + justify-content: flex-end; + align-items: center; + flex-direction: column-reverse; + text-align: center; + font-size: 13px; + color: var(--text-muted); + padding: 16px 8px; + line-break: auto; + word-break: break-word; + line-height: 1.3; +} + +.iconize-modal.prompt-results .suggestion-item.suggestion-item__center { + justify-content: center; +} + +.iconize-icon-preview { + font-size: 22px; +} + +.iconize-icon-preview img { + width: 16px; + height: 16px; +} + +.iconize-icon-preview svg { + width: 24px; + height: 24px; + color: currentColor; + margin-bottom: 4px; +} + +.iconize-dragover { + position: relative; +} + +.iconize-dragover-el { + position: absolute; + width: 100%; + height: 100%; + color: var(--text-normal); + background-color: var(--background-secondary-alt); + display: flex; + align-items: center; + justify-content: center; +} + +/* Custom rule modal. */ +.iconize-custom-modal .modal-content { + display: flex; + align-items: center; + justify-content: center; +} + +.iconize-custom-modal .modal-content input { + width: 100%; + margin-right: 0.5rem; +} diff --git a/.obsidian/plugins/obsidian-leaflet-plugin/data.json b/.obsidian/plugins/obsidian-leaflet-plugin/data.json new file mode 100644 index 0000000..a8e5214 --- /dev/null +++ b/.obsidian/plugins/obsidian-leaflet-plugin/data.json @@ -0,0 +1,67 @@ +{ + "mapMarkers": [ + { + "id": "inner-sea", + "lastAccessed": 1721923455305, + "markers": [ + { + "id": "ID_7a2a9a5bda9a", + "type": "default", + "loc": [ + -1.6900672912597656, + 2.9861106872558594 + ], + "layer": "%5B%5Bmapa.png%5D%5D", + "mutable": true, + "command": false, + "percent": [ + 0.7407406355983527, + 0.3148888111808588 + ], + "description": "Aelindor", + "minZoom": null, + "maxZoom": null, + "tooltip": "hover" + } + ], + "overlays": [], + "shapes": [], + "files": [] + } + ], + "defaultMarker": { + "type": "default", + "iconName": "map-marker", + "color": "#dddddd", + "transform": { + "size": 6, + "x": 0, + "y": -2 + } + }, + "markerIcons": [], + "color": "#dddddd", + "lat": 39.983334, + "long": -82.98333, + "notePreview": false, + "layerMarkers": true, + "previousVersion": "6.0.5", + "version": { + "major": 6, + "minor": 0, + "patch": 5 + }, + "warnedAboutMapMarker": false, + "copyOnClick": false, + "displayMarkerTooltips": "hover", + "displayOverlayTooltips": true, + "configDirectory": null, + "mapViewEnabled": true, + "mapViewParameters": {}, + "enableDraw": true, + "defaultUnitType": "imperial", + "defaultTile": "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png", + "defaultTileDark": "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png", + "defaultAttribution": "© OpenStreetMap contributors © CARTO", + "defaultTileSubdomains": "a,b,c,d" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-leaflet-plugin/main.js b/.obsidian/plugins/obsidian-leaflet-plugin/main.js new file mode 100644 index 0000000..e0997a7 --- /dev/null +++ b/.obsidian/plugins/obsidian-leaflet-plugin/main.js @@ -0,0 +1,2 @@ +/*! For license information please see main.js.LICENSE.txt */ +(()=>{var t={520:function(t,e){!function(t){"use strict";function e(t){return t&&t.normalize&&t.normalize(),t&&t.textContent||""}function a(t,e){const a=t.getElementsByTagName(e);return a.length?a[0]:null}function i(t){const i={};if(t){const n=a(t,"line");if(n){const t=e(a(n,"color")),s=parseFloat(e(a(n,"opacity"))),r=parseFloat(e(a(n,"width")));t&&(i.stroke=t),isNaN(s)||(i["stroke-opacity"]=s),isNaN(r)||(i["stroke-width"]=96*r/25.4)}}return i}function n(t,i){const n={};let s,r;for(r=0;r1,h=Object.assign(s(t),i(a(t,"extensions")),{_gpxType:"trk"},r.length?{coordinateProperties:{times:l?r:r[0]}}:{});for(let t=0;tnew Array(t.line.length).fill(null)))),e[a][t]=i):e[a]=i}}return{type:"Feature",properties:h,geometry:l?{type:"MultiLineString",coordinates:n}:{type:"LineString",coordinates:n[0]}}}function*h(t){const e=t.getElementsByTagName("trk"),a=t.getElementsByTagName("rte"),i=t.getElementsByTagName("wpt");for(let t=0;tArray(t.length).fill(null)))),l[a][t]=e[a])}if(0!==n.length)return(s.length||r.length)&&(l.coordinateProperties=Object.assign(s.length?{times:1===n.length?s[0]:s}:{},r.length?{heart:1===n.length?r[0]:r}:{})),{type:"Feature",properties:l,geometry:{type:1===n.length?"LineString":"MultiLineString",coordinates:1===n.length?n[0]:n}}}function*v(t){const e=t.getElementsByTagName("Lap");for(let t=0;t{var i=a(874),n={};for(var s in i)i.hasOwnProperty(s)&&(n[i[s]]=s);var r=t.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var c in r)if(r.hasOwnProperty(c)){if(!("channels"in r[c]))throw new Error("missing channels property: "+c);if(!("labels"in r[c]))throw new Error("missing channel labels property: "+c);if(r[c].labels.length!==r[c].channels)throw new Error("channel and label counts mismatch: "+c);var o=r[c].channels,l=r[c].labels;delete r[c].channels,delete r[c].labels,Object.defineProperty(r[c],"channels",{value:o}),Object.defineProperty(r[c],"labels",{value:l})}r.rgb.hsl=function(t){var e,a,i=t[0]/255,n=t[1]/255,s=t[2]/255,r=Math.min(i,n,s),c=Math.max(i,n,s),o=c-r;return c===r?e=0:i===c?e=(n-s)/o:n===c?e=2+(s-i)/o:s===c&&(e=4+(i-n)/o),(e=Math.min(60*e,360))<0&&(e+=360),a=(r+c)/2,[e,100*(c===r?0:a<=.5?o/(c+r):o/(2-c-r)),100*a]},r.rgb.hsv=function(t){var e,a,i,n,s,r=t[0]/255,c=t[1]/255,o=t[2]/255,l=Math.max(r,c,o),h=l-Math.min(r,c,o),u=function(t){return(l-t)/6/h+.5};return 0===h?n=s=0:(s=h/l,e=u(r),a=u(c),i=u(o),r===l?n=i-a:c===l?n=1/3+e-i:o===l&&(n=2/3+a-e),n<0?n+=1:n>1&&(n-=1)),[360*n,100*s,100*l]},r.rgb.hwb=function(t){var e=t[0],a=t[1],i=t[2];return[r.rgb.hsl(t)[0],1/255*Math.min(e,Math.min(a,i))*100,100*(i=1-1/255*Math.max(e,Math.max(a,i)))]},r.rgb.cmyk=function(t){var e,a=t[0]/255,i=t[1]/255,n=t[2]/255;return[100*((1-a-(e=Math.min(1-a,1-i,1-n)))/(1-e)||0),100*((1-i-e)/(1-e)||0),100*((1-n-e)/(1-e)||0),100*e]},r.rgb.keyword=function(t){var e=n[t];if(e)return e;var a,s,r,c=1/0;for(var o in i)if(i.hasOwnProperty(o)){var l=(s=t,r=i[o],Math.pow(s[0]-r[0],2)+Math.pow(s[1]-r[1],2)+Math.pow(s[2]-r[2],2));l.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.3576*(a=a>.04045?Math.pow((a+.055)/1.055,2.4):a/12.92)+.1805*(i=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92)),100*(.2126*e+.7152*a+.0722*i),100*(.0193*e+.1192*a+.9505*i)]},r.rgb.lab=function(t){var e=r.rgb.xyz(t),a=e[0],i=e[1],n=e[2];return i/=100,n/=108.883,a=(a/=95.047)>.008856?Math.pow(a,1/3):7.787*a+16/116,[116*(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116)-16,500*(a-i),200*(i-(n=n>.008856?Math.pow(n,1/3):7.787*n+16/116))]},r.hsl.rgb=function(t){var e,a,i,n,s,r=t[0]/360,c=t[1]/100,o=t[2]/100;if(0===c)return[s=255*o,s,s];e=2*o-(a=o<.5?o*(1+c):o+c-o*c),n=[0,0,0];for(var l=0;l<3;l++)(i=r+1/3*-(l-1))<0&&i++,i>1&&i--,s=6*i<1?e+6*(a-e)*i:2*i<1?a:3*i<2?e+(a-e)*(2/3-i)*6:e,n[l]=255*s;return n},r.hsl.hsv=function(t){var e=t[0],a=t[1]/100,i=t[2]/100,n=a,s=Math.max(i,.01);return a*=(i*=2)<=1?i:2-i,n*=s<=1?s:2-s,[e,100*(0===i?2*n/(s+n):2*a/(i+a)),(i+a)/2*100]},r.hsv.rgb=function(t){var e=t[0]/60,a=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),r=255*i*(1-a),c=255*i*(1-a*s),o=255*i*(1-a*(1-s));switch(i*=255,n){case 0:return[i,o,r];case 1:return[c,i,r];case 2:return[r,i,o];case 3:return[r,c,i];case 4:return[o,r,i];case 5:return[i,r,c]}},r.hsv.hsl=function(t){var e,a,i,n=t[0],s=t[1]/100,r=t[2]/100,c=Math.max(r,.01);return i=(2-s)*r,a=s*c,[n,100*(a=(a/=(e=(2-s)*c)<=1?e:2-e)||0),100*(i/=2)]},r.hwb.rgb=function(t){var e,a,i,n,s,r,c,o=t[0]/360,l=t[1]/100,h=t[2]/100,u=l+h;switch(u>1&&(l/=u,h/=u),i=6*o-(e=Math.floor(6*o)),0!=(1&e)&&(i=1-i),n=l+i*((a=1-h)-l),e){default:case 6:case 0:s=a,r=n,c=l;break;case 1:s=n,r=a,c=l;break;case 2:s=l,r=a,c=n;break;case 3:s=l,r=n,c=a;break;case 4:s=n,r=l,c=a;break;case 5:s=a,r=l,c=n}return[255*s,255*r,255*c]},r.cmyk.rgb=function(t){var e=t[0]/100,a=t[1]/100,i=t[2]/100,n=t[3]/100;return[255*(1-Math.min(1,e*(1-n)+n)),255*(1-Math.min(1,a*(1-n)+n)),255*(1-Math.min(1,i*(1-n)+n))]},r.xyz.rgb=function(t){var e,a,i,n=t[0]/100,s=t[1]/100,r=t[2]/100;return a=-.9689*n+1.8758*s+.0415*r,i=.0557*n+-.204*s+1.057*r,e=(e=3.2406*n+-1.5372*s+-.4986*r)>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,a=a>.0031308?1.055*Math.pow(a,1/2.4)-.055:12.92*a,i=i>.0031308?1.055*Math.pow(i,1/2.4)-.055:12.92*i,[255*(e=Math.min(Math.max(0,e),1)),255*(a=Math.min(Math.max(0,a),1)),255*(i=Math.min(Math.max(0,i),1))]},r.xyz.lab=function(t){var e=t[0],a=t[1],i=t[2];return a/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(a=a>.008856?Math.pow(a,1/3):7.787*a+16/116)-16,500*(e-a),200*(a-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},r.lab.xyz=function(t){var e,a,i,n=t[0];e=t[1]/500+(a=(n+16)/116),i=a-t[2]/200;var s=Math.pow(a,3),r=Math.pow(e,3),c=Math.pow(i,3);return a=s>.008856?s:(a-16/116)/7.787,e=r>.008856?r:(e-16/116)/7.787,i=c>.008856?c:(i-16/116)/7.787,[e*=95.047,a*=100,i*=108.883]},r.lab.lch=function(t){var e,a=t[0],i=t[1],n=t[2];return(e=360*Math.atan2(n,i)/2/Math.PI)<0&&(e+=360),[a,Math.sqrt(i*i+n*n),e]},r.lch.lab=function(t){var e,a=t[0],i=t[1];return e=t[2]/360*2*Math.PI,[a,i*Math.cos(e),i*Math.sin(e)]},r.rgb.ansi16=function(t){var e=t[0],a=t[1],i=t[2],n=1 in arguments?arguments[1]:r.rgb.hsv(t)[2];if(0===(n=Math.round(n/50)))return 30;var s=30+(Math.round(i/255)<<2|Math.round(a/255)<<1|Math.round(e/255));return 2===n&&(s+=60),s},r.hsv.ansi16=function(t){return r.rgb.ansi16(r.hsv.rgb(t),t[2])},r.rgb.ansi256=function(t){var e=t[0],a=t[1],i=t[2];return e===a&&a===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(a/255*5)+Math.round(i/255*5)},r.ansi16.rgb=function(t){var e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),[e=e/10.5*255,e,e];var a=.5*(1+~~(t>50));return[(1&e)*a*255,(e>>1&1)*a*255,(e>>2&1)*a*255]},r.ansi256.rgb=function(t){if(t>=232){var e=10*(t-232)+8;return[e,e,e]}var a;return t-=16,[Math.floor(t/36)/5*255,Math.floor((a=t%36)/6)/5*255,a%6/5*255]},r.rgb.hex=function(t){var e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},r.hex.rgb=function(t){var e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var a=e[0];3===e[0].length&&(a=a.split("").map((function(t){return t+t})).join(""));var i=parseInt(a,16);return[i>>16&255,i>>8&255,255&i]},r.rgb.hcg=function(t){var e,a=t[0]/255,i=t[1]/255,n=t[2]/255,s=Math.max(Math.max(a,i),n),r=Math.min(Math.min(a,i),n),c=s-r;return e=c<=0?0:s===a?(i-n)/c%6:s===i?2+(n-a)/c:4+(a-i)/c+4,e/=6,[360*(e%=1),100*c,100*(c<1?r/(1-c):0)]},r.hsl.hcg=function(t){var e,a=t[1]/100,i=t[2]/100,n=0;return(e=i<.5?2*a*i:2*a*(1-i))<1&&(n=(i-.5*e)/(1-e)),[t[0],100*e,100*n]},r.hsv.hcg=function(t){var e=t[1]/100,a=t[2]/100,i=e*a,n=0;return i<1&&(n=(a-i)/(1-i)),[t[0],100*i,100*n]},r.hcg.rgb=function(t){var e=t[0]/360,a=t[1]/100,i=t[2]/100;if(0===a)return[255*i,255*i,255*i];var n,s=[0,0,0],r=e%1*6,c=r%1,o=1-c;switch(Math.floor(r)){case 0:s[0]=1,s[1]=c,s[2]=0;break;case 1:s[0]=o,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=c;break;case 3:s[0]=0,s[1]=o,s[2]=1;break;case 4:s[0]=c,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=o}return n=(1-a)*i,[255*(a*s[0]+n),255*(a*s[1]+n),255*(a*s[2]+n)]},r.hcg.hsv=function(t){var e=t[1]/100,a=e+t[2]/100*(1-e),i=0;return a>0&&(i=e/a),[t[0],100*i,100*a]},r.hcg.hsl=function(t){var e=t[1]/100,a=t[2]/100*(1-e)+.5*e,i=0;return a>0&&a<.5?i=e/(2*a):a>=.5&&a<1&&(i=e/(2*(1-a))),[t[0],100*i,100*a]},r.hcg.hwb=function(t){var e=t[1]/100,a=e+t[2]/100*(1-e);return[t[0],100*(a-e),100*(1-a)]},r.hwb.hcg=function(t){var e=t[1]/100,a=1-t[2]/100,i=a-e,n=0;return i<1&&(n=(a-i)/(1-i)),[t[0],100*i,100*n]},r.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},r.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},r.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},r.gray.hsl=r.gray.hsv=function(t){return[0,0,t[0]]},r.gray.hwb=function(t){return[0,100,t[0]]},r.gray.cmyk=function(t){return[0,0,0,t[0]]},r.gray.lab=function(t){return[t[0],0,0]},r.gray.hex=function(t){var e=255&Math.round(t[0]/100*255),a=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(a.length)+a},r.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}},85:(t,e,a)=>{var i=a(168),n=a(111),s={};Object.keys(i).forEach((function(t){s[t]={},Object.defineProperty(s[t],"channels",{value:i[t].channels}),Object.defineProperty(s[t],"labels",{value:i[t].labels});var e=n(t);Object.keys(e).forEach((function(a){var i=e[a];s[t][a]=function(t){var e=function(e){if(null==e)return e;arguments.length>1&&(e=Array.prototype.slice.call(arguments));var a=t(e);if("object"==typeof a)for(var i=a.length,n=0;n1&&(e=Array.prototype.slice.call(arguments)),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(i)}))})),t.exports=s},111:(t,e,a)=>{var i=a(168);function n(t,e){return function(a){return e(t(a))}}function s(t,e){for(var a=[e[t].parent,t],s=i[e[t].parent][t],r=e[t].parent;e[r].parent;)a.unshift(e[r].parent),s=n(i[e[r].parent][r],s),r=e[r].parent;return s.conversion=a,s}t.exports=function(t){for(var e=function(t){var e=function(){for(var t={},e=Object.keys(i),a=e.length,n=0;n{"use strict";t.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},818:(t,e,a)=>{var i=a(874),n=a(851),s={};for(var r in i)i.hasOwnProperty(r)&&(s[i[r]]=r);var c=t.exports={to:{},get:{}};function o(t,e,a){return Math.min(Math.max(e,t),a)}function l(t){var e=t.toString(16).toUpperCase();return e.length<2?"0"+e:e}c.get=function(t){var e,a;switch(t.substring(0,3).toLowerCase()){case"hsl":e=c.get.hsl(t),a="hsl";break;case"hwb":e=c.get.hwb(t),a="hwb";break;default:e=c.get.rgb(t),a="rgb"}return e?{model:a,value:e}:null},c.get.rgb=function(t){if(!t)return null;var e,a,n,s=[0,0,0,1];if(e=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(n=e[2],e=e[1],a=0;a<3;a++){var r=2*a;s[a]=parseInt(e.slice(r,r+2),16)}n&&(s[3]=parseInt(n,16)/255)}else if(e=t.match(/^#([a-f0-9]{3,4})$/i)){for(n=(e=e[1])[3],a=0;a<3;a++)s[a]=parseInt(e[a]+e[a],16);n&&(s[3]=parseInt(n+n,16)/255)}else if(e=t.match(/^rgba?\(\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*,\s*([+-]?\d+)\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/)){for(a=0;a<3;a++)s[a]=parseInt(e[a+1],0);e[4]&&(s[3]=parseFloat(e[4]))}else{if(!(e=t.match(/^rgba?\(\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*,\s*([+-]?[\d\.]+)\%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/)))return(e=t.match(/(\D+)/))?"transparent"===e[1]?[0,0,0,0]:(s=i[e[1]])?(s[3]=1,s):null:null;for(a=0;a<3;a++)s[a]=Math.round(2.55*parseFloat(e[a+1]));e[4]&&(s[3]=parseFloat(e[4]))}for(a=0;a<3;a++)s[a]=o(s[a],0,255);return s[3]=o(s[3],0,1),s},c.get.hsl=function(t){if(!t)return null;var e=t.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d\.]+)%\s*,?\s*([+-]?[\d\.]+)%\s*(?:[,|\/]\s*([+-]?[\d\.]+)\s*)?\)$/);if(e){var a=parseFloat(e[4]);return[(parseFloat(e[1])+360)%360,o(parseFloat(e[2]),0,100),o(parseFloat(e[3]),0,100),o(isNaN(a)?1:a,0,1)]}return null},c.get.hwb=function(t){if(!t)return null;var e=t.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d\.]+)%\s*,\s*([+-]?[\d\.]+)%\s*(?:,\s*([+-]?[\d\.]+)\s*)?\)$/);if(e){var a=parseFloat(e[4]);return[(parseFloat(e[1])%360+360)%360,o(parseFloat(e[2]),0,100),o(parseFloat(e[3]),0,100),o(isNaN(a)?1:a,0,1)]}return null},c.to.hex=function(){var t=n(arguments);return"#"+l(t[0])+l(t[1])+l(t[2])+(t[3]<1?l(Math.round(255*t[3])):"")},c.to.rgb=function(){var t=n(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},c.to.rgb.percent=function(){var t=n(arguments),e=Math.round(t[0]/255*100),a=Math.round(t[1]/255*100),i=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+e+"%, "+a+"%, "+i+"%)":"rgba("+e+"%, "+a+"%, "+i+"%, "+t[3]+")"},c.to.hsl=function(){var t=n(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},c.to.hwb=function(){var t=n(arguments),e="";return t.length>=4&&1!==t[3]&&(e=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+e+")"},c.to.keyword=function(t){return s[t.slice(0,3)]}},767:(t,e,a)=>{"use strict";var i=a(818),n=a(85),s=[].slice,r=["keyword","gray","hex"],c={};Object.keys(n).forEach((function(t){c[s.call(n[t].labels).sort().join("")]=t}));var o={};function l(t,e){if(!(this instanceof l))return new l(t,e);if(e&&e in r&&(e=null),e&&!(e in n))throw new Error("Unknown model: "+e);var a,h;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof l)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if("string"==typeof t){var u=i.get(t);if(null===u)throw new Error("Unable to parse color from string: "+t);this.model=u.model,h=n[this.model].channels,this.color=u.value.slice(0,h),this.valpha="number"==typeof u.value[h]?u.value[h]:1}else if(t.length){this.model=e||"rgb",h=n[this.model].channels;var f=s.call(t,0,h);this.color=d(f,h),this.valpha="number"==typeof t[h]?t[h]:1}else if("number"==typeof t)t&=16777215,this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;var p=Object.keys(t);"alpha"in t&&(p.splice(p.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);var m=p.sort().join("");if(!(m in c))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=c[m];var g=n[this.model].labels,v=[];for(a=0;aa?(e+.05)/(a+.05):(a+.05)/(e+.05)},level:function(t){var e=this.contrast(t);return e>=7.1?"AAA":e>=4.5?"AA":""},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),e=0;e<3;e++)t.color[e]=255-t.color[e];return t},lighten:function(t){var e=this.hsl();return e.color[2]+=e.color[2]*t,e},darken:function(t){var e=this.hsl();return e.color[2]-=e.color[2]*t,e},saturate:function(t){var e=this.hsl();return e.color[1]+=e.color[1]*t,e},desaturate:function(t){var e=this.hsl();return e.color[1]-=e.color[1]*t,e},whiten:function(t){var e=this.hwb();return e.color[1]+=e.color[1]*t,e},blacken:function(t){var e=this.hwb();return e.color[2]+=e.color[2]*t,e},grayscale:function(){var t=this.rgb().color,e=.3*t[0]+.59*t[1]+.11*t[2];return l.rgb(e,e,e)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var e=this.hsl(),a=e.color[0];return a=(a=(a+t)%360)<0?360+a:a,e.color[0]=a,e},mix:function(t,e){if(!t||!t.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof t);var a=t.rgb(),i=this.rgb(),n=void 0===e?.5:e,s=2*n-1,r=a.alpha()-i.alpha(),c=((s*r==-1?s:(s+r)/(1+s*r))+1)/2,o=1-c;return l.rgb(c*a.red()+o*i.red(),c*a.green()+o*i.green(),c*a.blue()+o*i.blue(),a.alpha()*n+i.alpha()*(1-n))}},Object.keys(n).forEach((function(t){if(-1===r.indexOf(t)){var e=n[t].channels;l.prototype[t]=function(){if(this.model===t)return new l(this);if(arguments.length)return new l(arguments,t);var a,i="number"==typeof arguments[e]?e:this.valpha;return new l((a=n[this.model][t].raw(this.color),Array.isArray(a)?a:[a]).concat(i),t)},l[t]=function(a){return"number"==typeof a&&(a=d(s.call(arguments),e)),new l(a,t)}}})),t.exports=l},247:function(t,e){var a,i;a=function(){var t=/^v?(?:\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+)(\.(?:[x*]|\d+))?(?:-[\da-z\-]+(?:\.[\da-z\-]+)*)?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i;function e(t){var e,a,i=t.replace(/^v/,"").replace(/\+.*$/,""),n=(a="-",-1===(e=i).indexOf(a)?e.length:e.indexOf(a)),s=i.substring(0,n).split(".");return s.push(i.substring(n+1)),s}function a(t){return isNaN(Number(t))?t:Number(t)}function i(e){if("string"!=typeof e)throw new TypeError("Invalid argument expected string");if(!t.test(e))throw new Error("Invalid argument not valid semver ('"+e+"' received)")}function n(t,n){[t,n].forEach(i);for(var s=e(t),r=e(n),c=0;cl)return 1;if(l>o)return-1}var h=s[s.length-1],u=r[r.length-1];if(h&&u){var d=h.split(".").map(a),f=u.split(".").map(a);for(c=0;cf[c])return 1;if(f[c]>d[c])return-1}}else if(h||u)return h?-1:1;return 0}var s=[">",">=","=","<","<="],r={">":[1],">=":[0,1],"=":[0],"<=":[-1,0],"<":[-1]};return n.validate=function(e){return"string"==typeof e&&t.test(e)},n.compare=function(t,e,a){!function(t){if("string"!=typeof t)throw new TypeError("Invalid operator type, expected string but got "+typeof t);if(-1===s.indexOf(t))throw new TypeError("Invalid operator, expected one of "+s.join("|"))}(a);var i=n(t,e);return r[a].indexOf(i)>-1},n},void 0===(i=a.apply(e,[]))||(t.exports=i)},171:t=>{t.exports=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))}},243:function(t,e){!function(t){"use strict";function e(t){var e,a,i,n;for(a=1,i=arguments.length;a0?Math.floor(t):Math.ceil(t)};function k(t,e,a){return t instanceof M?t:g(t)?new M(t[0],t[1]):null==t?t:"object"==typeof t&&"x"in t&&"y"in t?new M(t.x,t.y):new M(t,e,a)}function Q(t,e){if(t)for(var a=e?[t,e]:t,i=0,n=a.length;i=this.min.x&&a.x<=this.max.x&&e.y>=this.min.y&&a.y<=this.max.y},intersects:function(t){t=I(t);var e=this.min,a=this.max,i=t.min,n=t.max,s=n.x>=e.x&&i.x<=a.x,r=n.y>=e.y&&i.y<=a.y;return s&&r},overlaps:function(t){t=I(t);var e=this.min,a=this.max,i=t.min,n=t.max,s=n.x>e.x&&i.xe.y&&i.y=i.lat&&a.lat<=n.lat&&e.lng>=i.lng&&a.lng<=n.lng},intersects:function(t){t=E(t);var e=this._southWest,a=this._northEast,i=t.getSouthWest(),n=t.getNorthEast(),s=n.lat>=e.lat&&i.lat<=a.lat,r=n.lng>=e.lng&&i.lng<=a.lng;return s&&r},overlaps:function(t){t=E(t);var e=this._southWest,a=this._northEast,i=t.getSouthWest(),n=t.getNorthEast(),s=n.lat>e.lat&&i.late.lng&&i.lng1,zt=function(){var t=!1;try{var e=Object.defineProperty({},"passive",{get:function(){t=!0}});window.addEventListener("testPassiveEventSupport",o,e),window.removeEventListener("testPassiveEventSupport",o,e)}catch(t){}return t}(),Nt=!!document.createElement("canvas").getContext,xt=!(!document.createElementNS||!W("svg").createSVGRect),Dt=!xt&&function(){try{var t=document.createElement("div");t.innerHTML='';var e=t.firstChild;return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}();function Vt(t){return navigator.userAgent.toLowerCase().indexOf(t)>=0}var Mt={ie:_,ielt9:$,edge:tt,webkit:et,android:at,android23:it,androidStock:st,opera:rt,chrome:ct,gecko:ot,safari:lt,phantom:ht,opera12:ut,win:dt,ie3d:ft,webkit3d:pt,gecko3d:mt,any3d:gt,mobile:vt,mobileWebkit:bt,mobileWebkit3d:wt,msPointer:Ct,pointer:At,touch:yt,mobileOpera:Lt,mobileGecko:Ht,retina:Bt,passiveEvents:zt,canvas:Nt,svg:xt,vml:Dt},St=Ct?"MSPointerDown":"pointerdown",kt=Ct?"MSPointerMove":"pointermove",Qt=Ct?"MSPointerUp":"pointerup",It=Ct?"MSPointerCancel":"pointercancel",Ot={},Et=!1;function Xt(t,e,a,n){return"touchstart"===e?function(t,e,a){var n=i((function(t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&Ie(t),Gt(t,e)}));t["_leaflet_touchstart"+a]=n,t.addEventListener(St,n,!1),Et||(document.addEventListener(St,Tt,!0),document.addEventListener(kt,Pt,!0),document.addEventListener(Qt,Ft,!0),document.addEventListener(It,Ft,!0),Et=!0)}(t,a,n):"touchmove"===e?function(t,e,a){var i=function(t){t.pointerType===(t.MSPOINTER_TYPE_MOUSE||"mouse")&&0===t.buttons||Gt(t,e)};t["_leaflet_touchmove"+a]=i,t.addEventListener(kt,i,!1)}(t,a,n):"touchend"===e&&function(t,e,a){var i=function(t){Gt(t,e)};t["_leaflet_touchend"+a]=i,t.addEventListener(Qt,i,!1),t.addEventListener(It,i,!1)}(t,a,n),this}function Tt(t){Ot[t.pointerId]=t}function Pt(t){Ot[t.pointerId]&&(Ot[t.pointerId]=t)}function Ft(t){delete Ot[t.pointerId]}function Gt(t,e){for(var a in t.touches=[],Ot)t.touches.push(Ot[a]);t.changedTouches=[t],e(t)}var Kt=Ct?"MSPointerDown":At?"pointerdown":"touchstart",Ut=Ct?"MSPointerUp":At?"pointerup":"touchend",qt="_leaflet_";var jt,Yt,Rt,Wt,Zt,Jt=fe(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),_t=fe(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),$t="webkitTransition"===_t||"OTransition"===_t?_t+"End":"transitionend";function te(t){return"string"==typeof t?document.getElementById(t):t}function ee(t,e){var a=t.style[e]||t.currentStyle&&t.currentStyle[e];if((!a||"auto"===a)&&document.defaultView){var i=document.defaultView.getComputedStyle(t,null);a=i?i[e]:null}return"auto"===a?null:a}function ae(t,e,a){var i=document.createElement(t);return i.className=e||"",a&&a.appendChild(i),i}function ie(t){var e=t.parentNode;e&&e.removeChild(t)}function ne(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function se(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function re(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ce(t,e){if(void 0!==t.classList)return t.classList.contains(e);var a=ue(t);return a.length>0&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(a)}function oe(t,e){if(void 0!==t.classList)for(var a=u(e),i=0,n=a.length;i1)return;var e=Date.now(),a=e-(i||e);n=t.touches?t.touches[0]:t,s=a>0&&a<=250,i=e}function c(t){if(s&&!n.cancelBubble){if(At){if("mouse"===t.pointerType)return;var a,r,c={};for(r in n)a=n[r],c[r]=a&&a.bind?a.bind(n):a;n=c}n.type="dblclick",n.button=0,e(n),i=null}}t[qt+Kt+a]=r,t[qt+Ut+a]=c,t[qt+"dblclick"+a]=e,t.addEventListener(Kt,r,!!zt&&{passive:!1}),t.addEventListener(Ut,c,!!zt&&{passive:!1}),t.addEventListener("dblclick",e,!1)}(t,r,n):"addEventListener"in t?"touchstart"===e||"touchmove"===e||"wheel"===e||"mousewheel"===e?t.addEventListener(De[e]||e,r,!!zt&&{passive:!1}):"mouseenter"===e||"mouseleave"===e?(r=function(e){e=e||window.event,Ke(t,e)&&c(e)},t.addEventListener(De[e],r,!1)):t.addEventListener(e,c,!1):"attachEvent"in t&&t.attachEvent("on"+e,r),t[ze]=t[ze]||{},t[ze][n]=r}function Me(t,e,a,i){var n=e+s(a)+(i?"_"+s(i):""),r=t[ze]&&t[ze][n];if(!r)return this;At&&0===e.indexOf("touch")?function(t,e,a){var i=t["_leaflet_"+e+a];"touchstart"===e?t.removeEventListener(St,i,!1):"touchmove"===e?t.removeEventListener(kt,i,!1):"touchend"===e&&(t.removeEventListener(Qt,i,!1),t.removeEventListener(It,i,!1))}(t,e,n):yt&&"dblclick"===e&&!xe()?function(t,e){var a=t[qt+Kt+e],i=t[qt+Ut+e],n=t[qt+"dblclick"+e];t.removeEventListener(Kt,a,!!zt&&{passive:!1}),t.removeEventListener(Ut,i,!!zt&&{passive:!1}),t.removeEventListener("dblclick",n,!1)}(t,n):"removeEventListener"in t?t.removeEventListener(De[e]||e,r,!1):"detachEvent"in t&&t.detachEvent("on"+e,r),t[ze][n]=null}function Se(t){return t.stopPropagation?t.stopPropagation():t.originalEvent?t.originalEvent._stopped=!0:t.cancelBubble=!0,Ge(t),this}function ke(t){return Ve(t,"wheel",Se),this}function Qe(t){return Be(t,"mousedown touchstart dblclick",Se),Ve(t,"click",Fe),this}function Ie(t){return t.preventDefault?t.preventDefault():t.returnValue=!1,this}function Oe(t){return Ie(t),Se(t),this}function Ee(t,e){if(!e)return new M(t.clientX,t.clientY);var a=Le(e),i=a.boundingClientRect;return new M((t.clientX-i.left)/a.x-e.clientLeft,(t.clientY-i.top)/a.y-e.clientTop)}var Xe=dt&&ct?2*window.devicePixelRatio:ot?window.devicePixelRatio:1;function Te(t){return tt?t.wheelDeltaY/2:t.deltaY&&0===t.deltaMode?-t.deltaY/Xe:t.deltaY&&1===t.deltaMode?20*-t.deltaY:t.deltaY&&2===t.deltaMode?60*-t.deltaY:t.deltaX||t.deltaZ?0:t.wheelDelta?(t.wheelDeltaY||t.wheelDelta)/2:t.detail&&Math.abs(t.detail)<32765?20*-t.detail:t.detail?t.detail/-32765*60:0}var Pe={};function Fe(t){Pe[t.type]=!0}function Ge(t){var e=Pe[t.type];return Pe[t.type]=!1,e}function Ke(t,e){var a=e.relatedTarget;if(!a)return!0;try{for(;a&&a!==t;)a=a.parentNode}catch(t){return!1}return a!==t}var Ue={on:Be,off:Ne,stopPropagation:Se,disableScrollPropagation:ke,disableClickPropagation:Qe,preventDefault:Ie,stop:Oe,getMousePosition:Ee,getWheelDelta:Te,fakeStop:Fe,skipped:Ge,isExternalTarget:Ke,addListener:Be,removeListener:Ne},qe=V.extend({run:function(t,e,a,i){this.stop(),this._el=t,this._inProgress=!0,this._duration=a||.25,this._easeOutPower=1/Math.max(i||.5,.2),this._startPos=ge(t),this._offset=e.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=B(this._animate,this),this._step()},_step:function(t){var e=+new Date-this._startTime,a=1e3*this._duration;ethis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var a=this.getCenter(),i=this._limitCenter(a,this._zoom,E(t));return a.equals(i)||this.panTo(i,e),this._enforcingBounds=!1,this},panInside:function(t,e){var a=k((e=e||{}).paddingTopLeft||e.padding||[0,0]),i=k(e.paddingBottomRight||e.padding||[0,0]),n=this.getCenter(),s=this.project(n),r=this.project(t),c=this.getPixelBounds(),o=c.getSize().divideBy(2),l=I([c.min.add(a),c.max.subtract(i)]);if(!l.contains(r)){this._enforcingBounds=!0;var h=s.subtract(r),u=k(r.x+h.x,r.y+h.y);(r.xl.max.x)&&(u.x=s.x-h.x,h.x>0?u.x+=o.x-a.x:u.x-=o.x-i.x),(r.yl.max.y)&&(u.y=s.y-h.y,h.y>0?u.y+=o.y-a.y:u.y-=o.y-i.y),this.panTo(this.unproject(u),e),this._enforcingBounds=!1}return this},invalidateSize:function(t){if(!this._loaded)return this;t=e({animate:!1,pan:!0},!0===t?{animate:!0}:t);var a=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var n=this.getSize(),s=a.divideBy(2).round(),r=n.divideBy(2).round(),c=s.subtract(r);return c.x||c.y?(t.animate&&t.pan?this.panBy(c):(t.pan&&this._rawPanBy(c),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(i(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:a,newSize:n})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){if(t=this._locateOptions=e({timeout:1e4,watch:!1},t),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var a=i(this._handleGeolocationResponse,this),n=i(this._handleGeolocationError,this);return t.watch?this._locationWatchId=navigator.geolocation.watchPosition(a,n,t):navigator.geolocation.getCurrentPosition(a,n,t),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e=t.code,a=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+a+"."})},_handleGeolocationResponse:function(t){var e=new X(t.coords.latitude,t.coords.longitude),a=e.toBounds(2*t.coords.accuracy),i=this._locateOptions;if(i.setView){var n=this.getBoundsZoom(a);this.setView(e,i.maxZoom?Math.min(n,i.maxZoom):n)}var s={latlng:e,bounds:a,timestamp:t.timestamp};for(var r in t.coords)"number"==typeof t.coords[r]&&(s[r]=t.coords[r]);this.fire("locationfound",s)},addHandler:function(t,e){if(!e)return this;var a=this[t]=new e(this);return this._handlers.push(a),this.options[t]&&a.enable(),this},remove:function(){if(this._initEvents(!0),this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}var t;for(t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),ie(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(z(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)ie(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){var a=ae("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=a),a},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter:this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new O(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,a){t=E(t),a=k(a||[0,0]);var i=this.getZoom()||0,n=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),c=t.getSouthEast(),o=this.getSize().subtract(a),l=I(this.project(c,i),this.project(r,i)).getSize(),h=gt?this.options.zoomSnap:1,u=o.x/l.x,d=o.y/l.y,f=e?Math.max(u,d):Math.min(u,d);return i=this.getScaleZoom(f,i),h&&(i=Math.round(i/(h/100))*(h/100),i=e?Math.ceil(i/h)*h:Math.floor(i/h)*h),Math.max(n,Math.min(s,i))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new M(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){var a=this._getTopLeftPoint(t,e);return new Q(a,a.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var a=this.options.crs;return e=void 0===e?this._zoom:e,a.scale(t)/a.scale(e)},getScaleZoom:function(t,e){var a=this.options.crs;e=void 0===e?this._zoom:e;var i=a.zoom(t*a.scale(e));return isNaN(i)?1/0:i},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(T(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(k(t),e)},layerPointToLatLng:function(t){var e=k(t).add(this.getPixelOrigin());return this.unproject(e)},latLngToLayerPoint:function(t){return this.project(T(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(T(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(E(t))},distance:function(t,e){return this.options.crs.distance(T(t),T(e))},containerPointToLayerPoint:function(t){return k(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return k(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){var e=this.containerPointToLayerPoint(k(t));return this.layerPointToLatLng(e)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(T(t)))},mouseEventToContainerPoint:function(t){return Ee(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){var e=this._container=te(t);if(!e)throw new Error("Map container not found.");if(e._leaflet_id)throw new Error("Map container is already initialized.");Be(e,"scroll",this._onScroll,this),this._containerId=s(e)},_initLayout:function(){var t=this._container;this._fadeAnimated=this.options.fadeAnimation&>,oe(t,"leaflet-container"+(yt?" leaflet-touch":"")+(Bt?" leaflet-retina":"")+($?" leaflet-oldie":"")+(lt?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var e=ee(t,"position");"absolute"!==e&&"relative"!==e&&"fixed"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),me(this._mapPane,new M(0,0)),this.createPane("tilePane"),this.createPane("shadowPane"),this.createPane("overlayPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(oe(t.markerPane,"leaflet-zoom-hide"),oe(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e){me(this._mapPane,new M(0,0));var a=!this._loaded;this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset");var i=this._zoom!==e;this._moveStart(i,!1)._move(t,e)._moveEnd(i),this.fire("viewreset"),a&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,a){void 0===e&&(e=this._zoom);var i=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),(i||a&&a.pinch)&&this.fire("zoom",a),this.fire("move",a)},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return z(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){me(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={},this._targets[s(this._container)]=this;var e=t?Ne:Be;e(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),gt&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){z(this._resizeRequest),this._resizeRequest=B((function(){this.invalidateSize({debounceMoveend:!0})}),this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var a,i=[],n="mouseout"===e||"mouseover"===e,r=t.target||t.srcElement,c=!1;r;){if((a=this._targets[s(r)])&&("click"===e||"preclick"===e)&&!t._simulated&&this._draggableMoved(a)){c=!0;break}if(a&&a.listens(e,!0)){if(n&&!Ke(r,t))break;if(i.push(a),n)break}if(r===this._container)break;r=r.parentNode}return i.length||c||n||!Ke(r,t)||(i=[this]),i},_handleDOMEvent:function(t){if(this._loaded&&!Ge(t)){var e=t.type;"mousedown"!==e&&"keypress"!==e&&"keyup"!==e&&"keydown"!==e||Ce(t.target||t.srcElement),this._fireDOMEvent(t,e)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,a,i){if("click"===t.type){var n=e({},t);n.type="preclick",this._fireDOMEvent(n,n.type,i)}if(!t._stopped&&(i=(i||[]).concat(this._findEventTargets(t,a))).length){var s=i[0];"contextmenu"===a&&s.listens(a,!0)&&Ie(t);var r={originalEvent:t};if("keypress"!==t.type&&"keydown"!==t.type&&"keyup"!==t.type){var c=s.getLatLng&&(!s._radius||s._radius<=10);r.containerPoint=c?this.latLngToContainerPoint(s.getLatLng()):this.mouseEventToContainerPoint(t),r.layerPoint=this.containerPointToLayerPoint(r.containerPoint),r.latlng=c?s.getLatLng():this.layerPointToLatLng(r.layerPoint)}for(var o=0;o0?Math.round(t-e)/2:Math.max(0,Math.ceil(t))-Math.max(0,Math.floor(e))},_limitZoom:function(t){var e=this.getMinZoom(),a=this.getMaxZoom(),i=gt?this.options.zoomSnap:1;return i&&(t=Math.round(t/i)*i),Math.max(e,Math.min(a,t))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){le(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(t,e){var a=this._getCenterOffset(t)._trunc();return!(!0!==(e&&e.animate)&&!this.getSize().contains(a)||(this.panBy(a,e),0))},_createAnimProxy:function(){var t=this._proxy=ae("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(t),this.on("zoomanim",(function(t){var e=Jt,a=this._proxy.style[e];pe(this._proxy,this.project(t.center,t.zoom),this.getZoomScale(t.zoom,1)),a===this._proxy.style[e]&&this._animatingZoom&&this._onZoomTransitionEnd()}),this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){ie(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var t=this.getCenter(),e=this.getZoom();pe(this._proxy,this.project(t,e),this.getZoomScale(e,1))},_catchTransitionEnd:function(t){this._animatingZoom&&t.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(t,e,a){if(this._animatingZoom)return!0;if(a=a||{},!this._zoomAnimated||!1===a.animate||this._nothingToAnimate()||Math.abs(e-this._zoom)>this.options.zoomAnimationThreshold)return!1;var i=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/i);return!(!0!==a.animate&&!this.getSize().contains(n)||(B((function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)}),this),0))},_animateZoom:function(t,e,a,n){this._mapPane&&(a&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,oe(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),setTimeout(i(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&le(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom),B((function(){this._moveEnd(!0)}),this))}});var Ye=x.extend({options:{position:"topright"},initialize:function(t){d(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),a=this.getPosition(),i=t._controlCorners[a];return oe(e,"leaflet-control"),-1!==a.indexOf("bottom")?i.insertBefore(e,i.firstChild):i.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(ie(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(t){this._map&&t&&t.screenX>0&&t.screenY>0&&this._map.getContainer().focus()}}),Re=function(t){return new Ye(t)};je.include({addControl:function(t){return t.addTo(this),this},removeControl:function(t){return t.remove(),this},_initControlPos:function(){var t=this._controlCorners={},e="leaflet-",a=this._controlContainer=ae("div",e+"control-container",this._container);function i(i,n){var s=e+i+" "+e+n;t[i+n]=ae("div",s,a)}i("top","left"),i("top","right"),i("bottom","left"),i("bottom","right")},_clearControlPos:function(){for(var t in this._controlCorners)ie(this._controlCorners[t]);ie(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var We=Ye.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(t,e,a,i){return a1,this._baseLayersList.style.display=t?"":"none"),this._separator.style.display=e&&t?"":"none",this},_onLayerChange:function(t){this._handlingClick||this._update();var e=this._getLayer(s(t.target)),a=e.overlay?"add"===t.type?"overlayadd":"overlayremove":"add"===t.type?"baselayerchange":null;a&&this._map.fire(a,e)},_createRadioElement:function(t,e){var a='",i=document.createElement("div");return i.innerHTML=a,i.firstChild},_addItem:function(t){var e,a=document.createElement("label"),i=this._map.hasLayer(t.layer);t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=i):e=this._createRadioElement("leaflet-base-layers_"+s(this),i),this._layerControlInputs.push(e),e.layerId=s(t.layer),Be(e,"click",this._onInputClick,this);var n=document.createElement("span");n.innerHTML=" "+t.name;var r=document.createElement("div");return a.appendChild(r),r.appendChild(e),r.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(a),this._checkDisabledLayers(),a},_onInputClick:function(){var t,e,a=this._layerControlInputs,i=[],n=[];this._handlingClick=!0;for(var s=a.length-1;s>=0;s--)t=a[s],e=this._getLayer(t.layerId).layer,t.checked?i.push(e):t.checked||n.push(e);for(s=0;s=0;n--)t=a[n],e=this._getLayer(t.layerId).layer,t.disabled=void 0!==e.options.minZoom&&ie.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expand:function(){return this.expand()},_collapse:function(){return this.collapse()}}),Ze=Ye.extend({options:{position:"topleft",zoomInText:"+",zoomInTitle:"Zoom in",zoomOutText:"−",zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",a=ae("div",e+" leaflet-bar"),i=this.options;return this._zoomInButton=this._createButton(i.zoomInText,i.zoomInTitle,e+"-in",a,this._zoomIn),this._zoomOutButton=this._createButton(i.zoomOutText,i.zoomOutTitle,e+"-out",a,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),a},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,a,i,n){var s=ae("a",a,i);return s.innerHTML=t,s.href="#",s.title=e,s.setAttribute("role","button"),s.setAttribute("aria-label",e),Qe(s),Be(s,"click",Oe),Be(s,"click",n,this),Be(s,"click",this._refocusOnMap,this),s},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";le(this._zoomInButton,e),le(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMinZoom())&&oe(this._zoomOutButton,e),(this._disabled||t._zoom===t.getMaxZoom())&&oe(this._zoomInButton,e)}});je.mergeOptions({zoomControl:!0}),je.addInitHook((function(){this.options.zoomControl&&(this.zoomControl=new Ze,this.addControl(this.zoomControl))}));var Je=Ye.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",a=ae("div",e),i=this.options;return this._addScales(i,e+"-line",a),t.on(i.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),a},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,a){t.metric&&(this._mScale=ae("div",e,a)),t.imperial&&(this._iScale=ae("div",e,a))},_update:function(){var t=this._map,e=t.getSize().y/2,a=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(a)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t),a=e<1e3?e+" m":e/1e3+" km";this._updateScale(this._mScale,a,e/t)},_updateImperial:function(t){var e,a,i,n=3.2808399*t;n>5280?(e=n/5280,a=this._getRoundNum(e),this._updateScale(this._iScale,a+" mi",a/e)):(i=this._getRoundNum(n),this._updateScale(this._iScale,i+" ft",i/n))},_updateScale:function(t,e,a){t.style.width=Math.round(this.options.maxWidth*a)+"px",t.innerHTML=e},_getRoundNum:function(t){var e=Math.pow(10,(Math.floor(t)+"").length-1),a=t/e;return e*(a>=10?10:a>=5?5:a>=3?3:a>=2?2:1)}}),_e=Ye.extend({options:{position:"bottomright",prefix:'Leaflet'},initialize:function(t){d(this,t),this._attributions={}},onAdd:function(t){for(var e in t.attributionControl=this,this._container=ae("div","leaflet-control-attribution"),Qe(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),this._container},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t?(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update(),this):this},removeAttribution:function(t){return t?(this._attributions[t]&&(this._attributions[t]--,this._update()),this):this},_update:function(){if(this._map){var t=[];for(var e in this._attributions)this._attributions[e]&&t.push(e);var a=[];this.options.prefix&&a.push(this.options.prefix),t.length&&a.push(t.join(", ")),this._container.innerHTML=a.join(" | ")}}});je.mergeOptions({attributionControl:!0}),je.addInitHook((function(){this.options.attributionControl&&(new _e).addTo(this)}));Ye.Layers=We,Ye.Zoom=Ze,Ye.Scale=Je,Ye.Attribution=_e,Re.layers=function(t,e,a){return new We(t,e,a)},Re.zoom=function(t){return new Ze(t)},Re.scale=function(t){return new Je(t)},Re.attribution=function(t){return new _e(t)};var $e=x.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});$e.addTo=function(t,e){return t.addHandler(e,this),this};var ta,ea={Events:D},aa=yt?"touchstart mousedown":"mousedown",ia={mousedown:"mouseup",touchstart:"touchend",pointerdown:"touchend",MSPointerDown:"touchend"},na={mousedown:"mousemove",touchstart:"touchmove",pointerdown:"touchmove",MSPointerDown:"touchmove"},sa=V.extend({options:{clickTolerance:3},initialize:function(t,e,a,i){d(this,i),this._element=t,this._dragStartTarget=e||t,this._preventOutline=a},enable:function(){this._enabled||(Be(this._dragStartTarget,aa,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(sa._dragging===this&&this.finishDrag(),Ne(this._dragStartTarget,aa,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){if(!t._simulated&&this._enabled&&(this._moved=!1,!ce(this._element,"leaflet-zoom-anim")&&!(sa._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||(sa._dragging=this,this._preventOutline&&Ce(this._element),be(),jt(),this._moving)))){this.fire("down");var e=t.touches?t.touches[0]:t,a=ye(this._element);this._startPoint=new M(e.clientX,e.clientY),this._parentScale=Le(a),Be(document,na[t.type],this._onMove,this),Be(document,ia[t.type],this._onUp,this)}},_onMove:function(t){if(!t._simulated&&this._enabled)if(t.touches&&t.touches.length>1)this._moved=!0;else{var e=t.touches&&1===t.touches.length?t.touches[0]:t,a=new M(e.clientX,e.clientY)._subtract(this._startPoint);(a.x||a.y)&&(Math.abs(a.x)+Math.abs(a.y)e&&(a.push(t[i]),n=i);return no&&(s=r,o=c);o>a&&(e[s]=1,oa(t,e,a,i,s),oa(t,e,a,s,n))}function la(t,e,a,i,n){var s,r,c,o=i?ta:ua(t,a),l=ua(e,a);for(ta=l;;){if(!(o|l))return[t,e];if(o&l)return!1;c=ua(r=ha(t,e,s=o||l,a,n),a),s===o?(t=r,o=c):(e=r,l=c)}}function ha(t,e,a,i,n){var s,r,c=e.x-t.x,o=e.y-t.y,l=i.min,h=i.max;return 8&a?(s=t.x+c*(h.y-t.y)/o,r=h.y):4&a?(s=t.x+c*(l.y-t.y)/o,r=l.y):2&a?(s=h.x,r=t.y+o*(h.x-t.x)/c):1&a&&(s=l.x,r=t.y+o*(l.x-t.x)/c),new M(s,r,n)}function ua(t,e){var a=0;return t.xe.max.x&&(a|=2),t.ye.max.y&&(a|=8),a}function da(t,e){var a=e.x-t.x,i=e.y-t.y;return a*a+i*i}function fa(t,e,a,i){var n,s=e.x,r=e.y,c=a.x-s,o=a.y-r,l=c*c+o*o;return l>0&&((n=((t.x-s)*c+(t.y-r)*o)/l)>1?(s=a.x,r=a.y):n>0&&(s+=c*n,r+=o*n)),c=t.x-s,o=t.y-r,i?c*c+o*o:new M(s,r)}function pa(t){return!g(t[0])||"object"!=typeof t[0][0]&&void 0!==t[0][0]}function ma(t){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),pa(t)}var ga={simplify:ra,pointToSegmentDistance:ca,closestPointOnSegment:function(t,e,a){return fa(t,e,a)},clipSegment:la,_getEdgeIntersection:ha,_getBitCode:ua,_sqClosestPointOnSegment:fa,isFlat:pa,_flat:ma};function va(t,e,a){var i,n,s,r,c,o,l,h,u,d=[1,4,2,8];for(n=0,l=t.length;n1e-7;o++)e=s*Math.sin(c),e=Math.pow((1-e)/(1+e),s/2),c+=l=Math.PI/2-2*Math.atan(r*e)-c;return new X(c*a,t.x*a/i)}},Aa={LonLat:wa,Mercator:Ca,SphericalMercator:U},ya=e({},G,{code:"EPSG:3395",projection:Ca,transformation:function(){var t=.5/(Math.PI*Ca.R);return j(t,.5,-t,.5)}()}),La=e({},G,{code:"EPSG:4326",projection:wa,transformation:j(1/180,1,-1/180,.5)}),Ha=e({},F,{projection:wa,transformation:j(1,0,-1,0),scale:function(t){return Math.pow(2,t)},zoom:function(t){return Math.log(t)/Math.LN2},distance:function(t,e){var a=e.lng-t.lng,i=e.lat-t.lat;return Math.sqrt(a*a+i*i)},infinite:!0});F.Earth=G,F.EPSG3395=ya,F.EPSG3857=Y,F.EPSG900913=R,F.EPSG4326=La,F.Simple=Ha;var Ba=V.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(t){return t.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(t){return t&&t.removeLayer(this),this},getPane:function(t){return this._map.getPane(t?this.options[t]||t:this.options.pane)},addInteractiveTarget:function(t){return this._map._targets[s(t)]=this,this},removeInteractiveTarget:function(t){return delete this._map._targets[s(t)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(t){var e=t.target;if(e.hasLayer(this)){if(this._map=e,this._zoomAnimated=e._zoomAnimated,this.getEvents){var a=this.getEvents();e.on(a,this),this.once("remove",(function(){e.off(a,this)}),this)}this.onAdd(e),this.getAttribution&&e.attributionControl&&e.attributionControl.addAttribution(this.getAttribution()),this.fire("add"),e.fire("layeradd",{layer:this})}}});je.include({addLayer:function(t){if(!t._layerAdd)throw new Error("The provided object is not a Layer.");var e=s(t);return this._layers[e]||(this._layers[e]=t,t._mapToAdd=this,t.beforeAdd&&t.beforeAdd(this),this.whenReady(t._layerAdd,t)),this},removeLayer:function(t){var e=s(t);return this._layers[e]?(this._loaded&&t.onRemove(this),t.getAttribution&&this.attributionControl&&this.attributionControl.removeAttribution(t.getAttribution()),delete this._layers[e],this._loaded&&(this.fire("layerremove",{layer:t}),t.fire("remove")),t._map=t._mapToAdd=null,this):this},hasLayer:function(t){return!!t&&s(t)in this._layers},eachLayer:function(t,e){for(var a in this._layers)t.call(e,this._layers[a]);return this},_addLayers:function(t){for(var e=0,a=(t=t?g(t)?t:[t]:[]).length;ethis._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()e)return r=(i-e)/a,this._map.layerPointToLatLng([s.x-r*(s.x-n.x),s.y-r*(s.y-n.y)])},getBounds:function(){return this._bounds},addLatLng:function(t,e){return e=e||this._defaultShape(),t=T(t),e.push(t),this._bounds.extend(t),this.redraw()},_setLatLngs:function(t){this._bounds=new O,this._latlngs=this._convertLatLngs(t)},_defaultShape:function(){return pa(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(t){for(var e=[],a=pa(t),i=0,n=t.length;i=2&&e[0]instanceof X&&e[0].equals(e[a-1])&&e.pop(),e},_setLatLngs:function(t){Ia.prototype._setLatLngs.call(this,t),pa(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return pa(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var t=this._renderer._bounds,e=this.options.weight,a=new M(e,e);if(t=new Q(t.min.subtract(a),t.max.add(a)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(t))if(this.options.noClip)this._parts=this._rings;else for(var i,n=0,s=this._rings.length;nt.y!=i.y>t.y&&t.x<(i.x-a.x)*(t.y-a.y)/(i.y-a.y)+a.x&&(l=!l);return l||Ia.prototype._containsPoint.call(this,t,!0)}});var Ea=Na.extend({initialize:function(t,e){d(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,a,i,n=g(t)?t:t.features;if(n){for(e=0,a=n.length;e0?n:[e.src]}else{g(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(e.style,"objectFit")&&(e.style.objectFit="fill"),e.autoplay=!!this.options.autoplay,e.loop=!!this.options.loop,e.muted=!!this.options.muted;for(var r=0;rn?(e.height=n+"px",oe(t,s)):le(t,s),this._containerWidth=this._container.offsetWidth},_animateZoom:function(t){var e=this._map._latLngToNewLayerPoint(this._latlng,t.zoom,t.center),a=this._getAnchor();me(this._container,e.add(a))},_adjustPan:function(){if(this.options.autoPan){this._map._panAnim&&this._map._panAnim.stop();var t=this._map,e=parseInt(ee(this._container,"marginBottom"),10)||0,a=this._container.offsetHeight+e,i=this._containerWidth,n=new M(this._containerLeft,-a-this._containerBottom);n._add(ge(this._container));var s=t.layerPointToContainerPoint(n),r=k(this.options.autoPanPadding),c=k(this.options.autoPanPaddingTopLeft||r),o=k(this.options.autoPanPaddingBottomRight||r),l=t.getSize(),h=0,u=0;s.x+i+o.x>l.x&&(h=s.x+i-l.x+o.x),s.x-h-c.x<0&&(h=s.x-c.x),s.y+a+o.y>l.y&&(u=s.y+a-l.y+o.y),s.y-u-c.y<0&&(u=s.y-c.y),(h||u)&&t.fire("autopanstart").panBy([h,u])}},_onCloseButtonClick:function(t){this._close(),Oe(t)},_getAnchor:function(){return k(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}});je.mergeOptions({closePopupOnClick:!0}),je.include({openPopup:function(t,e,a){return t instanceof $a||(t=new $a(a).setContent(t)),e&&t.setLatLng(e),this.hasLayer(t)?this:(this._popup&&this._popup.options.autoClose&&this.closePopup(),this._popup=t,this.addLayer(t))},closePopup:function(t){return t&&t!==this._popup||(t=this._popup,this._popup=null),t&&this.removeLayer(t),this}}),Ba.include({bindPopup:function(t,e){return t instanceof $a?(d(t,e),this._popup=t,t._source=this):(this._popup&&!e||(this._popup=new $a(e,this)),this._popup.setContent(t)),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t,e){return this._popup&&this._map&&(e=this._popup._prepareOpen(this,t,e),this._map.openPopup(this._popup,e)),this},closePopup:function(){return this._popup&&this._popup._close(),this},togglePopup:function(t){return this._popup&&(this._popup._map?this.closePopup():this.openPopup(t)),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e=t.layer||t.target;this._popup&&this._map&&(Oe(t),e instanceof Sa?this.openPopup(t.layer||t.target,t.latlng):this._map.hasLayer(this._popup)&&this._popup._source===e?this.closePopup():this.openPopup(e,t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}});var ti=_a.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,interactive:!1,opacity:.9},onAdd:function(t){_a.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&this._source.fire("tooltipopen",{tooltip:this},!0)},onRemove:function(t){_a.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&this._source.fire("tooltipclose",{tooltip:this},!0)},getEvents:function(){var t=_a.prototype.getEvents.call(this);return yt&&!this.options.permanent&&(t.preclick=this._close),t},_close:function(){this._map&&this._map.closeTooltip(this)},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=ae("div",t)},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,a,i=this._map,n=this._container,s=i.latLngToContainerPoint(i.getCenter()),r=i.layerPointToContainerPoint(t),c=this.options.direction,o=n.offsetWidth,l=n.offsetHeight,h=k(this.options.offset),u=this._getAnchor();"top"===c?(e=o/2,a=l):"bottom"===c?(e=o/2,a=0):"center"===c?(e=o/2,a=l/2):"right"===c?(e=0,a=l/2):"left"===c?(e=o,a=l/2):r.xthis.options.maxZoom||ai&&this._retainParent(n,s,r,i))},_retainChildren:function(t,e,a,i){for(var n=2*t;n<2*t+2;n++)for(var s=2*e;s<2*e+2;s++){var r=new M(n,s);r.z=a+1;var c=this._tileCoordsToKey(r),o=this._tiles[c];o&&o.active?o.retain=!0:(o&&o.loaded&&(o.retain=!0),a+1this.options.maxZoom||void 0!==this.options.minZoom&&n1)this._setView(t,a);else{for(var u=n.min.y;u<=n.max.y;u++)for(var d=n.min.x;d<=n.max.x;d++){var f=new M(d,u);if(f.z=this._tileZoom,this._isValidTile(f)){var p=this._tiles[this._tileCoordsToKey(f)];p?p.current=!0:r.push(f)}}if(r.sort((function(t,e){return t.distanceTo(s)-e.distanceTo(s)})),0!==r.length){this._loading||(this._loading=!0,this.fire("loading"));var m=document.createDocumentFragment();for(d=0;da.max.x)||!e.wrapLat&&(t.ya.max.y))return!1}if(!this.options.bounds)return!0;var i=this._tileCoordsToBounds(t);return E(this.options.bounds).overlaps(i)},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,a=this.getTileSize(),i=t.scaleBy(a),n=i.add(a);return[e.unproject(i,t.z),e.unproject(n,t.z)]},_tileCoordsToBounds:function(t){var e=this._tileCoordsToNwSe(t),a=new O(e[0],e[1]);return this.options.noWrap||(a=this._map.wrapLatLngBounds(a)),a},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var e=t.split(":"),a=new M(+e[0],+e[1]);return a.z=+e[2],a},_removeTile:function(t){var e=this._tiles[t];e&&(ie(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){oe(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=o,t.onmousemove=o,$&&this.options.opacity<1&&de(t,this.options.opacity),at&&!it&&(t.style.WebkitBackfaceVisibility="hidden")},_addTile:function(t,e){var a=this._getTilePos(t),n=this._tileCoordsToKey(t),s=this.createTile(this._wrapCoords(t),i(this._tileReady,this,t));this._initTile(s),this.createTile.length<2&&B(i(this._tileReady,this,t,null,s)),me(s,a),this._tiles[n]={el:s,coords:t,current:!0},e.appendChild(s),this.fire("tileloadstart",{tile:s,coords:t})},_tileReady:function(t,e,a){e&&this.fire("tileerror",{error:e,tile:a,coords:t});var n=this._tileCoordsToKey(t);(a=this._tiles[n])&&(a.loaded=+new Date,this._map._fadeAnimated?(de(a.el,0),z(this._fadeFrame),this._fadeFrame=B(this._updateOpacity,this)):(a.active=!0,this._pruneTiles()),e||(oe(a.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:a.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),$||!this._map._fadeAnimated?B(this._pruneTiles,this):setTimeout(i(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new M(this._wrapX?c(t.x,this._wrapX):t.x,this._wrapY?c(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new Q(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var ii=ai.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1},initialize:function(t,e){this._url=t,(e=d(this,e)).detectRetina&&Bt&&e.maxZoom>0&&(e.tileSize=Math.floor(e.tileSize/2),e.zoomReverse?(e.zoomOffset--,e.minZoom++):(e.zoomOffset++,e.maxZoom--),e.minZoom=Math.max(0,e.minZoom)),"string"==typeof e.subdomains&&(e.subdomains=e.subdomains.split("")),at||this.on("tileunload",this._onTileRemove)},setUrl:function(t,e){return this._url===t&&void 0===e&&(e=!0),this._url=t,e||this.redraw(),this},createTile:function(t,e){var a=document.createElement("img");return Be(a,"load",i(this._tileOnLoad,this,e,a)),Be(a,"error",i(this._tileOnError,this,e,a)),(this.options.crossOrigin||""===this.options.crossOrigin)&&(a.crossOrigin=!0===this.options.crossOrigin?"":this.options.crossOrigin),a.alt="",a.setAttribute("role","presentation"),a.src=this.getTileUrl(t),a},getTileUrl:function(t){var a={r:Bt?"@2x":"",s:this._getSubdomain(t),x:t.x,y:t.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var i=this._globalTileRange.max.y-t.y;this.options.tms&&(a.y=i),a["-y"]=i}return m(this._url,e(a,this.options))},_tileOnLoad:function(t,e){$?setTimeout(i(t,this,null,e),0):t(null,e)},_tileOnError:function(t,e,a){var i=this.options.errorTileUrl;i&&e.getAttribute("src")!==i&&(e.src=i),t(a,e)},_onTileRemove:function(t){t.tile.onload=null},_getZoomForUrl:function(){var t=this._tileZoom,e=this.options.maxZoom;return this.options.zoomReverse&&(t=e-t),t+this.options.zoomOffset},_getSubdomain:function(t){var e=Math.abs(t.x+t.y)%this.options.subdomains.length;return this.options.subdomains[e]},_abortLoading:function(){var t,e;for(t in this._tiles)this._tiles[t].coords.z!==this._tileZoom&&((e=this._tiles[t].el).onload=o,e.onerror=o,e.complete||(e.src=b,ie(e),delete this._tiles[t]))},_removeTile:function(t){var e=this._tiles[t];if(e)return st||e.el.setAttribute("src",b),ai.prototype._removeTile.call(this,t)},_tileReady:function(t,e,a){if(this._map&&(!a||a.getAttribute("src")!==b))return ai.prototype._tileReady.call(this,t,e,a)}});function ni(t,e){return new ii(t,e)}var si=ii.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(t,a){this._url=t;var i=e({},this.defaultWmsParams);for(var n in a)n in this.options||(i[n]=a[n]);var s=(a=d(this,a)).detectRetina&&Bt?2:1,r=this.getTileSize();i.width=r.x*s,i.height=r.y*s,this.wmsParams=i},onAdd:function(t){this._crs=this.options.crs||t.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var e=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[e]=this._crs.code,ii.prototype.onAdd.call(this,t)},getTileUrl:function(t){var e=this._tileCoordsToNwSe(t),a=this._crs,i=I(a.project(e[0]),a.project(e[1])),n=i.min,s=i.max,r=(this._wmsVersion>=1.3&&this._crs===La?[n.y,n.x,s.y,s.x]:[n.x,n.y,s.x,s.y]).join(","),c=ii.prototype.getTileUrl.call(this,t);return c+f(this.wmsParams,c,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+r},setParams:function(t,a){return e(this.wmsParams,t),a||this.redraw(),this}});ii.WMS=si,ni.wms=function(t,e){return new si(t,e)};var ri=Ba.extend({options:{padding:.1,tolerance:0},initialize:function(t){d(this,t),s(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),this._zoomAnimated&&oe(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var t={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(t.zoomanim=this._onAnimZoom),t},_onAnimZoom:function(t){this._updateTransform(t.center,t.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(t,e){var a=this._map.getZoomScale(e,this._zoom),i=ge(this._container),n=this._map.getSize().multiplyBy(.5+this.options.padding),s=this._map.project(this._center,e),r=this._map.project(t,e).subtract(s),c=n.multiplyBy(-a).add(i).add(n).subtract(r);gt?pe(this._container,c,a):me(this._container,c)},_reset:function(){for(var t in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[t]._reset()},_onZoomEnd:function(){for(var t in this._layers)this._layers[t]._project()},_updatePaths:function(){for(var t in this._layers)this._layers[t]._update()},_update:function(){var t=this.options.padding,e=this._map.getSize(),a=this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round();this._bounds=new Q(a,a.add(e.multiplyBy(1+2*t)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),ci=ri.extend({getEvents:function(){var t=ri.prototype.getEvents.call(this);return t.viewprereset=this._onViewPreReset,t},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ri.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var t=this._container=document.createElement("canvas");Be(t,"mousemove",this._onMouseMove,this),Be(t,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Be(t,"mouseout",this._handleMouseOut,this),this._ctx=t.getContext("2d")},_destroyContainer:function(){z(this._redrawRequest),delete this._ctx,ie(this._container),Ne(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){for(var t in this._redrawBounds=null,this._layers)this._layers[t]._update();this._redraw()}},_update:function(){if(!this._map._animatingZoom||!this._bounds){ri.prototype._update.call(this);var t=this._bounds,e=this._container,a=t.getSize(),i=Bt?2:1;me(e,t.min),e.width=i*a.x,e.height=i*a.y,e.style.width=a.x+"px",e.style.height=a.y+"px",Bt&&this._ctx.scale(2,2),this._ctx.translate(-t.min.x,-t.min.y),this.fire("update")}},_reset:function(){ri.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(t){this._updateDashArray(t),this._layers[s(t)]=t;var e=t._order={layer:t,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=e),this._drawLast=e,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(t){this._requestRedraw(t)},_removePath:function(t){var e=t._order,a=e.next,i=e.prev;a?a.prev=i:this._drawLast=i,i?i.next=a:this._drawFirst=a,delete t._order,delete this._layers[s(t)],this._requestRedraw(t)},_updatePath:function(t){this._extendRedrawBounds(t),t._project(),t._update(),this._requestRedraw(t)},_updateStyle:function(t){this._updateDashArray(t),this._requestRedraw(t)},_updateDashArray:function(t){if("string"==typeof t.options.dashArray){var e,a,i=t.options.dashArray.split(/[, ]+/),n=[];for(a=0;a')}}catch(t){return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}}(),hi={_initContainer:function(){this._container=ae("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(ri.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=li("shape");oe(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=li("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;ie(e),t.removeInteractiveTarget(e),delete this._layers[s(t)]},_updateStyle:function(t){var e=t._stroke,a=t._fill,i=t.options,n=t._container;n.stroked=!!i.stroke,n.filled=!!i.fill,i.stroke?(e||(e=t._stroke=li("stroke")),n.appendChild(e),e.weight=i.weight+"px",e.color=i.color,e.opacity=i.opacity,i.dashArray?e.dashStyle=g(i.dashArray)?i.dashArray.join(" "):i.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=i.lineCap.replace("butt","flat"),e.joinstyle=i.lineJoin):e&&(n.removeChild(e),t._stroke=null),i.fill?(a||(a=t._fill=li("fill")),n.appendChild(a),a.color=i.fillColor||i.color,a.opacity=i.fillOpacity):a&&(n.removeChild(a),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),a=Math.round(t._radius),i=Math.round(t._radiusY||a);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+a+","+i+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){se(t._container)},_bringToBack:function(t){re(t._container)}},ui=Dt?li:W,di=ri.extend({getEvents:function(){var t=ri.prototype.getEvents.call(this);return t.zoomstart=this._onZoomStart,t},_initContainer:function(){this._container=ui("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=ui("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){ie(this._container),Ne(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_onZoomStart:function(){this._update()},_update:function(){if(!this._map._animatingZoom||!this._bounds){ri.prototype._update.call(this);var t=this._bounds,e=t.getSize(),a=this._container;this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,a.setAttribute("width",e.x),a.setAttribute("height",e.y)),me(a,t.min),a.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update")}},_initPath:function(t){var e=t._path=ui("path");t.options.className&&oe(e,t.options.className),t.options.interactive&&oe(e,"leaflet-interactive"),this._updateStyle(t),this._layers[s(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){ie(t._path),t.removeInteractiveTarget(t._path),delete this._layers[s(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,a=t.options;e&&(a.stroke?(e.setAttribute("stroke",a.color),e.setAttribute("stroke-opacity",a.opacity),e.setAttribute("stroke-width",a.weight),e.setAttribute("stroke-linecap",a.lineCap),e.setAttribute("stroke-linejoin",a.lineJoin),a.dashArray?e.setAttribute("stroke-dasharray",a.dashArray):e.removeAttribute("stroke-dasharray"),a.dashOffset?e.setAttribute("stroke-dashoffset",a.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),a.fill?(e.setAttribute("fill",a.fillColor||a.color),e.setAttribute("fill-opacity",a.fillOpacity),e.setAttribute("fill-rule",a.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,Z(t._parts,e))},_updateCircle:function(t){var e=t._point,a=Math.max(Math.round(t._radius),1),i="a"+a+","+(Math.max(Math.round(t._radiusY),1)||a)+" 0 1,0 ",n=t._empty()?"M0 0":"M"+(e.x-a)+","+e.y+i+2*a+",0 "+i+2*-a+",0 ";this._setPath(t,n)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){se(t._path)},_bringToBack:function(t){re(t._path)}});function fi(t){return xt||Dt?new di(t):null}Dt&&di.include(hi),je.include({getRenderer:function(t){var e=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer;return e||(e=this._renderer=this._createRenderer()),this.hasLayer(e)||this.addLayer(e),e},_getPaneRenderer:function(t){if("overlayPane"===t||void 0===t)return!1;var e=this._paneRenderers[t];return void 0===e&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e},_createRenderer:function(t){return this.options.preferCanvas&&oi(t)||fi(t)}});var pi=Oa.extend({initialize:function(t,e){Oa.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=E(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});di.create=ui,di.pointsToPath=Z,Ea.geometryToLayer=Xa,Ea.coordsToLatLng=Pa,Ea.coordsToLatLngs=Fa,Ea.latLngToCoords=Ga,Ea.latLngsToCoords=Ka,Ea.getFeature=Ua,Ea.asFeature=qa,je.mergeOptions({boxZoom:!0});var mi=$e.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){Be(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){Ne(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){ie(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),jt(),be(),this._startPoint=this._map.mouseEventToContainerPoint(t),Be(document,{contextmenu:Oe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=ae("div","leaflet-zoom-box",this._container),oe(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var e=new Q(this._point,this._startPoint),a=e.getSize();me(this._box,e.min),this._box.style.width=a.x+"px",this._box.style.height=a.y+"px"},_finish:function(){this._moved&&(ie(this._box),le(this._container,"leaflet-crosshair")),Yt(),we(),Ne(document,{contextmenu:Oe,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){if((1===t.which||1===t.button)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(i(this._resetState,this),0);var e=new O(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(e).fire("boxzoomend",{boxZoomBounds:e})}},_onKeyDown:function(t){27===t.keyCode&&this._finish()}});je.addInitHook("addHandler","boxZoom",mi),je.mergeOptions({doubleClickZoom:!0});var gi=$e.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,a=e.getZoom(),i=e.options.zoomDelta,n=t.originalEvent.shiftKey?a-i:a+i;"center"===e.options.doubleClickZoom?e.setZoom(n):e.setZoomAround(t.containerPoint,n)}});je.addInitHook("addHandler","doubleClickZoom",gi),je.mergeOptions({dragging:!0,inertia:!it,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var vi=$e.extend({addHooks:function(){if(!this._draggable){var t=this._map;this._draggable=new sa(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))}oe(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){le(this._map._container,"leaflet-grab"),le(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t=this._map;if(t._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var e=E(this._map.options.maxBounds);this._offsetLimit=I(this._map.latLngToContainerPoint(e.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(e.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;t.fire("movestart").fire("dragstart"),t.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){if(this._map.options.inertia){var e=this._lastTime=+new Date,a=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(a),this._times.push(e),this._prunePositions(e)}this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;this._positions.length>1&&t-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var t=this._map.getSize().divideBy(2),e=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=e.subtract(t).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(t,e){return t-(t-e)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var t=this._draggable._newPos.subtract(this._draggable._startPos),e=this._offsetLimit;t.xe.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t)}},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),a=this._initialWorldOffset,i=this._draggable._newPos.x,n=(i-e+a)%t+e-a,s=(i+e+a)%t-e-a,r=Math.abs(n+a)0?s:-s))-e;this._delta=0,this._startTime=null,r&&("center"===t.options.scrollWheelZoom?t.setZoom(e+r):t.setZoomAround(this._lastMousePos,e+r))}});je.addInitHook("addHandler","scrollWheelZoom",wi),je.mergeOptions({tap:!0,tapTolerance:15});var Ci=$e.extend({addHooks:function(){Be(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){Ne(this._map._container,"touchstart",this._onDown,this)},_onDown:function(t){if(t.touches){if(Ie(t),this._fireClick=!0,t.touches.length>1)return this._fireClick=!1,void clearTimeout(this._holdTimeout);var e=t.touches[0],a=e.target;this._startPos=this._newPos=new M(e.clientX,e.clientY),a.tagName&&"a"===a.tagName.toLowerCase()&&oe(a,"leaflet-active"),this._holdTimeout=setTimeout(i((function(){this._isTapValid()&&(this._fireClick=!1,this._onUp(),this._simulateEvent("contextmenu",e))}),this),1e3),this._simulateEvent("mousedown",e),Be(document,{touchmove:this._onMove,touchend:this._onUp},this)}},_onUp:function(t){if(clearTimeout(this._holdTimeout),Ne(document,{touchmove:this._onMove,touchend:this._onUp},this),this._fireClick&&t&&t.changedTouches){var e=t.changedTouches[0],a=e.target;a&&a.tagName&&"a"===a.tagName.toLowerCase()&&le(a,"leaflet-active"),this._simulateEvent("mouseup",e),this._isTapValid()&&this._simulateEvent("click",e)}},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_onMove:function(t){var e=t.touches[0];this._newPos=new M(e.clientX,e.clientY),this._simulateEvent("mousemove",e)},_simulateEvent:function(t,e){var a=document.createEvent("MouseEvents");a._simulated=!0,e.target._simulatedClick=!0,a.initMouseEvent(t,!0,!0,window,1,e.screenX,e.screenY,e.clientX,e.clientY,!1,!1,!1,!1,0,null),e.target.dispatchEvent(a)}});!yt||At&&!lt||je.addInitHook("addHandler","tap",Ci),je.mergeOptions({touchZoom:yt&&!it,bounceAtZoomLimits:!0});var Ai=$e.extend({addHooks:function(){oe(this._map._container,"leaflet-touch-zoom"),Be(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){le(this._map._container,"leaflet-touch-zoom"),Ne(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(t){var e=this._map;if(t.touches&&2===t.touches.length&&!e._animatingZoom&&!this._zooming){var a=e.mouseEventToContainerPoint(t.touches[0]),i=e.mouseEventToContainerPoint(t.touches[1]);this._centerPoint=e.getSize()._divideBy(2),this._startLatLng=e.containerPointToLatLng(this._centerPoint),"center"!==e.options.touchZoom&&(this._pinchStartLatLng=e.containerPointToLatLng(a.add(i)._divideBy(2))),this._startDist=a.distanceTo(i),this._startZoom=e.getZoom(),this._moved=!1,this._zooming=!0,e._stop(),Be(document,"touchmove",this._onTouchMove,this),Be(document,"touchend",this._onTouchEnd,this),Ie(t)}},_onTouchMove:function(t){if(t.touches&&2===t.touches.length&&this._zooming){var e=this._map,a=e.mouseEventToContainerPoint(t.touches[0]),n=e.mouseEventToContainerPoint(t.touches[1]),s=a.distanceTo(n)/this._startDist;if(this._zoom=e.getScaleZoom(s,this._startZoom),!e.options.bounceAtZoomLimits&&(this._zoome.getMaxZoom()&&s>1)&&(this._zoom=e._limitZoom(this._zoom)),"center"===e.options.touchZoom){if(this._center=this._startLatLng,1===s)return}else{var r=a._add(n)._divideBy(2)._subtract(this._centerPoint);if(1===s&&0===r.x&&0===r.y)return;this._center=e.unproject(e.project(this._pinchStartLatLng,this._zoom).subtract(r),this._zoom)}this._moved||(e._moveStart(!0,!1),this._moved=!0),z(this._animRequest);var c=i(e._move,e,this._center,this._zoom,{pinch:!0,round:!1});this._animRequest=B(c,this,!0),Ie(t)}},_onTouchEnd:function(){this._moved&&this._zooming?(this._zooming=!1,z(this._animRequest),Ne(document,"touchmove",this._onTouchMove,this),Ne(document,"touchend",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))):this._zooming=!1}});je.addInitHook("addHandler","touchZoom",Ai),je.BoxZoom=mi,je.DoubleClickZoom=gi,je.Drag=vi,je.Keyboard=bi,je.ScrollWheelZoom=wi,je.Tap=Ci,je.TouchZoom=Ai,t.version="1.7.1",t.Control=Ye,t.control=Re,t.Browser=Mt,t.Evented=V,t.Mixin=ea,t.Util=N,t.Class=x,t.Handler=$e,t.extend=e,t.bind=i,t.stamp=s,t.setOptions=d,t.DomEvent=Ue,t.DomUtil=He,t.PosAnimation=qe,t.Draggable=sa,t.LineUtil=ga,t.PolyUtil=ba,t.Point=M,t.point=k,t.Bounds=Q,t.bounds=I,t.Transformation=q,t.transformation=j,t.Projection=Aa,t.LatLng=X,t.latLng=T,t.LatLngBounds=O,t.latLngBounds=E,t.CRS=F,t.GeoJSON=Ea,t.geoJSON=Ya,t.geoJson=Ra,t.Layer=Ba,t.LayerGroup=za,t.layerGroup=function(t,e){return new za(t,e)},t.FeatureGroup=Na,t.featureGroup=function(t,e){return new Na(t,e)},t.ImageOverlay=Wa,t.imageOverlay=function(t,e,a){return new Wa(t,e,a)},t.VideoOverlay=Za,t.videoOverlay=function(t,e,a){return new Za(t,e,a)},t.SVGOverlay=Ja,t.svgOverlay=function(t,e,a){return new Ja(t,e,a)},t.DivOverlay=_a,t.Popup=$a,t.popup=function(t,e){return new $a(t,e)},t.Tooltip=ti,t.tooltip=function(t,e){return new ti(t,e)},t.Icon=xa,t.icon=function(t){return new xa(t)},t.DivIcon=ei,t.divIcon=function(t){return new ei(t)},t.Marker=Ma,t.marker=function(t,e){return new Ma(t,e)},t.TileLayer=ii,t.tileLayer=ni,t.GridLayer=ai,t.gridLayer=function(t){return new ai(t)},t.SVG=di,t.svg=fi,t.Renderer=ri,t.Canvas=ci,t.canvas=oi,t.Path=Sa,t.CircleMarker=ka,t.circleMarker=function(t,e){return new ka(t,e)},t.Circle=Qa,t.circle=function(t,e,a){return new Qa(t,e,a)},t.Polyline=Ia,t.polyline=function(t,e){return new Ia(t,e)},t.Polygon=Oa,t.polygon=function(t,e){return new Oa(t,e)},t.Rectangle=pi,t.rectangle=function(t,e){return new pi(t,e)},t.Map=je,t.map=function(t,e){return new je(t,e)};var yi=window.L;t.noConflict=function(){return window.L=yi,this},window.L=t}(e)},460:function(t,e){var a,i;a=function t(){"use strict";var e="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==e?e:{},a=!e.document&&!!e.postMessage,i=a&&/blob:/i.test((e.location||{}).protocol),n={},s=0,r={parse:function(a,i){var c=(i=i||{}).dynamicTyping||!1;if(A(c)&&(i.dynamicTypingFunction=c,c={}),i.dynamicTyping=c,i.transform=!!A(i.transform)&&i.transform,i.worker&&r.WORKERS_SUPPORTED){var o=function(){if(!r.WORKERS_SUPPORTED)return!1;var a,i,c=(a=e.URL||e.webkitURL||null,i=t.toString(),r.BLOB_URL||(r.BLOB_URL=a.createObjectURL(new Blob(["(",i,")();"],{type:"text/javascript"})))),o=new e.Worker(c);return o.onmessage=g,o.id=s++,n[o.id]=o}();return o.userStep=i.step,o.userChunk=i.chunk,o.userComplete=i.complete,o.userError=i.error,i.step=A(i.step),i.chunk=A(i.chunk),i.complete=A(i.complete),i.error=A(i.error),delete i.worker,void o.postMessage({input:a,config:i,workerId:o.id})}var f=null;return r.NODE_STREAM_INPUT,"string"==typeof a?f=i.download?new l(i):new u(i):!0===a.readable&&A(a.read)&&A(a.on)?f=new d(i):(e.File&&a instanceof File||a instanceof Object)&&(f=new h(i)),f.stream(a)},unparse:function(t,e){var a=!1,i=!0,n=",",s="\r\n",c='"',o=c+c,l=!1,h=null,u=!1;!function(){if("object"==typeof e){if("string"!=typeof e.delimiter||r.BAD_DELIMITERS.filter((function(t){return-1!==e.delimiter.indexOf(t)})).length||(n=e.delimiter),("boolean"==typeof e.quotes||"function"==typeof e.quotes||Array.isArray(e.quotes))&&(a=e.quotes),"boolean"!=typeof e.skipEmptyLines&&"string"!=typeof e.skipEmptyLines||(l=e.skipEmptyLines),"string"==typeof e.newline&&(s=e.newline),"string"==typeof e.quoteChar&&(c=e.quoteChar),"boolean"==typeof e.header&&(i=e.header),Array.isArray(e.columns)){if(0===e.columns.length)throw new Error("Option columns is empty");h=e.columns}void 0!==e.escapeChar&&(o=e.escapeChar+c),"boolean"==typeof e.escapeFormulae&&(u=e.escapeFormulae)}}();var d=new RegExp(p(c),"g");if("string"==typeof t&&(t=JSON.parse(t)),Array.isArray(t)){if(!t.length||Array.isArray(t[0]))return f(null,t,l);if("object"==typeof t[0])return f(h||Object.keys(t[0]),t,l)}else if("object"==typeof t)return"string"==typeof t.data&&(t.data=JSON.parse(t.data)),Array.isArray(t.data)&&(t.fields||(t.fields=t.meta&&t.meta.fields),t.fields||(t.fields=Array.isArray(t.data[0])?t.fields:"object"==typeof t.data[0]?Object.keys(t.data[0]):[]),Array.isArray(t.data[0])||"object"==typeof t.data[0]||(t.data=[t.data])),f(t.fields||[],t.data||[],l);throw new Error("Unable to serialize unrecognized input");function f(t,e,a){var r="";"string"==typeof t&&(t=JSON.parse(t)),"string"==typeof e&&(e=JSON.parse(e));var c=Array.isArray(t)&&0=this._config.preview;if(i)e.postMessage({results:c,workerId:r.WORKER_ID,finished:l});else if(A(this._config.chunk)&&!a){if(this._config.chunk(c,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);c=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(c.data),this._completeResults.errors=this._completeResults.errors.concat(c.errors),this._completeResults.meta=c.meta),this._completed||!l||!A(this._config.complete)||c&&c.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),l||c&&c.meta.paused||this._nextChunk(),c}this._halted=!0},this._sendError=function(t){A(this._config.error)?this._config.error(t):i&&this._config.error&&e.postMessage({workerId:r.WORKER_ID,error:t,finished:!1})}}function l(t){var e;(t=t||{}).chunkSize||(t.chunkSize=r.RemoteChunkSize),o.call(this,t),this._nextChunk=a?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(t){this._input=t,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(e=new XMLHttpRequest,this._config.withCredentials&&(e.withCredentials=this._config.withCredentials),a||(e.onload=C(this._chunkLoaded,this),e.onerror=C(this._chunkError,this)),e.open(this._config.downloadRequestBody?"POST":"GET",this._input,!a),this._config.downloadRequestHeaders){var t=this._config.downloadRequestHeaders;for(var i in t)e.setRequestHeader(i,t[i])}if(this._config.chunkSize){var n=this._start+this._config.chunkSize-1;e.setRequestHeader("Range","bytes="+this._start+"-"+n)}try{e.send(this._config.downloadRequestBody)}catch(t){this._chunkError(t.message)}a&&0===e.status&&this._chunkError()}},this._chunkLoaded=function(){4===e.readyState&&(e.status<200||400<=e.status?this._chunkError():(this._start+=this._config.chunkSize?this._config.chunkSize:e.responseText.length,this._finished=!this._config.chunkSize||this._start>=function(t){var e=t.getResponseHeader("Content-Range");return null===e?-1:parseInt(e.substring(e.lastIndexOf("/")+1))}(e),this.parseChunk(e.responseText)))},this._chunkError=function(t){var a=e.statusText||t;this._sendError(new Error(a))}}function h(t){var e,a;(t=t||{}).chunkSize||(t.chunkSize=r.LocalChunkSize),o.call(this,t);var i="undefined"!=typeof FileReader;this.stream=function(t){this._input=t,a=t.slice||t.webkitSlice||t.mozSlice,i?((e=new FileReader).onload=C(this._chunkLoaded,this),e.onerror=C(this._chunkError,this)):e=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(t.target.result)},this._chunkError=function(){this._sendError(e.error)}}function u(t){var e;o.call(this,t=t||{}),this.stream=function(t){return e=t,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var t,a=this._config.chunkSize;return a?(t=e.substring(0,a),e=e.substring(a)):(t=e,e=""),this._finished=!e,this.parseChunk(t)}}}function d(t){o.call(this,t=t||{});var e=[],a=!0,i=!1;this.pause=function(){o.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){o.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(t){this._input=t,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&1===e.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),e.length?this.parseChunk(e.shift()):a=!0},this._streamData=C((function(t){try{e.push("string"==typeof t?t:t.toString(this._config.encoding)),a&&(a=!1,this._checkIsFinished(),this.parseChunk(e.shift()))}catch(t){this._streamError(t)}}),this),this._streamError=C((function(t){this._streamCleanUp(),this._sendError(t)}),this),this._streamEnd=C((function(){this._streamCleanUp(),i=!0,this._streamData("")}),this),this._streamCleanUp=C((function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)}),this)}function f(t){var e,a,i,n=Math.pow(2,53),s=-n,c=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,o=/^(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))$/,l=this,h=0,u=0,d=!1,f=!1,g=[],v={data:[],errors:[],meta:{}};if(A(t.step)){var b=t.step;t.step=function(e){if(v=e,L())y();else{if(y(),0===v.data.length)return;h+=e.data.length,t.preview&&h>t.preview?a.abort():(v.data=v.data[0],b(v,l))}}}function C(e){return"greedy"===t.skipEmptyLines?""===e.join("").trim():1===e.length&&0===e[0].length}function y(){if(v&&i&&(B("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+r.DefaultDelimiter+"'"),i=!1),t.skipEmptyLines)for(var e=0;e=g.length?"__parsed_extra":g[i]),t.transform&&(r=t.transform(r,s)),r=H(s,r),"__parsed_extra"===s?(n[s]=n[s]||[],n[s].push(r)):n[s]=r}return t.header&&(i>g.length?B("FieldMismatch","TooManyFields","Too many fields: expected "+g.length+" fields but parsed "+i,u+a):i=i.length/2?"\r\n":"\r"}(n,o)),i=!1,t.delimiter)A(t.delimiter)&&(t.delimiter=t.delimiter(n),v.meta.delimiter=t.delimiter);else{var l=function(e,a,i,n,s){var c,o,l,h;s=s||[",","\t","|",";",r.RECORD_SEP,r.UNIT_SEP];for(var u=0;u=c)return O(!0)}else for(D=h,h++;;){if(-1===(D=t.indexOf(e,D+1)))return d||C.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:w.length,index:h}),Q();if(D===f-1)return Q(t.substring(h,D).replace(x,e));if(e!==l||t[D+1]!==l){if(e===l||0===D||t[D-1]!==l){-1!==z&&z=c)return O(!0);break}C.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:w.length,index:h}),D++}}else D++}return Q();function S(t){w.push(t),L=h}function k(e){var a=0;if(-1!==e){var i=t.substring(D+1,e);i&&""===i.trim()&&(a=i.length)}return a}function Q(e){return d||(void 0===e&&(e=t.substring(h)),y.push(e),h=f,S(y),b&&E()),O()}function I(e){h=e,S(y),y=[],N=t.indexOf(i,h)}function O(t){return{data:w,errors:C,meta:{delimiter:a,linebreak:i,aborted:u,truncated:!!t,cursor:L+(r||0)}}}function E(){s(O()),w=[],C=[]}},this.abort=function(){u=!0},this.getCharIndex=function(){return h}}function g(t){var e=t.data,a=n[e.workerId],i=!1;if(e.error)a.userError(e.error,e.file);else if(e.results&&e.results.data){var s={abort:function(){i=!0,v(e.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:b,resume:b};if(A(a.userStep)){for(var r=0;r{"use strict";var i=a(171),n=Array.prototype.concat,s=Array.prototype.slice,r=t.exports=function(t){for(var e=[],a=0,r=t.length;a{L.Control.Fullscreen=window.OBSIDIAN_LEAFLET_PLUGIN.Control.extend({options:{position:"topleft",title:{false:"View Fullscreen",true:"Exit Fullscreen"}},onAdd:function(t){var e=window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.create("div","leaflet-control-fullscreen leaflet-bar leaflet-control");return this.link=window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.create("a","leaflet-control-fullscreen-button leaflet-bar-part",e),this.link.href="#",this._map=t,this._map.on("fullscreenchange",this._toggleTitle,this),this._toggleTitle(),window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.on(this.link,"click",this._click,this),e},_click:function(t){window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.stopPropagation(t),window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.preventDefault(t),this._map.toggleFullscreen(this.options)},_toggleTitle:function(){this.link.title=this.options.title[this._map.isFullscreen()]}}),window.OBSIDIAN_LEAFLET_PLUGIN.Map.include({isFullscreen:function(){return this._isFullscreen||!1},toggleFullscreen:function(t){var e=this.getContainer();this.isFullscreen()?t&&t.pseudoFullscreen?this._disablePseudoFullscreen(e):document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.msExitFullscreen?document.msExitFullscreen():this._disablePseudoFullscreen(e):t&&t.pseudoFullscreen?this._enablePseudoFullscreen(e):e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullscreen?e.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT):e.msRequestFullscreen?e.msRequestFullscreen():this._enablePseudoFullscreen(e)},_enablePseudoFullscreen:function(t){window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.addClass(t,"leaflet-pseudo-fullscreen"),this._setFullscreen(!0),this.fire("fullscreenchange")},_disablePseudoFullscreen:function(t){window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.removeClass(t,"leaflet-pseudo-fullscreen"),this._setFullscreen(!1),this.fire("fullscreenchange")},_setFullscreen:function(t){this._isFullscreen=t;var e=this.getContainer();t?window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.addClass(e,"leaflet-fullscreen-on"):window.OBSIDIAN_LEAFLET_PLUGIN.DomUtil.removeClass(e,"leaflet-fullscreen-on"),this.invalidateSize()},_onFullscreenChange:function(t){var e=document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;e!==this.getContainer()||this._isFullscreen?e!==this.getContainer()&&this._isFullscreen&&(this._setFullscreen(!1),this.fire("fullscreenchange")):(this._setFullscreen(!0),this.fire("fullscreenchange"))}}),window.OBSIDIAN_LEAFLET_PLUGIN.Map.mergeOptions({fullscreenControl:!1}),window.OBSIDIAN_LEAFLET_PLUGIN.Map.addInitHook((function(){var t;if(this.options.fullscreenControl&&(this.fullscreenControl=new window.OBSIDIAN_LEAFLET_PLUGIN.Control.Fullscreen(this.options.fullscreenControl),this.addControl(this.fullscreenControl)),"onfullscreenchange"in document?t="fullscreenchange":"onmozfullscreenchange"in document?t="mozfullscreenchange":"onwebkitfullscreenchange"in document?t="webkitfullscreenchange":"onmsfullscreenchange"in document&&(t="MSFullscreenChange"),t){var e=window.OBSIDIAN_LEAFLET_PLUGIN.bind(this._onFullscreenChange,this);this.whenReady((function(){window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.on(document,t,e)})),this.on("unload",(function(){window.OBSIDIAN_LEAFLET_PLUGIN.DomEvent.off(document,t,e)}))}})),window.OBSIDIAN_LEAFLET_PLUGIN.control.fullscreen=function(t){return new window.OBSIDIAN_LEAFLET_PLUGIN.Control.Fullscreen(t)}},857:function(t,e,a){var i,n,s;n=[a(243)],i=function(t){if(window.OBSIDIAN_LEAFLET_PLUGIN.Hotline)return t;var e=function(t){if(!(this instanceof e))return new e(t);this._canvas=t="string"==typeof t?document.getElementById(t):t,this._ctx=t.getContext("2d"),this._width=t.width,this._height=t.height,this._weight=5,this._outlineWidth=1,this._outlineColor="black",this._min=0,this._max=1,this._data=[],this.palette({0:"green",.5:"yellow",1:"red"})};e.prototype={width:function(t){return this._width=t,this},height:function(t){return this._height=t,this},weight:function(t){return this._weight=t,this},outlineWidth:function(t){return this._outlineWidth=t,this},outlineColor:function(t){return this._outlineColor=t,this},palette:function(t){var e=document.createElement("canvas"),a=e.getContext("2d"),i=a.createLinearGradient(0,0,0,256);for(var n in e.width=1,e.height=256,t)i.addColorStop(n,t[n]);return a.fillStyle=i,a.fillRect(0,0,1,256),this._palette=a.getImageData(0,0,1,256).data,this},min:function(t){return this._min=t,this},max:function(t){return this._max=t,this},data:function(t){return this._data=t,this},add:function(t){return this._data.push(t),this},draw:function(){var t=this._ctx;return t.globalCompositeOperation="source-over",t.lineCap="round",this._drawOutline(t),this._drawHotline(t),this},getRGBForValue:function(t){var e=Math.min(Math.max((t-this._min)/(this._max-this._min),0),.999),a=4*Math.floor(256*e);return[this._palette[a],this._palette[a+1],this._palette[a+2]]},_drawOutline:function(t){var e,a,i,n,s,r,c;if(this._outlineWidth)for(e=0,i=this._data.length;e{"use strict";t.exports=function(t,e,a,i){var n=self||window;try{try{var s;try{s=new n.Blob([t])}catch(e){(s=new(n.BlobBuilder||n.WebKitBlobBuilder||n.MozBlobBuilder||n.MSBlobBuilder)).append(t),s=s.getBlob()}var r=n.URL||n.webkitURL,c=r.createObjectURL(s),o=new n[e](c,a);return r.revokeObjectURL(c),o}catch(i){return new n[e]("data:application/javascript,".concat(encodeURIComponent(t)),a)}}catch(t){if(!i)throw Error("Inline worker is not supported");return new n[e](i,a)}}}},e={};function a(i){var n=e[i];if(void 0!==n)return n.exports;var s=e[i]={exports:{}};return t[i].call(s.exports,s,s.exports,a),s.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var i in e)a.o(e,i)&&!a.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:e[i]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};(()=>{"use strict";a.r(i),a.d(i,{default:()=>uo});const t=require("obsidian");var e=a(460),n={prefix:"fas",iconName:"bed",icon:[640,512,[],"f236","M176 256c44.11 0 80-35.89 80-80s-35.89-80-80-80-80 35.89-80 80 35.89 80 80 80zm352-128H304c-8.84 0-16 7.16-16 16v144H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v352c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h512v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V240c0-61.86-50.14-112-112-112z"]},s={prefix:"fas",iconName:"bolt",icon:[320,512,[],"f0e7","M296 160H180.6l42.6-129.8C227.2 15 215.7 0 200 0H56C44 0 33.8 8.9 32.2 20.8l-32 240C-1.7 275.2 9.5 288 24 288h118.7L96.6 482.5c-3.6 15.2 8 29.5 23.3 29.5 8.4 0 16.4-4.4 20.8-12l176-304c9.3-15.9-2.2-36-20.7-36z"]},r={prefix:"fas",iconName:"deaf",icon:[512,512,[],"f2a4","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm268.485-52.201L480.2 3.515c-4.687-4.686-12.284-4.686-16.971 0L376.2 90.544c-4.686 4.686-4.686 12.284 0 16.971l28.285 28.285c4.686 4.686 12.284 4.686 16.97 0l87.03-87.029c4.687-4.688 4.687-12.286 0-16.972zM168.97 314.745c-4.686-4.686-12.284-4.686-16.97 0L3.515 463.23c-4.686 4.686-4.686 12.284 0 16.971L31.8 508.485c4.687 4.686 12.284 4.686 16.971 0L197.256 360c4.686-4.686 4.686-12.284 0-16.971l-28.286-28.284z"]},c={prefix:"fas",iconName:"dizzy",icon:[496,512,[],"f567","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-96 206.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L174.6 192l28.7 28.7c15.2 15.2-7.9 37.4-22.6 22.6L152 214.6zM248 416c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm147.3-195.3c15.2 15.2-7.9 37.4-22.6 22.6L344 214.6l-28.7 28.7c-14.8 14.8-37.8-7.5-22.6-22.6l28.7-28.7-28.7-28.7c-15-15 7.7-37.6 22.6-22.6l28.7 28.7 28.7-28.7c15-15 37.6 7.7 22.6 22.6L366.6 192l28.7 28.7z"]},o={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z"]},l={prefix:"fas",iconName:"ghost",icon:[384,512,[],"f6e2","M186.1.09C81.01 3.24 0 94.92 0 200.05v263.92c0 14.26 17.23 21.39 27.31 11.31l24.92-18.53c6.66-4.95 16-3.99 21.51 2.21l42.95 48.35c6.25 6.25 16.38 6.25 22.63 0l40.72-45.85c6.37-7.17 17.56-7.17 23.92 0l40.72 45.85c6.25 6.25 16.38 6.25 22.63 0l42.95-48.35c5.51-6.2 14.85-7.17 21.51-2.21l24.92 18.53c10.08 10.08 27.31 2.94 27.31-11.31V192C384 84 294.83-3.17 186.1.09zM128 224c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128 0c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},h={prefix:"fas",iconName:"hands-helping",icon:[640,512,[],"f4c4","M488 192H336v56c0 39.7-32.3 72-72 72s-72-32.3-72-72V126.4l-64.9 39C107.8 176.9 96 197.8 96 220.2v47.3l-80 46.2C.7 322.5-4.6 342.1 4.3 357.4l80 138.6c8.8 15.3 28.4 20.5 43.7 11.7L231.4 448H368c35.3 0 64-28.7 64-64h16c17.7 0 32-14.3 32-32v-64h8c13.3 0 24-10.7 24-24v-48c0-13.3-10.7-24-24-24zm147.7-37.4L555.7 16C546.9.7 527.3-4.5 512 4.3L408.6 64H306.4c-12 0-23.7 3.4-33.9 9.7L239 94.6c-9.4 5.8-15 16.1-15 27.1V248c0 22.1 17.9 40 40 40s40-17.9 40-40v-88h184c30.9 0 56 25.1 56 56v28.5l80-46.2c15.3-8.9 20.5-28.4 11.7-43.7z"]},u={prefix:"fas",iconName:"heart",icon:[512,512,[],"f004","M462.3 62.6C407.5 15.9 326 24.3 275.7 76.2L256 96.5l-19.7-20.3C186.1 24.3 104.5 15.9 49.7 62.6c-62.8 53.6-66.1 149.8-9.9 207.9l193.5 199.8c12.5 12.9 32.8 12.9 45.3 0l193.5-199.8c56.3-58.1 53-154.3-9.8-207.9z"]},d={prefix:"fas",iconName:"link",icon:[512,512,[],"f0c1","M326.612 185.391c59.747 59.809 58.927 155.698.36 214.59-.11.12-.24.25-.36.37l-67.2 67.2c-59.27 59.27-155.699 59.262-214.96 0-59.27-59.26-59.27-155.7 0-214.96l37.106-37.106c9.84-9.84 26.786-3.3 27.294 10.606.648 17.722 3.826 35.527 9.69 52.721 1.986 5.822.567 12.262-3.783 16.612l-13.087 13.087c-28.026 28.026-28.905 73.66-1.155 101.96 28.024 28.579 74.086 28.749 102.325.51l67.2-67.19c28.191-28.191 28.073-73.757 0-101.83-3.701-3.694-7.429-6.564-10.341-8.569a16.037 16.037 0 0 1-6.947-12.606c-.396-10.567 3.348-21.456 11.698-29.806l21.054-21.055c5.521-5.521 14.182-6.199 20.584-1.731a152.482 152.482 0 0 1 20.522 17.197zM467.547 44.449c-59.261-59.262-155.69-59.27-214.96 0l-67.2 67.2c-.12.12-.25.25-.36.37-58.566 58.892-59.387 154.781.36 214.59a152.454 152.454 0 0 0 20.521 17.196c6.402 4.468 15.064 3.789 20.584-1.731l21.054-21.055c8.35-8.35 12.094-19.239 11.698-29.806a16.037 16.037 0 0 0-6.947-12.606c-2.912-2.005-6.64-4.875-10.341-8.569-28.073-28.073-28.191-73.639 0-101.83l67.2-67.19c28.239-28.239 74.3-28.069 102.325.51 27.75 28.3 26.872 73.934-1.155 101.96l-13.087 13.087c-4.35 4.35-5.769 10.79-3.783 16.612 5.864 17.194 9.042 34.999 9.69 52.721.509 13.906 17.454 20.446 27.294 10.606l37.106-37.106c59.271-59.259 59.271-155.699.001-214.959z"]},f={prefix:"fas",iconName:"magic",icon:[512,512,[],"f0d0","M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.66-53.33L160 80l-53.34-26.67L80 0 53.34 53.33 0 80l53.34 26.67L80 160zm352 128l-26.66 53.33L352 368l53.34 26.67L432 448l26.66-53.33L512 368l-53.34-26.67L432 288zm70.62-193.77L417.77 9.38C411.53 3.12 403.34 0 395.15 0c-8.19 0-16.38 3.12-22.63 9.38L9.38 372.52c-12.5 12.5-12.5 32.76 0 45.25l84.85 84.85c6.25 6.25 14.44 9.37 22.62 9.37 8.19 0 16.38-3.12 22.63-9.37l363.14-363.15c12.5-12.48 12.5-32.75 0-45.24zM359.45 203.46l-50.91-50.91 86.6-86.6 50.91 50.91-86.6 86.6z"]},p={prefix:"fas",iconName:"mountain",icon:[640,512,[],"f6fc","M634.92 462.7l-288-448C341.03 5.54 330.89 0 320 0s-21.03 5.54-26.92 14.7l-288 448a32.001 32.001 0 0 0-1.17 32.64A32.004 32.004 0 0 0 32 512h576c11.71 0 22.48-6.39 28.09-16.67a31.983 31.983 0 0 0-1.17-32.63zM320 91.18L405.39 224H320l-64 64-38.06-38.06L320 91.18z"]},m={prefix:"fas",iconName:"skull",icon:[512,512,[],"f54c","M256 0C114.6 0 0 100.3 0 224c0 70.1 36.9 132.6 94.5 173.7 9.6 6.9 15.2 18.1 13.5 29.9l-9.4 66.2c-1.4 9.6 6 18.2 15.7 18.2H192v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h64v-56c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v56h77.7c9.7 0 17.1-8.6 15.7-18.2l-9.4-66.2c-1.7-11.7 3.8-23 13.5-29.9C475.1 356.6 512 294.1 512 224 512 100.3 397.4 0 256 0zm-96 320c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm192 0c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64z"]},g={prefix:"fas",iconName:"skull-crossbones",icon:[448,512,[],"f714","M439.15 453.06L297.17 384l141.99-69.06c7.9-3.95 11.11-13.56 7.15-21.46L432 264.85c-3.95-7.9-13.56-11.11-21.47-7.16L224 348.41 37.47 257.69c-7.9-3.95-17.51-.75-21.47 7.16L1.69 293.48c-3.95 7.9-.75 17.51 7.15 21.46L150.83 384 8.85 453.06c-7.9 3.95-11.11 13.56-7.15 21.47l14.31 28.63c3.95 7.9 13.56 11.11 21.47 7.15L224 419.59l186.53 90.72c7.9 3.95 17.51.75 21.47-7.15l14.31-28.63c3.95-7.91.74-17.52-7.16-21.47zM150 237.28l-5.48 25.87c-2.67 12.62 5.42 24.85 16.45 24.85h126.08c11.03 0 19.12-12.23 16.45-24.85l-5.5-25.87c41.78-22.41 70-62.75 70-109.28C368 57.31 303.53 0 224 0S80 57.31 80 128c0 46.53 28.22 86.87 70 109.28zM280 112c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32zm-112 0c17.65 0 32 14.35 32 32s-14.35 32-32 32-32-14.35-32-32 14.35-32 32-32z"]},v={prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M594.53 508.63L6.18 53.9c-6.97-5.42-8.23-15.47-2.81-22.45L23.01 6.18C28.43-.8 38.49-2.06 45.47 3.37L633.82 458.1c6.97 5.42 8.23 15.47 2.81 22.45l-19.64 25.27c-5.42 6.98-15.48 8.23-22.46 2.81z"]},b={prefix:"fas",iconName:"spider",icon:[576,512,[],"f717","M151.17 167.35L177.1 176h4.67l5.22-26.12c.72-3.58 1.8-7.58 3.21-11.79l-20.29-40.58 23.8-71.39c2.79-8.38-1.73-17.44-10.12-20.24L168.42.82c-8.38-2.8-17.45 1.73-20.24 10.12l-25.89 77.68a32.04 32.04 0 0 0 1.73 24.43l27.15 54.3zm422.14 182.03l-52.75-79.12a32.002 32.002 0 0 0-26.62-14.25H416l68.99-24.36a32.03 32.03 0 0 0 16.51-12.61l53.6-80.41c4.9-7.35 2.91-17.29-4.44-22.19l-13.31-8.88c-7.35-4.9-17.29-2.91-22.19 4.44l-50.56 75.83L404.1 208H368l-10.37-51.85C355.44 145.18 340.26 96 288 96c-52.26 0-67.44 49.18-69.63 60.15L208 208h-36.1l-60.49-20.17L60.84 112c-4.9-7.35-14.83-9.34-22.19-4.44l-13.31 8.88c-7.35 4.9-9.34 14.83-4.44 22.19l53.6 80.41a32.03 32.03 0 0 0 16.51 12.61L160 256H82.06a32.02 32.02 0 0 0-26.63 14.25L2.69 349.38c-4.9 7.35-2.92 17.29 4.44 22.19l13.31 8.88c7.35 4.9 17.29 2.91 22.19-4.44l48-72h47.06l-60.83 97.33A31.988 31.988 0 0 0 72 418.3V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-73.11l74.08-118.53c-1.01 14.05-2.08 28.11-2.08 42.21C192 399.64 232.76 448 288 448s96-48.36 96-101.43c0-14.1-1.08-28.16-2.08-42.21L456 422.89V496c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-77.71c0-6-1.69-11.88-4.86-16.96L438.31 304h47.06l48 72c4.9 7.35 14.84 9.34 22.19 4.44l13.31-8.88c7.36-4.9 9.34-14.83 4.44-22.18zM406.09 97.51l-20.29 40.58c1.41 4.21 2.49 8.21 3.21 11.79l5.22 26.12h4.67l25.93-8.65 27.15-54.3a31.995 31.995 0 0 0 1.73-24.43l-25.89-77.68C425.03 2.56 415.96-1.98 407.58.82l-15.17 5.06c-8.38 2.8-12.91 11.86-10.12 20.24l23.8 71.39z"]},w={prefix:"fas",iconName:"walking",icon:[320,512,[],"f554","M208 96c26.5 0 48-21.5 48-48S234.5 0 208 0s-48 21.5-48 48 21.5 48 48 48zm94.5 149.1l-23.3-11.8-9.7-29.4c-14.7-44.6-55.7-75.8-102.2-75.9-36-.1-55.9 10.1-93.3 25.2-21.6 8.7-39.3 25.2-49.7 46.2L17.6 213c-7.8 15.8-1.5 35 14.2 42.9 15.6 7.9 34.6 1.5 42.5-14.3L81 228c3.5-7 9.3-12.5 16.5-15.4l26.8-10.8-15.2 60.7c-5.2 20.8.4 42.9 14.9 58.8l59.9 65.4c7.2 7.9 12.3 17.4 14.9 27.7l18.3 73.3c4.3 17.1 21.7 27.6 38.8 23.3 17.1-4.3 27.6-21.7 23.3-38.8l-22.2-89c-2.6-10.3-7.7-19.9-14.9-27.7l-45.5-49.7 17.2-68.7 5.5 16.5c5.3 16.1 16.7 29.4 31.7 37l23.3 11.8c15.6 7.9 34.6 1.5 42.5-14.3 7.7-15.7 1.4-35.1-14.3-43zM73.6 385.8c-3.2 8.1-8 15.4-14.2 21.5l-50 50.1c-12.5 12.5-12.5 32.8 0 45.3s32.7 12.5 45.2 0l59.4-59.4c6.1-6.1 10.9-13.4 14.2-21.5l13.5-33.8c-55.3-60.3-38.7-41.8-47.4-53.7l-20.7 51.5z"]},C={faAd:{prefix:"fas",iconName:"ad",icon:[512,512,[],"f641","M157.52 272h36.96L176 218.78 157.52 272zM352 256c-13.23 0-24 10.77-24 24s10.77 24 24 24 24-10.77 24-24-10.77-24-24-24zM464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM250.58 352h-16.94c-6.81 0-12.88-4.32-15.12-10.75L211.15 320h-70.29l-7.38 21.25A16 16 0 0 1 118.36 352h-16.94c-11.01 0-18.73-10.85-15.12-21.25L140 176.12A23.995 23.995 0 0 1 162.67 160h26.66A23.99 23.99 0 0 1 212 176.13l53.69 154.62c3.61 10.4-4.11 21.25-15.11 21.25zM424 336c0 8.84-7.16 16-16 16h-16c-4.85 0-9.04-2.27-11.98-5.68-8.62 3.66-18.09 5.68-28.02 5.68-39.7 0-72-32.3-72-72s32.3-72 72-72c8.46 0 16.46 1.73 24 4.42V176c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v160z"]},faAddressBook:{prefix:"fas",iconName:"address-book",icon:[448,512,[],"f2b9","M436 160c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h320c26.5 0 48-21.5 48-48v-48h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20v-64h20zm-228-32c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H118.4C106 384 96 375.4 96 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},faAddressCard:{prefix:"fas",iconName:"address-card",icon:[576,512,[],"f2bb","M528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-352 96c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H86.4C74 384 64 375.4 64 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2zM512 312c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-64c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]},faAdjust:{prefix:"fas",iconName:"adjust",icon:[512,512,[],"f042","M8 256c0 136.966 111.033 248 248 248s248-111.034 248-248S392.966 8 256 8 8 119.033 8 256zm248 184V72c101.705 0 184 82.311 184 184 0 101.705-82.311 184-184 184z"]},faAirFreshener:{prefix:"fas",iconName:"air-freshener",icon:[512,512,[],"f5d0","M224 160H96C43 160 0 203 0 256V480C0 497.625 14.375 512 32 512H288C305.625 512 320 497.625 320 480V256C320 203 277 160 224 160ZM160 416C115.875 416 80 380.125 80 336S115.875 256 160 256S240 291.875 240 336S204.125 416 160 416ZM224 32C224 14.375 209.625 0 192 0H128C110.375 0 96 14.375 96 32V128H224V32ZM381.781 51.578C383 50.969 384 49.359 384 48C384 46.625 383 45.031 381.781 44.422L352 32L339.562 2.219C338.969 1 337.375 0 336 0S333.031 1 332.406 2.219L320 32L290.219 44.422C289 45.031 288 46.625 288 48C288 49.359 289 50.969 290.219 51.578L320 64L332.406 93.781C333.031 95 334.625 96 336 96S338.969 95 339.562 93.781L352 64L381.781 51.578ZM448 64L460.406 93.781C461.031 95 462.625 96 464 96S466.969 95 467.562 93.781L480 64L509.781 51.578C511 50.969 512 49.359 512 48C512 46.625 511 45.031 509.781 44.422L480 32L467.562 2.219C466.969 1 465.375 0 464 0S461.031 1 460.406 2.219L448 32L418.219 44.422C417 45.031 416 46.625 416 48C416 49.359 417 50.969 418.219 51.578L448 64ZM480 224L467.562 194.219C466.969 193 465.375 192 464 192S461.031 193 460.406 194.219L448 224L418.219 236.422C417 237.031 416 238.625 416 240C416 241.359 417 242.969 418.219 243.578L448 256L460.406 285.781C461.031 287 462.625 288 464 288S466.969 287 467.562 285.781L480 256L509.781 243.578C511 242.969 512 241.359 512 240C512 238.625 511 237.031 509.781 236.422L480 224ZM445.781 147.578C447 146.969 448 145.359 448 144C448 142.625 447 141.031 445.781 140.422L416 128L403.562 98.219C402.969 97 401.375 96 400 96S397.031 97 396.406 98.219L384 128L354.219 140.422C353 141.031 352 142.625 352 144C352 145.359 353 146.969 354.219 147.578L384 160L396.406 189.781C397.031 191 398.625 192 400 192S402.969 191 403.562 189.781L416 160L445.781 147.578Z"]},faAlignCenter:{prefix:"fas",iconName:"align-center",icon:[448,512,[],"f037","M432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM108.1 96h231.81A12.09 12.09 0 0 0 352 83.9V44.09A12.09 12.09 0 0 0 339.91 32H108.1A12.09 12.09 0 0 0 96 44.09V83.9A12.1 12.1 0 0 0 108.1 96zm231.81 256A12.09 12.09 0 0 0 352 339.9v-39.81A12.09 12.09 0 0 0 339.91 288H108.1A12.09 12.09 0 0 0 96 300.09v39.81a12.1 12.1 0 0 0 12.1 12.1z"]},faAlignJustify:{prefix:"fas",iconName:"align-justify",icon:[448,512,[],"f039","M432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-128H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faAlignLeft:{prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M12.83 352h262.34A12.82 12.82 0 0 0 288 339.17v-38.34A12.82 12.82 0 0 0 275.17 288H12.83A12.82 12.82 0 0 0 0 300.83v38.34A12.82 12.82 0 0 0 12.83 352zm0-256h262.34A12.82 12.82 0 0 0 288 83.17V44.83A12.82 12.82 0 0 0 275.17 32H12.83A12.82 12.82 0 0 0 0 44.83v38.34A12.82 12.82 0 0 0 12.83 96zM432 160H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 256H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faAlignRight:{prefix:"fas",iconName:"align-right",icon:[448,512,[],"f038","M16 224h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm416 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-384H172.83A12.82 12.82 0 0 0 160 44.83v38.34A12.82 12.82 0 0 0 172.83 96h262.34A12.82 12.82 0 0 0 448 83.17V44.83A12.82 12.82 0 0 0 435.17 32zm0 256H172.83A12.82 12.82 0 0 0 160 300.83v38.34A12.82 12.82 0 0 0 172.83 352h262.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288z"]},faAllergies:{prefix:"fas",iconName:"allergies",icon:[448,512,[],"f461","M416 112c-17.6 0-32 14.4-32 32v72c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32s-32 14.4-32 32v152c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V32c0-17.6-14.4-32-32-32s-32 14.4-32 32v184c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V64c0-17.6-14.4-32-32-32S96 46.4 96 64v241l-23.6-32.5c-13-17.9-38-21.8-55.9-8.8s-21.8 38-8.8 55.9l125.6 172.7c9 12.4 23.5 19.8 38.8 19.8h197.6c22.3 0 41.6-15.3 46.7-37l26.5-112.7c3.2-13.7 4.9-28.3 5.1-42.3V144c0-17.6-14.4-32-32-32zM176 416c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm64 32c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32-128c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faAmbulance:{prefix:"fas",iconName:"ambulance",icon:[640,512,[],"f0f9","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm144-248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm176 248c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},faAmericanSignLanguageInterpreting:{prefix:"fas",iconName:"american-sign-language-interpreting",icon:[640,512,[],"f2a3","M290.547 189.039c-20.295-10.149-44.147-11.199-64.739-3.89 42.606 0 71.208 20.475 85.578 50.576 8.576 17.899-5.148 38.071-23.617 38.071 18.429 0 32.211 20.136 23.617 38.071-14.725 30.846-46.123 50.854-80.298 50.854-.557 0-94.471-8.615-94.471-8.615l-66.406 33.347c-9.384 4.693-19.815.379-23.895-7.781L1.86 290.747c-4.167-8.615-1.111-18.897 6.946-23.621l58.072-33.069L108 159.861c6.39-57.245 34.731-109.767 79.743-146.726 11.391-9.448 28.341-7.781 37.51 3.613 9.446 11.394 7.78 28.067-3.612 37.516-12.503 10.559-23.618 22.509-32.509 35.57 21.672-14.729 46.679-24.732 74.186-28.067 14.725-1.945 28.063 8.336 29.73 23.065 1.945 14.728-8.336 28.067-23.062 29.734-16.116 1.945-31.12 7.503-44.178 15.284 26.114-5.713 58.712-3.138 88.079 11.115 13.336 6.669 18.893 22.509 12.224 35.848-6.389 13.06-22.504 18.617-35.564 12.226zm-27.229 69.472c-6.112-12.505-18.338-20.286-32.231-20.286a35.46 35.46 0 0 0-35.565 35.57c0 21.428 17.808 35.57 35.565 35.57 13.893 0 26.119-7.781 32.231-20.286 4.446-9.449 13.614-15.006 23.339-15.284-9.725-.277-18.893-5.835-23.339-15.284zm374.821-37.237c4.168 8.615 1.111 18.897-6.946 23.621l-58.071 33.069L532 352.16c-6.39 57.245-34.731 109.767-79.743 146.726-10.932 9.112-27.799 8.144-37.51-3.613-9.446-11.394-7.78-28.067 3.613-37.516 12.503-10.559 23.617-22.509 32.508-35.57-21.672 14.729-46.679 24.732-74.186 28.067-10.021 2.506-27.552-5.643-29.73-23.065-1.945-14.728 8.336-28.067 23.062-29.734 16.116-1.946 31.12-7.503 44.178-15.284-26.114 5.713-58.712 3.138-88.079-11.115-13.336-6.669-18.893-22.509-12.224-35.848 6.389-13.061 22.505-18.619 35.565-12.227 20.295 10.149 44.147 11.199 64.739 3.89-42.606 0-71.208-20.475-85.578-50.576-8.576-17.899 5.148-38.071 23.617-38.071-18.429 0-32.211-20.136-23.617-38.071 14.033-29.396 44.039-50.887 81.966-50.854l92.803 8.615 66.406-33.347c9.408-4.704 19.828-.354 23.894 7.781l44.455 88.926zm-229.227-18.618c-13.893 0-26.119 7.781-32.231 20.286-4.446 9.449-13.614 15.006-23.339 15.284 9.725.278 18.893 5.836 23.339 15.284 6.112 12.505 18.338 20.286 32.231 20.286a35.46 35.46 0 0 0 35.565-35.57c0-21.429-17.808-35.57-35.565-35.57z"]},faAnchor:{prefix:"fas",iconName:"anchor",icon:[576,512,[],"f13d","M12.971 352h32.394C67.172 454.735 181.944 512 288 512c106.229 0 220.853-57.38 242.635-160h32.394c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0l-67.029 67.029c-7.56 7.56-2.206 20.485 8.485 20.485h35.146c-20.29 54.317-84.963 86.588-144.117 94.015V256h52c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-52v-5.47c37.281-13.178 63.995-48.725 64-90.518C384.005 43.772 341.605.738 289.37.01 235.723-.739 192 42.525 192 96c0 41.798 26.716 77.35 64 90.53V192h-52c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v190.015c-58.936-7.399-123.82-39.679-144.117-94.015h35.146c10.691 0 16.045-12.926 8.485-20.485l-67.029-67.029c-4.686-4.686-12.284-4.686-16.971 0L4.485 331.515C-3.074 339.074 2.28 352 12.971 352zM288 64c17.645 0 32 14.355 32 32s-14.355 32-32 32-32-14.355-32-32 14.355-32 32-32z"]},faAngleDoubleDown:{prefix:"fas",iconName:"angle-double-down",icon:[320,512,[],"f103","M143 256.3L7 120.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0L313 86.3c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.4 9.5-24.6 9.5-34 .1zm34 192l136-136c9.4-9.4 9.4-24.6 0-33.9l-22.6-22.6c-9.4-9.4-24.6-9.4-33.9 0L160 352.1l-96.4-96.4c-9.4-9.4-24.6-9.4-33.9 0L7 278.3c-9.4 9.4-9.4 24.6 0 33.9l136 136c9.4 9.5 24.6 9.5 34 .1z"]},faAngleDoubleLeft:{prefix:"fas",iconName:"angle-double-left",icon:[448,512,[],"f100","M223.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L319.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L393.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34zm-192 34l136 136c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9L127.9 256l96.4-96.4c9.4-9.4 9.4-24.6 0-33.9L201.7 103c-9.4-9.4-24.6-9.4-33.9 0l-136 136c-9.5 9.4-9.5 24.6-.1 34z"]},faAngleDoubleRight:{prefix:"fas",iconName:"angle-double-right",icon:[448,512,[],"f101","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34zm192-34l-136-136c-9.4-9.4-24.6-9.4-33.9 0l-22.6 22.6c-9.4 9.4-9.4 24.6 0 33.9l96.4 96.4-96.4 96.4c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l136-136c9.4-9.2 9.4-24.4 0-33.8z"]},faAngleDoubleUp:{prefix:"fas",iconName:"angle-double-up",icon:[320,512,[],"f102","M177 255.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 351.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 425.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1zm-34-192L7 199.7c-9.4 9.4-9.4 24.6 0 33.9l22.6 22.6c9.4 9.4 24.6 9.4 33.9 0l96.4-96.4 96.4 96.4c9.4 9.4 24.6 9.4 33.9 0l22.6-22.6c9.4-9.4 9.4-24.6 0-33.9l-136-136c-9.2-9.4-24.4-9.4-33.8 0z"]},faAngleDown:{prefix:"fas",iconName:"angle-down",icon:[320,512,[],"f107","M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z"]},faAngleLeft:{prefix:"fas",iconName:"angle-left",icon:[256,512,[],"f104","M31.7 239l136-136c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9L127.9 256l96.4 96.4c9.4 9.4 9.4 24.6 0 33.9L201.7 409c-9.4 9.4-24.6 9.4-33.9 0l-136-136c-9.5-9.4-9.5-24.6-.1-34z"]},faAngleRight:{prefix:"fas",iconName:"angle-right",icon:[256,512,[],"f105","M224.3 273l-136 136c-9.4 9.4-24.6 9.4-33.9 0l-22.6-22.6c-9.4-9.4-9.4-24.6 0-33.9l96.4-96.4-96.4-96.4c-9.4-9.4-9.4-24.6 0-33.9L54.3 103c9.4-9.4 24.6-9.4 33.9 0l136 136c9.5 9.4 9.5 24.6.1 34z"]},faAngleUp:{prefix:"fas",iconName:"angle-up",icon:[320,512,[],"f106","M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"]},faAngry:{prefix:"fas",iconName:"angry",icon:[496,512,[],"f556","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 240c0-9.3 4.1-17.5 10.5-23.4l-31-9.3c-8.5-2.5-13.3-11.5-10.7-19.9 2.5-8.5 11.4-13.2 19.9-10.7l80 24c8.5 2.5 13.3 11.5 10.7 19.9-2.1 6.9-8.4 11.4-15.3 11.4-.5 0-1.1-.2-1.7-.2.7 2.7 1.7 5.3 1.7 8.2 0 17.7-14.3 32-32 32S136 257.7 136 240zm168 154.2c-27.8-33.4-84.2-33.4-112.1 0-13.5 16.3-38.2-4.2-24.6-20.5 20-24 49.4-37.8 80.6-37.8s60.6 13.8 80.6 37.8c13.8 16.5-11.1 36.6-24.5 20.5zm76.6-186.9l-31 9.3c6.3 5.8 10.5 14.1 10.5 23.4 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-2.9.9-5.6 1.7-8.2-.6.1-1.1.2-1.7.2-6.9 0-13.2-4.5-15.3-11.4-2.5-8.5 2.3-17.4 10.7-19.9l80-24c8.4-2.5 17.4 2.3 19.9 10.7 2.5 8.5-2.3 17.4-10.8 19.9z"]},faAnkh:{prefix:"fas",iconName:"ankh",icon:[320,512,[],"f644","M296 256h-44.62C272.46 222.01 288 181.65 288 144 288 55.63 230.69 0 160 0S32 55.63 32 144c0 37.65 15.54 78.01 36.62 112H24c-13.25 0-24 10.74-24 24v32c0 13.25 10.75 24 24 24h96v152c0 13.25 10.75 24 24 24h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32c0-13.26-10.75-24-24-24zM160 80c29.61 0 48 24.52 48 64 0 34.66-27.14 78.14-48 100.87-20.86-22.72-48-66.21-48-100.87 0-39.48 18.39-64 48-64z"]},faAppleAlt:{prefix:"fas",iconName:"apple-alt",icon:[448,512,[],"f5d1","M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z"]},faArchive:{prefix:"fas",iconName:"archive",icon:[512,512,[],"f187","M32 448c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V160H32v288zm160-212c0-6.6 5.4-12 12-12h104c6.6 0 12 5.4 12 12v8c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-8zM480 32H32C14.3 32 0 46.3 0 64v48c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16V64c0-17.7-14.3-32-32-32z"]},faArchway:{prefix:"fas",iconName:"archway",icon:[576,512,[],"f557","M560 448h-16V96H32v352H16.02c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16H176c8.84 0 16-7.16 16-16V320c0-53.02 42.98-96 96-96s96 42.98 96 96l.02 160v16c0 8.84 7.16 16 16 16H560c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm0-448H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h544c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]},faArrowAltCircleDown:{prefix:"fas",iconName:"arrow-alt-circle-down",icon:[512,512,[],"f358","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM212 140v116h-70.9c-10.7 0-16.1 13-8.5 20.5l114.9 114.3c4.7 4.7 12.2 4.7 16.9 0l114.9-114.3c7.6-7.6 2.2-20.5-8.5-20.5H300V140c0-6.6-5.4-12-12-12h-64c-6.6 0-12 5.4-12 12z"]},faArrowAltCircleLeft:{prefix:"fas",iconName:"arrow-alt-circle-left",icon:[512,512,[],"f359","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"]},faArrowAltCircleRight:{prefix:"fas",iconName:"arrow-alt-circle-right",icon:[512,512,[],"f35a","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"]},faArrowAltCircleUp:{prefix:"fas",iconName:"arrow-alt-circle-up",icon:[512,512,[],"f35b","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm292 116V256h70.9c10.7 0 16.1-13 8.5-20.5L264.5 121.2c-4.7-4.7-12.2-4.7-16.9 0l-115 114.3c-7.6 7.6-2.2 20.5 8.5 20.5H212v116c0 6.6 5.4 12 12 12h64c6.6 0 12-5.4 12-12z"]},faArrowCircleDown:{prefix:"fas",iconName:"arrow-circle-down",icon:[512,512,[],"f0ab","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-143.6-28.9L288 302.6V120c0-13.3-10.7-24-24-24h-16c-13.3 0-24 10.7-24 24v182.6l-72.4-75.5c-9.3-9.7-24.8-9.9-34.3-.4l-10.9 11c-9.4 9.4-9.4 24.6 0 33.9L239 404.3c9.4 9.4 24.6 9.4 33.9 0l132.7-132.7c9.4-9.4 9.4-24.6 0-33.9l-10.9-11c-9.5-9.5-25-9.3-34.3.4z"]},faArrowCircleLeft:{prefix:"fas",iconName:"arrow-circle-left",icon:[512,512,[],"f0a8","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm28.9-143.6L209.4 288H392c13.3 0 24-10.7 24-24v-16c0-13.3-10.7-24-24-24H209.4l75.5-72.4c9.7-9.3 9.9-24.8.4-34.3l-11-10.9c-9.4-9.4-24.6-9.4-33.9 0L107.7 239c-9.4 9.4-9.4 24.6 0 33.9l132.7 132.7c9.4 9.4 24.6 9.4 33.9 0l11-10.9c9.5-9.5 9.3-25-.4-34.3z"]},faArrowCircleRight:{prefix:"fas",iconName:"arrow-circle-right",icon:[512,512,[],"f0a9","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm-28.9 143.6l75.5 72.4H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h182.6l-75.5 72.4c-9.7 9.3-9.9 24.8-.4 34.3l11 10.9c9.4 9.4 24.6 9.4 33.9 0L404.3 273c9.4-9.4 9.4-24.6 0-33.9L271.6 106.3c-9.4-9.4-24.6-9.4-33.9 0l-11 10.9c-9.5 9.6-9.3 25.1.4 34.4z"]},faArrowCircleUp:{prefix:"fas",iconName:"arrow-circle-up",icon:[512,512,[],"f0aa","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm143.6 28.9l72.4-75.5V392c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24V209.4l72.4 75.5c9.3 9.7 24.8 9.9 34.3.4l10.9-11c9.4-9.4 9.4-24.6 0-33.9L273 107.7c-9.4-9.4-24.6-9.4-33.9 0L106.3 240.4c-9.4 9.4-9.4 24.6 0 33.9l10.9 11c9.6 9.5 25.1 9.3 34.4-.4z"]},faArrowDown:{prefix:"fas",iconName:"arrow-down",icon:[448,512,[],"f063","M413.1 222.5l22.2 22.2c9.4 9.4 9.4 24.6 0 33.9L241 473c-9.4 9.4-24.6 9.4-33.9 0L12.7 278.6c-9.4-9.4-9.4-24.6 0-33.9l22.2-22.2c9.5-9.5 25-9.3 34.3.4L184 343.4V56c0-13.3 10.7-24 24-24h32c13.3 0 24 10.7 24 24v287.4l114.8-120.5c9.3-9.8 24.8-10 34.3-.4z"]},faArrowLeft:{prefix:"fas",iconName:"arrow-left",icon:[448,512,[],"f060","M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z"]},faArrowRight:{prefix:"fas",iconName:"arrow-right",icon:[448,512,[],"f061","M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z"]},faArrowUp:{prefix:"fas",iconName:"arrow-up",icon:[448,512,[],"f062","M34.9 289.5l-22.2-22.2c-9.4-9.4-9.4-24.6 0-33.9L207 39c9.4-9.4 24.6-9.4 33.9 0l194.3 194.3c9.4 9.4 9.4 24.6 0 33.9L413 289.4c-9.5 9.5-25 9.3-34.3-.4L264 168.6V456c0 13.3-10.7 24-24 24h-32c-13.3 0-24-10.7-24-24V168.6L69.2 289.1c-9.3 9.8-24.8 10-34.3.4z"]},faArrowsAlt:{prefix:"fas",iconName:"arrows-alt",icon:[512,512,[],"f0b2","M352.201 425.775l-79.196 79.196c-9.373 9.373-24.568 9.373-33.941 0l-79.196-79.196c-15.119-15.119-4.411-40.971 16.971-40.97h51.162L228 284H127.196v51.162c0 21.382-25.851 32.09-40.971 16.971L7.029 272.937c-9.373-9.373-9.373-24.569 0-33.941L86.225 159.8c15.119-15.119 40.971-4.411 40.971 16.971V228H228V127.196h-51.23c-21.382 0-32.09-25.851-16.971-40.971l79.196-79.196c9.373-9.373 24.568-9.373 33.941 0l79.196 79.196c15.119 15.119 4.411 40.971-16.971 40.971h-51.162V228h100.804v-51.162c0-21.382 25.851-32.09 40.97-16.971l79.196 79.196c9.373 9.373 9.373 24.569 0 33.941L425.773 352.2c-15.119 15.119-40.971 4.411-40.97-16.971V284H284v100.804h51.23c21.382 0 32.09 25.851 16.971 40.971z"]},faArrowsAltH:{prefix:"fas",iconName:"arrows-alt-h",icon:[512,512,[],"f337","M377.941 169.941V216H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.568 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296h243.882v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.568 0-33.941l-86.059-86.059c-15.119-15.12-40.971-4.412-40.971 16.97z"]},faArrowsAltV:{prefix:"fas",iconName:"arrows-alt-v",icon:[256,512,[],"f338","M214.059 377.941H168V134.059h46.059c21.382 0 32.09-25.851 16.971-40.971L144.971 7.029c-9.373-9.373-24.568-9.373-33.941 0L24.971 93.088c-15.119 15.119-4.411 40.971 16.971 40.971H88v243.882H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.568 9.373 33.941 0l86.059-86.059c15.12-15.119 4.412-40.971-16.97-40.971z"]},faAssistiveListeningSystems:{prefix:"fas",iconName:"assistive-listening-systems",icon:[512,512,[],"f2a2","M216 260c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-44.112 35.888-80 80-80s80 35.888 80 80c0 15.464-12.536 28-28 28s-28-12.536-28-28c0-13.234-10.767-24-24-24s-24 10.766-24 24zm24-176c-97.047 0-176 78.953-176 176 0 15.464 12.536 28 28 28s28-12.536 28-28c0-66.168 53.832-120 120-120s120 53.832 120 120c0 75.164-71.009 70.311-71.997 143.622L288 404c0 28.673-23.327 52-52 52-15.464 0-28 12.536-28 28s12.536 28 28 28c59.475 0 107.876-48.328 108-107.774.595-34.428 72-48.24 72-144.226 0-97.047-78.953-176-176-176zm-80 236c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zM32 448c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm480-187.993c0-1.518-.012-3.025-.045-4.531C510.076 140.525 436.157 38.47 327.994 1.511c-14.633-4.998-30.549 2.809-35.55 17.442-5 14.633 2.81 30.549 17.442 35.55 85.906 29.354 144.61 110.513 146.077 201.953l.003.188c.026 1.118.033 2.236.033 3.363 0 15.464 12.536 28 28 28s28.001-12.536 28.001-28zM152.971 439.029l-80-80L39.03 392.97l80 80 33.941-33.941z"]},faAsterisk:{prefix:"fas",iconName:"asterisk",icon:[512,512,[],"f069","M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z"]},faAt:{prefix:"fas",iconName:"at",icon:[512,512,[],"f1fa","M256 8C118.941 8 8 118.919 8 256c0 137.059 110.919 248 248 248 48.154 0 95.342-14.14 135.408-40.223 12.005-7.815 14.625-24.288 5.552-35.372l-10.177-12.433c-7.671-9.371-21.179-11.667-31.373-5.129C325.92 429.757 291.314 440 256 440c-101.458 0-184-82.542-184-184S154.542 72 256 72c100.139 0 184 57.619 184 160 0 38.786-21.093 79.742-58.17 83.693-17.349-.454-16.91-12.857-13.476-30.024l23.433-121.11C394.653 149.75 383.308 136 368.225 136h-44.981a13.518 13.518 0 0 0-13.432 11.993l-.01.092c-14.697-17.901-40.448-21.775-59.971-21.775-74.58 0-137.831 62.234-137.831 151.46 0 65.303 36.785 105.87 96 105.87 26.984 0 57.369-15.637 74.991-38.333 9.522 34.104 40.613 34.103 70.71 34.103C462.609 379.41 504 307.798 504 232 504 95.653 394.023 8 256 8zm-21.68 304.43c-22.249 0-36.07-15.623-36.07-40.771 0-44.993 30.779-72.729 58.63-72.729 22.292 0 35.601 15.241 35.601 40.77 0 45.061-33.875 72.73-58.161 72.73z"]},faAtlas:{prefix:"fas",iconName:"atlas",icon:[448,512,[],"f558","M318.38 208h-39.09c-1.49 27.03-6.54 51.35-14.21 70.41 27.71-13.24 48.02-39.19 53.3-70.41zm0-32c-5.29-31.22-25.59-57.17-53.3-70.41 7.68 19.06 12.72 43.38 14.21 70.41h39.09zM224 97.31c-7.69 7.45-20.77 34.42-23.43 78.69h46.87c-2.67-44.26-15.75-71.24-23.44-78.69zm-41.08 8.28c-27.71 13.24-48.02 39.19-53.3 70.41h39.09c1.49-27.03 6.53-51.35 14.21-70.41zm0 172.82c-7.68-19.06-12.72-43.38-14.21-70.41h-39.09c5.28 31.22 25.59 57.17 53.3 70.41zM247.43 208h-46.87c2.66 44.26 15.74 71.24 23.43 78.69 7.7-7.45 20.78-34.43 23.44-78.69zM448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM224 64c70.69 0 128 57.31 128 128s-57.31 128-128 128S96 262.69 96 192 153.31 64 224 64zm160 384H96c-19.2 0-32-12.8-32-32s16-32 32-32h288v64z"]},faAtom:{prefix:"fas",iconName:"atom",icon:[448,512,[],"f5d2","M223.99908,224a32,32,0,1,0,32.00782,32A32.06431,32.06431,0,0,0,223.99908,224Zm214.172-96c-10.877-19.5-40.50979-50.75-116.27544-41.875C300.39168,34.875,267.63386,0,223.99908,0s-76.39066,34.875-97.89653,86.125C50.3369,77.375,20.706,108.5,9.82907,128-6.54984,157.375-5.17484,201.125,34.958,256-5.17484,310.875-6.54984,354.625,9.82907,384c29.13087,52.375,101.64652,43.625,116.27348,41.875C147.60842,477.125,180.36429,512,223.99908,512s76.3926-34.875,97.89652-86.125c14.62891,1.75,87.14456,10.5,116.27544-41.875C454.55,354.625,453.175,310.875,413.04017,256,453.175,201.125,454.55,157.375,438.171,128ZM63.33886,352c-4-7.25-.125-24.75,15.00391-48.25,6.87695,6.5,14.12891,12.875,21.88087,19.125,1.625,13.75,4,27.125,6.75,40.125C82.34472,363.875,67.09081,358.625,63.33886,352Zm36.88478-162.875c-7.752,6.25-15.00392,12.625-21.88087,19.125-15.12891-23.5-19.00392-41-15.00391-48.25,3.377-6.125,16.37891-11.5,37.88478-11.5,1.75,0,3.875.375,5.75.375C104.09864,162.25,101.84864,175.625,100.22364,189.125ZM223.99908,64c9.50195,0,22.25586,13.5,33.88282,37.25-11.252,3.75-22.50391,8-33.88282,12.875-11.377-4.875-22.62892-9.125-33.88283-12.875C201.74516,77.5,214.49712,64,223.99908,64Zm0,384c-9.502,0-22.25392-13.5-33.88283-37.25,11.25391-3.75,22.50587-8,33.88283-12.875C235.378,402.75,246.62994,407,257.8819,410.75,246.25494,434.5,233.501,448,223.99908,448Zm0-112a80,80,0,1,1,80-80A80.00023,80.00023,0,0,1,223.99908,336ZM384.6593,352c-3.625,6.625-19.00392,11.875-43.63479,11,2.752-13,5.127-26.375,6.752-40.125,7.75195-6.25,15.00391-12.625,21.87891-19.125C384.7843,327.25,388.6593,344.75,384.6593,352ZM369.65538,208.25c-6.875-6.5-14.127-12.875-21.87891-19.125-1.625-13.5-3.875-26.875-6.752-40.25,1.875,0,4.002-.375,5.752-.375,21.50391,0,34.50782,5.375,37.88283,11.5C388.6593,167.25,384.7843,184.75,369.65538,208.25Z"]},faAudioDescription:{prefix:"fas",iconName:"audio-description",icon:[512,512,[],"f29e","M162.925 238.709l8.822 30.655h-25.606l9.041-30.652c1.277-4.421 2.651-9.994 3.872-15.245 1.22 5.251 2.594 10.823 3.871 15.242zm166.474-32.099h-14.523v98.781h14.523c29.776 0 46.175-17.678 46.175-49.776 0-32.239-17.49-49.005-46.175-49.005zM512 112v288c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48zM245.459 336.139l-57.097-168A12.001 12.001 0 0 0 177 160h-35.894a12.001 12.001 0 0 0-11.362 8.139l-57.097 168C70.003 343.922 75.789 352 84.009 352h29.133a12 12 0 0 0 11.535-8.693l8.574-29.906h51.367l8.793 29.977A12 12 0 0 0 204.926 352h29.172c8.22 0 14.006-8.078 11.361-15.861zm184.701-80.525c0-58.977-37.919-95.614-98.96-95.614h-57.366c-6.627 0-12 5.373-12 12v168c0 6.627 5.373 12 12 12H331.2c61.041 0 98.96-36.933 98.96-96.386z"]},faAward:{prefix:"fas",iconName:"award",icon:[384,512,[],"f559","M97.12 362.63c-8.69-8.69-4.16-6.24-25.12-11.85-9.51-2.55-17.87-7.45-25.43-13.32L1.2 448.7c-4.39 10.77 3.81 22.47 15.43 22.03l52.69-2.01L105.56 507c8 8.44 22.04 5.81 26.43-4.96l52.05-127.62c-10.84 6.04-22.87 9.58-35.31 9.58-19.5 0-37.82-7.59-51.61-21.37zM382.8 448.7l-45.37-111.24c-7.56 5.88-15.92 10.77-25.43 13.32-21.07 5.64-16.45 3.18-25.12 11.85-13.79 13.78-32.12 21.37-51.62 21.37-12.44 0-24.47-3.55-35.31-9.58L252 502.04c4.39 10.77 18.44 13.4 26.43 4.96l36.25-38.28 52.69 2.01c11.62.44 19.82-11.27 15.43-22.03zM263 340c15.28-15.55 17.03-14.21 38.79-20.14 13.89-3.79 24.75-14.84 28.47-28.98 7.48-28.4 5.54-24.97 25.95-45.75 10.17-10.35 14.14-25.44 10.42-39.58-7.47-28.38-7.48-24.42 0-52.83 3.72-14.14-.25-29.23-10.42-39.58-20.41-20.78-18.47-17.36-25.95-45.75-3.72-14.14-14.58-25.19-28.47-28.98-27.88-7.61-24.52-5.62-44.95-26.41-10.17-10.35-25-14.4-38.89-10.61-27.87 7.6-23.98 7.61-51.9 0-13.89-3.79-28.72.25-38.89 10.61-20.41 20.78-17.05 18.8-44.94 26.41-13.89 3.79-24.75 14.84-28.47 28.98-7.47 28.39-5.54 24.97-25.95 45.75-10.17 10.35-14.15 25.44-10.42 39.58 7.47 28.36 7.48 24.4 0 52.82-3.72 14.14.25 29.23 10.42 39.59 20.41 20.78 18.47 17.35 25.95 45.75 3.72 14.14 14.58 25.19 28.47 28.98C104.6 325.96 106.27 325 121 340c13.23 13.47 33.84 15.88 49.74 5.82a39.676 39.676 0 0 1 42.53 0c15.89 10.06 36.5 7.65 49.73-5.82zM97.66 175.96c0-53.03 42.24-96.02 94.34-96.02s94.34 42.99 94.34 96.02-42.24 96.02-94.34 96.02-94.34-42.99-94.34-96.02z"]},faBaby:{prefix:"fas",iconName:"baby",icon:[384,512,[],"f77c","M192 160c44.2 0 80-35.8 80-80S236.2 0 192 0s-80 35.8-80 80 35.8 80 80 80zm-53.4 248.8l25.6-32-61.5-51.2L56.8 383c-11.4 14.2-11.7 34.4-.8 49l48 64c7.9 10.5 19.9 16 32 16 8.3 0 16.8-2.6 24-8 17.7-13.2 21.2-38.3 8-56l-29.4-39.2zm142.7-83.2l-61.5 51.2 25.6 32L216 448c-13.2 17.7-9.7 42.8 8 56 7.2 5.4 15.6 8 24 8 12.2 0 24.2-5.5 32-16l48-64c10.9-14.6 10.6-34.8-.8-49l-45.9-57.4zM376.7 145c-12.7-18.1-37.6-22.4-55.7-9.8l-40.6 28.5c-52.7 37-124.2 37-176.8 0L63 135.3C44.9 122.6 20 127 7.3 145-5.4 163.1-1 188 17 200.7l40.6 28.5c17 11.9 35.4 20.9 54.4 27.9V288h160v-30.8c19-7 37.4-16 54.4-27.9l40.6-28.5c18.1-12.8 22.4-37.7 9.7-55.8z"]},faBabyCarriage:{prefix:"fas",iconName:"baby-carriage",icon:[512,512,[],"f77d","M144.8 17c-11.3-17.8-37.2-22.8-54-9.4C35.3 51.9 0 118 0 192h256L144.8 17zM496 96h-48c-35.3 0-64 28.7-64 64v64H0c0 50.6 23 96.4 60.3 130.7C25.7 363.6 0 394.7 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-8.9-1.8-17.2-4.4-25.2 21.6 5.9 44.6 9.2 68.4 9.2s46.9-3.3 68.4-9.2c-2.7 8-4.4 16.3-4.4 25.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-37.3-25.7-68.4-60.3-77.3C425 320.4 448 274.6 448 224v-64h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM80 464c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm320-32c0 17.6-14.4 32-32 32s-32-14.4-32-32 14.4-32 32-32 32 14.4 32 32z"]},faBackspace:{prefix:"fas",iconName:"backspace",icon:[640,512,[],"f55a","M576 64H205.26A63.97 63.97 0 0 0 160 82.75L9.37 233.37c-12.5 12.5-12.5 32.76 0 45.25L160 429.25c12 12 28.28 18.75 45.25 18.75H576c35.35 0 64-28.65 64-64V128c0-35.35-28.65-64-64-64zm-84.69 254.06c6.25 6.25 6.25 16.38 0 22.63l-22.62 22.62c-6.25 6.25-16.38 6.25-22.63 0L384 301.25l-62.06 62.06c-6.25 6.25-16.38 6.25-22.63 0l-22.62-22.62c-6.25-6.25-6.25-16.38 0-22.63L338.75 256l-62.06-62.06c-6.25-6.25-6.25-16.38 0-22.63l22.62-22.62c6.25-6.25 16.38-6.25 22.63 0L384 210.75l62.06-62.06c6.25-6.25 16.38-6.25 22.63 0l22.62 22.62c6.25 6.25 6.25 16.38 0 22.63L429.25 256l62.06 62.06z"]},faBackward:{prefix:"fas",iconName:"backward",icon:[512,512,[],"f04a","M11.5 280.6l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2zm256 0l192 160c20.6 17.2 52.5 2.8 52.5-24.6V96c0-27.4-31.9-41.8-52.5-24.6l-192 160c-15.3 12.8-15.3 36.4 0 49.2z"]},faBacon:{prefix:"fas",iconName:"bacon",icon:[576,512,[],"f7e5","M218.92 336.39c34.89-34.89 44.2-59.7 54.05-86 10.61-28.29 21.59-57.54 61.37-97.34s69.05-50.77 97.35-61.38c23.88-9 46.64-17.68 76.79-45.37L470.81 8.91a31 31 0 0 0-40.18-2.83c-13.64 10.1-25.15 14.39-41 20.3C247 79.52 209.26 191.29 200.65 214.1c-29.75 78.83-89.55 94.68-98.72 98.09-24.86 9.26-54.73 20.38-91.07 50.36C-3 374-3.63 395 9.07 407.61l35.76 35.51C80 410.52 107 400.15 133 390.39c26.27-9.84 51.06-19.12 85.92-54zm348-232l-35.75-35.51c-35.19 32.63-62.18 43-88.25 52.79-26.26 9.85-51.06 19.16-85.95 54s-44.19 59.69-54 86C292.33 290 281.34 319.22 241.55 359s-69 50.73-97.3 61.32c-23.86 9-46.61 17.66-76.72 45.33l37.68 37.43a31 31 0 0 0 40.18 2.82c13.6-10.06 25.09-14.34 40.94-20.24 142.2-53 180-164.1 188.94-187.69C405 219.18 464.8 203.3 474 199.86c24.87-9.27 54.74-20.4 91.11-50.41 13.89-11.4 14.52-32.45 1.82-45.05z"]},faBacteria:{prefix:"fas",iconName:"bacteria",icon:[640,512,[],"e059","M272.35,226.4A17.71,17.71,0,0,0,281.46,203l-4-9.08a121.29,121.29,0,0,1,12.36-3.08A83.34,83.34,0,0,0,323.57,177l10,9a17.76,17.76,0,1,0,23.92-26.27l-9.72-8.76a83.12,83.12,0,0,0,11.65-48.18l11.85-3.51a17.73,17.73,0,1,0-10.15-34l-11.34,3.36a84,84,0,0,0-36.38-35.57l2.84-10.85a17.8,17.8,0,0,0-34.47-8.93l-2.82,10.78a83.25,83.25,0,0,0-16.74,1.1C250.83,27,240,30.22,229.1,33.39l-3.38-9.46a17.8,17.8,0,0,0-33.56,11.89l3.49,9.8a286.74,286.74,0,0,0-43.94,23.57l-6.32-8.43a17.9,17.9,0,0,0-24.94-3.6A17.69,17.69,0,0,0,116.84,82l6.45,8.61a286.59,286.59,0,0,0-34.95,35.33l-8.82-6.42a17.84,17.84,0,0,0-24.89,3.86,17.66,17.66,0,0,0,3.88,24.77l8.88,6.47a286.6,286.6,0,0,0-23,43.91l-10.48-3.59a17.73,17.73,0,1,0-11.59,33.52L32.67,232c-2.79,10-5.79,19.84-7.52,30.22a83.16,83.16,0,0,0-.82,19l-11.58,3.43a17.73,17.73,0,1,0,10.13,34l11.27-3.33a83.51,83.51,0,0,0,36.39,35.43l-2.88,11.06a17.81,17.81,0,0,0,34.48,8.92l2.87-11c1,0,2.07.26,3.1.26a83.39,83.39,0,0,0,45.65-13.88l8.59,8.8a17.77,17.77,0,0,0,25.56-24.7l-9.14-9.37a83.41,83.41,0,0,0,12.08-31.05,119.08,119.08,0,0,1,3.87-15.53l9,4.22a17.74,17.74,0,1,0,15.15-32.09l-8.8-4.11c.67-1,1.2-2.08,1.9-3.05a119.89,119.89,0,0,1,7.87-9.41,121.73,121.73,0,0,1,11.65-11.4,119.49,119.49,0,0,1,9.94-7.82c1.12-.77,2.32-1.42,3.47-2.15l3.92,8.85a17.86,17.86,0,0,0,16.32,10.58A18.14,18.14,0,0,0,272.35,226.4ZM128,256a32,32,0,1,1,32-32A32,32,0,0,1,128,256Zm80-96a16,16,0,1,1,16-16A16,16,0,0,1,208,160Zm431.26,45.3a17.79,17.79,0,0,0-17.06-12.69,17.55,17.55,0,0,0-5.08.74l-11.27,3.33a83.61,83.61,0,0,0-36.39-35.43l2.88-11.06a17.81,17.81,0,0,0-34.48-8.91l-2.87,11c-1,0-2.07-.26-3.1-.26a83.32,83.32,0,0,0-45.65,13.89l-8.59-8.81a17.77,17.77,0,0,0-25.56,24.7l9.14,9.37a83.28,83.28,0,0,0-12.08,31.06,119.34,119.34,0,0,1-3.87,15.52l-9-4.22a17.74,17.74,0,1,0-15.15,32.09l8.8,4.11c-.67,1-1.2,2.08-1.89,3.05a117.71,117.71,0,0,1-7.94,9.47,119,119,0,0,1-11.57,11.33,121.59,121.59,0,0,1-10,7.83c-1.12.77-2.32,1.42-3.47,2.15l-3.92-8.85a17.86,17.86,0,0,0-16.32-10.58,18.14,18.14,0,0,0-7.18,1.5A17.71,17.71,0,0,0,358.54,309l4,9.08a118.71,118.71,0,0,1-12.36,3.08,83.34,83.34,0,0,0-33.77,13.9l-10-9a17.77,17.77,0,1,0-23.92,26.28l9.72,8.75a83.12,83.12,0,0,0-11.65,48.18l-11.86,3.51a17.73,17.73,0,1,0,10.16,34l11.34-3.36A84,84,0,0,0,326.61,479l-2.84,10.85a17.8,17.8,0,0,0,34.47,8.93L361.06,488a83.3,83.3,0,0,0,16.74-1.1c11.37-1.89,22.24-5.07,33.1-8.24l3.38,9.46a17.8,17.8,0,0,0,33.56-11.89l-3.49-9.79a287.66,287.66,0,0,0,43.94-23.58l6.32,8.43a17.88,17.88,0,0,0,24.93,3.6A17.67,17.67,0,0,0,523.16,430l-6.45-8.61a287.37,287.37,0,0,0,34.95-35.34l8.82,6.42a17.76,17.76,0,1,0,21-28.63l-8.88-6.46a287.17,287.17,0,0,0,23-43.92l10.48,3.59a17.73,17.73,0,1,0,11.59-33.52L607.33,280c2.79-10,5.79-19.84,7.52-30.21a83.27,83.27,0,0,0,.82-19.05l11.58-3.43A17.7,17.7,0,0,0,639.26,205.3ZM416,416a32,32,0,1,1,32-32A32,32,0,0,1,416,416Z"]},faBacterium:{prefix:"fas",iconName:"bacterium",icon:[512,512,[],"e05a","M511,102.93A23.76,23.76,0,0,0,481.47,87l-15.12,4.48a111.85,111.85,0,0,0-48.5-47.42l3.79-14.47a23.74,23.74,0,0,0-46-11.91l-3.76,14.37a111.94,111.94,0,0,0-22.33,1.47,386.74,386.74,0,0,0-44.33,10.41l-4.3-12a23.74,23.74,0,0,0-44.75,15.85l4.3,12.05a383.4,383.4,0,0,0-58.69,31.83l-8-10.63a23.85,23.85,0,0,0-33.24-4.8,23.57,23.57,0,0,0-4.83,33.09l8,10.63a386.14,386.14,0,0,0-46.7,47.44l-11-8a23.68,23.68,0,1,0-28,38.17l11.09,8.06a383.45,383.45,0,0,0-30.92,58.75l-12.93-4.43a23.65,23.65,0,1,0-15.47,44.69l13,4.48a385.81,385.81,0,0,0-9.3,40.53A111.58,111.58,0,0,0,32.44,375L17,379.56a23.64,23.64,0,0,0,13.51,45.31l15-4.44a111.49,111.49,0,0,0,48.53,47.24l-3.85,14.75a23.66,23.66,0,0,0,17,28.83,24.7,24.7,0,0,0,6,.75,23.73,23.73,0,0,0,23-17.7L140,479.67c1.37.05,2.77.35,4.13.35A111.22,111.22,0,0,0,205,461.5l11.45,11.74a23.7,23.7,0,0,0,34.08-32.93l-12.19-12.5a111,111,0,0,0,16.11-41.4,158.69,158.69,0,0,1,5.16-20.71l12,5.64a23.66,23.66,0,1,0,20.19-42.79l-11.72-5.49c.89-1.32,1.59-2.77,2.52-4.06a157.86,157.86,0,0,1,10.46-12.49,159.5,159.5,0,0,1,15.59-15.28,162.18,162.18,0,0,1,13.23-10.4c1.5-1,3.1-1.89,4.63-2.87l5.23,11.8a23.74,23.74,0,0,0,43.48-19.08l-5.36-12.11a158.87,158.87,0,0,1,16.49-4.1,111,111,0,0,0,45-18.54l13.33,12a23.69,23.69,0,1,0,31.88-35l-12.94-11.67A110.83,110.83,0,0,0,479.21,137L495,132.32A23.61,23.61,0,0,0,511,102.93ZM160,368a48,48,0,1,1,48-48A48,48,0,0,1,160,368Zm80-136a24,24,0,1,1,24-24A24,24,0,0,1,240,232Z"]},faBahai:{prefix:"fas",iconName:"bahai",icon:[512,512,[],"f666","M496.25 202.52l-110-15.44 41.82-104.34c6.67-16.64-11.6-32.18-26.59-22.63L307.44 120 273.35 12.82C270.64 4.27 263.32 0 256 0c-7.32 0-14.64 4.27-17.35 12.82l-34.09 107.19-94.04-59.89c-14.99-9.55-33.25 5.99-26.59 22.63l41.82 104.34-110 15.43c-17.54 2.46-21.68 26.27-6.03 34.67l98.16 52.66-74.48 83.54c-10.92 12.25-1.72 30.93 13.29 30.93 1.31 0 2.67-.14 4.07-.45l108.57-23.65-4.11 112.55c-.43 11.65 8.87 19.22 18.41 19.22 5.15 0 10.39-2.21 14.2-7.18l68.18-88.9 68.18 88.9c3.81 4.97 9.04 7.18 14.2 7.18 9.54 0 18.84-7.57 18.41-19.22l-4.11-112.55 108.57 23.65c17.36 3.76 29.21-17.2 17.35-30.49l-74.48-83.54 98.16-52.66c15.64-8.39 11.5-32.2-6.04-34.66zM338.51 311.68l-51.89-11.3 1.97 53.79L256 311.68l-32.59 42.49 1.96-53.79-51.89 11.3 35.6-39.93-46.92-25.17 52.57-7.38-19.99-49.87 44.95 28.62L256 166.72l16.29 51.23 44.95-28.62-19.99 49.87 52.57 7.38-46.92 25.17 35.61 39.93z"]},faBalanceScale:{prefix:"fas",iconName:"balance-scale",icon:[640,512,[],"f24e","M256 336h-.02c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0C-2.06 328.75.02 320.33.02 336H0c0 44.18 57.31 80 128 80s128-35.82 128-80zM128 176l72 144H56l72-144zm511.98 160c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 320l72-144 72 144H440zm88 128H352V153.25c23.51-10.29 41.16-31.48 46.39-57.25H528c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H383.64C369.04 12.68 346.09 0 320 0s-49.04 12.68-63.64 32H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h129.61c5.23 25.76 22.87 46.96 46.39 57.25V448H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faBalanceScaleLeft:{prefix:"fas",iconName:"balance-scale-left",icon:[640,512,[],"f515","M528 448H352V153.25c20.42-8.94 36.1-26.22 43.38-47.47l132-44.26c8.38-2.81 12.89-11.88 10.08-20.26l-10.17-30.34C524.48 2.54 515.41-1.97 507.03.84L389.11 40.37C375.3 16.36 349.69 0 320 0c-44.18 0-80 35.82-80 80 0 3.43.59 6.71 1.01 10.03l-128.39 43.05c-8.38 2.81-12.89 11.88-10.08 20.26l10.17 30.34c2.81 8.38 11.88 12.89 20.26 10.08l142.05-47.63c4.07 2.77 8.43 5.12 12.99 7.12V496c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16v-32c-.01-8.84-7.17-16-16.01-16zm111.98-144c0-16.18 1.34-8.73-85.05-181.51-17.65-35.29-68.19-35.36-85.87 0-87.12 174.26-85.04 165.84-85.04 181.51H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02zM440 288l72-144 72 144H440zm-269.07-37.51c-17.65-35.29-68.19-35.36-85.87 0C-2.06 424.75.02 416.33.02 432H0c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-16.18 1.34-8.73-85.05-181.51zM56 416l72-144 72 144H56z"]},faBalanceScaleRight:{prefix:"fas",iconName:"balance-scale-right",icon:[640,512,[],"f516","M96 464v32c0 8.84 7.16 16 16 16h224c8.84 0 16-7.16 16-16V153.25c4.56-2 8.92-4.35 12.99-7.12l142.05 47.63c8.38 2.81 17.45-1.71 20.26-10.08l10.17-30.34c2.81-8.38-1.71-17.45-10.08-20.26l-128.4-43.05c.42-3.32 1.01-6.6 1.01-10.03 0-44.18-35.82-80-80-80-29.69 0-55.3 16.36-69.11 40.37L132.96.83c-8.38-2.81-17.45 1.71-20.26 10.08l-10.17 30.34c-2.81 8.38 1.71 17.45 10.08 20.26l132 44.26c7.28 21.25 22.96 38.54 43.38 47.47V448H112c-8.84 0-16 7.16-16 16zM0 304c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0C-1.32 295.27.02 287.82.02 304H0zm56-16l72-144 72 144H56zm328.02 144H384c0 44.18 57.31 80 128 80s128-35.82 128-80h-.02c0-15.67 2.08-7.25-85.05-181.51-17.68-35.36-68.22-35.29-85.87 0-86.38 172.78-85.04 165.33-85.04 181.51zM440 416l72-144 72 144H440z"]},faBan:{prefix:"fas",iconName:"ban",icon:[512,512,[],"f05e","M256 8C119.034 8 8 119.033 8 256s111.034 248 248 248 248-111.034 248-248S392.967 8 256 8zm130.108 117.892c65.448 65.448 70 165.481 20.677 235.637L150.47 105.216c70.204-49.356 170.226-44.735 235.638 20.676zM125.892 386.108c-65.448-65.448-70-165.481-20.677-235.637L361.53 406.784c-70.203 49.356-170.226 44.736-235.638-20.676z"]},faBandAid:{prefix:"fas",iconName:"band-aid",icon:[640,512,[],"f462","M0 160v192c0 35.3 28.7 64 64 64h96V96H64c-35.3 0-64 28.7-64 64zm576-64h-96v320h96c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64zM192 416h256V96H192v320zm176-232c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm0 96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"]},faBarcode:{prefix:"fas",iconName:"barcode",icon:[512,512,[],"f02a","M0 448V64h18v384H0zm26.857-.273V64H36v383.727h-9.143zm27.143 0V64h8.857v383.727H54zm44.857 0V64h8.857v383.727h-8.857zm36 0V64h17.714v383.727h-17.714zm44.857 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm18 0V64h8.857v383.727h-8.857zm35.715 0V64h18v383.727h-18zm44.857 0V64h18v383.727h-18zm35.999 0V64h18.001v383.727h-18.001zm36.001 0V64h18.001v383.727h-18.001zm26.857 0V64h18v383.727h-18zm45.143 0V64h26.857v383.727h-26.857zm35.714 0V64h9.143v383.727H476zm18 .273V64h18v384h-18z"]},faBars:{prefix:"fas",iconName:"bars",icon:[448,512,[],"f0c9","M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z"]},faBaseballBall:{prefix:"fas",iconName:"baseball-ball",icon:[496,512,[],"f433","M368.5 363.9l28.8-13.9c11.1 22.9 26 43.2 44.1 60.9 34-42.5 54.5-96.3 54.5-154.9 0-58.5-20.4-112.2-54.2-154.6-17.8 17.3-32.6 37.1-43.6 59.5l-28.7-14.1c12.8-26 30-49 50.8-69C375.6 34.7 315 8 248 8 181.1 8 120.5 34.6 75.9 77.7c20.7 19.9 37.9 42.9 50.7 68.8l-28.7 14.1c-11-22.3-25.7-42.1-43.5-59.4C20.4 143.7 0 197.4 0 256c0 58.6 20.4 112.3 54.4 154.7 18.2-17.7 33.2-38 44.3-61l28.8 13.9c-12.9 26.7-30.3 50.3-51.5 70.7 44.5 43.1 105.1 69.7 172 69.7 66.8 0 127.3-26.5 171.9-69.5-21.1-20.4-38.5-43.9-51.4-70.6zm-228.3-32l-30.5-9.8c14.9-46.4 12.7-93.8-.6-134l30.4-10c15 45.6 18 99.9.7 153.8zm216.3-153.4l30.4 10c-13.2 40.1-15.5 87.5-.6 134l-30.5 9.8c-17.3-54-14.3-108.3.7-153.8z"]},faBasketballBall:{prefix:"fas",iconName:"basketball-ball",icon:[496,512,[],"f434","M212.3 10.3c-43.8 6.3-86.2 24.1-122.2 53.8l77.4 77.4c27.8-35.8 43.3-81.2 44.8-131.2zM248 222L405.9 64.1c-42.4-35-93.6-53.5-145.5-56.1-1.2 63.9-21.5 122.3-58.7 167.7L248 222zM56.1 98.1c-29.7 36-47.5 78.4-53.8 122.2 50-1.5 95.5-17 131.2-44.8L56.1 98.1zm272.2 204.2c45.3-37.1 103.7-57.4 167.7-58.7-2.6-51.9-21.1-103.1-56.1-145.5L282 256l46.3 46.3zM248 290L90.1 447.9c42.4 34.9 93.6 53.5 145.5 56.1 1.3-64 21.6-122.4 58.7-167.7L248 290zm191.9 123.9c29.7-36 47.5-78.4 53.8-122.2-50.1 1.6-95.5 17.1-131.2 44.8l77.4 77.4zM167.7 209.7C122.3 246.9 63.9 267.3 0 268.4c2.6 51.9 21.1 103.1 56.1 145.5L214 256l-46.3-46.3zm116 292c43.8-6.3 86.2-24.1 122.2-53.8l-77.4-77.4c-27.7 35.7-43.2 81.2-44.8 131.2z"]},faBath:{prefix:"fas",iconName:"bath",icon:[512,512,[],"f2cd","M32,384a95.4,95.4,0,0,0,32,71.09V496a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V480H384v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V455.09A95.4,95.4,0,0,0,480,384V336H32ZM496,256H80V69.25a21.26,21.26,0,0,1,36.28-15l19.27,19.26c-13.13,29.88-7.61,59.11,8.62,79.73l-.17.17A16,16,0,0,0,144,176l11.31,11.31a16,16,0,0,0,22.63,0L283.31,81.94a16,16,0,0,0,0-22.63L272,48a16,16,0,0,0-22.62,0l-.17.17c-20.62-16.23-49.83-21.75-79.73-8.62L150.22,20.28A69.25,69.25,0,0,0,32,69.25V256H16A16,16,0,0,0,0,272v16a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V272A16,16,0,0,0,496,256Z"]},faBatteryEmpty:{prefix:"fas",iconName:"battery-empty",icon:[640,512,[],"f244","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48z"]},faBatteryFull:{prefix:"fas",iconName:"battery-full",icon:[640,512,[],"f240","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-48 96H96v128h416V192z"]},faBatteryHalf:{prefix:"fas",iconName:"battery-half",icon:[640,512,[],"f242","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-240 96H96v128h224V192z"]},faBatteryQuarter:{prefix:"fas",iconName:"battery-quarter",icon:[640,512,[],"f243","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-336 96H96v128h128V192z"]},faBatteryThreeQuarters:{prefix:"fas",iconName:"battery-three-quarters",icon:[640,512,[],"f241","M544 160v64h32v64h-32v64H64V160h480m16-64H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h512c26.51 0 48-21.49 48-48v-16h8c13.255 0 24-10.745 24-24V184c0-13.255-10.745-24-24-24h-8v-16c0-26.51-21.49-48-48-48zm-144 96H96v128h320V192z"]},faBed:n,faBeer:{prefix:"fas",iconName:"beer",icon:[448,512,[],"f0fc","M368 96h-48V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24v-42.11l80.606-35.977C429.396 365.063 448 336.388 448 304.86V176c0-44.112-35.888-80-80-80zm16 208.86a16.018 16.018 0 0 1-9.479 14.611L320 343.805V160h48c8.822 0 16 7.178 16 16v128.86zM208 384c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16zm-96 0c-8.836 0-16-7.164-16-16V144c0-8.836 7.164-16 16-16s16 7.164 16 16v224c0 8.836-7.164 16-16 16z"]},faBell:{prefix:"fas",iconName:"bell",icon:[448,512,[],"f0f3","M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z"]},faBellSlash:{prefix:"fas",iconName:"bell-slash",icon:[640,512,[],"f1f6","M633.82 458.1l-90.62-70.05c.19-1.38.8-2.66.8-4.06.05-7.55-2.61-15.27-8.61-21.71-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84c-40.33 8.38-74.66 31.07-97.59 62.57L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.35 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.42-6.97 4.17-17.02-2.81-22.45zM157.23 251.54c-8.61 67.96-36.41 93.33-52.62 110.75-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h241.92L157.23 251.54zM320 512c35.32 0 63.97-28.65 63.97-64H256.03c0 35.35 28.65 64 63.97 64z"]},faBezierCurve:{prefix:"fas",iconName:"bezier-curve",icon:[640,512,[],"f55b","M368 32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM208 88h-84.75C113.75 64.56 90.84 48 64 48 28.66 48 0 76.65 0 112s28.66 64 64 64c26.84 0 49.75-16.56 59.25-40h79.73c-55.37 32.52-95.86 87.32-109.54 152h49.4c11.3-41.61 36.77-77.21 71.04-101.56-3.7-8.08-5.88-16.99-5.88-26.44V88zm-48 232H64c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zM576 48c-26.84 0-49.75 16.56-59.25 40H432v72c0 9.45-2.19 18.36-5.88 26.44 34.27 24.35 59.74 59.95 71.04 101.56h49.4c-13.68-64.68-54.17-119.48-109.54-152h79.73c9.5 23.44 32.41 40 59.25 40 35.34 0 64-28.65 64-64s-28.66-64-64-64zm0 272h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},faBible:{prefix:"fas",iconName:"bible",icon:[448,512,[],"f647","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM144 144c0-8.84 7.16-16 16-16h48V80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v48h48c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-48v112c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V192h-48c-8.84 0-16-7.16-16-16v-32zm236.8 304H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]},faBicycle:{prefix:"fas",iconName:"bicycle",icon:[640,512,[],"f206","M512.509 192.001c-16.373-.064-32.03 2.955-46.436 8.495l-77.68-125.153A24 24 0 0 0 368.001 64h-64c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h50.649l14.896 24H256.002v-16c0-8.837-7.163-16-16-16h-87.459c-13.441 0-24.777 10.999-24.536 24.437.232 13.044 10.876 23.563 23.995 23.563h48.726l-29.417 47.52c-13.433-4.83-27.904-7.483-42.992-7.52C58.094 191.83.412 249.012.002 319.236-.413 390.279 57.055 448 128.002 448c59.642 0 109.758-40.793 123.967-96h52.033a24 24 0 0 0 20.406-11.367L410.37 201.77l14.938 24.067c-25.455 23.448-41.385 57.081-41.307 94.437.145 68.833 57.899 127.051 126.729 127.719 70.606.685 128.181-55.803 129.255-125.996 1.086-70.941-56.526-129.72-127.476-129.996zM186.75 265.772c9.727 10.529 16.673 23.661 19.642 38.228h-43.306l23.664-38.228zM128.002 400c-44.112 0-80-35.888-80-80s35.888-80 80-80c5.869 0 11.586.653 17.099 1.859l-45.505 73.509C89.715 331.327 101.213 352 120.002 352h81.3c-12.37 28.225-40.562 48-73.3 48zm162.63-96h-35.624c-3.96-31.756-19.556-59.894-42.383-80.026L237.371 184h127.547l-74.286 120zm217.057 95.886c-41.036-2.165-74.049-35.692-75.627-76.755-.812-21.121 6.633-40.518 19.335-55.263l44.433 71.586c4.66 7.508 14.524 9.816 22.032 5.156l13.594-8.437c7.508-4.66 9.817-14.524 5.156-22.032l-44.468-71.643a79.901 79.901 0 0 1 19.858-2.497c44.112 0 80 35.888 80 80-.001 45.54-38.252 82.316-84.313 79.885z"]},faBiking:{prefix:"fas",iconName:"biking",icon:[640,512,[],"f84a","M400 96a48 48 0 1 0-48-48 48 48 0 0 0 48 48zm-4 121a31.9 31.9 0 0 0 20 7h64a32 32 0 0 0 0-64h-52.78L356 103a31.94 31.94 0 0 0-40.81.68l-112 96a32 32 0 0 0 3.08 50.92L288 305.12V416a32 32 0 0 0 64 0V288a32 32 0 0 0-14.25-26.62l-41.36-27.57 58.25-49.92zm116 39a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64zM128 256a128 128 0 1 0 128 128 128 128 0 0 0-128-128zm0 192a64 64 0 1 1 64-64 64 64 0 0 1-64 64z"]},faBinoculars:{prefix:"fas",iconName:"binoculars",icon:[512,512,[],"f1e5","M416 48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v48h96V48zM63.91 159.99C61.4 253.84 3.46 274.22 0 404v44c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32V288h32V128H95.84c-17.63 0-31.45 14.37-31.93 31.99zm384.18 0c-.48-17.62-14.3-31.99-31.93-31.99H320v160h32v160c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-44c-3.46-129.78-61.4-150.16-63.91-244.01zM176 32h-64c-8.84 0-16 7.16-16 16v48h96V48c0-8.84-7.16-16-16-16zm48 256h64V128h-64v160z"]},faBiohazard:{prefix:"fas",iconName:"biohazard",icon:[576,512,[],"f780","M287.9 112c18.6 0 36.2 3.8 52.8 9.6 13.3-10.3 23.6-24.3 29.5-40.7-25.2-10.9-53-17-82.2-17-29.1 0-56.9 6-82.1 16.9 5.9 16.4 16.2 30.4 29.5 40.7 16.5-5.7 34-9.5 52.5-9.5zM163.6 438.7c12-11.8 20.4-26.4 24.5-42.4-32.9-26.4-54.8-65.3-58.9-109.6-8.5-2.8-17.2-4.6-26.4-4.6-7.6 0-15.2 1-22.5 3.1 4.1 62.8 35.8 118 83.3 153.5zm224.2-42.6c4.1 16 12.5 30.7 24.5 42.5 47.4-35.5 79.1-90.7 83-153.5-7.2-2-14.7-3-22.2-3-9.2 0-18 1.9-26.6 4.7-4.1 44.2-26 82.9-58.7 109.3zm113.5-205c-17.6-10.4-36.3-16.6-55.3-19.9 6-17.7 10-36.4 10-56.2 0-41-14.5-80.8-41-112.2-2.5-3-6.6-3.7-10-1.8-3.3 1.9-4.8 6-3.6 9.7 4.5 13.8 6.6 26.3 6.6 38.5 0 67.8-53.8 122.9-120 122.9S168 117 168 49.2c0-12.1 2.2-24.7 6.6-38.5 1.2-3.7-.3-7.8-3.6-9.7-3.4-1.9-7.5-1.2-10 1.8C134.6 34.2 120 74 120 115c0 19.8 3.9 38.5 10 56.2-18.9 3.3-37.7 9.5-55.3 19.9-34.6 20.5-61 53.3-74.3 92.4-1.3 3.7.2 7.7 3.5 9.8 3.3 2 7.5 1.3 10-1.6 9.4-10.8 19-19.1 29.2-25.1 57.3-33.9 130.8-13.7 163.9 45 33.1 58.7 13.4 134-43.9 167.9-10.2 6.1-22 10.4-35.8 13.4-3.7.8-6.4 4.2-6.4 8.1.1 4 2.7 7.3 6.5 8 39.7 7.8 80.6.8 115.2-19.7 18-10.6 32.9-24.5 45.3-40.1 12.4 15.6 27.3 29.5 45.3 40.1 34.6 20.5 75.5 27.5 115.2 19.7 3.8-.7 6.4-4 6.5-8 0-3.9-2.6-7.3-6.4-8.1-13.9-2.9-25.6-7.3-35.8-13.4-57.3-33.9-77-109.2-43.9-167.9s106.6-78.9 163.9-45c10.2 6.1 19.8 14.3 29.2 25.1 2.5 2.9 6.7 3.6 10 1.6s4.8-6.1 3.5-9.8c-13.1-39.1-39.5-72-74.1-92.4zm-213.4 129c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},faBirthdayCake:{prefix:"fas",iconName:"birthday-cake",icon:[448,512,[],"f1fd","M448 384c-28.02 0-31.26-32-74.5-32-43.43 0-46.825 32-74.75 32-27.695 0-31.454-32-74.75-32-42.842 0-47.218 32-74.5 32-28.148 0-31.202-32-74.75-32-43.547 0-46.653 32-74.75 32v-80c0-26.5 21.5-48 48-48h16V112h64v144h64V112h64v144h64V112h64v144h16c26.5 0 48 21.5 48 48v80zm0 128H0v-96c43.356 0 46.767-32 74.75-32 27.951 0 31.253 32 74.75 32 42.843 0 47.217-32 74.5-32 28.148 0 31.201 32 74.75 32 43.357 0 46.767-32 74.75-32 27.488 0 31.252 32 74.5 32v96zM96 96c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40zm128 0c-17.75 0-32-14.25-32-32 0-31 32-23 32-64 12 0 32 29.5 32 56s-14.25 40-32 40z"]},faBlender:{prefix:"fas",iconName:"blender",icon:[512,512,[],"f517","M416 384H160c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-128 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm40-416h166.54L512 0H48C21.49 0 0 21.49 0 48v160c0 26.51 21.49 48 48 48h103.27l8.73 96h256l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H328c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H328c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM64 192V64h69.82l11.64 128H64z"]},faBlenderPhone:{prefix:"fas",iconName:"blender-phone",icon:[576,512,[],"f6b6","M392 64h166.54L576 0H192v352h288l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h114.18l17.46-64H392c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h140.36l17.46-64H392c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8zM158.8 335.01l-25.78-63.26c-2.78-6.81-9.8-10.99-17.24-10.26l-45.03 4.42c-17.28-46.94-17.65-99.78 0-147.72l45.03 4.42c7.43.73 14.46-3.46 17.24-10.26l25.78-63.26c3.02-7.39.2-15.85-6.68-20.07l-39.28-24.1C98.51-3.87 80.09-.5 68.95 11.97c-92.57 103.6-92 259.55 2.1 362.49 9.87 10.8 29.12 12.48 41.65 4.8l39.41-24.18c6.89-4.22 9.7-12.67 6.69-20.07zM480 384H192c-35.35 0-64 28.65-64 64v32c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32v-32c0-35.35-28.65-64-64-64zm-144 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faBlind:{prefix:"fas",iconName:"blind",icon:[384,512,[],"f29d","M380.15 510.837a8 8 0 0 1-10.989-2.687l-125.33-206.427a31.923 31.923 0 0 0 12.958-9.485l126.048 207.608a8 8 0 0 1-2.687 10.991zM142.803 314.338l-32.54 89.485 36.12 88.285c6.693 16.36 25.377 24.192 41.733 17.501 16.357-6.692 24.193-25.376 17.501-41.734l-62.814-153.537zM96 88c24.301 0 44-19.699 44-44S120.301 0 96 0 52 19.699 52 44s19.699 44 44 44zm154.837 169.128l-120-152c-4.733-5.995-11.75-9.108-18.837-9.112V96H80v.026c-7.146.003-14.217 3.161-18.944 9.24L0 183.766v95.694c0 13.455 11.011 24.791 24.464 24.536C37.505 303.748 48 293.1 48 280v-79.766l16-20.571v140.698L9.927 469.055c-6.04 16.609 2.528 34.969 19.138 41.009 16.602 6.039 34.968-2.524 41.009-19.138L136 309.638V202.441l-31.406-39.816a4 4 0 1 1 6.269-4.971l102.3 129.217c9.145 11.584 24.368 11.339 33.708 3.965 10.41-8.216 12.159-23.334 3.966-33.708z"]},faBlog:{prefix:"fas",iconName:"blog",icon:[512,512,[],"f781","M172.2 226.8c-14.6-2.9-28.2 8.9-28.2 23.8V301c0 10.2 7.1 18.4 16.7 22 18.2 6.8 31.3 24.4 31.3 45 0 26.5-21.5 48-48 48s-48-21.5-48-48V120c0-13.3-10.7-24-24-24H24c-13.3 0-24 10.7-24 24v248c0 89.5 82.1 160.2 175 140.7 54.4-11.4 98.3-55.4 109.7-109.7 17.4-82.9-37-157.2-112.5-172.2zM209 0c-9.2-.5-17 6.8-17 16v31.6c0 8.5 6.6 15.5 15 15.9 129.4 7 233.4 112 240.9 241.5.5 8.4 7.5 15 15.9 15h32.1c9.2 0 16.5-7.8 16-17C503.4 139.8 372.2 8.6 209 0zm.3 96c-9.3-.7-17.3 6.7-17.3 16.1v32.1c0 8.4 6.5 15.3 14.8 15.9 76.8 6.3 138 68.2 144.9 145.2.8 8.3 7.6 14.7 15.9 14.7h32.2c9.3 0 16.8-8 16.1-17.3-8.4-110.1-96.5-198.2-206.6-206.7z"]},faBold:{prefix:"fas",iconName:"bold",icon:[384,512,[],"f032","M333.49 238a122 122 0 0 0 27-65.21C367.87 96.49 308 32 233.42 32H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h31.87v288H34a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h209.32c70.8 0 134.14-51.75 141-122.4 4.74-48.45-16.39-92.06-50.83-119.6zM145.66 112h87.76a48 48 0 0 1 0 96h-87.76zm87.76 288h-87.76V288h87.76a56 56 0 0 1 0 112z"]},faBolt:s,faBomb:{prefix:"fas",iconName:"bomb",icon:[512,512,[],"f1e2","M440.5 88.5l-52 52L415 167c9.4 9.4 9.4 24.6 0 33.9l-17.4 17.4c11.8 26.1 18.4 55.1 18.4 85.6 0 114.9-93.1 208-208 208S0 418.9 0 304 93.1 96 208 96c30.5 0 59.5 6.6 85.6 18.4L311 97c9.4-9.4 24.6-9.4 33.9 0l26.5 26.5 52-52 17.1 17zM500 60h-24c-6.6 0-12 5.4-12 12s5.4 12 12 12h24c6.6 0 12-5.4 12-12s-5.4-12-12-12zM440 0c-6.6 0-12 5.4-12 12v24c0 6.6 5.4 12 12 12s12-5.4 12-12V12c0-6.6-5.4-12-12-12zm33.9 55l17-17c4.7-4.7 4.7-12.3 0-17-4.7-4.7-12.3-4.7-17 0l-17 17c-4.7 4.7-4.7 12.3 0 17 4.8 4.7 12.4 4.7 17 0zm-67.8 0c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17zm67.8 34c-4.7-4.7-12.3-4.7-17 0-4.7 4.7-4.7 12.3 0 17l17 17c4.7 4.7 12.3 4.7 17 0 4.7-4.7 4.7-12.3 0-17l-17-17zM112 272c0-35.3 28.7-64 64-64 8.8 0 16-7.2 16-16s-7.2-16-16-16c-52.9 0-96 43.1-96 96 0 8.8 7.2 16 16 16s16-7.2 16-16z"]},faBone:{prefix:"fas",iconName:"bone",icon:[640,512,[],"f5d7","M598.88 244.56c25.2-12.6 41.12-38.36 41.12-66.53v-7.64C640 129.3 606.7 96 565.61 96c-32.02 0-60.44 20.49-70.57 50.86-7.68 23.03-11.6 45.14-38.11 45.14H183.06c-27.38 0-31.58-25.54-38.11-45.14C134.83 116.49 106.4 96 74.39 96 33.3 96 0 129.3 0 170.39v7.64c0 28.17 15.92 53.93 41.12 66.53 9.43 4.71 9.43 18.17 0 22.88C15.92 280.04 0 305.8 0 333.97v7.64C0 382.7 33.3 416 74.38 416c32.02 0 60.44-20.49 70.57-50.86 7.68-23.03 11.6-45.14 38.11-45.14h273.87c27.38 0 31.58 25.54 38.11 45.14C505.17 395.51 533.6 416 565.61 416c41.08 0 74.38-33.3 74.38-74.39v-7.64c0-28.18-15.92-53.93-41.12-66.53-9.42-4.71-9.42-18.17.01-22.88z"]},faBong:{prefix:"fas",iconName:"bong",icon:[448,512,[],"f55c","M302.5 512c23.18 0 44.43-12.58 56-32.66C374.69 451.26 384 418.75 384 384c0-36.12-10.08-69.81-27.44-98.62L400 241.94l9.38 9.38c6.25 6.25 16.38 6.25 22.63 0l11.3-11.32c6.25-6.25 6.25-16.38 0-22.63l-52.69-52.69c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l9.38 9.38-39.41 39.41c-11.56-11.37-24.53-21.33-38.65-29.51V63.74l15.97-.02c8.82-.01 15.97-7.16 15.98-15.98l.04-31.72C320 7.17 312.82-.01 303.97 0L80.03.26c-8.82.01-15.97 7.16-15.98 15.98l-.04 31.73c-.01 8.85 7.17 16.02 16.02 16.01L96 63.96v153.93C38.67 251.1 0 312.97 0 384c0 34.75 9.31 67.27 25.5 95.34C37.08 499.42 58.33 512 81.5 512h221zM120.06 259.43L144 245.56V63.91l96-.11v181.76l23.94 13.87c24.81 14.37 44.12 35.73 56.56 60.57h-257c12.45-24.84 31.75-46.2 56.56-60.57z"]},faBook:{prefix:"fas",iconName:"book",icon:[448,512,[],"f02d","M448 360V24c0-13.3-10.7-24-24-24H96C43 0 0 43 0 96v320c0 53 43 96 96 96h328c13.3 0 24-10.7 24-24v-16c0-7.5-3.5-14.3-8.9-18.7-4.2-15.4-4.2-59.3 0-74.7 5.4-4.3 8.9-11.1 8.9-18.6zM128 134c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm0 64c0-3.3 2.7-6 6-6h212c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H134c-3.3 0-6-2.7-6-6v-20zm253.4 250H96c-17.7 0-32-14.3-32-32 0-17.6 14.4-32 32-32h285.4c-1.9 17.1-1.9 46.9 0 64z"]},faBookDead:{prefix:"fas",iconName:"book-dead",icon:[448,512,[],"f6b7","M272 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm176 222.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM240 56c44.2 0 80 28.7 80 64 0 20.9-12.7 39.2-32 50.9V184c0 8.8-7.2 16-16 16h-64c-8.8 0-16-7.2-16-16v-13.1c-19.3-11.7-32-30-32-50.9 0-35.3 35.8-64 80-64zM124.8 223.3l6.3-14.7c1.7-4.1 6.4-5.9 10.5-4.2l98.3 42.1 98.4-42.1c4.1-1.7 8.8.1 10.5 4.2l6.3 14.7c1.7 4.1-.1 8.8-4.2 10.5L280.6 264l70.3 30.1c4.1 1.7 5.9 6.4 4.2 10.5l-6.3 14.7c-1.7 4.1-6.4 5.9-10.5 4.2L240 281.4l-98.3 42.2c-4.1 1.7-8.8-.1-10.5-4.2l-6.3-14.7c-1.7-4.1.1-8.8 4.2-10.5l70.4-30.1-70.5-30.3c-4.1-1.7-5.9-6.4-4.2-10.5zm256 224.7H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8zM208 136c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16z"]},faBookMedical:{prefix:"fas",iconName:"book-medical",icon:[448,512,[],"f7e6","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16q0-9.6-9.6-19.2c-3.2-16-3.2-60.8 0-73.6q9.6-4.8 9.6-19.2zM144 168a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8v48a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8zm236.8 280H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8z"]},faBookOpen:{prefix:"fas",iconName:"book-open",icon:[576,512,[],"f518","M542.22 32.05c-54.8 3.11-163.72 14.43-230.96 55.59-4.64 2.84-7.27 7.89-7.27 13.17v363.87c0 11.55 12.63 18.85 23.28 13.49 69.18-34.82 169.23-44.32 218.7-46.92 16.89-.89 30.02-14.43 30.02-30.66V62.75c.01-17.71-15.35-31.74-33.77-30.7zM264.73 87.64C197.5 46.48 88.58 35.17 33.78 32.05 15.36 31.01 0 45.04 0 62.75V400.6c0 16.24 13.13 29.78 30.02 30.66 49.49 2.6 149.59 12.11 218.77 46.95 10.62 5.35 23.21-1.94 23.21-13.46V100.63c0-5.29-2.62-10.14-7.27-12.99z"]},faBookReader:{prefix:"fas",iconName:"book-reader",icon:[512,512,[],"f5da","M352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96 42.98 96 96 96 96-42.98 96-96zM233.59 241.1c-59.33-36.32-155.43-46.3-203.79-49.05C13.55 191.13 0 203.51 0 219.14v222.8c0 14.33 11.59 26.28 26.49 27.05 43.66 2.29 131.99 10.68 193.04 41.43 9.37 4.72 20.48-1.71 20.48-11.87V252.56c-.01-4.67-2.32-8.95-6.42-11.46zm248.61-49.05c-48.35 2.74-144.46 12.73-203.78 49.05-4.1 2.51-6.41 6.96-6.41 11.63v245.79c0 10.19 11.14 16.63 20.54 11.9 61.04-30.72 149.32-39.11 192.97-41.4 14.9-.78 26.49-12.73 26.49-27.06V219.14c-.01-15.63-13.56-28.01-29.81-27.09z"]},faBookmark:{prefix:"fas",iconName:"bookmark",icon:[384,512,[],"f02e","M0 512V48C0 21.49 21.49 0 48 0h288c26.51 0 48 21.49 48 48v464L192 400 0 512z"]},faBorderAll:{prefix:"fas",iconName:"border-all",icon:[448,512,[],"f84c","M416 32H32A32 32 0 0 0 0 64v384a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V64a32 32 0 0 0-32-32zm-32 64v128H256V96zm-192 0v128H64V96zM64 416V288h128v128zm192 0V288h128v128z"]},faBorderNone:{prefix:"fas",iconName:"border-none",icon:[448,512,[],"f850","M240 224h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-288 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM240 320h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-384h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM48 224H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-192H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faBorderStyle:{prefix:"fas",iconName:"border-style",icon:[448,512,[],"f853","M240 416h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-96 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm192 0h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm96-192h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0 96h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-288h-32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-96H32A32 32 0 0 0 0 64v400a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V96h368a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faBowlingBall:{prefix:"fas",iconName:"bowling-ball",icon:[496,512,[],"f436","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM120 192c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64-96c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm48 144c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faBox:{prefix:"fas",iconName:"box",icon:[512,512,[],"f466","M509.5 184.6L458.9 32.8C452.4 13.2 434.1 0 413.4 0H272v192h238.7c-.4-2.5-.4-5-1.2-7.4zM240 0H98.6c-20.7 0-39 13.2-45.5 32.8L2.5 184.6c-.8 2.4-.8 4.9-1.2 7.4H240V0zM0 224v240c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V224H0z"]},faBoxOpen:{prefix:"fas",iconName:"box-open",icon:[640,512,[],"f49e","M425.7 256c-16.9 0-32.8-9-41.4-23.4L320 126l-64.2 106.6c-8.7 14.5-24.6 23.5-41.5 23.5-4.5 0-9-.6-13.3-1.9L64 215v178c0 14.7 10 27.5 24.2 31l216.2 54.1c10.2 2.5 20.9 2.5 31 0L551.8 424c14.2-3.6 24.2-16.4 24.2-31V215l-137 39.1c-4.3 1.3-8.8 1.9-13.3 1.9zm212.6-112.2L586.8 41c-3.1-6.2-9.8-9.8-16.7-8.9L320 64l91.7 152.1c3.8 6.3 11.4 9.3 18.5 7.3l197.9-56.5c9.9-2.9 14.7-13.9 10.2-23.1zM53.2 41L1.7 143.8c-4.6 9.2.3 20.2 10.1 23l197.9 56.5c7.1 2 14.7-1 18.5-7.3L320 64 69.8 32.1c-6.9-.8-13.5 2.7-16.6 8.9z"]},faBoxTissue:{prefix:"fas",iconName:"box-tissue",icon:[512,512,[],"e05b","M383.88,287.82l64-192H338.47a70.2,70.2,0,0,1-66.59-48,70.21,70.21,0,0,0-66.6-48H63.88l64,288Zm-384,192a32,32,0,0,0,32,32h448a32,32,0,0,0,32-32v-64H-.12Zm480-256H438.94l-21.33,64h14.27a16,16,0,0,1,0,32h-352a16,16,0,1,1,0-32H95.09l-14.22-64h-49a32,32,0,0,0-32,32v128h512v-128A32,32,0,0,0,479.88,223.82Z"]},faBoxes:{prefix:"fas",iconName:"boxes",icon:[576,512,[],"f468","M560 288h-80v96l-32-21.3-32 21.3v-96h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16zm-384-64h224c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16h-80v96l-32-21.3L256 96V0h-80c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16zm64 64h-80v96l-32-21.3L96 384v-96H16c-8.8 0-16 7.2-16 16v192c0 8.8 7.2 16 16 16h224c8.8 0 16-7.2 16-16V304c0-8.8-7.2-16-16-16z"]},faBraille:{prefix:"fas",iconName:"braille",icon:[640,512,[],"f2a1","M128 256c0 35.346-28.654 64-64 64S0 291.346 0 256s28.654-64 64-64 64 28.654 64 64zM64 384c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352C28.654 32 0 60.654 0 96s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm224 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-352c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64zm160 192c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0 160c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm0-320c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]},faBrain:{prefix:"fas",iconName:"brain",icon:[576,512,[],"f5dc","M208 0c-29.9 0-54.7 20.5-61.8 48.2-.8 0-1.4-.2-2.2-.2-35.3 0-64 28.7-64 64 0 4.8.6 9.5 1.7 14C52.5 138 32 166.6 32 200c0 12.6 3.2 24.3 8.3 34.9C16.3 248.7 0 274.3 0 304c0 33.3 20.4 61.9 49.4 73.9-.9 4.6-1.4 9.3-1.4 14.1 0 39.8 32.2 72 72 72 4.1 0 8.1-.5 12-1.2 9.6 28.5 36.2 49.2 68 49.2 39.8 0 72-32.2 72-72V64c0-35.3-28.7-64-64-64zm368 304c0-29.7-16.3-55.3-40.3-69.1 5.2-10.6 8.3-22.3 8.3-34.9 0-33.4-20.5-62-49.7-74 1-4.5 1.7-9.2 1.7-14 0-35.3-28.7-64-64-64-.8 0-1.5.2-2.2.2C422.7 20.5 397.9 0 368 0c-35.3 0-64 28.6-64 64v376c0 39.8 32.2 72 72 72 31.8 0 58.4-20.7 68-49.2 3.9.7 7.9 1.2 12 1.2 39.8 0 72-32.2 72-72 0-4.8-.5-9.5-1.4-14.1 29-12 49.4-40.6 49.4-73.9z"]},faBreadSlice:{prefix:"fas",iconName:"bread-slice",icon:[576,512,[],"f7ec","M288 0C108 0 0 93.4 0 169.14 0 199.44 24.24 224 64 224v256c0 17.67 16.12 32 36 32h376c19.88 0 36-14.33 36-32V224c39.76 0 64-24.56 64-54.86C576 93.4 468 0 288 0z"]},faBriefcase:{prefix:"fas",iconName:"briefcase",icon:[512,512,[],"f0b1","M320 336c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h416c25.6 0 48-22.4 48-48V288H320v48zm144-208h-80V80c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h512v-80c0-25.6-22.4-48-48-48zm-144 0H192V96h128v32z"]},faBriefcaseMedical:{prefix:"fas",iconName:"briefcase-medical",icon:[512,512,[],"f469","M464 128h-80V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v48H48c-26.5 0-48 21.5-48 48v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V176c0-26.5-21.5-48-48-48zM192 96h128v32H192V96zm160 248c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48z"]},faBroadcastTower:{prefix:"fas",iconName:"broadcast-tower",icon:[640,512,[],"f519","M150.94 192h33.73c11.01 0 18.61-10.83 14.86-21.18-4.93-13.58-7.55-27.98-7.55-42.82s2.62-29.24 7.55-42.82C203.29 74.83 195.68 64 184.67 64h-33.73c-7.01 0-13.46 4.49-15.41 11.23C130.64 92.21 128 109.88 128 128c0 18.12 2.64 35.79 7.54 52.76 1.94 6.74 8.39 11.24 15.4 11.24zM89.92 23.34C95.56 12.72 87.97 0 75.96 0H40.63c-6.27 0-12.14 3.59-14.74 9.31C9.4 45.54 0 85.65 0 128c0 24.75 3.12 68.33 26.69 118.86 2.62 5.63 8.42 9.14 14.61 9.14h34.84c12.02 0 19.61-12.74 13.95-23.37-49.78-93.32-16.71-178.15-.17-209.29zM614.06 9.29C611.46 3.58 605.6 0 599.33 0h-35.42c-11.98 0-19.66 12.66-14.02 23.25 18.27 34.29 48.42 119.42.28 209.23-5.72 10.68 1.8 23.52 13.91 23.52h35.23c6.27 0 12.13-3.58 14.73-9.29C630.57 210.48 640 170.36 640 128s-9.42-82.48-25.94-118.71zM489.06 64h-33.73c-11.01 0-18.61 10.83-14.86 21.18 4.93 13.58 7.55 27.98 7.55 42.82s-2.62 29.24-7.55 42.82c-3.76 10.35 3.85 21.18 14.86 21.18h33.73c7.02 0 13.46-4.49 15.41-11.24 4.9-16.97 7.53-34.64 7.53-52.76 0-18.12-2.64-35.79-7.54-52.76-1.94-6.75-8.39-11.24-15.4-11.24zm-116.3 100.12c7.05-10.29 11.2-22.71 11.2-36.12 0-35.35-28.63-64-63.96-64-35.32 0-63.96 28.65-63.96 64 0 13.41 4.15 25.83 11.2 36.12l-130.5 313.41c-3.4 8.15.46 17.52 8.61 20.92l29.51 12.31c8.15 3.4 17.52-.46 20.91-8.61L244.96 384h150.07l49.2 118.15c3.4 8.16 12.76 12.01 20.91 8.61l29.51-12.31c8.15-3.4 12-12.77 8.61-20.92l-130.5-313.41zM271.62 320L320 203.81 368.38 320h-96.76z"]},faBroom:{prefix:"fas",iconName:"broom",icon:[640,512,[],"f51a","M256.47 216.77l86.73 109.18s-16.6 102.36-76.57 150.12C206.66 523.85 0 510.19 0 510.19s3.8-23.14 11-55.43l94.62-112.17c3.97-4.7-.87-11.62-6.65-9.5l-60.4 22.09c14.44-41.66 32.72-80.04 54.6-97.47 59.97-47.76 163.3-40.94 163.3-40.94zM636.53 31.03l-19.86-25c-5.49-6.9-15.52-8.05-22.41-2.56l-232.48 177.8-34.14-42.97c-5.09-6.41-15.14-5.21-18.59 2.21l-25.33 54.55 86.73 109.18 58.8-12.45c8-1.69 11.42-11.2 6.34-17.6l-34.09-42.92 232.48-177.8c6.89-5.48 8.04-15.53 2.55-22.44z"]},faBrush:{prefix:"fas",iconName:"brush",icon:[384,512,[],"f55d","M352 0H32C14.33 0 0 14.33 0 32v224h384V32c0-17.67-14.33-32-32-32zM0 320c0 35.35 28.66 64 64 64h64v64c0 35.35 28.66 64 64 64s64-28.65 64-64v-64h64c35.34 0 64-28.65 64-64v-32H0v32zm192 104c13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24s-24-10.75-24-24c0-13.26 10.75-24 24-24z"]},faBug:{prefix:"fas",iconName:"bug",icon:[512,512,[],"f188","M511.988 288.9c-.478 17.43-15.217 31.1-32.653 31.1H424v16c0 21.864-4.882 42.584-13.6 61.145l60.228 60.228c12.496 12.497 12.496 32.758 0 45.255-12.498 12.497-32.759 12.496-45.256 0l-54.736-54.736C345.886 467.965 314.351 480 280 480V236c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v244c-34.351 0-65.886-12.035-90.636-32.108l-54.736 54.736c-12.498 12.497-32.759 12.496-45.256 0-12.496-12.497-12.496-32.758 0-45.255l60.228-60.228C92.882 378.584 88 357.864 88 336v-16H32.666C15.23 320 .491 306.33.013 288.9-.484 270.816 14.028 256 32 256h56v-58.745l-46.628-46.628c-12.496-12.497-12.496-32.758 0-45.255 12.498-12.497 32.758-12.497 45.256 0L141.255 160h229.489l54.627-54.627c12.498-12.497 32.758-12.497 45.256 0 12.496 12.497 12.496 32.758 0 45.255L424 197.255V256h56c17.972 0 32.484 14.816 31.988 32.9zM257 0c-61.856 0-112 50.144-112 112h224C369 50.144 318.856 0 257 0z"]},faBuilding:{prefix:"fas",iconName:"building",icon:[448,512,[],"f1ad","M436 480h-20V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v456H12c-6.627 0-12 5.373-12 12v20h448v-20c0-6.627-5.373-12-12-12zM128 76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76zm0 96c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40zm52 148h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12zm76 160h-64v-84c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v84zm64-172c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40zm0-96c0 6.627-5.373 12-12 12h-40c-6.627 0-12-5.373-12-12V76c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v40z"]},faBullhorn:{prefix:"fas",iconName:"bullhorn",icon:[576,512,[],"f0a1","M576 240c0-23.63-12.95-44.04-32-55.12V32.01C544 23.26 537.02 0 512 0c-7.12 0-14.19 2.38-19.98 7.02l-85.03 68.03C364.28 109.19 310.66 128 256 128H64c-35.35 0-64 28.65-64 64v96c0 35.35 28.65 64 64 64h33.7c-1.39 10.48-2.18 21.14-2.18 32 0 39.77 9.26 77.35 25.56 110.94 5.19 10.69 16.52 17.06 28.4 17.06h74.28c26.05 0 41.69-29.84 25.9-50.56-16.4-21.52-26.15-48.36-26.15-77.44 0-11.11 1.62-21.79 4.41-32H256c54.66 0 108.28 18.81 150.98 52.95l85.03 68.03a32.023 32.023 0 0 0 19.98 7.02c24.92 0 32-22.78 32-32V295.13C563.05 284.04 576 263.63 576 240zm-96 141.42l-33.05-26.44C392.95 311.78 325.12 288 256 288v-96c69.12 0 136.95-23.78 190.95-66.98L480 98.58v282.84z"]},faBullseye:{prefix:"fas",iconName:"bullseye",icon:[496,512,[],"f140","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 432c-101.69 0-184-82.29-184-184 0-101.69 82.29-184 184-184 101.69 0 184 82.29 184 184 0 101.69-82.29 184-184 184zm0-312c-70.69 0-128 57.31-128 128s57.31 128 128 128 128-57.31 128-128-57.31-128-128-128zm0 192c-35.29 0-64-28.71-64-64s28.71-64 64-64 64 28.71 64 64-28.71 64-64 64z"]},faBurn:{prefix:"fas",iconName:"burn",icon:[384,512,[],"f46a","M192 0C79.7 101.3 0 220.9 0 300.5 0 425 79 512 192 512s192-87 192-211.5c0-79.9-80.2-199.6-192-300.5zm0 448c-56.5 0-96-39-96-94.8 0-13.5 4.6-61.5 96-161.2 91.4 99.7 96 147.7 96 161.2 0 55.8-39.5 94.8-96 94.8z"]},faBus:{prefix:"fas",iconName:"bus",icon:[512,512,[],"f207","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM112 400c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm16-112c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32v128c0 17.67-14.33 32-32 32H128zm272 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faBusAlt:{prefix:"fas",iconName:"bus-alt",icon:[512,512,[],"f55e","M488 128h-8V80c0-44.8-99.2-80-224-80S32 35.2 32 80v48h-8c-13.25 0-24 10.74-24 24v80c0 13.25 10.75 24 24 24h8v160c0 17.67 14.33 32 32 32v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h192v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h6.4c16 0 25.6-12.8 25.6-25.6V256h8c13.25 0 24-10.75 24-24v-80c0-13.26-10.75-24-24-24zM160 72c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H168c-4.42 0-8-3.58-8-8V72zm-48 328c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm128-112H128c-17.67 0-32-14.33-32-32v-96c0-17.67 14.33-32 32-32h112v160zm32 0V128h112c17.67 0 32 14.33 32 32v96c0 17.67-14.33 32-32 32H272zm128 112c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faBusinessTime:{prefix:"fas",iconName:"business-time",icon:[640,512,[],"f64a","M496 224c-79.59 0-144 64.41-144 144s64.41 144 144 144 144-64.41 144-144-64.41-144-144-144zm64 150.29c0 5.34-4.37 9.71-9.71 9.71h-60.57c-5.34 0-9.71-4.37-9.71-9.71v-76.57c0-5.34 4.37-9.71 9.71-9.71h12.57c5.34 0 9.71 4.37 9.71 9.71V352h38.29c5.34 0 9.71 4.37 9.71 9.71v12.58zM496 192c5.4 0 10.72.33 16 .81V144c0-25.6-22.4-48-48-48h-80V48c0-25.6-22.4-48-48-48H176c-25.6 0-48 22.4-48 48v48H48c-25.6 0-48 22.4-48 48v80h395.12c28.6-20.09 63.35-32 100.88-32zM320 96H192V64h128v32zm6.82 224H208c-8.84 0-16-7.16-16-16v-48H0v144c0 25.6 22.4 48 48 48h291.43C327.1 423.96 320 396.82 320 368c0-16.66 2.48-32.72 6.82-48z"]},faCalculator:{prefix:"fas",iconName:"calculator",icon:[448,512,[],"f1ec","M400 0H48C22.4 0 0 22.4 0 48v416c0 25.6 22.4 48 48 48h352c25.6 0 48-22.4 48-48V48c0-25.6-22.4-48-48-48zM128 435.2c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm128 128c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8V268.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v166.4zm0-256c0 6.4-6.4 12.8-12.8 12.8H76.8c-6.4 0-12.8-6.4-12.8-12.8V76.8C64 70.4 70.4 64 76.8 64h294.4c6.4 0 12.8 6.4 12.8 12.8v102.4z"]},faCalendar:{prefix:"fas",iconName:"calendar",icon:[448,512,[],"f133","M12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm436-44v-36c0-26.5-21.5-48-48-48h-48V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H160V12c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v52H48C21.5 64 0 85.5 0 112v36c0 6.6 5.4 12 12 12h424c6.6 0 12-5.4 12-12z"]},faCalendarAlt:{prefix:"fas",iconName:"calendar-alt",icon:[448,512,[],"f073","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm320-196c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM192 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40zM64 268c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zm0 128c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},faCalendarCheck:{prefix:"fas",iconName:"calendar-check",icon:[448,512,[],"f274","M436 160H12c-6.627 0-12-5.373-12-12v-36c0-26.51 21.49-48 48-48h48V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h128V12c0-6.627 5.373-12 12-12h40c6.627 0 12 5.373 12 12v52h48c26.51 0 48 21.49 48 48v36c0 6.627-5.373 12-12 12zM12 192h424c6.627 0 12 5.373 12 12v260c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V204c0-6.627 5.373-12 12-12zm333.296 95.947l-28.169-28.398c-4.667-4.705-12.265-4.736-16.97-.068L194.12 364.665l-45.98-46.352c-4.667-4.705-12.266-4.736-16.971-.068l-28.397 28.17c-4.705 4.667-4.736 12.265-.068 16.97l82.601 83.269c4.667 4.705 12.265 4.736 16.97.068l142.953-141.805c4.705-4.667 4.736-12.265.068-16.97z"]},faCalendarDay:{prefix:"fas",iconName:"calendar-day",icon:[448,512,[],"f783","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h96c8.8 0 16 7.2 16 16v96c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-96zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},faCalendarMinus:{prefix:"fas",iconName:"calendar-minus",icon:[448,512,[],"f272","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm304 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H132c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h184z"]},faCalendarPlus:{prefix:"fas",iconName:"calendar-plus",icon:[448,512,[],"f271","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm316 140c0-6.6-5.4-12-12-12h-60v-60c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v60h-60c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h60v60c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-60h60c6.6 0 12-5.4 12-12v-40z"]},faCalendarTimes:{prefix:"fas",iconName:"calendar-times",icon:[448,512,[],"f273","M436 160H12c-6.6 0-12-5.4-12-12v-36c0-26.5 21.5-48 48-48h48V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h128V12c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v52h48c26.5 0 48 21.5 48 48v36c0 6.6-5.4 12-12 12zM12 192h424c6.6 0 12 5.4 12 12v260c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V204c0-6.6 5.4-12 12-12zm257.3 160l48.1-48.1c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0L224 306.7l-48.1-48.1c-4.7-4.7-12.3-4.7-17 0l-28.3 28.3c-4.7 4.7-4.7 12.3 0 17l48.1 48.1-48.1 48.1c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l48.1-48.1 48.1 48.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L269.3 352z"]},faCalendarWeek:{prefix:"fas",iconName:"calendar-week",icon:[448,512,[],"f784","M0 464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V192H0v272zm64-192c0-8.8 7.2-16 16-16h288c8.8 0 16 7.2 16 16v64c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16v-64zM400 64h-48V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H160V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48H48C21.5 64 0 85.5 0 112v48h448v-48c0-26.5-21.5-48-48-48z"]},faCamera:{prefix:"fas",iconName:"camera",icon:[512,512,[],"f030","M512 144v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V144c0-26.5 21.5-48 48-48h88l12.3-32.9c7-18.7 24.9-31.1 44.9-31.1h125.5c20 0 37.9 12.4 44.9 31.1L376 96h88c26.5 0 48 21.5 48 48zM376 288c0-66.2-53.8-120-120-120s-120 53.8-120 120 53.8 120 120 120 120-53.8 120-120zm-32 0c0 48.5-39.5 88-88 88s-88-39.5-88-88 39.5-88 88-88 88 39.5 88 88z"]},faCameraRetro:{prefix:"fas",iconName:"camera-retro",icon:[512,512,[],"f083","M48 32C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48H48zm0 32h106c3.3 0 6 2.7 6 6v20c0 3.3-2.7 6-6 6H38c-3.3 0-6-2.7-6-6V80c0-8.8 7.2-16 16-16zm426 96H38c-3.3 0-6-2.7-6-6v-36c0-3.3 2.7-6 6-6h138l30.2-45.3c1.1-1.7 3-2.7 5-2.7H464c8.8 0 16 7.2 16 16v74c0 3.3-2.7 6-6 6zM256 424c-66.2 0-120-53.8-120-120s53.8-120 120-120 120 53.8 120 120-53.8 120-120 120zm0-208c-48.5 0-88 39.5-88 88s39.5 88 88 88 88-39.5 88-88-39.5-88-88-88zm-48 104c-8.8 0-16-7.2-16-16 0-35.3 28.7-64 64-64 8.8 0 16 7.2 16 16s-7.2 16-16 16c-17.6 0-32 14.4-32 32 0 8.8-7.2 16-16 16z"]},faCampground:{prefix:"fas",iconName:"campground",icon:[640,512,[],"f6bb","M624 448h-24.68L359.54 117.75l53.41-73.55c5.19-7.15 3.61-17.16-3.54-22.35l-25.9-18.79c-7.15-5.19-17.15-3.61-22.35 3.55L320 63.3 278.83 6.6c-5.19-7.15-15.2-8.74-22.35-3.55l-25.88 18.8c-7.15 5.19-8.74 15.2-3.54 22.35l53.41 73.55L40.68 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM320 288l116.36 160H203.64L320 288z"]},faCandyCane:{prefix:"fas",iconName:"candy-cane",icon:[512,512,[],"f786","M497.5 92C469.6 33.1 411.8 0 352.4 0c-27.9 0-56.2 7.3-81.8 22.6L243.1 39c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5l27.5-16.4c5.1-3.1 10.8-4.5 16.4-4.5 10.9 0 21.5 5.6 27.5 15.6 9.1 15.1 4.1 34.8-11 43.9L15.6 397.6c-15.2 9.1-20.1 28.7-11 43.9l32.8 54.9c6 10 16.6 15.6 27.5 15.6 5.6 0 11.2-1.5 16.4-4.5L428.6 301c71.7-42.9 104.6-133.5 68.9-209zm-177.7 13l-2.5 1.5L296.8 45c9.7-4.7 19.8-8.1 30.3-10.2l20.6 61.8c-9.8.8-19.4 3.3-27.9 8.4zM145.9 431.8l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm107.5-63.9l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zM364.3 302l-60.5-38.5 30.8-18.3 60.5 38.5-30.8 18.3zm20.4-197.3l46-46c8.4 6.5 16 14.1 22.6 22.6L407.6 127c-5.7-9.3-13.7-16.9-22.9-22.3zm82.1 107.8l-59.5-19.8c3.2-5.3 5.8-10.9 7.4-17.1 1.1-4.5 1.7-9.1 1.8-13.6l60.4 20.1c-2.1 10.4-5.5 20.6-10.1 30.4z"]},faCannabis:{prefix:"fas",iconName:"cannabis",icon:[512,512,[],"f55f","M503.47 360.25c-1.56-.82-32.39-16.89-76.78-25.81 64.25-75.12 84.05-161.67 84.93-165.64 1.18-5.33-.44-10.9-4.3-14.77-3.03-3.04-7.12-4.7-11.32-4.7-1.14 0-2.29.12-3.44.38-3.88.85-86.54 19.59-160.58 79.76.01-1.46.01-2.93.01-4.4 0-118.79-59.98-213.72-62.53-217.7A15.973 15.973 0 0 0 256 0c-5.45 0-10.53 2.78-13.47 7.37-2.55 3.98-62.53 98.91-62.53 217.7 0 1.47.01 2.94.01 4.4-74.03-60.16-156.69-78.9-160.58-79.76-1.14-.25-2.29-.38-3.44-.38-4.2 0-8.29 1.66-11.32 4.7A15.986 15.986 0 0 0 .38 168.8c.88 3.97 20.68 90.52 84.93 165.64-44.39 8.92-75.21 24.99-76.78 25.81a16.003 16.003 0 0 0-.02 28.29c2.45 1.29 60.76 31.72 133.49 31.72 6.14 0 11.96-.1 17.5-.31-11.37 22.23-16.52 38.31-16.81 39.22-1.8 5.68-.29 11.89 3.91 16.11a16.019 16.019 0 0 0 16.1 3.99c1.83-.57 37.72-11.99 77.3-39.29V504c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-64.01c39.58 27.3 75.47 38.71 77.3 39.29a16.019 16.019 0 0 0 16.1-3.99c4.2-4.22 5.71-10.43 3.91-16.11-.29-.91-5.45-16.99-16.81-39.22 5.54.21 11.37.31 17.5.31 72.72 0 131.04-30.43 133.49-31.72 5.24-2.78 8.52-8.22 8.51-14.15-.01-5.94-3.29-11.39-8.53-14.15z"]},faCapsules:{prefix:"fas",iconName:"capsules",icon:[576,512,[],"f46b","M555.3 300.1L424.2 112.8C401.9 81 366.4 64 330.4 64c-22.6 0-45.5 6.7-65.5 20.7-19.7 13.8-33.7 32.8-41.5 53.8C220.5 79.2 172 32 112 32 50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V218.9c3.3 8.6 7.3 17.1 12.8 25L368 431.2c22.2 31.8 57.7 48.8 93.8 48.8 22.7 0 45.5-6.7 65.5-20.7 51.7-36.2 64.2-107.5 28-159.2zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm194.8 44.9l-65.6-93.7c-7.7-11-10.7-24.4-8.3-37.6 2.3-13.2 9.7-24.8 20.7-32.5 8.5-6 18.5-9.1 28.8-9.1 16.5 0 31.9 8 41.3 21.5l65.6 93.7-82.5 57.7z"]},faCar:{prefix:"fas",iconName:"car",icon:[512,512,[],"f1b9","M499.99 176h-59.87l-16.64-41.6C406.38 91.63 365.57 64 319.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4L71.87 176H12.01C4.2 176-1.53 183.34.37 190.91l6 24C7.7 220.25 12.5 224 18.01 224h20.07C24.65 235.73 16 252.78 16 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-19.22-8.65-36.27-22.07-48H494c5.51 0 10.31-3.75 11.64-9.09l6-24c1.89-7.57-3.84-14.91-11.65-14.91zm-352.06-17.83c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L384 208H128l19.93-49.83zM96 319.8c-19.2 0-32-12.76-32-31.9S76.8 256 96 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S396.8 256 416 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]},faCarAlt:{prefix:"fas",iconName:"car-alt",icon:[480,512,[],"f5de","M438.66 212.33l-11.24-28.1-19.93-49.83C390.38 91.63 349.57 64 303.5 64h-127c-46.06 0-86.88 27.63-103.99 70.4l-19.93 49.83-11.24 28.1C17.22 221.5 0 244.66 0 272v48c0 16.12 6.16 30.67 16 41.93V416c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-54.07c9.84-11.25 16-25.8 16-41.93v-48c0-27.34-17.22-50.5-41.34-59.67zm-306.73-54.16c7.29-18.22 24.94-30.17 44.57-30.17h127c19.63 0 37.28 11.95 44.57 30.17L368 208H112l19.93-49.83zM80 319.8c-19.2 0-32-12.76-32-31.9S60.8 256 80 256s48 28.71 48 47.85-28.8 15.95-48 15.95zm320 0c-19.2 0-48 3.19-48-15.95S380.8 256 400 256s32 12.76 32 31.9-12.8 31.9-32 31.9z"]},faCarBattery:{prefix:"fas",iconName:"car-battery",icon:[512,512,[],"f5df","M480 128h-32V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v48H192V80c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v48H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32zM192 264c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm256 0c0 4.42-3.58 8-8 8h-40v40c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-40h-40c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h40v-40c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v40h40c4.42 0 8 3.58 8 8v16z"]},faCarCrash:{prefix:"fas",iconName:"car-crash",icon:[640,512,[],"f5e1","M143.25 220.81l-12.42 46.37c-3.01 11.25-3.63 22.89-2.41 34.39l-35.2 28.98c-6.57 5.41-16.31-.43-14.62-8.77l15.44-76.68c1.06-5.26-2.66-10.28-8-10.79l-77.86-7.55c-8.47-.82-11.23-11.83-4.14-16.54l65.15-43.3c4.46-2.97 5.38-9.15 1.98-13.29L21.46 93.22c-5.41-6.57.43-16.3 8.78-14.62l76.68 15.44c5.26 1.06 10.28-2.66 10.8-8l7.55-77.86c.82-8.48 11.83-11.23 16.55-4.14l43.3 65.14c2.97 4.46 9.15 5.38 13.29 1.98l60.4-49.71c6.57-5.41 16.3.43 14.62 8.77L262.1 86.38c-2.71 3.05-5.43 6.09-7.91 9.4l-32.15 42.97-10.71 14.32c-32.73 8.76-59.18 34.53-68.08 67.74zm494.57 132.51l-12.42 46.36c-3.13 11.68-9.38 21.61-17.55 29.36a66.876 66.876 0 0 1-8.76 7l-13.99 52.23c-1.14 4.27-3.1 8.1-5.65 11.38-7.67 9.84-20.74 14.68-33.54 11.25L515 502.62c-17.07-4.57-27.2-22.12-22.63-39.19l8.28-30.91-247.28-66.26-8.28 30.91c-4.57 17.07-22.12 27.2-39.19 22.63l-30.91-8.28c-12.8-3.43-21.7-14.16-23.42-26.51-.57-4.12-.35-8.42.79-12.68l13.99-52.23a66.62 66.62 0 0 1-4.09-10.45c-3.2-10.79-3.65-22.52-.52-34.2l12.42-46.37c5.31-19.8 19.36-34.83 36.89-42.21a64.336 64.336 0 0 1 18.49-4.72l18.13-24.23 32.15-42.97c3.45-4.61 7.19-8.9 11.2-12.84 8-7.89 17.03-14.44 26.74-19.51 4.86-2.54 9.89-4.71 15.05-6.49 10.33-3.58 21.19-5.63 32.24-6.04 11.05-.41 22.31.82 33.43 3.8l122.68 32.87c11.12 2.98 21.48 7.54 30.85 13.43a111.11 111.11 0 0 1 34.69 34.5c8.82 13.88 14.64 29.84 16.68 46.99l6.36 53.29 3.59 30.05a64.49 64.49 0 0 1 22.74 29.93c4.39 11.88 5.29 25.19 1.75 38.39zM255.58 234.34c-18.55-4.97-34.21 4.04-39.17 22.53-4.96 18.49 4.11 34.12 22.65 39.09 18.55 4.97 45.54 15.51 50.49-2.98 4.96-18.49-15.43-53.67-33.97-58.64zm290.61 28.17l-6.36-53.29c-.58-4.87-1.89-9.53-3.82-13.86-5.8-12.99-17.2-23.01-31.42-26.82l-122.68-32.87a48.008 48.008 0 0 0-50.86 17.61l-32.15 42.97 172 46.08 75.29 20.18zm18.49 54.65c-18.55-4.97-53.8 15.31-58.75 33.79-4.95 18.49 23.69 22.86 42.24 27.83 18.55 4.97 34.21-4.04 39.17-22.53 4.95-18.48-4.11-34.12-22.66-39.09z"]},faCarSide:{prefix:"fas",iconName:"car-side",icon:[640,512,[],"f5e4","M544 192h-16L419.22 56.02A64.025 64.025 0 0 0 369.24 32H155.33c-26.17 0-49.7 15.93-59.42 40.23L48 194.26C20.44 201.4 0 226.21 0 256v112c0 8.84 7.16 16 16 16h48c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h48c8.84 0 16-7.16 16-16v-80c0-53.02-42.98-96-96-96zM160 432c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm72-240H116.93l38.4-96H232v96zm48 0V96h89.24l76.8 96H280zm200 240c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]},faCaravan:{prefix:"fas",iconName:"caravan",icon:[640,512,[],"f8ff","M416,208a16,16,0,1,0,16,16A16,16,0,0,0,416,208ZM624,320H576V160A160,160,0,0,0,416,0H64A64,64,0,0,0,0,64V320a64,64,0,0,0,64,64H96a96,96,0,0,0,192,0H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM192,432a48,48,0,1,1,48-48A48.05,48.05,0,0,1,192,432Zm64-240a32,32,0,0,1-32,32H96a32,32,0,0,1-32-32V128A32,32,0,0,1,96,96H224a32,32,0,0,1,32,32ZM448,320H320V128a32,32,0,0,1,32-32h64a32,32,0,0,1,32,32Z"]},faCaretDown:{prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z"]},faCaretLeft:{prefix:"fas",iconName:"caret-left",icon:[192,512,[],"f0d9","M192 127.338v257.324c0 17.818-21.543 26.741-34.142 14.142L29.196 270.142c-7.81-7.81-7.81-20.474 0-28.284l128.662-128.662c12.599-12.6 34.142-3.676 34.142 14.142z"]},faCaretRight:{prefix:"fas",iconName:"caret-right",icon:[192,512,[],"f0da","M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z"]},faCaretSquareDown:{prefix:"fas",iconName:"caret-square-down",icon:[448,512,[],"f150","M448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM92.5 220.5l123 123c4.7 4.7 12.3 4.7 17 0l123-123c7.6-7.6 2.2-20.5-8.5-20.5H101c-10.7 0-16.1 12.9-8.5 20.5z"]},faCaretSquareLeft:{prefix:"fas",iconName:"caret-square-left",icon:[448,512,[],"f191","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM259.515 124.485l-123.03 123.03c-4.686 4.686-4.686 12.284 0 16.971l123.029 123.029c7.56 7.56 20.485 2.206 20.485-8.485V132.971c.001-10.691-12.925-16.045-20.484-8.486z"]},faCaretSquareRight:{prefix:"fas",iconName:"caret-square-right",icon:[448,512,[],"f152","M48 32h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48zm140.485 355.515l123.029-123.029c4.686-4.686 4.686-12.284 0-16.971l-123.029-123.03c-7.56-7.56-20.485-2.206-20.485 8.485v246.059c0 10.691 12.926 16.045 20.485 8.486z"]},faCaretSquareUp:{prefix:"fas",iconName:"caret-square-up",icon:[448,512,[],"f151","M0 432V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48zm355.515-140.485l-123.03-123.03c-4.686-4.686-12.284-4.686-16.971 0L92.485 291.515c-7.56 7.56-2.206 20.485 8.485 20.485h246.059c10.691 0 16.045-12.926 8.486-20.485z"]},faCaretUp:{prefix:"fas",iconName:"caret-up",icon:[320,512,[],"f0d8","M288.662 352H31.338c-17.818 0-26.741-21.543-14.142-34.142l128.662-128.662c7.81-7.81 20.474-7.81 28.284 0l128.662 128.662c12.6 12.599 3.676 34.142-14.142 34.142z"]},faCarrot:{prefix:"fas",iconName:"carrot",icon:[512,512,[],"f787","M298.2 156.6c-52.7-25.7-114.5-10.5-150.2 32.8l55.2 55.2c6.3 6.3 6.3 16.4 0 22.6-3.1 3.1-7.2 4.7-11.3 4.7s-8.2-1.6-11.3-4.7L130.4 217 2.3 479.7c-2.9 6-3.1 13.3 0 19.7 5.4 11.1 18.9 15.7 30 10.3l133.6-65.2-49.2-49.2c-6.3-6.2-6.3-16.4 0-22.6 6.3-6.2 16.4-6.2 22.6 0l57 57 102-49.8c24-11.7 44.5-31.3 57.1-57.1 30.1-61.7 4.5-136.1-57.2-166.2zm92.1-34.9C409.8 81 399.7 32.9 360 0c-50.3 41.7-52.5 107.5-7.9 151.9l8 8c44.4 44.6 110.3 42.4 151.9-7.9-32.9-39.7-81-49.8-121.7-30.3z"]},faCartArrowDown:{prefix:"fas",iconName:"cart-arrow-down",icon:[576,512,[],"f218","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM403.029 192H360v-60c0-6.627-5.373-12-12-12h-24c-6.627 0-12 5.373-12 12v60h-43.029c-10.691 0-16.045 12.926-8.485 20.485l67.029 67.029c4.686 4.686 12.284 4.686 16.971 0l67.029-67.029c7.559-7.559 2.205-20.485-8.486-20.485z"]},faCartPlus:{prefix:"fas",iconName:"cart-plus",icon:[576,512,[],"f217","M504.717 320H211.572l6.545 32h268.418c15.401 0 26.816 14.301 23.403 29.319l-5.517 24.276C523.112 414.668 536 433.828 536 456c0 31.202-25.519 56.444-56.824 55.994-29.823-.429-54.35-24.631-55.155-54.447-.44-16.287 6.085-31.049 16.803-41.548H231.176C241.553 426.165 248 440.326 248 456c0 31.813-26.528 57.431-58.67 55.938-28.54-1.325-51.751-24.385-53.251-52.917-1.158-22.034 10.436-41.455 28.051-51.586L93.883 64H24C10.745 64 0 53.255 0 40V24C0 10.745 10.745 0 24 0h102.529c11.401 0 21.228 8.021 23.513 19.19L159.208 64H551.99c15.401 0 26.816 14.301 23.403 29.319l-47.273 208C525.637 312.246 515.923 320 504.717 320zM408 168h-48v-40c0-8.837-7.163-16-16-16h-16c-8.837 0-16 7.163-16 16v40h-48c-8.837 0-16 7.163-16 16v16c0 8.837 7.163 16 16 16h48v40c0 8.837 7.163 16 16 16h16c8.837 0 16-7.163 16-16v-40h48c8.837 0 16-7.163 16-16v-16c0-8.837-7.163-16-16-16z"]},faCashRegister:{prefix:"fas",iconName:"cash-register",icon:[512,512,[],"f788","M511.1 378.8l-26.7-160c-2.6-15.4-15.9-26.7-31.6-26.7H208v-64h96c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h96v64H59.1c-15.6 0-29 11.3-31.6 26.7L.8 378.7c-.6 3.5-.9 7-.9 10.5V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-90.7c.1-3.5-.2-7-.8-10.5zM280 248c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16zm-32 64h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16zm-32-80c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16zM80 80V48h192v32H80zm40 200h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16zm16 64v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16zm216 112c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16zm24-112c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16zm48-80c0 8.8-7.2 16-16 16h-16c-8.8 0-16-7.2-16-16v-16c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v16z"]},faCat:{prefix:"fas",iconName:"cat",icon:[512,512,[],"f6be","M290.59 192c-20.18 0-106.82 1.98-162.59 85.95V192c0-52.94-43.06-96-96-96-17.67 0-32 14.33-32 32s14.33 32 32 32c17.64 0 32 14.36 32 32v256c0 35.3 28.7 64 64 64h176c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-32l128-96v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V289.86c-10.29 2.67-20.89 4.54-32 4.54-61.81 0-113.52-44.05-125.41-102.4zM448 96h-64l-64-64v134.4c0 53.02 42.98 96 96 96s96-42.98 96-96V32l-64 64zm-72 80c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm80 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},faCertificate:{prefix:"fas",iconName:"certificate",icon:[512,512,[],"f0a3","M458.622 255.92l45.985-45.005c13.708-12.977 7.316-36.039-10.664-40.339l-62.65-15.99 17.661-62.015c4.991-17.838-11.829-34.663-29.661-29.671l-61.994 17.667-15.984-62.671C337.085.197 313.765-6.276 300.99 7.228L256 53.57 211.011 7.229c-12.63-13.351-36.047-7.234-40.325 10.668l-15.984 62.671-61.995-17.667C74.87 57.907 58.056 74.738 63.046 92.572l17.661 62.015-62.65 15.99C.069 174.878-6.31 197.944 7.392 210.915l45.985 45.005-45.985 45.004c-13.708 12.977-7.316 36.039 10.664 40.339l62.65 15.99-17.661 62.015c-4.991 17.838 11.829 34.663 29.661 29.671l61.994-17.667 15.984 62.671c4.439 18.575 27.696 24.018 40.325 10.668L256 458.61l44.989 46.001c12.5 13.488 35.987 7.486 40.325-10.668l15.984-62.671 61.994 17.667c17.836 4.994 34.651-11.837 29.661-29.671l-17.661-62.015 62.65-15.99c17.987-4.302 24.366-27.367 10.664-40.339l-45.984-45.004z"]},faChair:{prefix:"fas",iconName:"chair",icon:[448,512,[],"f6c0","M112 128c0-29.5 16.2-55 40-68.9V256h48V48h48v208h48V59.1c23.8 13.9 40 39.4 40 68.9v128h48V128C384 57.3 326.7 0 256 0h-64C121.3 0 64 57.3 64 128v128h48zm334.3 213.9l-10.7-32c-4.4-13.1-16.6-21.9-30.4-21.9H42.7c-13.8 0-26 8.8-30.4 21.9l-10.7 32C-5.2 362.6 10.2 384 32 384v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384h256v112c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V384c21.8 0 37.2-21.4 30.3-42.1z"]},faChalkboard:{prefix:"fas",iconName:"chalkboard",icon:[640,512,[],"f51b","M96 64h448v352h64V40c0-22.06-17.94-40-40-40H72C49.94 0 32 17.94 32 40v376h64V64zm528 384H480v-64H288v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faChalkboardTeacher:{prefix:"fas",iconName:"chalkboard-teacher",icon:[640,512,[],"f51c","M208 352c-2.39 0-4.78.35-7.06 1.09C187.98 357.3 174.35 360 160 360c-14.35 0-27.98-2.7-40.95-6.91-2.28-.74-4.66-1.09-7.05-1.09C49.94 352-.33 402.48 0 464.62.14 490.88 21.73 512 48 512h224c26.27 0 47.86-21.12 48-47.38.33-62.14-49.94-112.62-112-112.62zm-48-32c53.02 0 96-42.98 96-96s-42.98-96-96-96-96 42.98-96 96 42.98 96 96 96zM592 0H208c-26.47 0-48 22.25-48 49.59V96c23.42 0 45.1 6.78 64 17.8V64h352v288h-64v-64H384v64h-76.24c19.1 16.69 33.12 38.73 39.69 64H592c26.47 0 48-22.25 48-49.59V49.59C640 22.25 618.47 0 592 0z"]},faChargingStation:{prefix:"fas",iconName:"charging-station",icon:[576,512,[],"f5e7","M336 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h320c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm208-320V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-32V80c0-8.84-7.16-16-16-16s-16 7.16-16 16v48h-16c-8.84 0-16 7.16-16 16v32c0 35.76 23.62 65.69 56 75.93v118.49c0 13.95-9.5 26.92-23.26 29.19C431.22 402.5 416 388.99 416 372v-28c0-48.6-39.4-88-88-88h-8V64c0-35.35-28.65-64-64-64H96C60.65 0 32 28.65 32 64v352h288V304h8c22.09 0 40 17.91 40 40v24.61c0 39.67 28.92 75.16 68.41 79.01C481.71 452.05 520 416.41 520 372V251.93c32.38-10.24 56-40.17 56-75.93v-32c0-8.84-7.16-16-16-16h-16zm-283.91 47.76l-93.7 139c-2.2 3.33-6.21 5.24-10.39 5.24-7.67 0-13.47-6.28-11.67-12.92L167.35 224H108c-7.25 0-12.85-5.59-11.89-11.89l16-107C112.9 99.9 117.98 96 124 96h68c7.88 0 13.62 6.54 11.6 13.21L192 160h57.7c9.24 0 15.01 8.78 10.39 15.76z"]},faChartArea:{prefix:"fas",iconName:"chart-area",icon:[512,512,[],"f1fe","M500 384c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v308h436zM372.7 159.5L288 216l-85.3-113.7c-5.1-6.8-15.5-6.3-19.9 1L96 248v104h384l-89.9-187.8c-3.2-6.5-11.4-8.7-17.4-4.7z"]},faChartBar:{prefix:"fas",iconName:"chart-bar",icon:[512,512,[],"f080","M332.8 320h38.4c6.4 0 12.8-6.4 12.8-12.8V172.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v134.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V76.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v230.4c0 6.4 6.4 12.8 12.8 12.8zm-288 0h38.4c6.4 0 12.8-6.4 12.8-12.8v-70.4c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v70.4c0 6.4 6.4 12.8 12.8 12.8zm96 0h38.4c6.4 0 12.8-6.4 12.8-12.8V108.8c0-6.4-6.4-12.8-12.8-12.8h-38.4c-6.4 0-12.8 6.4-12.8 12.8v198.4c0 6.4 6.4 12.8 12.8 12.8zM496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faChartLine:{prefix:"fas",iconName:"chart-line",icon:[512,512,[],"f201","M496 384H64V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v336c0 17.67 14.33 32 32 32h464c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM464 96H345.94c-21.38 0-32.09 25.85-16.97 40.97l32.4 32.4L288 242.75l-73.37-73.37c-12.5-12.5-32.76-12.5-45.25 0l-68.69 68.69c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L192 237.25l73.37 73.37c12.5 12.5 32.76 12.5 45.25 0l96-96 32.4 32.4c15.12 15.12 40.97 4.41 40.97-16.97V112c.01-8.84-7.15-16-15.99-16z"]},faChartPie:{prefix:"fas",iconName:"chart-pie",icon:[544,512,[],"f200","M527.79 288H290.5l158.03 158.03c6.04 6.04 15.98 6.53 22.19.68 38.7-36.46 65.32-85.61 73.13-140.86 1.34-9.46-6.51-17.85-16.06-17.85zm-15.83-64.8C503.72 103.74 408.26 8.28 288.8.04 279.68-.59 272 7.1 272 16.24V240h223.77c9.14 0 16.82-7.68 16.19-16.8zM224 288V50.71c0-9.55-8.39-17.4-17.84-16.06C86.99 51.49-4.1 155.6.14 280.37 4.5 408.51 114.83 513.59 243.03 511.98c50.4-.63 96.97-16.87 135.26-44.03 7.9-5.6 8.42-17.23 1.57-24.08L224 288z"]},faCheck:{prefix:"fas",iconName:"check",icon:[512,512,[],"f00c","M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z"]},faCheckCircle:{prefix:"fas",iconName:"check-circle",icon:[512,512,[],"f058","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"]},faCheckDouble:{prefix:"fas",iconName:"check-double",icon:[512,512,[],"f560","M505 174.8l-39.6-39.6c-9.4-9.4-24.6-9.4-33.9 0L192 374.7 80.6 263.2c-9.4-9.4-24.6-9.4-33.9 0L7 302.9c-9.4 9.4-9.4 24.6 0 34L175 505c9.4 9.4 24.6 9.4 33.9 0l296-296.2c9.4-9.5 9.4-24.7.1-34zm-324.3 106c6.2 6.3 16.4 6.3 22.6 0l208-208.2c6.2-6.3 6.2-16.4 0-22.6L366.1 4.7c-6.2-6.3-16.4-6.3-22.6 0L192 156.2l-55.4-55.5c-6.2-6.3-16.4-6.3-22.6 0L68.7 146c-6.2 6.3-6.2 16.4 0 22.6l112 112.2z"]},faCheckSquare:{prefix:"fas",iconName:"check-square",icon:[448,512,[],"f14a","M400 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zm-204.686-98.059l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.248-16.379-6.249-22.628 0L184 302.745l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.25 16.379 6.25 22.628.001z"]},faCheese:{prefix:"fas",iconName:"cheese",icon:[512,512,[],"f7ef","M0 288v160a32 32 0 0 0 32 32h448a32 32 0 0 0 32-32V288zM299.83 32a32 32 0 0 0-21.13 7L0 256h512c0-119.89-94-217.8-212.17-224z"]},faChess:{prefix:"fas",iconName:"chess",icon:[512,512,[],"f439","M74 208H64a16 16 0 0 0-16 16v16a16 16 0 0 0 16 16h15.94A535.78 535.78 0 0 1 64 384h128a535.78 535.78 0 0 1-15.94-128H192a16 16 0 0 0 16-16v-16a16 16 0 0 0-16-16h-10l33.89-90.38a16 16 0 0 0-15-21.62H144V64h24a8 8 0 0 0 8-8V40a8 8 0 0 0-8-8h-24V8a8 8 0 0 0-8-8h-16a8 8 0 0 0-8 8v24H88a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h24v32H55.09a16 16 0 0 0-15 21.62zm173.16 251.58L224 448v-16a16 16 0 0 0-16-16H48a16 16 0 0 0-16 16v16L8.85 459.58A16 16 0 0 0 0 473.89V496a16 16 0 0 0 16 16h224a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31zm92.77-157.78l-3.29 82.2h126.72l-3.29-82.21 24.6-20.79A32 32 0 0 0 496 256.54V198a6 6 0 0 0-6-6h-26.38a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H373.1a6 6 0 0 0-6 6v26h-24.71v-26a6 6 0 0 0-6-6H310a6 6 0 0 0-6 6v58.6a32 32 0 0 0 11.36 24.4zM384 304a16 16 0 0 1 32 0v32h-32zm119.16 155.58L480 448v-16a16 16 0 0 0-16-16H336a16 16 0 0 0-16 16v16l-23.15 11.58a16 16 0 0 0-8.85 14.31V496a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-22.11a16 16 0 0 0-8.84-14.31z"]},faChessBishop:{prefix:"fas",iconName:"chess-bishop",icon:[320,512,[],"f43a","M8 287.88c0 51.64 22.14 73.83 56 84.6V416h192v-43.52c33.86-10.77 56-33 56-84.6 0-30.61-10.73-67.1-26.69-102.56L185 285.65a8 8 0 0 1-11.31 0l-11.31-11.31a8 8 0 0 1 0-11.31L270.27 155.1c-20.8-37.91-46.47-72.1-70.87-92.59C213.4 59.09 224 47.05 224 32a32 32 0 0 0-32-32h-64a32 32 0 0 0-32 32c0 15 10.6 27.09 24.6 30.51C67.81 106.8 8 214.5 8 287.88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChessBoard:{prefix:"fas",iconName:"chess-board",icon:[512,512,[],"f43c","M255.9.2h-64v64h64zM0 64.17v64h64v-64zM128 .2H64v64h64zm64 255.9v64h64v-64zM0 192.12v64h64v-64zM383.85.2h-64v64h64zm128 0h-64v64h64zM128 256.1H64v64h64zM511.8 448v-64h-64v64zm0-128v-64h-64v64zM383.85 512h64v-64h-64zm128-319.88v-64h-64v64zM128 512h64v-64h-64zM0 512h64v-64H0zm255.9 0h64v-64h-64zM0 320.07v64h64v-64zm319.88-191.92v-64h-64v64zm-64 128h64v-64h-64zm-64 128v64h64v-64zm128-64h64v-64h-64zm0-127.95h64v-64h-64zm0 191.93v64h64v-64zM64 384.05v64h64v-64zm128-255.9v-64h-64v64zm191.92 255.9h64v-64h-64zm-128-191.93v-64h-64v64zm128-127.95v64h64v-64zm-128 255.9v64h64v-64zm-64-127.95H128v64h64zm191.92 64h64v-64h-64zM128 128.15H64v64h64zm0 191.92v64h64v-64z"]},faChessKing:{prefix:"fas",iconName:"chess-king",icon:[448,512,[],"f43f","M400 448H48a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm16-288H256v-48h40a8 8 0 0 0 8-8V56a8 8 0 0 0-8-8h-40V8a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v40h-40a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8h40v48H32a32 32 0 0 0-30.52 41.54L74.56 416h298.88l73.08-214.46A32 32 0 0 0 416 160z"]},faChessKnight:{prefix:"fas",iconName:"chess-knight",icon:[384,512,[],"f441","M19 272.47l40.63 18.06a32 32 0 0 0 24.88.47l12.78-5.12a32 32 0 0 0 18.76-20.5l9.22-30.65a24 24 0 0 1 12.55-15.65L159.94 208v50.33a48 48 0 0 1-26.53 42.94l-57.22 28.65A80 80 0 0 0 32 401.48V416h319.86V224c0-106-85.92-192-191.92-192H12A12 12 0 0 0 0 44a16.9 16.9 0 0 0 1.79 7.58L16 80l-9 9a24 24 0 0 0-7 17v137.21a32 32 0 0 0 19 29.26zM52 128a20 20 0 1 1-20 20 20 20 0 0 1 20-20zm316 320H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChessPawn:{prefix:"fas",iconName:"chess-pawn",icon:[320,512,[],"f443","M105.1 224H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h16v5.49c0 44-4.14 86.6-24 122.51h176c-19.89-35.91-24-78.51-24-122.51V288h16a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-25.1c29.39-18.38 49.1-50.78 49.1-88a104 104 0 0 0-208 0c0 37.22 19.71 69.62 49.1 88zM304 448H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChessQueen:{prefix:"fas",iconName:"chess-queen",icon:[512,512,[],"f445","M256 112a56 56 0 1 0-56-56 56 56 0 0 0 56 56zm176 336H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm72.87-263.84l-28.51-15.92c-7.44-5-16.91-2.46-22.29 4.68a47.59 47.59 0 0 1-47.23 18.23C383.7 186.86 368 164.93 368 141.4a13.4 13.4 0 0 0-13.4-13.4h-38.77c-6 0-11.61 4-12.86 9.91a48 48 0 0 1-93.94 0c-1.25-5.92-6.82-9.91-12.86-9.91H157.4a13.4 13.4 0 0 0-13.4 13.4c0 25.69-19 48.75-44.67 50.49a47.5 47.5 0 0 1-41.54-19.15c-5.28-7.09-14.73-9.45-22.09-4.54l-28.57 16a16 16 0 0 0-5.44 20.47L104.24 416h303.52l102.55-211.37a16 16 0 0 0-5.44-20.47z"]},faChessRook:{prefix:"fas",iconName:"chess-rook",icon:[384,512,[],"f447","M368 32h-56a16 16 0 0 0-16 16v48h-48V48a16 16 0 0 0-16-16h-80a16 16 0 0 0-16 16v48H88.1V48a16 16 0 0 0-16-16H16A16 16 0 0 0 0 48v176l64 32c0 48.33-1.54 95-13.21 160h282.42C321.54 351 320 303.72 320 256l64-32V48a16 16 0 0 0-16-16zM224 320h-64v-64a32 32 0 0 1 64 0zm144 128H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h352a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faChevronCircleDown:{prefix:"fas",iconName:"chevron-circle-down",icon:[512,512,[],"f13a","M504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zM273 369.9l135.5-135.5c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L256 285.1 154.4 183.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L239 369.9c9.4 9.4 24.6 9.4 34 0z"]},faChevronCircleLeft:{prefix:"fas",iconName:"chevron-circle-left",icon:[512,512,[],"f137","M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zM142.1 273l135.5 135.5c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L226.9 256l101.6-101.6c9.4-9.4 9.4-24.6 0-33.9l-17-17c-9.4-9.4-24.6-9.4-33.9 0L142.1 239c-9.4 9.4-9.4 24.6 0 34z"]},faChevronCircleRight:{prefix:"fas",iconName:"chevron-circle-right",icon:[512,512,[],"f138","M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zm113.9 231L234.4 103.5c-9.4-9.4-24.6-9.4-33.9 0l-17 17c-9.4 9.4-9.4 24.6 0 33.9L285.1 256 183.5 357.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L369.9 273c9.4-9.4 9.4-24.6 0-34z"]},faChevronCircleUp:{prefix:"fas",iconName:"chevron-circle-up",icon:[512,512,[],"f139","M8 256C8 119 119 8 256 8s248 111 248 248-111 248-248 248S8 393 8 256zm231-113.9L103.5 277.6c-9.4 9.4-9.4 24.6 0 33.9l17 17c9.4 9.4 24.6 9.4 33.9 0L256 226.9l101.6 101.6c9.4 9.4 24.6 9.4 33.9 0l17-17c9.4-9.4 9.4-24.6 0-33.9L273 142.1c-9.4-9.4-24.6-9.4-34 0z"]},faChevronDown:{prefix:"fas",iconName:"chevron-down",icon:[448,512,[],"f078","M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z"]},faChevronLeft:{prefix:"fas",iconName:"chevron-left",icon:[320,512,[],"f053","M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z"]},faChevronRight:{prefix:"fas",iconName:"chevron-right",icon:[320,512,[],"f054","M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z"]},faChevronUp:{prefix:"fas",iconName:"chevron-up",icon:[448,512,[],"f077","M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z"]},faChild:{prefix:"fas",iconName:"child",icon:[384,512,[],"f1ae","M120 72c0-39.765 32.235-72 72-72s72 32.235 72 72c0 39.764-32.235 72-72 72s-72-32.236-72-72zm254.627 1.373c-12.496-12.497-32.758-12.497-45.254 0L242.745 160H141.254L54.627 73.373c-12.496-12.497-32.758-12.497-45.254 0-12.497 12.497-12.497 32.758 0 45.255L104 213.254V480c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V368h16v112c0 17.673 14.327 32 32 32h16c17.673 0 32-14.327 32-32V213.254l94.627-94.627c12.497-12.497 12.497-32.757 0-45.254z"]},faChurch:{prefix:"fas",iconName:"church",icon:[640,512,[],"f51d","M464.46 246.68L352 179.2V128h48c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-48V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v48h-48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v51.2l-112.46 67.48A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.65-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.54A32.024 32.024 0 0 0 0 395.96zm620.61-29.42L512 320v192h112c8.84 0 16-7.16 16-16V395.96c0-12.8-7.63-24.37-19.39-29.42z"]},faCircle:{prefix:"fas",iconName:"circle",icon:[512,512,[],"f111","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8z"]},faCircleNotch:{prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M288 39.056v16.659c0 10.804 7.281 20.159 17.686 23.066C383.204 100.434 440 171.518 440 256c0 101.689-82.295 184-184 184-101.689 0-184-82.295-184-184 0-84.47 56.786-155.564 134.312-177.219C216.719 75.874 224 66.517 224 55.712V39.064c0-15.709-14.834-27.153-30.046-23.234C86.603 43.482 7.394 141.206 8.003 257.332c.72 137.052 111.477 246.956 248.531 246.667C393.255 503.711 504 392.788 504 256c0-115.633-79.14-212.779-186.211-240.236C302.678 11.889 288 23.456 288 39.056z"]},faCity:{prefix:"fas",iconName:"city",icon:[640,512,[],"f64f","M616 192H480V24c0-13.26-10.74-24-24-24H312c-13.26 0-24 10.74-24 24v72h-64V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v80h-64V16c0-8.84-7.16-16-16-16H80c-8.84 0-16 7.16-16 16v80H24c-13.26 0-24 10.74-24 24v360c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V216c0-13.26-10.75-24-24-24zM128 404c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12H76c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm128 192c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12V76c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm160 288c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40zm0-96c0 6.63-5.37 12-12 12h-40c-6.63 0-12-5.37-12-12v-40c0-6.63 5.37-12 12-12h40c6.63 0 12 5.37 12 12v40z"]},faClinicMedical:{prefix:"fas",iconName:"clinic-medical",icon:[576,512,[],"f7f2","M288 115L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2zm96 261a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8zm186.69-139.72l-255.94-226a39.85 39.85 0 0 0-53.45 0l-256 226a16 16 0 0 0-1.21 22.6L25.5 282.7a16 16 0 0 0 22.6 1.21L277.42 81.63a16 16 0 0 1 21.17 0L527.91 283.9a16 16 0 0 0 22.6-1.21l21.4-23.82a16 16 0 0 0-1.22-22.59z"]},faClipboard:{prefix:"fas",iconName:"clipboard",icon:[384,512,[],"f328","M384 112v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h80c0-35.29 28.71-64 64-64s64 28.71 64 64h80c26.51 0 48 21.49 48 48zM192 40c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24m96 114v-20a6 6 0 0 0-6-6H102a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6h180a6 6 0 0 0 6-6z"]},faClipboardCheck:{prefix:"fas",iconName:"clipboard-check",icon:[384,512,[],"f46c","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm121.2 231.8l-143 141.8c-4.7 4.7-12.3 4.6-17-.1l-82.6-83.3c-4.7-4.7-4.6-12.3.1-17L99.1 285c4.7-4.7 12.3-4.6 17 .1l46 46.4 106-105.2c4.7-4.7 12.3-4.6 17 .1l28.2 28.4c4.7 4.8 4.6 12.3-.1 17z"]},faClipboardList:{prefix:"fas",iconName:"clipboard-list",icon:[384,512,[],"f46d","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM96 424c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0-96c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm96-192c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm128 368c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16z"]},faClock:{prefix:"fas",iconName:"clock",icon:[512,512,[],"f017","M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm92.49,313h0l-20,25a16,16,0,0,1-22.49,2.5h0l-67-49.72a40,40,0,0,1-15-31.23V112a16,16,0,0,1,16-16h32a16,16,0,0,1,16,16V256l58,42.5A16,16,0,0,1,348.49,321Z"]},faClone:{prefix:"fas",iconName:"clone",icon:[512,512,[],"f24d","M464 0c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48H176c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h288M176 416c-44.112 0-80-35.888-80-80V128H48c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h288c26.51 0 48-21.49 48-48v-48H176z"]},faClosedCaptioning:{prefix:"fas",iconName:"closed-captioning",icon:[512,512,[],"f20a","M464 64H48C21.5 64 0 85.5 0 112v288c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM218.1 287.7c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.6 56.8-172.8 32.1-172.8-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7l-17.5 30.5c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2.1 48 51.1 70.5 92.3 32.6zm190.4 0c2.8-2.5 7.1-2.1 9.2.9l19.5 27.7c1.7 2.4 1.5 5.6-.5 7.7-53.5 56.9-172.7 32.1-172.7-67.9 0-97.3 121.7-119.5 172.5-70.1 2.1 2 2.5 3.2 1 5.7L420 222.2c-1.9 3.1-6.2 4-9.1 1.7-40.8-32-94.6-14.9-94.6 31.2 0 48 51 70.5 92.2 32.6z"]},faCloud:{prefix:"fas",iconName:"cloud",icon:[640,512,[],"f0c2","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4z"]},faCloudDownloadAlt:{prefix:"fas",iconName:"cloud-download-alt",icon:[640,512,[],"f381","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zm-132.9 88.7L299.3 420.7c-6.2 6.2-16.4 6.2-22.6 0L171.3 315.3c-10.1-10.1-2.9-27.3 11.3-27.3H248V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v112h65.4c14.2 0 21.4 17.2 11.3 27.3z"]},faCloudMeatball:{prefix:"fas",iconName:"cloud-meatball",icon:[512,512,[],"f73b","M48 352c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm416 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm-119 11.1c4.6-14.5 1.6-30.8-9.8-42.3-11.5-11.5-27.8-14.4-42.3-9.9-7-13.5-20.7-23-36.9-23s-29.9 9.5-36.9 23c-14.5-4.6-30.8-1.6-42.3 9.9-11.5 11.5-14.4 27.8-9.9 42.3-13.5 7-23 20.7-23 36.9s9.5 29.9 23 36.9c-4.6 14.5-1.6 30.8 9.9 42.3 8.2 8.2 18.9 12.3 29.7 12.3 4.3 0 8.5-1.1 12.6-2.5 7 13.5 20.7 23 36.9 23s29.9-9.5 36.9-23c4.1 1.3 8.3 2.5 12.6 2.5 10.8 0 21.5-4.1 29.7-12.3 11.5-11.5 14.4-27.8 9.8-42.3 13.5-7 23-20.7 23-36.9s-9.5-29.9-23-36.9zM512 224c0-53-43-96-96-96-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h43.4c3.6-8 8.4-15.4 14.8-21.8 13.5-13.5 31.5-21.1 50.8-21.3 13.5-13.2 31.7-20.9 51-20.9s37.5 7.7 51 20.9c19.3.2 37.3 7.8 50.8 21.3 6.4 6.4 11.3 13.8 14.8 21.8H416c53 0 96-43 96-96z"]},faCloudMoon:{prefix:"fas",iconName:"cloud-moon",icon:[576,512,[],"f6c3","M342.8 352.7c5.7-9.6 9.2-20.7 9.2-32.7 0-35.3-28.7-64-64-64-17.2 0-32.8 6.9-44.3 17.9-16.3-29.6-47.5-49.9-83.7-49.9-53 0-96 43-96 96 0 2 .5 3.8.6 5.7C27.1 338.8 0 374.1 0 416c0 53 43 96 96 96h240c44.2 0 80-35.8 80-80 0-41.9-32.3-75.8-73.2-79.3zm222.5-54.3c-93.1 17.7-178.5-53.7-178.5-147.7 0-54.2 29-104 76.1-130.8 7.3-4.1 5.4-15.1-2.8-16.7C448.4 1.1 436.7 0 425 0 319.1 0 233.1 85.9 233.1 192c0 8.5.7 16.8 1.8 25 5.9 4.3 11.6 8.9 16.7 14.2 11.4-4.7 23.7-7.2 36.4-7.2 52.9 0 96 43.1 96 96 0 3.6-.2 7.2-.6 10.7 23.6 10.8 42.4 29.5 53.5 52.6 54.4-3.4 103.7-29.3 137.1-70.4 5.3-6.5-.5-16.1-8.7-14.5z"]},faCloudMoonRain:{prefix:"fas",iconName:"cloud-moon-rain",icon:[576,512,[],"f73c","M350.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C27.6 232.9 0 265.2 0 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm217.4-1.7c-70.4 13.3-135-40.3-135-110.8 0-40.6 21.9-78 57.5-98.1 5.5-3.1 4.1-11.4-2.1-12.5C479.6.8 470.7 0 461.8 0c-77.9 0-141.1 61.2-144.4 137.9 26.7 11.9 48.2 33.8 58.9 61.7 37.1 14.3 64 47.4 70.2 86.8 5.1.5 10 1.5 15.2 1.5 44.7 0 85.6-20.2 112.6-53.3 4.2-4.8-.2-12-6.4-10.8zM364.5 418.1c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]},faCloudRain:{prefix:"fas",iconName:"cloud-rain",icon:[512,512,[],"f73d","M416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.1 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96zM88 374.2c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0zm160 0c-12.8 44.4-40 56.4-40 87.7 0 27.7 21.5 50.1 48 50.1s48-22.4 48-50.1c0-31.4-27.2-43.1-40-87.7-2.2-8.1-13.5-8.5-16 0z"]},faCloudShowersHeavy:{prefix:"fas",iconName:"cloud-showers-heavy",icon:[512,512,[],"f740","M183.9 370.1c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-192 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm384 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zm-96 0c-7.6-4.4-17.4-1.8-21.8 6l-64 112c-4.4 7.7-1.7 17.5 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l64-112c4.4-7.6 1.7-17.4-6-21.8zM416 128c-.6 0-1.1.2-1.6.2 1.1-5.2 1.6-10.6 1.6-16.2 0-44.2-35.8-80-80-80-24.6 0-46.3 11.3-61 28.8C256.4 24.8 219.3 0 176 0 114.2 0 64 50.1 64 112c0 7.3.8 14.3 2.1 21.2C27.8 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96s-43-96-96-96z"]},faCloudSun:{prefix:"fas",iconName:"cloud-sun",icon:[640,512,[],"f6c4","M575.2 325.7c.2-1.9.8-3.7.8-5.6 0-35.3-28.7-64-64-64-12.6 0-24.2 3.8-34.1 10-17.6-38.8-56.5-66-101.9-66-61.8 0-112 50.1-112 112 0 3 .7 5.8.9 8.7-49.6 3.7-88.9 44.7-88.9 95.3 0 53 43 96 96 96h272c53 0 96-43 96-96 0-42.1-27.2-77.4-64.8-90.4zm-430.4-22.6c-43.7-43.7-43.7-114.7 0-158.3 43.7-43.7 114.7-43.7 158.4 0 9.7 9.7 16.9 20.9 22.3 32.7 9.8-3.7 20.1-6 30.7-7.5L386 81.1c4-11.9-7.3-23.1-19.2-19.2L279 91.2 237.5 8.4C232-2.8 216-2.8 210.4 8.4L169 91.2 81.1 61.9C69.3 58 58 69.3 61.9 81.1l29.3 87.8-82.8 41.5c-11.2 5.6-11.2 21.5 0 27.1l82.8 41.4-29.3 87.8c-4 11.9 7.3 23.1 19.2 19.2l76.1-25.3c6.1-12.4 14-23.7 23.6-33.5-13.1-5.4-25.4-13.4-36-24zm-4.8-79.2c0 40.8 29.3 74.8 67.9 82.3 8-4.7 16.3-8.8 25.2-11.7 5.4-44.3 31-82.5 67.4-105C287.3 160.4 258 140 224 140c-46.3 0-84 37.6-84 83.9z"]},faCloudSunRain:{prefix:"fas",iconName:"cloud-sun-rain",icon:[576,512,[],"f743","M510.5 225.5c-6.9-37.2-39.3-65.5-78.5-65.5-12.3 0-23.9 3-34.3 8-17.4-24.1-45.6-40-77.7-40-53 0-96 43-96 96 0 .5.2 1.1.2 1.6C187.6 233 160 265.2 160 304c0 44.2 35.8 80 80 80h256c44.2 0 80-35.8 80-80 0-39.2-28.2-71.7-65.5-78.5zm-386.4 34.4c-37.4-37.4-37.4-98.3 0-135.8 34.6-34.6 89.1-36.8 126.7-7.4 20-12.9 43.6-20.7 69.2-20.7.7 0 1.3.2 2 .2l8.9-26.7c3.4-10.2-6.3-19.8-16.5-16.4l-75.3 25.1-35.5-71c-4.8-9.6-18.5-9.6-23.3 0l-35.5 71-75.3-25.1c-10.2-3.4-19.8 6.3-16.4 16.5l25.1 75.3-71 35.5c-9.6 4.8-9.6 18.5 0 23.3l71 35.5-25.1 75.3c-3.4 10.2 6.3 19.8 16.5 16.5l59.2-19.7c-.2-2.4-.7-4.7-.7-7.2 0-12.5 2.3-24.5 6.2-35.9-3.6-2.7-7.1-5.2-10.2-8.3zm69.8-58c4.3-24.5 15.8-46.4 31.9-64-9.8-6.2-21.4-9.9-33.8-9.9-35.3 0-64 28.7-64 64 0 18.7 8.2 35.4 21.1 47.1 11.3-15.9 26.6-28.9 44.8-37.2zm330.6 216.2c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8zm-96 0c-7.6-4.3-17.4-1.8-21.8 6l-36.6 64c-4.4 7.7-1.7 17.4 6 21.8 2.5 1.4 5.2 2.1 7.9 2.1 5.5 0 10.9-2.9 13.9-8.1l36.6-64c4.3-7.7 1.7-17.4-6-21.8z"]},faCloudUploadAlt:{prefix:"fas",iconName:"cloud-upload-alt",icon:[640,512,[],"f382","M537.6 226.6c4.1-10.7 6.4-22.4 6.4-34.6 0-53-43-96-96-96-19.7 0-38.1 6-53.3 16.2C367 64.2 315.3 32 256 32c-88.4 0-160 71.6-160 160 0 2.7.1 5.4.2 8.1C40.2 219.8 0 273.2 0 336c0 79.5 64.5 144 144 144h368c70.7 0 128-57.3 128-128 0-61.9-44-113.6-102.4-125.4zM393.4 288H328v112c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V288h-65.4c-14.3 0-21.4-17.2-11.3-27.3l105.4-105.4c6.2-6.2 16.4-6.2 22.6 0l105.4 105.4c10.1 10.1 2.9 27.3-11.3 27.3z"]},faCocktail:{prefix:"fas",iconName:"cocktail",icon:[576,512,[],"f561","M296 464h-56V338.78l168.74-168.73c15.52-15.52 4.53-42.05-17.42-42.05H24.68c-21.95 0-32.94 26.53-17.42 42.05L176 338.78V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM432 0c-62.61 0-115.35 40.2-135.18 96h52.54c16.65-28.55 47.27-48 82.64-48 52.93 0 96 43.06 96 96s-43.07 96-96 96c-14.04 0-27.29-3.2-39.32-8.64l-35.26 35.26C379.23 279.92 404.59 288 432 288c79.53 0 144-64.47 144-144S511.53 0 432 0z"]},faCode:{prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M278.9 511.5l-61-17.7c-6.4-1.8-10-8.5-8.2-14.9L346.2 8.7c1.8-6.4 8.5-10 14.9-8.2l61 17.7c6.4 1.8 10 8.5 8.2 14.9L293.8 503.3c-1.9 6.4-8.5 10.1-14.9 8.2zm-114-112.2l43.5-46.4c4.6-4.9 4.3-12.7-.8-17.2L117 256l90.6-79.7c5.1-4.5 5.5-12.3.8-17.2l-43.5-46.4c-4.5-4.8-12.1-5.1-17-.5L3.8 247.2c-5.1 4.7-5.1 12.8 0 17.5l144.1 135.1c4.9 4.6 12.5 4.4 17-.5zm327.2.6l144.1-135.1c5.1-4.7 5.1-12.8 0-17.5L492.1 112.1c-4.8-4.5-12.4-4.3-17 .5L431.6 159c-4.6 4.9-4.3 12.7.8 17.2L523 256l-90.6 79.7c-5.1 4.5-5.5 12.3-.8 17.2l43.5 46.4c4.5 4.9 12.1 5.1 17 .6z"]},faCodeBranch:{prefix:"fas",iconName:"code-branch",icon:[384,512,[],"f126","M384 144c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.4 24.3 67.1 57.5 76.8-.6 16.1-4.2 28.5-11 36.9-15.4 19.2-49.3 22.4-85.2 25.7-28.2 2.6-57.4 5.4-81.3 16.9v-144c32.5-10.2 56-40.5 56-76.3 0-44.2-35.8-80-80-80S0 35.8 0 80c0 35.8 23.5 66.1 56 76.3v199.3C23.5 365.9 0 396.2 0 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-34-21.2-63.1-51.2-74.6 3.1-5.2 7.8-9.8 14.9-13.4 16.2-8.2 40.4-10.4 66.1-12.8 42.2-3.9 90-8.4 118.2-43.4 14-17.4 21.1-39.8 21.6-67.9 31.6-10.8 54.4-40.7 54.4-75.9zM80 64c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16zm0 384c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm224-320c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16 7.2-16 16-16z"]},faCoffee:{prefix:"fas",iconName:"coffee",icon:[640,512,[],"f0f4","M192 384h192c53 0 96-43 96-96h32c70.6 0 128-57.4 128-128S582.6 32 512 32H120c-13.3 0-24 10.7-24 24v232c0 53 43 96 96 96zM512 96c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32V96h32zm47.7 384H48.3c-47.6 0-61-64-36-64h583.3c25 0 11.8 64-35.9 64z"]},faCog:{prefix:"fas",iconName:"cog",icon:[512,512,[],"f013","M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faCogs:{prefix:"fas",iconName:"cogs",icon:[640,512,[],"f085","M512.1 191l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0L552 6.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zm-10.5-58.8c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.7-82.4 14.3-52.8 52.8zM386.3 286.1l33.7 16.8c10.1 5.8 14.5 18.1 10.5 29.1-8.9 24.2-26.4 46.4-42.6 65.8-7.4 8.9-20.2 11.1-30.3 5.3l-29.1-16.8c-16 13.7-34.6 24.6-54.9 31.7v33.6c0 11.6-8.3 21.6-19.7 23.6-24.6 4.2-50.4 4.4-75.9 0-11.5-2-20-11.9-20-23.6V418c-20.3-7.2-38.9-18-54.9-31.7L74 403c-10 5.8-22.9 3.6-30.3-5.3-16.2-19.4-33.3-41.6-42.2-65.7-4-10.9.4-23.2 10.5-29.1l33.3-16.8c-3.9-20.9-3.9-42.4 0-63.4L12 205.8c-10.1-5.8-14.6-18.1-10.5-29 8.9-24.2 26-46.4 42.2-65.8 7.4-8.9 20.2-11.1 30.3-5.3l29.1 16.8c16-13.7 34.6-24.6 54.9-31.7V57.1c0-11.5 8.2-21.5 19.6-23.5 24.6-4.2 50.5-4.4 76-.1 11.5 2 20 11.9 20 23.6v33.6c20.3 7.2 38.9 18 54.9 31.7l29.1-16.8c10-5.8 22.9-3.6 30.3 5.3 16.2 19.4 33.2 41.6 42.1 65.8 4 10.9.1 23.2-10 29.1l-33.7 16.8c3.9 21 3.9 42.5 0 63.5zm-117.6 21.1c59.2-77-28.7-164.9-105.7-105.7-59.2 77 28.7 164.9 105.7 105.7zm243.4 182.7l-8.2 14.3c-3 5.3-9.4 7.5-15.1 5.4-11.8-4.4-22.6-10.7-32.1-18.6-4.6-3.8-5.8-10.5-2.8-15.7l8.2-14.3c-6.9-8-12.3-17.3-15.9-27.4h-16.5c-6 0-11.2-4.3-12.2-10.3-2-12-2.1-24.6 0-37.1 1-6 6.2-10.4 12.2-10.4h16.5c3.6-10.1 9-19.4 15.9-27.4l-8.2-14.3c-3-5.2-1.9-11.9 2.8-15.7 9.5-7.9 20.4-14.2 32.1-18.6 5.7-2.1 12.1.1 15.1 5.4l8.2 14.3c10.5-1.9 21.2-1.9 31.7 0l8.2-14.3c3-5.3 9.4-7.5 15.1-5.4 11.8 4.4 22.6 10.7 32.1 18.6 4.6 3.8 5.8 10.5 2.8 15.7l-8.2 14.3c6.9 8 12.3 17.3 15.9 27.4h16.5c6 0 11.2 4.3 12.2 10.3 2 12 2.1 24.6 0 37.1-1 6-6.2 10.4-12.2 10.4h-16.5c-3.6 10.1-9 19.4-15.9 27.4l8.2 14.3c3 5.2 1.9 11.9-2.8 15.7-9.5 7.9-20.4 14.2-32.1 18.6-5.7 2.1-12.1-.1-15.1-5.4l-8.2-14.3c-10.4 1.9-21.2 1.9-31.7 0zM501.6 431c38.5 29.6 82.4-14.3 52.8-52.8-38.5-29.6-82.4 14.3-52.8 52.8z"]},faCoins:{prefix:"fas",iconName:"coins",icon:[512,512,[],"f51e","M0 405.3V448c0 35.3 86 64 192 64s192-28.7 192-64v-42.7C342.7 434.4 267.2 448 192 448S41.3 434.4 0 405.3zM320 128c106 0 192-28.7 192-64S426 0 320 0 128 28.7 128 64s86 64 192 64zM0 300.4V352c0 35.3 86 64 192 64s192-28.7 192-64v-51.6c-41.3 34-116.9 51.6-192 51.6S41.3 334.4 0 300.4zm416 11c57.3-11.1 96-31.7 96-55.4v-42.7c-23.2 16.4-57.3 27.6-96 34.5v63.6zM192 160C86 160 0 195.8 0 240s86 80 192 80 192-35.8 192-80-86-80-192-80zm219.3 56.3c60-10.8 100.7-32 100.7-56.3v-42.7c-35.5 25.1-96.5 38.6-160.7 41.8 29.5 14.3 51.2 33.5 60 57.2z"]},faColumns:{prefix:"fas",iconName:"columns",icon:[512,512,[],"f0db","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64V160h160v256zm224 0H288V160h160v256z"]},faComment:{prefix:"fas",iconName:"comment",icon:[512,512,[],"f075","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32z"]},faCommentAlt:{prefix:"fas",iconName:"comment-alt",icon:[512,512,[],"f27a","M448 0H64C28.7 0 0 28.7 0 64v288c0 35.3 28.7 64 64 64h96v84c0 9.8 11.2 15.5 19.1 9.7L304 416h144c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64z"]},faCommentDollar:{prefix:"fas",iconName:"comment-dollar",icon:[512,512,[],"f651","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95.01 57.02 130.74C44.46 421.05 2.7 465.97 2.2 466.5A7.995 7.995 0 0 0 8 480c66.26 0 115.99-31.75 140.6-51.38C181.29 440.93 217.59 448 256 448c141.38 0 256-93.12 256-208S397.38 32 256 32zm24 302.44V352c0 8.84-7.16 16-16 16h-16c-8.84 0-16-7.16-16-16v-17.73c-11.42-1.35-22.28-5.19-31.78-11.46-6.22-4.11-6.82-13.11-1.55-18.38l17.52-17.52c3.74-3.74 9.31-4.24 14.11-2.03 3.18 1.46 6.66 2.22 10.26 2.22h32.78c4.66 0 8.44-3.78 8.44-8.42 0-3.75-2.52-7.08-6.12-8.11l-50.07-14.3c-22.25-6.35-40.01-24.71-42.91-47.67-4.05-32.07 19.03-59.43 49.32-63.05V128c0-8.84 7.16-16 16-16h16c8.84 0 16 7.16 16 16v17.73c11.42 1.35 22.28 5.19 31.78 11.46 6.22 4.11 6.82 13.11 1.55 18.38l-17.52 17.52c-3.74 3.74-9.31 4.24-14.11 2.03a24.516 24.516 0 0 0-10.26-2.22h-32.78c-4.66 0-8.44 3.78-8.44 8.42 0 3.75 2.52 7.08 6.12 8.11l50.07 14.3c22.25 6.36 40.01 24.71 42.91 47.67 4.05 32.06-19.03 59.42-49.32 63.04z"]},faCommentDots:{prefix:"fas",iconName:"comment-dots",icon:[512,512,[],"f4ad","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7S4.8 480 8 480c66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128 272c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faCommentMedical:{prefix:"fas",iconName:"comment-medical",icon:[512,512,[],"f7f5","M256 32C114.62 32 0 125.12 0 240c0 49.56 21.41 95 57 130.74C44.46 421.05 2.7 466 2.2 466.5A8 8 0 0 0 8 480c66.26 0 116-31.75 140.6-51.38A304.66 304.66 0 0 0 256 448c141.39 0 256-93.12 256-208S397.39 32 256 32zm96 232a8 8 0 0 1-8 8h-56v56a8 8 0 0 1-8 8h-48a8 8 0 0 1-8-8v-56h-56a8 8 0 0 1-8-8v-48a8 8 0 0 1 8-8h56v-56a8 8 0 0 1 8-8h48a8 8 0 0 1 8 8v56h56a8 8 0 0 1 8 8z"]},faCommentSlash:{prefix:"fas",iconName:"comment-slash",icon:[640,512,[],"f4b3","M64 240c0 49.6 21.4 95 57 130.7-12.6 50.3-54.3 95.2-54.8 95.8-2.2 2.3-2.8 5.7-1.5 8.7 1.3 2.9 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 27.4 0 53.7-3.6 78.4-10L72.9 186.4c-5.6 17.1-8.9 35-8.9 53.6zm569.8 218.1l-114.4-88.4C554.6 334.1 576 289.2 576 240c0-114.9-114.6-208-256-208-65.1 0-124.2 20.1-169.4 52.7L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]},faComments:{prefix:"fas",iconName:"comments",icon:[576,512,[],"f086","M416 192c0-88.4-93.1-160-208-160S0 103.6 0 192c0 34.3 14.1 65.9 38 92-13.4 30.2-35.5 54.2-35.8 54.5-2.2 2.3-2.8 5.7-1.5 8.7S4.8 352 8 352c36.6 0 66.9-12.3 88.7-25 32.2 15.7 70.3 25 111.3 25 114.9 0 208-71.6 208-160zm122 220c23.9-26 38-57.7 38-92 0-66.9-53.5-124.2-129.3-148.1.9 6.6 1.3 13.3 1.3 20.1 0 105.9-107.7 192-240 192-10.8 0-21.3-.8-31.7-1.9C207.8 439.6 281.8 480 368 480c41 0 79.1-9.2 111.3-25 21.8 12.7 52.1 25 88.7 25 3.2 0 6.1-1.9 7.3-4.8 1.3-2.9.7-6.3-1.5-8.7-.3-.3-22.4-24.2-35.8-54.5z"]},faCommentsDollar:{prefix:"fas",iconName:"comments-dollar",icon:[576,512,[],"f653","M416 192c0-88.37-93.12-160-208-160S0 103.63 0 192c0 34.27 14.13 65.95 37.97 91.98C24.61 314.22 2.52 338.16 2.2 338.5A7.995 7.995 0 0 0 8 352c36.58 0 66.93-12.25 88.73-24.98C128.93 342.76 167.02 352 208 352c114.88 0 208-71.63 208-160zm-224 96v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V96c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07V288c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm346.01 123.99C561.87 385.96 576 354.27 576 320c0-66.94-53.49-124.2-129.33-148.07.86 6.6 1.33 13.29 1.33 20.07 0 105.87-107.66 192-240 192-10.78 0-21.32-.77-31.73-1.88C207.8 439.63 281.77 480 368 480c40.98 0 79.07-9.24 111.27-24.98C501.07 467.75 531.42 480 568 480c3.2 0 6.09-1.91 7.34-4.84 1.27-2.94.66-6.34-1.55-8.67-.31-.33-22.42-24.24-35.78-54.5z"]},faCompactDisc:{prefix:"fas",iconName:"compact-disc",icon:[496,512,[],"f51f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 256H56c0-105.9 86.1-192 192-192v32c-88.2 0-160 71.8-160 160zm160 96c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32z"]},faCompass:{prefix:"fas",iconName:"compass",icon:[496,512,[],"f14e","M225.38 233.37c-12.5 12.5-12.5 32.76 0 45.25 12.49 12.5 32.76 12.5 45.25 0 12.5-12.5 12.5-32.76 0-45.25-12.5-12.49-32.76-12.49-45.25 0zM248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm126.14 148.05L308.17 300.4a31.938 31.938 0 0 1-15.77 15.77l-144.34 65.97c-16.65 7.61-33.81-9.55-26.2-26.2l65.98-144.35a31.938 31.938 0 0 1 15.77-15.77l144.34-65.97c16.65-7.6 33.8 9.55 26.19 26.2z"]},faCompress:{prefix:"fas",iconName:"compress",icon:[448,512,[],"f066","M436 192H312c-13.3 0-24-10.7-24-24V44c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v84h84c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12zm-276-24V44c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v84H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24zm0 300V344c0-13.3-10.7-24-24-24H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12zm192 0v-84h84c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12H312c-13.3 0-24 10.7-24 24v124c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]},faCompressAlt:{prefix:"fas",iconName:"compress-alt",icon:[448,512,[],"f422","M4.686 427.314L104 328l-32.922-31.029C55.958 281.851 66.666 256 88.048 256h112C213.303 256 224 266.745 224 280v112c0 21.382-25.803 32.09-40.922 16.971L152 376l-99.314 99.314c-6.248 6.248-16.379 6.248-22.627 0L4.686 449.941c-6.248-6.248-6.248-16.379 0-22.627zM443.314 84.686L344 184l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C234.697 256 224 245.255 224 232V120c0-21.382 25.803-32.09 40.922-16.971L296 136l99.314-99.314c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.248 6.248 6.248 16.379 0 22.627z"]},faCompressArrowsAlt:{prefix:"fas",iconName:"compress-arrows-alt",icon:[512,512,[],"f78c","M200 288H88c-21.4 0-32.1 25.8-17 41l32.9 31-99.2 99.3c-6.2 6.2-6.2 16.4 0 22.6l25.4 25.4c6.2 6.2 16.4 6.2 22.6 0L152 408l31.1 33c15.1 15.1 40.9 4.4 40.9-17V312c0-13.3-10.7-24-24-24zm112-64h112c21.4 0 32.1-25.9 17-41l-33-31 99.3-99.3c6.2-6.2 6.2-16.4 0-22.6L481.9 4.7c-6.2-6.2-16.4-6.2-22.6 0L360 104l-31.1-33C313.8 55.9 288 66.6 288 88v112c0 13.3 10.7 24 24 24zm96 136l33-31.1c15.1-15.1 4.4-40.9-17-40.9H312c-13.3 0-24 10.7-24 24v112c0 21.4 25.9 32.1 41 17l31-32.9 99.3 99.3c6.2 6.2 16.4 6.2 22.6 0l25.4-25.4c6.2-6.2 6.2-16.4 0-22.6L408 360zM183 71.1L152 104 52.7 4.7c-6.2-6.2-16.4-6.2-22.6 0L4.7 30.1c-6.2 6.2-6.2 16.4 0 22.6L104 152l-33 31.1C55.9 198.2 66.6 224 88 224h112c13.3 0 24-10.7 24-24V88c0-21.3-25.9-32-41-16.9z"]},faConciergeBell:{prefix:"fas",iconName:"concierge-bell",icon:[512,512,[],"f562","M288 130.54V112h16c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16h-96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h16v18.54C115.49 146.11 32 239.18 32 352h448c0-112.82-83.49-205.89-192-221.46zM496 384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faCookie:{prefix:"fas",iconName:"cookie",icon:[512,512,[],"f563","M510.37 254.79l-12.08-76.26a132.493 132.493 0 0 0-37.16-72.95l-54.76-54.75c-19.73-19.72-45.18-32.7-72.71-37.05l-76.7-12.15c-27.51-4.36-55.69.11-80.52 12.76L107.32 49.6a132.25 132.25 0 0 0-57.79 57.8l-35.1 68.88a132.602 132.602 0 0 0-12.82 80.94l12.08 76.27a132.493 132.493 0 0 0 37.16 72.95l54.76 54.75a132.087 132.087 0 0 0 72.71 37.05l76.7 12.14c27.51 4.36 55.69-.11 80.52-12.75l69.12-35.21a132.302 132.302 0 0 0 57.79-57.8l35.1-68.87c12.71-24.96 17.2-53.3 12.82-80.96zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faCookieBite:{prefix:"fas",iconName:"cookie-bite",icon:[512,512,[],"f564","M510.52 255.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45-27.26-4.14-55.13.3-79.72 12.82l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.27a132.521 132.521 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.15c27.51 4.36 55.7-.11 80.53-12.76l69.13-35.21a132.273 132.273 0 0 0 57.79-57.81l35.1-68.88c12.56-24.64 17.01-52.58 12.91-79.91zM176 368c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm32-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm160 128c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faCopy:{prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z"]},faCopyright:{prefix:"fas",iconName:"copyright",icon:[512,512,[],"f1f9","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm117.134 346.753c-1.592 1.867-39.776 45.731-109.851 45.731-84.692 0-144.484-63.26-144.484-145.567 0-81.303 62.004-143.401 143.762-143.401 66.957 0 101.965 37.315 103.422 38.904a12 12 0 0 1 1.238 14.623l-22.38 34.655c-4.049 6.267-12.774 7.351-18.234 2.295-.233-.214-26.529-23.88-61.88-23.88-46.116 0-73.916 33.575-73.916 76.082 0 39.602 25.514 79.692 74.277 79.692 38.697 0 65.28-28.338 65.544-28.625 5.132-5.565 14.059-5.033 18.508 1.053l24.547 33.572a12.001 12.001 0 0 1-.553 14.866z"]},faCouch:{prefix:"fas",iconName:"couch",icon:[640,512,[],"f4b8","M160 224v64h320v-64c0-35.3 28.7-64 64-64h32c0-53-43-96-96-96H160c-53 0-96 43-96 96h32c35.3 0 64 28.7 64 64zm416-32h-32c-17.7 0-32 14.3-32 32v96H128v-96c0-17.7-14.3-32-32-32H64c-35.3 0-64 28.7-64 64 0 23.6 13 44 32 55.1V432c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-16h384v16c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V311.1c19-11.1 32-31.5 32-55.1 0-35.3-28.7-64-64-64z"]},faCreditCard:{prefix:"fas",iconName:"credit-card",icon:[576,512,[],"f09d","M0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V256H0v176zm192-68c0-6.6 5.4-12 12-12h136c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H204c-6.6 0-12-5.4-12-12v-40zm-128 0c0-6.6 5.4-12 12-12h72c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12v-40zM576 80v48H0V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48z"]},faCrop:{prefix:"fas",iconName:"crop",icon:[512,512,[],"f125","M488 352h-40V109.25l59.31-59.31c6.25-6.25 6.25-16.38 0-22.63L484.69 4.69c-6.25-6.25-16.38-6.25-22.63 0L402.75 64H192v96h114.75L160 306.75V24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v264c0 13.25 10.75 24 24 24h232v-96H205.25L352 205.25V488c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},faCropAlt:{prefix:"fas",iconName:"crop-alt",icon:[512,512,[],"f565","M488 352h-40V96c0-17.67-14.33-32-32-32H192v96h160v328c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24v-40h40c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24zM160 24c0-13.26-10.75-24-24-24H88C74.75 0 64 10.74 64 24v40H24C10.75 64 0 74.74 0 88v48c0 13.25 10.75 24 24 24h40v256c0 17.67 14.33 32 32 32h224v-96H160V24z"]},faCross:{prefix:"fas",iconName:"cross",icon:[384,512,[],"f654","M352 128h-96V32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h96v224c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V256h96c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},faCrosshairs:{prefix:"fas",iconName:"crosshairs",icon:[512,512,[],"f05b","M500 224h-30.364C455.724 130.325 381.675 56.276 288 42.364V12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v30.364C130.325 56.276 56.276 130.325 42.364 224H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h30.364C56.276 381.675 130.325 455.724 224 469.636V500c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-30.364C381.675 455.724 455.724 381.675 469.636 288H500c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zM288 404.634V364c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40.634C165.826 392.232 119.783 346.243 107.366 288H148c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40.634C119.768 165.826 165.757 119.783 224 107.366V148c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40.634C346.174 119.768 392.217 165.757 404.634 224H364c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40.634C392.232 346.174 346.243 392.217 288 404.634zM288 256c0 17.673-14.327 32-32 32s-32-14.327-32-32c0-17.673 14.327-32 32-32s32 14.327 32 32z"]},faCrow:{prefix:"fas",iconName:"crow",icon:[640,512,[],"f520","M544 32h-16.36C513.04 12.68 490.09 0 464 0c-44.18 0-80 35.82-80 80v20.98L12.09 393.57A30.216 30.216 0 0 0 0 417.74c0 22.46 23.64 37.07 43.73 27.03L165.27 384h96.49l44.41 120.1c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38L312.94 384H352c1.91 0 3.76-.23 5.66-.29l44.51 120.38c2.27 6.23 9.15 9.44 15.38 7.17l22.55-8.21c6.23-2.27 9.44-9.15 7.17-15.38l-41.24-111.53C485.74 352.8 544 279.26 544 192v-80l96-16c0-35.35-42.98-64-96-64zm-80 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faCrown:{prefix:"fas",iconName:"crown",icon:[640,512,[],"f521","M528 448H112c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm64-320c-26.5 0-48 21.5-48 48 0 7.1 1.6 13.7 4.4 19.8L476 239.2c-15.4 9.2-35.3 4-44.2-11.6L350.3 85C361 76.2 368 63 368 48c0-26.5-21.5-48-48-48s-48 21.5-48 48c0 15 7 28.2 17.7 37l-81.5 142.6c-8.9 15.6-28.9 20.8-44.2 11.6l-72.3-43.4c2.7-6 4.4-12.7 4.4-19.8 0-26.5-21.5-48-48-48S0 149.5 0 176s21.5 48 48 48c2.6 0 5.2-.4 7.7-.8L128 416h384l72.3-192.8c2.5.4 5.1.8 7.7.8 26.5 0 48-21.5 48-48s-21.5-48-48-48z"]},faCrutch:{prefix:"fas",iconName:"crutch",icon:[512,512,[],"f7f7","M507.31 185.71l-181-181a16 16 0 0 0-22.62 0L281 27.31a16 16 0 0 0 0 22.63l181 181a16 16 0 0 0 22.63 0l22.62-22.63a16 16 0 0 0 .06-22.6zm-179.54 66.41l-67.89-67.89 55.1-55.1-45.25-45.25-109.67 109.67a96.08 96.08 0 0 0-25.67 46.29L106.65 360.1l-102 102a16 16 0 0 0 0 22.63l22.62 22.62a16 16 0 0 0 22.63 0l102-102 120.25-27.75a95.88 95.88 0 0 0 46.29-25.65l109.68-109.68L382.87 197zm-54.57 54.57a32 32 0 0 1-15.45 8.54l-79.3 18.32 18.3-79.3a32.22 32.22 0 0 1 8.56-15.45l9.31-9.31 67.89 67.89z"]},faCube:{prefix:"fas",iconName:"cube",icon:[512,512,[],"f1b2","M239.1 6.3l-208 78c-18.7 7-31.1 25-31.1 45v225.1c0 18.2 10.3 34.8 26.5 42.9l208 104c13.5 6.8 29.4 6.8 42.9 0l208-104c16.3-8.1 26.5-24.8 26.5-42.9V129.3c0-20-12.4-37.9-31.1-44.9l-208-78C262 2.2 250 2.2 239.1 6.3zM256 68.4l192 72v1.1l-192 78-192-78v-1.1l192-72zm32 356V275.5l160-65v133.9l-160 80z"]},faCubes:{prefix:"fas",iconName:"cubes",icon:[512,512,[],"f1b3","M488.6 250.2L392 214V105.5c0-15-9.3-28.4-23.4-33.7l-100-37.5c-8.1-3.1-17.1-3.1-25.3 0l-100 37.5c-14.1 5.3-23.4 18.7-23.4 33.7V214l-96.6 36.2C9.3 255.5 0 268.9 0 283.9V394c0 13.6 7.7 26.1 19.9 32.2l100 50c10.1 5.1 22.1 5.1 32.2 0l103.9-52 103.9 52c10.1 5.1 22.1 5.1 32.2 0l100-50c12.2-6.1 19.9-18.6 19.9-32.2V283.9c0-15-9.3-28.4-23.4-33.7zM358 214.8l-85 31.9v-68.2l85-37v73.3zM154 104.1l102-38.2 102 38.2v.6l-102 41.4-102-41.4v-.6zm84 291.1l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6zm240 112l-85 42.5v-79.1l85-38.8v75.4zm0-112l-102 41.4-102-41.4v-.6l102-38.2 102 38.2v.6z"]},faCut:{prefix:"fas",iconName:"cut",icon:[448,512,[],"f0c4","M278.06 256L444.48 89.57c4.69-4.69 4.69-12.29 0-16.97-32.8-32.8-85.99-32.8-118.79 0L210.18 188.12l-24.86-24.86c4.31-10.92 6.68-22.81 6.68-35.26 0-53.02-42.98-96-96-96S0 74.98 0 128s42.98 96 96 96c4.54 0 8.99-.32 13.36-.93L142.29 256l-32.93 32.93c-4.37-.61-8.83-.93-13.36-.93-53.02 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96c0-12.45-2.37-24.34-6.68-35.26l24.86-24.86L325.69 439.4c32.8 32.8 85.99 32.8 118.79 0 4.69-4.68 4.69-12.28 0-16.97L278.06 256zM96 160c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32zm0 256c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]},faDatabase:{prefix:"fas",iconName:"database",icon:[448,512,[],"f1c0","M448 73.143v45.714C448 159.143 347.667 192 224 192S0 159.143 0 118.857V73.143C0 32.857 100.333 0 224 0s224 32.857 224 73.143zM448 176v102.857C448 319.143 347.667 352 224 352S0 319.143 0 278.857V176c48.125 33.143 136.208 48.572 224 48.572S399.874 209.143 448 176zm0 160v102.857C448 479.143 347.667 512 224 512S0 479.143 0 438.857V336c48.125 33.143 136.208 48.572 224 48.572S399.874 369.143 448 336z"]},faDeaf:r,faDemocrat:{prefix:"fas",iconName:"democrat",icon:[640,512,[],"f747","M637.3 256.9l-19.6-29.4c-28.2-42.3-75.3-67.5-126.1-67.5H256l-81.2-81.2c20.1-20.1 22.6-51.1 7.5-73.9-3.4-5.2-10.8-5.9-15.2-1.5l-41.8 41.8L82.4 2.4c-3.6-3.6-9.6-3-12.4 1.2-12.3 18.6-10.3 44 6.1 60.4 3.3 3.3 7.3 5.3 11.3 7.5-2.2 1.7-4.7 3.1-6.4 5.4L6.4 176.2c-7.3 9.7-8.4 22.7-3 33.5l14.3 28.6c5.4 10.8 16.5 17.7 28.6 17.7h31c8.5 0 16.6-3.4 22.6-9.4L138 212l54 108h352v-77.8c16.2 12.2 18.3 17.6 40.1 50.3 4.9 7.4 14.8 9.3 22.2 4.4l26.6-17.7c7.3-5 9.3-14.9 4.4-22.3zm-341.1-13.6l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L256 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L368 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zm112 0l-16.5 16.1 3.9 22.7c.7 4.1-3.6 7.2-7.2 5.3L480 276.7l-20.4 10.7c-3.6 1.9-7.9-1.2-7.2-5.3l3.9-22.7-16.5-16.1c-3-2.9-1.3-7.9 2.8-8.5l22.8-3.3 10.2-20.7c1.8-3.7 7.1-3.7 9 0l10.2 20.7 22.8 3.3c4 .6 5.6 5.6 2.6 8.5zM192 496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80h160v80c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16V352H192v144z"]},faDesktop:{prefix:"fas",iconName:"desktop",icon:[576,512,[],"f108","M528 0H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h192l-16 48h-72c-13.3 0-24 10.7-24 24s10.7 24 24 24h272c13.3 0 24-10.7 24-24s-10.7-24-24-24h-72l-16-48h192c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zm-16 352H64V64h448v288z"]},faDharmachakra:{prefix:"fas",iconName:"dharmachakra",icon:[512,512,[],"f655","M495 225.06l-17.22 1.08c-5.27-39.49-20.79-75.64-43.86-105.84l12.95-11.43c6.92-6.11 7.25-16.79.73-23.31L426.44 64.4c-6.53-6.53-17.21-6.19-23.31.73L391.7 78.07c-30.2-23.06-66.35-38.58-105.83-43.86L286.94 17c.58-9.21-6.74-17-15.97-17h-29.94c-9.23 0-16.54 7.79-15.97 17l1.08 17.22c-39.49 5.27-75.64 20.79-105.83 43.86l-11.43-12.95c-6.11-6.92-16.79-7.25-23.31-.73L64.4 85.56c-6.53 6.53-6.19 17.21.73 23.31l12.95 11.43c-23.06 30.2-38.58 66.35-43.86 105.84L17 225.06c-9.21-.58-17 6.74-17 15.97v29.94c0 9.23 7.79 16.54 17 15.97l17.22-1.08c5.27 39.49 20.79 75.64 43.86 105.83l-12.95 11.43c-6.92 6.11-7.25 16.79-.73 23.31l21.17 21.17c6.53 6.53 17.21 6.19 23.31-.73l11.43-12.95c30.2 23.06 66.35 38.58 105.84 43.86L225.06 495c-.58 9.21 6.74 17 15.97 17h29.94c9.23 0 16.54-7.79 15.97-17l-1.08-17.22c39.49-5.27 75.64-20.79 105.84-43.86l11.43 12.95c6.11 6.92 16.79 7.25 23.31.73l21.17-21.17c6.53-6.53 6.19-17.21-.73-23.31l-12.95-11.43c23.06-30.2 38.58-66.35 43.86-105.83l17.22 1.08c9.21.58 17-6.74 17-15.97v-29.94c-.01-9.23-7.8-16.54-17.01-15.97zM281.84 98.61c24.81 4.07 47.63 13.66 67.23 27.78l-42.62 48.29c-8.73-5.44-18.32-9.54-28.62-11.95l4.01-64.12zm-51.68 0l4.01 64.12c-10.29 2.41-19.89 6.52-28.62 11.95l-42.62-48.29c19.6-14.12 42.42-23.71 67.23-27.78zm-103.77 64.33l48.3 42.61c-5.44 8.73-9.54 18.33-11.96 28.62l-64.12-4.01c4.07-24.81 13.66-47.62 27.78-67.22zm-27.78 118.9l64.12-4.01c2.41 10.29 6.52 19.89 11.95 28.62l-48.29 42.62c-14.12-19.6-23.71-42.42-27.78-67.23zm131.55 131.55c-24.81-4.07-47.63-13.66-67.23-27.78l42.61-48.3c8.73 5.44 18.33 9.54 28.62 11.96l-4 64.12zM256 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm25.84 125.39l-4.01-64.12c10.29-2.41 19.89-6.52 28.62-11.96l42.61 48.3c-19.6 14.12-42.41 23.71-67.22 27.78zm103.77-64.33l-48.29-42.62c5.44-8.73 9.54-18.32 11.95-28.62l64.12 4.01c-4.07 24.82-13.66 47.64-27.78 67.23zm-36.34-114.89c-2.41-10.29-6.52-19.89-11.96-28.62l48.3-42.61c14.12 19.6 23.71 42.42 27.78 67.23l-64.12 4z"]},faDiagnoses:{prefix:"fas",iconName:"diagnoses",icon:[640,512,[],"f470","M496 256c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm-176-80c48.5 0 88-39.5 88-88S368.5 0 320 0s-88 39.5-88 88 39.5 88 88 88zM59.8 364c10.2 15.3 29.3 17.8 42.9 9.8 16.2-9.6 56.2-31.7 105.3-48.6V416h224v-90.7c49.1 16.8 89.1 39 105.3 48.6 13.6 8 32.7 5.3 42.9-9.8l17.8-26.7c8.8-13.2 7.6-34.6-10-45.1-11.9-7.1-29.7-17-51.1-27.4-28.1 46.1-99.4 17.8-87.7-35.1C409.3 217.2 365.1 208 320 208c-57 0-112.9 14.5-160 32.2-.2 40.2-47.6 63.3-79.2 36-11.2 6-21.3 11.6-28.7 16-17.6 10.5-18.8 31.8-10 45.1L59.8 364zM368 344c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-96-96c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm-160 8c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zm512 192H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faDice:{prefix:"fas",iconName:"dice",icon:[640,512,[],"f522","M592 192H473.26c12.69 29.59 7.12 65.2-17 89.32L320 417.58V464c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48V240c0-26.51-21.49-48-48-48zM480 376c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm-46.37-186.7L258.7 14.37c-19.16-19.16-50.23-19.16-69.39 0L14.37 189.3c-19.16 19.16-19.16 50.23 0 69.39L189.3 433.63c19.16 19.16 50.23 19.16 69.39 0L433.63 258.7c19.16-19.17 19.16-50.24 0-69.4zM96 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm0-128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm128 128c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faDiceD20:{prefix:"fas",iconName:"dice-d20",icon:[480,512,[],"f6cf","M106.75 215.06L1.2 370.95c-3.08 5 .1 11.5 5.93 12.14l208.26 22.07-108.64-190.1zM7.41 315.43L82.7 193.08 6.06 147.1c-2.67-1.6-6.06.32-6.06 3.43v162.81c0 4.03 5.29 5.53 7.41 2.09zM18.25 423.6l194.4 87.66c5.3 2.45 11.35-1.43 11.35-7.26v-65.67l-203.55-22.3c-4.45-.5-6.23 5.59-2.2 7.57zm81.22-257.78L179.4 22.88c4.34-7.06-3.59-15.25-10.78-11.14L17.81 110.35c-2.47 1.62-2.39 5.26.13 6.78l81.53 48.69zM240 176h109.21L253.63 7.62C250.5 2.54 245.25 0 240 0s-10.5 2.54-13.63 7.62L130.79 176H240zm233.94-28.9l-76.64 45.99 75.29 122.35c2.11 3.44 7.41 1.94 7.41-2.1V150.53c0-3.11-3.39-5.03-6.06-3.43zm-93.41 18.72l81.53-48.7c2.53-1.52 2.6-5.16.13-6.78l-150.81-98.6c-7.19-4.11-15.12 4.08-10.78 11.14l79.93 142.94zm79.02 250.21L256 438.32v65.67c0 5.84 6.05 9.71 11.35 7.26l194.4-87.66c4.03-1.97 2.25-8.06-2.2-7.56zm-86.3-200.97l-108.63 190.1 208.26-22.07c5.83-.65 9.01-7.14 5.93-12.14L373.25 215.06zM240 208H139.57L240 383.75 340.43 208H240z"]},faDiceD6:{prefix:"fas",iconName:"dice-d6",icon:[448,512,[],"f6d1","M422.19 109.95L256.21 9.07c-19.91-12.1-44.52-12.1-64.43 0L25.81 109.95c-5.32 3.23-5.29 11.27.06 14.46L224 242.55l198.14-118.14c5.35-3.19 5.38-11.22.05-14.46zm13.84 44.63L240 271.46v223.82c0 12.88 13.39 20.91 24.05 14.43l152.16-92.48c19.68-11.96 31.79-33.94 31.79-57.7v-197.7c0-6.41-6.64-10.43-11.97-7.25zM0 161.83v197.7c0 23.77 12.11 45.74 31.79 57.7l152.16 92.47c10.67 6.48 24.05-1.54 24.05-14.43V271.46L11.97 154.58C6.64 151.4 0 155.42 0 161.83z"]},faDiceFive:{prefix:"fas",iconName:"dice-five",icon:[448,512,[],"f523","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceFour:{prefix:"fas",iconName:"dice-four",icon:[448,512,[],"f524","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceOne:{prefix:"fas",iconName:"dice-one",icon:[448,512,[],"f525","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM224 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceSix:{prefix:"fas",iconName:"dice-six",icon:[448,512,[],"f526","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceThree:{prefix:"fas",iconName:"dice-three",icon:[448,512,[],"f527","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm96 96c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDiceTwo:{prefix:"fas",iconName:"dice-two",icon:[448,512,[],"f528","M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64zM128 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm192 192c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faDigitalTachograph:{prefix:"fas",iconName:"digital-tachograph",icon:[640,512,[],"f566","M608 96H32c-17.67 0-32 14.33-32 32v256c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128c0-17.67-14.33-32-32-32zM304 352c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8zM72 288v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H80c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm64 0v-16c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8zm40-64c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-48c0-8.84 7.16-16 16-16h208c8.84 0 16 7.16 16 16v48zm272 128c0 4.42-3.58 8-8 8H344c-4.42 0-8-3.58-8-8v-8c0-4.42 3.58-8 8-8h224c4.42 0 8 3.58 8 8v8z"]},faDirections:{prefix:"fas",iconName:"directions",icon:[512,512,[],"f5eb","M502.61 233.32L278.68 9.39c-12.52-12.52-32.83-12.52-45.36 0L9.39 233.32c-12.52 12.53-12.52 32.83 0 45.36l223.93 223.93c12.52 12.53 32.83 12.53 45.36 0l223.93-223.93c12.52-12.53 12.52-32.83 0-45.36zm-100.98 12.56l-84.21 77.73c-5.12 4.73-13.43 1.1-13.43-5.88V264h-96v64c0 4.42-3.58 8-8 8h-32c-4.42 0-8-3.58-8-8v-80c0-17.67 14.33-32 32-32h112v-53.73c0-6.97 8.3-10.61 13.43-5.88l84.21 77.73c3.43 3.17 3.43 8.59 0 11.76z"]},faDisease:{prefix:"fas",iconName:"disease",icon:[512,512,[],"f7fa","M472.29 195.9l-67.06-23c-19.28-6.6-33.54-20.92-38.14-38.31l-16-60.45c-11.58-43.77-76.57-57.13-110-22.62L195 99.24c-13.26 13.71-33.54 20.93-54.2 19.31l-71.9-5.62c-52-4.07-86.93 44.89-59 82.84l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24l-28.43 57C4 396.67 47.46 440.29 98.11 429.23l70-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101 7.57 104.45-37.22l4.7-61.86c1.35-17.8 12.8-33.87 30.63-43l62-31.74c44.84-22.96 39.55-80.17-8.99-96.79zM160 256a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm128 96a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm16-128a16 16 0 1 1 16-16 16 16 0 0 1-16 16z"]},faDivide:{prefix:"fas",iconName:"divide",icon:[448,512,[],"f529","M224 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm0-192c35.35 0 64-28.65 64-64s-28.65-64-64-64-64 28.65-64 64 28.65 64 64 64zm192 48H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faDizzy:c,faDna:{prefix:"fas",iconName:"dna",icon:[448,512,[],"f471","M.1 494.1c-1.1 9.5 6.3 17.8 15.9 17.8l32.3.1c8.1 0 14.9-5.9 16-13.9.7-4.9 1.8-11.1 3.4-18.1H380c1.6 6.9 2.9 13.2 3.5 18.1 1.1 8 7.9 14 16 13.9l32.3-.1c9.6 0 17.1-8.3 15.9-17.8-4.6-37.9-25.6-129-118.9-207.7-17.6 12.4-37.1 24.2-58.5 35.4 6.2 4.6 11.4 9.4 17 14.2H159.7c21.3-18.1 47-35.6 78.7-51.4C410.5 199.1 442.1 65.8 447.9 17.9 449 8.4 441.6.1 432 .1L399.6 0c-8.1 0-14.9 5.9-16 13.9-.7 4.9-1.8 11.1-3.4 18.1H67.8c-1.6-7-2.7-13.1-3.4-18.1-1.1-8-7.9-14-16-13.9L16.1.1C6.5.1-1 8.4.1 17.9 5.3 60.8 31.4 171.8 160 256 31.5 340.2 5.3 451.2.1 494.1zM224 219.6c-25.1-13.7-46.4-28.4-64.3-43.6h128.5c-17.8 15.2-39.1 30-64.2 43.6zM355.1 96c-5.8 10.4-12.8 21.1-21 32H114c-8.3-10.9-15.3-21.6-21-32h262.1zM92.9 416c5.8-10.4 12.8-21.1 21-32h219.4c8.3 10.9 15.4 21.6 21.2 32H92.9z"]},faDog:{prefix:"fas",iconName:"dog",icon:[576,512,[],"f6d3","M298.06,224,448,277.55V496a16,16,0,0,1-16,16H368a16,16,0,0,1-16-16V384H192V496a16,16,0,0,1-16,16H112a16,16,0,0,1-16-16V282.09C58.84,268.84,32,233.66,32,192a32,32,0,0,1,64,0,32.06,32.06,0,0,0,32,32ZM544,112v32a64,64,0,0,1-64,64H448v35.58L320,197.87V48c0-14.25,17.22-21.39,27.31-11.31L374.59,64h53.63c10.91,0,23.75,7.92,28.62,17.69L464,96h64A16,16,0,0,1,544,112Zm-112,0a16,16,0,1,0-16,16A16,16,0,0,0,432,112Z"]},faDollarSign:{prefix:"fas",iconName:"dollar-sign",icon:[288,512,[],"f155","M209.2 233.4l-108-31.6C88.7 198.2 80 186.5 80 173.5c0-16.3 13.2-29.5 29.5-29.5h66.3c12.2 0 24.2 3.7 34.2 10.5 6.1 4.1 14.3 3.1 19.5-2l34.8-34c7.1-6.9 6.1-18.4-1.8-24.5C238 74.8 207.4 64.1 176 64V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v48h-2.5C45.8 64-5.4 118.7.5 183.6c4.2 46.1 39.4 83.6 83.8 96.6l102.5 30c12.5 3.7 21.2 15.3 21.2 28.3 0 16.3-13.2 29.5-29.5 29.5h-66.3C100 368 88 364.3 78 357.5c-6.1-4.1-14.3-3.1-19.5 2l-34.8 34c-7.1 6.9-6.1 18.4 1.8 24.5 24.5 19.2 55.1 29.9 86.5 30v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48.2c46.6-.9 90.3-28.6 105.7-72.7 21.5-61.6-14.6-124.8-72.5-141.7z"]},faDolly:{prefix:"fas",iconName:"dolly",icon:[576,512,[],"f472","M294.2 277.7c18 5 34.7 13.4 49.5 24.7l161.5-53.8c8.4-2.8 12.9-11.9 10.1-20.2L454.9 47.2c-2.8-8.4-11.9-12.9-20.2-10.1l-61.1 20.4 33.1 99.4L346 177l-33.1-99.4-61.6 20.5c-8.4 2.8-12.9 11.9-10.1 20.2l53 159.4zm281 48.7L565 296c-2.8-8.4-11.9-12.9-20.2-10.1l-213.5 71.2c-17.2-22-43.6-36.4-73.5-37L158.4 21.9C154 8.8 141.8 0 128 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h88.9l92.2 276.7c-26.1 20.4-41.7 53.6-36 90.5 6.1 39.4 37.9 72.3 77.3 79.2 60.2 10.7 112.3-34.8 113.4-92.6l213.3-71.2c8.3-2.8 12.9-11.8 10.1-20.2zM256 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},faDollyFlatbed:{prefix:"fas",iconName:"dolly-flatbed",icon:[640,512,[],"f474","M208 320h384c8.8 0 16-7.2 16-16V48c0-8.8-7.2-16-16-16H448v128l-48-32-48 32V32H208c-8.8 0-16 7.2-16 16v256c0 8.8 7.2 16 16 16zm416 64H128V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h82.9c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H451c-1.8 5-2.9 10.4-2.9 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1.2-11-2.9-16H624c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faDonate:{prefix:"fas",iconName:"donate",icon:[512,512,[],"f4b9","M256 416c114.9 0 208-93.1 208-208S370.9 0 256 0 48 93.1 48 208s93.1 208 208 208zM233.8 97.4V80.6c0-9.2 7.4-16.6 16.6-16.6h11.1c9.2 0 16.6 7.4 16.6 16.6v17c15.5.8 30.5 6.1 43 15.4 5.6 4.1 6.2 12.3 1.2 17.1L306 145.6c-3.8 3.7-9.5 3.8-14 1-5.4-3.4-11.4-5.1-17.8-5.1h-38.9c-9 0-16.3 8.2-16.3 18.3 0 8.2 5 15.5 12.1 17.6l62.3 18.7c25.7 7.7 43.7 32.4 43.7 60.1 0 34-26.4 61.5-59.1 62.4v16.8c0 9.2-7.4 16.6-16.6 16.6h-11.1c-9.2 0-16.6-7.4-16.6-16.6v-17c-15.5-.8-30.5-6.1-43-15.4-5.6-4.1-6.2-12.3-1.2-17.1l16.3-15.5c3.8-3.7 9.5-3.8 14-1 5.4 3.4 11.4 5.1 17.8 5.1h38.9c9 0 16.3-8.2 16.3-18.3 0-8.2-5-15.5-12.1-17.6l-62.3-18.7c-25.7-7.7-43.7-32.4-43.7-60.1.1-34 26.4-61.5 59.1-62.4zM480 352h-32.5c-19.6 26-44.6 47.7-73 64h63.8c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8h63.8c-28.4-16.3-53.3-38-73-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32z"]},faDoorClosed:{prefix:"fas",iconName:"door-closed",icon:[640,512,[],"f52a","M624 448H512V50.8C512 22.78 490.47 0 464 0H175.99c-26.47 0-48 22.78-48 50.8V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM415.99 288c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32c.01 17.67-14.32 32-32 32z"]},faDoorOpen:{prefix:"fas",iconName:"door-open",icon:[640,512,[],"f52b","M624 448h-80V113.45C544 86.19 522.47 64 496 64H384v64h96v384h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM312.24 1.01l-192 49.74C105.99 54.44 96 67.7 96 82.92V448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h336V33.18c0-21.58-19.56-37.41-39.76-32.17zM264 288c-13.25 0-24-14.33-24-32s10.75-32 24-32 24 14.33 24 32-10.75 32-24 32z"]},faDotCircle:{prefix:"fas",iconName:"dot-circle",icon:[512,512,[],"f192","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm80 248c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80z"]},faDove:{prefix:"fas",iconName:"dove",icon:[512,512,[],"f4ba","M288 167.2v-28.1c-28.2-36.3-47.1-79.3-54.1-125.2-2.1-13.5-19-18.8-27.8-8.3-21.1 24.9-37.7 54.1-48.9 86.5 34.2 38.3 80 64.6 130.8 75.1zM400 64c-44.2 0-80 35.9-80 80.1v59.4C215.6 197.3 127 133 87 41.8c-5.5-12.5-23.2-13.2-29-.9C41.4 76 32 115.2 32 156.6c0 70.8 34.1 136.9 85.1 185.9 13.2 12.7 26.1 23.2 38.9 32.8l-143.9 36C1.4 414-3.4 426.4 2.6 435.7 20 462.6 63 508.2 155.8 512c8 .3 16-2.6 22.1-7.9l65.2-56.1H320c88.4 0 160-71.5 160-159.9V128l32-64H400zm0 96.1c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faDownload:{prefix:"fas",iconName:"download",icon:[512,512,[],"f019","M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},faDraftingCompass:{prefix:"fas",iconName:"drafting-compass",icon:[512,512,[],"f568","M457.01 344.42c-25.05 20.33-52.63 37.18-82.54 49.05l54.38 94.19 53.95 23.04c9.81 4.19 20.89-2.21 22.17-12.8l7.02-58.25-54.98-95.23zm42.49-94.56c4.86-7.67 1.89-17.99-6.05-22.39l-28.07-15.57c-7.48-4.15-16.61-1.46-21.26 5.72C403.01 281.15 332.25 320 256 320c-23.93 0-47.23-4.25-69.41-11.53l67.36-116.68c.7.02 1.34.21 2.04.21s1.35-.19 2.04-.21l51.09 88.5c31.23-8.96 59.56-25.75 82.61-48.92l-51.79-89.71C347.39 128.03 352 112.63 352 96c0-53.02-42.98-96-96-96s-96 42.98-96 96c0 16.63 4.61 32.03 12.05 45.66l-68.3 118.31c-12.55-11.61-23.96-24.59-33.68-39-4.79-7.1-13.97-9.62-21.38-5.33l-27.75 16.07c-7.85 4.54-10.63 14.9-5.64 22.47 15.57 23.64 34.69 44.21 55.98 62.02L0 439.66l7.02 58.25c1.28 10.59 12.36 16.99 22.17 12.8l53.95-23.04 70.8-122.63C186.13 377.28 220.62 384 256 384c99.05 0 190.88-51.01 243.5-134.14zM256 64c17.67 0 32 14.33 32 32s-14.33 32-32 32-32-14.33-32-32 14.33-32 32-32z"]},faDragon:{prefix:"fas",iconName:"dragon",icon:[640,512,[],"f6d5","M18.32 255.78L192 223.96l-91.28 68.69c-10.08 10.08-2.94 27.31 11.31 27.31h222.7c-9.44-26.4-14.73-54.47-14.73-83.38v-42.27l-119.73-87.6c-23.82-15.88-55.29-14.01-77.06 4.59L5.81 227.64c-12.38 10.33-3.45 30.42 12.51 28.14zm556.87 34.1l-100.66-50.31A47.992 47.992 0 0 1 448 196.65v-36.69h64l28.09 22.63c6 6 14.14 9.37 22.63 9.37h30.97a32 32 0 0 0 28.62-17.69l14.31-28.62a32.005 32.005 0 0 0-3.02-33.51l-74.53-99.38C553.02 4.7 543.54 0 533.47 0H296.02c-7.13 0-10.7 8.57-5.66 13.61L352 63.96 292.42 88.8c-5.9 2.95-5.9 11.36 0 14.31L352 127.96v108.62c0 72.08 36.03 139.39 96 179.38-195.59 6.81-344.56 41.01-434.1 60.91C5.78 478.67 0 485.88 0 494.2 0 504 7.95 512 17.76 512h499.08c63.29.01 119.61-47.56 122.99-110.76 2.52-47.28-22.73-90.4-64.64-111.36zM489.18 66.25l45.65 11.41c-2.75 10.91-12.47 18.89-24.13 18.26-12.96-.71-25.85-12.53-21.52-29.67z"]},faDrawPolygon:{prefix:"fas",iconName:"draw-polygon",icon:[448,512,[],"f5ee","M384 352c-.35 0-.67.1-1.02.1l-39.2-65.32c5.07-9.17 8.22-19.56 8.22-30.78s-3.14-21.61-8.22-30.78l39.2-65.32c.35.01.67.1 1.02.1 35.35 0 64-28.65 64-64s-28.65-64-64-64c-23.63 0-44.04 12.95-55.12 32H119.12C108.04 44.95 87.63 32 64 32 28.65 32 0 60.65 0 96c0 23.63 12.95 44.04 32 55.12v209.75C12.95 371.96 0 392.37 0 416c0 35.35 28.65 64 64 64 23.63 0 44.04-12.95 55.12-32h209.75c11.09 19.05 31.49 32 55.12 32 35.35 0 64-28.65 64-64 .01-35.35-28.64-64-63.99-64zm-288 8.88V151.12A63.825 63.825 0 0 0 119.12 128h208.36l-38.46 64.1c-.35-.01-.67-.1-1.02-.1-35.35 0-64 28.65-64 64s28.65 64 64 64c.35 0 .67-.1 1.02-.1l38.46 64.1H119.12A63.748 63.748 0 0 0 96 360.88zM272 256c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zM400 96c0 8.82-7.18 16-16 16s-16-7.18-16-16 7.18-16 16-16 16 7.18 16 16zM64 80c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zM48 416c0-8.82 7.18-16 16-16s16 7.18 16 16-7.18 16-16 16-16-7.18-16-16zm336 16c-8.82 0-16-7.18-16-16s7.18-16 16-16 16 7.18 16 16-7.18 16-16 16z"]},faDrum:{prefix:"fas",iconName:"drum",icon:[512,512,[],"f569","M431.34 122.05l73.53-47.42a16 16 0 0 0 4.44-22.19l-8.87-13.31a16 16 0 0 0-22.19-4.44l-110.06 71C318.43 96.91 271.22 96 256 96 219.55 96 0 100.55 0 208.15v160.23c0 30.27 27.5 57.68 72 77.86v-101.9a24 24 0 1 1 48 0v118.93c33.05 9.11 71.07 15.06 112 16.73V376.39a24 24 0 1 1 48 0V480c40.93-1.67 78.95-7.62 112-16.73V344.34a24 24 0 1 1 48 0v101.9c44.5-20.18 72-47.59 72-77.86V208.15c0-43.32-35.76-69.76-80.66-86.1zM256 272.24c-114.88 0-208-28.69-208-64.09s93.12-64.08 208-64.08c17.15 0 33.73.71 49.68 1.91l-72.81 47a16 16 0 0 0-4.43 22.19l8.87 13.31a16 16 0 0 0 22.19 4.44l118.64-76.52C430.09 168 464 186.84 464 208.15c0 35.4-93.13 64.09-208 64.09z"]},faDrumSteelpan:{prefix:"fas",iconName:"drum-steelpan",icon:[576,512,[],"f56a","M288 32C128.94 32 0 89.31 0 160v192c0 70.69 128.94 128 288 128s288-57.31 288-128V160c0-70.69-128.94-128-288-128zm-82.99 158.36c-4.45 16.61-14.54 30.57-28.31 40.48C100.23 217.46 48 190.78 48 160c0-30.16 50.11-56.39 124.04-70.03l25.6 44.34c9.86 17.09 12.48 36.99 7.37 56.05zM288 240c-21.08 0-41.41-1-60.89-2.7 8.06-26.13 32.15-45.3 60.89-45.3s52.83 19.17 60.89 45.3C329.41 239 309.08 240 288 240zm64-144c0 35.29-28.71 64-64 64s-64-28.71-64-64V82.96c20.4-1.88 41.8-2.96 64-2.96s43.6 1.08 64 2.96V96zm46.93 134.9c-13.81-9.91-23.94-23.9-28.4-40.54-5.11-19.06-2.49-38.96 7.38-56.04l25.65-44.42C477.72 103.5 528 129.79 528 160c0 30.83-52.4 57.54-129.07 70.9z"]},faDrumstickBite:{prefix:"fas",iconName:"drumstick-bite",icon:[512,512,[],"f6d7","M462.8 49.57a169.44 169.44 0 0 0-239.5 0C187.82 85 160.13 128 160.13 192v85.83l-40.62 40.59c-9.7 9.69-24 11.07-36.78 6a60.33 60.33 0 0 0-65 98.72C33 438.39 54.24 442.7 73.85 438.21c-4.5 19.6-.18 40.83 15.1 56.1a60.35 60.35 0 0 0 98.8-65c-5.09-12.73-3.72-27 6-36.75L234.36 352h85.89a187.87 187.87 0 0 0 61.89-10c-39.64-43.89-39.83-110.23 1.05-151.07 34.38-34.36 86.76-39.46 128.74-16.8 1.3-44.96-14.81-90.28-49.13-124.56z"]},faDumbbell:{prefix:"fas",iconName:"dumbbell",icon:[640,512,[],"f44b","M104 96H56c-13.3 0-24 10.7-24 24v104H8c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h24v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm528 128h-24V120c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v272c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h24c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zM456 32h-48c-13.3 0-24 10.7-24 24v168H256V56c0-13.3-10.7-24-24-24h-48c-13.3 0-24 10.7-24 24v400c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V288h128v168c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24z"]},faDumpster:{prefix:"fas",iconName:"dumpster",icon:[576,512,[],"f793","M560 160c10.4 0 18-9.8 15.5-19.9l-24-96C549.7 37 543.3 32 536 32h-98.9l25.6 128H560zM272 32H171.5l-25.6 128H272V32zm132.5 0H304v128h126.1L404.5 32zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm544 64h-20l4-32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h320v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16l20-160h28c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faDumpsterFire:{prefix:"fas",iconName:"dumpster-fire",icon:[640,512,[],"f794","M418.7 104.1l.2-.2-14.4-72H304v128h60.8c16.2-19.3 34.2-38.2 53.9-55.8zM272 32H171.5l-25.6 128H272V32zm189.3 72.1c18.2 16.3 35.5 33.7 51.1 51.5 5.7-5.6 11.4-11.1 17.3-16.3l21.3-19 21.3 19c1.1.9 2.1 2.1 3.1 3.1-.1-.8.2-1.5 0-2.3l-24-96C549.7 37 543.3 32 536 32h-98.9l12.3 61.5 11.9 10.6zM16 160h97.3l25.6-128H40c-7.3 0-13.7 5-15.5 12.1l-24 96C-2 150.2 5.6 160 16 160zm324.6 32H32l4 32H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h28l20 160v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208.8c-30.2-33.7-48.8-77.9-48.8-126.4 0-35.9 19.9-82.9 52.6-129.6zm210.5-28.8c-14.9 13.3-28.3 27.2-40.2 41.2-19.5-25.8-43.6-52-71-76.4-70.2 62.7-120 144.3-120 193.6 0 87.5 71.6 158.4 160 158.4s160-70.9 160-158.4c.1-36.6-37-112.2-88.8-158.4zm-18.6 229.4c-14.7 10.7-32.9 17-52.5 17-49 0-88.9-33.5-88.9-88 0-27.1 16.5-51 49.4-91.9 4.7 5.6 67.1 88.1 67.1 88.1l39.8-47c2.8 4.8 5.4 9.5 7.7 14 18.6 36.7 10.8 83.6-22.6 107.8z"]},faDungeon:{prefix:"fas",iconName:"dungeon",icon:[512,512,[],"f6d9","M128.73 195.32l-82.81-51.76c-8.04-5.02-18.99-2.17-22.93 6.45A254.19 254.19 0 0 0 .54 239.28C-.05 248.37 7.59 256 16.69 256h97.13c7.96 0 14.08-6.25 15.01-14.16 1.09-9.33 3.24-18.33 6.24-26.94 2.56-7.34.25-15.46-6.34-19.58zM319.03 8C298.86 2.82 277.77 0 256 0s-42.86 2.82-63.03 8c-9.17 2.35-13.91 12.6-10.39 21.39l37.47 104.03A16.003 16.003 0 0 0 235.1 144h41.8c6.75 0 12.77-4.23 15.05-10.58l37.47-104.03c3.52-8.79-1.22-19.03-10.39-21.39zM112 288H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm77.31-283.67l-36.32-90.8c-3.53-8.83-14.13-12.99-22.42-8.31a257.308 257.308 0 0 0-71.61 59.89c-6.06 7.32-3.85 18.48 4.22 23.52l82.93 51.83c6.51 4.07 14.66 2.62 20.11-2.79 5.18-5.15 10.79-9.85 16.79-14.05 6.28-4.41 9.15-12.17 6.3-19.29zM398.18 256h97.13c9.1 0 16.74-7.63 16.15-16.72a254.135 254.135 0 0 0-22.45-89.27c-3.94-8.62-14.89-11.47-22.93-6.45l-82.81 51.76c-6.59 4.12-8.9 12.24-6.34 19.58 3.01 8.61 5.15 17.62 6.24 26.94.93 7.91 7.05 14.16 15.01 14.16zm54.85-162.89a257.308 257.308 0 0 0-71.61-59.89c-8.28-4.68-18.88-.52-22.42 8.31l-36.32 90.8c-2.85 7.12.02 14.88 6.3 19.28 6 4.2 11.61 8.9 16.79 14.05 5.44 5.41 13.6 6.86 20.11 2.79l82.93-51.83c8.07-5.03 10.29-16.19 4.22-23.51zM496 288h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm0 128h-96c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h96c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zM240 177.62V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V177.62c-5.23-.89-10.52-1.62-16-1.62s-10.77.73-16 1.62zm-64 41.51V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V189.36c-12.78 7.45-23.84 17.47-32 29.77zm128-29.77V472c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8V219.13c-8.16-12.3-19.22-22.32-32-29.77z"]},faEdit:{prefix:"fas",iconName:"edit",icon:[576,512,[],"f044","M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z"]},faEgg:{prefix:"fas",iconName:"egg",icon:[384,512,[],"f7fb","M192 0C86 0 0 214 0 320s86 192 192 192 192-86 192-192S298 0 192 0z"]},faEject:{prefix:"fas",iconName:"eject",icon:[448,512,[],"f052","M448 384v64c0 17.673-14.327 32-32 32H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h384c17.673 0 32 14.327 32 32zM48.053 320h351.886c41.651 0 63.581-49.674 35.383-80.435L259.383 47.558c-19.014-20.743-51.751-20.744-70.767 0L12.67 239.565C-15.475 270.268 6.324 320 48.053 320z"]},faEllipsisH:{prefix:"fas",iconName:"ellipsis-h",icon:[512,512,[],"f141","M328 256c0 39.8-32.2 72-72 72s-72-32.2-72-72 32.2-72 72-72 72 32.2 72 72zm104-72c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72zm-352 0c-39.8 0-72 32.2-72 72s32.2 72 72 72 72-32.2 72-72-32.2-72-72-72z"]},faEllipsisV:{prefix:"fas",iconName:"ellipsis-v",icon:[192,512,[],"f142","M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z"]},faEnvelope:{prefix:"fas",iconName:"envelope",icon:[512,512,[],"f0e0","M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"]},faEnvelopeOpen:{prefix:"fas",iconName:"envelope-open",icon:[512,512,[],"f2b6","M512 464c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V200.724a48 48 0 0 1 18.387-37.776c24.913-19.529 45.501-35.365 164.2-121.511C199.412 29.17 232.797-.347 256 .003c23.198-.354 56.596 29.172 73.413 41.433 118.687 86.137 139.303 101.995 164.2 121.512A48 48 0 0 1 512 200.724V464zm-65.666-196.605c-2.563-3.728-7.7-4.595-11.339-1.907-22.845 16.873-55.462 40.705-105.582 77.079-16.825 12.266-50.21 41.781-73.413 41.43-23.211.344-56.559-29.143-73.413-41.43-50.114-36.37-82.734-60.204-105.582-77.079-3.639-2.688-8.776-1.821-11.339 1.907l-9.072 13.196a7.998 7.998 0 0 0 1.839 10.967c22.887 16.899 55.454 40.69 105.303 76.868 20.274 14.781 56.524 47.813 92.264 47.573 35.724.242 71.961-32.771 92.263-47.573 49.85-36.179 82.418-59.97 105.303-76.868a7.998 7.998 0 0 0 1.839-10.967l-9.071-13.196z"]},faEnvelopeOpenText:{prefix:"fas",iconName:"envelope-open-text",icon:[512,512,[],"f658","M176 216h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16zm-16 80c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16zm96 121.13c-16.42 0-32.84-5.06-46.86-15.19L0 250.86V464c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V250.86L302.86 401.94c-14.02 10.12-30.44 15.19-46.86 15.19zm237.61-254.18c-8.85-6.94-17.24-13.47-29.61-22.81V96c0-26.51-21.49-48-48-48h-77.55c-3.04-2.2-5.87-4.26-9.04-6.56C312.6 29.17 279.2-.35 256 0c-23.2-.35-56.59 29.17-73.41 41.44-3.17 2.3-6 4.36-9.04 6.56H96c-26.51 0-48 21.49-48 48v44.14c-12.37 9.33-20.76 15.87-29.61 22.81A47.995 47.995 0 0 0 0 200.72v10.65l96 69.35V96h320v184.72l96-69.35v-10.65c0-14.74-6.78-28.67-18.39-37.77z"]},faEnvelopeSquare:{prefix:"fas",iconName:"envelope-square",icon:[448,512,[],"f199","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM178.117 262.104C87.429 196.287 88.353 196.121 64 177.167V152c0-13.255 10.745-24 24-24h272c13.255 0 24 10.745 24 24v25.167c-24.371 18.969-23.434 19.124-114.117 84.938-10.5 7.655-31.392 26.12-45.883 25.894-14.503.218-35.367-18.227-45.883-25.895zM384 217.775V360c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V217.775c13.958 10.794 33.329 25.236 95.303 70.214 14.162 10.341 37.975 32.145 64.694 32.01 26.887.134 51.037-22.041 64.72-32.025 61.958-44.965 81.325-59.406 95.283-70.199z"]},faEquals:{prefix:"fas",iconName:"equals",icon:[448,512,[],"f52c","M416 304H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32zm0-192H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faEraser:{prefix:"fas",iconName:"eraser",icon:[512,512,[],"f12d","M497.941 273.941c18.745-18.745 18.745-49.137 0-67.882l-160-160c-18.745-18.745-49.136-18.746-67.883 0l-256 256c-18.745 18.745-18.745 49.137 0 67.882l96 96A48.004 48.004 0 0 0 144 480h356c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H355.883l142.058-142.059zm-302.627-62.627l137.373 137.373L265.373 416H150.628l-80-80 124.686-124.686z"]},faEthernet:{prefix:"fas",iconName:"ethernet",icon:[512,512,[],"f796","M496 192h-48v-48c0-8.8-7.2-16-16-16h-48V80c0-8.8-7.2-16-16-16H144c-8.8 0-16 7.2-16 16v48H80c-8.8 0-16 7.2-16 16v48H16c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16h80V320h32v128h64V320h32v128h64V320h32v128h64V320h32v128h80c8.8 0 16-7.2 16-16V208c0-8.8-7.2-16-16-16z"]},faEuroSign:{prefix:"fas",iconName:"euro-sign",icon:[320,512,[],"f153","M310.706 413.765c-1.314-6.63-7.835-10.872-14.424-9.369-10.692 2.439-27.422 5.413-45.426 5.413-56.763 0-101.929-34.79-121.461-85.449h113.689a12 12 0 0 0 11.708-9.369l6.373-28.36c1.686-7.502-4.019-14.631-11.708-14.631H115.22c-1.21-14.328-1.414-28.287.137-42.245H261.95a12 12 0 0 0 11.723-9.434l6.512-29.755c1.638-7.484-4.061-14.566-11.723-14.566H130.184c20.633-44.991 62.69-75.03 117.619-75.03 14.486 0 28.564 2.25 37.851 4.145 6.216 1.268 12.347-2.498 14.002-8.623l11.991-44.368c1.822-6.741-2.465-13.616-9.326-14.917C290.217 34.912 270.71 32 249.635 32 152.451 32 74.03 92.252 45.075 176H12c-6.627 0-12 5.373-12 12v29.755c0 6.627 5.373 12 12 12h21.569c-1.009 13.607-1.181 29.287-.181 42.245H12c-6.627 0-12 5.373-12 12v28.36c0 6.627 5.373 12 12 12h30.114C67.139 414.692 145.264 480 249.635 480c26.301 0 48.562-4.544 61.101-7.788 6.167-1.595 10.027-7.708 8.788-13.957l-8.818-44.49z"]},faExchangeAlt:{prefix:"fas",iconName:"exchange-alt",icon:[512,512,[],"f362","M0 168v-16c0-13.255 10.745-24 24-24h360V80c0-21.367 25.899-32.042 40.971-16.971l80 80c9.372 9.373 9.372 24.569 0 33.941l-80 80C409.956 271.982 384 261.456 384 240v-48H24c-13.255 0-24-10.745-24-24zm488 152H128v-48c0-21.314-25.862-32.08-40.971-16.971l-80 80c-9.372 9.373-9.372 24.569 0 33.941l80 80C102.057 463.997 128 453.437 128 432v-48h360c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24z"]},faExclamation:{prefix:"fas",iconName:"exclamation",icon:[192,512,[],"f12a","M176 432c0 44.112-35.888 80-80 80s-80-35.888-80-80 35.888-80 80-80 80 35.888 80 80zM25.26 25.199l13.6 272C39.499 309.972 50.041 320 62.83 320h66.34c12.789 0 23.331-10.028 23.97-22.801l13.6-272C167.425 11.49 156.496 0 142.77 0H49.23C35.504 0 24.575 11.49 25.26 25.199z"]},faExclamationCircle:{prefix:"fas",iconName:"exclamation-circle",icon:[512,512,[],"f06a","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},faExclamationTriangle:{prefix:"fas",iconName:"exclamation-triangle",icon:[576,512,[],"f071","M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"]},faExpand:{prefix:"fas",iconName:"expand",icon:[448,512,[],"f065","M0 180V56c0-13.3 10.7-24 24-24h124c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12H64v84c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12zM288 44v40c0 6.6 5.4 12 12 12h84v84c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V56c0-13.3-10.7-24-24-24H300c-6.6 0-12 5.4-12 12zm148 276h-40c-6.6 0-12 5.4-12 12v84h-84c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h124c13.3 0 24-10.7 24-24V332c0-6.6-5.4-12-12-12zM160 468v-40c0-6.6-5.4-12-12-12H64v-84c0-6.6-5.4-12-12-12H12c-6.6 0-12 5.4-12 12v124c0 13.3 10.7 24 24 24h124c6.6 0 12-5.4 12-12z"]},faExpandAlt:{prefix:"fas",iconName:"expand-alt",icon:[448,512,[],"f424","M212.686 315.314L120 408l32.922 31.029c15.12 15.12 4.412 40.971-16.97 40.971h-112C10.697 480 0 469.255 0 456V344c0-21.382 25.803-32.09 40.922-16.971L72 360l92.686-92.686c6.248-6.248 16.379-6.248 22.627 0l25.373 25.373c6.249 6.248 6.249 16.378 0 22.627zm22.628-118.628L328 104l-32.922-31.029C279.958 57.851 290.666 32 312.048 32h112C437.303 32 448 42.745 448 56v112c0 21.382-25.803 32.09-40.922 16.971L376 152l-92.686 92.686c-6.248 6.248-16.379 6.248-22.627 0l-25.373-25.373c-6.249-6.248-6.249-16.378 0-22.627z"]},faExpandArrowsAlt:{prefix:"fas",iconName:"expand-arrows-alt",icon:[448,512,[],"f31e","M448 344v112a23.94 23.94 0 0 1-24 24H312c-21.39 0-32.09-25.9-17-41l36.2-36.2L224 295.6 116.77 402.9 153 439c15.09 15.1 4.39 41-17 41H24a23.94 23.94 0 0 1-24-24V344c0-21.4 25.89-32.1 41-17l36.19 36.2L184.46 256 77.18 148.7 41 185c-15.1 15.1-41 4.4-41-17V56a23.94 23.94 0 0 1 24-24h112c21.39 0 32.09 25.9 17 41l-36.2 36.2L224 216.4l107.23-107.3L295 73c-15.09-15.1-4.39-41 17-41h112a23.94 23.94 0 0 1 24 24v112c0 21.4-25.89 32.1-41 17l-36.19-36.2L263.54 256l107.28 107.3L407 327.1c15.1-15.2 41-4.5 41 16.9z"]},faExternalLinkAlt:{prefix:"fas",iconName:"external-link-alt",icon:[512,512,[],"f35d","M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z"]},faExternalLinkSquareAlt:{prefix:"fas",iconName:"external-link-square-alt",icon:[448,512,[],"f360","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-88 16H248.029c-21.313 0-32.08 25.861-16.971 40.971l31.984 31.987L67.515 364.485c-4.686 4.686-4.686 12.284 0 16.971l31.029 31.029c4.687 4.686 12.285 4.686 16.971 0l195.526-195.526 31.988 31.991C358.058 263.977 384 253.425 384 231.979V120c0-13.255-10.745-24-24-24z"]},faEye:{prefix:"fas",iconName:"eye",icon:[576,512,[],"f06e","M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"]},faEyeDropper:{prefix:"fas",iconName:"eye-dropper",icon:[512,512,[],"f1fb","M50.75 333.25c-12 12-18.75 28.28-18.75 45.26V424L0 480l32 32 56-32h45.49c16.97 0 33.25-6.74 45.25-18.74l126.64-126.62-128-128L50.75 333.25zM483.88 28.12c-37.47-37.5-98.28-37.5-135.75 0l-77.09 77.09-13.1-13.1c-9.44-9.44-24.65-9.31-33.94 0l-40.97 40.97c-9.37 9.37-9.37 24.57 0 33.94l161.94 161.94c9.44 9.44 24.65 9.31 33.94 0L419.88 288c9.37-9.37 9.37-24.57 0-33.94l-13.1-13.1 77.09-77.09c37.51-37.48 37.51-98.26.01-135.75z"]},faEyeSlash:o,faFan:{prefix:"fas",iconName:"fan",icon:[512,512,[],"f863","M352.57 128c-28.09 0-54.09 4.52-77.06 12.86l12.41-123.11C289 7.31 279.81-1.18 269.33.13 189.63 10.13 128 77.64 128 159.43c0 28.09 4.52 54.09 12.86 77.06L17.75 224.08C7.31 223-1.18 232.19.13 242.67c10 79.7 77.51 141.33 159.3 141.33 28.09 0 54.09-4.52 77.06-12.86l-12.41 123.11c-1.05 10.43 8.11 18.93 18.59 17.62 79.7-10 141.33-77.51 141.33-159.3 0-28.09-4.52-54.09-12.86-77.06l123.11 12.41c10.44 1.05 18.93-8.11 17.62-18.59-10-79.7-77.51-141.33-159.3-141.33zM256 288a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]},faFastBackward:{prefix:"fas",iconName:"fast-backward",icon:[512,512,[],"f049","M0 436V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v151.9L235.5 71.4C256.1 54.3 288 68.6 288 96v131.9L459.5 71.4C480.1 54.3 512 68.6 512 96v320c0 27.4-31.9 41.7-52.5 24.6L288 285.3V416c0 27.4-31.9 41.7-52.5 24.6L64 285.3V436c0 6.6-5.4 12-12 12H12c-6.6 0-12-5.4-12-12z"]},faFastForward:{prefix:"fas",iconName:"fast-forward",icon:[512,512,[],"f050","M512 76v360c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V284.1L276.5 440.6c-20.6 17.2-52.5 2.8-52.5-24.6V284.1L52.5 440.6C31.9 457.8 0 443.4 0 416V96c0-27.4 31.9-41.7 52.5-24.6L224 226.8V96c0-27.4 31.9-41.7 52.5-24.6L448 226.8V76c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12z"]},faFaucet:{prefix:"fas",iconName:"faucet",icon:[512,512,[],"e005","M352,256H313.39c-15.71-13.44-35.46-23.07-57.39-28V180.44l-32-3.38-32,3.38V228c-21.93,5-41.68,14.6-57.39,28H16A16,16,0,0,0,0,272v96a16,16,0,0,0,16,16h92.79C129.38,421.73,173,448,224,448s94.62-26.27,115.21-64H352a32,32,0,0,1,32,32,32,32,0,0,0,32,32h64a32,32,0,0,0,32-32A160,160,0,0,0,352,256ZM81.59,159.91l142.41-15,142.41,15c9.42,1,17.59-6.81,17.59-16.8V112.89c0-10-8.17-17.8-17.59-16.81L256,107.74V80a16,16,0,0,0-16-16H208a16,16,0,0,0-16,16v27.74L81.59,96.08C72.17,95.09,64,102.9,64,112.89v30.22C64,153.1,72.17,160.91,81.59,159.91Z"]},faFax:{prefix:"fas",iconName:"fax",icon:[512,512,[],"f1ac","M480 160V77.25a32 32 0 0 0-9.38-22.63L425.37 9.37A32 32 0 0 0 402.75 0H160a32 32 0 0 0-32 32v448a32 32 0 0 0 32 32h320a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM288 432a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm128 128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-128a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32a16 16 0 0 1 16 16zm0-112H192V64h160v48a16 16 0 0 0 16 16h48zM64 128H32a32 32 0 0 0-32 32v320a32 32 0 0 0 32 32h32a32 32 0 0 0 32-32V160a32 32 0 0 0-32-32z"]},faFeather:{prefix:"fas",iconName:"feather",icon:[512,512,[],"f52d","M467.14 44.84c-62.55-62.48-161.67-64.78-252.28 25.73-78.61 78.52-60.98 60.92-85.75 85.66-60.46 60.39-70.39 150.83-63.64 211.17l178.44-178.25c6.26-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.6 9.37 33.98 0l66.1-66.03C159.42 454.65 279 457.11 353.95 384h-98.19l147.57-49.14c49.99-49.93 36.38-36.18 46.31-46.86h-97.78l131.54-43.8c45.44-74.46 34.31-148.84-16.26-199.36z"]},faFeatherAlt:{prefix:"fas",iconName:"feather-alt",icon:[512,512,[],"f56b","M512 0C460.22 3.56 96.44 38.2 71.01 287.61c-3.09 26.66-4.84 53.44-5.99 80.24l178.87-178.69c6.25-6.25 16.4-6.25 22.65 0s6.25 16.38 0 22.63L7.04 471.03c-9.38 9.37-9.38 24.57 0 33.94 9.38 9.37 24.59 9.37 33.98 0l57.13-57.07c42.09-.14 84.15-2.53 125.96-7.36 53.48-5.44 97.02-26.47 132.58-56.54H255.74l146.79-48.88c11.25-14.89 21.37-30.71 30.45-47.12h-81.14l106.54-53.21C500.29 132.86 510.19 26.26 512 0z"]},faFemale:{prefix:"fas",iconName:"female",icon:[256,512,[],"f182","M128 0c35.346 0 64 28.654 64 64s-28.654 64-64 64c-35.346 0-64-28.654-64-64S92.654 0 128 0m119.283 354.179l-48-192A24 24 0 0 0 176 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H80a24 24 0 0 0-23.283 18.179l-48 192C4.935 369.305 16.383 384 32 384h56v104c0 13.255 10.745 24 24 24h32c13.255 0 24-10.745 24-24V384h56c15.591 0 27.071-14.671 23.283-29.821z"]},faFighterJet:{prefix:"fas",iconName:"fighter-jet",icon:[640,512,[],"f0fb","M544 224l-128-16-48-16h-24L227.158 44h39.509C278.333 44 288 41.375 288 38s-9.667-6-21.333-6H152v12h16v164h-48l-66.667-80H18.667L8 138.667V208h8v16h48v2.666l-64 8v42.667l64 8V288H16v16H8v69.333L18.667 384h34.667L120 304h48v164h-16v12h114.667c11.667 0 21.333-2.625 21.333-6s-9.667-6-21.333-6h-39.509L344 320h24l48-16 128-16c96-21.333 96-26.583 96-32 0-5.417 0-10.667-96-32z"]},faFile:{prefix:"fas",iconName:"file",icon:[384,512,[],"f15b","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm160-14.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileAlt:{prefix:"fas",iconName:"file-alt",icon:[384,512,[],"f15c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 236c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-64c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12v8zm0-72v8c0 6.6-5.4 12-12 12H108c-6.6 0-12-5.4-12-12v-8c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm96-114.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileArchive:{prefix:"fas",iconName:"file-archive",icon:[384,512,[],"f1c6","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zM128.4 336c-17.9 0-32.4 12.1-32.4 27 0 15 14.6 27 32.5 27s32.4-12.1 32.4-27-14.6-27-32.5-27zM224 136V0h-63.6v32h-32V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM95.9 32h32v32h-32zm32.3 384c-33.2 0-58-30.4-51.4-62.9L96.4 256v-32h32v-32h-32v-32h32v-32h-32V96h32V64h32v32h-32v32h32v32h-32v32h32v32h-32v32h22.1c5.7 0 10.7 4.1 11.8 9.7l17.3 87.7c6.4 32.4-18.4 62.6-51.4 62.6z"]},faFileAudio:{prefix:"fas",iconName:"file-audio",icon:[384,512,[],"f1c7","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-64 268c0 10.7-12.9 16-20.5 8.5L104 376H76c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h28l35.5-36.5c7.6-7.6 20.5-2.2 20.5 8.5v136zm33.2-47.6c9.1-9.3 9.1-24.1 0-33.4-22.1-22.8 12.2-56.2 34.4-33.5 27.2 27.9 27.2 72.4 0 100.4-21.8 22.3-56.9-10.4-34.4-33.5zm86-117.1c54.4 55.9 54.4 144.8 0 200.8-21.8 22.4-57-10.3-34.4-33.5 36.2-37.2 36.3-96.5 0-133.8-22.1-22.8 12.3-56.3 34.4-33.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileCode:{prefix:"fas",iconName:"file-code",icon:[384,512,[],"f1c9","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zM123.206 400.505a5.4 5.4 0 0 1-7.633.246l-64.866-60.812a5.4 5.4 0 0 1 0-7.879l64.866-60.812a5.4 5.4 0 0 1 7.633.246l19.579 20.885a5.4 5.4 0 0 1-.372 7.747L101.65 336l40.763 35.874a5.4 5.4 0 0 1 .372 7.747l-19.579 20.884zm51.295 50.479l-27.453-7.97a5.402 5.402 0 0 1-3.681-6.692l61.44-211.626a5.402 5.402 0 0 1 6.692-3.681l27.452 7.97a5.4 5.4 0 0 1 3.68 6.692l-61.44 211.626a5.397 5.397 0 0 1-6.69 3.681zm160.792-111.045l-64.866 60.812a5.4 5.4 0 0 1-7.633-.246l-19.58-20.885a5.4 5.4 0 0 1 .372-7.747L284.35 336l-40.763-35.874a5.4 5.4 0 0 1-.372-7.747l19.58-20.885a5.4 5.4 0 0 1 7.633-.246l64.866 60.812a5.4 5.4 0 0 1-.001 7.879z"]},faFileContract:{prefix:"fas",iconName:"file-contract",icon:[384,512,[],"f56c","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm192.81 248H304c8.84 0 16 7.16 16 16s-7.16 16-16 16h-47.19c-16.45 0-31.27-9.14-38.64-23.86-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34a15.986 15.986 0 0 1-14.31 8.84c-.38 0-.75-.02-1.14-.05-6.45-.45-12-4.75-14.03-10.89L144 354.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.77-16.19 54.05-9.7 66 14.16 2.02 4.06 5.96 6.5 10.16 6.5zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileCsv:{prefix:"fas",iconName:"file-csv",icon:[384,512,[],"f6dd","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm-96 144c0 4.42-3.58 8-8 8h-8c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h8c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-8c-26.51 0-48-21.49-48-48v-32c0-26.51 21.49-48 48-48h8c4.42 0 8 3.58 8 8v16zm44.27 104H160c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h12.27c5.95 0 10.41-3.5 10.41-6.62 0-1.3-.75-2.66-2.12-3.84l-21.89-18.77c-8.47-7.22-13.33-17.48-13.33-28.14 0-21.3 19.02-38.62 42.41-38.62H200c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8h-12.27c-5.95 0-10.41 3.5-10.41 6.62 0 1.3.75 2.66 2.12 3.84l21.89 18.77c8.47 7.22 13.33 17.48 13.33 28.14.01 21.29-19 38.62-42.39 38.62zM256 264v20.8c0 20.27 5.7 40.17 16 56.88 10.3-16.7 16-36.61 16-56.88V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v20.8c0 35.48-12.88 68.89-36.28 94.09-3.02 3.25-7.27 5.11-11.72 5.11s-8.7-1.86-11.72-5.11c-23.4-25.2-36.28-58.61-36.28-94.09V264c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8zm121-159L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileDownload:{prefix:"fas",iconName:"file-download",icon:[384,512,[],"f56d","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm76.45 211.36l-96.42 95.7c-6.65 6.61-17.39 6.61-24.04 0l-96.42-95.7C73.42 337.29 80.54 320 94.82 320H160v-80c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v80h65.18c14.28 0 21.4 17.29 11.27 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileExcel:{prefix:"fas",iconName:"file-excel",icon:[384,512,[],"f1c3","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm60.1 106.5L224 336l60.1 93.5c5.1 8-.6 18.5-10.1 18.5h-34.9c-4.4 0-8.5-2.4-10.6-6.3C208.9 405.5 192 373 192 373c-6.4 14.8-10 20-36.6 68.8-2.1 3.9-6.1 6.3-10.5 6.3H110c-9.5 0-15.2-10.5-10.1-18.5l60.3-93.5-60.3-93.5c-5.2-8 .6-18.5 10.1-18.5h34.8c4.4 0 8.5 2.4 10.6 6.3 26.1 48.8 20 33.6 36.6 68.5 0 0 6.1-11.7 36.6-68.5 2.1-3.9 6.2-6.3 10.6-6.3H274c9.5-.1 15.2 10.4 10.1 18.4zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileExport:{prefix:"fas",iconName:"file-export",icon:[576,512,[],"f56e","M384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128zM571 308l-95.7-96.4c-10.1-10.1-27.4-3-27.4 11.3V288h-64v64h64v65.2c0 14.3 17.3 21.4 27.4 11.3L571 332c6.6-6.6 6.6-17.4 0-24zm-379 28v-32c0-8.8 7.2-16 16-16h176V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V352H208c-8.8 0-16-7.2-16-16z"]},faFileImage:{prefix:"fas",iconName:"file-image",icon:[384,512,[],"f1c5","M384 121.941V128H256V0h6.059a24 24 0 0 1 16.97 7.029l97.941 97.941a24.002 24.002 0 0 1 7.03 16.971zM248 160c-13.2 0-24-10.8-24-24V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248zm-135.455 16c26.51 0 48 21.49 48 48s-21.49 48-48 48-48-21.49-48-48 21.491-48 48-48zm208 240h-256l.485-48.485L104.545 328c4.686-4.686 11.799-4.201 16.485.485L160.545 368 264.06 264.485c4.686-4.686 12.284-4.686 16.971 0L320.545 304v112z"]},faFileImport:{prefix:"fas",iconName:"file-import",icon:[512,512,[],"f56f","M16 288c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h112v-64zm489-183L407.1 7c-4.5-4.5-10.6-7-17-7H384v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H152c-13.3 0-24 10.7-24 24v264h128v-65.2c0-14.3 17.3-21.4 27.4-11.3L379 308c6.6 6.7 6.6 17.4 0 24l-95.7 96.4c-10.1 10.1-27.4 3-27.4-11.3V352H128v136c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H376c-13.2 0-24-10.8-24-24z"]},faFileInvoice:{prefix:"fas",iconName:"file-invoice",icon:[384,512,[],"f570","M288 256H96v64h192v-64zm89-151L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 64c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm256 304c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-200v96c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-96c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16z"]},faFileInvoiceDollar:{prefix:"fas",iconName:"file-invoice-dollar",icon:[384,512,[],"f571","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zM64 72c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8V72zm0 80v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8zm144 263.88V440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-24.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V232c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v24.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07z"]},faFileMedical:{prefix:"fas",iconName:"file-medical",icon:[384,512,[],"f477","M377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm64 160v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8z"]},faFileMedicalAlt:{prefix:"fas",iconName:"file-medical-alt",icon:[448,512,[],"f478","M288 136V0H88C74.7 0 64 10.7 64 24v232H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h140.9c3 0 5.8 1.7 7.2 4.4l19.9 39.8 56.8-113.7c2.9-5.9 11.4-5.9 14.3 0l34.7 69.5H352c8.8 0 16 7.2 16 16s-7.2 16-16 16h-89.9L240 275.8l-56.8 113.7c-2.9 5.9-11.4 5.9-14.3 0L134.1 320H64v168c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H312c-13.2 0-24-10.8-24-24zm153-31L343.1 7c-4.5-4.5-10.6-7-17-7H320v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFilePdf:{prefix:"fas",iconName:"file-pdf",icon:[384,512,[],"f1c1","M181.9 256.1c-5-16-4.9-46.9-2-46.9 8.4 0 7.6 36.9 2 46.9zm-1.7 47.2c-7.7 20.2-17.3 43.3-28.4 62.7 18.3-7 39-17.2 62.9-21.9-12.7-9.6-24.9-23.4-34.5-40.8zM86.1 428.1c0 .8 13.2-5.4 34.9-40.2-6.7 6.3-29.1 24.5-34.9 40.2zM248 160h136v328c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V24C0 10.7 10.7 0 24 0h200v136c0 13.2 10.8 24 24 24zm-8 171.8c-20-12.2-33.3-29-42.7-53.8 4.5-18.5 11.6-46.6 6.2-64.2-4.7-29.4-42.4-26.5-47.8-6.8-5 18.3-.4 44.1 8.1 77-11.6 27.6-28.7 64.6-40.8 85.8-.1 0-.1.1-.2.1-27.1 13.9-73.6 44.5-54.5 68 5.6 6.9 16 10 21.5 10 17.9 0 35.7-18 61.1-61.8 25.8-8.5 54.1-19.1 79-23.2 21.7 11.8 47.1 19.5 64 19.5 29.2 0 31.2-32 19.7-43.4-13.9-13.6-54.3-9.7-73.6-7.2zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-74.1 255.3c4.1-2.7-2.5-11.9-42.8-9 37.1 15.8 42.8 9 42.8 9z"]},faFilePowerpoint:{prefix:"fas",iconName:"file-powerpoint",icon:[384,512,[],"f1c4","M193.7 271.2c8.8 0 15.5 2.7 20.3 8.1 9.6 10.9 9.8 32.7-.2 44.1-4.9 5.6-11.9 8.5-21.1 8.5h-26.9v-60.7h27.9zM377 105L279 7c-4.5-4.5-10.6-7-17-7h-6v128h128v-6.1c0-6.3-2.5-12.4-7-16.9zm-153 31V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm53 165.2c0 90.3-88.8 77.6-111.1 77.6V436c0 6.6-5.4 12-12 12h-30.8c-6.6 0-12-5.4-12-12V236.2c0-6.6 5.4-12 12-12h81c44.5 0 72.9 32.8 72.9 77z"]},faFilePrescription:{prefix:"fas",iconName:"file-prescription",icon:[384,512,[],"f572","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm68.53 179.48l11.31 11.31c6.25 6.25 6.25 16.38 0 22.63l-29.9 29.9L304 409.38c6.25 6.25 6.25 16.38 0 22.63l-11.31 11.31c-6.25 6.25-16.38 6.25-22.63 0L240 413.25l-30.06 30.06c-6.25 6.25-16.38 6.25-22.63 0L176 432c-6.25-6.25-6.25-16.38 0-22.63l30.06-30.06L146.74 320H128v48c0 8.84-7.16 16-16 16H96c-8.84 0-16-7.16-16-16V208c0-8.84 7.16-16 16-16h80c35.35 0 64 28.65 64 64 0 24.22-13.62 45.05-33.46 55.92L240 345.38l29.9-29.9c6.25-6.25 16.38-6.25 22.63 0zM176 272h-48v-32h48c8.82 0 16 7.18 16 16s-7.18 16-16 16zm208-150.1v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFileSignature:{prefix:"fas",iconName:"file-signature",icon:[576,512,[],"f573","M218.17 424.14c-2.95-5.92-8.09-6.52-10.17-6.52s-7.22.59-10.02 6.19l-7.67 15.34c-6.37 12.78-25.03 11.37-29.48-2.09L144 386.59l-10.61 31.88c-5.89 17.66-22.38 29.53-41 29.53H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h12.39c4.83 0 9.11-3.08 10.64-7.66l18.19-54.64c3.3-9.81 12.44-16.41 22.78-16.41s19.48 6.59 22.77 16.41l13.88 41.64c19.75-16.19 54.06-9.7 66 14.16 1.89 3.78 5.49 5.95 9.36 6.26v-82.12l128-127.09V160H248c-13.2 0-24-10.8-24-24V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24v-40l-128-.11c-16.12-.31-30.58-9.28-37.83-23.75zM384 121.9c0-6.3-2.5-12.4-7-16.9L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1zm-96 225.06V416h68.99l161.68-162.78-67.88-67.88L288 346.96zm280.54-179.63l-31.87-31.87c-9.94-9.94-26.07-9.94-36.01 0l-27.25 27.25 67.88 67.88 27.25-27.25c9.95-9.94 9.95-26.07 0-36.01z"]},faFileUpload:{prefix:"fas",iconName:"file-upload",icon:[384,512,[],"f574","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm65.18 216.01H224v80c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-80H94.82c-14.28 0-21.41-17.29-11.27-27.36l96.42-95.7c6.65-6.61 17.39-6.61 24.04 0l96.42 95.7c10.15 10.07 3.03 27.36-11.25 27.36zM377 105L279.1 7c-4.5-4.5-10.6-7-17-7H256v128h128v-6.1c0-6.3-2.5-12.4-7-16.9z"]},faFileVideo:{prefix:"fas",iconName:"file-video",icon:[384,512,[],"f1c8","M384 121.941V128H256V0h6.059c6.365 0 12.47 2.529 16.971 7.029l97.941 97.941A24.005 24.005 0 0 1 384 121.941zM224 136V0H24C10.745 0 0 10.745 0 24v464c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V160H248c-13.2 0-24-10.8-24-24zm96 144.016v111.963c0 21.445-25.943 31.998-40.971 16.971L224 353.941V392c0 13.255-10.745 24-24 24H88c-13.255 0-24-10.745-24-24V280c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v38.059l55.029-55.013c15.011-15.01 40.971-4.491 40.971 16.97z"]},faFileWord:{prefix:"fas",iconName:"file-word",icon:[384,512,[],"f1c2","M224 136V0H24C10.7 0 0 10.7 0 24v464c0 13.3 10.7 24 24 24h336c13.3 0 24-10.7 24-24V160H248c-13.2 0-24-10.8-24-24zm57.1 120H305c7.7 0 13.4 7.1 11.7 14.7l-38 168c-1.2 5.5-6.1 9.3-11.7 9.3h-38c-5.5 0-10.3-3.8-11.6-9.1-25.8-103.5-20.8-81.2-25.6-110.5h-.5c-1.1 14.3-2.4 17.4-25.6 110.5-1.3 5.3-6.1 9.1-11.6 9.1H117c-5.6 0-10.5-3.9-11.7-9.4l-37.8-168c-1.7-7.5 4-14.6 11.7-14.6h24.5c5.7 0 10.7 4 11.8 9.7 15.6 78 20.1 109.5 21 122.2 1.6-10.2 7.3-32.7 29.4-122.7 1.3-5.4 6.1-9.1 11.7-9.1h29.1c5.6 0 10.4 3.8 11.7 9.2 24 100.4 28.8 124 29.6 129.4-.2-11.2-2.6-17.8 21.6-129.2 1-5.6 5.9-9.5 11.5-9.5zM384 121.9v6.1H256V0h6.1c6.4 0 12.5 2.5 17 7l97.9 98c4.5 4.5 7 10.6 7 16.9z"]},faFill:{prefix:"fas",iconName:"fill",icon:[512,512,[],"f575","M502.63 217.06L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.77c-6.24-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.63l86.19 86.18-94.76 94.76c-37.49 37.49-37.49 98.26 0 135.75l117.19 117.19c18.75 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.88-28.12l221.57-221.57c12.49-12.5 12.49-32.76 0-45.26zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.61 58.6c12.49 12.49 32.75 12.49 45.24 0 12.49-12.49 12.49-32.75 0-45.24l-58.61-58.6 58.95-58.95 162.45 162.44-48.35 48.34z"]},faFillDrip:{prefix:"fas",iconName:"fill-drip",icon:[576,512,[],"f576","M512 320s-64 92.65-64 128c0 35.35 28.66 64 64 64s64-28.65 64-64-64-128-64-128zm-9.37-102.94L294.94 9.37C288.69 3.12 280.5 0 272.31 0s-16.38 3.12-22.62 9.37l-81.58 81.58L81.93 4.76c-6.25-6.25-16.38-6.25-22.62 0L36.69 27.38c-6.24 6.25-6.24 16.38 0 22.62l86.19 86.18-94.76 94.76c-37.49 37.48-37.49 98.26 0 135.75l117.19 117.19c18.74 18.74 43.31 28.12 67.87 28.12 24.57 0 49.13-9.37 67.87-28.12l221.57-221.57c12.5-12.5 12.5-32.75.01-45.25zm-116.22 70.97H65.93c1.36-3.84 3.57-7.98 7.43-11.83l13.15-13.15 81.61-81.61 58.6 58.6c12.49 12.49 32.75 12.49 45.24 0s12.49-32.75 0-45.24l-58.6-58.6 58.95-58.95 162.44 162.44-48.34 48.34z"]},faFilm:{prefix:"fas",iconName:"film",icon:[512,512,[],"f008","M488 64h-8v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12V64H96v20c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12V64h-8C10.7 64 0 74.7 0 88v336c0 13.3 10.7 24 24 24h8v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h320v-20c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v20h8c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24zM96 372c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12H44c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm272 208c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm0-168c0 6.6-5.4 12-12 12H156c-6.6 0-12-5.4-12-12v-96c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v96zm112 152c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-96c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]},faFilter:{prefix:"fas",iconName:"filter",icon:[512,512,[],"f0b0","M487.976 0H24.028C2.71 0-8.047 25.866 7.058 40.971L192 225.941V432c0 7.831 3.821 15.17 10.237 19.662l80 55.98C298.02 518.69 320 507.493 320 487.98V225.941l184.947-184.97C520.021 25.896 509.338 0 487.976 0z"]},faFingerprint:{prefix:"fas",iconName:"fingerprint",icon:[512,512,[],"f577","M256.12 245.96c-13.25 0-24 10.74-24 24 1.14 72.25-8.14 141.9-27.7 211.55-2.73 9.72 2.15 30.49 23.12 30.49 10.48 0 20.11-6.92 23.09-17.52 13.53-47.91 31.04-125.41 29.48-224.52.01-13.25-10.73-24-23.99-24zm-.86-81.73C194 164.16 151.25 211.3 152.1 265.32c.75 47.94-3.75 95.91-13.37 142.55-2.69 12.98 5.67 25.69 18.64 28.36 13.05 2.67 25.67-5.66 28.36-18.64 10.34-50.09 15.17-101.58 14.37-153.02-.41-25.95 19.92-52.49 54.45-52.34 31.31.47 57.15 25.34 57.62 55.47.77 48.05-2.81 96.33-10.61 143.55-2.17 13.06 6.69 25.42 19.76 27.58 19.97 3.33 26.81-15.1 27.58-19.77 8.28-50.03 12.06-101.21 11.27-152.11-.88-55.8-47.94-101.88-104.91-102.72zm-110.69-19.78c-10.3-8.34-25.37-6.8-33.76 3.48-25.62 31.5-39.39 71.28-38.75 112 .59 37.58-2.47 75.27-9.11 112.05-2.34 13.05 6.31 25.53 19.36 27.89 20.11 3.5 27.07-14.81 27.89-19.36 7.19-39.84 10.5-80.66 9.86-121.33-.47-29.88 9.2-57.88 28-80.97 8.35-10.28 6.79-25.39-3.49-33.76zm109.47-62.33c-15.41-.41-30.87 1.44-45.78 4.97-12.89 3.06-20.87 15.98-17.83 28.89 3.06 12.89 16 20.83 28.89 17.83 11.05-2.61 22.47-3.77 34-3.69 75.43 1.13 137.73 61.5 138.88 134.58.59 37.88-1.28 76.11-5.58 113.63-1.5 13.17 7.95 25.08 21.11 26.58 16.72 1.95 25.51-11.88 26.58-21.11a929.06 929.06 0 0 0 5.89-119.85c-1.56-98.75-85.07-180.33-186.16-181.83zm252.07 121.45c-2.86-12.92-15.51-21.2-28.61-18.27-12.94 2.86-21.12 15.66-18.26 28.61 4.71 21.41 4.91 37.41 4.7 61.6-.11 13.27 10.55 24.09 23.8 24.2h.2c13.17 0 23.89-10.61 24-23.8.18-22.18.4-44.11-5.83-72.34zm-40.12-90.72C417.29 43.46 337.6 1.29 252.81.02 183.02-.82 118.47 24.91 70.46 72.94 24.09 119.37-.9 181.04.14 246.65l-.12 21.47c-.39 13.25 10.03 24.31 23.28 24.69.23.02.48.02.72.02 12.92 0 23.59-10.3 23.97-23.3l.16-23.64c-.83-52.5 19.16-101.86 56.28-139 38.76-38.8 91.34-59.67 147.68-58.86 69.45 1.03 134.73 35.56 174.62 92.39 7.61 10.86 22.56 13.45 33.42 5.86 10.84-7.62 13.46-22.59 5.84-33.43z"]},faFire:{prefix:"fas",iconName:"fire",icon:[384,512,[],"f06d","M216 23.86c0-23.8-30.65-32.77-44.15-13.04C48 191.85 224 200 224 288c0 35.63-29.11 64.46-64.85 63.99-35.17-.45-63.15-29.77-63.15-64.94v-85.51c0-21.7-26.47-32.23-41.43-16.5C27.8 213.16 0 261.33 0 320c0 105.87 86.13 192 192 192s192-86.13 192-192c0-170.29-168-193-168-296.14z"]},faFireAlt:{prefix:"fas",iconName:"fire-alt",icon:[448,512,[],"f7e4","M323.56 51.2c-20.8 19.3-39.58 39.59-56.22 59.97C240.08 73.62 206.28 35.53 168 0 69.74 91.17 0 209.96 0 281.6 0 408.85 100.29 512 224 512s224-103.15 224-230.4c0-53.27-51.98-163.14-124.44-230.4zm-19.47 340.65C282.43 407.01 255.72 416 226.86 416 154.71 416 96 368.26 96 290.75c0-38.61 24.31-72.63 72.79-130.75 6.93 7.98 98.83 125.34 98.83 125.34l58.63-66.88c4.14 6.85 7.91 13.55 11.27 19.97 27.35 52.19 15.81 118.97-33.43 153.42z"]},faFireExtinguisher:{prefix:"fas",iconName:"fire-extinguisher",icon:[448,512,[],"f134","M434.027 26.329l-168 28C254.693 56.218 256 67.8 256 72h-58.332C208.353 36.108 181.446 0 144 0c-39.435 0-66.368 39.676-52.228 76.203-52.039 13.051-75.381 54.213-90.049 90.884-4.923 12.307 1.063 26.274 13.37 31.197 12.317 4.926 26.279-1.075 31.196-13.37C75.058 112.99 106.964 120 168 120v27.076c-41.543 10.862-72 49.235-72 94.129V488c0 13.255 10.745 24 24 24h144c13.255 0 24-10.745 24-24V240c0-44.731-30.596-82.312-72-92.97V120h40c0 2.974-1.703 15.716 10.027 17.671l168 28C441.342 166.89 448 161.25 448 153.834V38.166c0-7.416-6.658-13.056-13.973-11.837zM144 72c-8.822 0-16-7.178-16-16s7.178-16 16-16 16 7.178 16 16-7.178 16-16 16z"]},faFirstAid:{prefix:"fas",iconName:"first-aid",icon:[576,512,[],"f479","M0 80v352c0 26.5 21.5 48 48 48h48V32H48C21.5 32 0 53.5 0 80zm128 400h320V32H128v448zm64-248c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48zM528 32h-48v448h48c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},faFish:{prefix:"fas",iconName:"fish",icon:[576,512,[],"f578","M327.1 96c-89.97 0-168.54 54.77-212.27 101.63L27.5 131.58c-12.13-9.18-30.24.6-27.14 14.66L24.54 256 .35 365.77c-3.1 14.06 15.01 23.83 27.14 14.66l87.33-66.05C158.55 361.23 237.13 416 327.1 416 464.56 416 576 288 576 256S464.56 96 327.1 96zm87.43 184c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24 13.26 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]},faFistRaised:{prefix:"fas",iconName:"fist-raised",icon:[384,512,[],"f6de","M255.98 160V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v146.93c5.02-1.78 10.34-2.93 15.97-2.93h48.03zm128 95.99c-.01-35.34-28.66-63.99-63.99-63.99H207.85c-8.78 0-15.9 7.07-15.9 15.85v.56c0 26.27 21.3 47.59 47.57 47.59h35.26c9.68 0 13.2 3.58 13.2 8v16.2c0 4.29-3.59 7.78-7.88 8-44.52 2.28-64.16 24.71-96.05 72.55l-6.31 9.47a7.994 7.994 0 0 1-11.09 2.22l-13.31-8.88a7.994 7.994 0 0 1-2.22-11.09l6.31-9.47c15.73-23.6 30.2-43.26 47.31-58.08-17.27-5.51-31.4-18.12-38.87-34.45-6.59 3.41-13.96 5.52-21.87 5.52h-32c-12.34 0-23.49-4.81-32-12.48C71.48 251.19 60.33 256 48 256H16c-5.64 0-10.97-1.15-16-2.95v77.93c0 33.95 13.48 66.5 37.49 90.51L63.99 448v64h255.98v-63.96l35.91-35.92A96.035 96.035 0 0 0 384 344.21l-.02-88.22zm-32.01-90.09V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v112h32c11.28 0 21.94 2.31 32 5.9zM16 224h32c8.84 0 16-7.16 16-16V80c0-8.84-7.16-16-16-16H16C7.16 64 0 71.16 0 80v128c0 8.84 7.16 16 16 16zm95.99 0h32c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v160c0 8.84 7.16 16 16 16z"]},faFlag:{prefix:"fas",iconName:"flag",icon:[512,512,[],"f024","M349.565 98.783C295.978 98.783 251.721 64 184.348 64c-24.955 0-47.309 4.384-68.045 12.013a55.947 55.947 0 0 0 3.586-23.562C118.117 24.015 94.806 1.206 66.338.048 34.345-1.254 8 24.296 8 56c0 19.026 9.497 35.825 24 45.945V488c0 13.255 10.745 24 24 24h16c13.255 0 24-10.745 24-24v-94.4c28.311-12.064 63.582-22.122 114.435-22.122 53.588 0 97.844 34.783 165.217 34.783 48.169 0 86.667-16.294 122.505-40.858C506.84 359.452 512 349.571 512 339.045v-243.1c0-23.393-24.269-38.87-45.485-29.016-34.338 15.948-76.454 31.854-116.95 31.854z"]},faFlagCheckered:{prefix:"fas",iconName:"flag-checkered",icon:[512,512,[],"f11e","M243.2 189.9V258c26.1 5.9 49.3 15.6 73.6 22.3v-68.2c-26-5.8-49.4-15.5-73.6-22.2zm223.3-123c-34.3 15.9-76.5 31.9-117 31.9C296 98.8 251.7 64 184.3 64c-25 0-47.3 4.4-68 12 2.8-7.3 4.1-15.2 3.6-23.6C118.1 24 94.8 1.2 66.3 0 34.3-1.3 8 24.3 8 56c0 19 9.5 35.8 24 45.9V488c0 13.3 10.7 24 24 24h16c13.3 0 24-10.7 24-24v-94.4c28.3-12.1 63.6-22.1 114.4-22.1 53.6 0 97.8 34.8 165.2 34.8 48.2 0 86.7-16.3 122.5-40.9 8.7-6 13.8-15.8 13.8-26.4V95.9c.1-23.3-24.2-38.8-45.4-29zM169.6 325.5c-25.8 2.7-50 8.2-73.6 16.6v-70.5c26.2-9.3 47.5-15 73.6-17.4zM464 191c-23.6 9.8-46.3 19.5-73.6 23.9V286c24.8-3.4 51.4-11.8 73.6-26v70.5c-25.1 16.1-48.5 24.7-73.6 27.1V286c-27 3.7-47.9 1.5-73.6-5.6v67.4c-23.9-7.4-47.3-16.7-73.6-21.3V258c-19.7-4.4-40.8-6.8-73.6-3.8v-70c-22.4 3.1-44.6 10.2-73.6 20.9v-70.5c33.2-12.2 50.1-19.8 73.6-22v71.6c27-3.7 48.4-1.3 73.6 5.7v-67.4c23.7 7.4 47.2 16.7 73.6 21.3v68.4c23.7 5.3 47.6 6.9 73.6 2.7V143c27-4.8 52.3-13.6 73.6-22.5z"]},faFlagUsa:{prefix:"fas",iconName:"flag-usa",icon:[512,512,[],"f74d","M32 0C14.3 0 0 14.3 0 32v464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32C64 14.3 49.7 0 32 0zm267.9 303.6c-57.2-15.1-111.7-28.8-203.9 11.1V384c185.7-92.2 221.7 53.3 397.5-23.1 11.4-5 18.5-16.5 18.5-28.8v-36c-43.6 17.3-80.2 24.1-112.1 24.1-37.4-.1-68.9-8.4-100-16.6zm0-96c-57.2-15.1-111.7-28.8-203.9 11.1v61.5c94.8-37.6 154.6-22.7 212.1-7.6 57.2 15.1 111.7 28.8 203.9-11.1V200c-43.6 17.3-80.2 24.1-112.1 24.1-37.4 0-68.9-8.3-100-16.5zm9.5-125.9c51.8 15.6 97.4 29 202.6-20.1V30.8c0-25.1-26.8-38.1-49.4-26.6C291.3 91.5 305.4-62.2 96 32.4v151.9c94.8-37.5 154.6-22.7 212.1-7.6 57.2 15 111.7 28.7 203.9-11.1V96.7c-53.6 23.5-93.3 31.4-126.1 31.4s-59-7.8-85.7-15.9c-4-1.2-8.1-2.4-12.1-3.5V75.5c7.2 2 14.3 4.1 21.3 6.2zM160 128.1c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16-7.2 16-16 16zm0-55.8c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm64 47.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16zm0-55.9c-8.8 0-16-7.1-16-16 0-8.8 7.2-16 16-16s16 7.1 16 16c0 8.8-7.2 16-16 16z"]},faFlask:{prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M437.2 403.5L320 215V64h8c13.3 0 24-10.7 24-24V24c0-13.3-10.7-24-24-24H120c-13.3 0-24 10.7-24 24v16c0 13.3 10.7 24 24 24h8v151L10.8 403.5C-18.5 450.6 15.3 512 70.9 512h306.2c55.7 0 89.4-61.5 60.1-108.5zM137.9 320l48.2-77.6c3.7-5.2 5.8-11.6 5.8-18.4V64h64v160c0 6.9 2.2 13.2 5.8 18.4l48.2 77.6h-172z"]},faFlushed:{prefix:"fas",iconName:"flushed",icon:[496,512,[],"f579","M344 200c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm-192 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM80 224c0-39.8 32.2-72 72-72s72 32.2 72 72-32.2 72-72 72-72-32.2-72-72zm232 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-104c-39.8 0-72-32.2-72-72s32.2-72 72-72 72 32.2 72 72-32.2 72-72 72z"]},faFolder:{prefix:"fas",iconName:"folder",icon:[512,512,[],"f07b","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"]},faFolderMinus:{prefix:"fas",iconName:"folder-minus",icon:[512,512,[],"f65d","M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48zm-96 168c0 8.84-7.16 16-16 16H160c-8.84 0-16-7.16-16-16v-16c0-8.84 7.16-16 16-16h192c8.84 0 16 7.16 16 16v16z"]},faFolderOpen:{prefix:"fas",iconName:"folder-open",icon:[576,512,[],"f07c","M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"]},faFolderPlus:{prefix:"fas",iconName:"folder-plus",icon:[512,512,[],"f65e","M464,128H272L208,64H48A48,48,0,0,0,0,112V400a48,48,0,0,0,48,48H464a48,48,0,0,0,48-48V176A48,48,0,0,0,464,128ZM359.5,296a16,16,0,0,1-16,16h-64v64a16,16,0,0,1-16,16h-16a16,16,0,0,1-16-16V312h-64a16,16,0,0,1-16-16V280a16,16,0,0,1,16-16h64V200a16,16,0,0,1,16-16h16a16,16,0,0,1,16,16v64h64a16,16,0,0,1,16,16Z"]},faFont:{prefix:"fas",iconName:"font",icon:[448,512,[],"f031","M432 416h-23.41L277.88 53.69A32 32 0 0 0 247.58 32h-47.16a32 32 0 0 0-30.3 21.69L39.41 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-19.58l23.3-64h152.56l23.3 64H304a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM176.85 272L224 142.51 271.15 272z"]},faFontAwesomeLogoFull:{prefix:"fas",iconName:"font-awesome-logo-full",icon:[3992,512,["Font Awesome"],"f4e6","M454.6 0H57.4C25.9 0 0 25.9 0 57.4v397.3C0 486.1 25.9 512 57.4 512h397.3c31.4 0 57.4-25.9 57.4-57.4V57.4C512 25.9 486.1 0 454.6 0zm-58.9 324.9c0 4.8-4.1 6.9-8.9 8.9-19.2 8.1-39.7 15.7-61.5 15.7-40.5 0-68.7-44.8-163.2 2.5v51.8c0 30.3-45.7 30.2-45.7 0v-250c-9-7-15-17.9-15-30.3 0-21 17.1-38.2 38.2-38.2 21 0 38.2 17.1 38.2 38.2 0 12.2-5.8 23.2-14.9 30.2v21c37.1-12 65.5-34.4 146.1-3.4 26.6 11.4 68.7-15.7 76.5-15.7 5.5 0 10.3 4.1 10.3 8.9v160.4zm432.9-174.2h-137v70.1H825c39.8 0 40.4 62.2 0 62.2H691.6v105.6c0 45.5-70.7 46.4-70.7 0V128.3c0-22 18-39.8 39.8-39.8h167.8c39.6 0 40.5 62.2.1 62.2zm191.1 23.4c-169.3 0-169.1 252.4 0 252.4 169.9 0 169.9-252.4 0-252.4zm0 196.1c-81.6 0-82.1-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm372.4 53.4c-17.5 0-31.4-13.9-31.4-31.4v-117c0-62.4-72.6-52.5-99.1-16.4v133.4c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c43.3-51.6 162.4-60.4 162.4 39.3v141.5c.3 30.4-31.5 31.4-31.7 31.4zm179.7 2.9c-44.3 0-68.3-22.9-68.3-65.8V235.2H1488c-35.6 0-36.7-55.3 0-55.3h15.5v-37.3c0-41.3 63.8-42.1 63.8 0v37.5h24.9c35.4 0 35.7 55.3 0 55.3h-24.9v108.5c0 29.6 26.1 26.3 27.4 26.3 31.4 0 52.6 56.3-22.9 56.3zM1992 123c-19.5-50.2-95.5-50-114.5 0-107.3 275.7-99.5 252.7-99.5 262.8 0 42.8 58.3 51.2 72.1 14.4l13.5-35.9H2006l13 35.9c14.2 37.7 72.1 27.2 72.1-14.4 0-10.1 5.3 6.8-99.1-262.8zm-108.9 179.1l51.7-142.9 51.8 142.9h-103.5zm591.3-85.6l-53.7 176.3c-12.4 41.2-72 41-84 0l-42.3-135.9-42.3 135.9c-12.4 40.9-72 41.2-84.5 0l-54.2-176.3c-12.5-39.4 49.8-56.1 60.2-16.9L2213 342l45.3-139.5c10.9-32.7 59.6-34.7 71.2 0l45.3 139.5 39.3-142.4c10.3-38.3 72.6-23.8 60.3 16.9zm275.4 75.1c0-42.4-33.9-117.5-119.5-117.5-73.2 0-124.4 56.3-124.4 126 0 77.2 55.3 126.4 128.5 126.4 31.7 0 93-11.5 93-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-109 8.4-115.9-43.8h148.3c16.3 0 29.3-13.4 29.3-28.9zM2571 277.7c9.5-73.4 113.9-68.6 118.6 0H2571zm316.7 148.8c-31.4 0-81.6-10.5-96.6-31.9-12.4-17 2.5-39.8 21.8-39.8 16.3 0 36.8 22.9 77.7 22.9 27.4 0 40.4-11 40.4-25.8 0-39.8-142.9-7.4-142.9-102 0-40.4 35.3-75.7 98.6-75.7 31.4 0 74.1 9.9 87.6 29.4 10.8 14.8-1.4 36.2-20.9 36.2-15.1 0-26.7-17.3-66.2-17.3-22.9 0-37.8 10.5-37.8 23.8 0 35.9 142.4 6 142.4 103.1-.1 43.7-37.4 77.1-104.1 77.1zm266.8-252.4c-169.3 0-169.1 252.4 0 252.4 170.1 0 169.6-252.4 0-252.4zm0 196.1c-81.8 0-82-139.8 0-139.8 82.5 0 82.4 139.8 0 139.8zm476.9 22V268.7c0-53.8-61.4-45.8-85.7-10.5v134c0 41.3-63.8 42.1-63.8 0V268.7c0-52.1-59.5-47.4-85.7-10.1v133.6c0 41.5-63.3 41.8-63.3 0V208c0-40 63.1-41.6 63.1 0v3.4c9.9-14.4 41.8-37.3 78.6-37.3 35.3 0 57.7 16.4 66.7 43.8 13.9-21.8 45.8-43.8 82.6-43.8 44.3 0 70.7 23.4 70.7 72.7v145.3c.5 17.3-13.5 31.4-31.9 31.4 3.5.1-31.3 1.1-31.3-31.3zM3992 291.6c0-42.4-32.4-117.5-117.9-117.5-73.2 0-127.5 56.3-127.5 126 0 77.2 58.3 126.4 131.6 126.4 31.7 0 91.5-11.5 91.5-39.8 0-18.3-21.1-31.5-39.3-22.4-49.4 26.2-110.5 8.4-117.5-43.8h149.8c16.3 0 29.1-13.4 29.3-28.9zm-180.5-13.9c9.7-74.4 115.9-68.3 120.1 0h-120.1z"]},faFootballBall:{prefix:"fas",iconName:"football-ball",icon:[496,512,[],"f44e","M481.5 60.3c-4.8-18.2-19.1-32.5-37.3-37.4C420.3 16.5 383 8.9 339.4 8L496 164.8c-.8-43.5-8.2-80.6-14.5-104.5zm-467 391.4c4.8 18.2 19.1 32.5 37.3 37.4 23.9 6.4 61.2 14 104.8 14.9L0 347.2c.8 43.5 8.2 80.6 14.5 104.5zM4.2 283.4L220.4 500c132.5-19.4 248.8-118.7 271.5-271.4L275.6 12C143.1 31.4 26.8 130.7 4.2 283.4zm317.3-123.6c3.1-3.1 8.2-3.1 11.3 0l11.3 11.3c3.1 3.1 3.1 8.2 0 11.3l-28.3 28.3 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-22.6 22.7 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L248 278.6l-22.6 22.6 28.3 28.3c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-28.3-28.3-28.3 28.3c-3.1 3.1-8.2 3.1-11.3 0l-11.3-11.3c-3.1-3.1-3.1-8.2 0-11.3l28.3-28.3-28.3-28.2c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 22.6-22.6-28.3-28.3c-3.1-3.1-3.1-8.2 0-11.3l11.3-11.3c3.1-3.1 8.2-3.1 11.3 0l28.3 28.3 28.3-28.5z"]},faForward:{prefix:"fas",iconName:"forward",icon:[512,512,[],"f04e","M500.5 231.4l-192-160C287.9 54.3 256 68.6 256 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2zm-256 0l-192-160C31.9 54.3 0 68.6 0 96v320c0 27.4 31.9 41.8 52.5 24.6l192-160c15.3-12.8 15.3-36.4 0-49.2z"]},faFrog:{prefix:"fas",iconName:"frog",icon:[576,512,[],"f52e","M446.53 97.43C439.67 60.23 407.19 32 368 32c-39.23 0-71.72 28.29-78.54 65.54C126.75 112.96-.5 250.12 0 416.98.11 451.9 29.08 480 64 480h304c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-79.49l35.8-48.33c24.14-36.23 10.35-88.28-33.71-106.6-23.89-9.93-51.55-4.65-72.24 10.88l-32.76 24.59c-7.06 5.31-17.09 3.91-22.41-3.19-5.3-7.08-3.88-17.11 3.19-22.41l34.78-26.09c36.84-27.66 88.28-27.62 125.13 0 10.87 8.15 45.87 39.06 40.8 93.21L469.62 480H560c8.84 0 16-7.16 16-16 0-17.67-14.33-32-32-32h-53.63l-98.52-104.68 154.44-86.65A58.16 58.16 0 0 0 576 189.94c0-21.4-11.72-40.95-30.48-51.23-40.56-22.22-98.99-41.28-98.99-41.28zM368 136c-13.26 0-24-10.75-24-24 0-13.26 10.74-24 24-24 13.25 0 24 10.74 24 24 0 13.25-10.75 24-24 24z"]},faFrown:{prefix:"fas",iconName:"frown",icon:[496,512,[],"f119","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm170.2 218.2C315.8 367.4 282.9 352 248 352s-67.8 15.4-90.2 42.2c-13.5 16.3-38.1-4.2-24.6-20.5C161.7 339.6 203.6 320 248 320s86.3 19.6 114.7 53.8c13.6 16.2-11 36.7-24.5 20.4z"]},faFrownOpen:{prefix:"fas",iconName:"frown-open",icon:[496,512,[],"f57a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm187.3 183.3c-31.2-9.6-59.4-15.3-75.3-15.3s-44.1 5.7-75.3 15.3c-11.5 3.5-22.5-6.3-20.5-18.1 7-40 60.1-61.2 95.8-61.2s88.8 21.3 95.8 61.2c2 11.9-9.1 21.6-20.5 18.1zM328 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faFunnelDollar:{prefix:"fas",iconName:"funnel-dollar",icon:[640,512,[],"f662","M433.46 165.94l101.2-111.87C554.61 34.12 540.48 0 512.26 0H31.74C3.52 0-10.61 34.12 9.34 54.07L192 256v155.92c0 12.59 5.93 24.44 16 32l79.99 60c20.86 15.64 48.47 6.97 59.22-13.57C310.8 455.38 288 406.35 288 352c0-89.79 62.05-165.17 145.46-186.06zM480 192c-88.37 0-160 71.63-160 160s71.63 160 160 160 160-71.63 160-160-71.63-160-160-160zm16 239.88V448c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V256c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.04 44.44-42.67 45.07z"]},faFutbol:{prefix:"fas",iconName:"futbol",icon:[512,512,[],"f1e3","M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zm-48 0l-.003-.282-26.064 22.741-62.679-58.5 16.454-84.355 34.303 3.072c-24.889-34.216-60.004-60.089-100.709-73.141l13.651 31.939L256 139l-74.953-41.525 13.651-31.939c-40.631 13.028-75.78 38.87-100.709 73.141l34.565-3.073 16.192 84.355-62.678 58.5-26.064-22.741-.003.282c0 43.015 13.497 83.952 38.472 117.991l7.704-33.897 85.138 10.447 36.301 77.826-29.902 17.786c40.202 13.122 84.29 13.148 124.572 0l-29.902-17.786 36.301-77.826 85.138-10.447 7.704 33.897C442.503 339.952 456 299.015 456 256zm-248.102 69.571l-29.894-91.312L256 177.732l77.996 56.527-29.622 91.312h-96.476z"]},faGamepad:{prefix:"fas",iconName:"gamepad",icon:[640,512,[],"f11b","M480.07 96H160a160 160 0 1 0 114.24 272h91.52A160 160 0 1 0 480.07 96zM248 268a12 12 0 0 1-12 12h-52v52a12 12 0 0 1-12 12h-24a12 12 0 0 1-12-12v-52H84a12 12 0 0 1-12-12v-24a12 12 0 0 1 12-12h52v-52a12 12 0 0 1 12-12h24a12 12 0 0 1 12 12v52h52a12 12 0 0 1 12 12zm216 76a40 40 0 1 1 40-40 40 40 0 0 1-40 40zm64-96a40 40 0 1 1 40-40 40 40 0 0 1-40 40z"]},faGasPump:{prefix:"fas",iconName:"gas-pump",icon:[512,512,[],"f52f","M336 448H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm157.2-340.7l-81-81c-6.2-6.2-16.4-6.2-22.6 0l-11.3 11.3c-6.2 6.2-6.2 16.4 0 22.6L416 97.9V160c0 28.1 20.9 51.3 48 55.2V376c0 13.2-10.8 24-24 24s-24-10.8-24-24v-32c0-48.6-39.4-88-88-88h-8V64c0-35.3-28.7-64-64-64H96C60.7 0 32 28.7 32 64v352h288V304h8c22.1 0 40 17.9 40 40v27.8c0 37.7 27 72 64.5 75.9 43 4.3 79.5-29.5 79.5-71.7V152.6c0-17-6.8-33.3-18.8-45.3zM256 192H96V64h160v128z"]},faGavel:{prefix:"fas",iconName:"gavel",icon:[512,512,[],"f0e3","M504.971 199.362l-22.627-22.627c-9.373-9.373-24.569-9.373-33.941 0l-5.657 5.657L329.608 69.255l5.657-5.657c9.373-9.373 9.373-24.569 0-33.941L312.638 7.029c-9.373-9.373-24.569-9.373-33.941 0L154.246 131.48c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l5.657-5.657 39.598 39.598-81.04 81.04-5.657-5.657c-12.497-12.497-32.758-12.497-45.255 0L9.373 412.118c-12.497 12.497-12.497 32.758 0 45.255l45.255 45.255c12.497 12.497 32.758 12.497 45.255 0l114.745-114.745c12.497-12.497 12.497-32.758 0-45.255l-5.657-5.657 81.04-81.04 39.598 39.598-5.657 5.657c-9.373 9.373-9.373 24.569 0 33.941l22.627 22.627c9.373 9.373 24.569 9.373 33.941 0l124.451-124.451c9.372-9.372 9.372-24.568 0-33.941z"]},faGem:{prefix:"fas",iconName:"gem",icon:[576,512,[],"f3a5","M485.5 0L576 160H474.9L405.7 0h79.8zm-128 0l69.2 160H149.3L218.5 0h139zm-267 0h79.8l-69.2 160H0L90.5 0zM0 192h100.7l123 251.7c1.5 3.1-2.7 5.9-5 3.3L0 192zm148.2 0h279.6l-137 318.2c-1 2.4-4.5 2.4-5.5 0L148.2 192zm204.1 251.7l123-251.7H576L357.3 446.9c-2.3 2.7-6.5-.1-5-3.2z"]},faGenderless:{prefix:"fas",iconName:"genderless",icon:[288,512,[],"f22d","M144 176c44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80 35.9-80 80-80m0-64C64.5 112 0 176.5 0 256s64.5 144 144 144 144-64.5 144-144-64.5-144-144-144z"]},faGhost:l,faGift:{prefix:"fas",iconName:"gift",icon:[512,512,[],"f06b","M32 448c0 17.7 14.3 32 32 32h160V320H32v128zm256 32h160c17.7 0 32-14.3 32-32V320H288v160zm192-320h-42.1c6.2-12.1 10.1-25.5 10.1-40 0-48.5-39.5-88-88-88-41.6 0-68.5 21.3-103 68.3-34.5-47-61.4-68.3-103-68.3-48.5 0-88 39.5-88 88 0 14.5 3.8 27.9 10.1 40H32c-17.7 0-32 14.3-32 32v80c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-80c0-17.7-14.3-32-32-32zm-326.1 0c-22.1 0-40-17.9-40-40s17.9-40 40-40c19.9 0 34.6 3.3 86.1 80h-86.1zm206.1 0h-86.1c51.4-76.5 65.7-80 86.1-80 22.1 0 40 17.9 40 40s-17.9 40-40 40z"]},faGifts:{prefix:"fas",iconName:"gifts",icon:[640,512,[],"f79c","M240.6 194.1c1.9-30.8 17.3-61.2 44-79.8C279.4 103.5 268.7 96 256 96h-29.4l30.7-22c7.2-5.1 8.9-15.1 3.7-22.3l-9.3-13c-5.1-7.2-15.1-8.9-22.3-3.7l-32 22.9 11.5-30.6c3.1-8.3-1.1-17.5-9.4-20.6l-15-5.6c-8.3-3.1-17.5 1.1-20.6 9.4l-19.9 53-19.9-53.1C121 2.1 111.8-2.1 103.5 1l-15 5.6C80.2 9.7 76 19 79.2 27.2l11.5 30.6L58.6 35c-7.2-5.1-17.2-3.5-22.3 3.7l-9.3 13c-5.1 7.2-3.5 17.2 3.7 22.3l30.7 22H32c-17.7 0-32 14.3-32 32v352c0 17.7 14.3 32 32 32h168.9c-5.5-9.5-8.9-20.3-8.9-32V256c0-29.9 20.8-55 48.6-61.9zM224 480c0 17.7 14.3 32 32 32h160V384H224v96zm224 32h160c17.7 0 32-14.3 32-32v-96H448v128zm160-288h-20.4c2.6-7.6 4.4-15.5 4.4-23.8 0-35.5-27-72.2-72.1-72.2-48.1 0-75.9 47.7-87.9 75.3-12.1-27.6-39.9-75.3-87.9-75.3-45.1 0-72.1 36.7-72.1 72.2 0 8.3 1.7 16.2 4.4 23.8H256c-17.7 0-32 14.3-32 32v96h192V224h15.3l.7-.2.7.2H448v128h192v-96c0-17.7-14.3-32-32-32zm-272 0c-2.7-1.4-5.1-3-7.2-4.8-7.3-6.4-8.8-13.8-8.8-19 0-9.7 6.4-24.2 24.1-24.2 18.7 0 35.6 27.4 44.5 48H336zm199.2-4.8c-2.1 1.8-4.5 3.4-7.2 4.8h-52.6c8.8-20.3 25.8-48 44.5-48 17.7 0 24.1 14.5 24.1 24.2 0 5.2-1.5 12.6-8.8 19z"]},faGlassCheers:{prefix:"fas",iconName:"glass-cheers",icon:[640,512,[],"f79f","M639.4 433.6c-8.4-20.4-31.8-30.1-52.2-21.6l-22.1 9.2-38.7-101.9c47.9-35 64.8-100.3 34.5-152.8L474.3 16c-8-13.9-25.1-19.7-40-13.6L320 49.8 205.7 2.4c-14.9-6.2-32-.3-40 13.6L79.1 166.5C48.9 219 65.7 284.3 113.6 319.2L74.9 421.1l-22.1-9.2c-20.4-8.5-43.7 1.2-52.2 21.6-1.7 4.1.2 8.8 4.3 10.5l162.3 67.4c4.1 1.7 8.7-.2 10.4-4.3 8.4-20.4-1.2-43.8-21.6-52.3l-22.1-9.2L173.3 342c4.4.5 8.8 1.3 13.1 1.3 51.7 0 99.4-33.1 113.4-85.3l20.2-75.4 20.2 75.4c14 52.2 61.7 85.3 113.4 85.3 4.3 0 8.7-.8 13.1-1.3L506 445.6l-22.1 9.2c-20.4 8.5-30.1 31.9-21.6 52.3 1.7 4.1 6.4 6 10.4 4.3L635.1 444c4-1.7 6-6.3 4.3-10.4zM275.9 162.1l-112.1-46.5 36.5-63.4 94.5 39.2-18.9 70.7zm88.2 0l-18.9-70.7 94.5-39.2 36.5 63.4-112.1 46.5z"]},faGlassMartini:{prefix:"fas",iconName:"glass-martini",icon:[512,512,[],"f000","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6z"]},faGlassMartiniAlt:{prefix:"fas",iconName:"glass-martini-alt",icon:[512,512,[],"f57b","M502.05 57.6C523.3 36.34 508.25 0 478.2 0H33.8C3.75 0-11.3 36.34 9.95 57.6L224 271.64V464h-56c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h240c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40h-56V271.64L502.05 57.6zM443.77 48l-48 48H116.24l-48-48h375.53z"]},faGlassWhiskey:{prefix:"fas",iconName:"glass-whiskey",icon:[512,512,[],"f7a0","M480 32H32C12.5 32-2.4 49.2.3 68.5l56 356.5c4.5 31.5 31.5 54.9 63.4 54.9h273c31.8 0 58.9-23.4 63.4-54.9l55.6-356.5C514.4 49.2 499.5 32 480 32zm-37.4 64l-30 192h-313L69.4 96h373.2z"]},faGlasses:{prefix:"fas",iconName:"glasses",icon:[576,512,[],"f530","M574.1 280.37L528.75 98.66c-5.91-23.7-21.59-44.05-43-55.81-21.44-11.73-46.97-14.11-70.19-6.33l-15.25 5.08c-8.39 2.79-12.92 11.86-10.12 20.24l5.06 15.18c2.79 8.38 11.85 12.91 20.23 10.12l13.18-4.39c10.87-3.62 23-3.57 33.16 1.73 10.29 5.37 17.57 14.56 20.37 25.82l38.46 153.82c-22.19-6.81-49.79-12.46-81.2-12.46-34.77 0-73.98 7.02-114.85 26.74h-73.18c-40.87-19.74-80.08-26.75-114.86-26.75-31.42 0-59.02 5.65-81.21 12.46l38.46-153.83c2.79-11.25 10.09-20.45 20.38-25.81 10.16-5.3 22.28-5.35 33.15-1.73l13.17 4.39c8.38 2.79 17.44-1.74 20.23-10.12l5.06-15.18c2.8-8.38-1.73-17.45-10.12-20.24l-15.25-5.08c-23.22-7.78-48.75-5.41-70.19 6.33-21.41 11.77-37.09 32.11-43 55.8L1.9 280.37A64.218 64.218 0 0 0 0 295.86v70.25C0 429.01 51.58 480 115.2 480h37.12c60.28 0 110.37-45.94 114.88-105.37l2.93-38.63h35.75l2.93 38.63C313.31 434.06 363.4 480 423.68 480h37.12c63.62 0 115.2-50.99 115.2-113.88v-70.25c0-5.23-.64-10.43-1.9-15.5zm-370.72 89.42c-1.97 25.91-24.4 46.21-51.06 46.21H115.2C86.97 416 64 393.62 64 366.11v-37.54c18.12-6.49 43.42-12.92 72.58-12.92 23.86 0 47.26 4.33 69.93 12.92l-3.13 41.22zM512 366.12c0 27.51-22.97 49.88-51.2 49.88h-37.12c-26.67 0-49.1-20.3-51.06-46.21l-3.13-41.22c22.67-8.59 46.08-12.92 69.95-12.92 29.12 0 54.43 6.44 72.55 12.93v37.54z"]},faGlobe:{prefix:"fas",iconName:"globe",icon:[496,512,[],"f0ac","M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z"]},faGlobeAfrica:{prefix:"fas",iconName:"globe-africa",icon:[496,512,[],"f57c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm160 215.5v6.93c0 5.87-3.32 11.24-8.57 13.86l-15.39 7.7a15.485 15.485 0 0 1-15.53-.97l-18.21-12.14a15.52 15.52 0 0 0-13.5-1.81l-2.65.88c-9.7 3.23-13.66 14.79-7.99 23.3l13.24 19.86c2.87 4.31 7.71 6.9 12.89 6.9h8.21c8.56 0 15.5 6.94 15.5 15.5v11.34c0 3.35-1.09 6.62-3.1 9.3l-18.74 24.98c-1.42 1.9-2.39 4.1-2.83 6.43l-4.3 22.83c-.62 3.29-2.29 6.29-4.76 8.56a159.608 159.608 0 0 0-25 29.16l-13.03 19.55a27.756 27.756 0 0 1-23.09 12.36c-10.51 0-20.12-5.94-24.82-15.34a78.902 78.902 0 0 1-8.33-35.29V367.5c0-8.56-6.94-15.5-15.5-15.5h-25.88c-14.49 0-28.38-5.76-38.63-16a54.659 54.659 0 0 1-16-38.63v-14.06c0-17.19 8.1-33.38 21.85-43.7l27.58-20.69a54.663 54.663 0 0 1 32.78-10.93h.89c8.48 0 16.85 1.97 24.43 5.77l14.72 7.36c3.68 1.84 7.93 2.14 11.83.84l47.31-15.77c6.33-2.11 10.6-8.03 10.6-14.7 0-8.56-6.94-15.5-15.5-15.5h-10.09c-4.11 0-8.05-1.63-10.96-4.54l-6.92-6.92a15.493 15.493 0 0 0-10.96-4.54H199.5c-8.56 0-15.5-6.94-15.5-15.5v-4.4c0-7.11 4.84-13.31 11.74-15.04l14.45-3.61c3.74-.94 7-3.23 9.14-6.44l8.08-12.11c2.87-4.31 7.71-6.9 12.89-6.9h24.21c8.56 0 15.5-6.94 15.5-15.5v-21.7C359.23 71.63 422.86 131.02 441.93 208H423.5c-8.56 0-15.5 6.94-15.5 15.5z"]},faGlobeAmericas:{prefix:"fas",iconName:"globe-americas",icon:[496,512,[],"f57d","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm82.29 357.6c-3.9 3.88-7.99 7.95-11.31 11.28-2.99 3-5.1 6.7-6.17 10.71-1.51 5.66-2.73 11.38-4.77 16.87l-17.39 46.85c-13.76 3-28 4.69-42.65 4.69v-27.38c1.69-12.62-7.64-36.26-22.63-51.25-6-6-9.37-14.14-9.37-22.63v-32.01c0-11.64-6.27-22.34-16.46-27.97-14.37-7.95-34.81-19.06-48.81-26.11-11.48-5.78-22.1-13.14-31.65-21.75l-.8-.72a114.792 114.792 0 0 1-18.06-20.74c-9.38-13.77-24.66-36.42-34.59-51.14 20.47-45.5 57.36-82.04 103.2-101.89l24.01 12.01C203.48 89.74 216 82.01 216 70.11v-11.3c7.99-1.29 16.12-2.11 24.39-2.42l28.3 28.3c6.25 6.25 6.25 16.38 0 22.63L264 112l-10.34 10.34c-3.12 3.12-3.12 8.19 0 11.31l4.69 4.69c3.12 3.12 3.12 8.19 0 11.31l-8 8a8.008 8.008 0 0 1-5.66 2.34h-8.99c-2.08 0-4.08.81-5.58 2.27l-9.92 9.65a8.008 8.008 0 0 0-1.58 9.31l15.59 31.19c2.66 5.32-1.21 11.58-7.15 11.58h-5.64c-1.93 0-3.79-.7-5.24-1.96l-9.28-8.06a16.017 16.017 0 0 0-15.55-3.1l-31.17 10.39a11.95 11.95 0 0 0-8.17 11.34c0 4.53 2.56 8.66 6.61 10.69l11.08 5.54c9.41 4.71 19.79 7.16 30.31 7.16s22.59 27.29 32 32h66.75c8.49 0 16.62 3.37 22.63 9.37l13.69 13.69a30.503 30.503 0 0 1 8.93 21.57 46.536 46.536 0 0 1-13.72 32.98zM417 274.25c-5.79-1.45-10.84-5-14.15-9.97l-17.98-26.97a23.97 23.97 0 0 1 0-26.62l19.59-29.38c2.32-3.47 5.5-6.29 9.24-8.15l12.98-6.49C440.2 193.59 448 223.87 448 256c0 8.67-.74 17.16-1.82 25.54L417 274.25z"]},faGlobeAsia:{prefix:"fas",iconName:"globe-asia",icon:[496,512,[],"f57e","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm-11.34 240.23c-2.89 4.82-8.1 7.77-13.72 7.77h-.31c-4.24 0-8.31 1.69-11.31 4.69l-5.66 5.66c-3.12 3.12-3.12 8.19 0 11.31l5.66 5.66c3 3 4.69 7.07 4.69 11.31V304c0 8.84-7.16 16-16 16h-6.11c-6.06 0-11.6-3.42-14.31-8.85l-22.62-45.23c-2.44-4.88-8.95-5.94-12.81-2.08l-19.47 19.46c-3 3-7.07 4.69-11.31 4.69H50.81C49.12 277.55 48 266.92 48 256c0-110.28 89.72-200 200-200 21.51 0 42.2 3.51 61.63 9.82l-50.16 38.53c-5.11 3.41-4.63 11.06.86 13.81l10.83 5.41c5.42 2.71 8.84 8.25 8.84 14.31V216c0 4.42-3.58 8-8 8h-3.06c-3.03 0-5.8-1.71-7.15-4.42-1.56-3.12-5.96-3.29-7.76-.3l-17.37 28.95zM408 358.43c0 4.24-1.69 8.31-4.69 11.31l-9.57 9.57c-3 3-7.07 4.69-11.31 4.69h-15.16c-4.24 0-8.31-1.69-11.31-4.69l-13.01-13.01a26.767 26.767 0 0 0-25.42-7.04l-21.27 5.32c-1.27.32-2.57.48-3.88.48h-10.34c-4.24 0-8.31-1.69-11.31-4.69l-11.91-11.91a8.008 8.008 0 0 1-2.34-5.66v-10.2c0-3.27 1.99-6.21 5.03-7.43l39.34-15.74c1.98-.79 3.86-1.82 5.59-3.05l23.71-16.89a7.978 7.978 0 0 1 4.64-1.48h12.09c3.23 0 6.15 1.94 7.39 4.93l5.35 12.85a4 4 0 0 0 3.69 2.46h3.8c1.78 0 3.35-1.18 3.84-2.88l4.2-14.47c.5-1.71 2.06-2.88 3.84-2.88h6.06c2.21 0 4 1.79 4 4v12.93c0 2.12.84 4.16 2.34 5.66l11.91 11.91c3 3 4.69 7.07 4.69 11.31v24.6z"]},faGlobeEurope:{prefix:"fas",iconName:"globe-europe",icon:[496,512,[],"f7a2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm200 248c0 22.5-3.9 44.2-10.8 64.4h-20.3c-4.3 0-8.4-1.7-11.4-4.8l-32-32.6c-4.5-4.6-4.5-12.1.1-16.7l12.5-12.5v-8.7c0-3-1.2-5.9-3.3-8l-9.4-9.4c-2.1-2.1-5-3.3-8-3.3h-16c-6.2 0-11.3-5.1-11.3-11.3 0-3 1.2-5.9 3.3-8l9.4-9.4c2.1-2.1 5-3.3 8-3.3h32c6.2 0 11.3-5.1 11.3-11.3v-9.4c0-6.2-5.1-11.3-11.3-11.3h-36.7c-8.8 0-16 7.2-16 16v4.5c0 6.9-4.4 13-10.9 15.2l-31.6 10.5c-3.3 1.1-5.5 4.1-5.5 7.6v2.2c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8s-3.6-8-8-8H247c-3 0-5.8 1.7-7.2 4.4l-9.4 18.7c-2.7 5.4-8.2 8.8-14.3 8.8H194c-8.8 0-16-7.2-16-16V199c0-4.2 1.7-8.3 4.7-11.3l20.1-20.1c4.6-4.6 7.2-10.9 7.2-17.5 0-3.4 2.2-6.5 5.5-7.6l40-13.3c1.7-.6 3.2-1.5 4.4-2.7l26.8-26.8c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3H258l-16 16v8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-20c0-2.5 1.2-4.9 3.2-6.4l28.9-21.7c1.9-.1 3.8-.3 5.7-.3C358.3 56 448 145.7 448 256zM130.1 149.1c0-3 1.2-5.9 3.3-8l25.4-25.4c2.1-2.1 5-3.3 8-3.3 6.2 0 11.3 5.1 11.3 11.3v16c0 3-1.2 5.9-3.3 8l-9.4 9.4c-2.1 2.1-5 3.3-8 3.3h-16c-6.2 0-11.3-5.1-11.3-11.3zm128 306.4v-7.1c0-8.8-7.2-16-16-16h-20.2c-10.8 0-26.7-5.3-35.4-11.8l-22.2-16.7c-11.5-8.6-18.2-22.1-18.2-36.4v-23.9c0-16 8.4-30.8 22.1-39l42.9-25.7c7.1-4.2 15.2-6.5 23.4-6.5h31.2c10.9 0 21.4 3.9 29.6 10.9l43.2 37.1h18.3c8.5 0 16.6 3.4 22.6 9.4l17.3 17.3c3.4 3.4 8.1 5.3 12.9 5.3H423c-32.4 58.9-93.8 99.5-164.9 103.1z"]},faGolfBall:{prefix:"fas",iconName:"golf-ball",icon:[416,512,[],"f450","M96 416h224c0 17.7-14.3 32-32 32h-16c-17.7 0-32 14.3-32 32v20c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-20c0-17.7-14.3-32-32-32h-16c-17.7 0-32-14.3-32-32zm320-208c0 74.2-39 139.2-97.5 176h-221C39 347.2 0 282.2 0 208 0 93.1 93.1 0 208 0s208 93.1 208 208zm-180.1 43.9c18.3 0 33.1-14.8 33.1-33.1 0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1zm49.1 46.9c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1zm64-64c0-14.4-9.3-26.3-22.1-30.9 9.6 26.8-15.6 51.3-41.9 41.9 4.6 12.8 16.5 22.1 30.9 22.1 18.3 0 33.1-14.9 33.1-33.1z"]},faGopuram:{prefix:"fas",iconName:"gopuram",icon:[512,512,[],"f664","M496 352h-16V240c0-8.8-7.2-16-16-16h-16v-80c0-8.8-7.2-16-16-16h-16V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16s-16 7.2-16 16v16h-64V16c0-8.8-7.2-16-16-16S96 7.2 96 16v112H80c-8.8 0-16 7.2-16 16v80H48c-8.8 0-16 7.2-16 16v112H16c-8.8 0-16 7.2-16 16v128c0 8.8 7.2 16 16 16h80V352h32V224h32v-96h32v96h-32v128h-32v160h80v-80c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16v80h80V352h-32V224h-32v-96h32v96h32v128h32v160h80c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zM232 176c0-8.8 7.2-16 16-16h16c8.8 0 16 7.2 16 16v48h-48zm56 176h-64v-64c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16z"]},faGraduationCap:{prefix:"fas",iconName:"graduation-cap",icon:[640,512,[],"f19d","M622.34 153.2L343.4 67.5c-15.2-4.67-31.6-4.67-46.79 0L17.66 153.2c-23.54 7.23-23.54 38.36 0 45.59l48.63 14.94c-10.67 13.19-17.23 29.28-17.88 46.9C38.78 266.15 32 276.11 32 288c0 10.78 5.68 19.85 13.86 25.65L20.33 428.53C18.11 438.52 25.71 448 35.94 448h56.11c10.24 0 17.84-9.48 15.62-19.47L82.14 313.65C90.32 307.85 96 298.78 96 288c0-11.57-6.47-21.25-15.66-26.87.76-15.02 8.44-28.3 20.69-36.72L296.6 284.5c9.06 2.78 26.44 6.25 46.79 0l278.95-85.7c23.55-7.24 23.55-38.36 0-45.6zM352.79 315.09c-28.53 8.76-52.84 3.92-65.59 0l-145.02-44.55L128 384c0 35.35 85.96 64 192 64s192-28.65 192-64l-14.18-113.47-145.03 44.56z"]},faGreaterThan:{prefix:"fas",iconName:"greater-than",icon:[384,512,[],"f531","M365.52 209.85L59.22 67.01c-16.06-7.49-35.15-.54-42.64 15.52L3.01 111.61c-7.49 16.06-.54 35.15 15.52 42.64L236.96 256.1 18.49 357.99C2.47 365.46-4.46 384.5 3.01 400.52l13.52 29C24 445.54 43.04 452.47 59.06 445l306.47-142.91a32.003 32.003 0 0 0 18.48-29v-34.23c-.01-12.45-7.21-23.76-18.49-29.01z"]},faGreaterThanEqual:{prefix:"fas",iconName:"greater-than-equal",icon:[448,512,[],"f532","M55.22 107.69l175.56 68.09-175.44 68.05c-18.39 6.03-27.88 24.39-21.2 41l12.09 30.08c6.68 16.61 26.99 25.19 45.38 19.15L393.02 214.2c13.77-4.52 22.98-16.61 22.98-30.17v-15.96c0-13.56-9.21-25.65-22.98-30.17L91.3 17.92c-18.29-6-38.51 2.53-45.15 19.06L34.12 66.9c-6.64 16.53 2.81 34.79 21.1 40.79zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},faGrimace:{prefix:"fas",iconName:"grimace",icon:[496,512,[],"f57f","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM144 400h-8c-17.7 0-32-14.3-32-32v-8h40v40zm0-56h-40v-8c0-17.7 14.3-32 32-32h8v40zm-8-136c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm72 192h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm64 56h-48v-40h48v40zm0-56h-48v-40h48v40zm-8-104c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm64 128c0 17.7-14.3 32-32 32h-8v-40h40v8zm0-24h-40v-40h8c17.7 0 32 14.3 32 32v8z"]},faGrin:{prefix:"fas",iconName:"grin",icon:[496,512,[],"f580","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm80 256c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinAlt:{prefix:"fas",iconName:"grin-alt",icon:[496,512,[],"f581","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm63.7 128.7c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zm-160 0c7.6-11.4 24.7-11.7 32.7 0 12.4 18.4 15.1 36.9 15.7 55.3-.5 18.4-3.3 36.9-15.7 55.3-7.6 11.4-24.7 11.7-32.7 0-12.4-18.4-15.1-36.9-15.7-55.3.5-18.4 3.3-36.9 15.7-55.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinBeam:{prefix:"fas",iconName:"grin-beam",icon:[496,512,[],"f582","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 144c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinBeamSweat:{prefix:"fas",iconName:"grin-beam-sweat",icon:[504,512,[],"f583","M456 128c26.5 0 48-21 48-47 0-20-28.5-60.4-41.6-77.8-3.2-4.3-9.6-4.3-12.8 0C436.5 20.6 408 61 408 81c0 26 21.5 47 48 47zm0 32c-44.1 0-80-35.4-80-79 0-4.4.3-14.2 8.1-32.2C345 23.1 298.3 8 248 8 111 8 0 119 0 256s111 248 248 248 248-111 248-248c0-35.1-7.4-68.4-20.5-98.6-6.3 1.5-12.7 2.6-19.5 2.6zm-128-8c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinHearts:{prefix:"fas",iconName:"grin-hearts",icon:[496,512,[],"f584","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM90.4 183.6c6.7-17.6 26.7-26.7 44.9-21.9l7.1 1.9 2-7.1c5-18.1 22.8-30.9 41.5-27.9 21.4 3.4 34.4 24.2 28.8 44.5L195.3 243c-1.2 4.5-5.9 7.2-10.5 6l-70.2-18.2c-20.4-5.4-31.9-27-24.2-47.2zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm133.4-201.3l-70.2 18.2c-4.5 1.2-9.2-1.5-10.5-6L281.3 173c-5.6-20.3 7.4-41.1 28.8-44.5 18.6-3 36.4 9.8 41.5 27.9l2 7.1 7.1-1.9c18.2-4.7 38.2 4.3 44.9 21.9 7.7 20.3-3.8 41.9-24.2 47.2z"]},faGrinSquint:{prefix:"fas",iconName:"grin-squint",icon:[496,512,[],"f585","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.9 9.4-21.6 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.2 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinSquintTears:{prefix:"fas",iconName:"grin-squint-tears",icon:[512,512,[],"f586","M409.6 111.9c22.6-3.2 73.5-12 88.3-26.8 19.2-19.2 18.9-50.6-.7-70.2S446-5 426.9 14.2c-14.8 14.8-23.5 65.7-26.8 88.3-.8 5.5 3.9 10.2 9.5 9.4zM102.4 400.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm311.7-256.5c-33 3.9-48.6-25.1-45.7-45.7 3.4-24 7.4-42.1 11.5-56.5C285.1-13.4 161.8-.5 80.6 80.6-.5 161.7-13.4 285 41.4 379.9c14.4-4.1 32.4-8 56.5-11.5 33.2-3.9 48.6 25.2 45.7 45.7-3.4 24-7.4 42.1-11.5 56.5 94.8 54.8 218.1 41.9 299.3-39.2s94-204.4 39.2-299.3c-14.4 4.1-32.5 8-56.5 11.5zM255.7 106c3.3-13.2 22.4-11.5 23.6 1.8l4.8 52.3 52.3 4.8c13.4 1.2 14.9 20.3 1.8 23.6l-90.5 22.6c-8.9 2.2-16.7-5.9-14.5-14.5l22.5-90.6zm-90.9 230.3L160 284l-52.3-4.8c-13.4-1.2-14.9-20.3-1.8-23.6l90.5-22.6c8.8-2.2 16.7 5.8 14.5 14.5L188.3 338c-3.1 13.2-22.2 11.7-23.5-1.7zm215.7 44.2c-29.3 29.3-75.7 50.4-116.7 50.4-18.9 0-36.6-4.5-51-14.7-9.8-6.9-8.7-21.8 2-27.2 28.3-14.6 63.9-42.4 97.8-76.3s61.7-69.6 76.3-97.8c5.4-10.5 20.2-11.9 27.3-2 32.3 45.3 7.1 124.7-35.7 167.6z"]},faGrinStars:{prefix:"fas",iconName:"grin-stars",icon:[496,512,[],"f587","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM94.6 168.9l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.2 1 8.9 8.6 4.3 13.2l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L152 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.6-4.7-1.9-12.3 4.3-13.3zM248 432c-60.6 0-134.5-38.3-143.8-93.3-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3zm157.7-249.9l-25.4 24.6 6 34.9c1 6.2-5.3 11-11 7.9L344 233.3l-31.3 16.3c-5.7 3.1-12-1.7-11-7.9l6-34.9-25.4-24.6c-4.5-4.6-1.9-12.2 4.3-13.2l34.9-5 15.5-31.6c2.9-5.8 11-5.8 13.9 0l15.5 31.6 34.9 5c6.3.9 9 8.5 4.4 13.1z"]},faGrinTears:{prefix:"fas",iconName:"grin-tears",icon:[640,512,[],"f588","M102.4 256.1c-22.6 3.2-73.5 12-88.3 26.8-19.1 19.1-18.8 50.6.8 70.2s51 19.9 70.2.7c14.8-14.8 23.5-65.7 26.8-88.3.8-5.5-3.9-10.2-9.5-9.4zm523.4 26.8c-14.8-14.8-65.7-23.5-88.3-26.8-5.5-.8-10.3 3.9-9.5 9.5 3.2 22.6 12 73.5 26.8 88.3 19.2 19.2 50.6 18.9 70.2-.7s20-51.2.8-70.3zm-129.4-12.8c-3.8-26.6 19.1-49.5 45.7-45.7 8.9 1.3 16.8 2.7 24.3 4.1C552.7 104.5 447.7 8 320 8S87.3 104.5 73.6 228.5c7.5-1.4 15.4-2.8 24.3-4.1 33.2-3.9 48.6 25.3 45.7 45.7-11.8 82.3-29.9 100.4-35.8 106.4-.9.9-2 1.6-3 2.5 42.7 74.6 123 125 215.2 125s172.5-50.4 215.2-125.1c-1-.9-2.1-1.5-3-2.5-5.9-5.9-24-24-35.8-106.3zM400 152c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm-160 0c23.8 0 52.7 29.3 56 71.4.7 8.6-10.8 12-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.1-42.1 32-71.4 55.8-71.4zm80 280c-60.6 0-134.5-38.3-143.8-93.3-2-11.7 9.2-21.6 20.7-17.9C227.1 330.5 272 336 320 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-9.3 55-83.2 93.3-143.8 93.3z"]},faGrinTongue:{prefix:"fas",iconName:"grin-tongue",icon:[496,512,[],"f589","M248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.6 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-34.9 134.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]},faGrinTongueSquint:{prefix:"fas",iconName:"grin-tongue-squint",icon:[496,512,[],"f58a","M293.1 374.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.2-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.4-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-33.8 210.3l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.7 4.7 7.7 15.9 0 20.6zm163 30c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.8-4.7-7.8-15.9 0-20.6l80-48c11.7-6.9 23.9 7.7 15.4 18L343.6 208l33.6 40.3z"]},faGrinTongueWink:{prefix:"fas",iconName:"grin-tongue-wink",icon:[496,512,[],"f58b","M344 184c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zM248 8C111 8 0 119 0 256c0 106.3 67 196.7 161 232-5.6-12.2-9-25.7-9-40v-45.5c-24.7-16.2-43.5-38.1-47.8-63.8-2-11.8 9.3-21.5 20.7-17.9C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.5-3.7 22.6 6.1 20.7 17.9-4.3 25.7-23.1 47.6-47.8 63.8V448c0 14.3-3.4 27.8-9 40 94-35.3 161-125.7 161-232C496 119 385 8 248 8zm-56 225l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L112 233c-8.5 7.4-21.6.3-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c1.6 11.1-11.6 18.2-20 10.8zm152 39c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm-50.9 102.6c-14.4-6.5-31.1 2.2-34.6 17.6l-1.8 7.8c-2.1 9.2-15.2 9.2-17.3 0l-1.8-7.8c-3.5-15.4-20.2-24.1-34.6-17.6-.9.4.3-.2-18.9 9.4v63c0 35.2 28 64.5 63.1 64.9 35.7.5 64.9-28.4 64.9-64v-64c-19.5-9.6-18.2-8.9-19-9.3z"]},faGrinWink:{prefix:"fas",iconName:"grin-wink",icon:[496,512,[],"f58c","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm168 25l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.6 11-11.5 18.2-20 10.8zm-243.1 87.8C155.1 330.5 200 336 248 336s92.9-5.5 123.1-15.2c11.3-3.7 22.6 6 20.7 17.9-9.2 55-83.2 93.3-143.8 93.3s-134.5-38.3-143.8-93.3c-2-11.9 9.3-21.6 20.7-17.9z"]},faGripHorizontal:{prefix:"fas",iconName:"grip-horizontal",icon:[448,512,[],"f58d","M96 288H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM96 96H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm160 0h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},faGripLines:{prefix:"fas",iconName:"grip-lines",icon:[512,512,[],"f7a4","M496 288H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-128H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h480c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16z"]},faGripLinesVertical:{prefix:"fas",iconName:"grip-lines-vertical",icon:[256,512,[],"f7a5","M96 496V16c0-8.8-7.2-16-16-16H48c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16zm128 0V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16z"]},faGripVertical:{prefix:"fas",iconName:"grip-vertical",icon:[320,512,[],"f58e","M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z"]},faGuitar:{prefix:"fas",iconName:"guitar",icon:[512,512,[],"f7a6","M502.63 39L473 9.37a32 32 0 0 0-45.26 0L381.46 55.7a35.14 35.14 0 0 0-8.53 13.79L360.77 106l-76.26 76.26c-12.16-8.76-25.5-15.74-40.1-19.14-33.45-7.78-67-.88-89.88 22a82.45 82.45 0 0 0-20.24 33.47c-6 18.56-23.21 32.69-42.15 34.46-23.7 2.27-45.73 11.45-62.61 28.44C-16.11 327-7.9 409 47.58 464.45S185 528 230.56 482.52c17-16.88 26.16-38.9 28.45-62.71 1.76-18.85 15.89-36.13 34.43-42.14a82.6 82.6 0 0 0 33.48-20.25c22.87-22.88 29.74-56.36 22-89.75-3.39-14.64-10.37-28-19.16-40.2L406 151.23l36.48-12.16a35.14 35.14 0 0 0 13.79-8.53l46.33-46.32a32 32 0 0 0 .03-45.22zM208 352a48 48 0 1 1 48-48 48 48 0 0 1-48 48z"]},faHSquare:{prefix:"fas",iconName:"h-square",icon:[448,512,[],"f0fd","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zm-112 48h-32c-8.837 0-16 7.163-16 16v80H160v-80c0-8.837-7.163-16-16-16h-32c-8.837 0-16 7.163-16 16v224c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16v-80h128v80c0 8.837 7.163 16 16 16h32c8.837 0 16-7.163 16-16V144c0-8.837-7.163-16-16-16z"]},faHamburger:{prefix:"fas",iconName:"hamburger",icon:[512,512,[],"f805","M464 256H48a48 48 0 0 0 0 96h416a48 48 0 0 0 0-96zm16 128H32a16 16 0 0 0-16 16v16a64 64 0 0 0 64 64h352a64 64 0 0 0 64-64v-16a16 16 0 0 0-16-16zM58.64 224h394.72c34.57 0 54.62-43.9 34.82-75.88C448 83.2 359.55 32.1 256 32c-103.54.1-192 51.2-232.18 116.11C4 180.09 24.07 224 58.64 224zM384 112a16 16 0 1 1-16 16 16 16 0 0 1 16-16zM256 80a16 16 0 1 1-16 16 16 16 0 0 1 16-16zm-128 32a16 16 0 1 1-16 16 16 16 0 0 1 16-16z"]},faHammer:{prefix:"fas",iconName:"hammer",icon:[576,512,[],"f6e3","M571.31 193.94l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31-28.9-28.9c5.63-21.31.36-44.9-16.35-61.61l-45.25-45.25c-62.48-62.48-163.79-62.48-226.28 0l90.51 45.25v18.75c0 16.97 6.74 33.25 18.75 45.25l49.14 49.14c16.71 16.71 40.3 21.98 61.61 16.35l28.9 28.9-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l90.51-90.51c6.23-6.24 6.23-16.37-.02-22.62zm-286.72-15.2c-3.7-3.7-6.84-7.79-9.85-11.95L19.64 404.96c-25.57 23.88-26.26 64.19-1.53 88.93s65.05 24.05 88.93-1.53l238.13-255.07c-3.96-2.91-7.9-5.87-11.44-9.41l-49.14-49.14z"]},faHamsa:{prefix:"fas",iconName:"hamsa",icon:[512,512,[],"f665","M509.34 307.25C504.28 295.56 492.75 288 480 288h-64V80c0-22-18-40-40-40s-40 18-40 40v134c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V40c0-22-18-40-40-40s-40 18-40 40v174c0 5.52-4.48 10-10 10h-20c-5.52 0-10-4.48-10-10V80c0-22-18-40-40-40S96 58 96 80v208H32c-12.75 0-24.28 7.56-29.34 19.25a31.966 31.966 0 0 0 5.94 34.58l102.69 110.03C146.97 490.08 199.69 512 256 512s109.03-21.92 144.72-60.14L503.4 341.83a31.966 31.966 0 0 0 5.94-34.58zM256 416c-53.02 0-96-64-96-64s42.98-64 96-64 96 64 96 64-42.98 64-96 64zm0-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]},faHandHolding:{prefix:"fas",iconName:"hand-holding",icon:[576,512,[],"f4bd","M565.3 328.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},faHandHoldingHeart:{prefix:"fas",iconName:"hand-holding-heart",icon:[576,512,[],"f4be","M275.3 250.5c7 7.4 18.4 7.4 25.5 0l108.9-114.2c31.6-33.2 29.8-88.2-5.6-118.8-30.8-26.7-76.7-21.9-104.9 7.7L288 36.9l-11.1-11.6C248.7-4.4 202.8-9.2 172 17.5c-35.3 30.6-37.2 85.6-5.6 118.8l108.9 114.2zm290 77.6c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},faHandHoldingMedical:{prefix:"fas",iconName:"hand-holding-medical",icon:[576,512,[],"e05c","M159.88,175.82h64v64a16,16,0,0,0,16,16h64a16,16,0,0,0,16-16v-64h64a16,16,0,0,0,16-16v-64a16,16,0,0,0-16-16h-64v-64a16,16,0,0,0-16-16h-64a16,16,0,0,0-16,16v64h-64a16,16,0,0,0-16,16v64A16,16,0,0,0,159.88,175.82ZM568.07,336.13a39.91,39.91,0,0,0-55.93-8.47L392.47,415.84H271.86a16,16,0,0,1,0-32H350.1c16,0,30.75-10.87,33.37-26.61a32.06,32.06,0,0,0-31.62-37.38h-160a117.7,117.7,0,0,0-74.12,26.25l-46.5,37.74H15.87a16.11,16.11,0,0,0-16,16v96a16.11,16.11,0,0,0,16,16h347a104.8,104.8,0,0,0,61.7-20.27L559.6,392A40,40,0,0,0,568.07,336.13Z"]},faHandHoldingUsd:{prefix:"fas",iconName:"hand-holding-usd",icon:[576,512,[],"f4c0","M271.06,144.3l54.27,14.3a8.59,8.59,0,0,1,6.63,8.1c0,4.6-4.09,8.4-9.12,8.4h-35.6a30,30,0,0,1-11.19-2.2c-5.24-2.2-11.28-1.7-15.3,2l-19,17.5a11.68,11.68,0,0,0-2.25,2.66,11.42,11.42,0,0,0,3.88,15.74,83.77,83.77,0,0,0,34.51,11.5V240c0,8.8,7.83,16,17.37,16h17.37c9.55,0,17.38-7.2,17.38-16V222.4c32.93-3.6,57.84-31,53.5-63-3.15-23-22.46-41.3-46.56-47.7L282.68,97.4a8.59,8.59,0,0,1-6.63-8.1c0-4.6,4.09-8.4,9.12-8.4h35.6A30,30,0,0,1,332,83.1c5.23,2.2,11.28,1.7,15.3-2l19-17.5A11.31,11.31,0,0,0,368.47,61a11.43,11.43,0,0,0-3.84-15.78,83.82,83.82,0,0,0-34.52-11.5V16c0-8.8-7.82-16-17.37-16H295.37C285.82,0,278,7.2,278,16V33.6c-32.89,3.6-57.85,31-53.51,63C227.63,119.6,247,137.9,271.06,144.3ZM565.27,328.1c-11.8-10.7-30.2-10-42.6,0L430.27,402a63.64,63.64,0,0,1-40,14H272a16,16,0,0,1,0-32h78.29c15.9,0,30.71-10.9,33.25-26.6a31.2,31.2,0,0,0,.46-5.46A32,32,0,0,0,352,320H192a117.66,117.66,0,0,0-74.1,26.29L71.4,384H16A16,16,0,0,0,0,400v96a16,16,0,0,0,16,16H372.77a64,64,0,0,0,40-14L564,377a32,32,0,0,0,1.28-48.9Z"]},faHandHoldingWater:{prefix:"fas",iconName:"hand-holding-water",icon:[576,512,[],"f4c1","M288 256c53 0 96-42.1 96-94 0-40-57.1-120.7-83.2-155.6-6.4-8.5-19.2-8.5-25.6 0C249.1 41.3 192 122 192 162c0 51.9 43 94 96 94zm277.3 72.1c-11.8-10.7-30.2-10-42.6 0L430.3 402c-11.3 9.1-25.4 14-40 14H272c-8.8 0-16-7.2-16-16s7.2-16 16-16h78.3c15.9 0 30.7-10.9 33.3-26.6 3.3-20-12.1-37.4-31.6-37.4H192c-27 0-53.1 9.3-74.1 26.3L71.4 384H16c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h356.8c14.5 0 28.6-4.9 40-14L564 377c15.2-12.1 16.4-35.3 1.3-48.9z"]},faHandLizard:{prefix:"fas",iconName:"hand-lizard",icon:[576,512,[],"f258","M384 480h192V363.778a95.998 95.998 0 0 0-14.833-51.263L398.127 54.368A48 48 0 0 0 357.544 32H24C10.745 32 0 42.745 0 56v16c0 30.928 25.072 56 56 56h229.981c12.844 0 21.556 13.067 16.615 24.923l-21.41 51.385A32 32 0 0 1 251.648 224H128c-35.346 0-64 28.654-64 64v8c0 13.255 10.745 24 24 24h147.406a47.995 47.995 0 0 1 25.692 7.455l111.748 70.811A24.001 24.001 0 0 1 384 418.539V480z"]},faHandMiddleFinger:{prefix:"fas",iconName:"hand-middle-finger",icon:[512,512,[],"f806","M479.93 317.12a37.33 37.33 0 0 0-28.28-36.19L416 272v-49.59c0-11.44-9.69-21.29-23.15-23.54l-38.4-6.4C336.63 189.5 320 200.86 320 216v32a8 8 0 0 1-16 0V50c0-26.28-20.25-49.2-46.52-50A48 48 0 0 0 208 48v200a8 8 0 0 1-16 0v-32c0-15.15-16.63-26.51-34.45-23.54l-30.68 5.12c-18 3-30.87 16.12-30.87 31.38V376a8 8 0 0 1-16 0v-76l-27.36 15A37.34 37.34 0 0 0 32 348.4v73.47a37.31 37.31 0 0 0 10.93 26.39l30.93 30.93A112 112 0 0 0 153.05 512h215A112 112 0 0 0 480 400z"]},faHandPaper:{prefix:"fas",iconName:"hand-paper",icon:[448,512,[],"f256","M408.781 128.007C386.356 127.578 368 146.36 368 168.79V256h-8V79.79c0-22.43-18.356-41.212-40.781-40.783C297.488 39.423 280 57.169 280 79v177h-8V40.79C272 18.36 253.644-.422 231.219.007 209.488.423 192 18.169 192 40v216h-8V80.79c0-22.43-18.356-41.212-40.781-40.783C121.488 40.423 104 58.169 104 80v235.992l-31.648-43.519c-12.993-17.866-38.009-21.817-55.877-8.823-17.865 12.994-21.815 38.01-8.822 55.877l125.601 172.705A48 48 0 0 0 172.073 512h197.59c22.274 0 41.622-15.324 46.724-37.006l26.508-112.66a192.011 192.011 0 0 0 5.104-43.975V168c.001-21.831-17.487-39.577-39.218-39.993z"]},faHandPeace:{prefix:"fas",iconName:"hand-peace",icon:[448,512,[],"f25b","M408 216c-22.092 0-40 17.909-40 40h-8v-32c0-22.091-17.908-40-40-40s-40 17.909-40 40v32h-8V48c0-26.51-21.49-48-48-48s-48 21.49-48 48v208h-13.572L92.688 78.449C82.994 53.774 55.134 41.63 30.461 51.324 5.787 61.017-6.356 88.877 3.337 113.551l74.765 190.342-31.09 24.872c-15.381 12.306-19.515 33.978-9.741 51.081l64 112A39.998 39.998 0 0 0 136 512h240c18.562 0 34.686-12.77 38.937-30.838l32-136A39.97 39.97 0 0 0 448 336v-80c0-22.091-17.908-40-40-40z"]},faHandPointDown:{prefix:"fas",iconName:"hand-point-down",icon:[384,512,[],"f0a7","M91.826 467.2V317.966c-8.248 5.841-16.558 10.57-24.918 14.153C35.098 345.752-.014 322.222 0 288c.008-18.616 10.897-32.203 29.092-40 28.286-12.122 64.329-78.648 77.323-107.534 7.956-17.857 25.479-28.453 43.845-28.464l.001-.002h171.526c11.812 0 21.897 8.596 23.703 20.269 7.25 46.837 38.483 61.76 38.315 123.731-.007 2.724.195 13.254.195 16 0 50.654-22.122 81.574-71.263 72.6-9.297 18.597-39.486 30.738-62.315 16.45-21.177 24.645-53.896 22.639-70.944 6.299V467.2c0 24.15-20.201 44.8-43.826 44.8-23.283 0-43.826-21.35-43.826-44.8zM112 72V24c0-13.255 10.745-24 24-24h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24zm212-24c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]},faHandPointLeft:{prefix:"fas",iconName:"hand-point-left",icon:[512,512,[],"f0a5","M44.8 155.826h149.234c-5.841-8.248-10.57-16.558-14.153-24.918C166.248 99.098 189.778 63.986 224 64c18.616.008 32.203 10.897 40 29.092 12.122 28.286 78.648 64.329 107.534 77.323 17.857 7.956 28.453 25.479 28.464 43.845l.002.001v171.526c0 11.812-8.596 21.897-20.269 23.703-46.837 7.25-61.76 38.483-123.731 38.315-2.724-.007-13.254.195-16 .195-50.654 0-81.574-22.122-72.6-71.263-18.597-9.297-30.738-39.486-16.45-62.315-24.645-21.177-22.639-53.896-6.299-70.944H44.8c-24.15 0-44.8-20.201-44.8-43.826 0-23.283 21.35-43.826 44.8-43.826zM440 176h48c13.255 0 24 10.745 24 24v192c0 13.255-10.745 24-24 24h-48c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24zm24 212c11.046 0 20-8.954 20-20s-8.954-20-20-20-20 8.954-20 20 8.954 20 20 20z"]},faHandPointRight:{prefix:"fas",iconName:"hand-point-right",icon:[512,512,[],"f0a4","M512 199.652c0 23.625-20.65 43.826-44.8 43.826h-99.851c16.34 17.048 18.346 49.766-6.299 70.944 14.288 22.829 2.147 53.017-16.45 62.315C353.574 425.878 322.654 448 272 448c-2.746 0-13.276-.203-16-.195-61.971.168-76.894-31.065-123.731-38.315C120.596 407.683 112 397.599 112 385.786V214.261l.002-.001c.011-18.366 10.607-35.889 28.464-43.845 28.886-12.994 95.413-49.038 107.534-77.323 7.797-18.194 21.384-29.084 40-29.092 34.222-.014 57.752 35.098 44.119 66.908-3.583 8.359-8.312 16.67-14.153 24.918H467.2c23.45 0 44.8 20.543 44.8 43.826zM96 200v192c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V200c0-13.255 10.745-24 24-24h48c13.255 0 24 10.745 24 24zM68 368c0-11.046-8.954-20-20-20s-20 8.954-20 20 8.954 20 20 20 20-8.954 20-20z"]},faHandPointUp:{prefix:"fas",iconName:"hand-point-up",icon:[384,512,[],"f0a6","M135.652 0c23.625 0 43.826 20.65 43.826 44.8v99.851c17.048-16.34 49.766-18.346 70.944 6.299 22.829-14.288 53.017-2.147 62.315 16.45C361.878 158.426 384 189.346 384 240c0 2.746-.203 13.276-.195 16 .168 61.971-31.065 76.894-38.315 123.731C343.683 391.404 333.599 400 321.786 400H150.261l-.001-.002c-18.366-.011-35.889-10.607-43.845-28.464C93.421 342.648 57.377 276.122 29.092 264 10.897 256.203.008 242.616 0 224c-.014-34.222 35.098-57.752 66.908-44.119 8.359 3.583 16.67 8.312 24.918 14.153V44.8c0-23.45 20.543-44.8 43.826-44.8zM136 416h192c13.255 0 24 10.745 24 24v48c0 13.255-10.745 24-24 24H136c-13.255 0-24-10.745-24-24v-48c0-13.255 10.745-24 24-24zm168 28c-11.046 0-20 8.954-20 20s8.954 20 20 20 20-8.954 20-20-8.954-20-20-20z"]},faHandPointer:{prefix:"fas",iconName:"hand-pointer",icon:[448,512,[],"f25a","M448 240v96c0 3.084-.356 6.159-1.063 9.162l-32 136C410.686 499.23 394.562 512 376 512H168a40.004 40.004 0 0 1-32.35-16.473l-127.997-176c-12.993-17.866-9.043-42.883 8.822-55.876 17.867-12.994 42.884-9.043 55.877 8.823L104 315.992V40c0-22.091 17.908-40 40-40s40 17.909 40 40v200h8v-40c0-22.091 17.908-40 40-40s40 17.909 40 40v40h8v-24c0-22.091 17.908-40 40-40s40 17.909 40 40v24h8c0-22.091 17.908-40 40-40s40 17.909 40 40zm-256 80h-8v96h8v-96zm88 0h-8v96h8v-96zm88 0h-8v96h8v-96z"]},faHandRock:{prefix:"fas",iconName:"hand-rock",icon:[512,512,[],"f255","M464.8 80c-26.9-.4-48.8 21.2-48.8 48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v32h-8V80.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v48h-8V96.8c0-26.3-20.9-48.3-47.2-48.8-26.9-.4-48.8 21.2-48.8 48v136l-8-7.1v-48.1c0-26.3-20.9-48.3-47.2-48.8C21.9 127.6 0 149.2 0 176v66.4c0 27.4 11.7 53.5 32.2 71.8l111.7 99.3c10.2 9.1 16.1 22.2 16.1 35.9v6.7c0 13.3 10.7 24 24 24h240c13.3 0 24-10.7 24-24v-2.9c0-12.8 2.6-25.5 7.5-37.3l49-116.3c5-11.8 7.5-24.5 7.5-37.3V128.8c0-26.3-20.9-48.4-47.2-48.8z"]},faHandScissors:{prefix:"fas",iconName:"hand-scissors",icon:[512,512,[],"f257","M216 440c0-22.092 17.909-40 40-40v-8h-32c-22.091 0-40-17.908-40-40s17.909-40 40-40h32v-8H48c-26.51 0-48-21.49-48-48s21.49-48 48-48h208v-13.572l-177.551-69.74c-24.674-9.694-36.818-37.555-27.125-62.228 9.693-24.674 37.554-36.817 62.228-27.124l190.342 74.765 24.872-31.09c12.306-15.381 33.978-19.515 51.081-9.741l112 64A40.002 40.002 0 0 1 512 168v240c0 18.562-12.77 34.686-30.838 38.937l-136 32A39.982 39.982 0 0 1 336 480h-80c-22.091 0-40-17.908-40-40z"]},faHandSparkles:{prefix:"fas",iconName:"hand-sparkles",icon:[640,512,[],"e05d","M106.66,170.64l.09,0,49.55-20.65a7.32,7.32,0,0,0,3.68-6h0a7.29,7.29,0,0,0-3.68-6l-49.57-20.67-.07,0L86,67.68a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L3.7,138A7.29,7.29,0,0,0,0,144H0a7.32,7.32,0,0,0,3.68,6L53.27,170.6l.07,0L74,220.26a6.65,6.65,0,0,0,11.92,0l20.69-49.62ZM471.38,467.41l-1-.42-1-.5a38.67,38.67,0,0,1,0-69.14l1-.49,1-.43,37.49-15.63,15.63-37.48.41-1,.47-.95c3.85-7.74,10.58-13.63,18.35-17.34,0-1.33.25-2.69.27-4V144a32,32,0,0,0-64,0v72a8,8,0,0,1-8,8H456a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H360a8,8,0,0,1-8-8V32a32,32,0,0,0-64,0V216a8,8,0,0,1-8,8H264a8,8,0,0,1-8-8V64a32,32,0,0,0-64,0v241l-23.59-32.49a40,40,0,0,0-64.71,47.09L229.3,492.21A48.07,48.07,0,0,0,268.09,512H465.7c19.24,0,35.65-11.73,43.24-28.79l-.07-.17ZM349.79,339.52,320,351.93l-12.42,29.78a4,4,0,0,1-7.15,0L288,351.93l-29.79-12.41a4,4,0,0,1,0-7.16L288,319.94l12.42-29.78a4,4,0,0,1,7.15,0L320,319.94l29.79,12.42a4,4,0,0,1,0,7.16ZM640,431.91a7.28,7.28,0,0,0-3.68-6l-49.57-20.67-.07,0L566,355.63a6.66,6.66,0,0,0-11.92,0l-20.7,49.63-.05,0L483.7,426a7.28,7.28,0,0,0-3.68,6h0a7.29,7.29,0,0,0,3.68,5.95l49.57,20.67.07,0L554,508.21a6.65,6.65,0,0,0,11.92,0l20.69-49.62h0l.09,0,49.55-20.66a7.29,7.29,0,0,0,3.68-5.95h0Z"]},faHandSpock:{prefix:"fas",iconName:"hand-spock",icon:[512,512,[],"f259","M510.9005,145.27027,442.604,432.09391A103.99507,103.99507,0,0,1,341.43745,512H214.074a135.96968,135.96968,0,0,1-93.18489-36.95291L12.59072,373.12723a39.992,39.992,0,0,1,54.8122-58.24988l60.59342,57.02528v0a283.24849,283.24849,0,0,0-11.6703-80.46734L73.63726,147.36011a40.00575,40.00575,0,1,1,76.71833-22.7187l37.15458,125.39477a8.33113,8.33113,0,0,0,16.05656-4.4414L153.26183,49.95406A39.99638,39.99638,0,1,1,230.73015,30.0166l56.09491,218.15825a10.42047,10.42047,0,0,0,20.30018-.501L344.80766,63.96966a40.052,40.052,0,0,1,51.30245-30.0893c19.86073,6.2998,30.86262,27.67378,26.67564,48.08487l-33.83869,164.966a7.55172,7.55172,0,0,0,14.74406,3.2666l29.3973-123.45874a39.99414,39.99414,0,1,1,77.81208,18.53121Z"]},faHands:{prefix:"fas",iconName:"hands",icon:[640,512,[],"f4c2","M204.8 230.4c-10.6-14.1-30.7-17-44.8-6.4-14.1 10.6-17 30.7-6.4 44.8l38.1 50.8c4.8 6.4 4.1 15.3-1.5 20.9l-12.8 12.8c-6.7 6.7-17.6 6.2-23.6-1.1L64 244.4V96c0-17.7-14.3-32-32-32S0 78.3 0 96v218.4c0 10.9 3.7 21.5 10.5 30l104.1 134.3c5 6.5 8.4 13.9 10.4 21.7 1.8 6.9 8.1 11.6 15.3 11.6H272c8.8 0 16-7.2 16-16V384c0-27.7-9-54.6-25.6-76.8l-57.6-76.8zM608 64c-17.7 0-32 14.3-32 32v148.4l-89.8 107.8c-6 7.2-17 7.7-23.6 1.1l-12.8-12.8c-5.6-5.6-6.3-14.5-1.5-20.9l38.1-50.8c10.6-14.1 7.7-34.2-6.4-44.8-14.1-10.6-34.2-7.7-44.8 6.4l-57.6 76.8C361 329.4 352 356.3 352 384v112c0 8.8 7.2 16 16 16h131.7c7.1 0 13.5-4.7 15.3-11.6 2-7.8 5.4-15.2 10.4-21.7l104.1-134.3c6.8-8.5 10.5-19.1 10.5-30V96c0-17.7-14.3-32-32-32z"]},faHandsHelping:h,faHandsWash:{prefix:"fas",iconName:"hands-wash",icon:[576,512,[],"e05e","M496,224a48,48,0,1,0-48-48A48,48,0,0,0,496,224ZM311.47,178.45A56.77,56.77,0,0,1,328,176a56,56,0,0,1,19,3.49l15.35-48.61A24,24,0,0,0,342,99.74c-11.53-1.35-22.21,6.44-25.71,17.51l-20.9,66.17ZM93.65,386.33c.8-.19,1.54-.54,2.35-.71V359.93a156,156,0,0,1,107.06-148l73.7-22.76L310.92,81.05a24,24,0,0,0-20.33-31.11c-11.53-1.34-22.22,6.45-25.72,17.52L231.42,173.88a8,8,0,0,1-15.26-4.83L259.53,31.26A24,24,0,0,0,239.2.15C227.67-1.19,217,6.6,213.49,17.66L165.56,169.37a8,8,0,1,1-15.26-4.82l38.56-122a24,24,0,0,0-20.33-31.11C157,10,146.32,17.83,142.82,28.9l-60,189.85L80.76,168.7A24,24,0,0,0,56.9,144.55c-13.23-.05-24.72,10.54-24.9,23.86V281.14A123.69,123.69,0,0,0,93.65,386.33ZM519.1,336H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,279.84,498.71,272,487.1,272H288l47.09-17.06a24,24,0,0,0-14.18-45.88L213.19,242.31A123.88,123.88,0,0,0,128,360v25.65a79.78,79.78,0,0,1,58,108.63A118.9,118.9,0,0,0,248,512H456a24,24,0,0,0,23.54-28.76C477.35,471.84,466.71,464,455.1,464H360a8,8,0,0,1,0-16H488a24,24,0,0,0,23.54-28.76C509.35,407.84,498.71,400,487.1,400H360a8,8,0,0,1,0-16H520a24,24,0,0,0,23.54-28.76C541.35,343.84,530.71,336,519.1,336ZM416,64a32,32,0,1,0-32-32A32,32,0,0,0,416,64ZM112,416a48,48,0,1,0,48,48A48,48,0,0,0,112,416Z"]},faHandshake:{prefix:"fas",iconName:"handshake",icon:[640,512,[],"f2b5","M434.7 64h-85.9c-8 0-15.7 3-21.6 8.4l-98.3 90c-.1.1-.2.3-.3.4-16.6 15.6-16.3 40.5-2.1 56 12.7 13.9 39.4 17.6 56.1 2.7.1-.1.3-.1.4-.2l79.9-73.2c6.5-5.9 16.7-5.5 22.6 1 6 6.5 5.5 16.6-1 22.6l-26.1 23.9L504 313.8c2.9 2.4 5.5 5 7.9 7.7V128l-54.6-54.6c-5.9-6-14.1-9.4-22.6-9.4zM544 128.2v223.9c0 17.7 14.3 32 32 32h64V128.2h-96zm48 223.9c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM0 384h64c17.7 0 32-14.3 32-32V128.2H0V384zm48-63.9c8.8 0 16 7.2 16 16s-7.2 16-16 16-16-7.2-16-16c0-8.9 7.2-16 16-16zm435.9 18.6L334.6 217.5l-30 27.5c-29.7 27.1-75.2 24.5-101.7-4.4-26.9-29.4-24.8-74.9 4.4-101.7L289.1 64h-83.8c-8.5 0-16.6 3.4-22.6 9.4L128 128v223.9h18.3l90.5 81.9c27.4 22.3 67.7 18.1 90-9.3l.2-.2 17.9 15.5c15.9 13 39.4 10.5 52.3-5.4l31.4-38.6 5.4 4.4c13.7 11.1 33.9 9.1 45-4.7l9.5-11.7c11.2-13.8 9.1-33.9-4.6-45.1z"]},faHandshakeAltSlash:{prefix:"fas",iconName:"handshake-alt-slash",icon:[640,512,[],"e05f","M358.59,195.6,504.2,313.8a63.4,63.4,0,0,1,22.21,37.91H624a16.05,16.05,0,0,0,16-16V143.91A16,16,0,0,0,624,128H512L457.41,73.41A32,32,0,0,0,434.8,64H348.91a32,32,0,0,0-21.61,8.41l-88.12,80.68-25.69-19.85L289.09,64H205.3a32,32,0,0,0-22.6,9.41l-20.34,20.3L45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.54,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45L303.4,202.72l32.69-29.92,27-24.7a16,16,0,0,1,21.61,23.61ZM16,128A16.05,16.05,0,0,0,0,144V335.91a16,16,0,0,0,16,16H146.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L23.56,128Z"]},faHandshakeSlash:{prefix:"fas",iconName:"handshake-slash",icon:[640,512,[],"e060","M0,128.21V384H64a32,32,0,0,0,32-32V184L23.83,128.21ZM48,320.1a16,16,0,1,1-16,16A16,16,0,0,1,48,320.1Zm80,31.81h18.3l90.5,81.89a64,64,0,0,0,90-9.3l.2-.2,17.91,15.5a37.16,37.16,0,0,0,52.29-5.39l8.8-10.82L128,208.72Zm416-223.7V352.1a32,32,0,0,0,32,32h64V128.21ZM592,352.1a16,16,0,1,1,16-16A16,16,0,0,1,592,352.1ZM303.33,202.67l59.58-54.57a16,16,0,0,1,21.59,23.61L358.41,195.6,504,313.8a73.08,73.08,0,0,1,7.91,7.7V128L457.3,73.41A31.76,31.76,0,0,0,434.7,64H348.8a31.93,31.93,0,0,0-21.6,8.41l-88.07,80.64-25.64-19.81L289.09,64H205.3a32,32,0,0,0-22.6,9.41L162.36,93.72,45.47,3.38A16,16,0,0,0,23,6.19L3.38,31.46A16,16,0,0,0,6.19,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.65-25.27a16,16,0,0,0-2.82-22.45Z"]},faHanukiah:{prefix:"fas",iconName:"hanukiah",icon:[640,512,[],"f6e6","M232 160c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm-64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm224 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm64 0c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm88 8c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v120h32V168zm-440-8c-4.42 0-8 3.58-8 8v120h32V168c0-4.42-3.58-8-8-8h-16zm520 0h-32c-8.84 0-16 7.16-16 16v112c0 17.67-14.33 32-32 32H352V128c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v192H96c-17.67 0-32-14.33-32-32V176c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v112c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V176c0-8.84-7.16-16-16-16zm-16-32c13.25 0 24-11.94 24-26.67S608 48 608 48s-24 38.61-24 53.33S594.75 128 608 128zm-576 0c13.25 0 24-11.94 24-26.67S32 48 32 48 8 86.61 8 101.33 18.75 128 32 128zm288-48c13.25 0 24-11.94 24-26.67S320 0 320 0s-24 38.61-24 53.33S306.75 80 320 80zm-208 48c13.25 0 24-11.94 24-26.67S112 48 112 48s-24 38.61-24 53.33S98.75 128 112 128zm64 0c13.25 0 24-11.94 24-26.67S176 48 176 48s-24 38.61-24 53.33S162.75 128 176 128zm64 0c13.25 0 24-11.94 24-26.67S240 48 240 48s-24 38.61-24 53.33S226.75 128 240 128zm160 0c13.25 0 24-11.94 24-26.67S400 48 400 48s-24 38.61-24 53.33S386.75 128 400 128zm64 0c13.25 0 24-11.94 24-26.67S464 48 464 48s-24 38.61-24 53.33S450.75 128 464 128zm64 0c13.25 0 24-11.94 24-26.67S528 48 528 48s-24 38.61-24 53.33S514.75 128 528 128z"]},faHardHat:{prefix:"fas",iconName:"hard-hat",icon:[512,512,[],"f807","M480 288c0-80.25-49.28-148.92-119.19-177.62L320 192V80a16 16 0 0 0-16-16h-96a16 16 0 0 0-16 16v112l-40.81-81.62C81.28 139.08 32 207.75 32 288v64h448zm16 96H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faHashtag:{prefix:"fas",iconName:"hashtag",icon:[448,512,[],"f292","M440.667 182.109l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l14.623-81.891C377.123 38.754 371.468 32 363.997 32h-40.632a12 12 0 0 0-11.813 9.891L296.175 128H197.54l14.623-81.891C213.477 38.754 207.822 32 200.35 32h-40.632a12 12 0 0 0-11.813 9.891L132.528 128H53.432a12 12 0 0 0-11.813 9.891l-7.143 40C33.163 185.246 38.818 192 46.289 192h74.81L98.242 320H19.146a12 12 0 0 0-11.813 9.891l-7.143 40C-1.123 377.246 4.532 384 12.003 384h74.81L72.19 465.891C70.877 473.246 76.532 480 84.003 480h40.632a12 12 0 0 0 11.813-9.891L151.826 384h98.634l-14.623 81.891C234.523 473.246 240.178 480 247.65 480h40.632a12 12 0 0 0 11.813-9.891L315.472 384h79.096a12 12 0 0 0 11.813-9.891l7.143-40c1.313-7.355-4.342-14.109-11.813-14.109h-74.81l22.857-128h79.096a12 12 0 0 0 11.813-9.891zM261.889 320h-98.634l22.857-128h98.634l-22.857 128z"]},faHatCowboy:{prefix:"fas",iconName:"hat-cowboy",icon:[640,512,[],"f8c0","M490 296.9C480.51 239.51 450.51 64 392.3 64c-14 0-26.49 5.93-37 14a58.21 58.21 0 0 1-70.58 0c-10.51-8-23-14-37-14-58.2 0-88.2 175.47-97.71 232.88C188.81 309.47 243.73 320 320 320s131.23-10.51 170-23.1zm142.9-37.18a16 16 0 0 0-19.75 1.5c-1 .9-101.27 90.78-293.16 90.78-190.82 0-292.22-89.94-293.24-90.84A16 16 0 0 0 1 278.53C1.73 280.55 78.32 480 320 480s318.27-199.45 319-201.47a16 16 0 0 0-6.09-18.81z"]},faHatCowboySide:{prefix:"fas",iconName:"hat-cowboy-side",icon:[640,512,[],"f8c1","M260.8 291.06c-28.63-22.94-62-35.06-96.4-35.06C87 256 21.47 318.72 1.43 412.06c-3.55 16.6-.43 33.83 8.57 47.3C18.75 472.47 31.83 480 45.88 480H592c-103.21 0-155-37.07-233.19-104.46zm234.65-18.29L468.4 116.2A64 64 0 0 0 392 64.41L200.85 105a64 64 0 0 0-50.35 55.79L143.61 226c6.9-.83 13.7-2 20.79-2 41.79 0 82 14.55 117.29 42.82l98 84.48C450.76 412.54 494.9 448 592 448a48 48 0 0 0 48-48c0-25.39-29.6-119.33-144.55-127.23z"]},faHatWizard:{prefix:"fas",iconName:"hat-wizard",icon:[512,512,[],"f6e8","M496 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-304-64l-64-32 64-32 32-64 32 64 64 32-64 32-16 32h208l-86.41-201.63a63.955 63.955 0 0 1-1.89-45.45L416 0 228.42 107.19a127.989 127.989 0 0 0-53.46 59.15L64 416h144l-16-32zm64-224l16-32 16 32 32 16-32 16-16 32-16-32-32-16 32-16z"]},faHdd:{prefix:"fas",iconName:"hdd",icon:[576,512,[],"f0a0","M576 304v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48zm-48-80a79.557 79.557 0 0 1 30.777 6.165L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L17.223 230.165A79.557 79.557 0 0 1 48 224h480zm-48 96c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32zm-96 0c-17.673 0-32 14.327-32 32s14.327 32 32 32 32-14.327 32-32-14.327-32-32-32z"]},faHeadSideCough:{prefix:"fas",iconName:"head-side-cough",icon:[640,512,[],"e061","M616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304ZM552,416a24,24,0,1,0,24,24A24,24,0,0,0,552,416Zm-64-56a24,24,0,1,0,24,24A24,24,0,0,0,488,360ZM616,464a24,24,0,1,0,24,24A24,24,0,0,0,616,464Zm0-104a24,24,0,1,0,24,24A24,24,0,0,0,616,360Zm-64-40a24,24,0,1,0,24,24A24,24,0,0,0,552,320Zm-74.78-45c-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192C86,0,0,86,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320a32,32,0,0,1,0-64h96V320h32A32,32,0,0,0,477.22,275ZM288,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,288,224Z"]},faHeadSideCoughSlash:{prefix:"fas",iconName:"head-side-cough-slash",icon:[640,512,[],"e062","M454.11,319.21c19.56-3.81,31.62-25,23.11-44.21-21-47.12-48.5-151.75-73.12-186.75A208.13,208.13,0,0,0,234.1,0H192A190.64,190.64,0,0,0,84.18,33.3L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM313.39,210.45,263.61,172c5.88-7.14,14.43-12,24.36-12a32.06,32.06,0,0,1,32,32C320,199,317.24,205.17,313.39,210.45ZM616,304a24,24,0,1,0-24-24A24,24,0,0,0,616,304Zm-64,64a24,24,0,1,0-24-24A24,24,0,0,0,552,368ZM288,384a32,32,0,0,1,32-32h19.54L20.73,105.59A190.86,190.86,0,0,0,0,192c0,56.75,24.75,107.62,64,142.88V512H288V480h64a64,64,0,0,0,64-64H320A32,32,0,0,1,288,384Zm328-24a24,24,0,1,0,24,24A24,24,0,0,0,616,360Z"]},faHeadSideMask:{prefix:"fas",iconName:"head-side-mask",icon:[512,512,[],"e063","M.15,184.42C-2.17,244.21,23,298.06,64,334.88V512H224V316.51L3.67,156.25A182.28,182.28,0,0,0,.15,184.42ZM509.22,275c-21-47.12-48.5-151.75-73.12-186.75A208.11,208.11,0,0,0,266.11,0H200C117,0,42.48,50.57,13.25,123.65L239.21,288H511.76A31.35,31.35,0,0,0,509.22,275ZM320,224a32,32,0,1,1,32-32A32.07,32.07,0,0,1,320,224Zm16,144H496l16-48H256V512H401.88a64,64,0,0,0,60.71-43.76L464,464H336a16,16,0,0,1,0-32H474.67l10.67-32H336a16,16,0,0,1,0-32Z"]},faHeadSideVirus:{prefix:"fas",iconName:"head-side-virus",icon:[512,512,[],"e064","M272,240a16,16,0,1,0,16,16A16,16,0,0,0,272,240Zm-64-64a16,16,0,1,0,16,16A16,16,0,0,0,208,176Zm301.2,99c-20.93-47.12-48.43-151.73-73.07-186.75A207.9,207.9,0,0,0,266.09,0H192C86,0,0,86,0,192A191.23,191.23,0,0,0,64,334.81V512H320V448h64a64,64,0,0,0,64-64V320H480A32,32,0,0,0,509.2,275ZM368,240H355.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C290.47,297.09,256,311.37,256,339.88V352a16,16,0,0,1-32,0V339.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H112a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V96a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C313.09,173.53,327.37,208,355.88,208H368a16,16,0,0,1,0,32Z"]},faHeading:{prefix:"fas",iconName:"heading",icon:[512,512,[],"f1dc","M448 96v320h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H320a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V288H160v128h32a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H32a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h32V96H32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16h-32v128h192V96h-32a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h160a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16z"]},faHeadphones:{prefix:"fas",iconName:"headphones",icon:[512,512,[],"f025","M256 32C114.52 32 0 146.496 0 288v48a32 32 0 0 0 17.689 28.622l14.383 7.191C34.083 431.903 83.421 480 144 480h24c13.255 0 24-10.745 24-24V280c0-13.255-10.745-24-24-24h-24c-31.342 0-59.671 12.879-80 33.627V288c0-105.869 86.131-192 192-192s192 86.131 192 192v1.627C427.671 268.879 399.342 256 368 256h-24c-13.255 0-24 10.745-24 24v176c0 13.255 10.745 24 24 24h24c60.579 0 109.917-48.098 111.928-108.187l14.382-7.191A32 32 0 0 0 512 336v-48c0-141.479-114.496-256-256-256z"]},faHeadphonesAlt:{prefix:"fas",iconName:"headphones-alt",icon:[512,512,[],"f58f","M160 288h-16c-35.35 0-64 28.7-64 64.12v63.76c0 35.41 28.65 64.12 64 64.12h16c17.67 0 32-14.36 32-32.06V320.06c0-17.71-14.33-32.06-32-32.06zm208 0h-16c-17.67 0-32 14.35-32 32.06v127.88c0 17.7 14.33 32.06 32 32.06h16c35.35 0 64-28.71 64-64.12v-63.76c0-35.41-28.65-64.12-64-64.12zM256 32C112.91 32 4.57 151.13 0 288v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288c0-114.67 93.33-207.8 208-207.82 114.67.02 208 93.15 208 207.82v112c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V288C507.43 151.13 399.09 32 256 32z"]},faHeadset:{prefix:"fas",iconName:"headset",icon:[512,512,[],"f590","M192 208c0-17.67-14.33-32-32-32h-16c-35.35 0-64 28.65-64 64v48c0 35.35 28.65 64 64 64h16c17.67 0 32-14.33 32-32V208zm176 144c35.35 0 64-28.65 64-64v-48c0-35.35-28.65-64-64-64h-16c-17.67 0-32 14.33-32 32v112c0 17.67 14.33 32 32 32h16zM256 0C113.18 0 4.58 118.83 0 256v16c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-16c0-114.69 93.31-208 208-208s208 93.31 208 208h-.12c.08 2.43.12 165.72.12 165.72 0 23.35-18.93 42.28-42.28 42.28H320c0-26.51-21.49-48-48-48h-32c-26.51 0-48 21.49-48 48s21.49 48 48 48h181.72c49.86 0 90.28-40.42 90.28-90.28V256C507.42 118.83 398.82 0 256 0z"]},faHeart:u,faHeartBroken:{prefix:"fas",iconName:"heart-broken",icon:[512,512,[],"f7a9","M473.7 73.8l-2.4-2.5c-46-47-118-51.7-169.6-14.8L336 159.9l-96 64 48 128-144-144 96-64-28.6-86.5C159.7 19.6 87 24 40.7 71.4l-2.4 2.4C-10.4 123.6-12.5 202.9 31 256l212.1 218.6c7.1 7.3 18.6 7.3 25.7 0L481 255.9c43.5-53 41.4-132.3-7.3-182.1z"]},faHeartbeat:{prefix:"fas",iconName:"heartbeat",icon:[512,512,[],"f21e","M320.2 243.8l-49.7 99.4c-6 12.1-23.4 11.7-28.9-.6l-56.9-126.3-30 71.7H60.6l182.5 186.5c7.1 7.3 18.6 7.3 25.7 0L451.4 288H342.3l-22.1-44.2zM473.7 73.9l-2.4-2.5c-51.5-52.6-135.8-52.6-187.4 0L256 100l-27.9-28.5c-51.5-52.7-135.9-52.7-187.4 0l-2.4 2.4C-10.4 123.7-12.5 203 31 256h102.4l35.9-86.2c5.4-12.9 23.6-13.2 29.4-.4l58.2 129.3 49-97.9c5.9-11.8 22.7-11.8 28.6 0l27.6 55.2H481c43.5-53 41.4-132.3-7.3-182.1z"]},faHelicopter:{prefix:"fas",iconName:"helicopter",icon:[640,512,[],"f533","M304 384h272c17.67 0 32-14.33 32-32 0-123.71-100.29-224-224-224V64h176c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H144c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h176v64H112L68.8 70.4C65.78 66.37 61.03 64 56 64H16.01C5.6 64-2.04 73.78.49 83.88L32 192l160 64 86.4 115.2A31.992 31.992 0 0 0 304 384zm112-188.49C478.55 208.3 528.03 257.44 540.79 320H416V195.51zm219.37 263.3l-22.15-22.2c-6.25-6.26-16.24-6.1-22.64.01-7.09 6.77-13.84 11.25-24.64 11.25H240c-8.84 0-16 7.18-16 16.03v32.06c0 8.85 7.16 16.03 16 16.03h325.94c14.88 0 35.3-.47 68.45-29.52 7.02-6.14 7.57-17.05.98-23.66z"]},faHighlighter:{prefix:"fas",iconName:"highlighter",icon:[544,512,[],"f591","M0 479.98L99.92 512l35.45-35.45-67.04-67.04L0 479.98zm124.61-240.01a36.592 36.592 0 0 0-10.79 38.1l13.05 42.83-50.93 50.94 96.23 96.23 50.86-50.86 42.74 13.08c13.73 4.2 28.65-.01 38.15-10.78l35.55-41.64-173.34-173.34-41.52 35.44zm403.31-160.7l-63.2-63.2c-20.49-20.49-53.38-21.52-75.12-2.35L190.55 183.68l169.77 169.78L530.27 154.4c19.18-21.74 18.15-54.63-2.35-75.13z"]},faHiking:{prefix:"fas",iconName:"hiking",icon:[384,512,[],"f6ec","M80.95 472.23c-4.28 17.16 6.14 34.53 23.28 38.81 2.61.66 5.22.95 7.8.95 14.33 0 27.37-9.7 31.02-24.23l25.24-100.97-52.78-52.78-34.56 138.22zm14.89-196.12L137 117c2.19-8.42-3.14-16.95-11.92-19.06-43.88-10.52-88.35 15.07-99.32 57.17L.49 253.24c-2.19 8.42 3.14 16.95 11.92 19.06l63.56 15.25c8.79 2.1 17.68-3.02 19.87-11.44zM368 160h-16c-8.84 0-16 7.16-16 16v16h-34.75l-46.78-46.78C243.38 134.11 228.61 128 212.91 128c-27.02 0-50.47 18.3-57.03 44.52l-26.92 107.72a32.012 32.012 0 0 0 8.42 30.39L224 397.25V480c0 17.67 14.33 32 32 32s32-14.33 32-32v-82.75c0-17.09-6.66-33.16-18.75-45.25l-46.82-46.82c.15-.5.49-.89.62-1.41l19.89-79.57 22.43 22.43c6 6 14.14 9.38 22.62 9.38h48v240c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16V176c.01-8.84-7.15-16-15.99-16zM240 96c26.51 0 48-21.49 48-48S266.51 0 240 0s-48 21.49-48 48 21.49 48 48 48z"]},faHippo:{prefix:"fas",iconName:"hippo",icon:[640,512,[],"f6ed","M581.12 96.2c-27.67-.15-52.5 17.58-76.6 26.62C489.98 88.27 455.83 64 416 64c-11.28 0-21.95 2.3-32 5.88V56c0-13.26-10.75-24-24-24h-16c-13.25 0-24 10.74-24 24v48.98C286.01 79.58 241.24 64 192 64 85.96 64 0 135.64 0 224v240c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16v-70.79C128.35 407.57 166.72 416 208 416s79.65-8.43 112-22.79V464c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V288h128v32c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-32c17.67 0 32-14.33 32-32v-92.02c0-34.09-24.79-67.59-58.88-67.78zM448 176c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},faHistory:{prefix:"fas",iconName:"history",icon:[512,512,[],"f1da","M504 255.531c.253 136.64-111.18 248.372-247.82 248.468-59.015.042-113.223-20.53-155.822-54.911-11.077-8.94-11.905-25.541-1.839-35.607l11.267-11.267c8.609-8.609 22.353-9.551 31.891-1.984C173.062 425.135 212.781 440 256 440c101.705 0 184-82.311 184-184 0-101.705-82.311-184-184-184-48.814 0-93.149 18.969-126.068 49.932l50.754 50.754c10.08 10.08 2.941 27.314-11.313 27.314H24c-8.837 0-16-7.163-16-16V38.627c0-14.254 17.234-21.393 27.314-11.314l49.372 49.372C129.209 34.136 189.552 8 256 8c136.81 0 247.747 110.78 248 247.531zm-180.912 78.784l9.823-12.63c8.138-10.463 6.253-25.542-4.21-33.679L288 256.349V152c0-13.255-10.745-24-24-24h-16c-13.255 0-24 10.745-24 24v135.651l65.409 50.874c10.463 8.137 25.541 6.253 33.679-4.21z"]},faHockeyPuck:{prefix:"fas",iconName:"hockey-puck",icon:[512,512,[],"f453","M0 160c0-53 114.6-96 256-96s256 43 256 96-114.6 96-256 96S0 213 0 160zm0 82.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2c-113.4 82.3-398.5 82.4-512 0z"]},faHollyBerry:{prefix:"fas",iconName:"holly-berry",icon:[448,512,[],"f7aa","M144 192c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm112-48c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48-48 21.5-48 48zm-32-48c26.5 0 48-21.5 48-48S250.5 0 224 0s-48 21.5-48 48 21.5 48 48 48zm-16.2 139.1c.1-12.4-13.1-20.1-23.8-13.7-34.3 20.3-71.4 32.7-108.7 36.2-9.7.9-15.6 11.3-11.6 20.2 6.2 13.9 11.1 28.6 14.7 43.8 3.6 15.2-5.3 30.6-20.2 35.1-14.9 4.5-30.1 7.6-45.3 9.1-9.7 1-15.7 11.3-11.7 20.2 15 32.8 22.9 69.5 23 107.7.1 14.4 15.2 23.1 27.6 16 33.2-19 68.9-30.5 104.8-33.9 9.7-.9 15.6-11.3 11.6-20.2-6.2-13.9-11.1-28.6-14.7-43.8-3.6-15.2 5.3-30.6 20.2-35.1 14.9-4.5 30.1-7.6 45.3-9.1 9.7-1 15.7-11.3 11.7-20.2-15.5-34.2-23.3-72.5-22.9-112.3zM435 365.6c-15.2-1.6-30.3-4.7-45.3-9.1-14.9-4.5-23.8-19.9-20.2-35.1 3.6-15.2 8.5-29.8 14.7-43.8 4-8.9-1.9-19.3-11.6-20.2-37.3-3.5-74.4-15.9-108.7-36.2-10.7-6.3-23.9 1.4-23.8 13.7 0 1.6-.2 3.2-.2 4.9.2 33.3 7 65.7 19.9 94 5.7 12.4 5.2 26.6-.6 38.9 4.9 1.2 9.9 2.2 14.8 3.7 14.9 4.5 23.8 19.9 20.2 35.1-3.6 15.2-8.5 29.8-14.7 43.8-4 8.9 1.9 19.3 11.6 20.2 35.9 3.4 71.6 14.9 104.8 33.9 12.5 7.1 27.6-1.6 27.6-16 .2-38.2 8-75 23-107.7 4.3-8.7-1.8-19.1-11.5-20.1z"]},faHome:{prefix:"fas",iconName:"home",icon:[576,512,[],"f015","M280.37 148.26L96 300.11V464a16 16 0 0 0 16 16l112.06-.29a16 16 0 0 0 15.92-16V368a16 16 0 0 1 16-16h64a16 16 0 0 1 16 16v95.64a16 16 0 0 0 16 16.05L464 480a16 16 0 0 0 16-16V300L295.67 148.26a12.19 12.19 0 0 0-15.3 0zM571.6 251.47L488 182.56V44.05a12 12 0 0 0-12-12h-56a12 12 0 0 0-12 12v72.61L318.47 43a48 48 0 0 0-61 0L4.34 251.47a12 12 0 0 0-1.6 16.9l25.5 31A12 12 0 0 0 45.15 301l235.22-193.74a12.19 12.19 0 0 1 15.3 0L530.9 301a12 12 0 0 0 16.9-1.6l25.5-31a12 12 0 0 0-1.7-16.93z"]},faHorse:{prefix:"fas",iconName:"horse",icon:[576,512,[],"f6f0","M575.92 76.6c-.01-8.13-3.02-15.87-8.58-21.8-3.78-4.03-8.58-9.12-13.69-14.5 11.06-6.84 19.5-17.49 22.18-30.66C576.85 4.68 572.96 0 567.9 0H447.92c-70.69 0-128 57.31-128 128H160c-28.84 0-54.4 12.98-72 33.11V160c-48.53 0-88 39.47-88 88v56c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-56c0-13.22 6.87-24.39 16.78-31.68-.21 2.58-.78 5.05-.78 7.68 0 27.64 11.84 52.36 30.54 69.88l-25.72 68.6a63.945 63.945 0 0 0-2.16 37.99l24.85 99.41A15.982 15.982 0 0 0 107.02 512h65.96c10.41 0 18.05-9.78 15.52-19.88l-26.31-105.26 23.84-63.59L320 345.6V496c0 8.84 7.16 16 16 16h64c8.84 0 16-7.16 16-16V318.22c19.74-20.19 32-47.75 32-78.22 0-.22-.07-.42-.08-.64V136.89l16 7.11 18.9 37.7c7.45 14.87 25.05 21.55 40.49 15.37l32.55-13.02a31.997 31.997 0 0 0 20.12-29.74l-.06-77.71zm-64 19.4c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16z"]},faHorseHead:{prefix:"fas",iconName:"horse-head",icon:[512,512,[],"f7ab","M509.8 332.5l-69.9-164.3c-14.9-41.2-50.4-71-93-79.2 18-10.6 46.3-35.9 34.2-82.3-1.3-5-7.1-7.9-12-6.1L166.9 76.3C35.9 123.4 0 238.9 0 398.8V480c0 17.7 14.3 32 32 32h236.2c23.8 0 39.3-25 28.6-46.3L256 384v-.7c-45.6-3.5-84.6-30.7-104.3-69.6-1.6-3.1-.9-6.9 1.6-9.3l12.1-12.1c3.9-3.9 10.6-2.7 12.9 2.4 14.8 33.7 48.2 57.4 87.4 57.4 17.2 0 33-5.1 46.8-13.2l46 63.9c6 8.4 15.7 13.3 26 13.3h50.3c8.5 0 16.6-3.4 22.6-9.4l45.3-39.8c8.9-9.1 11.7-22.6 7.1-34.4zM328 224c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24z"]},faHospital:{prefix:"fas",iconName:"hospital",icon:[448,512,[],"f0f8","M448 492v20H0v-20c0-6.627 5.373-12 12-12h20V120c0-13.255 10.745-24 24-24h88V24c0-13.255 10.745-24 24-24h112c13.255 0 24 10.745 24 24v72h88c13.255 0 24 10.745 24 24v360h20c6.627 0 12 5.373 12 12zM308 192h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-168 64h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12zm104 128h-40c-6.627 0-12 5.373-12 12v84h64v-84c0-6.627-5.373-12-12-12zm64-96h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12zm-116 12c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40zM182 96h26v26a6 6 0 0 0 6 6h20a6 6 0 0 0 6-6V96h26a6 6 0 0 0 6-6V70a6 6 0 0 0-6-6h-26V38a6 6 0 0 0-6-6h-20a6 6 0 0 0-6 6v26h-26a6 6 0 0 0-6 6v20a6 6 0 0 0 6 6z"]},faHospitalAlt:{prefix:"fas",iconName:"hospital-alt",icon:[576,512,[],"f47d","M544 96H416V32c0-17.7-14.3-32-32-32H192c-17.7 0-32 14.3-32 32v64H32c-17.7 0-32 14.3-32 32v368c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16V128c0-17.7-14.3-32-32-32zM160 436c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm160 128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm16-170c0 3.3-2.7 6-6 6h-26v26c0 3.3-2.7 6-6 6h-20c-3.3 0-6-2.7-6-6v-26h-26c-3.3 0-6-2.7-6-6v-20c0-3.3 2.7-6 6-6h26V86c0-3.3 2.7-6 6-6h20c3.3 0 6 2.7 6 6v26h26c3.3 0 6 2.7 6 6v20zm144 298c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40zm0-128c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h40c6.6 0 12 5.4 12 12v40z"]},faHospitalSymbol:{prefix:"fas",iconName:"hospital-symbol",icon:[512,512,[],"f47e","M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm112 376c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-88h-96v88c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V136c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v88h96v-88c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v240z"]},faHospitalUser:{prefix:"fas",iconName:"hospital-user",icon:[640,512,[],"f80d","M480 320a96 96 0 1 0-96-96 96 96 0 0 0 96 96zm48 32a22.88 22.88 0 0 0-7.06 1.09 124.76 124.76 0 0 1-81.89 0A22.82 22.82 0 0 0 432 352a112 112 0 0 0-112 112.62c.14 26.26 21.73 47.38 48 47.38h224c26.27 0 47.86-21.12 48-47.38A112 112 0 0 0 528 352zm-198.09 10.45A145.19 145.19 0 0 1 352 344.62V128a32 32 0 0 0-32-32h-32V32a32 32 0 0 0-32-32H96a32 32 0 0 0-32 32v64H32a32 32 0 0 0-32 32v368a16 16 0 0 0 16 16h288.31A78.62 78.62 0 0 1 288 464.79a143.06 143.06 0 0 1 41.91-102.34zM144 404a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12H92a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm48-122a6 6 0 0 1-6 6h-20a6 6 0 0 1-6-6v-26h-26a6 6 0 0 1-6-6v-20a6 6 0 0 1 6-6h26V70a6 6 0 0 1 6-6h20a6 6 0 0 1 6 6v26h26a6 6 0 0 1 6 6v20a6 6 0 0 1-6 6h-26zm80 250a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12zm0-128a12 12 0 0 1-12 12h-40a12 12 0 0 1-12-12v-40a12 12 0 0 1 12-12h40a12 12 0 0 1 12 12z"]},faHotTub:{prefix:"fas",iconName:"hot-tub",icon:[512,512,[],"f593","M414.21 177.65c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C378.96 6.14 372.22 0 364.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zm-108 0c1.02 8.21 7.75 14.35 15.75 14.35h16.12c9.51 0 17.08-8.57 16-18.35-4.34-39.11-22.4-74.53-50.13-97.16-17.37-14.17-28.82-36.75-31.98-62.15C270.96 6.14 264.22 0 256.23 0h-16.12c-9.51 0-17.09 8.57-16 18.35 4.34 39.11 22.4 74.53 50.13 97.16 17.36 14.17 28.82 36.75 31.97 62.14zM480 256H256l-110.93-83.2a63.99 63.99 0 0 0-38.4-12.8H64c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V288c0-17.67-14.33-32-32-32zM128 440c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zm96 0c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8V328c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v112zM64 128c35.35 0 64-28.65 64-64S99.35 0 64 0 0 28.65 0 64s28.65 64 64 64z"]},faHotdog:{prefix:"fas",iconName:"hotdog",icon:[512,512,[],"f80f","M488.56 23.44a80 80 0 0 0-113.12 0l-352 352a80 80 0 1 0 113.12 113.12l352-352a80 80 0 0 0 0-113.12zm-49.93 95.19c-19.6 19.59-37.52 22.67-51.93 25.14C373.76 146 364.4 147.6 352 160s-14 21.76-16.23 34.71c-2.48 14.4-5.55 32.33-25.15 51.92s-37.52 22.67-51.92 25.15C245.75 274 236.4 275.6 224 288s-14 21.75-16.23 34.7c-2.47 14.4-5.54 32.33-25.14 51.92s-37.53 22.68-51.93 25.15C117.76 402 108.4 403.6 96 416a16 16 0 0 1-22.63-22.63c19.6-19.59 37.52-22.67 51.92-25.14 13-2.22 22.3-3.82 34.71-16.23s14-21.75 16.22-34.7c2.48-14.4 5.55-32.33 25.15-51.92s37.52-22.67 51.92-25.14c13-2.22 22.3-3.83 34.7-16.23s14-21.76 16.24-34.71c2.47-14.4 5.54-32.33 25.14-51.92s37.52-22.68 51.92-25.15C394.24 110 403.59 108.41 416 96a16 16 0 0 1 22.63 22.63zM31.44 322.18L322.18 31.44l-11.54-11.55c-25-25-63.85-26.66-86.79-3.72L16.17 223.85c-22.94 22.94-21.27 61.79 3.72 86.78zm449.12-132.36L189.82 480.56l11.54 11.55c25 25 63.85 26.66 86.79 3.72l207.68-207.68c22.94-22.94 21.27-61.79-3.72-86.79z"]},faHotel:{prefix:"fas",iconName:"hotel",icon:[576,512,[],"f594","M560 64c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h15.98v384H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h240v-80c0-8.8 7.2-16 16-16h32c8.8 0 16 7.2 16 16v80h240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-16V64h16zm-304 44.8c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm0 96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zm-128-96c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4zM179.2 256h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4c0 6.4-6.4 12.8-12.8 12.8zM192 384c0-53.02 42.98-96 96-96s96 42.98 96 96H192zm256-140.8c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4zm0-96c0 6.4-6.4 12.8-12.8 12.8h-38.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h38.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]},faHourglass:{prefix:"fas",iconName:"hourglass",icon:[384,512,[],"f254","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64z"]},faHourglassEnd:{prefix:"fas",iconName:"hourglass-end",icon:[384,512,[],"f253","M360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64zM192 208c-57.787 0-104-66.518-104-144h208c0 77.945-46.51 144-104 144z"]},faHourglassHalf:{prefix:"fas",iconName:"hourglass-half",icon:[384,512,[],"f252","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-75.078 384H99.08c17.059-46.797 52.096-80 92.92-80 40.821 0 75.862 33.196 92.922 80zm.019-256H99.078C91.988 108.548 88 86.748 88 64h208c0 22.805-3.987 44.587-11.059 64z"]},faHourglassStart:{prefix:"fas",iconName:"hourglass-start",icon:[384,512,[],"f251","M360 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24 0 90.965 51.016 167.734 120.842 192C75.016 280.266 24 357.035 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24 0-90.965-51.016-167.734-120.842-192C308.984 231.734 360 154.965 360 64c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24zm-64 448H88c0-77.458 46.204-144 104-144 57.786 0 104 66.517 104 144z"]},faHouseDamage:{prefix:"fas",iconName:"house-damage",icon:[576,512,[],"f6f1","M288 114.96L69.47 307.71c-1.62 1.46-3.69 2.14-5.47 3.35V496c0 8.84 7.16 16 16 16h149.23L192 439.19l104.11-64-60.16-119.22L384 392.75l-104.11 64L319.81 512H496c8.84 0 16-7.16 16-16V311.1c-1.7-1.16-3.72-1.82-5.26-3.2L288 114.96zm282.69 121.32L512 184.45V48c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v51.69L314.75 10.31C307.12 3.45 297.56.01 288 0s-19.1 3.41-26.7 10.27L5.31 236.28c-6.57 5.91-7.12 16.02-1.21 22.6l21.4 23.82c5.9 6.57 16.02 7.12 22.6 1.21L277.42 81.63c6.05-5.33 15.12-5.33 21.17 0L527.91 283.9c6.57 5.9 16.69 5.36 22.6-1.21l21.4-23.82c5.9-6.57 5.36-16.69-1.22-22.59z"]},faHouseUser:{prefix:"fas",iconName:"house-user",icon:[576,512,[],"e065","M570.69,236.27,512,184.44V48a16,16,0,0,0-16-16H432a16,16,0,0,0-16,16V99.67L314.78,10.3C308.5,4.61,296.53,0,288,0s-20.46,4.61-26.74,10.3l-256,226A18.27,18.27,0,0,0,0,248.2a18.64,18.64,0,0,0,4.09,10.71L25.5,282.7a21.14,21.14,0,0,0,12,5.3,21.67,21.67,0,0,0,10.69-4.11l15.9-14V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V269.88l15.91,14A21.94,21.94,0,0,0,538.63,288a20.89,20.89,0,0,0,11.87-5.31l21.41-23.81A21.64,21.64,0,0,0,576,248.19,21,21,0,0,0,570.69,236.27ZM288,176a64,64,0,1,1-64,64A64,64,0,0,1,288,176ZM400,448H176a16,16,0,0,1-16-16,96,96,0,0,1,96-96h64a96,96,0,0,1,96,96A16,16,0,0,1,400,448Z"]},faHryvnia:{prefix:"fas",iconName:"hryvnia",icon:[384,512,[],"f6f2","M368 240c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-41.86c13.41-28.63 13.74-63.33-4.13-94.05C303.34 49.84 267.1 32 229.96 32h-78.82c-24.32 0-47.86 8.53-66.54 24.09L72.83 65.9c-10.18 8.49-11.56 23.62-3.07 33.8l20.49 24.59c8.49 10.19 23.62 11.56 33.81 3.07l11.73-9.78c4.32-3.6 9.77-5.57 15.39-5.57h83.62c11.69 0 21.2 9.52 21.2 21.2 0 5.91-2.48 11.58-6.81 15.58L219.7 176H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h134.37l-34.67 32H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h41.86c-13.41 28.63-13.74 63.33 4.13 94.05C80.66 462.15 116.9 480 154.04 480h78.82c24.32 0 47.86-8.53 66.54-24.09l11.77-9.81c10.18-8.49 11.56-23.62 3.07-33.8l-20.49-24.59c-8.49-10.19-23.62-11.56-33.81-3.07l-11.75 9.8a23.992 23.992 0 0 1-15.36 5.56H149.2c-11.69 0-21.2-9.52-21.2-21.2 0-5.91 2.48-11.58 6.81-15.58L164.3 336H368c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H233.63l34.67-32H368z"]},faICursor:{prefix:"fas",iconName:"i-cursor",icon:[256,512,[],"f246","M256 52.048V12.065C256 5.496 250.726.148 244.158.066 211.621-.344 166.469.011 128 37.959 90.266.736 46.979-.114 11.913.114 5.318.157 0 5.519 0 12.114v39.645c0 6.687 5.458 12.078 12.145 11.998C38.111 63.447 96 67.243 96 112.182V224H60c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h36v112c0 44.932-56.075 48.031-83.95 47.959C5.404 447.942 0 453.306 0 459.952v39.983c0 6.569 5.274 11.917 11.842 11.999 32.537.409 77.689.054 116.158-37.894 37.734 37.223 81.021 38.073 116.087 37.845 6.595-.043 11.913-5.405 11.913-12V460.24c0-6.687-5.458-12.078-12.145-11.998C217.889 448.553 160 444.939 160 400V288h36c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-36V112.182c0-44.932 56.075-48.213 83.95-48.142 6.646.018 12.05-5.346 12.05-11.992z"]},faIceCream:{prefix:"fas",iconName:"ice-cream",icon:[448,512,[],"f810","M368 160h-.94a144 144 0 1 0-286.12 0H80a48 48 0 0 0 0 96h288a48 48 0 0 0 0-96zM195.38 493.69a31.52 31.52 0 0 0 57.24 0L352 288H96z"]},faIcicles:{prefix:"fas",iconName:"icicles",icon:[512,512,[],"f7ad","M511.4 37.9C515.1 18.2 500 0 480 0H32C10.6 0-4.8 20.7 1.4 41.2l87.1 273.4c2.5 7.2 12.7 7.2 15.1 0L140 190.5l44.2 187.3c1.9 8.3 13.7 8.3 15.6 0l46.5-196.9 34.1 133.4c2.3 7.6 13 7.6 15.3 0l45.8-172.5 66.7 363.8c1.7 8.6 14 8.6 15.7 0l87.5-467.7z"]},faIcons:{prefix:"fas",iconName:"icons",icon:[512,512,[],"f86d","M116.65 219.35a15.68 15.68 0 0 0 22.65 0l96.75-99.83c28.15-29 26.5-77.1-4.91-103.88C203.75-7.7 163-3.5 137.86 22.44L128 32.58l-9.85-10.14C93.05-3.5 52.25-7.7 24.86 15.64c-31.41 26.78-33 74.85-5 103.88zm143.92 100.49h-48l-7.08-14.24a27.39 27.39 0 0 0-25.66-17.78h-71.71a27.39 27.39 0 0 0-25.66 17.78l-7 14.24h-48A27.45 27.45 0 0 0 0 347.3v137.25A27.44 27.44 0 0 0 27.43 512h233.14A27.45 27.45 0 0 0 288 484.55V347.3a27.45 27.45 0 0 0-27.43-27.46zM144 468a52 52 0 1 1 52-52 52 52 0 0 1-52 52zm355.4-115.9h-60.58l22.36-50.75c2.1-6.65-3.93-13.21-12.18-13.21h-75.59c-6.3 0-11.66 3.9-12.5 9.1l-16.8 106.93c-1 6.3 4.88 11.89 12.5 11.89h62.31l-24.2 83c-1.89 6.65 4.2 12.9 12.23 12.9a13.26 13.26 0 0 0 10.92-5.25l92.4-138.91c4.88-6.91-1.16-15.7-10.87-15.7zM478.08.33L329.51 23.17C314.87 25.42 304 38.92 304 54.83V161.6a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V99.66l112-17.22v47.18a83.25 83.25 0 0 0-16-1.7c-35.35 0-64 21.48-64 48s28.65 48 64 48c35.2 0 63.73-21.32 64-47.66V32c0-19.48-16-34.42-33.92-31.67z"]},faIdBadge:{prefix:"fas",iconName:"id-badge",icon:[384,512,[],"f2c1","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM144 32h96c8.8 0 16 7.2 16 16s-7.2 16-16 16h-96c-8.8 0-16-7.2-16-16s7.2-16 16-16zm48 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 416 80 407.4 80 396.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},faIdCard:{prefix:"fas",iconName:"id-card",icon:[576,512,[],"f2c2","M528 32H48C21.5 32 0 53.5 0 80v16h576V80c0-26.5-21.5-48-48-48zM0 432c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V128H0v304zm352-232c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zm0 64c0-4.4 3.6-8 8-8h144c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H360c-4.4 0-8-3.6-8-8v-16zM176 192c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zM67.1 396.2C75.5 370.5 99.6 352 128 352h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.9-5.2 19.8-15.6 19.8H82.7c-10.4 0-18.8-10-15.6-19.8z"]},faIdCardAlt:{prefix:"fas",iconName:"id-card-alt",icon:[576,512,[],"f47f","M528 64H384v96H192V64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM288 224c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm93.3 224H194.7c-10.4 0-18.8-10-15.6-19.8 8.3-25.6 32.4-44.2 60.9-44.2h8.2c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h8.2c28.4 0 52.5 18.5 60.9 44.2 3.2 9.8-5.2 19.8-15.6 19.8zM352 32c0-17.7-14.3-32-32-32h-64c-17.7 0-32 14.3-32 32v96h128V32z"]},faIgloo:{prefix:"fas",iconName:"igloo",icon:[576,512,[],"f7ae","M320 33.9c-10.5-1.2-21.2-1.9-32-1.9-99.8 0-187.8 50.8-239.4 128H320V33.9zM96 192H30.3C11.1 230.6 0 274 0 320h96V192zM352 39.4V160h175.4C487.2 99.9 424.8 55.9 352 39.4zM480 320h96c0-46-11.1-89.4-30.3-128H480v128zm-64 64v96h128c17.7 0 32-14.3 32-32v-96H411.5c2.6 10.3 4.5 20.9 4.5 32zm32-192H128v128h49.8c22.2-38.1 63-64 110.2-64s88 25.9 110.2 64H448V192zM0 448c0 17.7 14.3 32 32 32h128v-96c0-11.1 1.9-21.7 4.5-32H0v96zm288-160c-53 0-96 43-96 96v96h192v-96c0-53-43-96-96-96z"]},faImage:{prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M464 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM112 120c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56zM64 384h384V272l-87.515-87.515c-4.686-4.686-12.284-4.686-16.971 0L208 320l-55.515-55.515c-4.686-4.686-12.284-4.686-16.971 0L64 336v48z"]},faImages:{prefix:"fas",iconName:"images",icon:[576,512,[],"f302","M480 416v16c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v208c0 44.112 35.888 80 80 80h336zm96-80V80c0-26.51-21.49-48-48-48H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48h384c26.51 0 48-21.49 48-48zM256 128c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-96 144l55.515-55.515c4.686-4.686 12.284-4.686 16.971 0L272 256l135.515-135.515c4.686-4.686 12.284-4.686 16.971 0L512 208v112H160v-48z"]},faInbox:{prefix:"fas",iconName:"inbox",icon:[576,512,[],"f01c","M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"]},faIndent:{prefix:"fas",iconName:"indent",icon:[448,512,[],"f03c","M27.31 363.3l96-96a16 16 0 0 0 0-22.62l-96-96C17.27 138.66 0 145.78 0 160v192c0 14.31 17.33 21.3 27.31 11.3zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faIndustry:{prefix:"fas",iconName:"industry",icon:[512,512,[],"f275","M475.115 163.781L336 252.309v-68.28c0-18.916-20.931-30.399-36.885-20.248L160 252.309V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56v400c0 13.255 10.745 24 24 24h464c13.255 0 24-10.745 24-24V184.029c0-18.917-20.931-30.399-36.885-20.248z"]},faInfinity:{prefix:"fas",iconName:"infinity",icon:[640,512,[],"f534","M471.1 96C405 96 353.3 137.3 320 174.6 286.7 137.3 235 96 168.9 96 75.8 96 0 167.8 0 256s75.8 160 168.9 160c66.1 0 117.8-41.3 151.1-78.6 33.3 37.3 85 78.6 151.1 78.6 93.1 0 168.9-71.8 168.9-160S564.2 96 471.1 96zM168.9 320c-40.2 0-72.9-28.7-72.9-64s32.7-64 72.9-64c38.2 0 73.4 36.1 94 64-20.4 27.6-55.9 64-94 64zm302.2 0c-38.2 0-73.4-36.1-94-64 20.4-27.6 55.9-64 94-64 40.2 0 72.9 28.7 72.9 64s-32.7 64-72.9 64z"]},faInfo:{prefix:"fas",iconName:"info",icon:[192,512,[],"f129","M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z"]},faInfoCircle:{prefix:"fas",iconName:"info-circle",icon:[512,512,[],"f05a","M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"]},faItalic:{prefix:"fas",iconName:"italic",icon:[320,512,[],"f033","M320 48v32a16 16 0 0 1-16 16h-62.76l-80 320H208a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h62.76l80-320H112a16 16 0 0 1-16-16V48a16 16 0 0 1 16-16h192a16 16 0 0 1 16 16z"]},faJedi:{prefix:"fas",iconName:"jedi",icon:[576,512,[],"f669","M535.95308,352c-42.64069,94.17188-137.64086,160-247.9848,160q-6.39844,0-12.84377-.29688C171.15558,506.9375,81.26481,442.23438,40.01474,352H79.93668L21.3272,293.40625a264.82522,264.82522,0,0,1-5.10938-39.42187,273.6653,273.6653,0,0,1,.5-29.98438H63.93665L22.546,182.625A269.79782,269.79782,0,0,1,130.51489,20.54688a16.06393,16.06393,0,0,1,9.28127-3,16.36332,16.36332,0,0,1,13.5,7.25,16.02739,16.02739,0,0,1,1.625,15.09374,138.387,138.387,0,0,0-9.84376,51.26563c0,45.10937,21.04691,86.57813,57.71884,113.73437a16.29989,16.29989,0,0,1,1.20313,25.39063c-26.54692,23.98437-41.17194,56.5-41.17194,91.57813,0,60.03124,42.95319,110.28124,99.89079,121.92187l2.5-65.26563L238.062,397a8.33911,8.33911,0,0,1-10-.75,8.025,8.025,0,0,1-1.39063-9.9375l20.125-33.76562-42.06257-8.73438a7.9898,7.9898,0,0,1,0-15.65625l42.06257-8.71875-20.10941-33.73438a7.99122,7.99122,0,0,1,11.35939-10.71874L268.437,295.64062,279.95265,7.67188a7.97138,7.97138,0,0,1,8-7.67188h.04687a8.02064,8.02064,0,0,1,7.95314,7.70312L307.48394,295.625l30.39068-20.67188a8.08327,8.08327,0,0,1,10,.8125,7.99866,7.99866,0,0,1,1.39062,9.90626L329.12461,319.4375l42.07819,8.73438a7.99373,7.99373,0,0,1,0,15.65624l-42.07819,8.71876,20.1094,33.73437a7.97791,7.97791,0,0,1-1.32812,9.92187A8.25739,8.25739,0,0,1,337.87462,397L310.7027,378.53125l2.5,65.34375c48.48446-9.40625,87.57828-48.15625,97.31267-96.5A123.52652,123.52652,0,0,0,371.9528,230.29688a16.30634,16.30634,0,0,1,1.20313-25.42188c36.65631-27.17188,57.6876-68.60938,57.6876-113.73438a138.01689,138.01689,0,0,0-9.85939-51.3125,15.98132,15.98132,0,0,1,1.60937-15.09374,16.36914,16.36914,0,0,1,13.5-7.23438,16.02453,16.02453,0,0,1,9.25,2.98438A271.26947,271.26947,0,0,1,553.25,182.76562L511.99992,224h46.9532C559.3125,229.76562,560,235.45312,560,241.26562a270.092,270.092,0,0,1-5.125,51.85938L495.98427,352Z"]},faJoint:{prefix:"fas",iconName:"joint",icon:[640,512,[],"f595","M444.34 181.1c22.38 15.68 35.66 41.16 35.66 68.59V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-43.24-21.01-83.41-56.34-108.06C463.85 125.02 448 99.34 448 70.31V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v66.4c0 43.69 24.56 81.63 60.34 106.7zM194.97 358.98C126.03 370.07 59.69 394.69 0 432c83.65 52.28 180.3 80 278.94 80h88.57L254.79 380.49c-14.74-17.2-37.45-25.11-59.82-21.51zM553.28 87.09c-5.67-3.8-9.28-9.96-9.28-16.78V8c0-4.42-3.58-8-8-8h-48c-4.42 0-8 3.58-8 8v62.31c0 22.02 10.17 43.41 28.64 55.39C550.79 153.04 576 199.54 576 249.69V280c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-30.31c0-65.44-32.41-126.19-86.72-162.6zM360.89 352.05c-34.4.06-86.81.15-88.21.17l117.8 137.43A63.987 63.987 0 0 0 439.07 512h88.45L409.57 374.4a63.955 63.955 0 0 0-48.68-22.35zM616 352H432l117.99 137.65A63.987 63.987 0 0 0 598.58 512H616c13.25 0 24-10.75 24-24V376c0-13.26-10.75-24-24-24z"]},faJournalWhills:{prefix:"fas",iconName:"journal-whills",icon:[448,512,[],"f66a","M438.40625,377.59375c-3.20313,12.8125-3.20313,57.60937,0,73.60937Q447.9922,460.78907,448,470.40625v16c0,16-12.79688,25.59375-25.59375,25.59375H96c-54.40625,0-96-41.59375-96-96V96C0,41.59375,41.59375,0,96,0H422.40625C438.40625,0,448,9.59375,448,25.59375v332.8125Q448,372.79688,438.40625,377.59375ZM380.79688,384H96c-16,0-32,12.79688-32,32s12.79688,32,32,32H380.79688ZM128.01562,176.01562c0,.51563.14063.98438.14063,1.5l37.10937,32.46876A7.99954,7.99954,0,0,1,160,224h-.01562a9.17678,9.17678,0,0,1-5.25-1.98438L131.14062,201.375C142.6875,250.95312,186.90625,288,240,288s97.3125-37.04688,108.875-86.625l-23.59375,20.64062a8.02516,8.02516,0,0,1-5.26563,1.96876H320a9.14641,9.14641,0,0,1-6.01562-2.71876A9.26508,9.26508,0,0,1,312,216a9.097,9.097,0,0,1,2.73438-6.01562l37.10937-32.46876c.01563-.53124.15625-1,.15625-1.51562,0-11.04688-2.09375-21.51562-5.06251-31.59375l-21.26562,21.25a8.00467,8.00467,0,0,1-11.32812-11.3125l26.42187-26.40625a111.81517,111.81517,0,0,0-46.35937-49.26562,63.02336,63.02336,0,0,1-14.0625,82.64062A55.83846,55.83846,0,0,1,251.625,254.73438l-1.42188-34.28126,12.67188,8.625a3.967,3.967,0,0,0,2.25.6875,3.98059,3.98059,0,0,0,3.43749-6.03124l-8.53124-14.3125,17.90625-3.71876a4.00647,4.00647,0,0,0,0-7.84374l-17.90625-3.71876,8.53124-14.3125a3.98059,3.98059,0,0,0-3.43749-6.03124,4.726,4.726,0,0,0-2.25.67187L248.6875,184.125,244,71.82812a4.00386,4.00386,0,0,0-8,0l-4.625,110.8125-12-8.15624a4.003,4.003,0,0,0-5.68751,5.35937l8.53126,14.3125L204.3125,197.875a3.99686,3.99686,0,0,0,0,7.82812l17.90625,3.73438-8.53126,14.29688a4.72469,4.72469,0,0,0-.56249,2.04687,4.59547,4.59547,0,0,0,1.25,2.90625,4.01059,4.01059,0,0,0,2.75,1.09375,4.09016,4.09016,0,0,0,2.25-.6875l10.35937-7.04687L228.375,254.76562a55.86414,55.86414,0,0,1-28.71875-93.45312,63.01119,63.01119,0,0,1-14.04688-82.65625,111.93158,111.93158,0,0,0-46.375,49.26563l26.42187,26.42187a7.99917,7.99917,0,0,1-11.3125,11.3125l-21.26563-21.26563C130.09375,154.48438,128,164.95312,128.01562,176.01562Z"]},faKaaba:{prefix:"fas",iconName:"kaaba",icon:[576,512,[],"f66b","M554.12 83.51L318.36 4.93a95.962 95.962 0 0 0-60.71 0L21.88 83.51A32.006 32.006 0 0 0 0 113.87v49.01l265.02-79.51c15.03-4.5 30.92-4.5 45.98 0l265 79.51v-49.01c0-13.77-8.81-26-21.88-30.36zm-279.9 30.52L0 196.3v228.38c0 15 10.42 27.98 25.06 31.24l242.12 53.8a95.937 95.937 0 0 0 41.65 0l242.12-53.8c14.64-3.25 25.06-16.24 25.06-31.24V196.29l-274.2-82.26c-9.04-2.72-18.59-2.72-27.59 0zM128 230.11c0 3.61-2.41 6.77-5.89 7.72l-80 21.82C37.02 261.03 32 257.2 32 251.93v-16.58c0-3.61 2.41-6.77 5.89-7.72l80-21.82c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm144-39.28c0 3.61-2.41 6.77-5.89 7.72l-96 26.18c-5.09 1.39-10.11-2.44-10.11-7.72v-16.58c0-3.61 2.41-6.77 5.89-7.72l96-26.18c5.09-1.39 10.11 2.44 10.11 7.72v16.58zm176 22.7c0-5.28 5.02-9.11 10.11-7.72l80 21.82c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-80-21.82a7.997 7.997 0 0 1-5.89-7.72v-16.58zm-144-39.27c0-5.28 5.02-9.11 10.11-7.72l96 26.18c3.48.95 5.89 4.11 5.89 7.72v16.58c0 5.28-5.02 9.11-10.11 7.72l-96-26.18a7.997 7.997 0 0 1-5.89-7.72v-16.58z"]},faKey:{prefix:"fas",iconName:"key",icon:[512,512,[],"f084","M512 176.001C512 273.203 433.202 352 336 352c-11.22 0-22.19-1.062-32.827-3.069l-24.012 27.014A23.999 23.999 0 0 1 261.223 384H224v40c0 13.255-10.745 24-24 24h-40v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-78.059c0-6.365 2.529-12.47 7.029-16.971l161.802-161.802C163.108 213.814 160 195.271 160 176 160 78.798 238.797.001 335.999 0 433.488-.001 512 78.511 512 176.001zM336 128c0 26.51 21.49 48 48 48s48-21.49 48-48-21.49-48-48-48-48 21.49-48 48z"]},faKeyboard:{prefix:"fas",iconName:"keyboard",icon:[576,512,[],"f11c","M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]},faKhanda:{prefix:"fas",iconName:"khanda",icon:[512,512,[],"f66d","M415.81 66c-6.37-3.5-14.37-2.33-19.36 3.02a15.974 15.974 0 0 0-1.91 19.52c16.49 26.16 25.2 56.39 25.2 87.41-.19 53.25-26.77 102.69-71.27 132.41l-76.63 53.35v-20.1l44.05-36.09c3.92-4.2 5-10.09 2.81-15.28L310.85 273c33.84-19.26 56.94-55.25 56.94-96.99 0-40.79-22.02-76.13-54.59-95.71l5.22-11.44c2.34-5.53.93-11.83-3.57-16.04L255.86 0l-58.99 52.81c-4.5 4.21-5.9 10.51-3.57 16.04l5.22 11.44c-32.57 19.58-54.59 54.93-54.59 95.72 0 41.75 23.09 77.73 56.94 96.99l-7.85 17.24c-2.19 5.18-1.1 11.07 2.81 15.28l44.05 36.09v19.9l-76.59-53.33C119.02 278.62 92.44 229.19 92.26 176c0-31.08 8.71-61.31 25.2-87.47 3.87-6.16 2.4-13.77-2.59-19.08-5-5.34-13.68-6.2-20.02-2.7C16.32 109.6-22.3 205.3 13.36 295.99c7.07 17.99 17.89 34.38 30.46 49.06l55.97 65.36c4.87 5.69 13.04 7.24 19.65 3.72l79.35-42.23L228 392.23l-47.08 32.78c-1.67-.37-3.23-1.01-5.01-1.01-13.25 0-23.99 10.74-23.99 24 0 13.25 10.74 24 23.99 24 12.1 0 21.69-9.11 23.33-20.76l40.63-28.28v29.95c-9.39 5.57-15.99 15.38-15.99 27.1 0 17.67 14.32 32 31.98 32s31.98-14.33 31.98-32c0-11.71-6.61-21.52-15.99-27.1v-30.15l40.91 28.48C314.41 462.89 324 472 336.09 472c13.25 0 23.99-10.75 23.99-24 0-13.26-10.74-24-23.99-24-1.78 0-3.34.64-5.01 1.01L284 392.23l29.21-20.34 79.35 42.23c6.61 3.52 14.78 1.97 19.65-3.71l52.51-61.31c18.87-22.02 34-47.5 41.25-75.59 21.62-83.66-16.45-167.27-90.16-207.51zm-95.99 110c0 22.3-11.49 41.92-28.83 53.38l-5.65-12.41c-8.75-24.52-8.75-51.04 0-75.56l7.83-17.18c16.07 11.65 26.65 30.45 26.65 51.77zm-127.93 0c0-21.32 10.58-40.12 26.66-51.76l7.83 17.18c8.75 24.52 8.75 51.03 0 75.56l-5.65 12.41c-17.34-11.46-28.84-31.09-28.84-53.39z"]},faKiss:{prefix:"fas",iconName:"kiss",icon:[496,512,[],"f596","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm136 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm24-156c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faKissBeam:{prefix:"fas",iconName:"kiss-beam",icon:[496,512,[],"f597","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-39 219.9l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5zM304 396c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-6.1-12.2 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.6-3.6-4.8-16.5 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C290.6 368.7 304 383 304 396zm65-168.1l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.5 8.5-10.9 12-15.1 4.5z"]},faKissWinkHeart:{prefix:"fas",iconName:"kiss-wink-heart",icon:[504,512,[],"f598","M501.1 402.5c-8-20.8-31.5-31.5-53.1-25.9l-8.4 2.2-2.3-8.4c-5.9-21.4-27-36.5-49-33-25.2 4-40.6 28.6-34 52.6l22.9 82.6c1.5 5.3 7 8.5 12.4 7.1l83-21.5c24.1-6.3 37.7-31.8 28.5-55.7zm-177.6-4c-5.6-20.3-2.3-42 9-59.7 29.7-46.3 98.7-45.5 127.8 4.3 6.4.1 12.6 1.4 18.6 2.9 10.9-27.9 17.1-58.2 17.1-90C496 119 385 8 248 8S0 119 0 256s111 248 248 248c35.4 0 68.9-7.5 99.4-20.9-.3-.7-23.9-84.6-23.9-84.6zM168 240c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm120 156c0 19.2-28.7 41.5-71.5 44-8.5.8-12.1-11.8-3.6-15.4l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-6-2.5-5.7-12.3 0-14.8l17-7.2c13-5.5 20.8-13.5 20.8-21.5s-7.8-16-20.8-21.5l-17-7.2c-8.8-3.7-4.6-16.6 3.6-15.4 42.8 2.5 71.5 24.8 71.5 44 0 13-13.4 27.3-35.2 36C274.6 368.7 288 383 288 396zm16-179c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S400 181 404 206.2c1.7 11.1-11.3 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 217z"]},faKiwiBird:{prefix:"fas",iconName:"kiwi-bird",icon:[576,512,[],"f535","M575.81 217.98C572.64 157.41 518.28 112 457.63 112h-9.37c-52.82 0-104.25-16.25-147.74-46.24-41.99-28.96-96.04-41.62-153.21-28.7C129.3 41.12-.08 78.24 0 224c.04 70.95 38.68 132.8 95.99 166.01V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-54.26c15.36 3.96 31.4 6.26 48 6.26 5.44 0 10.68-.73 16-1.18V464c0 8.84 7.16 16 16 16h16c8.84 0 16-7.16 16-16v-59.43c14.24-5.06 27.88-11.39 40.34-19.51C342.07 355.25 393.86 336 448.46 336c25.48 0 16.01-.31 23.05-.78l74.41 136.44c2.86 5.23 8.3 8.34 14.05 8.34 1.31 0 2.64-.16 3.95-.5 7.09-1.8 12.05-8.19 12.05-15.5 0 0 .14-240.24-.16-246.02zM463.97 248c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24zm80 153.25l-39.86-73.08c15.12-5.83 28.73-14.6 39.86-25.98v99.06z"]},faLandmark:{prefix:"fas",iconName:"landmark",icon:[512,512,[],"f66f","M501.62 92.11L267.24 2.04a31.958 31.958 0 0 0-22.47 0L10.38 92.11A16.001 16.001 0 0 0 0 107.09V144c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-36.91c0-6.67-4.14-12.64-10.38-14.98zM64 192v160H48c-8.84 0-16 7.16-16 16v48h448v-48c0-8.84-7.16-16-16-16h-16V192h-64v160h-96V192h-64v160h-96V192H64zm432 256H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faLanguage:{prefix:"fas",iconName:"language",icon:[640,512,[],"f1ab","M152.1 236.2c-3.5-12.1-7.8-33.2-7.8-33.2h-.5s-4.3 21.1-7.8 33.2l-11.1 37.5H163zM616 96H336v320h280c13.3 0 24-10.7 24-24V120c0-13.3-10.7-24-24-24zm-24 120c0 6.6-5.4 12-12 12h-11.4c-6.9 23.6-21.7 47.4-42.7 69.9 8.4 6.4 17.1 12.5 26.1 18 5.5 3.4 7.3 10.5 4.1 16.2l-7.9 13.9c-3.4 5.9-10.9 7.8-16.7 4.3-12.6-7.8-24.5-16.1-35.4-24.9-10.9 8.7-22.7 17.1-35.4 24.9-5.8 3.5-13.3 1.6-16.7-4.3l-7.9-13.9c-3.2-5.6-1.4-12.8 4.2-16.2 9.3-5.7 18-11.7 26.1-18-7.9-8.4-14.9-17-21-25.7-4-5.7-2.2-13.6 3.7-17.1l6.5-3.9 7.3-4.3c5.4-3.2 12.4-1.7 16 3.4 5 7 10.8 14 17.4 20.9 13.5-14.2 23.8-28.9 30-43.2H412c-6.6 0-12-5.4-12-12v-16c0-6.6 5.4-12 12-12h64v-16c0-6.6 5.4-12 12-12h16c6.6 0 12 5.4 12 12v16h64c6.6 0 12 5.4 12 12zM0 120v272c0 13.3 10.7 24 24 24h280V96H24c-13.3 0-24 10.7-24 24zm58.9 216.1L116.4 167c1.7-4.9 6.2-8.1 11.4-8.1h32.5c5.1 0 9.7 3.3 11.4 8.1l57.5 169.1c2.6 7.8-3.1 15.9-11.4 15.9h-22.9a12 12 0 0 1-11.5-8.6l-9.4-31.9h-60.2l-9.1 31.8c-1.5 5.1-6.2 8.7-11.5 8.7H70.3c-8.2 0-14-8.1-11.4-15.9z"]},faLaptop:{prefix:"fas",iconName:"laptop",icon:[640,512,[],"f109","M624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]},faLaptopCode:{prefix:"fas",iconName:"laptop-code",icon:[640,512,[],"f5fc","M255.03 261.65c6.25 6.25 16.38 6.25 22.63 0l11.31-11.31c6.25-6.25 6.25-16.38 0-22.63L253.25 192l35.71-35.72c6.25-6.25 6.25-16.38 0-22.63l-11.31-11.31c-6.25-6.25-16.38-6.25-22.63 0l-58.34 58.34c-6.25 6.25-6.25 16.38 0 22.63l58.35 58.34zm96.01-11.3l11.31 11.31c6.25 6.25 16.38 6.25 22.63 0l58.34-58.34c6.25-6.25 6.25-16.38 0-22.63l-58.34-58.34c-6.25-6.25-16.38-6.25-22.63 0l-11.31 11.31c-6.25 6.25-6.25 16.38 0 22.63L386.75 192l-35.71 35.72c-6.25 6.25-6.25 16.38 0 22.63zM624 416H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33.02-17.47-32.77-32H16c-8.8 0-16 7.2-16 16v16c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64v-16c0-8.8-7.2-16-16-16zM576 48c0-26.4-21.6-48-48-48H112C85.6 0 64 21.6 64 48v336h512V48zm-64 272H128V64h384v256z"]},faLaptopHouse:{prefix:"fas",iconName:"laptop-house",icon:[640,512,[],"e066","M272,288H208a16,16,0,0,1-16-16V208a16,16,0,0,1,16-16h64a16,16,0,0,1,16,16v37.12C299.11,232.24,315,224,332.8,224H469.74l6.65-7.53A16.51,16.51,0,0,0,480,207a16.31,16.31,0,0,0-4.75-10.61L416,144V48a16,16,0,0,0-16-16H368a16,16,0,0,0-16,16V87.3L263.5,8.92C258,4,247.45,0,240.05,0s-17.93,4-23.47,8.92L4.78,196.42A16.15,16.15,0,0,0,0,207a16.4,16.4,0,0,0,3.55,9.39L22.34,237.7A16.22,16.22,0,0,0,33,242.48,16.51,16.51,0,0,0,42.34,239L64,219.88V384a32,32,0,0,0,32,32H272ZM629.33,448H592V288c0-17.67-12.89-32-28.8-32H332.8c-15.91,0-28.8,14.33-28.8,32V448H266.67A10.67,10.67,0,0,0,256,458.67v10.66A42.82,42.82,0,0,0,298.6,512H597.4A42.82,42.82,0,0,0,640,469.33V458.67A10.67,10.67,0,0,0,629.33,448ZM544,448H352V304H544Z"]},faLaptopMedical:{prefix:"fas",iconName:"laptop-medical",icon:[640,512,[],"f812","M232 224h56v56a8 8 0 0 0 8 8h48a8 8 0 0 0 8-8v-56h56a8 8 0 0 0 8-8v-48a8 8 0 0 0-8-8h-56v-56a8 8 0 0 0-8-8h-48a8 8 0 0 0-8 8v56h-56a8 8 0 0 0-8 8v48a8 8 0 0 0 8 8zM576 48a48.14 48.14 0 0 0-48-48H112a48.14 48.14 0 0 0-48 48v336h512zm-64 272H128V64h384zm112 96H381.54c-.74 19.81-14.71 32-32.74 32H288c-18.69 0-33-17.47-32.77-32H16a16 16 0 0 0-16 16v16a64.19 64.19 0 0 0 64 64h512a64.19 64.19 0 0 0 64-64v-16a16 16 0 0 0-16-16z"]},faLaugh:{prefix:"fas",iconName:"laugh",icon:[496,512,[],"f599","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 152c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm88 272h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18-8.9 71-69.5 126-142.9 126z"]},faLaughBeam:{prefix:"fas",iconName:"laugh-beam",icon:[496,512,[],"f59a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm24 199.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.2 7.4-15.8 4.1-15.1-4.5zm-160 0c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},faLaughSquint:{prefix:"fas",iconName:"laugh-squint",icon:[496,512,[],"f59b","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 161.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 180l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM398.9 306C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},faLaughWink:{prefix:"fas",iconName:"laugh-wink",icon:[496,512,[],"f59c","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm20.1 198.1c4-25.2 34.2-42.1 59.9-42.1s55.9 16.9 59.9 42.1c1.7 11.1-11.4 18.3-19.8 10.8l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L288 217c-8.4 7.4-21.6.3-19.9-10.9zM168 160c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm230.9 146C390 377 329.4 432 256 432h-16c-73.4 0-134-55-142.9-126-1.2-9.5 6.3-18 15.9-18h270c9.6 0 17.1 8.4 15.9 18z"]},faLayerGroup:{prefix:"fas",iconName:"layer-group",icon:[512,512,[],"f5fd","M12.41 148.02l232.94 105.67c6.8 3.09 14.49 3.09 21.29 0l232.94-105.67c16.55-7.51 16.55-32.52 0-40.03L266.65 2.31a25.607 25.607 0 0 0-21.29 0L12.41 107.98c-16.55 7.51-16.55 32.53 0 40.04zm487.18 88.28l-58.09-26.33-161.64 73.27c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.51 209.97l-58.1 26.33c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 276.3c16.55-7.5 16.55-32.5 0-40zm0 127.8l-57.87-26.23-161.86 73.37c-7.56 3.43-15.59 5.17-23.86 5.17s-16.29-1.74-23.86-5.17L70.29 337.87 12.41 364.1c-16.55 7.5-16.55 32.5 0 40l232.94 105.59c6.8 3.08 14.49 3.08 21.29 0L499.59 404.1c16.55-7.5 16.55-32.5 0-40z"]},faLeaf:{prefix:"fas",iconName:"leaf",icon:[576,512,[],"f06c","M546.2 9.7c-5.6-12.5-21.6-13-28.3-1.2C486.9 62.4 431.4 96 368 96h-80C182 96 96 182 96 288c0 7 .8 13.7 1.5 20.5C161.3 262.8 253.4 224 384 224c8.8 0 16 7.2 16 16s-7.2 16-16 16C132.6 256 26 410.1 2.4 468c-6.6 16.3 1.2 34.9 17.5 41.6 16.4 6.8 35-1.1 41.8-17.3 1.5-3.6 20.9-47.9 71.9-90.6 32.4 43.9 94 85.8 174.9 77.2C465.5 467.5 576 326.7 576 154.3c0-50.2-10.8-102.2-29.8-144.6z"]},faLemon:{prefix:"fas",iconName:"lemon",icon:[512,512,[],"f094","M489.038 22.963C465.944-.13 434.648-5.93 413.947 6.129c-58.906 34.312-181.25-53.077-321.073 86.746S40.441 355.041 6.129 413.945c-12.059 20.702-6.26 51.999 16.833 75.093 23.095 23.095 54.392 28.891 75.095 16.832 58.901-34.31 181.246 53.079 321.068-86.743S471.56 156.96 505.871 98.056c12.059-20.702 6.261-51.999-16.833-75.093zM243.881 95.522c-58.189 14.547-133.808 90.155-148.358 148.358-1.817 7.27-8.342 12.124-15.511 12.124-1.284 0-2.59-.156-3.893-.481-8.572-2.144-13.784-10.83-11.642-19.403C81.901 166.427 166.316 81.93 236.119 64.478c8.575-2.143 17.261 3.069 19.403 11.642s-3.069 17.259-11.641 19.402z"]},faLessThan:{prefix:"fas",iconName:"less-than",icon:[384,512,[],"f536","M365.46 357.74L147.04 255.89l218.47-101.88c16.02-7.47 22.95-26.51 15.48-42.53l-13.52-29C360 66.46 340.96 59.53 324.94 67L18.48 209.91a32.014 32.014 0 0 0-18.48 29v34.24c0 12.44 7.21 23.75 18.48 29l306.31 142.83c16.06 7.49 35.15.54 42.64-15.52l13.56-29.08c7.49-16.06.54-35.15-15.53-42.64z"]},faLessThanEqual:{prefix:"fas",iconName:"less-than-equal",icon:[448,512,[],"f537","M54.98 214.2l301.41 119.87c18.39 6.03 38.71-2.54 45.38-19.15l12.09-30.08c6.68-16.61-2.82-34.97-21.21-41l-175.44-68.05 175.56-68.09c18.29-6 27.74-24.27 21.1-40.79l-12.03-29.92c-6.64-16.53-26.86-25.06-45.15-19.06L54.98 137.89C41.21 142.41 32 154.5 32 168.07v15.96c0 13.56 9.21 25.65 22.98 30.17zM424 400H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h400c13.25 0 24-10.75 24-24v-48c0-13.26-10.75-24-24-24z"]},faLevelDownAlt:{prefix:"fas",iconName:"level-down-alt",icon:[320,512,[],"f3be","M313.553 392.331L209.587 504.334c-9.485 10.214-25.676 10.229-35.174 0L70.438 392.331C56.232 377.031 67.062 352 88.025 352H152V80H68.024a11.996 11.996 0 0 1-8.485-3.515l-56-56C-4.021 12.926 1.333 0 12.024 0H208c13.255 0 24 10.745 24 24v328h63.966c20.878 0 31.851 24.969 17.587 40.331z"]},faLevelUpAlt:{prefix:"fas",iconName:"level-up-alt",icon:[320,512,[],"f3bf","M313.553 119.669L209.587 7.666c-9.485-10.214-25.676-10.229-35.174 0L70.438 119.669C56.232 134.969 67.062 160 88.025 160H152v272H68.024a11.996 11.996 0 0 0-8.485 3.515l-56 56C-4.021 499.074 1.333 512 12.024 512H208c13.255 0 24-10.745 24-24V160h63.966c20.878 0 31.851-24.969 17.587-40.331z"]},faLifeRing:{prefix:"fas",iconName:"life-ring",icon:[512,512,[],"f1cd","M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm173.696 119.559l-63.399 63.399c-10.987-18.559-26.67-34.252-45.255-45.255l63.399-63.399a218.396 218.396 0 0 1 45.255 45.255zM256 352c-53.019 0-96-42.981-96-96s42.981-96 96-96 96 42.981 96 96-42.981 96-96 96zM127.559 82.304l63.399 63.399c-18.559 10.987-34.252 26.67-45.255 45.255l-63.399-63.399a218.372 218.372 0 0 1 45.255-45.255zM82.304 384.441l63.399-63.399c10.987 18.559 26.67 34.252 45.255 45.255l-63.399 63.399a218.396 218.396 0 0 1-45.255-45.255zm302.137 45.255l-63.399-63.399c18.559-10.987 34.252-26.67 45.255-45.255l63.399 63.399a218.403 218.403 0 0 1-45.255 45.255z"]},faLightbulb:{prefix:"fas",iconName:"lightbulb",icon:[352,512,[],"f0eb","M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]},faLink:d,faLiraSign:{prefix:"fas",iconName:"lira-sign",icon:[384,512,[],"f195","M371.994 256h-48.019C317.64 256 312 260.912 312 267.246 312 368 230.179 416 144 416V256.781l134.603-29.912A12 12 0 0 0 288 215.155v-40.976c0-7.677-7.109-13.38-14.603-11.714L144 191.219V160.78l134.603-29.912A12 12 0 0 0 288 119.154V78.179c0-7.677-7.109-13.38-14.603-11.714L144 95.219V44c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v68.997L9.397 125.131A12 12 0 0 0 0 136.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 178.558v30.439L9.397 221.131A12 12 0 0 0 0 232.845v40.976c0 7.677 7.109 13.38 14.603 11.714L64 274.558V468c0 6.627 5.373 12 12 12h79.583c134.091 0 223.255-77.834 228.408-211.592.261-6.782-5.211-12.408-11.997-12.408z"]},faList:{prefix:"fas",iconName:"list",icon:[512,512,[],"f03a","M80 368H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm0-320H16A16 16 0 0 0 0 64v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16V64a16 16 0 0 0-16-16zm0 160H16a16 16 0 0 0-16 16v64a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-64a16 16 0 0 0-16-16zm416 176H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faListAlt:{prefix:"fas",iconName:"list-alt",icon:[512,512,[],"f022","M464 480H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h416c26.51 0 48 21.49 48 48v352c0 26.51-21.49 48-48 48zM128 120c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm0 96c-22.091 0-40 17.909-40 40s17.909 40 40 40 40-17.909 40-40-17.909-40-40-40zm288-136v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12zm0 96v-32c0-6.627-5.373-12-12-12H204c-6.627 0-12 5.373-12 12v32c0 6.627 5.373 12 12 12h200c6.627 0 12-5.373 12-12z"]},faListOl:{prefix:"fas",iconName:"list-ol",icon:[512,512,[],"f0cb","M61.77 401l17.5-20.15a19.92 19.92 0 0 0 5.07-14.19v-3.31C84.34 356 80.5 352 73 352H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8h22.83a157.41 157.41 0 0 0-11 12.31l-5.61 7c-4 5.07-5.25 10.13-2.8 14.88l1.05 1.93c3 5.76 6.29 7.88 12.25 7.88h4.73c10.33 0 15.94 2.44 15.94 9.09 0 4.72-4.2 8.22-14.36 8.22a41.54 41.54 0 0 1-15.47-3.12c-6.49-3.88-11.74-3.5-15.6 3.12l-5.59 9.31c-3.72 6.13-3.19 11.72 2.63 15.94 7.71 4.69 20.38 9.44 37 9.44 34.16 0 48.5-22.75 48.5-44.12-.03-14.38-9.12-29.76-28.73-34.88zM496 224H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h64a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H64V40a8 8 0 0 0-8-8H32a8 8 0 0 0-7.14 4.42l-8 16A8 8 0 0 0 24 64h8v64H16a8 8 0 0 0-8 8v16a8 8 0 0 0 8 8zm-3.91 160H80a8 8 0 0 0 8-8v-16a8 8 0 0 0-8-8H41.32c3.29-10.29 48.34-18.68 48.34-56.44 0-29.06-25-39.56-44.47-39.56-21.36 0-33.8 10-40.46 18.75-4.37 5.59-3 10.84 2.8 15.37l8.58 6.88c5.61 4.56 11 2.47 16.12-2.44a13.44 13.44 0 0 1 9.46-3.84c3.33 0 9.28 1.56 9.28 8.75C51 248.19 0 257.31 0 304.59v4C0 316 5.08 320 12.09 320z"]},faListUl:{prefix:"fas",iconName:"list-ul",icon:[512,512,[],"f0ca","M48 48a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm0 160a48 48 0 1 0 48 48 48 48 0 0 0-48-48zm448 16H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H176a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h320a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faLocationArrow:{prefix:"fas",iconName:"location-arrow",icon:[512,512,[],"f124","M444.52 3.52L28.74 195.42c-47.97 22.39-31.98 92.75 19.19 92.75h175.91v175.91c0 51.17 70.36 67.17 92.75 19.19l191.9-415.78c15.99-38.39-25.59-79.97-63.97-63.97z"]},faLock:{prefix:"fas",iconName:"lock",icon:[448,512,[],"f023","M400 224h-24v-72C376 68.2 307.8 0 224 0S72 68.2 72 152v72H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48zm-104 0H152v-72c0-39.7 32.3-72 72-72s72 32.3 72 72v72z"]},faLockOpen:{prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M423.5 0C339.5.3 272 69.5 272 153.5V224H48c-26.5 0-48 21.5-48 48v192c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V272c0-26.5-21.5-48-48-48h-48v-71.1c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v80c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-80C576 68 507.5-.3 423.5 0z"]},faLongArrowAltDown:{prefix:"fas",iconName:"long-arrow-alt-down",icon:[256,512,[],"f309","M168 345.941V44c0-6.627-5.373-12-12-12h-56c-6.627 0-12 5.373-12 12v301.941H41.941c-21.382 0-32.09 25.851-16.971 40.971l86.059 86.059c9.373 9.373 24.569 9.373 33.941 0l86.059-86.059c15.119-15.119 4.411-40.971-16.971-40.971H168z"]},faLongArrowAltLeft:{prefix:"fas",iconName:"long-arrow-alt-left",icon:[448,512,[],"f30a","M134.059 296H436c6.627 0 12-5.373 12-12v-56c0-6.627-5.373-12-12-12H134.059v-46.059c0-21.382-25.851-32.09-40.971-16.971L7.029 239.029c-9.373 9.373-9.373 24.569 0 33.941l86.059 86.059c15.119 15.119 40.971 4.411 40.971-16.971V296z"]},faLongArrowAltRight:{prefix:"fas",iconName:"long-arrow-alt-right",icon:[448,512,[],"f30b","M313.941 216H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h301.941v46.059c0 21.382 25.851 32.09 40.971 16.971l86.059-86.059c9.373-9.373 9.373-24.569 0-33.941l-86.059-86.059c-15.119-15.119-40.971-4.411-40.971 16.971V216z"]},faLongArrowAltUp:{prefix:"fas",iconName:"long-arrow-alt-up",icon:[256,512,[],"f30c","M88 166.059V468c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12V166.059h46.059c21.382 0 32.09-25.851 16.971-40.971l-86.059-86.059c-9.373-9.373-24.569-9.373-33.941 0l-86.059 86.059c-15.119 15.119-4.411 40.971 16.971 40.971H88z"]},faLowVision:{prefix:"fas",iconName:"low-vision",icon:[576,512,[],"f2a8","M569.344 231.631C512.96 135.949 407.81 72 288 72c-28.468 0-56.102 3.619-82.451 10.409L152.778 10.24c-7.601-10.858-22.564-13.5-33.423-5.9l-13.114 9.178c-10.86 7.601-13.502 22.566-5.9 33.426l43.131 58.395C89.449 131.73 40.228 174.683 6.682 231.581c-.01.017-.023.033-.034.05-8.765 14.875-8.964 33.528 0 48.739 38.5 65.332 99.742 115.862 172.859 141.349L55.316 244.302A272.194 272.194 0 0 1 83.61 208.39l119.4 170.58h.01l40.63 58.04a330.055 330.055 0 0 0 78.94 1.17l-189.98-271.4a277.628 277.628 0 0 1 38.777-21.563l251.836 356.544c7.601 10.858 22.564 13.499 33.423 5.9l13.114-9.178c10.86-7.601 13.502-22.567 5.9-33.426l-43.12-58.377-.007-.009c57.161-27.978 104.835-72.04 136.81-126.301a47.938 47.938 0 0 0 .001-48.739zM390.026 345.94l-19.066-27.23c24.682-32.567 27.711-76.353 8.8-111.68v.03c0 23.65-19.17 42.82-42.82 42.82-23.828 0-42.82-19.349-42.82-42.82 0-23.65 19.17-42.82 42.82-42.82h.03c-24.75-13.249-53.522-15.643-79.51-7.68l-19.068-27.237C253.758 123.306 270.488 120 288 120c75.162 0 136 60.826 136 136 0 34.504-12.833 65.975-33.974 89.94z"]},faLuggageCart:{prefix:"fas",iconName:"luggage-cart",icon:[640,512,[],"f59d","M224 320h32V96h-32c-17.67 0-32 14.33-32 32v160c0 17.67 14.33 32 32 32zm352-32V128c0-17.67-14.33-32-32-32h-32v224h32c17.67 0 32-14.33 32-32zm48 96H128V16c0-8.84-7.16-16-16-16H16C7.16 0 0 7.16 0 16v32c0 8.84 7.16 16 16 16h48v368c0 8.84 7.16 16 16 16h82.94c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16h197.88c-1.79 5.03-2.94 10.36-2.94 16 0 26.51 21.49 48 48 48s48-21.49 48-48c0-5.64-1.15-10.97-2.94-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM480 96V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v272h192V96zm-48 0h-96V48h96v48z"]},faLungs:{prefix:"fas",iconName:"lungs",icon:[640,512,[],"f604","M636.11 390.15C614.44 308.85 580.07 231 534.1 159.13 511.98 124.56 498.03 96 454.05 96 415.36 96 384 125.42 384 161.71v60.11l-32.88-21.92a15.996 15.996 0 0 1-7.12-13.31V16c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v170.59c0 5.35-2.67 10.34-7.12 13.31L256 221.82v-60.11C256 125.42 224.64 96 185.95 96c-43.98 0-57.93 28.56-80.05 63.13C59.93 231 25.56 308.85 3.89 390.15 1.3 399.84 0 409.79 0 419.78c0 61.23 62.48 105.44 125.24 88.62l59.5-15.95c42.18-11.3 71.26-47.47 71.26-88.62v-87.49l-85.84 57.23a7.992 7.992 0 0 1-11.09-2.22l-8.88-13.31a7.992 7.992 0 0 1 2.22-11.09L320 235.23l167.59 111.72a7.994 7.994 0 0 1 2.22 11.09l-8.88 13.31a7.994 7.994 0 0 1-11.09 2.22L384 316.34v87.49c0 41.15 29.08 77.31 71.26 88.62l59.5 15.95C577.52 525.22 640 481.01 640 419.78c0-9.99-1.3-19.94-3.89-29.63z"]},faLungsVirus:{prefix:"fas",iconName:"lungs-virus",icon:[640,512,[],"e067","M344,150.68V16A16,16,0,0,0,328,0H312a16,16,0,0,0-16,16V150.68a46.45,46.45,0,0,1,48,0ZM195.54,444.46a48.06,48.06,0,0,1,0-67.88l8.58-8.58H192a48,48,0,0,1,0-96h12.12l-8.58-8.57a48,48,0,0,1,60.46-74V161.75C256,125.38,224.62,96,186,96c-44,0-58,28.5-80.12,63.13a819.52,819.52,0,0,0-102,231A113.16,113.16,0,0,0,0,419.75C0,481,62.5,525.26,125.25,508.38l59.5-15.87a98.51,98.51,0,0,0,52.5-34.75,46.49,46.49,0,0,1-41.71-13.3Zm226.29-22.63a16,16,0,0,0,0-22.62l-8.58-8.58C393.09,370.47,407.37,336,435.88,336H448a16,16,0,0,0,0-32H435.88c-28.51,0-42.79-34.47-22.63-54.62l8.58-8.58a16,16,0,0,0-22.63-22.63l-8.57,8.58C370.47,246.91,336,232.63,336,204.12V192a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.58c20.16,20.15,5.88,54.62-22.63,54.62H192a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.58a16,16,0,1,0,22.63,22.62l8.57-8.57C269.53,393.1,304,407.38,304,435.88V448a16,16,0,0,0,32,0V435.88c0-28.5,34.47-42.78,54.63-22.62l8.57,8.57a16,16,0,0,0,22.63,0ZM288,304a16,16,0,1,1,16-16A16,16,0,0,1,288,304Zm64,64a16,16,0,1,1,16-16A16,16,0,0,1,352,368Zm284.12,22.13a819.52,819.52,0,0,0-102-231C512,124.5,498,96,454,96c-38.62,0-70,29.38-70,65.75v27.72a48,48,0,0,1,60.46,74L435.88,272H448a48,48,0,0,1,0,96H435.88l8.58,8.58a47.7,47.7,0,0,1-41.71,81.18,98.51,98.51,0,0,0,52.5,34.75l59.5,15.87C577.5,525.26,640,481,640,419.75A113.16,113.16,0,0,0,636.12,390.13Z"]},faMagic:f,faMagnet:{prefix:"fas",iconName:"magnet",icon:[512,512,[],"f076","M164.07 148.1H12a12 12 0 0 1-12-12v-80a36 36 0 0 1 36-36h104a36 36 0 0 1 36 36v80a11.89 11.89 0 0 1-11.93 12zm347.93-12V56a36 36 0 0 0-36-36H372a36 36 0 0 0-36 36v80a12 12 0 0 0 12 12h152a11.89 11.89 0 0 0 12-11.9zm-164 44a12 12 0 0 0-12 12v52c0 128.1-160 127.9-160 0v-52a12 12 0 0 0-12-12H12.1a12 12 0 0 0-12 12.1c.1 21.4.6 40.3 0 53.3 0 150.6 136.17 246.6 256.75 246.6s255-96 255-246.7c-.6-12.8-.2-33 0-53.2a12 12 0 0 0-12-12.1z"]},faMailBulk:{prefix:"fas",iconName:"mail-bulk",icon:[576,512,[],"f674","M160 448c-25.6 0-51.2-22.4-64-32-64-44.8-83.2-60.8-96-70.4V480c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V345.6c-12.8 9.6-32 25.6-96 70.4-12.8 9.6-38.4 32-64 32zm128-192H32c-17.67 0-32 14.33-32 32v16c25.6 19.2 22.4 19.2 115.2 86.4 9.6 6.4 28.8 25.6 44.8 25.6s35.2-19.2 44.8-22.4c92.8-67.2 89.6-67.2 115.2-86.4V288c0-17.67-14.33-32-32-32zm256-96H224c-17.67 0-32 14.33-32 32v32h96c33.21 0 60.59 25.42 63.71 57.82l.29-.22V416h192c17.67 0 32-14.33 32-32V192c0-17.67-14.33-32-32-32zm-32 128h-64v-64h64v64zm-352-96c0-35.29 28.71-64 64-64h224V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v192h96v-32z"]},faMale:{prefix:"fas",iconName:"male",icon:[192,512,[],"f183","M96 0c35.346 0 64 28.654 64 64s-28.654 64-64 64-64-28.654-64-64S60.654 0 96 0m48 144h-11.36c-22.711 10.443-49.59 10.894-73.28 0H48c-26.51 0-48 21.49-48 48v136c0 13.255 10.745 24 24 24h16v136c0 13.255 10.745 24 24 24h64c13.255 0 24-10.745 24-24V352h16c13.255 0 24-10.745 24-24V192c0-26.51-21.49-48-48-48z"]},faMap:{prefix:"fas",iconName:"map",icon:[576,512,[],"f279","M0 117.66v346.32c0 11.32 11.43 19.06 21.94 14.86L160 416V32L20.12 87.95A32.006 32.006 0 0 0 0 117.66zM192 416l192 64V96L192 32v384zM554.06 33.16L416 96v384l139.88-55.95A31.996 31.996 0 0 0 576 394.34V48.02c0-11.32-11.43-19.06-21.94-14.86z"]},faMapMarked:{prefix:"fas",iconName:"map-marked",icon:[576,512,[],"f59f","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]},faMapMarkedAlt:{prefix:"fas",iconName:"map-marked-alt",icon:[576,512,[],"f5a0","M288 0c-69.59 0-126 56.41-126 126 0 56.26 82.35 158.8 113.9 196.02 6.39 7.54 17.82 7.54 24.2 0C331.65 284.8 414 182.26 414 126 414 56.41 357.59 0 288 0zm0 168c-23.2 0-42-18.8-42-42s18.8-42 42-42 42 18.8 42 42-18.8 42-42 42zM20.12 215.95A32.006 32.006 0 0 0 0 245.66v250.32c0 11.32 11.43 19.06 21.94 14.86L160 448V214.92c-8.84-15.98-16.07-31.54-21.25-46.42L20.12 215.95zM288 359.67c-14.07 0-27.38-6.18-36.51-16.96-19.66-23.2-40.57-49.62-59.49-76.72v182l192 64V266c-18.92 27.09-39.82 53.52-59.49 76.72-9.13 10.77-22.44 16.95-36.51 16.95zm266.06-198.51L416 224v288l139.88-55.95A31.996 31.996 0 0 0 576 426.34V176.02c0-11.32-11.43-19.06-21.94-14.86z"]},faMapMarker:{prefix:"fas",iconName:"map-marker",icon:[384,512,[],"f041","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0z"]},faMapMarkerAlt:{prefix:"fas",iconName:"map-marker-alt",icon:[384,512,[],"f3c5","M172.268 501.67C26.97 291.031 0 269.413 0 192 0 85.961 85.961 0 192 0s192 85.961 192 192c0 77.413-26.97 99.031-172.268 309.67-9.535 13.774-29.93 13.773-39.464 0zM192 272c44.183 0 80-35.817 80-80s-35.817-80-80-80-80 35.817-80 80 35.817 80 80 80z"]},faMapPin:{prefix:"fas",iconName:"map-pin",icon:[288,512,[],"f276","M112 316.94v156.69l22.02 33.02c4.75 7.12 15.22 7.12 19.97 0L176 473.63V316.94c-10.39 1.92-21.06 3.06-32 3.06s-21.61-1.14-32-3.06zM144 0C64.47 0 0 64.47 0 144s64.47 144 144 144 144-64.47 144-144S223.53 0 144 0zm0 76c-37.5 0-68 30.5-68 68 0 6.62-5.38 12-12 12s-12-5.38-12-12c0-50.73 41.28-92 92-92 6.62 0 12 5.38 12 12s-5.38 12-12 12z"]},faMapSigns:{prefix:"fas",iconName:"map-signs",icon:[512,512,[],"f277","M507.31 84.69L464 41.37c-6-6-14.14-9.37-22.63-9.37H288V16c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v16H56c-13.25 0-24 10.75-24 24v80c0 13.25 10.75 24 24 24h385.37c8.49 0 16.62-3.37 22.63-9.37l43.31-43.31c6.25-6.26 6.25-16.38 0-22.63zM224 496c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V384h-64v112zm232-272H288v-32h-64v32H70.63c-8.49 0-16.62 3.37-22.63 9.37L4.69 276.69c-6.25 6.25-6.25 16.38 0 22.63L48 342.63c6 6 14.14 9.37 22.63 9.37H456c13.25 0 24-10.75 24-24v-80c0-13.25-10.75-24-24-24z"]},faMarker:{prefix:"fas",iconName:"marker",icon:[512,512,[],"f5a1","M93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l75.4-75.4-128.02-128.02-75.4 75.4zM485.49 26.51c-35.35-35.35-92.67-35.35-128.02 0l-21.76 21.76-36.56-36.55c-15.62-15.62-40.95-15.62-56.56 0L138.47 115.84c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0l87.15-87.15 19.59 19.59L191.98 192 320 320.02l165.49-165.49c35.35-35.35 35.35-92.66 0-128.02z"]},faMars:{prefix:"fas",iconName:"mars",icon:[384,512,[],"f222","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c0-6.6-5.4-12-12-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faMarsDouble:{prefix:"fas",iconName:"mars-double",icon:[512,512,[],"f227","M340 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C198.5 72.1 172.2 64 144 64 64.5 64 0 128.5 0 208s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.5 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 288c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80zm356-128.1h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7c-18.2-11.4-39-18.9-61.5-21.3-2.1 21.8-8.2 43.3-18.4 63.3 1.1 0 2.2-.1 3.2-.1 44.1 0 80 35.9 80 80s-35.9 80-80 80-80-35.9-80-80c0-1.1 0-2.2.1-3.2-20 10.2-41.5 16.4-63.3 18.4C168.4 455.6 229.6 512 304 512c79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12v-79c0-6.7-5.4-12.1-12-12.1z"]},faMarsStroke:{prefix:"fas",iconName:"mars-stroke",icon:[384,512,[],"f229","M372 64h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-17.5 17.5-14.1-14.1c-4.7-4.7-12.3-4.7-17 0L224.5 133c-4.7 4.7-4.7 12.3 0 17l14.1 14.1-18 18c-22.2-14-48.5-22.1-76.7-22.1C64.5 160 0 224.5 0 304s64.5 144 144 144 144-64.5 144-144c0-28.2-8.1-54.5-22.1-76.7l18-18 14.1 14.1c4.7 4.7 12.3 4.7 17 0l28.3-28.3c4.7-4.7 4.7-12.3 0-17L329.2 164l17.5-17.5 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V76c-.1-6.6-5.5-12-12.1-12zM144 384c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faMarsStrokeH:{prefix:"fas",iconName:"mars-stroke-h",icon:[480,512,[],"f22b","M476.2 247.5l-55.9-55.9c-7.6-7.6-20.5-2.2-20.5 8.5V224H376v-20c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12v20h-27.6c-5.8-25.6-18.7-49.9-38.6-69.8C189.6 98 98.4 98 42.2 154.2c-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 19.9-19.9 32.8-44.2 38.6-69.8H312v20c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-20h23.9v23.9c0 10.7 12.9 16 20.5 8.5l55.9-55.9c4.6-4.7 4.6-12.3-.1-17zm-275.6 65.1c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]},faMarsStrokeV:{prefix:"fas",iconName:"mars-stroke-v",icon:[288,512,[],"f22a","M245.8 234.2c-19.9-19.9-44.2-32.8-69.8-38.6v-25.4h20c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-20V81.4h23.9c10.7 0 16-12.9 8.5-20.5L152.5 5.1c-4.7-4.7-12.3-4.7-17 0L79.6 61c-7.6 7.6-2.2 20.5 8.5 20.5H112v24.7H92c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h20v25.4c-25.6 5.8-49.9 18.7-69.8 38.6-56.2 56.2-56.2 147.4 0 203.6 56.2 56.2 147.4 56.2 203.6 0 56.3-56.2 56.3-147.4 0-203.6zm-45.2 158.4c-31.2 31.2-81.9 31.2-113.1 0-31.2-31.2-31.2-81.9 0-113.1 31.2-31.2 81.9-31.2 113.1 0 31.2 31.1 31.2 81.9 0 113.1z"]},faMask:{prefix:"fas",iconName:"mask",icon:[640,512,[],"f6fa","M320.67 64c-442.6 0-357.57 384-158.46 384 39.9 0 77.47-20.69 101.42-55.86l25.73-37.79c15.66-22.99 46.97-22.99 62.63 0l25.73 37.79C401.66 427.31 439.23 448 479.13 448c189.86 0 290.63-384-158.46-384zM184 308.36c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05zm272 0c-41.06 0-67.76-25.66-80.08-41.05-5.23-6.53-5.23-16.09 0-22.63 12.32-15.4 39.01-41.05 80.08-41.05s67.76 25.66 80.08 41.05c5.23 6.53 5.23 16.09 0 22.63-12.32 15.4-39.02 41.05-80.08 41.05z"]},faMedal:{prefix:"fas",iconName:"medal",icon:[512,512,[],"f5a2","M223.75 130.75L154.62 15.54A31.997 31.997 0 0 0 127.18 0H16.03C3.08 0-4.5 14.57 2.92 25.18l111.27 158.96c29.72-27.77 67.52-46.83 109.56-53.39zM495.97 0H384.82c-11.24 0-21.66 5.9-27.44 15.54l-69.13 115.21c42.04 6.56 79.84 25.62 109.56 53.38L509.08 25.18C516.5 14.57 508.92 0 495.97 0zM256 160c-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176-78.8-176-176-176zm92.52 157.26l-37.93 36.96 8.97 52.22c1.6 9.36-8.26 16.51-16.65 12.09L256 393.88l-46.9 24.65c-8.4 4.45-18.25-2.74-16.65-12.09l8.97-52.22-37.93-36.96c-6.82-6.64-3.05-18.23 6.35-19.59l52.43-7.64 23.43-47.52c2.11-4.28 6.19-6.39 10.28-6.39 4.11 0 8.22 2.14 10.33 6.39l23.43 47.52 52.43 7.64c9.4 1.36 13.17 12.95 6.35 19.59z"]},faMedkit:{prefix:"fas",iconName:"medkit",icon:[512,512,[],"f0fa","M96 480h320V128h-32V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v48H96v352zm96-384h128v32H192V96zm320 80v256c0 26.51-21.49 48-48 48h-16V128h16c26.51 0 48 21.49 48 48zM64 480H48c-26.51 0-48-21.49-48-48V176c0-26.51 21.49-48 48-48h16v352zm288-208v32c0 8.837-7.163 16-16 16h-48v48c0 8.837-7.163 16-16 16h-32c-8.837 0-16-7.163-16-16v-48h-48c-8.837 0-16-7.163-16-16v-32c0-8.837 7.163-16 16-16h48v-48c0-8.837 7.163-16 16-16h32c8.837 0 16 7.163 16 16v48h48c8.837 0 16 7.163 16 16z"]},faMeh:{prefix:"fas",iconName:"meh",icon:[496,512,[],"f11a","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm176 192H152c-21.2 0-21.2-32 0-32h192c21.2 0 21.2 32 0 32zm-16-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faMehBlank:{prefix:"fas",iconName:"meh-blank",icon:[496,512,[],"f5a4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm-80 232c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faMehRollingEyes:{prefix:"fas",iconName:"meh-rolling-eyes",icon:[496,512,[],"f5a5","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM88 224c0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64s-64-28.7-64-64zm224 176H184c-21.2 0-21.2-32 0-32h128c21.2 0 21.2 32 0 32zm32-112c-35.3 0-64-28.7-64-64 0-24.3 13.7-45.2 33.6-56-.7 2.6-1.6 5.2-1.6 8 0 17.7 14.3 32 32 32s32-14.3 32-32c0-2.8-.9-5.4-1.6-8 19.9 10.8 33.6 31.7 33.6 56 0 35.3-28.7 64-64 64z"]},faMemory:{prefix:"fas",iconName:"memory",icon:[640,512,[],"f538","M640 130.94V96c0-17.67-14.33-32-32-32H32C14.33 64 0 78.33 0 96v34.94c18.6 6.61 32 24.19 32 45.06s-13.4 38.45-32 45.06V320h640v-98.94c-18.6-6.61-32-24.19-32-45.06s13.4-38.45 32-45.06zM224 256h-64V128h64v128zm128 0h-64V128h64v128zm128 0h-64V128h64v128zM0 448h64v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h128v-26.67c0-8.84 7.16-16 16-16s16 7.16 16 16V448h64v-96H0v96z"]},faMenorah:{prefix:"fas",iconName:"menorah",icon:[640,512,[],"f676","M144 128h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm192 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm96 0h-32c-8.84 0-16 7.16-16 16v144h64V144c0-8.84-7.16-16-16-16zm80-32c17.67 0 32-14.33 32-32S608 0 608 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S512 0 512 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S416 0 416 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S320 0 320 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S224 0 224 0s-32 46.33-32 64 14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S128 0 128 0 96 46.33 96 64s14.33 32 32 32zm-96 0c17.67 0 32-14.33 32-32S32 0 32 0 0 46.33 0 64s14.33 32 32 32zm544 192c0 17.67-14.33 32-32 32H352V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v176H96c-17.67 0-32-14.33-32-32V144c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v144c0 53.02 42.98 96 96 96h192v64H112c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16H352v-64h192c53.02 0 96-42.98 96-96V144c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144z"]},faMercury:{prefix:"fas",iconName:"mercury",icon:[288,512,[],"f223","M288 208c0-44.2-19.9-83.7-51.2-110.1 2.5-1.8 4.9-3.8 7.2-5.8 24.7-21.2 39.8-48.8 43.2-78.8.9-7.1-4.7-13.3-11.9-13.3h-40.5C229 0 224.1 4.1 223 9.8c-2.4 12.5-9.6 24.3-20.7 33.8C187 56.8 166.3 64 144 64s-43-7.2-58.4-20.4C74.5 34.1 67.4 22.3 64.9 9.8 63.8 4.1 58.9 0 53.2 0H12.7C5.5 0-.1 6.2.8 13.3 4.2 43.4 19.2 71 44 92.2c2.3 2 4.7 3.9 7.2 5.8C19.9 124.3 0 163.8 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]},faMeteor:{prefix:"fas",iconName:"meteor",icon:[512,512,[],"f753","M511.328,20.8027c-11.60759,38.70264-34.30724,111.70173-61.30311,187.70077,6.99893,2.09372,13.4042,4,18.60653,5.59368a16.06158,16.06158,0,0,1,9.49854,22.906c-22.106,42.29635-82.69047,152.795-142.47819,214.40356-.99984,1.09373-1.99969,2.5-2.99954,3.49995A194.83046,194.83046,0,1,1,57.085,179.41009c.99985-1,2.40588-2,3.49947-3,61.59994-59.90549,171.97367-120.40473,214.37343-142.4982a16.058,16.058,0,0,1,22.90274,9.49988c1.59351,5.09368,3.49947,11.5936,5.5929,18.59351C379.34818,35.00565,452.43074,12.30281,491.12794.70921A16.18325,16.18325,0,0,1,511.328,20.8027ZM319.951,320.00207A127.98041,127.98041,0,1,0,191.97061,448.00046,127.97573,127.97573,0,0,0,319.951,320.00207Zm-127.98041-31.9996a31.9951,31.9951,0,1,1-31.9951-31.9996A31.959,31.959,0,0,1,191.97061,288.00247Zm31.9951,79.999a15.99755,15.99755,0,1,1-15.99755-15.9998A16.04975,16.04975,0,0,1,223.96571,368.00147Z"]},faMicrochip:{prefix:"fas",iconName:"microchip",icon:[512,512,[],"f2db","M416 48v416c0 26.51-21.49 48-48 48H144c-26.51 0-48-21.49-48-48V48c0-26.51 21.49-48 48-48h224c26.51 0 48 21.49 48 48zm96 58v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42V88h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zm0 96v12a6 6 0 0 1-6 6h-18v6a6 6 0 0 1-6 6h-42v-48h42a6 6 0 0 1 6 6v6h18a6 6 0 0 1 6 6zM30 376h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6zm0-96h42v48H30a6 6 0 0 1-6-6v-6H6a6 6 0 0 1-6-6v-12a6 6 0 0 1 6-6h18v-6a6 6 0 0 1 6-6z"]},faMicrophone:{prefix:"fas",iconName:"microphone",icon:[352,512,[],"f130","M176 352c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96zm160-160h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16z"]},faMicrophoneAlt:{prefix:"fas",iconName:"microphone-alt",icon:[352,512,[],"f3c9","M336 192h-16c-8.84 0-16 7.16-16 16v48c0 74.8-64.49 134.82-140.79 127.38C96.71 376.89 48 317.11 48 250.3V208c0-8.84-7.16-16-16-16H16c-8.84 0-16 7.16-16 16v40.16c0 89.64 63.97 169.55 152 181.69V464H96c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16h-56v-33.77C285.71 418.47 352 344.9 352 256v-48c0-8.84-7.16-16-16-16zM176 352c53.02 0 96-42.98 96-96h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H272c0-53.02-42.98-96-96-96S80 42.98 80 96v160c0 53.02 42.98 96 96 96z"]},faMicrophoneAltSlash:{prefix:"fas",iconName:"microphone-alt-slash",icon:[640,512,[],"f539","M633.82 458.1L476.26 336.33C488.74 312.21 496 284.98 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67h-43.67l-41.4-32H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416v-32h-85.33c-5.89 0-10.67-3.58-10.67-8v-16c0-4.42 4.78-8 10.67-8H416c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.78c11.71-1.62 23.1-4.28 33.96-8.08l-50.4-38.96c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]},faMicrophoneSlash:{prefix:"fas",iconName:"microphone-slash",icon:[640,512,[],"f131","M633.82 458.1l-157.8-121.96C488.61 312.13 496 285.01 496 256v-48c0-8.84-7.16-16-16-16h-16c-8.84 0-16 7.16-16 16v48c0 17.92-3.96 34.8-10.72 50.2l-26.55-20.52c3.1-9.4 5.28-19.22 5.28-29.67V96c0-53.02-42.98-96-96-96s-96 42.98-96 96v45.36L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM400 464h-56v-33.77c11.66-1.6 22.85-4.54 33.67-8.31l-50.11-38.73c-6.71.4-13.41.87-20.35.2-55.85-5.45-98.74-48.63-111.18-101.85L144 241.31v6.85c0 89.64 63.97 169.55 152 181.69V464h-56c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h160c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16z"]},faMicroscope:{prefix:"fas",iconName:"microscope",icon:[512,512,[],"f610","M160 320h12v16c0 8.84 7.16 16 16 16h40c8.84 0 16-7.16 16-16v-16h12c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32V16c0-8.84-7.16-16-16-16h-64c-8.84 0-16 7.16-16 16v16c-17.67 0-32 14.33-32 32v224c0 17.67 14.33 32 32 32zm304 128h-1.29C493.24 413.99 512 369.2 512 320c0-105.88-86.12-192-192-192v64c70.58 0 128 57.42 128 128s-57.42 128-128 128H48c-26.51 0-48 21.49-48 48 0 8.84 7.16 16 16 16h480c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48zm-360-32h208c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8H104c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8z"]},faMinus:{prefix:"fas",iconName:"minus",icon:[448,512,[],"f068","M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faMinusCircle:{prefix:"fas",iconName:"minus-circle",icon:[512,512,[],"f056","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zM124 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H124z"]},faMinusSquare:{prefix:"fas",iconName:"minus-square",icon:[448,512,[],"f146","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM92 296c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h264c6.6 0 12 5.4 12 12v56c0 6.6-5.4 12-12 12H92z"]},faMitten:{prefix:"fas",iconName:"mitten",icon:[448,512,[],"f7b5","M368 416H48c-8.8 0-16 7.2-16 16v64c0 8.8 7.2 16 16 16h320c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16zm57-209.1c-27.2-22.6-67.5-19-90.1 8.2l-20.9 25-29.6-128.4c-18-77.5-95.4-125.9-172.8-108C34.2 21.6-14.2 98.9 3.7 176.4L51.6 384h309l72.5-87c22.7-27.2 19-67.5-8.1-90.1z"]},faMobile:{prefix:"fas",iconName:"mobile",icon:[320,512,[],"f10b","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faMobileAlt:{prefix:"fas",iconName:"mobile-alt",icon:[320,512,[],"f3cd","M272 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h224c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM160 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm112-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h200c6.6 0 12 5.4 12 12v312z"]},faMoneyBill:{prefix:"fas",iconName:"money-bill",icon:[640,512,[],"f0d6","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 176c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 48h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},faMoneyBillAlt:{prefix:"fas",iconName:"money-bill-alt",icon:[640,512,[],"f3d1","M352 288h-16v-88c0-4.42-3.58-8-8-8h-13.58c-4.74 0-9.37 1.4-13.31 4.03l-15.33 10.22a7.994 7.994 0 0 0-2.22 11.09l8.88 13.31a7.994 7.994 0 0 0 11.09 2.22l.47-.31V288h-16c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h64c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zM608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM48 400v-64c35.35 0 64 28.65 64 64H48zm0-224v-64h64c0 35.35-28.65 64-64 64zm272 192c-53.02 0-96-50.15-96-112 0-61.86 42.98-112 96-112s96 50.14 96 112c0 61.87-43 112-96 112zm272 32h-64c0-35.35 28.65-64 64-64v64zm0-224c-35.35 0-64-28.65-64-64h64v64z"]},faMoneyBillWave:{prefix:"fas",iconName:"money-bill-wave",icon:[640,512,[],"f53a","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM48 132.22c20.12 5.04 41.12 7.57 62.72 8.93C104.84 170.54 79 192.69 48 192.69v-60.47zm0 285v-47.78c34.37 0 62.18 27.27 63.71 61.4-22.53-1.81-43.59-6.31-63.71-13.62zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96zm272 27.78c-17.52-4.39-35.71-6.85-54.32-8.44 5.87-26.08 27.5-45.88 54.32-49.28v57.72zm0-236.11c-30.89-3.91-54.86-29.7-55.81-61.55 19.54 2.17 38.09 6.23 55.81 12.66v48.89z"]},faMoneyBillWaveAlt:{prefix:"fas",iconName:"money-bill-wave-alt",icon:[640,512,[],"f53b","M621.16 54.46C582.37 38.19 543.55 32 504.75 32c-123.17-.01-246.33 62.34-369.5 62.34-30.89 0-61.76-3.92-92.65-13.72-3.47-1.1-6.95-1.62-10.35-1.62C15.04 79 0 92.32 0 110.81v317.26c0 12.63 7.23 24.6 18.84 29.46C57.63 473.81 96.45 480 135.25 480c123.17 0 246.34-62.35 369.51-62.35 30.89 0 61.76 3.92 92.65 13.72 3.47 1.1 6.95 1.62 10.35 1.62 17.21 0 32.25-13.32 32.25-31.81V83.93c-.01-12.64-7.24-24.6-18.85-29.47zM320 352c-44.19 0-80-42.99-80-96 0-53.02 35.82-96 80-96s80 42.98 80 96c0 53.03-35.83 96-80 96z"]},faMoneyCheck:{prefix:"fas",iconName:"money-check",icon:[640,512,[],"f53c","M0 448c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V128H0v320zm448-208c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-96c-8.84 0-16-7.16-16-16v-32zm0 120c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H456c-4.42 0-8-3.58-8-8v-16zM64 264c0-4.42 3.58-8 8-8h304c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zm0 96c0-4.42 3.58-8 8-8h176c4.42 0 8 3.58 8 8v16c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16zM624 32H16C7.16 32 0 39.16 0 48v48h640V48c0-8.84-7.16-16-16-16z"]},faMoneyCheckAlt:{prefix:"fas",iconName:"money-check-alt",icon:[640,512,[],"f53d","M608 32H32C14.33 32 0 46.33 0 64v384c0 17.67 14.33 32 32 32h576c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zM176 327.88V344c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-16.29c-11.29-.58-22.27-4.52-31.37-11.35-3.9-2.93-4.1-8.77-.57-12.14l11.75-11.21c2.77-2.64 6.89-2.76 10.13-.73 3.87 2.42 8.26 3.72 12.82 3.72h28.11c6.5 0 11.8-5.92 11.8-13.19 0-5.95-3.61-11.19-8.77-12.73l-45-13.5c-18.59-5.58-31.58-23.42-31.58-43.39 0-24.52 19.05-44.44 42.67-45.07V152c0-4.42 3.58-8 8-8h16c4.42 0 8 3.58 8 8v16.29c11.29.58 22.27 4.51 31.37 11.35 3.9 2.93 4.1 8.77.57 12.14l-11.75 11.21c-2.77 2.64-6.89 2.76-10.13.73-3.87-2.43-8.26-3.72-12.82-3.72h-28.11c-6.5 0-11.8 5.92-11.8 13.19 0 5.95 3.61 11.19 8.77 12.73l45 13.5c18.59 5.58 31.58 23.42 31.58 43.39 0 24.53-19.05 44.44-42.67 45.07zM416 312c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h112c4.42 0 8 3.58 8 8v16zm160 0c0 4.42-3.58 8-8 8h-80c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h80c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H296c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h272c4.42 0 8 3.58 8 8v16z"]},faMonument:{prefix:"fas",iconName:"monument",icon:[384,512,[],"f5a6","M368 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h352c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-78.86-347.26a31.97 31.97 0 0 0-9.21-19.44L203.31 4.69c-6.25-6.25-16.38-6.25-22.63 0l-76.6 76.61a31.97 31.97 0 0 0-9.21 19.44L64 416h256l-30.86-315.26zM240 307.2c0 6.4-6.4 12.8-12.8 12.8h-70.4c-6.4 0-12.8-6.4-12.8-12.8v-38.4c0-6.4 6.4-12.8 12.8-12.8h70.4c6.4 0 12.8 6.4 12.8 12.8v38.4z"]},faMoon:{prefix:"fas",iconName:"moon",icon:[512,512,[],"f186","M283.211 512c78.962 0 151.079-35.925 198.857-94.792 7.068-8.708-.639-21.43-11.562-19.35-124.203 23.654-238.262-71.576-238.262-196.954 0-72.222 38.662-138.635 101.498-174.394 9.686-5.512 7.25-20.197-3.756-22.23A258.156 258.156 0 0 0 283.211 0c-141.309 0-256 114.511-256 256 0 141.309 114.511 256 256 256z"]},faMortarPestle:{prefix:"fas",iconName:"mortar-pestle",icon:[512,512,[],"f5a7","M501.54 60.91c17.22-17.22 12.51-46.25-9.27-57.14a35.696 35.696 0 0 0-37.37 3.37L251.09 160h151.37l99.08-99.09zM496 192H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c0 80.98 50.2 150.11 121.13 178.32-12.76 16.87-21.72 36.8-24.95 58.69-1.46 9.92 6.04 18.98 16.07 18.98h223.5c10.03 0 17.53-9.06 16.07-18.98-3.22-21.89-12.18-41.82-24.95-58.69C429.8 406.11 480 336.98 480 256h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z"]},faMosque:{prefix:"fas",iconName:"mosque",icon:[640,512,[],"f678","M0 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V160H0v320zm579.16-192c17.86-17.39 28.84-37.34 28.84-58.91 0-52.86-41.79-93.79-87.92-122.9-41.94-26.47-80.63-57.77-111.96-96.22L400 0l-8.12 9.97c-31.33 38.45-70.01 69.76-111.96 96.22C233.79 135.3 192 176.23 192 229.09c0 21.57 10.98 41.52 28.84 58.91h358.32zM608 320H192c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h32v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h64v-72c0-48 48-72 48-72s48 24 48 72v72h64v-64c0-17.67 14.33-32 32-32s32 14.33 32 32v64h32c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM64 0S0 32 0 96v32h128V96c0-64-64-96-64-96z"]},faMotorcycle:{prefix:"fas",iconName:"motorcycle",icon:[640,512,[],"f21c","M512.9 192c-14.9-.1-29.1 2.3-42.4 6.9L437.6 144H520c13.3 0 24-10.7 24-24V88c0-13.3-10.7-24-24-24h-45.3c-6.8 0-13.3 2.9-17.8 7.9l-37.5 41.7-22.8-38C392.2 68.4 384.4 64 376 64h-80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h66.4l19.2 32H227.9c-17.7-23.1-44.9-40-99.9-40H72.5C59 104 47.7 115 48 128.5c.2 13 10.9 23.5 24 23.5h56c24.5 0 38.7 10.9 47.8 24.8l-11.3 20.5c-13-3.9-26.9-5.7-41.3-5.2C55.9 194.5 1.6 249.6 0 317c-1.6 72.1 56.3 131 128 131 59.6 0 109.7-40.8 124-96h84.2c13.7 0 24.6-11.4 24-25.1-2.1-47.1 17.5-93.7 56.2-125l12.5 20.8c-27.6 23.7-45.1 58.9-44.8 98.2.5 69.6 57.2 126.5 126.8 127.1 71.6.7 129.8-57.5 129.2-129.1-.7-69.6-57.6-126.4-127.2-126.9zM128 400c-44.1 0-80-35.9-80-80s35.9-80 80-80c4.2 0 8.4.3 12.5 1L99 316.4c-8.8 16 2.8 35.6 21 35.6h81.3c-12.4 28.2-40.6 48-73.3 48zm463.9-75.6c-2.2 40.6-35 73.4-75.5 75.5-46.1 2.5-84.4-34.3-84.4-79.9 0-21.4 8.4-40.8 22.1-55.1l49.4 82.4c4.5 7.6 14.4 10 22 5.5l13.7-8.2c7.6-4.5 10-14.4 5.5-22l-48.6-80.9c5.2-1.1 10.5-1.6 15.9-1.6 45.6-.1 82.3 38.2 79.9 84.3z"]},faMountain:p,faMouse:{prefix:"fas",iconName:"mouse",icon:[384,512,[],"f8cc","M0 352a160 160 0 0 0 160 160h64a160 160 0 0 0 160-160V224H0zM176 0h-16A160 160 0 0 0 0 160v32h176zm48 0h-16v192h176v-32A160 160 0 0 0 224 0z"]},faMousePointer:{prefix:"fas",iconName:"mouse-pointer",icon:[320,512,[],"f245","M302.189 329.126H196.105l55.831 135.993c3.889 9.428-.555 19.999-9.444 23.999l-49.165 21.427c-9.165 4-19.443-.571-23.332-9.714l-53.053-129.136-86.664 89.138C18.729 472.71 0 463.554 0 447.977V18.299C0 1.899 19.921-6.096 30.277 5.443l284.412 292.542c11.472 11.179 3.007 31.141-12.5 31.141z"]},faMugHot:{prefix:"fas",iconName:"mug-hot",icon:[512,512,[],"f7b6","M127.1 146.5c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C111.8 5.9 105 0 96.8 0H80.4C70.6 0 63 8.5 64.1 18c3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zm112 0c1.3 7.7 8 13.5 16 13.5h16.5c9.8 0 17.6-8.5 16.3-18-3.8-28.2-16.4-54.2-36.6-74.7-14.4-14.7-23.6-33.3-26.4-53.5C223.8 5.9 217 0 208.8 0h-16.4c-9.8 0-17.5 8.5-16.3 18 3.9 31.9 18 61.3 40.6 84.4 12 12.2 19.7 27.5 22.4 44.1zM400 192H32c-17.7 0-32 14.3-32 32v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.8 0 112-50.2 112-112s-50.2-112-112-112zm0 160h-16v-96h16c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},faMusic:{prefix:"fas",iconName:"music",icon:[512,512,[],"f001","M470.38 1.51L150.41 96A32 32 0 0 0 128 126.51v261.41A139 139 0 0 0 96 384c-53 0-96 28.66-96 64s43 64 96 64 96-28.66 96-64V214.32l256-75v184.61a138.4 138.4 0 0 0-32-3.93c-53 0-96 28.66-96 64s43 64 96 64 96-28.65 96-64V32a32 32 0 0 0-41.62-30.49z"]},faNetworkWired:{prefix:"fas",iconName:"network-wired",icon:[640,512,[],"f6ff","M640 264v-16c0-8.84-7.16-16-16-16H344v-40h72c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H224c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h72v40H16c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h104v40H64c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h304v40h-56c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h160c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32h-56v-40h104c8.84 0 16-7.16 16-16zM256 128V64h128v64H256zm-64 320H96v-64h96v64zm352 0h-96v-64h96v64z"]},faNeuter:{prefix:"fas",iconName:"neuter",icon:[288,512,[],"f22c","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V468c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12V316.4c64.1-14.5 112-71.9 112-140.4zm-144 80c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faNewspaper:{prefix:"fas",iconName:"newspaper",icon:[576,512,[],"f1ea","M552 64H88c-13.255 0-24 10.745-24 24v8H24c-13.255 0-24 10.745-24 24v272c0 30.928 25.072 56 56 56h472c26.51 0 48-21.49 48-48V88c0-13.255-10.745-24-24-24zM56 400a8 8 0 0 1-8-8V144h16v248a8 8 0 0 1-8 8zm236-16H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm-208-96H140c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm208 0H348c-6.627 0-12-5.373-12-12v-8c0-6.627 5.373-12 12-12h152c6.627 0 12 5.373 12 12v8c0 6.627-5.373 12-12 12zm0-96H140c-6.627 0-12-5.373-12-12v-40c0-6.627 5.373-12 12-12h360c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12z"]},faNotEqual:{prefix:"fas",iconName:"not-equal",icon:[448,512,[],"f53e","M416 208c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32h-23.88l51.87-66.81c5.37-7.02 4.04-17.06-2.97-22.43L415.61 3.3c-7.02-5.38-17.06-4.04-22.44 2.97L311.09 112H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h204.56l-74.53 96H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h55.49l-51.87 66.81c-5.37 7.01-4.04 17.05 2.97 22.43L64 508.7c7.02 5.38 17.06 4.04 22.43-2.97L168.52 400H416c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32H243.05l74.53-96H416z"]},faNotesMedical:{prefix:"fas",iconName:"notes-medical",icon:[384,512,[],"f481","M336 64h-80c0-35.3-28.7-64-64-64s-64 28.7-64 64H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V112c0-26.5-21.5-48-48-48zM192 40c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24zm96 304c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48zm0-192c0 4.4-3.6 8-8 8H104c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h176c4.4 0 8 3.6 8 8v16z"]},faObjectGroup:{prefix:"fas",iconName:"object-group",icon:[512,512,[],"f247","M480 128V96h20c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v20H64V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v40c0 6.627 5.373 12 12 12h20v320H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-20h384v20c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-20V128zM96 276V140c0-6.627 5.373-12 12-12h168c6.627 0 12 5.373 12 12v136c0 6.627-5.373 12-12 12H108c-6.627 0-12-5.373-12-12zm320 96c0 6.627-5.373 12-12 12H236c-6.627 0-12-5.373-12-12v-52h72c13.255 0 24-10.745 24-24v-72h84c6.627 0 12 5.373 12 12v136z"]},faObjectUngroup:{prefix:"fas",iconName:"object-ungroup",icon:[576,512,[],"f248","M64 320v26a6 6 0 0 1-6 6H6a6 6 0 0 1-6-6v-52a6 6 0 0 1 6-6h26V96H6a6 6 0 0 1-6-6V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v26h288V38a6 6 0 0 1 6-6h52a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-26v192h26a6 6 0 0 1 6 6v52a6 6 0 0 1-6 6h-52a6 6 0 0 1-6-6v-26H64zm480-64v-32h26a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-52a6 6 0 0 0-6 6v26H408v72h8c13.255 0 24 10.745 24 24v64c0 13.255-10.745 24-24 24h-64c-13.255 0-24-10.745-24-24v-8H192v72h-26a6 6 0 0 0-6 6v52a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-26h288v26a6 6 0 0 0 6 6h52a6 6 0 0 0 6-6v-52a6 6 0 0 0-6-6h-26V256z"]},faOilCan:{prefix:"fas",iconName:"oil-can",icon:[640,512,[],"f613","M629.8 160.31L416 224l-50.49-25.24a64.07 64.07 0 0 0-28.62-6.76H280v-48h56c8.84 0 16-7.16 16-16v-16c0-8.84-7.16-16-16-16H176c-8.84 0-16 7.16-16 16v16c0 8.84 7.16 16 16 16h56v48h-56L37.72 166.86a31.9 31.9 0 0 0-5.79-.53C14.67 166.33 0 180.36 0 198.34v94.95c0 15.46 11.06 28.72 26.28 31.48L96 337.46V384c0 17.67 14.33 32 32 32h274.63c8.55 0 16.75-3.42 22.76-9.51l212.26-214.75c1.5-1.5 2.34-3.54 2.34-5.66V168c.01-5.31-5.08-9.15-10.19-7.69zM96 288.67l-48-8.73v-62.43l48 8.73v62.43zm453.33 84.66c0 23.56 19.1 42.67 42.67 42.67s42.67-19.1 42.67-42.67S592 288 592 288s-42.67 61.77-42.67 85.33z"]},faOm:{prefix:"fas",iconName:"om",icon:[512,512,[],"f679","M360.6 60.94a10.43 10.43 0 0 0 14.76 0l21.57-21.56a10.43 10.43 0 0 0 0-14.76L375.35 3.06c-4.08-4.07-10.68-4.07-14.76 0l-21.57 21.56a10.43 10.43 0 0 0 0 14.76l21.58 21.56zM412.11 192c-26.69 0-51.77 10.39-70.64 29.25l-24.25 24.25c-6.78 6.77-15.78 10.5-25.38 10.5H245c10.54-22.1 14.17-48.11 7.73-75.23-10.1-42.55-46.36-76.11-89.52-83.19-36.15-5.93-70.9 5.04-96.01 28.78-7.36 6.96-6.97 18.85 1.12 24.93l26.15 19.63c5.72 4.3 13.66 4.32 19.2-.21 8.45-6.9 19.02-10.71 30.27-10.71 26.47 0 48.01 21.53 48.01 48s-21.54 48-48.01 48h-31.9c-11.96 0-19.74 12.58-14.39 23.28l16.09 32.17c2.53 5.06 7.6 8.1 13.17 8.55h33.03c35.3 0 64.01 28.7 64.01 64s-28.71 64-64.01 64c-96.02 0-122.35-54.02-145.15-92.03-4.53-7.55-14.77-3.58-14.79 5.22C-.09 416 41.13 512 159.94 512c70.59 0 128.02-57.42 128.02-128 0-23.42-6.78-45.1-17.81-64h21.69c26.69 0 51.77-10.39 70.64-29.25l24.25-24.25c6.78-6.77 15.78-10.5 25.38-10.5 19.78 0 35.88 16.09 35.88 35.88V392c0 13.23-18.77 24-32.01 24-39.4 0-66.67-24.24-81.82-42.89-4.77-5.87-14.2-2.54-14.2 5.02V416s0 64 96.02 64c48.54 0 96.02-39.47 96.02-88V291.88c0-55.08-44.8-99.88-99.89-99.88zm42.18-124.73c-85.55 65.12-169.05 2.75-172.58.05-6.02-4.62-14.44-4.38-20.14.55-5.74 4.92-7.27 13.17-3.66 19.8 1.61 2.95 40.37 72.34 118.8 72.34 79.92 0 98.78-31.36 101.75-37.66 1.02-2.12 1.53-4.47 1.53-6.83V80c0-13.22-15.14-20.69-25.7-12.73z"]},faOtter:{prefix:"fas",iconName:"otter",icon:[640,512,[],"f700","M608 32h-32l-13.25-13.25A63.97 63.97 0 0 0 517.49 0H497c-11.14 0-22.08 2.91-31.75 8.43L312 96h-56C149.96 96 64 181.96 64 288v1.61c0 32.75-16 62.14-39.56 84.89-18.19 17.58-28.1 43.68-23.19 71.8 6.76 38.8 42.9 65.7 82.28 65.7H192c17.67 0 32-14.33 32-32s-14.33-32-32-32H80c-8.83 0-16-7.17-16-16s7.17-16 16-16h224c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-64l149.49-80.5L448 416h80c8.84 0 16-7.16 16-16v-16c0-17.67-14.33-32-32-32h-28.22l-55.11-110.21L521.14 192H544c53.02 0 96-42.98 96-96V64c0-17.67-14.33-32-32-32zm-96 16c8.84 0 16 7.16 16 16s-7.16 16-16 16-16-7.16-16-16 7.16-16 16-16zm32 96h-34.96L407.2 198.84l-13.77-27.55L512 112h77.05c-6.62 18.58-24.22 32-45.05 32z"]},faOutdent:{prefix:"fas",iconName:"outdent",icon:[448,512,[],"f03b","M100.69 363.29c10 10 27.31 2.93 27.31-11.31V160c0-14.32-17.33-21.31-27.31-11.31l-96 96a16 16 0 0 0 0 22.62zM432 416H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm3.17-128H204.83A12.82 12.82 0 0 0 192 300.83v38.34A12.82 12.82 0 0 0 204.83 352h230.34A12.82 12.82 0 0 0 448 339.17v-38.34A12.82 12.82 0 0 0 435.17 288zm0-128H204.83A12.82 12.82 0 0 0 192 172.83v38.34A12.82 12.82 0 0 0 204.83 224h230.34A12.82 12.82 0 0 0 448 211.17v-38.34A12.82 12.82 0 0 0 435.17 160zM432 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faPager:{prefix:"fas",iconName:"pager",icon:[512,512,[],"f815","M448 64H64a64 64 0 0 0-64 64v256a64 64 0 0 0 64 64h384a64 64 0 0 0 64-64V128a64 64 0 0 0-64-64zM160 368H80a16 16 0 0 1-16-16v-16a16 16 0 0 1 16-16h80zm128-16a16 16 0 0 1-16 16h-80v-48h80a16 16 0 0 1 16 16zm160-128a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-64a32 32 0 0 1 32-32h320a32 32 0 0 1 32 32z"]},faPaintBrush:{prefix:"fas",iconName:"paint-brush",icon:[512,512,[],"f1fc","M167.02 309.34c-40.12 2.58-76.53 17.86-97.19 72.3-2.35 6.21-8 9.98-14.59 9.98-11.11 0-45.46-27.67-55.25-34.35C0 439.62 37.93 512 128 512c75.86 0 128-43.77 128-120.19 0-3.11-.65-6.08-.97-9.13l-88.01-73.34zM457.89 0c-15.16 0-29.37 6.71-40.21 16.45C213.27 199.05 192 203.34 192 257.09c0 13.7 3.25 26.76 8.73 38.7l63.82 53.18c7.21 1.8 14.64 3.03 22.39 3.03 62.11 0 98.11-45.47 211.16-256.46 7.38-14.35 13.9-29.85 13.9-45.99C512 20.64 486 0 457.89 0z"]},faPaintRoller:{prefix:"fas",iconName:"paint-roller",icon:[512,512,[],"f5aa","M416 128V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32h352c17.67 0 32-14.33 32-32zm32-64v128c0 17.67-14.33 32-32 32H256c-35.35 0-64 28.65-64 64v32c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32v-32h160c53.02 0 96-42.98 96-96v-64c0-35.35-28.65-64-64-64z"]},faPalette:{prefix:"fas",iconName:"palette",icon:[512,512,[],"f53f","M204.3 5C104.9 24.4 24.8 104.3 5.2 203.4c-37 187 131.7 326.4 258.8 306.7 41.2-6.4 61.4-54.6 42.5-91.7-23.1-45.4 9.9-98.4 60.9-98.4h79.7c35.8 0 64.8-29.6 64.9-65.3C511.5 97.1 368.1-26.9 204.3 5zM96 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm32-128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128-64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm128 64c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faPallet:{prefix:"fas",iconName:"pallet",icon:[640,512,[],"f482","M144 256h352c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H384v128l-64-32-64 32V0H144c-8.8 0-16 7.2-16 16v224c0 8.8 7.2 16 16 16zm480 128c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h48v64H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16h-48v-64h48zm-336 64H128v-64h160v64zm224 0H352v-64h160v64z"]},faPaperPlane:{prefix:"fas",iconName:"paper-plane",icon:[512,512,[],"f1d8","M476 3.2L12.5 270.6c-18.1 10.4-15.8 35.6 2.2 43.2L121 358.4l287.3-253.2c5.5-4.9 13.3 2.6 8.6 8.3L176 407v80.5c0 23.6 28.5 32.9 42.5 15.8L282 426l124.6 52.2c14.2 6 30.4-2.9 33-18.2l72-432C515 7.8 493.3-6.8 476 3.2z"]},faPaperclip:{prefix:"fas",iconName:"paperclip",icon:[448,512,[],"f0c6","M43.246 466.142c-58.43-60.289-57.341-157.511 1.386-217.581L254.392 34c44.316-45.332 116.351-45.336 160.671 0 43.89 44.894 43.943 117.329 0 162.276L232.214 383.128c-29.855 30.537-78.633 30.111-107.982-.998-28.275-29.97-27.368-77.473 1.452-106.953l143.743-146.835c6.182-6.314 16.312-6.422 22.626-.241l22.861 22.379c6.315 6.182 6.422 16.312.241 22.626L171.427 319.927c-4.932 5.045-5.236 13.428-.648 18.292 4.372 4.634 11.245 4.711 15.688.165l182.849-186.851c19.613-20.062 19.613-52.725-.011-72.798-19.189-19.627-49.957-19.637-69.154 0L90.39 293.295c-34.763 35.56-35.299 93.12-1.191 128.313 34.01 35.093 88.985 35.137 123.058.286l172.06-175.999c6.177-6.319 16.307-6.433 22.626-.256l22.877 22.364c6.319 6.177 6.434 16.307.256 22.626l-172.06 175.998c-59.576 60.938-155.943 60.216-214.77-.485z"]},faParachuteBox:{prefix:"fas",iconName:"parachute-box",icon:[512,512,[],"f4cd","M511.9 175c-9.1-75.6-78.4-132.4-158.3-158.7C390 55.7 416 116.9 416 192h28.1L327.5 321.5c-2.5-.6-4.8-1.5-7.5-1.5h-48V192h112C384 76.8 315.1 0 256 0S128 76.8 128 192h112v128h-48c-2.7 0-5 .9-7.5 1.5L67.9 192H96c0-75.1 26-136.3 62.4-175.7C78.5 42.7 9.2 99.5.1 175c-1.1 9.1 6.8 17 16 17h8.7l136.7 151.9c-.7 2.6-1.6 5.2-1.6 8.1v128c0 17.7 14.3 32 32 32h128c17.7 0 32-14.3 32-32V352c0-2.9-.9-5.4-1.6-8.1L487.1 192h8.7c9.3 0 17.2-7.8 16.1-17z"]},faParagraph:{prefix:"fas",iconName:"paragraph",icon:[448,512,[],"f1dd","M448 48v32a16 16 0 0 1-16 16h-48v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V96h-32v368a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V352h-32a160 160 0 0 1 0-320h240a16 16 0 0 1 16 16z"]},faParking:{prefix:"fas",iconName:"parking",icon:[448,512,[],"f540","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM240 320h-48v48c0 8.8-7.2 16-16 16h-32c-8.8 0-16-7.2-16-16V144c0-8.8 7.2-16 16-16h96c52.9 0 96 43.1 96 96s-43.1 96-96 96zm0-128h-48v64h48c17.6 0 32-14.4 32-32s-14.4-32-32-32z"]},faPassport:{prefix:"fas",iconName:"passport",icon:[448,512,[],"f5ab","M129.62 176h39.09c1.49-27.03 6.54-51.35 14.21-70.41-27.71 13.24-48.02 39.19-53.3 70.41zm0 32c5.29 31.22 25.59 57.17 53.3 70.41-7.68-19.06-12.72-43.38-14.21-70.41h-39.09zM224 286.69c7.69-7.45 20.77-34.42 23.43-78.69h-46.87c2.67 44.26 15.75 71.24 23.44 78.69zM200.57 176h46.87c-2.66-44.26-15.74-71.24-23.43-78.69-7.7 7.45-20.78 34.43-23.44 78.69zm64.51 102.41c27.71-13.24 48.02-39.19 53.3-70.41h-39.09c-1.49 27.03-6.53 51.35-14.21 70.41zM416 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h352c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32zm-80 416H112c-8.8 0-16-7.2-16-16s7.2-16 16-16h224c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-112-96c-70.69 0-128-57.31-128-128S153.31 64 224 64s128 57.31 128 128-57.31 128-128 128zm41.08-214.41c7.68 19.06 12.72 43.38 14.21 70.41h39.09c-5.28-31.22-25.59-57.17-53.3-70.41z"]},faPastafarianism:{prefix:"fas",iconName:"pastafarianism",icon:[640,512,[],"f67b","M624.54 347.67c-32.7-12.52-57.36 4.25-75.37 16.45-17.06 11.53-23.25 14.42-31.41 11.36-8.12-3.09-10.83-9.38-15.89-29.38-3.33-13.15-7.44-29.32-17.95-42.65 2.24-2.91 4.43-5.79 6.38-8.57C500.47 304.45 513.71 312 532 312c33.95 0 50.87-25.78 62.06-42.83 10.59-16.14 15-21.17 21.94-21.17 13.25 0 24-10.75 24-24s-10.75-24-24-24c-33.95 0-50.87 25.78-62.06 42.83-10.6 16.14-15 21.17-21.94 21.17-17.31 0-37.48-61.43-97.26-101.91l17.25-34.5C485.43 125.5 512 97.98 512 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 13.02 3.94 25.1 10.62 35.21l-18.15 36.3c-16.98-4.6-35.6-7.51-56.46-7.51s-39.49 2.91-56.46 7.51l-18.15-36.3C252.06 89.1 256 77.02 256 64c0-35.35-28.65-64-64-64s-64 28.65-64 64c0 33.98 26.56 61.5 60.02 63.6l17.25 34.5C145.68 202.44 125.15 264 108 264c-6.94 0-11.34-5.03-21.94-21.17C74.88 225.78 57.96 200 24 200c-13.25 0-24 10.75-24 24s10.75 24 24 24c6.94 0 11.34 5.03 21.94 21.17C57.13 286.22 74.05 312 108 312c18.29 0 31.53-7.55 41.7-17.11 1.95 2.79 4.14 5.66 6.38 8.57-10.51 13.33-14.62 29.5-17.95 42.65-5.06 20-7.77 26.28-15.89 29.38-8.11 3.06-14.33.17-31.41-11.36-18.03-12.2-42.72-28.92-75.37-16.45-12.39 4.72-18.59 18.58-13.87 30.97 4.72 12.41 18.61 18.61 30.97 13.88 8.16-3.09 14.34-.19 31.39 11.36 13.55 9.16 30.83 20.86 52.42 20.84 7.17 0 14.83-1.28 22.97-4.39 32.66-12.44 39.98-41.33 45.33-62.44 2.21-8.72 3.99-14.49 5.95-18.87 16.62 13.61 36.95 25.88 61.64 34.17-9.96 37-32.18 90.8-60.26 90.8-13.25 0-24 10.75-24 24s10.75 24 24 24c66.74 0 97.05-88.63 107.42-129.14 6.69.6 13.42 1.14 20.58 1.14s13.89-.54 20.58-1.14C350.95 423.37 381.26 512 448 512c13.25 0 24-10.75 24-24s-10.75-24-24-24c-27.94 0-50.21-53.81-60.22-90.81 24.69-8.29 45-20.56 61.62-34.16 1.96 4.38 3.74 10.15 5.95 18.87 5.34 21.11 12.67 50 45.33 62.44 8.14 3.11 15.8 4.39 22.97 4.39 21.59 0 38.87-11.69 52.42-20.84 17.05-11.55 23.28-14.45 31.39-11.36 12.39 4.75 26.27-1.47 30.97-13.88 4.71-12.4-1.49-26.26-13.89-30.98zM448 48c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16zm-256 0c8.82 0 16 7.18 16 16s-7.18 16-16 16-16-7.18-16-16 7.18-16 16-16z"]},faPaste:{prefix:"fas",iconName:"paste",icon:[448,512,[],"f0ea","M128 184c0-30.879 25.122-56 56-56h136V56c0-13.255-10.745-24-24-24h-80.61C204.306 12.89 183.637 0 160 0s-44.306 12.89-55.39 32H24C10.745 32 0 42.745 0 56v336c0 13.255 10.745 24 24 24h104V184zm32-144c13.255 0 24 10.745 24 24s-10.745 24-24 24-24-10.745-24-24 10.745-24 24-24zm184 248h104v200c0 13.255-10.745 24-24 24H184c-13.255 0-24-10.745-24-24V184c0-13.255 10.745-24 24-24h136v104c0 13.2 10.8 24 24 24zm104-38.059V256h-96v-96h6.059a24 24 0 0 1 16.97 7.029l65.941 65.941a24.002 24.002 0 0 1 7.03 16.971z"]},faPause:{prefix:"fas",iconName:"pause",icon:[448,512,[],"f04c","M144 479H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zm304-48V79c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48v352c0 26.5 21.5 48 48 48h96c26.5 0 48-21.5 48-48z"]},faPauseCircle:{prefix:"fas",iconName:"pause-circle",icon:[512,512,[],"f28b","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-16 328c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160zm112 0c0 8.8-7.2 16-16 16h-48c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h48c8.8 0 16 7.2 16 16v160z"]},faPaw:{prefix:"fas",iconName:"paw",icon:[512,512,[],"f1b0","M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z"]},faPeace:{prefix:"fas",iconName:"peace",icon:[496,512,[],"f67c","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm184 248c0 31.93-8.2 61.97-22.57 88.17L280 240.63V74.97c86.23 15.21 152 90.5 152 181.03zM216 437.03c-33.86-5.97-64.49-21.2-89.29-43.02L216 322.57v114.46zm64-114.46L369.29 394c-24.8 21.82-55.43 37.05-89.29 43.02V322.57zm-64-247.6v165.66L86.57 344.17C72.2 317.97 64 287.93 64 256c0-90.53 65.77-165.82 152-181.03z"]},faPen:{prefix:"fas",iconName:"pen",icon:[512,512,[],"f304","M290.74 93.24l128.02 128.02-277.99 277.99-114.14 12.6C11.35 513.54-1.56 500.62.14 485.34l12.7-114.22 277.9-277.88zm207.2-19.06l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.76 18.75-49.16 0-67.91z"]},faPenAlt:{prefix:"fas",iconName:"pen-alt",icon:[512,512,[],"f305","M497.94 74.17l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91zm-246.8-20.53c-15.62-15.62-40.94-15.62-56.56 0L75.8 172.43c-6.25 6.25-6.25 16.38 0 22.62l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l101.82-101.82 22.63 22.62L93.95 290.03A327.038 327.038 0 0 0 .17 485.11l-.03.23c-1.7 15.28 11.21 28.2 26.49 26.51a327.02 327.02 0 0 0 195.34-93.8l196.79-196.79-82.77-82.77-84.85-84.85z"]},faPenFancy:{prefix:"fas",iconName:"pen-fancy",icon:[512,512,[],"f5ac","M79.18 282.94a32.005 32.005 0 0 0-20.24 20.24L0 480l4.69 4.69 92.89-92.89c-.66-2.56-1.57-5.03-1.57-7.8 0-17.67 14.33-32 32-32s32 14.33 32 32-14.33 32-32 32c-2.77 0-5.24-.91-7.8-1.57l-92.89 92.89L32 512l176.82-58.94a31.983 31.983 0 0 0 20.24-20.24l33.07-84.07-98.88-98.88-84.07 33.07zM369.25 28.32L186.14 227.81l97.85 97.85 199.49-183.11C568.4 67.48 443.73-55.94 369.25 28.32z"]},faPenNib:{prefix:"fas",iconName:"pen-nib",icon:[512,512,[],"f5ad","M136.6 138.79a64.003 64.003 0 0 0-43.31 41.35L0 460l14.69 14.69L164.8 324.58c-2.99-6.26-4.8-13.18-4.8-20.58 0-26.51 21.49-48 48-48s48 21.49 48 48-21.49 48-48 48c-7.4 0-14.32-1.81-20.58-4.8L37.31 497.31 52 512l279.86-93.29a64.003 64.003 0 0 0 41.35-43.31L416 224 288 96l-151.4 42.79zm361.34-64.62l-60.11-60.11c-18.75-18.75-49.16-18.75-67.91 0l-56.55 56.55 128.02 128.02 56.55-56.55c18.75-18.75 18.75-49.15 0-67.91z"]},faPenSquare:{prefix:"fas",iconName:"pen-square",icon:[448,512,[],"f14b","M400 480H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48v352c0 26.5-21.5 48-48 48zM238.1 177.9L102.4 313.6l-6.3 57.1c-.8 7.6 5.6 14.1 13.3 13.3l57.1-6.3L302.2 242c2.3-2.3 2.3-6.1 0-8.5L246.7 178c-2.5-2.4-6.3-2.4-8.6-.1zM345 165.1L314.9 135c-9.4-9.4-24.6-9.4-33.9 0l-23.1 23.1c-2.3 2.3-2.3 6.1 0 8.5l55.5 55.5c2.3 2.3 6.1 2.3 8.5 0L345 199c9.3-9.3 9.3-24.5 0-33.9z"]},faPencilAlt:{prefix:"fas",iconName:"pencil-alt",icon:[512,512,[],"f303","M497.9 142.1l-46.1 46.1c-4.7 4.7-12.3 4.7-17 0l-111-111c-4.7-4.7-4.7-12.3 0-17l46.1-46.1c18.7-18.7 49.1-18.7 67.9 0l60.1 60.1c18.8 18.7 18.8 49.1 0 67.9zM284.2 99.8L21.6 362.4.4 483.9c-2.9 16.4 11.4 30.6 27.8 27.8l121.5-21.3 262.6-262.6c4.7-4.7 4.7-12.3 0-17l-111-111c-4.8-4.7-12.4-4.7-17.1 0zM124.1 339.9c-5.5-5.5-5.5-14.3 0-19.8l154-154c5.5-5.5 14.3-5.5 19.8 0s5.5 14.3 0 19.8l-154 154c-5.5 5.5-14.3 5.5-19.8 0zM88 424h48v36.3l-64.5 11.3-31.1-31.1L51.7 376H88v48z"]},faPencilRuler:{prefix:"fas",iconName:"pencil-ruler",icon:[512,512,[],"f5ae","M109.46 244.04l134.58-134.56-44.12-44.12-61.68 61.68a7.919 7.919 0 0 1-11.21 0l-11.21-11.21c-3.1-3.1-3.1-8.12 0-11.21l61.68-61.68-33.64-33.65C131.47-3.1 111.39-3.1 99 9.29L9.29 99c-12.38 12.39-12.39 32.47 0 44.86l100.17 100.18zm388.47-116.8c18.76-18.76 18.75-49.17 0-67.93l-45.25-45.25c-18.76-18.76-49.18-18.76-67.95 0l-46.02 46.01 113.2 113.2 46.02-46.03zM316.08 82.71l-297 296.96L.32 487.11c-2.53 14.49 10.09 27.11 24.59 24.56l107.45-18.84L429.28 195.9 316.08 82.71zm186.63 285.43l-33.64-33.64-61.68 61.68c-3.1 3.1-8.12 3.1-11.21 0l-11.21-11.21c-3.09-3.1-3.09-8.12 0-11.21l61.68-61.68-44.14-44.14L267.93 402.5l100.21 100.2c12.39 12.39 32.47 12.39 44.86 0l89.71-89.7c12.39-12.39 12.39-32.47 0-44.86z"]},faPeopleArrows:{prefix:"fas",iconName:"people-arrows",icon:[576,512,[],"e068","M96,128A64,64,0,1,0,32,64,64,64,0,0,0,96,128Zm0,176.08a44.11,44.11,0,0,1,13.64-32L181.77,204c1.65-1.55,3.77-2.31,5.61-3.57A63.91,63.91,0,0,0,128,160H64A64,64,0,0,0,0,224v96a32,32,0,0,0,32,32V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V383.61l-50.36-47.53A44.08,44.08,0,0,1,96,304.08ZM480,128a64,64,0,1,0-64-64A64,64,0,0,0,480,128Zm32,32H448a63.91,63.91,0,0,0-59.38,40.42c1.84,1.27,4,2,5.62,3.59l72.12,68.06a44.37,44.37,0,0,1,0,64L416,383.62V480a32,32,0,0,0,32,32h64a32,32,0,0,0,32-32V352a32,32,0,0,0,32-32V224A64,64,0,0,0,512,160ZM444.4,295.34l-72.12-68.06A12,12,0,0,0,352,236v36H224V236a12,12,0,0,0-20.28-8.73L131.6,295.34a12.4,12.4,0,0,0,0,17.47l72.12,68.07A12,12,0,0,0,224,372.14V336H352v36.14a12,12,0,0,0,20.28,8.74l72.12-68.07A12.4,12.4,0,0,0,444.4,295.34Z"]},faPeopleCarry:{prefix:"fas",iconName:"people-carry",icon:[640,512,[],"f4ce","M128 96c26.5 0 48-21.5 48-48S154.5 0 128 0 80 21.5 80 48s21.5 48 48 48zm384 0c26.5 0 48-21.5 48-48S538.5 0 512 0s-48 21.5-48 48 21.5 48 48 48zm125.7 372.1l-44-110-41.1 46.4-2 18.2 27.7 69.2c5 12.5 17 20.1 29.7 20.1 4 0 8-.7 11.9-2.3 16.4-6.6 24.4-25.2 17.8-41.6zm-34.2-209.8L585 178.1c-4.6-20-18.6-36.8-37.5-44.9-18.5-8-39-6.7-56.1 3.3-22.7 13.4-39.7 34.5-48.1 59.4L432 229.8 416 240v-96c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v96l-16.1-10.2-11.3-33.9c-8.3-25-25.4-46-48.1-59.4-17.2-10-37.6-11.3-56.1-3.3-18.9 8.1-32.9 24.9-37.5 44.9l-18.4 80.2c-4.6 20 .7 41.2 14.4 56.7l67.2 75.9 10.1 92.6C130 499.8 143.8 512 160 512c1.2 0 2.3-.1 3.5-.2 17.6-1.9 30.2-17.7 28.3-35.3l-10.1-92.8c-1.5-13-6.9-25.1-15.6-35l-43.3-49 17.6-70.3 6.8 20.4c4.1 12.5 11.9 23.4 24.5 32.6l51.1 32.5c4.6 2.9 12.1 4.6 17.2 5h160c5.1-.4 12.6-2.1 17.2-5l51.1-32.5c12.6-9.2 20.4-20 24.5-32.6l6.8-20.4 17.6 70.3-43.3 49c-8.7 9.9-14.1 22-15.6 35l-10.1 92.8c-1.9 17.6 10.8 33.4 28.3 35.3 1.2.1 2.3.2 3.5.2 16.1 0 30-12.1 31.8-28.5l10.1-92.6 67.2-75.9c13.6-15.5 19-36.7 14.4-56.7zM46.3 358.1l-44 110c-6.6 16.4 1.4 35 17.8 41.6 16.8 6.6 35.1-1.7 41.6-17.8l27.7-69.2-2-18.2-41.1-46.4z"]},faPepperHot:{prefix:"fas",iconName:"pepper-hot",icon:[512,512,[],"f816","M330.67 263.12V173.4l-52.75-24.22C219.44 218.76 197.58 400 56 400a56 56 0 0 0 0 112c212.64 0 370.65-122.87 419.18-210.34l-37.05-38.54zm131.09-128.37C493.92 74.91 477.18 26.48 458.62 3a8 8 0 0 0-11.93-.59l-22.9 23a8.06 8.06 0 0 0-.89 10.23c6.86 10.36 17.05 35.1-1.4 72.32A142.85 142.85 0 0 0 364.34 96c-28 0-54 8.54-76.34 22.59l74.67 34.29v78.24h89.09L506.44 288c3.26-12.62 5.56-25.63 5.56-39.31a154 154 0 0 0-50.24-113.94z"]},faPercent:{prefix:"fas",iconName:"percent",icon:[448,512,[],"f295","M112 224c61.9 0 112-50.1 112-112S173.9 0 112 0 0 50.1 0 112s50.1 112 112 112zm0-160c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48 21.5-48 48-48zm224 224c-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112-50.1-112-112-112zm0 160c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zM392.3.2l31.6-.1c19.4-.1 30.9 21.8 19.7 37.8L77.4 501.6a23.95 23.95 0 0 1-19.6 10.2l-33.4.1c-19.5 0-30.9-21.9-19.7-37.8l368-463.7C377.2 4 384.5.2 392.3.2z"]},faPercentage:{prefix:"fas",iconName:"percentage",icon:[384,512,[],"f541","M109.25 173.25c24.99-24.99 24.99-65.52 0-90.51-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 25 25 65.52 25 90.51 0zm256 165.49c-24.99-24.99-65.52-24.99-90.51 0-24.99 24.99-24.99 65.52 0 90.51 24.99 24.99 65.52 24.99 90.51 0 25-24.99 25-65.51 0-90.51zm-1.94-231.43l-22.62-22.62c-12.5-12.5-32.76-12.5-45.25 0L20.69 359.44c-12.5 12.5-12.5 32.76 0 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.25 0l274.75-274.75c12.5-12.49 12.5-32.75 0-45.25z"]},faPersonBooth:{prefix:"fas",iconName:"person-booth",icon:[576,512,[],"f756","M192 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320h-64v176zm32-272h-50.9l-45.2-45.3C115.8 166.6 99.7 160 82.7 160H64c-17.1 0-33.2 6.7-45.3 18.8C6.7 190.9 0 207 0 224.1L.2 320 0 480c0 17.7 14.3 32 31.9 32 17.6 0 32-14.3 32-32l.1-100.7c.9.5 1.6 1.3 2.5 1.7l29.1 43v56c0 17.7 14.3 32 32 32s32-14.3 32-32v-56.5c0-9.9-2.3-19.8-6.7-28.6l-41.2-61.3V253l20.9 20.9c9.1 9.1 21.1 14.1 33.9 14.1H224c17.7 0 32-14.3 32-32s-14.3-32-32-32zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32 16 53.5 16 80s21.5 48 48 48zm224-96l31.5 223.1-30.9 154.6c-4.3 21.6 13 38.3 31.4 38.3 15.2 0 28-9.1 32.3-30.4.9 16.9 14.6 30.4 31.7 30.4 17.7 0 32-14.3 32-32 0 17.7 14.3 32 32 32s32-14.3 32-32V0H288v32zm-96 0v160h64V0h-32c-17.7 0-32 14.3-32 32zM544 0h-32v496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V32c0-17.7-14.3-32-32-32z"]},faPhone:{prefix:"fas",iconName:"phone",icon:[512,512,[],"f095","M493.4 24.6l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-36 76.7-98.9 140.5-177.2 177.2l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48C3.9 366.5-2 378.1.6 389.4l24 104C27.1 504.2 36.7 512 48 512c256.1 0 464-207.5 464-464 0-11.2-7.7-20.9-18.6-23.4z"]},faPhoneAlt:{prefix:"fas",iconName:"phone-alt",icon:[512,512,[],"f879","M497.39 361.8l-112-48a24 24 0 0 0-28 6.9l-49.6 60.6A370.66 370.66 0 0 1 130.6 204.11l60.6-49.6a23.94 23.94 0 0 0 6.9-28l-48-112A24.16 24.16 0 0 0 122.6.61l-104 24A24 24 0 0 0 0 48c0 256.5 207.9 464 464 464a24 24 0 0 0 23.4-18.6l24-104a24.29 24.29 0 0 0-14.01-27.6z"]},faPhoneSlash:{prefix:"fas",iconName:"phone-slash",icon:[640,512,[],"f3dd","M268.2 381.4l-49.6-60.6c-6.8-8.3-18.2-11.1-28-6.9l-112 48c-10.7 4.6-16.5 16.1-13.9 27.5l24 104c2.5 10.8 12.1 18.6 23.4 18.6 100.7 0 193.7-32.4 269.7-86.9l-80-61.8c-10.9 6.5-22.1 12.7-33.6 18.1zm365.6 76.7L475.1 335.5C537.9 256.4 576 156.9 576 48c0-11.2-7.7-20.9-18.6-23.4l-104-24c-11.3-2.6-22.9 3.3-27.5 13.9l-48 112c-4.2 9.8-1.4 21.3 6.9 28l60.6 49.6c-12.2 26.1-27.9 50.3-46 72.8L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3z"]},faPhoneSquare:{prefix:"fas",iconName:"phone-square",icon:[448,512,[],"f098","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM94 416c-7.033 0-13.057-4.873-14.616-11.627l-14.998-65a15 15 0 0 1 8.707-17.16l69.998-29.999a15 15 0 0 1 17.518 4.289l30.997 37.885c48.944-22.963 88.297-62.858 110.781-110.78l-37.886-30.997a15.001 15.001 0 0 1-4.289-17.518l30-69.998a15 15 0 0 1 17.16-8.707l65 14.998A14.997 14.997 0 0 1 384 126c0 160.292-129.945 290-290 290z"]},faPhoneSquareAlt:{prefix:"fas",iconName:"phone-square-alt",icon:[448,512,[],"f87b","M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h352a48 48 0 0 0 48-48V80a48 48 0 0 0-48-48zm-16.39 307.37l-15 65A15 15 0 0 1 354 416C194 416 64 286.29 64 126a15.7 15.7 0 0 1 11.63-14.61l65-15A18.23 18.23 0 0 1 144 96a16.27 16.27 0 0 1 13.79 9.09l30 70A17.9 17.9 0 0 1 189 181a17 17 0 0 1-5.5 11.61l-37.89 31a231.91 231.91 0 0 0 110.78 110.78l31-37.89A17 17 0 0 1 299 291a17.85 17.85 0 0 1 5.91 1.21l70 30A16.25 16.25 0 0 1 384 336a17.41 17.41 0 0 1-.39 3.37z"]},faPhoneVolume:{prefix:"fas",iconName:"phone-volume",icon:[384,512,[],"f2a0","M97.333 506.966c-129.874-129.874-129.681-340.252 0-469.933 5.698-5.698 14.527-6.632 21.263-2.422l64.817 40.513a17.187 17.187 0 0 1 6.849 20.958l-32.408 81.021a17.188 17.188 0 0 1-17.669 10.719l-55.81-5.58c-21.051 58.261-20.612 122.471 0 179.515l55.811-5.581a17.188 17.188 0 0 1 17.669 10.719l32.408 81.022a17.188 17.188 0 0 1-6.849 20.958l-64.817 40.513a17.19 17.19 0 0 1-21.264-2.422zM247.126 95.473c11.832 20.047 11.832 45.008 0 65.055-3.95 6.693-13.108 7.959-18.718 2.581l-5.975-5.726c-3.911-3.748-4.793-9.622-2.261-14.41a32.063 32.063 0 0 0 0-29.945c-2.533-4.788-1.65-10.662 2.261-14.41l5.975-5.726c5.61-5.378 14.768-4.112 18.718 2.581zm91.787-91.187c60.14 71.604 60.092 175.882 0 247.428-4.474 5.327-12.53 5.746-17.552.933l-5.798-5.557c-4.56-4.371-4.977-11.529-.93-16.379 49.687-59.538 49.646-145.933 0-205.422-4.047-4.85-3.631-12.008.93-16.379l5.798-5.557c5.022-4.813 13.078-4.394 17.552.933zm-45.972 44.941c36.05 46.322 36.108 111.149 0 157.546-4.39 5.641-12.697 6.251-17.856 1.304l-5.818-5.579c-4.4-4.219-4.998-11.095-1.285-15.931 26.536-34.564 26.534-82.572 0-117.134-3.713-4.836-3.115-11.711 1.285-15.931l5.818-5.579c5.159-4.947 13.466-4.337 17.856 1.304z"]},faPhotoVideo:{prefix:"fas",iconName:"photo-video",icon:[640,512,[],"f87c","M608 0H160a32 32 0 0 0-32 32v96h160V64h192v320h128a32 32 0 0 0 32-32V32a32 32 0 0 0-32-32zM232 103a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm352 208a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9v-30a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm0-104a9 9 0 0 1-9 9h-30a9 9 0 0 1-9-9V73a9 9 0 0 1 9-9h30a9 9 0 0 1 9 9zm-168 57H32a32 32 0 0 0-32 32v288a32 32 0 0 0 32 32h384a32 32 0 0 0 32-32V192a32 32 0 0 0-32-32zM96 224a32 32 0 1 1-32 32 32 32 0 0 1 32-32zm288 224H64v-32l64-64 32 32 128-128 96 96z"]},faPiggyBank:{prefix:"fas",iconName:"piggy-bank",icon:[576,512,[],"f4d3","M560 224h-29.5c-8.8-20-21.6-37.7-37.4-52.5L512 96h-32c-29.4 0-55.4 13.5-73 34.3-7.6-1.1-15.1-2.3-23-2.3H256c-77.4 0-141.9 55-156.8 128H56c-14.8 0-26.5-13.5-23.5-28.8C34.7 215.8 45.4 208 57 208h1c3.3 0 6-2.7 6-6v-20c0-3.3-2.7-6-6-6-28.5 0-53.9 20.4-57.5 48.6C-3.9 258.8 22.7 288 56 288h40c0 52.2 25.4 98.1 64 127.3V496c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-48h128v48c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16v-80.7c11.8-8.9 22.3-19.4 31.3-31.3H560c8.8 0 16-7.2 16-16V240c0-8.8-7.2-16-16-16zm-128 64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zM256 96h128c5.4 0 10.7.4 15.9.8 0-.3.1-.5.1-.8 0-53-43-96-96-96s-96 43-96 96c0 2.1.5 4.1.6 6.2 15.2-3.9 31-6.2 47.4-6.2z"]},faPills:{prefix:"fas",iconName:"pills",icon:[576,512,[],"f484","M112 32C50.1 32 0 82.1 0 144v224c0 61.9 50.1 112 112 112s112-50.1 112-112V144c0-61.9-50.1-112-112-112zm48 224H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48v112zm139.7-29.7c-3.5-3.5-9.4-3.1-12.3.8-45.3 62.5-40.4 150.1 15.9 206.4 56.3 56.3 143.9 61.2 206.4 15.9 4-2.9 4.3-8.8.8-12.3L299.7 226.3zm229.8-19c-56.3-56.3-143.9-61.2-206.4-15.9-4 2.9-4.3 8.8-.8 12.3l210.8 210.8c3.5 3.5 9.4 3.1 12.3-.8 45.3-62.6 40.5-150.1-15.9-206.4z"]},faPizzaSlice:{prefix:"fas",iconName:"pizza-slice",icon:[512,512,[],"f818","M158.87.15c-16.16-1.52-31.2 8.42-35.33 24.12l-14.81 56.27c187.62 5.49 314.54 130.61 322.48 317l56.94-15.78c15.72-4.36 25.49-19.68 23.62-35.9C490.89 165.08 340.78 17.32 158.87.15zm-58.47 112L.55 491.64a16.21 16.21 0 0 0 20 19.75l379-105.1c-4.27-174.89-123.08-292.14-299.15-294.1zM128 416a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm48-152a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm104 104a32 32 0 1 1 32-32 32 32 0 0 1-32 32z"]},faPlaceOfWorship:{prefix:"fas",iconName:"place-of-worship",icon:[640,512,[],"f67f","M620.61 366.55L512 320v192h112c8.84 0 16-7.16 16-16V395.96a32 32 0 0 0-19.39-29.41zM0 395.96V496c0 8.84 7.16 16 16 16h112V320L19.39 366.55A32 32 0 0 0 0 395.96zm464.46-149.28L416 217.6V102.63c0-8.49-3.37-16.62-9.38-22.63L331.31 4.69c-6.25-6.25-16.38-6.25-22.62 0L233.38 80c-6 6-9.38 14.14-9.38 22.63V217.6l-48.46 29.08A31.997 31.997 0 0 0 160 274.12V512h96v-96c0-35.35 28.66-64 64-64s64 28.65 64 64v96h96V274.12c0-11.24-5.9-21.66-15.54-27.44z"]},faPlane:{prefix:"fas",iconName:"plane",icon:[576,512,[],"f072","M480 192H365.71L260.61 8.06A16.014 16.014 0 0 0 246.71 0h-65.5c-10.63 0-18.3 10.17-15.38 20.39L214.86 192H112l-43.2-57.6c-3.02-4.03-7.77-6.4-12.8-6.4H16.01C5.6 128-2.04 137.78.49 147.88L32 256 .49 364.12C-2.04 374.22 5.6 384 16.01 384H56c5.04 0 9.78-2.37 12.8-6.4L112 320h102.86l-49.03 171.6c-2.92 10.22 4.75 20.4 15.38 20.4h65.5c5.74 0 11.04-3.08 13.89-8.06L365.71 320H480c35.35 0 96-28.65 96-64s-60.65-64-96-64z"]},faPlaneArrival:{prefix:"fas",iconName:"plane-arrival",icon:[640,512,[],"f5af","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM44.81 205.66l88.74 80a62.607 62.607 0 0 0 25.47 13.93l287.6 78.35c26.48 7.21 54.56 8.72 81 1.36 29.67-8.27 43.44-21.21 47.25-35.71 3.83-14.5-1.73-32.71-23.37-54.96-19.28-19.82-44.35-32.79-70.83-40l-97.51-26.56L282.8 30.22c-1.51-5.81-5.95-10.35-11.66-11.91L206.05.58c-10.56-2.88-20.9 5.32-20.71 16.44l47.92 164.21-102.2-27.84-27.59-67.88c-1.93-4.89-6.01-8.57-11.02-9.93L52.72 64.75c-10.34-2.82-20.53 5-20.72 15.88l.23 101.78c.19 8.91 6.03 17.34 12.58 23.25z"]},faPlaneDeparture:{prefix:"fas",iconName:"plane-departure",icon:[640,512,[],"f5b0","M624 448H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h608c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM80.55 341.27c6.28 6.84 15.1 10.72 24.33 10.71l130.54-.18a65.62 65.62 0 0 0 29.64-7.12l290.96-147.65c26.74-13.57 50.71-32.94 67.02-58.31 18.31-28.48 20.3-49.09 13.07-63.65-7.21-14.57-24.74-25.27-58.25-27.45-29.85-1.94-59.54 5.92-86.28 19.48l-98.51 49.99-218.7-82.06a17.799 17.799 0 0 0-18-1.11L90.62 67.29c-10.67 5.41-13.25 19.65-5.17 28.53l156.22 98.1-103.21 52.38-72.35-36.47a17.804 17.804 0 0 0-16.07.02L9.91 230.22c-10.44 5.3-13.19 19.12-5.57 28.08l76.21 82.97z"]},faPlaneSlash:{prefix:"fas",iconName:"plane-slash",icon:[640,512,[],"e069","M32.48,147.88,64,256,32.48,364.13A16,16,0,0,0,48,384H88a16,16,0,0,0,12.8-6.41L144,320H246.85l-49,171.59A16,16,0,0,0,213.2,512h65.5a16,16,0,0,0,13.89-8.06l66.6-116.54L34.35,136.34A15.47,15.47,0,0,0,32.48,147.88ZM633.82,458.09,455.14,320H512c35.34,0,96-28.66,96-64s-60.66-64-96-64H397.7L292.61,8.06C290.06,3.61,283.84,0,278.71,0H213.2a16,16,0,0,0-15.38,20.39l36.94,129.29L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09Z"]},faPlay:{prefix:"fas",iconName:"play",icon:[448,512,[],"f04b","M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z"]},faPlayCircle:{prefix:"fas",iconName:"play-circle",icon:[512,512,[],"f144","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm115.7 272l-176 101c-15.8 8.8-35.7-2.5-35.7-21V152c0-18.4 19.8-29.8 35.7-21l176 107c16.4 9.2 16.4 32.9 0 42z"]},faPlug:{prefix:"fas",iconName:"plug",icon:[384,512,[],"f1e6","M320,32a32,32,0,0,0-64,0v96h64Zm48,128H16A16,16,0,0,0,0,176v32a16,16,0,0,0,16,16H32v32A160.07,160.07,0,0,0,160,412.8V512h64V412.8A160.07,160.07,0,0,0,352,256V224h16a16,16,0,0,0,16-16V176A16,16,0,0,0,368,160ZM128,32a32,32,0,0,0-64,0v96h64Z"]},faPlus:{prefix:"fas",iconName:"plus",icon:[448,512,[],"f067","M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z"]},faPlusCircle:{prefix:"fas",iconName:"plus-circle",icon:[512,512,[],"f055","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm144 276c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92h-92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]},faPlusSquare:{prefix:"fas",iconName:"plus-square",icon:[448,512,[],"f0fe","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-32 252c0 6.6-5.4 12-12 12h-92v92c0 6.6-5.4 12-12 12h-56c-6.6 0-12-5.4-12-12v-92H92c-6.6 0-12-5.4-12-12v-56c0-6.6 5.4-12 12-12h92v-92c0-6.6 5.4-12 12-12h56c6.6 0 12 5.4 12 12v92h92c6.6 0 12 5.4 12 12v56z"]},faPodcast:{prefix:"fas",iconName:"podcast",icon:[448,512,[],"f2ce","M267.429 488.563C262.286 507.573 242.858 512 224 512c-18.857 0-38.286-4.427-43.428-23.437C172.927 460.134 160 388.898 160 355.75c0-35.156 31.142-43.75 64-43.75s64 8.594 64 43.75c0 32.949-12.871 104.179-20.571 132.813zM156.867 288.554c-18.693-18.308-29.958-44.173-28.784-72.599 2.054-49.724 42.395-89.956 92.124-91.881C274.862 121.958 320 165.807 320 220c0 26.827-11.064 51.116-28.866 68.552-2.675 2.62-2.401 6.986.628 9.187 9.312 6.765 16.46 15.343 21.234 25.363 1.741 3.654 6.497 4.66 9.449 1.891 28.826-27.043 46.553-65.783 45.511-108.565-1.855-76.206-63.595-138.208-139.793-140.369C146.869 73.753 80 139.215 80 220c0 41.361 17.532 78.7 45.55 104.989 2.953 2.771 7.711 1.77 9.453-1.887 4.774-10.021 11.923-18.598 21.235-25.363 3.029-2.2 3.304-6.566.629-9.185zM224 0C100.204 0 0 100.185 0 224c0 89.992 52.602 165.647 125.739 201.408 4.333 2.118 9.267-1.544 8.535-6.31-2.382-15.512-4.342-30.946-5.406-44.339-.146-1.836-1.149-3.486-2.678-4.512-47.4-31.806-78.564-86.016-78.187-147.347.592-96.237 79.29-174.648 175.529-174.899C320.793 47.747 400 126.797 400 224c0 61.932-32.158 116.49-80.65 147.867-.999 14.037-3.069 30.588-5.624 47.23-.732 4.767 4.203 8.429 8.535 6.31C395.227 389.727 448 314.187 448 224 448 100.205 347.815 0 224 0zm0 160c-35.346 0-64 28.654-64 64s28.654 64 64 64 64-28.654 64-64-28.654-64-64-64z"]},faPoll:{prefix:"fas",iconName:"poll",icon:[448,512,[],"f681","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM160 368c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V240c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v128zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16V144c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v224zm96 0c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-64c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v64z"]},faPollH:{prefix:"fas",iconName:"poll-h",icon:[448,512,[],"f682","M448 432V80c0-26.5-21.5-48-48-48H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48zM112 192c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h128c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h224c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16H112zm0 96c-8.84 0-16-7.16-16-16v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32c0 8.84-7.16 16-16 16h-64z"]},faPoo:{prefix:"fas",iconName:"poo",icon:[512,512,[],"f2fe","M451.4 369.1C468.7 356 480 335.4 480 312c0-39.8-32.2-72-72-72h-14.1c13.4-11.7 22.1-28.8 22.1-48 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C250.3 14.6 256 30.6 256 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 19.2 8.7 36.3 22.1 48H104c-39.8 0-72 32.2-72 72 0 23.4 11.3 44 28.6 57.1C26.3 374.6 0 404.1 0 440c0 39.8 32.2 72 72 72h368c39.8 0 72-32.2 72-72 0-35.9-26.3-65.4-60.6-70.9zM192 256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm159.5 139C341 422.9 293 448 256 448s-85-25.1-95.5-53c-2-5.3 2-11 7.8-11h175.4c5.8 0 9.8 5.7 7.8 11zM320 320c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faPooStorm:{prefix:"fas",iconName:"poo-storm",icon:[448,512,[],"f75a","M308 336h-57.7l17.3-64.9c2-7.6-3.7-15.1-11.6-15.1h-68c-6 0-11.1 4.5-11.9 10.4l-16 120c-1 7.2 4.6 13.6 11.9 13.6h59.3l-23 97.2c-1.8 7.6 4 14.8 11.7 14.8 4.2 0 8.2-2.2 10.4-6l88-152c4.6-8-1.2-18-10.4-18zm66.4-111.3c5.9-9.6 9.6-20.6 9.6-32.7 0-35.3-28.7-64-64-64h-5.9c3.6-10.1 5.9-20.7 5.9-32 0-53-43-96-96-96-5.2 0-10.2.7-15.1 1.5C218.3 14.6 224 30.6 224 48c0 44.2-35.8 80-80 80h-16c-35.3 0-64 28.7-64 64 0 12.1 3.7 23.1 9.6 32.7C32.6 228 0 262.2 0 304c0 44 36 80 80 80h48.3c.1-.6 0-1.2 0-1.8l16-120c3-21.8 21.7-38.2 43.7-38.2h68c13.8 0 26.5 6.3 34.9 17.2s11.2 24.8 7.6 38.1l-6.6 24.7h16c15.7 0 30.3 8.4 38.1 22 7.8 13.6 7.8 30.5 0 44l-8.1 14h30c44 0 80-36 80-80 .1-41.8-32.5-76-73.5-79.3z"]},faPoop:{prefix:"fas",iconName:"poop",icon:[512,512,[],"f619","M451.36 369.14C468.66 355.99 480 335.41 480 312c0-39.77-32.24-72-72-72h-14.07c13.42-11.73 22.07-28.78 22.07-48 0-35.35-28.65-64-64-64h-5.88c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96-5.17 0-10.15.74-15.11 1.52C250.31 14.64 256 30.62 256 48c0 44.18-35.82 80-80 80h-16c-35.35 0-64 28.65-64 64 0 19.22 8.65 36.27 22.07 48H104c-39.76 0-72 32.23-72 72 0 23.41 11.34 43.99 28.64 57.14C26.31 374.62 0 404.12 0 440c0 39.76 32.24 72 72 72h368c39.76 0 72-32.24 72-72 0-35.88-26.31-65.38-60.64-70.86z"]},faPortrait:{prefix:"fas",iconName:"portrait",icon:[384,512,[],"f3e0","M336 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM192 128c35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64 28.7-64 64-64zm112 236.8c0 10.6-10 19.2-22.4 19.2H102.4C90 384 80 375.4 80 364.8v-19.2c0-31.8 30.1-57.6 67.2-57.6h5c12.3 5.1 25.7 8 39.8 8s27.6-2.9 39.8-8h5c37.1 0 67.2 25.8 67.2 57.6v19.2z"]},faPoundSign:{prefix:"fas",iconName:"pound-sign",icon:[320,512,[],"f154","M308 352h-45.495c-6.627 0-12 5.373-12 12v50.848H128V288h84c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-84v-63.556c0-32.266 24.562-57.086 61.792-57.086 23.658 0 45.878 11.505 57.652 18.849 5.151 3.213 11.888 2.051 15.688-2.685l28.493-35.513c4.233-5.276 3.279-13.005-2.119-17.081C273.124 54.56 236.576 32 187.931 32 106.026 32 48 84.742 48 157.961V224H20c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h28v128H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h296c6.627 0 12-5.373 12-12V364c0-6.627-5.373-12-12-12z"]},faPowerOff:{prefix:"fas",iconName:"power-off",icon:[512,512,[],"f011","M400 54.1c63 45 104 118.6 104 201.9 0 136.8-110.8 247.7-247.5 248C120 504.3 8.2 393 8 256.4 7.9 173.1 48.9 99.3 111.8 54.2c11.7-8.3 28-4.8 35 7.7L162.6 90c5.9 10.5 3.1 23.8-6.6 31-41.5 30.8-68 79.6-68 134.9-.1 92.3 74.5 168.1 168 168.1 91.6 0 168.6-74.2 168-169.1-.3-51.8-24.7-101.8-68.1-134-9.7-7.2-12.4-20.5-6.5-30.9l15.8-28.1c7-12.4 23.2-16.1 34.8-7.8zM296 264V24c0-13.3-10.7-24-24-24h-32c-13.3 0-24 10.7-24 24v240c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24z"]},faPray:{prefix:"fas",iconName:"pray",icon:[384,512,[],"f683","M256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-30.63 169.75c14.06 16.72 39 19.09 55.97 5.22l88-72.02c17.09-13.98 19.59-39.19 5.62-56.28-13.97-17.11-39.19-19.59-56.31-5.62l-57.44 47-38.91-46.31c-15.44-18.39-39.22-27.92-64-25.33-24.19 2.48-45.25 16.27-56.37 36.92l-49.37 92.03c-23.4 43.64-8.69 96.37 34.19 123.75L131.56 432H40c-22.09 0-40 17.91-40 40s17.91 40 40 40h208c34.08 0 53.77-42.79 28.28-68.28L166.42 333.86l34.8-64.87 24.15 28.76z"]},faPrayingHands:{prefix:"fas",iconName:"praying-hands",icon:[640,512,[],"f684","M272 191.91c-17.6 0-32 14.4-32 32v80c0 8.84-7.16 16-16 16s-16-7.16-16-16v-76.55c0-17.39 4.72-34.47 13.69-49.39l77.75-129.59c9.09-15.16 4.19-34.81-10.97-43.91-14.45-8.67-32.72-4.3-42.3 9.21-.2.23-.62.21-.79.48l-117.26 175.9C117.56 205.9 112 224.31 112 243.29v80.23l-90.12 30.04A31.974 31.974 0 0 0 0 383.91v96c0 10.82 8.52 32 32 32 2.69 0 5.41-.34 8.06-1.03l179.19-46.62C269.16 449.99 304 403.8 304 351.91v-128c0-17.6-14.4-32-32-32zm346.12 161.73L528 323.6v-80.23c0-18.98-5.56-37.39-16.12-53.23L394.62 14.25c-.18-.27-.59-.24-.79-.48-9.58-13.51-27.85-17.88-42.3-9.21-15.16 9.09-20.06 28.75-10.97 43.91l77.75 129.59c8.97 14.92 13.69 32 13.69 49.39V304c0 8.84-7.16 16-16 16s-16-7.16-16-16v-80c0-17.6-14.4-32-32-32s-32 14.4-32 32v128c0 51.89 34.84 98.08 84.75 112.34l179.19 46.62c2.66.69 5.38 1.03 8.06 1.03 23.48 0 32-21.18 32-32v-96c0-13.77-8.81-25.99-21.88-30.35z"]},faPrescription:{prefix:"fas",iconName:"prescription",icon:[384,512,[],"f5b1","M301.26 352l78.06-78.06c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0L256 306.74l-83.96-83.96C219.31 216.8 256 176.89 256 128c0-53.02-42.98-96-96-96H16C7.16 32 0 39.16 0 48v256c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-80h18.75l128 128-78.06 78.06c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0L256 397.25l78.06 78.06c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63L301.26 352zM64 96h96c17.64 0 32 14.36 32 32s-14.36 32-32 32H64V96z"]},faPrescriptionBottle:{prefix:"fas",iconName:"prescription-bottle",icon:[384,512,[],"f485","M32 192h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64h120c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H32v64c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v64zM360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24z"]},faPrescriptionBottleAlt:{prefix:"fas",iconName:"prescription-bottle-alt",icon:[384,512,[],"f486","M360 0H24C10.8 0 0 10.8 0 24v48c0 13.2 10.8 24 24 24h336c13.2 0 24-10.8 24-24V24c0-13.2-10.8-24-24-24zM32 480c0 17.6 14.4 32 32 32h256c17.6 0 32-14.4 32-32V128H32v352zm64-184c0-4.4 3.6-8 8-8h56v-56c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v56h56c4.4 0 8 3.6 8 8v48c0 4.4-3.6 8-8 8h-56v56c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8v-56h-56c-4.4 0-8-3.6-8-8v-48z"]},faPrint:{prefix:"fas",iconName:"print",icon:[512,512,[],"f02f","M448 192V77.25c0-8.49-3.37-16.62-9.37-22.63L393.37 9.37c-6-6-14.14-9.37-22.63-9.37H96C78.33 0 64 14.33 64 32v160c-35.35 0-64 28.65-64 64v112c0 8.84 7.16 16 16 16h48v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h48c8.84 0 16-7.16 16-16V256c0-35.35-28.65-64-64-64zm-64 256H128v-96h256v96zm0-224H128V64h192v48c0 8.84 7.16 16 16 16h48v96zm48 72c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faProcedures:{prefix:"fas",iconName:"procedures",icon:[640,512,[],"f487","M528 224H272c-8.8 0-16 7.2-16 16v144H64V144c0-8.8-7.2-16-16-16H16c-8.8 0-16 7.2-16 16v352c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-48h512v48c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V336c0-61.9-50.1-112-112-112zM136 96h126.1l27.6 55.2c5.9 11.8 22.7 11.8 28.6 0L368 51.8 390.1 96H512c8.8 0 16-7.2 16-16s-7.2-16-16-16H409.9L382.3 8.8C376.4-3 359.6-3 353.7 8.8L304 108.2l-19.9-39.8c-1.4-2.7-4.1-4.4-7.2-4.4H136c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8zm24 256c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"]},faProjectDiagram:{prefix:"fas",iconName:"project-diagram",icon:[640,512,[],"f542","M384 320H256c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V352c0-17.67-14.33-32-32-32zM192 32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v128c0 17.67 14.33 32 32 32h95.72l73.16 128.04C211.98 300.98 232.4 288 256 288h.28L192 175.51V128h224V64H192V32zM608 0H480c-17.67 0-32 14.33-32 32v128c0 17.67 14.33 32 32 32h128c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32z"]},faPumpMedical:{prefix:"fas",iconName:"pump-medical",icon:[384,512,[],"e06a","M235.51,159.82H84.24A64,64,0,0,0,20.51,218L.14,442a64,64,0,0,0,63.74,69.8h192A64,64,0,0,0,319.61,442L299.24,218A64,64,0,0,0,235.51,159.82Zm4.37,173.33a13.35,13.35,0,0,1-13.34,13.34h-40v40a13.33,13.33,0,0,1-13.33,13.33H146.54a13.33,13.33,0,0,1-13.33-13.33v-40h-40a13.34,13.34,0,0,1-13.33-13.34V306.49a13.33,13.33,0,0,1,13.33-13.34h40v-40a13.33,13.33,0,0,1,13.33-13.33h26.67a13.33,13.33,0,0,1,13.33,13.33v40h40a13.34,13.34,0,0,1,13.34,13.34ZM379.19,93.88,335.87,50.56a64,64,0,0,0-45.24-18.74H223.88a32,32,0,0,0-32-32h-64a32,32,0,0,0-32,32v96h128v-32h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.19,93.88Z"]},faPumpSoap:{prefix:"fas",iconName:"pump-soap",icon:[384,512,[],"e06b","M235.63,160H84.37a64,64,0,0,0-63.74,58.21L.27,442.21A64,64,0,0,0,64,512H256a64,64,0,0,0,63.74-69.79l-20.36-224A64,64,0,0,0,235.63,160ZM160,416c-33.12,0-60-26.33-60-58.75,0-25,35.7-75.47,52-97.27A10,10,0,0,1,168,260c16.33,21.8,52,72.27,52,97.27C220,389.67,193.12,416,160,416ZM379.31,94.06,336,50.74A64,64,0,0,0,290.75,32H224A32,32,0,0,0,192,0H128A32,32,0,0,0,96,32v96H224V96h66.75l43.31,43.31a16,16,0,0,0,22.63,0l22.62-22.62A16,16,0,0,0,379.31,94.06Z"]},faPuzzlePiece:{prefix:"fas",iconName:"puzzle-piece",icon:[576,512,[],"f12e","M519.442 288.651c-41.519 0-59.5 31.593-82.058 31.593C377.409 320.244 432 144 432 144s-196.288 80-196.288-3.297c0-35.827 36.288-46.25 36.288-85.985C272 19.216 243.885 0 210.539 0c-34.654 0-66.366 18.891-66.366 56.346 0 41.364 31.711 59.277 31.711 81.75C175.885 207.719 0 166.758 0 166.758v333.237s178.635 41.047 178.635-28.662c0-22.473-40-40.107-40-81.471 0-37.456 29.25-56.346 63.577-56.346 33.673 0 61.788 19.216 61.788 54.717 0 39.735-36.288 50.158-36.288 85.985 0 60.803 129.675 25.73 181.23 25.73 0 0-34.725-120.101 25.827-120.101 35.962 0 46.423 36.152 86.308 36.152C556.712 416 576 387.99 576 354.443c0-34.199-18.962-65.792-56.558-65.792z"]},faQrcode:{prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 224h192V32H0v192zM64 96h64v64H64V96zm192-64v192h192V32H256zm128 128h-64V96h64v64zM0 480h192V288H0v192zm64-128h64v64H64v-64zm352-64h32v128h-96v-32h-32v96h-64V288h96v32h64v-32zm0 160h32v32h-32v-32zm-64 0h32v32h-32v-32z"]},faQuestion:{prefix:"fas",iconName:"question",icon:[384,512,[],"f128","M202.021 0C122.202 0 70.503 32.703 29.914 91.026c-7.363 10.58-5.093 25.086 5.178 32.874l43.138 32.709c10.373 7.865 25.132 6.026 33.253-4.148 25.049-31.381 43.63-49.449 82.757-49.449 30.764 0 68.816 19.799 68.816 49.631 0 22.552-18.617 34.134-48.993 51.164-35.423 19.86-82.299 44.576-82.299 106.405V320c0 13.255 10.745 24 24 24h72.471c13.255 0 24-10.745 24-24v-5.773c0-42.86 125.268-44.645 125.268-160.627C377.504 66.256 286.902 0 202.021 0zM192 373.459c-38.196 0-69.271 31.075-69.271 69.271 0 38.195 31.075 69.27 69.271 69.27s69.271-31.075 69.271-69.271-31.075-69.27-69.271-69.27z"]},faQuestionCircle:{prefix:"fas",iconName:"question-circle",icon:[512,512,[],"f059","M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zM262.655 90c-54.497 0-89.255 22.957-116.549 63.758-3.536 5.286-2.353 12.415 2.715 16.258l34.699 26.31c5.205 3.947 12.621 3.008 16.665-2.122 17.864-22.658 30.113-35.797 57.303-35.797 20.429 0 45.698 13.148 45.698 32.958 0 14.976-12.363 22.667-32.534 33.976C247.128 238.528 216 254.941 216 296v4c0 6.627 5.373 12 12 12h56c6.627 0 12-5.373 12-12v-1.333c0-28.462 83.186-29.647 83.186-106.667 0-58.002-60.165-102-116.531-102zM256 338c-25.365 0-46 20.635-46 46 0 25.364 20.635 46 46 46s46-20.636 46-46c0-25.365-20.635-46-46-46z"]},faQuidditch:{prefix:"fas",iconName:"quidditch",icon:[640,512,[],"f458","M256.5 216.8L343.2 326s-16.6 102.4-76.6 150.1C206.7 523.8 0 510.2 0 510.2s3.8-23.1 11-55.4l94.6-112.2c4-4.7-.9-11.6-6.6-9.5l-60.4 22.1c14.4-41.7 32.7-80 54.6-97.5 59.9-47.8 163.3-40.9 163.3-40.9zm238 135c-44 0-79.8 35.8-79.8 79.9 0 44.1 35.7 79.9 79.8 79.9 44.1 0 79.8-35.8 79.8-79.9 0-44.2-35.8-79.9-79.8-79.9zM636.5 31L616.7 6c-5.5-6.9-15.5-8-22.4-2.6L361.8 181.3l-34.1-43c-5.1-6.4-15.1-5.2-18.6 2.2l-25.3 54.6 86.7 109.2 58.8-12.4c8-1.7 11.4-11.2 6.3-17.6l-34.1-42.9L634 53.5c6.9-5.5 8-15.6 2.5-22.5z"]},faQuoteLeft:{prefix:"fas",iconName:"quote-left",icon:[512,512,[],"f10d","M464 256h-80v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8c-88.4 0-160 71.6-160 160v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zm-288 0H96v-64c0-35.3 28.7-64 64-64h8c13.3 0 24-10.7 24-24V56c0-13.3-10.7-24-24-24h-8C71.6 32 0 103.6 0 192v240c0 26.5 21.5 48 48 48h128c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]},faQuoteRight:{prefix:"fas",iconName:"quote-right",icon:[512,512,[],"f10e","M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"]},faQuran:{prefix:"fas",iconName:"quran",icon:[448,512,[],"f687","M448 358.4V25.6c0-16-9.6-25.6-25.6-25.6H96C41.6 0 0 41.6 0 96v320c0 54.4 41.6 96 96 96h326.4c12.8 0 25.6-9.6 25.6-25.6v-16c0-6.4-3.2-12.8-9.6-19.2-3.2-16-3.2-60.8 0-73.6 6.4-3.2 9.6-9.6 9.6-19.2zM301.08 145.82c.6-1.21 1.76-1.82 2.92-1.82s2.32.61 2.92 1.82l11.18 22.65 25 3.63c2.67.39 3.74 3.67 1.81 5.56l-18.09 17.63 4.27 24.89c.36 2.11-1.31 3.82-3.21 3.82-.5 0-1.02-.12-1.52-.38L304 211.87l-22.36 11.75c-.5.26-1.02.38-1.52.38-1.9 0-3.57-1.71-3.21-3.82l4.27-24.89-18.09-17.63c-1.94-1.89-.87-5.17 1.81-5.56l24.99-3.63 11.19-22.65zm-57.89-69.01c13.67 0 27.26 2.49 40.38 7.41a6.775 6.775 0 1 1-2.38 13.12c-.67 0-3.09-.21-4.13-.21-52.31 0-94.86 42.55-94.86 94.86 0 52.3 42.55 94.86 94.86 94.86 1.03 0 3.48-.21 4.13-.21 3.93 0 6.8 3.14 6.8 6.78 0 2.98-1.94 5.51-4.62 6.42-13.07 4.87-26.59 7.34-40.19 7.34C179.67 307.19 128 255.51 128 192c0-63.52 51.67-115.19 115.19-115.19zM380.8 448H96c-19.2 0-32-12.8-32-32s16-32 32-32h284.8v64z"]},faRadiation:{prefix:"fas",iconName:"radiation",icon:[496,512,[],"f7b9","M328.2 255.8h151.6c9.1 0 16.8-7.7 16.2-16.8-5.1-75.8-44.4-142.2-102.5-184.2-7.4-5.3-17.9-2.9-22.7 4.8L290.4 188c22.6 14.3 37.8 39.2 37.8 67.8zm-37.8 67.7c-12.3 7.7-26.8 12.4-42.4 12.4-15.6 0-30-4.7-42.4-12.4L125.2 452c-4.8 7.7-2.4 18.1 5.6 22.4C165.7 493.2 205.6 504 248 504s82.3-10.8 117.2-29.6c8-4.3 10.4-14.8 5.6-22.4l-80.4-128.5zM248 303.8c26.5 0 48-21.5 48-48s-21.5-48-48-48-48 21.5-48 48 21.5 48 48 48zm-231.8-48h151.6c0-28.6 15.2-53.5 37.8-67.7L125.2 59.7c-4.8-7.7-15.3-10.2-22.7-4.8C44.4 96.9 5.1 163.3 0 239.1c-.6 9 7.1 16.7 16.2 16.7z"]},faRadiationAlt:{prefix:"fas",iconName:"radiation-alt",icon:[496,512,[],"f7ba","M312 256h79.1c9.2 0 16.9-7.7 16-16.8-4.6-43.6-27-81.8-59.5-107.8-7.6-6.1-18.8-4.5-24 3.8L281.9 202c18 11.2 30.1 31.2 30.1 54zm-97.8 54.1L172.4 377c-4.9 7.8-2.4 18.4 5.8 22.5 21.1 10.4 44.7 16.5 69.8 16.5s48.7-6.1 69.9-16.5c8.2-4.1 10.6-14.7 5.8-22.5l-41.8-66.9c-9.8 6.2-21.4 9.9-33.8 9.9s-24.1-3.7-33.9-9.9zM104.9 256H184c0-22.8 12.1-42.8 30.2-54.1l-41.7-66.8c-5.2-8.3-16.4-9.9-24-3.8-32.6 26-54.9 64.2-59.5 107.8-1.1 9.2 6.7 16.9 15.9 16.9zM248 504c137 0 248-111 248-248S385 8 248 8 0 119 0 256s111 248 248 248zm0-432c101.5 0 184 82.5 184 184s-82.5 184-184 184S64 357.5 64 256 146.5 72 248 72zm0 216c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]},faRainbow:{prefix:"fas",iconName:"rainbow",icon:[576,512,[],"f75b","M268.3 32.7C115.4 42.9 0 176.9 0 330.2V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C64 186.8 180.9 80.3 317.5 97.9 430.4 112.4 512 214 512 327.8V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-165.3-140-298.6-307.7-287.3zm-5.6 96.9C166 142 96 229.1 96 326.7V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-74.8 64.5-134.8 140.8-127.4 66.5 6.5 115.2 66.2 115.2 133.1V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-114.2-100.2-205.4-217.3-190.4zm6.2 96.3c-45.6 8.9-76.9 51.5-76.9 97.9V464c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-17.6 14.3-32 32-32s32 14.4 32 32v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320c0-59.2-53.8-106-115.1-94.1z"]},faRandom:{prefix:"fas",iconName:"random",icon:[512,512,[],"f074","M504.971 359.029c9.373 9.373 9.373 24.569 0 33.941l-80 79.984c-15.01 15.01-40.971 4.49-40.971-16.971V416h-58.785a12.004 12.004 0 0 1-8.773-3.812l-70.556-75.596 53.333-57.143L352 336h32v-39.981c0-21.438 25.943-31.998 40.971-16.971l80 79.981zM12 176h84l52.781 56.551 53.333-57.143-70.556-75.596A11.999 11.999 0 0 0 122.785 96H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12zm372 0v39.984c0 21.46 25.961 31.98 40.971 16.971l80-79.984c9.373-9.373 9.373-24.569 0-33.941l-80-79.981C409.943 24.021 384 34.582 384 56.019V96h-58.785a12.004 12.004 0 0 0-8.773 3.812L96 336H12c-6.627 0-12 5.373-12 12v56c0 6.627 5.373 12 12 12h110.785c3.326 0 6.503-1.381 8.773-3.812L352 176h32z"]},faReceipt:{prefix:"fas",iconName:"receipt",icon:[384,512,[],"f543","M358.4 3.2L320 48 265.6 3.2a15.9 15.9 0 0 0-19.2 0L192 48 137.6 3.2a15.9 15.9 0 0 0-19.2 0L64 48 25.6 3.2C15-4.7 0 2.8 0 16v480c0 13.2 15 20.7 25.6 12.8L64 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L192 464l54.4 44.8a15.9 15.9 0 0 0 19.2 0L320 464l38.4 44.8c10.5 7.9 25.6.4 25.6-12.8V16c0-13.2-15-20.7-25.6-12.8zM320 360c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16zm0-96c0 4.4-3.6 8-8 8H72c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h240c4.4 0 8 3.6 8 8v16z"]},faRecordVinyl:{prefix:"fas",iconName:"record-vinyl",icon:[512,512,[],"f8d9","M256 152a104 104 0 1 0 104 104 104 104 0 0 0-104-104zm0 128a24 24 0 1 1 24-24 24 24 0 0 1-24 24zm0-272C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 376a128 128 0 1 1 128-128 128 128 0 0 1-128 128z"]},faRecycle:{prefix:"fas",iconName:"recycle",icon:[512,512,[],"f1b8","M184.561 261.903c3.232 13.997-12.123 24.635-24.068 17.168l-40.736-25.455-50.867 81.402C55.606 356.273 70.96 384 96.012 384H148c6.627 0 12 5.373 12 12v40c0 6.627-5.373 12-12 12H96.115c-75.334 0-121.302-83.048-81.408-146.88l50.822-81.388-40.725-25.448c-12.081-7.547-8.966-25.961 4.879-29.158l110.237-25.45c8.611-1.988 17.201 3.381 19.189 11.99l25.452 110.237zm98.561-182.915l41.289 66.076-40.74 25.457c-12.051 7.528-9 25.953 4.879 29.158l110.237 25.45c8.672 1.999 17.215-3.438 19.189-11.99l25.45-110.237c3.197-13.844-11.99-24.719-24.068-17.168l-40.687 25.424-41.263-66.082c-37.521-60.033-125.209-60.171-162.816 0l-17.963 28.766c-3.51 5.62-1.8 13.021 3.82 16.533l33.919 21.195c5.62 3.512 13.024 1.803 16.536-3.817l17.961-28.743c12.712-20.341 41.973-19.676 54.257-.022zM497.288 301.12l-27.515-44.065c-3.511-5.623-10.916-7.334-16.538-3.821l-33.861 21.159c-5.62 3.512-7.33 10.915-3.818 16.536l27.564 44.112c13.257 21.211-2.057 48.96-27.136 48.96H320V336.02c0-14.213-17.242-21.383-27.313-11.313l-80 79.981c-6.249 6.248-6.249 16.379 0 22.627l80 79.989C302.689 517.308 320 510.3 320 495.989V448h95.88c75.274 0 121.335-82.997 81.408-146.88z"]},faRedo:{prefix:"fas",iconName:"redo",icon:[512,512,[],"f01e","M500.33 0h-47.41a12 12 0 0 0-12 12.57l4 82.76A247.42 247.42 0 0 0 256 8C119.34 8 7.9 119.53 8 256.19 8.1 393.07 119.1 504 256 504a247.1 247.1 0 0 0 166.18-63.91 12 12 0 0 0 .48-17.43l-34-34a12 12 0 0 0-16.38-.55A176 176 0 1 1 402.1 157.8l-101.53-4.87a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12h200.33a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12z"]},faRedoAlt:{prefix:"fas",iconName:"redo-alt",icon:[512,512,[],"f2f9","M256.455 8c66.269.119 126.437 26.233 170.859 68.685l35.715-35.715C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.75c-30.864-28.899-70.801-44.907-113.23-45.273-92.398-.798-170.283 73.977-169.484 169.442C88.764 348.009 162.184 424 256 424c41.127 0 79.997-14.678 110.629-41.556 4.743-4.161 11.906-3.908 16.368.553l39.662 39.662c4.872 4.872 4.631 12.815-.482 17.433C378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8z"]},faRegistered:{prefix:"fas",iconName:"registered",icon:[512,512,[],"f25d","M285.363 207.475c0 18.6-9.831 28.431-28.431 28.431h-29.876v-56.14h23.378c28.668 0 34.929 8.773 34.929 27.709zM504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM363.411 360.414c-46.729-84.825-43.299-78.636-44.702-80.98 23.432-15.172 37.945-42.979 37.945-74.486 0-54.244-31.5-89.252-105.498-89.252h-70.667c-13.255 0-24 10.745-24 24V372c0 13.255 10.745 24 24 24h22.567c13.255 0 24-10.745 24-24v-71.663h25.556l44.129 82.937a24.001 24.001 0 0 0 21.188 12.727h24.464c18.261-.001 29.829-19.591 21.018-35.587z"]},faRemoveFormat:{prefix:"fas",iconName:"remove-format",icon:[640,512,[],"f87d","M336 416h-11.17l9.26-27.77L267 336.4 240.49 416H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm297.82 42.1L377 259.59 426.17 112H544v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16H176a16 16 0 0 0-16 16v43.9L45.46 3.38A16 16 0 0 0 23 6.19L3.37 31.46a16 16 0 0 0 2.81 22.45l588.36 454.72a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zM309.91 207.76L224 141.36V112h117.83z"]},faReply:{prefix:"fas",iconName:"reply",icon:[512,512,[],"f3e5","M8.309 189.836L184.313 37.851C199.719 24.546 224 35.347 224 56.015v80.053c160.629 1.839 288 34.032 288 186.258 0 61.441-39.581 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 45.344-145.012-21.507-183.51-176.59-185.742V360c0 20.7-24.3 31.453-39.687 18.164l-176.004-152c-11.071-9.562-11.086-26.753 0-36.328z"]},faReplyAll:{prefix:"fas",iconName:"reply-all",icon:[576,512,[],"f122","M136.309 189.836L312.313 37.851C327.72 24.546 352 35.348 352 56.015v82.763c129.182 10.231 224 52.212 224 183.548 0 61.441-39.582 122.309-83.333 154.132-13.653 9.931-33.111-2.533-28.077-18.631 38.512-123.162-3.922-169.482-112.59-182.015v84.175c0 20.701-24.3 31.453-39.687 18.164L136.309 226.164c-11.071-9.561-11.086-26.753 0-36.328zm-128 36.328L184.313 378.15C199.7 391.439 224 380.687 224 359.986v-15.818l-108.606-93.785A55.96 55.96 0 0 1 96 207.998a55.953 55.953 0 0 1 19.393-42.38L224 71.832V56.015c0-20.667-24.28-31.469-39.687-18.164L8.309 189.836c-11.086 9.575-11.071 26.767 0 36.328z"]},faRepublican:{prefix:"fas",iconName:"republican",icon:[640,512,[],"f75e","M544 192c0-88.4-71.6-160-160-160H160C71.6 32 0 103.6 0 192v64h544v-64zm-367.7-21.6l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L128 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L272 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zm144 0l-19.8 19.3 4.7 27.3c.8 4.9-4.3 8.6-8.7 6.3L416 210.4l-24.5 12.9c-4.3 2.3-9.5-1.4-8.7-6.3l4.7-27.3-19.8-19.3c-3.6-3.5-1.6-9.5 3.3-10.2l27.4-4 12.2-24.8c2.2-4.5 8.6-4.4 10.7 0l12.2 24.8 27.4 4c5 .7 6.9 6.7 3.4 10.2zM624 320h-32c-8.8 0-16 7.2-16 16v64c0 8.8-7.2 16-16 16s-16-7.2-16-16V288H0v176c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16v-80h192v80c0 8.8 7.2 16 16 16h96c8.8 0 16-7.2 16-16V352h32v43.3c0 41.8 30 80.1 71.6 84.3 47.8 4.9 88.4-32.7 88.4-79.6v-64c0-8.8-7.2-16-16-16z"]},faRestroom:{prefix:"fas",iconName:"restroom",icon:[640,512,[],"f7bd","M128 128c35.3 0 64-28.7 64-64S163.3 0 128 0 64 28.7 64 64s28.7 64 64 64zm384 0c35.3 0 64-28.7 64-64S547.3 0 512 0s-64 28.7-64 64 28.7 64 64 64zm127.3 226.5l-45.6-185.8c-3.3-13.5-15.5-23-29.8-24.2-15 9.7-32.8 15.5-52 15.5-19.2 0-37-5.8-52-15.5-14.3 1.2-26.5 10.7-29.8 24.2l-45.6 185.8C381 369.6 393 384 409.2 384H464v104c0 13.3 10.7 24 24 24h48c13.3 0 24-10.7 24-24V384h54.8c16.2 0 28.2-14.4 24.5-29.5zM336 0h-32c-8.8 0-16 7.2-16 16v480c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zM180.1 144.4c-15 9.8-32.9 15.6-52.1 15.6-19.2 0-37.1-5.8-52.1-15.6C51.3 146.5 32 166.9 32 192v136c0 13.3 10.7 24 24 24h8v136c0 13.3 10.7 24 24 24h80c13.3 0 24-10.7 24-24V352h8c13.3 0 24-10.7 24-24V192c0-25.1-19.3-45.5-43.9-47.6z"]},faRetweet:{prefix:"fas",iconName:"retweet",icon:[640,512,[],"f079","M629.657 343.598L528.971 444.284c-9.373 9.372-24.568 9.372-33.941 0L394.343 343.598c-9.373-9.373-9.373-24.569 0-33.941l10.823-10.823c9.562-9.562 25.133-9.34 34.419.492L480 342.118V160H292.451a24.005 24.005 0 0 1-16.971-7.029l-16-16C244.361 121.851 255.069 96 276.451 96H520c13.255 0 24 10.745 24 24v222.118l40.416-42.792c9.285-9.831 24.856-10.054 34.419-.492l10.823 10.823c9.372 9.372 9.372 24.569-.001 33.941zm-265.138 15.431A23.999 23.999 0 0 0 347.548 352H160V169.881l40.416 42.792c9.286 9.831 24.856 10.054 34.419.491l10.822-10.822c9.373-9.373 9.373-24.569 0-33.941L144.971 67.716c-9.373-9.373-24.569-9.373-33.941 0L10.343 168.402c-9.373 9.373-9.373 24.569 0 33.941l10.822 10.822c9.562 9.562 25.133 9.34 34.419-.491L96 169.881V392c0 13.255 10.745 24 24 24h243.549c21.382 0 32.09-25.851 16.971-40.971l-16.001-16z"]},faRibbon:{prefix:"fas",iconName:"ribbon",icon:[448,512,[],"f4d6","M6.1 444.3c-9.6 10.8-7.5 27.6 4.5 35.7l68.8 27.9c9.9 6.7 23.3 5 31.3-3.8l91.8-101.9-79.2-87.9-117.2 130zm435.8 0s-292-324.6-295.4-330.1c15.4-8.4 40.2-17.9 77.5-17.9s62.1 9.5 77.5 17.9c-3.3 5.6-56 64.6-56 64.6l79.1 87.7 34.2-38c28.7-31.9 33.3-78.6 11.4-115.5l-43.7-73.5c-4.3-7.2-9.9-13.3-16.8-18-40.7-27.6-127.4-29.7-171.4 0-6.9 4.7-12.5 10.8-16.8 18l-43.6 73.2c-1.5 2.5-37.1 62.2 11.5 116L337.5 504c8 8.9 21.4 10.5 31.3 3.8l68.8-27.9c11.9-8 14-24.8 4.3-35.6z"]},faRing:{prefix:"fas",iconName:"ring",icon:[512,512,[],"f70b","M256 64C110.06 64 0 125.91 0 208v98.13C0 384.48 114.62 448 256 448s256-63.52 256-141.87V208c0-82.09-110.06-144-256-144zm0 64c106.04 0 192 35.82 192 80 0 9.26-3.97 18.12-10.91 26.39C392.15 208.21 328.23 192 256 192s-136.15 16.21-181.09 42.39C67.97 226.12 64 217.26 64 208c0-44.18 85.96-80 192-80zM120.43 264.64C155.04 249.93 201.64 240 256 240s100.96 9.93 135.57 24.64C356.84 279.07 308.93 288 256 288s-100.84-8.93-135.57-23.36z"]},faRoad:{prefix:"fas",iconName:"road",icon:[576,512,[],"f018","M573.19 402.67l-139.79-320C428.43 71.29 417.6 64 405.68 64h-97.59l2.45 23.16c.5 4.72-3.21 8.84-7.96 8.84h-29.16c-4.75 0-8.46-4.12-7.96-8.84L267.91 64h-97.59c-11.93 0-22.76 7.29-27.73 18.67L2.8 402.67C-6.45 423.86 8.31 448 30.54 448h196.84l10.31-97.68c.86-8.14 7.72-14.32 15.91-14.32h68.8c8.19 0 15.05 6.18 15.91 14.32L348.62 448h196.84c22.23 0 36.99-24.14 27.73-45.33zM260.4 135.16a8 8 0 0 1 7.96-7.16h39.29c4.09 0 7.53 3.09 7.96 7.16l4.6 43.58c.75 7.09-4.81 13.26-11.93 13.26h-40.54c-7.13 0-12.68-6.17-11.93-13.26l4.59-43.58zM315.64 304h-55.29c-9.5 0-16.91-8.23-15.91-17.68l5.07-48c.86-8.14 7.72-14.32 15.91-14.32h45.15c8.19 0 15.05 6.18 15.91 14.32l5.07 48c1 9.45-6.41 17.68-15.91 17.68z"]},faRobot:{prefix:"fas",iconName:"robot",icon:[640,512,[],"f544","M32,224H64V416H32A31.96166,31.96166,0,0,1,0,384V256A31.96166,31.96166,0,0,1,32,224Zm512-48V448a64.06328,64.06328,0,0,1-64,64H160a64.06328,64.06328,0,0,1-64-64V176a79.974,79.974,0,0,1,80-80H288V32a32,32,0,0,1,64,0V96H464A79.974,79.974,0,0,1,544,176ZM264,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,264,256Zm-8,128H192v32h64Zm96,0H288v32h64ZM456,256a40,40,0,1,0-40,40A39.997,39.997,0,0,0,456,256Zm-8,128H384v32h64ZM640,256V384a31.96166,31.96166,0,0,1-32,32H576V224h32A31.96166,31.96166,0,0,1,640,256Z"]},faRocket:{prefix:"fas",iconName:"rocket",icon:[512,512,[],"f135","M505.12019,19.09375c-1.18945-5.53125-6.65819-11-12.207-12.1875C460.716,0,435.507,0,410.40747,0,307.17523,0,245.26909,55.20312,199.05238,128H94.83772c-16.34763.01562-35.55658,11.875-42.88664,26.48438L2.51562,253.29688A28.4,28.4,0,0,0,0,264a24.00867,24.00867,0,0,0,24.00582,24H127.81618l-22.47457,22.46875c-11.36521,11.36133-12.99607,32.25781,0,45.25L156.24582,406.625c11.15623,11.1875,32.15619,13.15625,45.27726,0l22.47457-22.46875V488a24.00867,24.00867,0,0,0,24.00581,24,28.55934,28.55934,0,0,0,10.707-2.51562l98.72834-49.39063c14.62888-7.29687,26.50776-26.5,26.50776-42.85937V312.79688c72.59753-46.3125,128.03493-108.40626,128.03493-211.09376C512.07526,76.5,512.07526,51.29688,505.12019,19.09375ZM384.04033,168A40,40,0,1,1,424.05,128,40.02322,40.02322,0,0,1,384.04033,168Z"]},faRoute:{prefix:"fas",iconName:"route",icon:[512,512,[],"f4d7","M416 320h-96c-17.6 0-32-14.4-32-32s14.4-32 32-32h96s96-107 96-160-43-96-96-96-96 43-96 96c0 25.5 22.2 63.4 45.3 96H320c-52.9 0-96 43.1-96 96s43.1 96 96 96h96c17.6 0 32 14.4 32 32s-14.4 32-32 32H185.5c-16 24.8-33.8 47.7-47.3 64H416c52.9 0 96-43.1 96-96s-43.1-96-96-96zm0-256c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM96 256c-53 0-96 43-96 96s96 160 96 160 96-107 96-160-43-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faRss:{prefix:"fas",iconName:"rss",icon:[448,512,[],"f09e","M128.081 415.959c0 35.369-28.672 64.041-64.041 64.041S0 451.328 0 415.959s28.672-64.041 64.041-64.041 64.04 28.673 64.04 64.041zm175.66 47.25c-8.354-154.6-132.185-278.587-286.95-286.95C7.656 175.765 0 183.105 0 192.253v48.069c0 8.415 6.49 15.472 14.887 16.018 111.832 7.284 201.473 96.702 208.772 208.772.547 8.397 7.604 14.887 16.018 14.887h48.069c9.149.001 16.489-7.655 15.995-16.79zm144.249.288C439.596 229.677 251.465 40.445 16.503 32.01 7.473 31.686 0 38.981 0 48.016v48.068c0 8.625 6.835 15.645 15.453 15.999 191.179 7.839 344.627 161.316 352.465 352.465.353 8.618 7.373 15.453 15.999 15.453h48.068c9.034-.001 16.329-7.474 16.005-16.504z"]},faRssSquare:{prefix:"fas",iconName:"rss-square",icon:[448,512,[],"f143","M400 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM112 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm157.533 0h-34.335c-6.011 0-11.051-4.636-11.442-10.634-5.214-80.05-69.243-143.92-149.123-149.123-5.997-.39-10.633-5.431-10.633-11.441v-34.335c0-6.535 5.468-11.777 11.994-11.425 110.546 5.974 198.997 94.536 204.964 204.964.352 6.526-4.89 11.994-11.425 11.994zm103.027 0h-34.334c-6.161 0-11.175-4.882-11.427-11.038-5.598-136.535-115.204-246.161-251.76-251.76C68.882 152.949 64 147.935 64 141.774V107.44c0-6.454 5.338-11.664 11.787-11.432 167.83 6.025 302.21 141.191 308.205 308.205.232 6.449-4.978 11.787-11.432 11.787z"]},faRubleSign:{prefix:"fas",iconName:"ruble-sign",icon:[384,512,[],"f158","M239.36 320C324.48 320 384 260.542 384 175.071S324.48 32 239.36 32H76c-6.627 0-12 5.373-12 12v206.632H12c-6.627 0-12 5.373-12 12V308c0 6.627 5.373 12 12 12h52v32H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h52v52c0 6.627 5.373 12 12 12h58.56c6.627 0 12-5.373 12-12v-52H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12H146.56v-32h92.8zm-92.8-219.252h78.72c46.72 0 74.88 29.11 74.88 74.323 0 45.832-28.16 75.561-76.16 75.561h-77.44V100.748z"]},faRuler:{prefix:"fas",iconName:"ruler",icon:[640,512,[],"f545","M635.7 167.2L556.1 31.7c-8.8-15-28.3-20.1-43.5-11.5l-69 39.1L503.3 161c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L416 75l-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L333.2 122 278 153.3 337.8 255c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-59.7-101.7-55.2 31.3 27.9 47.4c2.2 3.8.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9l-27.9-47.5-55.2 31.3 59.7 101.7c2.2 3.7.9 8.5-2.9 10.7l-13.8 7.8c-3.8 2.2-8.7.9-10.9-2.9L84.9 262.9l-69 39.1C.7 310.7-4.6 329.8 4.2 344.8l79.6 135.6c8.8 15 28.3 20.1 43.5 11.5L624.1 210c15.2-8.6 20.4-27.8 11.6-42.8z"]},faRulerCombined:{prefix:"fas",iconName:"ruler-combined",icon:[512,512,[],"f546","M160 288h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56v-64h-56c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h56V96h-56c-4.42 0-8-3.58-8-8V72c0-4.42 3.58-8 8-8h56V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 2.77.91 5.24 1.57 7.8L160 329.38V288zm320 64h-32v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-64v56c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-56h-41.37L24.2 510.43c2.56.66 5.04 1.57 7.8 1.57h448c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},faRulerHorizontal:{prefix:"fas",iconName:"ruler-horizontal",icon:[576,512,[],"f547","M544 128h-48v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8h-16c-4.42 0-8-3.58-8-8v-88h-64v88c0 4.42-3.58 8-8 8H88c-4.42 0-8-3.58-8-8v-88H32c-17.67 0-32 14.33-32 32v192c0 17.67 14.33 32 32 32h512c17.67 0 32-14.33 32-32V160c0-17.67-14.33-32-32-32z"]},faRulerVertical:{prefix:"fas",iconName:"ruler-vertical",icon:[256,512,[],"f548","M168 416c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88v-64h-88c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h88V32c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v448c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64h-88z"]},faRunning:{prefix:"fas",iconName:"running",icon:[416,512,[],"f70c","M272 96c26.51 0 48-21.49 48-48S298.51 0 272 0s-48 21.49-48 48 21.49 48 48 48zM113.69 317.47l-14.8 34.52H32c-17.67 0-32 14.33-32 32s14.33 32 32 32h77.45c19.25 0 36.58-11.44 44.11-29.09l8.79-20.52-10.67-6.3c-17.32-10.23-30.06-25.37-37.99-42.61zM384 223.99h-44.03l-26.06-53.25c-12.5-25.55-35.45-44.23-61.78-50.94l-71.08-21.14c-28.3-6.8-57.77-.55-80.84 17.14l-39.67 30.41c-14.03 10.75-16.69 30.83-5.92 44.86s30.84 16.66 44.86 5.92l39.69-30.41c7.67-5.89 17.44-8 25.27-6.14l14.7 4.37-37.46 87.39c-12.62 29.48-1.31 64.01 26.3 80.31l84.98 50.17-27.47 87.73c-5.28 16.86 4.11 34.81 20.97 40.09 3.19 1 6.41 1.48 9.58 1.48 13.61 0 26.23-8.77 30.52-22.45l31.64-101.06c5.91-20.77-2.89-43.08-21.64-54.39l-61.24-36.14 31.31-78.28 20.27 41.43c8 16.34 24.92 26.89 43.11 26.89H384c17.67 0 32-14.33 32-32s-14.33-31.99-32-31.99z"]},faRupeeSign:{prefix:"fas",iconName:"rupee-sign",icon:[320,512,[],"f156","M308 96c6.627 0 12-5.373 12-12V44c0-6.627-5.373-12-12-12H12C5.373 32 0 37.373 0 44v44.748c0 6.627 5.373 12 12 12h85.28c27.308 0 48.261 9.958 60.97 27.252H12c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h158.757c-6.217 36.086-32.961 58.632-74.757 58.632H12c-6.627 0-12 5.373-12 12v53.012c0 3.349 1.4 6.546 3.861 8.818l165.052 152.356a12.001 12.001 0 0 0 8.139 3.182h82.562c10.924 0 16.166-13.408 8.139-20.818L116.871 319.906c76.499-2.34 131.144-53.395 138.318-127.906H308c6.627 0 12-5.373 12-12v-40c0-6.627-5.373-12-12-12h-58.69c-3.486-11.541-8.28-22.246-14.252-32H308z"]},faSadCry:{prefix:"fas",iconName:"sad-cry",icon:[496,512,[],"f5b3","M248 8C111 8 0 119 0 256c0 90.1 48.2 168.7 120 212.1V288c0-8.8 7.2-16 16-16s16 7.2 16 16v196.7c29.5 12.4 62 19.3 96 19.3s66.5-6.9 96-19.3V288c0-8.8 7.2-16 16-16s16 7.2 16 16v180.1C447.8 424.7 496 346 496 256 496 119 385 8 248 8zm-65.5 216.5c-14.8-13.2-46.2-13.2-61 0L112 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S208 197 212 222.2c.8 5-1.7 10-6.1 12.4-5.8 3.1-11.2.7-13.7-1.6l-9.7-8.5zM248 416c-26.5 0-48-28.7-48-64s21.5-64 48-64 48 28.7 48 64-21.5 64-48 64zm149.8-181.5c-5.8 3.1-11.2.7-13.7-1.6l-9.5-8.5c-14.8-13.2-46.2-13.2-61 0L304 233c-3.8 3.3-9.3 4-13.7 1.6-4.4-2.4-6.9-7.4-6.1-12.4 4-25.2 34.2-42.1 59.9-42.1S400 197 404 222.2c.6 4.9-1.8 9.9-6.2 12.3z"]},faSadTear:{prefix:"fas",iconName:"sad-tear",icon:[496,512,[],"f5b4","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zM152 416c-26.5 0-48-21-48-47 0-20 28.5-60.4 41.6-77.8 3.2-4.3 9.6-4.3 12.8 0C171.5 308.6 200 349 200 369c0 26-21.5 47-48 47zm16-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm170.2 154.2C315.8 367.4 282.9 352 248 352c-21.2 0-21.2-32 0-32 44.4 0 86.3 19.6 114.7 53.8 13.8 16.4-11.2 36.5-24.5 20.4z"]},faSatellite:{prefix:"fas",iconName:"satellite",icon:[512,512,[],"f7bf","M502.60969,310.04206l-96.70393,96.71625a31.88151,31.88151,0,0,1-45.00765,0L280.572,326.34115l-9.89231,9.90759a190.56343,190.56343,0,0,1-5.40716,168.52287c-4.50077,8.50115-16.39342,9.59505-23.20707,2.79725L134.54715,400.05428l-17.7999,17.79929c.70324,2.60972,1.60965,5.00067,1.60965,7.79793a32.00544,32.00544,0,1,1-32.00544-32.00434c2.79735,0,5.18838.90637,7.7982,1.60959l17.7999-17.79929L4.43129,269.94287c-6.798-6.81342-5.70409-18.6119,2.79735-23.20627a190.58161,190.58161,0,0,1,168.52864-5.407l9.79854-9.79821-80.31053-80.41716a32.002,32.002,0,0,1,0-45.09987L201.96474,9.29814A31.62639,31.62639,0,0,1,224.46868,0a31.99951,31.99951,0,0,1,22.59759,9.29814l80.32615,80.30777,47.805-47.89713a33.6075,33.6075,0,0,1,47.50808,0l47.50807,47.50645a33.63308,33.63308,0,0,1,0,47.50644l-47.805,47.89713L502.71908,265.036A31.78938,31.78938,0,0,1,502.60969,310.04206ZM219.56159,197.433l73.82505-73.82252-68.918-68.9-73.80942,73.80689Zm237.74352,90.106-68.90233-68.9156-73.825,73.82252,68.918,68.9Z"]},faSatelliteDish:{prefix:"fas",iconName:"satellite-dish",icon:[512,512,[],"f7c0","M305.44954,462.59c7.39157,7.29792,6.18829,20.09661-3.00038,25.00356-77.713,41.80281-176.72559,29.9105-242.34331-35.7082C-5.49624,386.28227-17.404,287.362,24.41381,209.554c4.89125-9.095,17.68975-10.29834,25.00318-3.00043L166.22872,323.36708l27.39411-27.39452c-.68759-2.60974-1.594-5.00071-1.594-7.81361a32.00407,32.00407,0,1,1,32.00407,32.00455c-2.79723,0-5.20378-.89075-7.79786-1.594l-27.40974,27.41015ZM511.9758,303.06732a16.10336,16.10336,0,0,1-16.002,17.00242H463.86031a15.96956,15.96956,0,0,1-15.89265-15.00213C440.46671,175.5492,336.45348,70.53427,207.03078,63.53328a15.84486,15.84486,0,0,1-15.00191-15.90852V16.02652A16.09389,16.09389,0,0,1,209.031.02425C372.25491,8.61922,503.47472,139.841,511.9758,303.06732Zm-96.01221-.29692a16.21093,16.21093,0,0,1-16.11142,17.29934H367.645a16.06862,16.06862,0,0,1-15.89265-14.70522c-6.90712-77.01094-68.118-138.91037-144.92467-145.22376a15.94,15.94,0,0,1-14.79876-15.89289V112.13393a16.134,16.134,0,0,1,17.29908-16.096C319.45132,104.5391,407.55627,192.64538,415.96359,302.7704Z"]},faSave:{prefix:"fas",iconName:"save",icon:[448,512,[],"f0c7","M433.941 129.941l-83.882-83.882A48 48 0 0 0 316.118 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48V163.882a48 48 0 0 0-14.059-33.941zM224 416c-35.346 0-64-28.654-64-64 0-35.346 28.654-64 64-64s64 28.654 64 64c0 35.346-28.654 64-64 64zm96-304.52V212c0 6.627-5.373 12-12 12H76c-6.627 0-12-5.373-12-12V108c0-6.627 5.373-12 12-12h228.52c3.183 0 6.235 1.264 8.485 3.515l3.48 3.48A11.996 11.996 0 0 1 320 111.48z"]},faSchool:{prefix:"fas",iconName:"school",icon:[640,512,[],"f549","M0 224v272c0 8.84 7.16 16 16 16h80V192H32c-17.67 0-32 14.33-32 32zm360-48h-24v-40c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v64c0 4.42 3.58 8 8 8h48c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm137.75-63.96l-160-106.67a32.02 32.02 0 0 0-35.5 0l-160 106.67A32.002 32.002 0 0 0 128 138.66V512h128V368c0-8.84 7.16-16 16-16h96c8.84 0 16 7.16 16 16v144h128V138.67c0-10.7-5.35-20.7-14.25-26.63zM320 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm288-64h-64v320h80c8.84 0 16-7.16 16-16V224c0-17.67-14.33-32-32-32z"]},faScrewdriver:{prefix:"fas",iconName:"screwdriver",icon:[512,512,[],"f54a","M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"]},faScroll:{prefix:"fas",iconName:"scroll",icon:[640,512,[],"f70e","M48 0C21.53 0 0 21.53 0 48v64c0 8.84 7.16 16 16 16h80V48C96 21.53 74.47 0 48 0zm208 412.57V352h288V96c0-52.94-43.06-96-96-96H111.59C121.74 13.41 128 29.92 128 48v368c0 38.87 34.65 69.65 74.75 63.12C234.22 474 256 444.46 256 412.57zM288 384v32c0 52.93-43.06 96-96 96h336c61.86 0 112-50.14 112-112 0-8.84-7.16-16-16-16H288z"]},faSdCard:{prefix:"fas",iconName:"sd-card",icon:[384,512,[],"f7c2","M320 0H128L0 128v320c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64zM160 160h-48V64h48v96zm80 0h-48V64h48v96zm80 0h-48V64h48v96z"]},faSearch:{prefix:"fas",iconName:"search",icon:[512,512,[],"f002","M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"]},faSearchDollar:{prefix:"fas",iconName:"search-dollar",icon:[512,512,[],"f688","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm27.11-152.54l-45.01-13.5c-5.16-1.55-8.77-6.78-8.77-12.73 0-7.27 5.3-13.19 11.8-13.19h28.11c4.56 0 8.96 1.29 12.82 3.72 3.24 2.03 7.36 1.91 10.13-.73l11.75-11.21c3.53-3.37 3.33-9.21-.57-12.14-9.1-6.83-20.08-10.77-31.37-11.35V112c0-4.42-3.58-8-8-8h-16c-4.42 0-8 3.58-8 8v16.12c-23.63.63-42.68 20.55-42.68 45.07 0 19.97 12.99 37.81 31.58 43.39l45.01 13.5c5.16 1.55 8.77 6.78 8.77 12.73 0 7.27-5.3 13.19-11.8 13.19h-28.1c-4.56 0-8.96-1.29-12.82-3.72-3.24-2.03-7.36-1.91-10.13.73l-11.75 11.21c-3.53 3.37-3.33 9.21.57 12.14 9.1 6.83 20.08 10.77 31.37 11.35V304c0 4.42 3.58 8 8 8h16c4.42 0 8-3.58 8-8v-16.12c23.63-.63 42.68-20.54 42.68-45.07 0-19.97-12.99-37.81-31.59-43.39z"]},faSearchLocation:{prefix:"fas",iconName:"search-location",icon:[512,512,[],"f689","M505.04 442.66l-99.71-99.69c-4.5-4.5-10.6-7-17-7h-16.3c27.6-35.3 44-79.69 44-127.99C416.03 93.09 322.92 0 208.02 0S0 93.09 0 207.98s93.11 207.98 208.02 207.98c48.3 0 92.71-16.4 128.01-44v16.3c0 6.4 2.5 12.5 7 17l99.71 99.69c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.59.1-33.99zm-297.02-90.7c-79.54 0-144-64.34-144-143.98 0-79.53 64.35-143.98 144-143.98 79.54 0 144 64.34 144 143.98 0 79.53-64.35 143.98-144 143.98zm.02-239.96c-40.78 0-73.84 33.05-73.84 73.83 0 32.96 48.26 93.05 66.75 114.86a9.24 9.24 0 0 0 14.18 0c18.49-21.81 66.75-81.89 66.75-114.86 0-40.78-33.06-73.83-73.84-73.83zm0 96c-13.26 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faSearchMinus:{prefix:"fas",iconName:"search-minus",icon:[512,512,[],"f010","M304 192v32c0 6.6-5.4 12-12 12H124c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h168c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]},faSearchPlus:{prefix:"fas",iconName:"search-plus",icon:[512,512,[],"f00e","M304 192v32c0 6.6-5.4 12-12 12h-56v56c0 6.6-5.4 12-12 12h-32c-6.6 0-12-5.4-12-12v-56h-56c-6.6 0-12-5.4-12-12v-32c0-6.6 5.4-12 12-12h56v-56c0-6.6 5.4-12 12-12h32c6.6 0 12 5.4 12 12v56h56c6.6 0 12 5.4 12 12zm201 284.7L476.7 505c-9.4 9.4-24.6 9.4-33.9 0L343 405.3c-4.5-4.5-7-10.6-7-17V372c-35.3 27.6-79.7 44-128 44C93.1 416 0 322.9 0 208S93.1 0 208 0s208 93.1 208 208c0 48.3-16.4 92.7-44 128h16.3c6.4 0 12.5 2.5 17 7l99.7 99.7c9.3 9.4 9.3 24.6 0 34zM344 208c0-75.2-60.8-136-136-136S72 132.8 72 208s60.8 136 136 136 136-60.8 136-136z"]},faSeedling:{prefix:"fas",iconName:"seedling",icon:[512,512,[],"f4d8","M64 96H0c0 123.7 100.3 224 224 224v144c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V320C288 196.3 187.7 96 64 96zm384-64c-84.2 0-157.4 46.5-195.7 115.2 27.7 30.2 48.2 66.9 59 107.6C424 243.1 512 147.9 512 32h-64z"]},faServer:{prefix:"fas",iconName:"server",icon:[512,512,[],"f233","M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z"]},faShapes:{prefix:"fas",iconName:"shapes",icon:[512,512,[],"f61f","M128,256A128,128,0,1,0,256,384,128,128,0,0,0,128,256Zm379-54.86L400.07,18.29a37.26,37.26,0,0,0-64.14,0L229,201.14C214.76,225.52,232.58,256,261.09,256H474.91C503.42,256,521.24,225.52,507,201.14ZM480,288H320a32,32,0,0,0-32,32V480a32,32,0,0,0,32,32H480a32,32,0,0,0,32-32V320A32,32,0,0,0,480,288Z"]},faShare:{prefix:"fas",iconName:"share",icon:[512,512,[],"f064","M503.691 189.836L327.687 37.851C312.281 24.546 288 35.347 288 56.015v80.053C127.371 137.907 0 170.1 0 322.326c0 61.441 39.581 122.309 83.333 154.132 13.653 9.931 33.111-2.533 28.077-18.631C66.066 312.814 132.917 274.316 288 272.085V360c0 20.7 24.3 31.453 39.687 18.164l176.004-152c11.071-9.562 11.086-26.753 0-36.328z"]},faShareAlt:{prefix:"fas",iconName:"share-alt",icon:[448,512,[],"f1e0","M352 320c-22.608 0-43.387 7.819-59.79 20.895l-102.486-64.054a96.551 96.551 0 0 0 0-41.683l102.486-64.054C308.613 184.181 329.392 192 352 192c53.019 0 96-42.981 96-96S405.019 0 352 0s-96 42.981-96 96c0 7.158.79 14.13 2.276 20.841L155.79 180.895C139.387 167.819 118.608 160 96 160c-53.019 0-96 42.981-96 96s42.981 96 96 96c22.608 0 43.387-7.819 59.79-20.895l102.486 64.054A96.301 96.301 0 0 0 256 416c0 53.019 42.981 96 96 96s96-42.981 96-96-42.981-96-96-96z"]},faShareAltSquare:{prefix:"fas",iconName:"share-alt-square",icon:[448,512,[],"f1e1","M448 80v352c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V80c0-26.51 21.49-48 48-48h352c26.51 0 48 21.49 48 48zM304 296c-14.562 0-27.823 5.561-37.783 14.671l-67.958-40.775a56.339 56.339 0 0 0 0-27.793l67.958-40.775C276.177 210.439 289.438 216 304 216c30.928 0 56-25.072 56-56s-25.072-56-56-56-56 25.072-56 56c0 4.797.605 9.453 1.74 13.897l-67.958 40.775C171.823 205.561 158.562 200 144 200c-30.928 0-56 25.072-56 56s25.072 56 56 56c14.562 0 27.823-5.561 37.783-14.671l67.958 40.775a56.088 56.088 0 0 0-1.74 13.897c0 30.928 25.072 56 56 56s56-25.072 56-56C360 321.072 334.928 296 304 296z"]},faShareSquare:{prefix:"fas",iconName:"share-square",icon:[576,512,[],"f14d","M568.482 177.448L424.479 313.433C409.3 327.768 384 317.14 384 295.985v-71.963c-144.575.97-205.566 35.113-164.775 171.353 4.483 14.973-12.846 26.567-25.006 17.33C155.252 383.105 120 326.488 120 269.339c0-143.937 117.599-172.5 264-173.312V24.012c0-21.174 25.317-31.768 40.479-17.448l144.003 135.988c10.02 9.463 10.028 25.425 0 34.896zM384 379.128V448H64V128h50.916a11.99 11.99 0 0 0 8.648-3.693c14.953-15.568 32.237-27.89 51.014-37.676C185.708 80.83 181.584 64 169.033 64H48C21.49 64 0 85.49 0 112v352c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-88.806c0-8.288-8.197-14.066-16.011-11.302a71.83 71.83 0 0 1-34.189 3.377c-7.27-1.046-13.8 4.514-13.8 11.859z"]},faShekelSign:{prefix:"fas",iconName:"shekel-sign",icon:[448,512,[],"f20b","M248 168v168c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V168c0-75.11-60.89-136-136-136H24C10.75 32 0 42.74 0 56v408c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112h112c30.93 0 56 25.07 56 56zM432 32h-48c-8.84 0-16 7.16-16 16v296c0 30.93-25.07 56-56 56H200V176c0-8.84-7.16-16-16-16h-48c-8.84 0-16 7.16-16 16v280c0 13.25 10.75 24 24 24h168c75.11 0 136-60.89 136-136V48c0-8.84-7.16-16-16-16z"]},faShieldAlt:{prefix:"fas",iconName:"shield-alt",icon:[512,512,[],"f3ed","M466.5 83.7l-192-80a48.15 48.15 0 0 0-36.9 0l-192 80C27.7 91.1 16 108.6 16 128c0 198.5 114.5 335.7 221.5 380.3 11.8 4.9 25.1 4.9 36.9 0C360.1 472.6 496 349.3 496 128c0-19.4-11.7-36.9-29.5-44.3zM256.1 446.3l-.1-381 175.9 73.3c-3.3 151.4-82.1 261.1-175.8 307.7z"]},faShieldVirus:{prefix:"fas",iconName:"shield-virus",icon:[512,512,[],"e06c","M224,192a16,16,0,1,0,16,16A16,16,0,0,0,224,192ZM466.5,83.68l-192-80A57.4,57.4,0,0,0,256.05,0a57.4,57.4,0,0,0-18.46,3.67l-192,80A47.93,47.93,0,0,0,16,128C16,326.5,130.5,463.72,237.5,508.32a48.09,48.09,0,0,0,36.91,0C360.09,472.61,496,349.3,496,128A48,48,0,0,0,466.5,83.68ZM384,256H371.88c-28.51,0-42.79,34.47-22.63,54.63l8.58,8.57a16,16,0,1,1-22.63,22.63l-8.57-8.58C306.47,313.09,272,327.37,272,355.88V368a16,16,0,0,1-32,0V355.88c0-28.51-34.47-42.79-54.63-22.63l-8.57,8.58a16,16,0,0,1-22.63-22.63l8.58-8.57c20.16-20.16,5.88-54.63-22.63-54.63H128a16,16,0,0,1,0-32h12.12c28.51,0,42.79-34.47,22.63-54.63l-8.58-8.57a16,16,0,0,1,22.63-22.63l8.57,8.58c20.16,20.16,54.63,5.88,54.63-22.63V112a16,16,0,0,1,32,0v12.12c0,28.51,34.47,42.79,54.63,22.63l8.57-8.58a16,16,0,0,1,22.63,22.63l-8.58,8.57C329.09,189.53,343.37,224,371.88,224H384a16,16,0,0,1,0,32Zm-96,0a16,16,0,1,0,16,16A16,16,0,0,0,288,256Z"]},faShip:{prefix:"fas",iconName:"ship",icon:[640,512,[],"f21a","M496.616 372.639l70.012-70.012c16.899-16.9 9.942-45.771-12.836-53.092L512 236.102V96c0-17.673-14.327-32-32-32h-64V24c0-13.255-10.745-24-24-24H248c-13.255 0-24 10.745-24 24v40h-64c-17.673 0-32 14.327-32 32v140.102l-41.792 13.433c-22.753 7.313-29.754 36.173-12.836 53.092l70.012 70.012C125.828 416.287 85.587 448 24 448c-13.255 0-24 10.745-24 24v16c0 13.255 10.745 24 24 24 61.023 0 107.499-20.61 143.258-59.396C181.677 487.432 216.021 512 256 512h128c39.979 0 74.323-24.568 88.742-59.396C508.495 491.384 554.968 512 616 512c13.255 0 24-10.745 24-24v-16c0-13.255-10.745-24-24-24-60.817 0-101.542-31.001-119.384-75.361zM192 128h256v87.531l-118.208-37.995a31.995 31.995 0 0 0-19.584 0L192 215.531V128z"]},faShippingFast:{prefix:"fas",iconName:"shipping-fast",icon:[640,512,[],"f48b","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H112C85.5 0 64 21.5 64 48v48H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h272c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H40c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H8c-4.4 0-8 3.6-8 8v16c0 4.4 3.6 8 8 8h208c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H64v128c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},faShoePrints:{prefix:"fas",iconName:"shoe-prints",icon:[640,512,[],"f54b","M192 160h32V32h-32c-35.35 0-64 28.65-64 64s28.65 64 64 64zM0 416c0 35.35 28.65 64 64 64h32V352H64c-35.35 0-64 28.65-64 64zm337.46-128c-34.91 0-76.16 13.12-104.73 32-24.79 16.38-44.52 32-104.73 32v128l57.53 15.97c26.21 7.28 53.01 13.12 80.31 15.05 32.69 2.31 65.6.67 97.58-6.2C472.9 481.3 512 429.22 512 384c0-64-84.18-96-174.54-96zM491.42 7.19C459.44.32 426.53-1.33 393.84.99c-27.3 1.93-54.1 7.77-80.31 15.04L256 32v128c60.2 0 79.94 15.62 104.73 32 28.57 18.88 69.82 32 104.73 32C555.82 224 640 192 640 128c0-45.22-39.1-97.3-148.58-120.81z"]},faShoppingBag:{prefix:"fas",iconName:"shopping-bag",icon:[448,512,[],"f290","M352 160v-32C352 57.42 294.579 0 224 0 153.42 0 96 57.42 96 128v32H0v272c0 44.183 35.817 80 80 80h288c44.183 0 80-35.817 80-80V160h-96zm-192-32c0-35.29 28.71-64 64-64s64 28.71 64 64v32H160v-32zm160 120c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zm-192 0c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24z"]},faShoppingBasket:{prefix:"fas",iconName:"shopping-basket",icon:[576,512,[],"f291","M576 216v16c0 13.255-10.745 24-24 24h-8l-26.113 182.788C514.509 462.435 494.257 480 470.37 480H105.63c-23.887 0-44.139-17.565-47.518-41.212L32 256h-8c-13.255 0-24-10.745-24-24v-16c0-13.255 10.745-24 24-24h67.341l106.78-146.821c10.395-14.292 30.407-17.453 44.701-7.058 14.293 10.395 17.453 30.408 7.058 44.701L170.477 192h235.046L326.12 82.821c-10.395-14.292-7.234-34.306 7.059-44.701 14.291-10.395 34.306-7.235 44.701 7.058L484.659 192H552c13.255 0 24 10.745 24 24zM312 392V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm112 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24zm-224 0V280c0-13.255-10.745-24-24-24s-24 10.745-24 24v112c0 13.255 10.745 24 24 24s24-10.745 24-24z"]},faShoppingCart:{prefix:"fas",iconName:"shopping-cart",icon:[576,512,[],"f07a","M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"]},faShower:{prefix:"fas",iconName:"shower",icon:[512,512,[],"f2cc","M304,320a16,16,0,1,0,16,16A16,16,0,0,0,304,320Zm32-96a16,16,0,1,0,16,16A16,16,0,0,0,336,224Zm32,64a16,16,0,1,0-16-16A16,16,0,0,0,368,288Zm-32,32a16,16,0,1,0-16-16A16,16,0,0,0,336,320Zm-32-64a16,16,0,1,0,16,16A16,16,0,0,0,304,256Zm128-32a16,16,0,1,0-16-16A16,16,0,0,0,432,224Zm-48,16a16,16,0,1,0,16-16A16,16,0,0,0,384,240Zm-16-48a16,16,0,1,0,16,16A16,16,0,0,0,368,192Zm96,32a16,16,0,1,0,16,16A16,16,0,0,0,464,224Zm32-32a16,16,0,1,0,16,16A16,16,0,0,0,496,192Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,432,256Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,400,288Zm-64,64a16,16,0,1,0,16,16A16,16,0,0,0,336,352Zm-32,32a16,16,0,1,0,16,16A16,16,0,0,0,304,384Zm64-64a16,16,0,1,0,16,16A16,16,0,0,0,368,320Zm21.65-218.35-11.3-11.31a16,16,0,0,0-22.63,0L350.05,96A111.19,111.19,0,0,0,272,64c-19.24,0-37.08,5.3-52.9,13.85l-10-10A121.72,121.72,0,0,0,123.44,32C55.49,31.5,0,92.91,0,160.85V464a16,16,0,0,0,16,16H48a16,16,0,0,0,16-16V158.4c0-30.15,21-58.2,51-61.93a58.38,58.38,0,0,1,48.93,16.67l10,10C165.3,138.92,160,156.76,160,176a111.23,111.23,0,0,0,32,78.05l-5.66,5.67a16,16,0,0,0,0,22.62l11.3,11.31a16,16,0,0,0,22.63,0L389.65,124.28A16,16,0,0,0,389.65,101.65Z"]},faShuttleVan:{prefix:"fas",iconName:"shuttle-van",icon:[640,512,[],"f5b6","M628.88 210.65L494.39 49.27A48.01 48.01 0 0 0 457.52 32H32C14.33 32 0 46.33 0 64v288c0 17.67 14.33 32 32 32h32c0 53.02 42.98 96 96 96s96-42.98 96-96h128c0 53.02 42.98 96 96 96s96-42.98 96-96h32c17.67 0 32-14.33 32-32V241.38c0-11.23-3.94-22.1-11.12-30.73zM64 192V96h96v96H64zm96 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm160-240h-96V96h96v96zm160 240c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-96-240V96h66.02l80 96H384z"]},faSign:{prefix:"fas",iconName:"sign",icon:[512,512,[],"f4d9","M496 64H128V16c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16v48H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h48v368c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V128h368c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16zM160 384h320V160H160v224z"]},faSignInAlt:{prefix:"fas",iconName:"sign-in-alt",icon:[512,512,[],"f2f6","M416 448h-84c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h84c17.7 0 32-14.3 32-32V160c0-17.7-14.3-32-32-32h-84c-6.6 0-12-5.4-12-12V76c0-6.6 5.4-12 12-12h84c53 0 96 43 96 96v192c0 53-43 96-96 96zm-47-201L201 79c-15-15-41-4.5-41 17v96H24c-13.3 0-24 10.7-24 24v96c0 13.3 10.7 24 24 24h136v96c0 21.5 26 32 41 17l168-168c9.3-9.4 9.3-24.6 0-34z"]},faSignLanguage:{prefix:"fas",iconName:"sign-language",icon:[448,512,[],"f2a7","M91.434 483.987c-.307-16.018 13.109-29.129 29.13-29.129h62.293v-5.714H56.993c-16.021 0-29.437-13.111-29.13-29.129C28.16 404.491 40.835 392 56.428 392h126.429v-5.714H29.136c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h154.286v-5.714H57.707c-16.021 0-29.437-13.111-29.13-29.129.297-15.522 12.973-28.013 28.566-28.013h168.566l-31.085-22.606c-12.762-9.281-15.583-27.149-6.302-39.912 9.281-12.761 27.15-15.582 39.912-6.302l123.361 89.715a34.287 34.287 0 0 1 14.12 27.728v141.136c0 15.91-10.946 29.73-26.433 33.374l-80.471 18.934a137.16 137.16 0 0 1-31.411 3.646H120c-15.593-.001-28.269-12.492-28.566-28.014zm73.249-225.701h36.423l-11.187-8.136c-18.579-13.511-20.313-40.887-3.17-56.536l-13.004-16.7c-9.843-12.641-28.43-15.171-40.88-5.088-12.065 9.771-14.133 27.447-4.553 39.75l36.371 46.71zm283.298-2.103l-5.003-152.452c-.518-15.771-13.722-28.136-29.493-27.619-15.773.518-28.137 13.722-27.619 29.493l1.262 38.415L283.565 11.019c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l76.889 98.745-4.509 3.511-94.79-121.734c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l94.443 121.288-4.509 3.511-77.675-99.754c-9.58-12.303-27.223-14.63-39.653-5.328-12.827 9.599-14.929 28.24-5.086 40.881l52.053 66.849c12.497-8.257 29.055-8.285 41.69.904l123.36 89.714c10.904 7.93 17.415 20.715 17.415 34.198v16.999l61.064-47.549a34.285 34.285 0 0 0 13.202-28.177z"]},faSignOutAlt:{prefix:"fas",iconName:"sign-out-alt",icon:[512,512,[],"f2f5","M497 273L329 441c-15 15-41 4.5-41-17v-96H152c-13.3 0-24-10.7-24-24v-96c0-13.3 10.7-24 24-24h136V88c0-21.4 25.9-32 41-17l168 168c9.3 9.4 9.3 24.6 0 34zM192 436v-40c0-6.6-5.4-12-12-12H96c-17.7 0-32-14.3-32-32V160c0-17.7 14.3-32 32-32h84c6.6 0 12-5.4 12-12V76c0-6.6-5.4-12-12-12H96c-53 0-96 43-96 96v192c0 53 43 96 96 96h84c6.6 0 12-5.4 12-12z"]},faSignal:{prefix:"fas",iconName:"signal",icon:[640,512,[],"f012","M216 288h-48c-8.84 0-16 7.16-16 16v192c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V304c0-8.84-7.16-16-16-16zM88 384H40c-8.84 0-16 7.16-16 16v96c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16v-96c0-8.84-7.16-16-16-16zm256-192h-48c-8.84 0-16 7.16-16 16v288c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V208c0-8.84-7.16-16-16-16zm128-96h-48c-8.84 0-16 7.16-16 16v384c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V112c0-8.84-7.16-16-16-16zM600 0h-48c-8.84 0-16 7.16-16 16v480c0 8.84 7.16 16 16 16h48c8.84 0 16-7.16 16-16V16c0-8.84-7.16-16-16-16z"]},faSignature:{prefix:"fas",iconName:"signature",icon:[640,512,[],"f5b7","M623.2 192c-51.8 3.5-125.7 54.7-163.1 71.5-29.1 13.1-54.2 24.4-76.1 24.4-22.6 0-26-16.2-21.3-51.9 1.1-8 11.7-79.2-42.7-76.1-25.1 1.5-64.3 24.8-169.5 126L192 182.2c30.4-75.9-53.2-151.5-129.7-102.8L7.4 116.3C0 121-2.2 130.9 2.5 138.4l17.2 27c4.7 7.5 14.6 9.7 22.1 4.9l58-38.9c18.4-11.7 40.7 7.2 32.7 27.1L34.3 404.1C27.5 421 37 448 64 448c8.3 0 16.5-3.2 22.6-9.4 42.2-42.2 154.7-150.7 211.2-195.8-2.2 28.5-2.1 58.9 20.6 83.8 15.3 16.8 37.3 25.3 65.5 25.3 35.6 0 68-14.6 102.3-30 33-14.8 99-62.6 138.4-65.8 8.5-.7 15.2-7.3 15.2-15.8v-32.1c.2-9.1-7.5-16.8-16.6-16.2z"]},faSimCard:{prefix:"fas",iconName:"sim-card",icon:[384,512,[],"f7c4","M0 64v384c0 35.3 28.7 64 64 64h256c35.3 0 64-28.7 64-64V128L256 0H64C28.7 0 0 28.7 0 64zm224 192h-64v-64h64v64zm96 0h-64v-64h32c17.7 0 32 14.3 32 32v32zm-64 128h64v32c0 17.7-14.3 32-32 32h-32v-64zm-96 0h64v64h-64v-64zm-96 0h64v64H96c-17.7 0-32-14.3-32-32v-32zm0-96h256v64H64v-64zm0-64c0-17.7 14.3-32 32-32h32v64H64v-32z"]},faSink:{prefix:"fas",iconName:"sink",icon:[512,512,[],"e06d","M32,416a96,96,0,0,0,96,96H384a96,96,0,0,0,96-96V384H32ZM496,288H400V256h64a16,16,0,0,0,16-16V224a16,16,0,0,0-16-16H384a32,32,0,0,0-32,32v48H288V96a32,32,0,0,1,64,0v16a16,16,0,0,0,16,16h32a16,16,0,0,0,16-16V96A96.16,96.16,0,0,0,300.87,1.86C255.29,10.71,224,53.36,224,99.79V288H160V240a32,32,0,0,0-32-32H48a16,16,0,0,0-16,16v16a16,16,0,0,0,16,16h64v32H16A16,16,0,0,0,0,304v32a16,16,0,0,0,16,16H496a16,16,0,0,0,16-16V304A16,16,0,0,0,496,288Z"]},faSitemap:{prefix:"fas",iconName:"sitemap",icon:[640,512,[],"f0e8","M128 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm-24-80h192v48h48v-48h192v48h48v-57.59c0-21.17-17.23-38.41-38.41-38.41H344v-64h40c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h40v64H94.41C73.23 224 56 241.23 56 262.41V320h48v-48zm264 80h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32zm240 0h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32z"]},faSkating:{prefix:"fas",iconName:"skating",icon:[448,512,[],"f7c5","M400 0c-26.5 0-48 21.5-48 48s21.5 48 48 48 48-21.5 48-48-21.5-48-48-48zm0 448c-8.8 0-16 7.2-16 16s-7.2 16-16 16h-96c-8.8 0-16 7.2-16 16s7.2 16 16 16h96c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-282.2 8.6c-6.2 6.2-16.4 6.3-22.6 0l-67.9-67.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l67.9 67.9c9.4 9.4 21.7 14 34 14s24.6-4.7 33.9-14c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.3-22.7 0zm56.1-179.8l-93.7 93.7c-12.5 12.5-12.5 32.8 0 45.2 6.2 6.2 14.4 9.4 22.6 9.4s16.4-3.1 22.6-9.4l91.9-91.9-30.2-30.2c-5-5-9.4-10.7-13.2-16.8zM128 160h105.5l-20.1 17.2c-13.5 11.5-21.6 28.4-22.3 46.1-.7 17.8 6.1 35.2 18.7 47.7l78.2 78.2V432c0 17.7 14.3 32 32 32s32-14.3 32-32v-89.4c0-12.6-5.1-25-14.1-33.9l-61-61c.5-.4 1.2-.6 1.7-1.1l82.3-82.3c11.5-11.5 14.9-28.6 8.7-43.6-6.2-15-20.7-24.7-37-24.7H128c-17.7 0-32 14.3-32 32s14.3 32 32 32z"]},faSkiing:{prefix:"fas",iconName:"skiing",icon:[512,512,[],"f7c9","M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm73 356.1c-9.4-9.4-24.6-9.4-33.9 0-12.1 12.1-30.5 15.4-45.1 8.7l-135.8-70.2 49.2-73.8c12.7-19 10.2-44.5-6-60.6L293 215.7l-107-53.1c-2.9 19.9 3.4 40 17.7 54.4l75.1 75.2-45.9 68.8L35 258.7c-11.7-6-26.2-1.5-32.3 10.3-6.1 11.8-1.5 26.3 10.3 32.3l391.9 202.5c11.9 5.5 24.5 8.1 37.1 8.1 23.2 0 46-9 63-26 9.3-9.3 9.3-24.5 0-33.8zM120 91.6l-11.5 22.5c14.4 7.3 31.2 4.9 42.8-4.8l47.2 23.4c-.1.1-.1.2-.2.3l114.5 56.8 32.4-13 6.4 19.1c4 12.1 12.6 22 24 27.7l58.1 29c15.9 7.9 35 1.5 42.9-14.3 7.9-15.8 1.5-35-14.3-42.9l-52.1-26.1-17.1-51.2c-8.1-24.2-40.9-56.6-84.5-39.2l-81.2 32.5-62.5-31c.3-14.5-7.2-28.6-20.9-35.6l-11.1 21.7h-.2l-34.4-7c-1.8-.4-3.7.2-5 1.7-1.9 2.2-1.7 5.5.5 7.4l26.2 23z"]},faSkiingNordic:{prefix:"fas",iconName:"skiing-nordic",icon:[576,512,[],"f7ca","M336 96c26.5 0 48-21.5 48-48S362.5 0 336 0s-48 21.5-48 48 21.5 48 48 48zm216 320c-13.2 0-24 10.7-24 24 0 13.2-10.8 24-24 24h-69.5L460 285.6c11.7-4.7 20.1-16.2 20.1-29.6 0-17.7-14.3-32-32-32h-44L378 170.8c-12.5-25.5-35.5-44.2-61.8-50.9L245 98.7c-28.3-6.8-57.8-.5-80.8 17.1l-39.7 30.4c-14 10.7-16.7 30.8-5.9 44.9.7.9 1.7 1.3 2.4 2.1L66.9 464H24c-13.2 0-24 10.7-24 24s10.8 24 24 24h480c39.7 0 72-32.3 72-72 0-13.2-10.8-24-24-24zm-260.5 48h-96.9l43.1-91-22-13c-12.1-7.2-21.9-16.9-29.5-27.8L123.7 464H99.5l52.3-261.4c4.1-1 8.1-2.9 11.7-5.6l39.7-30.4c7.7-5.9 17.4-8 25.3-6.1l14.7 4.4-37.5 87.4c-12.6 29.5-1.3 64 26.3 80.3l85 50.2-25.5 81.2zm110.6 0h-43.6l23.6-75.5c5.9-20.8-2.9-43.1-21.6-54.4L299.3 298l31.3-78.3 20.3 41.4c8 16.3 24.9 26.9 43.1 26.9h33.3l-25.2 176z"]},faSkull:m,faSkullCrossbones:g,faSlash:v,faSleigh:{prefix:"fas",iconName:"sleigh",icon:[640,512,[],"f7cc","M612.7 350.7l-9.3-7.4c-6.9-5.5-17-4.4-22.5 2.5l-10 12.5c-5.5 6.9-4.4 17 2.5 22.5l9.3 7.4c5.9 4.7 9.2 11.7 9.2 19.2 0 13.6-11 24.6-24.6 24.6H48c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h516c39 0 73.7-29.3 75.9-68.3 1.4-23.8-8.7-46.3-27.2-61zM32 224c0 59.6 40.9 109.2 96 123.5V400h64v-48h192v48h64v-48c53 0 96-43 96-96v-96c17.7 0 32-14.3 32-32s-14.3-32-32-32h-96v64c0 35.3-28.7 64-64 64h-20.7c-65.8 0-125.9-37.2-155.3-96-29.4-58.8-89.6-96-155.3-96H32C14.3 32 0 46.3 0 64s14.3 32 32 32v128z"]},faSlidersH:{prefix:"fas",iconName:"sliders-h",icon:[512,512,[],"f1de","M496 384H160v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h80v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h336c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160h-80v-16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h336v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h80c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm0-160H288V48c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v16H16C7.2 64 0 71.2 0 80v32c0 8.8 7.2 16 16 16h208v16c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-16h208c8.8 0 16-7.2 16-16V80c0-8.8-7.2-16-16-16z"]},faSmile:{prefix:"fas",iconName:"smile",icon:[496,512,[],"f118","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm80 168c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm-160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm194.8 170.2C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.6-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.4-16.2 38.1 4.2 24.6 20.5z"]},faSmileBeam:{prefix:"fas",iconName:"smile-beam",icon:[496,512,[],"f5b8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM112 223.4c3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.7 8.6-10.8 11.9-14.9 4.5l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.3 7.4-15.8 4-15.1-4.5zm250.8 122.8C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11-36.7 24.6-20.5 22.4 26.9 55.2 42.2 90.2 42.2s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.3 24.6 20.5zm6.2-118.3l-9.5-17c-7.7-13.7-19.2-21.6-31.5-21.6s-23.8 7.9-31.5 21.6l-9.5 17c-4.1 7.3-15.6 4-14.9-4.5 3.3-42.1 32.2-71.4 56-71.4s52.7 29.3 56 71.4c.6 8.6-11 11.9-15.1 4.5z"]},faSmileWink:{prefix:"fas",iconName:"smile-wink",icon:[496,512,[],"f4da","M0 256c0 137 111 248 248 248s248-111 248-248S385 8 248 8 0 119 0 256zm200-48c0 17.7-14.3 32-32 32s-32-14.3-32-32 14.3-32 32-32 32 14.3 32 32zm158.5 16.5c-14.8-13.2-46.2-13.2-61 0L288 233c-8.3 7.4-21.6.4-19.8-10.8 4-25.2 34.2-42.1 59.9-42.1S384 197 388 222.2c1.7 11.1-11.4 18.3-19.8 10.8l-9.7-8.5zM157.8 325.8C180.2 352.7 213 368 248 368s67.8-15.4 90.2-42.2c13.6-16.2 38.1 4.2 24.6 20.5C334.3 380.4 292.5 400 248 400s-86.3-19.6-114.8-53.8c-13.5-16.3 11.2-36.7 24.6-20.4z"]},faSmog:{prefix:"fas",iconName:"smog",icon:[640,512,[],"f75f","M624 368H80c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h544c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm-480 96H16c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h128c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zm416 0H224c-8.8 0-16 7.2-16 16v16c0 8.8 7.2 16 16 16h336c8.8 0 16-7.2 16-16v-16c0-8.8-7.2-16-16-16zM144 288h156.1c22.5 19.7 51.6 32 83.9 32s61.3-12.3 83.9-32H528c61.9 0 112-50.1 112-112S589.9 64 528 64c-18 0-34.7 4.6-49.7 12.1C454 31 406.8 0 352 0c-41 0-77.8 17.3-104 44.8C221.8 17.3 185 0 144 0 64.5 0 0 64.5 0 144s64.5 144 144 144z"]},faSmoking:{prefix:"fas",iconName:"smoking",icon:[640,512,[],"f48d","M632 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8zM553.3 87.1c-5.7-3.8-9.3-10-9.3-16.8V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v62.3c0 22 10.2 43.4 28.6 55.4 42.2 27.3 67.4 73.8 67.4 124V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-65.5-32.4-126.2-86.7-162.6zM432 352H48c-26.5 0-48 21.5-48 48v64c0 26.5 21.5 48 48 48h384c8.8 0 16-7.2 16-16V368c0-8.8-7.2-16-16-16zm-32 112H224v-64h176v64zm87.7-322.4C463.8 125 448 99.3 448 70.3V8c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v66.4c0 43.7 24.6 81.6 60.3 106.7 22.4 15.7 35.7 41.2 35.7 68.6V280c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-30.3c0-43.3-21-83.4-56.3-108.1zM536 352h-48c-4.4 0-8 3.6-8 8v144c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V360c0-4.4-3.6-8-8-8z"]},faSmokingBan:{prefix:"fas",iconName:"smoking-ban",icon:[512,512,[],"f54d","M96 304c0 8.8 7.2 16 16 16h117.5l-96-96H112c-8.8 0-16 7.2-16 16v64zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256 256-114.6 256-256S397.4 0 256 0zm0 448c-105.9 0-192-86.1-192-192 0-41.4 13.3-79.7 35.7-111.1l267.4 267.4C335.7 434.7 297.4 448 256 448zm45.2-192H384v32h-50.8l-32-32zm111.1 111.1L365.2 320H400c8.8 0 16-7.2 16-16v-64c0-8.8-7.2-16-16-16H269.2L144.9 99.7C176.3 77.3 214.6 64 256 64c105.9 0 192 86.1 192 192 0 41.4-13.3 79.7-35.7 111.1zM320.6 128c-15.6 0-28.6-11.2-31.4-25.9-.7-3.6-4-6.1-7.7-6.1h-16.2c-5 0-8.7 4.5-8 9.4 4.6 30.9 31.2 54.6 63.3 54.6 15.6 0 28.6 11.2 31.4 25.9.7 3.6 4 6.1 7.7 6.1h16.2c5 0 8.7-4.5 8-9.4-4.6-30.9-31.2-54.6-63.3-54.6z"]},faSms:{prefix:"fas",iconName:"sms",icon:[512,512,[],"f7cd","M256 32C114.6 32 0 125.1 0 240c0 49.6 21.4 95 57 130.7C44.5 421.1 2.7 466 2.2 466.5c-2.2 2.3-2.8 5.7-1.5 8.7 1.3 3 4.1 4.8 7.3 4.8 66.3 0 116-31.8 140.6-51.4 32.7 12.3 69 19.4 107.4 19.4 141.4 0 256-93.1 256-208S397.4 32 256 32zM128.2 304H116c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H156c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-19 38.6-42.4 38.6zm191.8-8c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8v-68.2l-24.8 55.8c-2.9 5.9-11.4 5.9-14.3 0L224 227.8V296c0 4.4-3.6 8-8 8h-16c-4.4 0-8-3.6-8-8V192c0-8.8 7.2-16 16-16h16c6.1 0 11.6 3.4 14.3 8.8l17.7 35.4 17.7-35.4c2.7-5.4 8.3-8.8 14.3-8.8h16c8.8 0 16 7.2 16 16v104zm48.3 8H356c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h12.3c6 0 10.4-3.5 10.4-6.6 0-1.3-.8-2.7-2.1-3.8l-21.9-18.8c-8.5-7.2-13.3-17.5-13.3-28.1 0-21.3 19-38.6 42.4-38.6H396c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8h-12.3c-6 0-10.4 3.5-10.4 6.6 0 1.3.8 2.7 2.1 3.8l21.9 18.8c8.5 7.2 13.3 17.5 13.3 28.1.1 21.3-18.9 38.6-42.3 38.6z"]},faSnowboarding:{prefix:"fas",iconName:"snowboarding",icon:[512,512,[],"f7ce","M432 96c26.5 0 48-21.5 48-48S458.5 0 432 0s-48 21.5-48 48 21.5 48 48 48zm28.8 153.6c5.8 4.3 12.5 6.4 19.2 6.4 9.7 0 19.3-4.4 25.6-12.8 10.6-14.1 7.8-34.2-6.4-44.8l-111.4-83.5c-13.8-10.3-29.1-18.4-45.4-23.8l-63.7-21.2-26.1-52.1C244.7 2 225.5-4.4 209.7 3.5c-15.8 7.9-22.2 27.1-14.3 42.9l29.1 58.1c5.7 11.4 15.6 19.9 27.7 24l16.4 5.5-41.2 20.6c-21.8 10.9-35.4 32.8-35.4 57.2v53.1l-74.1 24.7c-16.8 5.6-25.8 23.7-20.2 40.5 1.7 5.2 4.9 9.4 8.7 12.9l-38.7-14.1c-9.7-3.5-17.4-10.6-21.8-20-5.6-12-19.9-17.2-31.9-11.6s-17.2 19.9-11.6 31.9c9.8 21 27.1 36.9 48.9 44.8l364.8 132.7c9.7 3.5 19.7 5.3 29.7 5.3 12.5 0 24.9-2.7 36.5-8.2 12-5.6 17.2-19.9 11.6-31.9S474 454.7 462 460.3c-9.3 4.4-19.8 4.8-29.5 1.3l-90.8-33.1c8.7-4.1 15.6-11.8 17.8-21.9l21.9-102c3.9-18.2-3.2-37.2-18.1-48.4l-52-39 66-30.5 83.5 62.9zm-144.4 51.7l-19.7 92c-1.5 7.1-.1 13.9 2.8 20l-169.4-61.6c2.7-.2 5.4-.4 8-1.3l85-28.4c19.6-6.5 32.8-24.8 32.8-45.5V256l60.5 45.3z"]},faSnowflake:{prefix:"fas",iconName:"snowflake",icon:[448,512,[],"f2dc","M440.3 345.2l-33.8-19.5 26-7c8.2-2.2 13.1-10.7 10.9-18.9l-4-14.9c-2.2-8.2-10.7-13.1-18.9-10.9l-70.8 19-63.9-37 63.8-36.9 70.8 19c8.2 2.2 16.7-2.7 18.9-10.9l4-14.9c2.2-8.2-2.7-16.7-10.9-18.9l-26-7 33.8-19.5c7.4-4.3 9.9-13.7 5.7-21.1L430.4 119c-4.3-7.4-13.7-9.9-21.1-5.7l-33.8 19.5 7-26c2.2-8.2-2.7-16.7-10.9-18.9l-14.9-4c-8.2-2.2-16.7 2.7-18.9 10.9l-19 70.8-62.8 36.2v-77.5l53.7-53.7c6.2-6.2 6.2-16.4 0-22.6l-11.3-11.3c-6.2-6.2-16.4-6.2-22.6 0L256 56.4V16c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v40.4l-19.7-19.7c-6.2-6.2-16.4-6.2-22.6 0L138.3 48c-6.3 6.2-6.3 16.4 0 22.6l53.7 53.7v77.5l-62.8-36.2-19-70.8c-2.2-8.2-10.7-13.1-18.9-10.9l-14.9 4c-8.2 2.2-13.1 10.7-10.9 18.9l7 26-33.8-19.5c-7.4-4.3-16.8-1.7-21.1 5.7L2.1 145.7c-4.3 7.4-1.7 16.8 5.7 21.1l33.8 19.5-26 7c-8.3 2.2-13.2 10.7-11 19l4 14.9c2.2 8.2 10.7 13.1 18.9 10.9l70.8-19 63.8 36.9-63.8 36.9-70.8-19c-8.2-2.2-16.7 2.7-18.9 10.9l-4 14.9c-2.2 8.2 2.7 16.7 10.9 18.9l26 7-33.8 19.6c-7.4 4.3-9.9 13.7-5.7 21.1l15.5 26.8c4.3 7.4 13.7 9.9 21.1 5.7l33.8-19.5-7 26c-2.2 8.2 2.7 16.7 10.9 18.9l14.9 4c8.2 2.2 16.7-2.7 18.9-10.9l19-70.8 62.8-36.2v77.5l-53.7 53.7c-6.3 6.2-6.3 16.4 0 22.6l11.3 11.3c6.2 6.2 16.4 6.2 22.6 0l19.7-19.7V496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-40.4l19.7 19.7c6.2 6.2 16.4 6.2 22.6 0l11.3-11.3c6.2-6.2 6.2-16.4 0-22.6L256 387.7v-77.5l62.8 36.2 19 70.8c2.2 8.2 10.7 13.1 18.9 10.9l14.9-4c8.2-2.2 13.1-10.7 10.9-18.9l-7-26 33.8 19.5c7.4 4.3 16.8 1.7 21.1-5.7l15.5-26.8c4.3-7.3 1.8-16.8-5.6-21z"]},faSnowman:{prefix:"fas",iconName:"snowman",icon:[512,512,[],"f7d0","M510.9 152.3l-5.9-14.5c-3.3-8-12.6-11.9-20.8-8.7L456 140.6v-29c0-8.6-7.2-15.6-16-15.6h-16c-8.8 0-16 7-16 15.6v46.9c0 .5.3 1 .3 1.5l-56.4 23c-5.9-10-13.3-18.9-22-26.6 13.6-16.6 22-37.4 22-60.5 0-53-43-96-96-96s-96 43-96 96c0 23.1 8.5 43.9 22 60.5-8.7 7.7-16 16.6-22 26.6l-56.4-23c.1-.5.3-1 .3-1.5v-46.9C104 103 96.8 96 88 96H72c-8.8 0-16 7-16 15.6v29l-28.1-11.5c-8.2-3.2-17.5.7-20.8 8.7l-5.9 14.5c-3.3 8 .7 17.1 8.9 20.3l135.2 55.2c-.4 4-1.2 8-1.2 12.2 0 10.1 1.7 19.6 4.2 28.9C120.9 296.4 104 334.2 104 376c0 54 28.4 100.9 70.8 127.8 9.3 5.9 20.3 8.2 31.3 8.2h99.2c13.3 0 26.3-4.1 37.2-11.7 46.5-32.3 74.4-89.4 62.9-152.6-5.5-30.2-20.5-57.6-41.6-79 2.5-9.2 4.2-18.7 4.2-28.7 0-4.2-.8-8.1-1.2-12.2L502 172.6c8.1-3.1 12.1-12.2 8.9-20.3zM224 96c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm32 272c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-64c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16zm0-88s-16-23.2-16-32 7.2-16 16-16 16 7.2 16 16-16 32-16 32zm32-56c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faSnowplow:{prefix:"fas",iconName:"snowplow",icon:[640,512,[],"f7d2","M120 376c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24 24-10.7 24-24-10.7-24-24-24zm238.6 49.4c-14.5-14.5-22.6-34.1-22.6-54.6V269.2c0-20.5 8.1-40.1 22.6-54.6l36.7-36.7c6.2-6.2 6.2-16.4 0-22.6l-22.6-22.6c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7c-26.5 26.5-41.4 62.4-41.4 99.9V288h-64v-50.9c0-8.7-1.8-17.2-5.2-25.2L364.5 29.1C356.9 11.4 339.6 0 320.3 0H176c-26.5 0-48 21.5-48 48v112h-16c-26.5 0-48 21.5-48 48v91.2C26.3 317.2 0 355.4 0 400c0 61.9 50.1 112 112 112h256c61.9 0 112-50.1 112-112 0-17.3-4.2-33.4-11.2-48H512v18.7c0 37.5 14.9 73.4 41.4 99.9l36.7 36.7c6.2 6.2 16.4 6.2 22.6 0l22.6-22.6c6.2-6.2 6.2-16.4 0-22.6l-36.7-36.7zM192 64h117.8l68.6 160H256l-64-64V64zm176 384H112c-26.5 0-48-21.5-48-48s21.5-48 48-48h256c26.5 0 48 21.5 48 48s-21.5 48-48 48z"]},faSoap:{prefix:"fas",iconName:"soap",icon:[512,512,[],"e06e","M416,192a95.42,95.42,0,0,1-30.94,70.21A95.8,95.8,0,0,1,352,448H160a96,96,0,0,1,0-192h88.91A95.3,95.3,0,0,1,224,192H96A96,96,0,0,0,0,288V416a96,96,0,0,0,96,96H416a96,96,0,0,0,96-96V288A96,96,0,0,0,416,192Zm-96,64a64,64,0,1,0-64-64A64,64,0,0,0,320,256ZM208,96a48,48,0,1,0-48-48A48,48,0,0,0,208,96ZM384,64a32,32,0,1,0-32-32A32,32,0,0,0,384,64ZM160,288a64,64,0,0,0,0,128H352a64,64,0,0,0,0-128Z"]},faSocks:{prefix:"fas",iconName:"socks",icon:[512,512,[],"f696","M214.66 311.01L288 256V96H128v176l-86.65 64.61c-39.4 29.56-53.86 84.42-29.21 127.06C30.39 495.25 63.27 512 96.08 512c20.03 0 40.25-6.25 57.52-19.2l21.86-16.39c-29.85-55.38-13.54-125.84 39.2-165.4zM288 32c0-11.05 3.07-21.3 8.02-30.38C293.4.92 290.85 0 288 0H160c-17.67 0-32 14.33-32 32v32h160V32zM480 0H352c-17.67 0-32 14.33-32 32v32h192V32c0-17.67-14.33-32-32-32zM320 272l-86.13 64.61c-39.4 29.56-53.86 84.42-29.21 127.06 18.25 31.58 50.61 48.33 83.42 48.33 20.03 0 40.25-6.25 57.52-19.2l115.2-86.4A127.997 127.997 0 0 0 512 304V96H320v176z"]},faSolarPanel:{prefix:"fas",iconName:"solar-panel",icon:[640,512,[],"f5ba","M431.98 448.01l-47.97.05V416h-128v32.21l-47.98.05c-8.82.01-15.97 7.16-15.98 15.99l-.05 31.73c-.01 8.85 7.17 16.03 16.02 16.02l223.96-.26c8.82-.01 15.97-7.16 15.98-15.98l.04-31.73c.01-8.85-7.17-16.03-16.02-16.02zM585.2 26.74C582.58 11.31 568.99 0 553.06 0H86.93C71 0 57.41 11.31 54.79 26.74-3.32 369.16.04 348.08.03 352c-.03 17.32 14.29 32 32.6 32h574.74c18.23 0 32.51-14.56 32.59-31.79.02-4.08 3.35 16.95-54.76-325.47zM259.83 64h120.33l9.77 96H250.06l9.77-96zm-75.17 256H71.09L90.1 208h105.97l-11.41 112zm16.29-160H98.24l16.29-96h96.19l-9.77 96zm32.82 160l11.4-112h149.65l11.4 112H233.77zm195.5-256h96.19l16.29 96H439.04l-9.77-96zm26.06 256l-11.4-112H549.9l19.01 112H455.33z"]},faSort:{prefix:"fas",iconName:"sort",icon:[320,512,[],"f0dc","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z"]},faSortAlphaDown:{prefix:"fas",iconName:"sort-alpha-down",icon:[448,512,[],"f15d","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm240-64H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]},faSortAlphaDownAlt:{prefix:"fas",iconName:"sort-alpha-down-alt",icon:[448,512,[],"f881","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm112-128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]},faSortAlphaUp:{prefix:"fas",iconName:"sort-alpha-up",icon:[448,512,[],"f15e","M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm400 128H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 446.37V464a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 321.63V304a16 16 0 0 0-16-16zm31.06-85.38l-59.27-160A16 16 0 0 0 372.72 32h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 224h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 224H432a16 16 0 0 0 15.06-21.38zM335.61 144L352 96l16.39 48z"]},faSortAlphaUpAlt:{prefix:"fas",iconName:"sort-alpha-up-alt",icon:[448,512,[],"f882","M16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160zm272 64h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-56l61.26-70.45A32 32 0 0 0 432 65.63V48a16 16 0 0 0-16-16H288a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h56l-61.26 70.45A32 32 0 0 0 272 190.37V208a16 16 0 0 0 16 16zm159.06 234.62l-59.27-160A16 16 0 0 0 372.72 288h-41.44a16 16 0 0 0-15.07 10.62l-59.27 160A16 16 0 0 0 272 480h24.83a16 16 0 0 0 15.23-11.08l4.42-12.92h71l4.41 12.92A16 16 0 0 0 407.16 480H432a16 16 0 0 0 15.06-21.38zM335.61 400L352 352l16.39 48z"]},faSortAmountDown:{prefix:"fas",iconName:"sort-amount-down",icon:[512,512,[],"f160","M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-128-64h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm256-192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faSortAmountDownAlt:{prefix:"fas",iconName:"sort-amount-down-alt",icon:[512,512,[],"f884","M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm-64 0h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.37 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]},faSortAmountUp:{prefix:"fas",iconName:"sort-amount-up",icon:[512,512,[],"f161","M304 416h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h64a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.77 160 16 160zm416 0H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-64 128H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM496 32H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faSortAmountUpAlt:{prefix:"fas",iconName:"sort-amount-up-alt",icon:[512,512,[],"f885","M240 96h64a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16h-64a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm0 128h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm256 192H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h256a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-256-64h192a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H240a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zM16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.39-17.24 11.31-27.31l-80-96a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160z"]},faSortDown:{prefix:"fas",iconName:"sort-down",icon:[320,512,[],"f0dd","M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z"]},faSortNumericDown:{prefix:"fas",iconName:"sort-numeric-down",icon:[448,512,[],"f162","M304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zm26.15 162.91a79 79 0 0 0-55 54.17c-14.25 51.05 21.21 97.77 68.85 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zm-176-4h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352z"]},faSortNumericDownAlt:{prefix:"fas",iconName:"sort-numeric-down-alt",icon:[448,512,[],"f886","M176 352h-48V48a16 16 0 0 0-16-16H80a16 16 0 0 0-16 16v304H16c-14.19 0-21.36 17.24-11.29 27.31l80 96a16 16 0 0 0 22.62 0l80-96C197.35 369.26 190.22 352 176 352zm224 64h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]},faSortNumericUp:{prefix:"fas",iconName:"sort-numeric-up",icon:[448,512,[],"f163","M330.17 258.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.76 86.25-61.61 86.25-132V336c-.02-51.21-48.4-91.34-101.85-77.09zM352 356a20 20 0 1 1 20-20 20 20 0 0 1-20 20zM304 96h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-16V48a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 96zM107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31z"]},faSortNumericUpAlt:{prefix:"fas",iconName:"sort-numeric-up-alt",icon:[448,512,[],"f887","M107.31 36.69a16 16 0 0 0-22.62 0l-80 96C-5.35 142.74 1.78 160 16 160h48v304a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V160h48c14.21 0 21.38-17.24 11.31-27.31zM400 416h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 304 352h16v64h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM330.17 34.91a79 79 0 0 0-55 54.17c-14.27 51.05 21.19 97.77 68.83 102.53a84.07 84.07 0 0 1-20.85 12.91c-7.57 3.4-10.8 12.47-8.18 20.34l9.9 20c2.87 8.63 12.53 13.49 20.9 9.91 58-24.77 86.25-61.61 86.25-132V112c-.02-51.21-48.4-91.34-101.85-77.09zM352 132a20 20 0 1 1 20-20 20 20 0 0 1-20 20z"]},faSortUp:{prefix:"fas",iconName:"sort-up",icon:[320,512,[],"f0de","M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z"]},faSpa:{prefix:"fas",iconName:"spa",icon:[576,512,[],"f5bb","M568.25 192c-29.04.13-135.01 6.16-213.84 83-33.12 29.63-53.36 63.3-66.41 94.86-13.05-31.56-33.29-65.23-66.41-94.86-78.83-76.84-184.8-82.87-213.84-83-4.41-.02-7.79 3.4-7.75 7.82.23 27.92 7.14 126.14 88.77 199.3C172.79 480.94 256 480 288 480s115.19.95 199.23-80.88c81.64-73.17 88.54-171.38 88.77-199.3.04-4.42-3.34-7.84-7.75-7.82zM287.98 302.6c12.82-18.85 27.6-35.78 44.09-50.52 19.09-18.61 39.58-33.3 60.26-45.18-16.44-70.5-51.72-133.05-96.73-172.22-4.11-3.58-11.02-3.58-15.14 0-44.99 39.14-80.27 101.63-96.74 172.07 20.37 11.7 40.5 26.14 59.22 44.39a282.768 282.768 0 0 1 45.04 51.46z"]},faSpaceShuttle:{prefix:"fas",iconName:"space-shuttle",icon:[640,512,[],"f197","M592.604 208.244C559.735 192.836 515.777 184 472 184H186.327c-4.952-6.555-10.585-11.978-16.72-16H376C229.157 137.747 219.403 32 96.003 32H96v128H80V32c-26.51 0-48 28.654-48 64v64c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v16c-23.197 0-32 10.032-32 24v40c0 13.983 8.819 24 32 24v64c0 35.346 21.49 64 48 64V352h16v128h.003c123.4 0 133.154-105.747 279.997-136H169.606c6.135-4.022 11.768-9.445 16.72-16H472c43.777 0 87.735-8.836 120.604-24.244C622.282 289.845 640 271.992 640 256s-17.718-33.845-47.396-47.756zM488 296a8 8 0 0 1-8-8v-64a8 8 0 0 1 8-8c31.909 0 31.942 80 0 80z"]},faSpellCheck:{prefix:"fas",iconName:"spell-check",icon:[576,512,[],"f891","M272 256h91.36c43.2 0 82-32.2 84.51-75.34a79.82 79.82 0 0 0-25.26-63.07 79.81 79.81 0 0 0 9.06-44.91C427.9 30.57 389.3 0 347 0h-75a16 16 0 0 0-16 16v224a16 16 0 0 0 16 16zm40-200h40a24 24 0 0 1 0 48h-40zm0 96h56a24 24 0 0 1 0 48h-56zM155.12 22.25A32 32 0 0 0 124.64 0H99.36a32 32 0 0 0-30.48 22.25L.59 235.73A16 16 0 0 0 16 256h24.93a16 16 0 0 0 15.42-11.73L68.29 208h87.42l11.94 36.27A16 16 0 0 0 183.07 256H208a16 16 0 0 0 15.42-20.27zM89.37 144L112 75.3l22.63 68.7zm482 132.48l-45.21-45.3a15.88 15.88 0 0 0-22.59 0l-151.5 151.5-55.41-55.5a15.88 15.88 0 0 0-22.59 0l-45.3 45.3a16 16 0 0 0 0 22.59l112 112.21a15.89 15.89 0 0 0 22.6 0l208-208.21a16 16 0 0 0-.02-22.59z"]},faSpider:b,faSpinner:{prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48 48 21.49 48 48zm-48 368c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm208-208c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zM96 256c0-26.51-21.49-48-48-48S0 229.49 0 256s21.49 48 48 48 48-21.49 48-48zm12.922 99.078c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.491-48-48-48zm294.156 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48c0-26.509-21.49-48-48-48zM108.922 60.922c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.491-48-48-48z"]},faSplotch:{prefix:"fas",iconName:"splotch",icon:[512,512,[],"f5bc","M472.29 195.89l-67.06-22.95c-19.28-6.6-33.54-20.92-38.14-38.3L351.1 74.19c-11.58-43.77-76.57-57.13-109.98-22.62l-46.14 47.67c-13.26 13.71-33.54 20.93-54.2 19.31l-71.88-5.62c-52.05-4.07-86.93 44.88-59.03 82.83l38.54 52.42c11.08 15.07 12.82 33.86 4.64 50.24L24.62 355.4c-20.59 41.25 22.84 84.87 73.49 73.81l69.96-15.28c20.11-4.39 41.45 0 57.07 11.73l54.32 40.83c39.32 29.56 101.04 7.57 104.45-37.22l4.7-61.86c1.35-17.79 12.8-33.86 30.63-42.99l62-31.74c44.88-22.96 39.59-80.17-8.95-96.79z"]},faSprayCan:{prefix:"fas",iconName:"spray-can",icon:[512,512,[],"f5bd","M224 32c0-17.67-14.33-32-32-32h-64c-17.67 0-32 14.33-32 32v96h128V32zm256 96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-256 32H96c-53.02 0-96 42.98-96 96v224c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32V256c0-53.02-42.98-96-96-96zm-64 256c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zM480 96c17.67 0 32-14.33 32-32s-14.33-32-32-32-32 14.33-32 32 14.33 32 32 32zm-96 32c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm-96-96c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 0c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32zm96 192c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]},faSquare:{prefix:"fas",iconName:"square",icon:[448,512,[],"f0c8","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},faSquareFull:{prefix:"fas",iconName:"square-full",icon:[512,512,[],"f45c","M512 512H0V0h512v512z"]},faSquareRootAlt:{prefix:"fas",iconName:"square-root-alt",icon:[576,512,[],"f698","M571.31 251.31l-22.62-22.62c-6.25-6.25-16.38-6.25-22.63 0L480 274.75l-46.06-46.06c-6.25-6.25-16.38-6.25-22.63 0l-22.62 22.62c-6.25 6.25-6.25 16.38 0 22.63L434.75 320l-46.06 46.06c-6.25 6.25-6.25 16.38 0 22.63l22.62 22.62c6.25 6.25 16.38 6.25 22.63 0L480 365.25l46.06 46.06c6.25 6.25 16.38 6.25 22.63 0l22.62-22.62c6.25-6.25 6.25-16.38 0-22.63L525.25 320l46.06-46.06c6.25-6.25 6.25-16.38 0-22.63zM552 0H307.65c-14.54 0-27.26 9.8-30.95 23.87l-84.79 322.8-58.41-106.1A32.008 32.008 0 0 0 105.47 224H24c-13.25 0-24 10.74-24 24v48c0 13.25 10.75 24 24 24h43.62l88.88 163.73C168.99 503.5 186.3 512 204.94 512c17.27 0 44.44-9 54.28-41.48L357.03 96H552c13.25 0 24-10.75 24-24V24c0-13.26-10.75-24-24-24z"]},faStamp:{prefix:"fas",iconName:"stamp",icon:[512,512,[],"f5bf","M32 512h448v-64H32v64zm384-256h-66.56c-16.26 0-29.44-13.18-29.44-29.44v-9.46c0-27.37 8.88-53.41 21.46-77.72 9.11-17.61 12.9-38.39 9.05-60.42-6.77-38.78-38.47-70.7-77.26-77.45C212.62-9.04 160 37.33 160 96c0 14.16 3.12 27.54 8.69 39.58C182.02 164.43 192 194.7 192 226.49v.07c0 16.26-13.18 29.44-29.44 29.44H96c-53.02 0-96 42.98-96 96v32c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-32c0-53.02-42.98-96-96-96z"]},faStar:{prefix:"fas",iconName:"star",icon:[576,512,[],"f005","M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"]},faStarAndCrescent:{prefix:"fas",iconName:"star-and-crescent",icon:[512,512,[],"f699","M340.47 466.36c-1.45 0-6.89.46-9.18.46-116.25 0-210.82-94.57-210.82-210.82S215.04 45.18 331.29 45.18c2.32 0 7.7.46 9.18.46 7.13 0 13.33-5.03 14.75-12.07 1.46-7.25-2.55-14.49-9.47-17.09C316.58 5.54 286.39 0 256 0 114.84 0 0 114.84 0 256s114.84 256 256 256c30.23 0 60.28-5.49 89.32-16.32 5.96-2.02 10.28-7.64 10.28-14.26 0-8.09-6.39-15.06-15.13-15.06zm162.99-252.5l-76.38-11.1-34.16-69.21c-1.83-3.7-5.38-5.55-8.93-5.55s-7.1 1.85-8.93 5.55l-34.16 69.21-76.38 11.1c-8.17 1.18-11.43 11.22-5.52 16.99l55.27 53.87-13.05 76.07c-1.11 6.44 4.01 11.66 9.81 11.66 1.53 0 3.11-.36 4.64-1.17L384 335.37l68.31 35.91c1.53.8 3.11 1.17 4.64 1.17 5.8 0 10.92-5.23 9.81-11.66l-13.05-76.07 55.27-53.87c5.91-5.77 2.65-15.81-5.52-16.99z"]},faStarHalf:{prefix:"fas",iconName:"star-half",icon:[576,512,[],"f089","M288 0c-11.4 0-22.8 5.9-28.7 17.8L194 150.2 47.9 171.4c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.1 23 46 46.4 33.7L288 439.6V0z"]},faStarHalfAlt:{prefix:"fas",iconName:"star-half-alt",icon:[536,512,[],"f5c0","M508.55 171.51L362.18 150.2 296.77 17.81C290.89 5.98 279.42 0 267.95 0c-11.4 0-22.79 5.9-28.69 17.81l-65.43 132.38-146.38 21.29c-26.25 3.8-36.77 36.09-17.74 54.59l105.89 103-25.06 145.48C86.98 495.33 103.57 512 122.15 512c4.93 0 10-1.17 14.87-3.75l130.95-68.68 130.94 68.7c4.86 2.55 9.92 3.71 14.83 3.71 18.6 0 35.22-16.61 31.66-37.4l-25.03-145.49 105.91-102.98c19.04-18.5 8.52-50.8-17.73-54.6zm-121.74 123.2l-18.12 17.62 4.28 24.88 19.52 113.45-102.13-53.59-22.38-11.74.03-317.19 51.03 103.29 11.18 22.63 25.01 3.64 114.23 16.63-82.65 80.38z"]},faStarOfDavid:{prefix:"fas",iconName:"star-of-david",icon:[464,512,[],"f69a","M405.68 256l53.21-89.39C473.3 142.4 455.48 112 426.88 112H319.96l-55.95-93.98C256.86 6.01 244.43 0 232 0s-24.86 6.01-32.01 18.02L144.04 112H37.11c-28.6 0-46.42 30.4-32.01 54.61L58.32 256 5.1 345.39C-9.31 369.6 8.51 400 37.11 400h106.93l55.95 93.98C207.14 505.99 219.57 512 232 512s24.86-6.01 32.01-18.02L319.96 400h106.93c28.6 0 46.42-30.4 32.01-54.61L405.68 256zm-12.78-88l-19.8 33.26L353.3 168h39.6zm-52.39 88l-52.39 88H175.88l-52.39-88 52.38-88h112.25l52.39 88zM232 73.72L254.79 112h-45.57L232 73.72zM71.1 168h39.6l-19.8 33.26L71.1 168zm0 176l19.8-33.26L110.7 344H71.1zM232 438.28L209.21 400h45.57L232 438.28zM353.29 344l19.8-33.26L392.9 344h-39.61z"]},faStarOfLife:{prefix:"fas",iconName:"star-of-life",icon:[480,512,[],"f621","M471.99 334.43L336.06 256l135.93-78.43c7.66-4.42 10.28-14.2 5.86-21.86l-32.02-55.43c-4.42-7.65-14.21-10.28-21.87-5.86l-135.93 78.43V16c0-8.84-7.17-16-16.01-16h-64.04c-8.84 0-16.01 7.16-16.01 16v156.86L56.04 94.43c-7.66-4.42-17.45-1.79-21.87 5.86L2.15 155.71c-4.42 7.65-1.8 17.44 5.86 21.86L143.94 256 8.01 334.43c-7.66 4.42-10.28 14.21-5.86 21.86l32.02 55.43c4.42 7.65 14.21 10.27 21.87 5.86l135.93-78.43V496c0 8.84 7.17 16 16.01 16h64.04c8.84 0 16.01-7.16 16.01-16V339.14l135.93 78.43c7.66 4.42 17.45 1.8 21.87-5.86l32.02-55.43c4.42-7.65 1.8-17.43-5.86-21.85z"]},faStepBackward:{prefix:"fas",iconName:"step-backward",icon:[448,512,[],"f048","M64 468V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12v176.4l195.5-181C352.1 22.3 384 36.6 384 64v384c0 27.4-31.9 41.7-52.5 24.6L136 292.7V468c0 6.6-5.4 12-12 12H76c-6.6 0-12-5.4-12-12z"]},faStepForward:{prefix:"fas",iconName:"step-forward",icon:[448,512,[],"f051","M384 44v424c0 6.6-5.4 12-12 12h-48c-6.6 0-12-5.4-12-12V291.6l-195.5 181C95.9 489.7 64 475.4 64 448V64c0-27.4 31.9-41.7 52.5-24.6L312 219.3V44c0-6.6 5.4-12 12-12h48c6.6 0 12 5.4 12 12z"]},faStethoscope:{prefix:"fas",iconName:"stethoscope",icon:[512,512,[],"f0f1","M447.1 112c-34.2.5-62.3 28.4-63 62.6-.5 24.3 12.5 45.6 32 56.8V344c0 57.3-50.2 104-112 104-60 0-109.2-44.1-111.9-99.2C265 333.8 320 269.2 320 192V36.6c0-11.4-8.1-21.3-19.3-23.5L237.8.5c-13-2.6-25.6 5.8-28.2 18.8L206.4 35c-2.6 13 5.8 25.6 18.8 28.2l30.7 6.1v121.4c0 52.9-42.2 96.7-95.1 97.2-53.4.5-96.9-42.7-96.9-96V69.4l30.7-6.1c13-2.6 21.4-15.2 18.8-28.2l-3.1-15.7C107.7 6.4 95.1-2 82.1.6L19.3 13C8.1 15.3 0 25.1 0 36.6V192c0 77.3 55.1 142 128.1 156.8C130.7 439.2 208.6 512 304 512c97 0 176-75.4 176-168V231.4c19.1-11.1 32-31.7 32-55.4 0-35.7-29.2-64.5-64.9-64zm.9 80c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"]},faStickyNote:{prefix:"fas",iconName:"sticky-note",icon:[448,512,[],"f249","M312 320h136V56c0-13.3-10.7-24-24-24H24C10.7 32 0 42.7 0 56v400c0 13.3 10.7 24 24 24h264V344c0-13.2 10.8-24 24-24zm129 55l-98 98c-4.5 4.5-10.6 7-17 7h-6V352h128v6.1c0 6.3-2.5 12.4-7 16.9z"]},faStop:{prefix:"fas",iconName:"stop",icon:[448,512,[],"f04d","M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48z"]},faStopCircle:{prefix:"fas",iconName:"stop-circle",icon:[512,512,[],"f28d","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm96 328c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16v160z"]},faStopwatch:{prefix:"fas",iconName:"stopwatch",icon:[448,512,[],"f2f2","M432 304c0 114.9-93.1 208-208 208S16 418.9 16 304c0-104 76.3-190.2 176-205.5V64h-28c-6.6 0-12-5.4-12-12V12c0-6.6 5.4-12 12-12h120c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-28v34.5c37.5 5.8 71.7 21.6 99.7 44.6l27.5-27.5c4.7-4.7 12.3-4.7 17 0l28.3 28.3c4.7 4.7 4.7 12.3 0 17l-29.4 29.4-.6.6C419.7 223.3 432 262.2 432 304zm-176 36V188.5c0-6.6-5.4-12-12-12h-40c-6.6 0-12 5.4-12 12V340c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12z"]},faStopwatch20:{prefix:"fas",iconName:"stopwatch-20",icon:[448,512,[],"e06f","M398.5,190.91l.59-.61,26.59-26.58a16,16,0,0,0,0-22.63L403,118.41a16,16,0,0,0-22.63,0l-24.68,24.68A206.68,206.68,0,0,0,256,98.5V64h32a16,16,0,0,0,16-16V16A16,16,0,0,0,288,0H160a16.05,16.05,0,0,0-16,16V48a16.05,16.05,0,0,0,16,16h32V98.5A207.92,207.92,0,0,0,16.09,297.57C12.64,411.5,106.76,510.22,220.72,512,337.13,513.77,432,420,432,304A206,206,0,0,0,398.5,190.91ZM204.37,377.55a8.2,8.2,0,0,1,8.32,8.07v22.31a8.2,8.2,0,0,1-8.32,8.07H121.52a16.46,16.46,0,0,1-16.61-17.62c2.78-35.22,14.67-57.41,38.45-91.37,20.42-29.19,27.1-37.32,27.1-62.34,0-16.92-1.79-24.27-12.21-24.27-9.39,0-12.69,7.4-12.69,22.68v5.23a8.2,8.2,0,0,1-8.33,8.07h-24.9a8.2,8.2,0,0,1-8.33-8.07v-4.07c0-27.3,8.48-60.24,56.43-60.24,43,0,55.57,25.85,55.57,61,0,35.58-12.44,51.21-34.35,81.31-11.56,15-24.61,35.57-26.41,51.2ZM344,352.32c0,35.16-12.3,63.68-57.23,63.68C243.19,416,232,386.48,232,352.55V247.22c0-40.73,19.58-63.22,56.2-63.22C325,184,344,206.64,344,245.3ZM287.87,221.73c-9.41,0-13.23,7.5-13.23,20V357.68c0,13.11,3.59,20.59,13.23,20.59s13-8,13-21.27V241.06C300.89,229.79,297.88,221.73,287.87,221.73Z"]},faStore:{prefix:"fas",iconName:"store",icon:[616,512,[],"f54e","M602 118.6L537.1 15C531.3 5.7 521 0 510 0H106C95 0 84.7 5.7 78.9 15L14 118.6c-33.5 53.5-3.8 127.9 58.8 136.4 4.5.6 9.1.9 13.7.9 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18 20.1 44.3 33.1 73.8 33.1 29.6 0 55.8-13 73.8-33.1 18.1 20.1 44.3 33.1 73.8 33.1 4.7 0 9.2-.3 13.7-.9 62.8-8.4 92.6-82.8 59-136.4zM529.5 288c-10 0-19.9-1.5-29.5-3.8V384H116v-99.8c-9.6 2.2-19.5 3.8-29.5 3.8-6 0-12.1-.4-18-1.2-5.6-.8-11.1-2.1-16.4-3.6V480c0 17.7 14.3 32 32 32h448c17.7 0 32-14.3 32-32V283.2c-5.4 1.6-10.8 2.9-16.4 3.6-6.1.8-12.1 1.2-18.2 1.2z"]},faStoreAlt:{prefix:"fas",iconName:"store-alt",icon:[640,512,[],"f54f","M320 384H128V224H64v256c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V224h-64v160zm314.6-241.8l-85.3-128c-6-8.9-16-14.2-26.7-14.2H117.4c-10.7 0-20.7 5.3-26.6 14.2l-85.3 128c-14.2 21.3 1 49.8 26.6 49.8H608c25.5 0 40.7-28.5 26.6-49.8zM512 496c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V224h-64v272z"]},faStoreAltSlash:{prefix:"fas",iconName:"store-alt-slash",icon:[640,512,[],"e070","M17.89,123.62,5.51,142.2c-14.2,21.3,1,49.8,26.59,49.8h74.26ZM576,413.42V224H512V364L384,265V224H330.92l-41.4-32H608c25.5,0,40.7-28.5,26.59-49.8l-85.29-128A32.18,32.18,0,0,0,522.6,0H117.42A31.87,31.87,0,0,0,90.81,14.2l-10.66,16L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.81l19.64-25.26a16,16,0,0,0-2.81-22.45ZM320,384H128V224H64V480a32,32,0,0,0,32,32H352a32,32,0,0,0,32-32V406.59l-64-49.47Z"]},faStoreSlash:{prefix:"fas",iconName:"store-slash",icon:[640,512,[],"e071","M121.51,384V284.2a119.43,119.43,0,0,1-28,3.8,123.46,123.46,0,0,1-17.1-1.2,114.88,114.88,0,0,1-15.58-3.6V480c0,17.7,13.59,32,30.4,32H505.75L348.42,384Zm-28-128.09c25.1,0,47.29-10.72,64-27.24L24,120.05c-30.52,53.39-2.45,126.53,56.49,135A95.68,95.68,0,0,0,93.48,255.91ZM602.13,458.09,547.2,413.41V283.2a93.5,93.5,0,0,1-15.57,3.6,127.31,127.31,0,0,1-17.29,1.2,114.89,114.89,0,0,1-28-3.8v79.68L348.52,251.77a88.06,88.06,0,0,0,25.41,4.14c28.11,0,53-13,70.11-33.11,17.19,20.11,42.08,33.11,70.11,33.11a94.31,94.31,0,0,0,13-.91c59.66-8.41,88-82.8,56.06-136.4L521.55,15A30.1,30.1,0,0,0,495.81,0H112A30.11,30.11,0,0,0,86.27,15L76.88,30.78,43.19,3.38A14.68,14.68,0,0,0,21.86,6.19L3.2,31.45A16.58,16.58,0,0,0,5.87,53.91L564.81,508.63a14.69,14.69,0,0,0,21.33-2.82l18.66-25.26A16.58,16.58,0,0,0,602.13,458.09Z"]},faStream:{prefix:"fas",iconName:"stream",icon:[512,512,[],"f550","M16 128h416c8.84 0 16-7.16 16-16V48c0-8.84-7.16-16-16-16H16C7.16 32 0 39.16 0 48v64c0 8.84 7.16 16 16 16zm480 80H80c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16zm-64 176H16c-8.84 0-16 7.16-16 16v64c0 8.84 7.16 16 16 16h416c8.84 0 16-7.16 16-16v-64c0-8.84-7.16-16-16-16z"]},faStreetView:{prefix:"fas",iconName:"street-view",icon:[512,512,[],"f21d","M367.9 329.76c-4.62 5.3-9.78 10.1-15.9 13.65v22.94c66.52 9.34 112 28.05 112 49.65 0 30.93-93.12 56-208 56S48 446.93 48 416c0-21.6 45.48-40.3 112-49.65v-22.94c-6.12-3.55-11.28-8.35-15.9-13.65C58.87 345.34 0 378.05 0 416c0 53.02 114.62 96 256 96s256-42.98 256-96c0-37.95-58.87-70.66-144.1-86.24zM256 128c35.35 0 64-28.65 64-64S291.35 0 256 0s-64 28.65-64 64 28.65 64 64 64zm-64 192v96c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96c17.67 0 32-14.33 32-32v-96c0-26.51-21.49-48-48-48h-11.8c-11.07 5.03-23.26 8-36.2 8s-25.13-2.97-36.2-8H208c-26.51 0-48 21.49-48 48v96c0 17.67 14.33 32 32 32z"]},faStrikethrough:{prefix:"fas",iconName:"strikethrough",icon:[512,512,[],"f0cc","M496 224H293.9l-87.17-26.83A43.55 43.55 0 0 1 219.55 112h66.79A49.89 49.89 0 0 1 331 139.58a16 16 0 0 0 21.46 7.15l42.94-21.47a16 16 0 0 0 7.16-21.46l-.53-1A128 128 0 0 0 287.51 32h-68a123.68 123.68 0 0 0-123 135.64c2 20.89 10.1 39.83 21.78 56.36H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h480a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm-180.24 96A43 43 0 0 1 336 356.45 43.59 43.59 0 0 1 292.45 400h-66.79A49.89 49.89 0 0 1 181 372.42a16 16 0 0 0-21.46-7.15l-42.94 21.47a16 16 0 0 0-7.16 21.46l.53 1A128 128 0 0 0 224.49 480h68a123.68 123.68 0 0 0 123-135.64 114.25 114.25 0 0 0-5.34-24.36z"]},faStroopwafel:{prefix:"fas",iconName:"stroopwafel",icon:[512,512,[],"f551","M188.12 210.74L142.86 256l45.25 45.25L233.37 256l-45.25-45.26zm113.13-22.62L256 142.86l-45.25 45.25L256 233.37l45.25-45.25zm-90.5 135.76L256 369.14l45.26-45.26L256 278.63l-45.25 45.25zM256 0C114.62 0 0 114.62 0 256s114.62 256 256 256 256-114.62 256-256S397.38 0 256 0zm186.68 295.6l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-28.29-28.29-45.25 45.25 33.94 33.94 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-33.94-33.94-45.26 45.26 28.29 28.29c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0L256 414.39l-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l28.29-28.29-45.25-45.26-33.94 33.94 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 33.94-33.94-45.25-45.25-28.29 28.29c-3.12 3.12-8.19 3.12-11.31 0L69.32 295.6c-3.12-3.12-3.12-8.19 0-11.31L97.61 256l-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l28.29 28.29 45.25-45.26-33.94-33.94-16.97 16.97c-3.12 3.12-8.19 3.12-11.31 0l-11.31-11.31c-3.12-3.12-3.12-8.19 0-11.31l16.97-16.97-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 33.94 33.94 45.26-45.25-28.29-28.29c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0L256 97.61l28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-28.29 28.29 45.26 45.25 33.94-33.94-16.97-16.97c-3.12-3.12-3.12-8.19 0-11.31l11.31-11.31c3.12-3.12 8.19-3.12 11.31 0l16.97 16.97 16.97-16.97c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31l-16.97 16.97 16.97 16.97c3.12 3.12 3.12 8.19 0 11.31l-11.31 11.31c-3.12 3.12-8.19 3.12-11.31 0l-16.97-16.97-33.94 33.94 45.25 45.26 28.29-28.29c3.12-3.12 8.19-3.12 11.31 0l11.31 11.31c3.12 3.12 3.12 8.19 0 11.31L414.39 256l28.29 28.28a8.015 8.015 0 0 1 0 11.32zM278.63 256l45.26 45.25L369.14 256l-45.25-45.26L278.63 256z"]},faSubscript:{prefix:"fas",iconName:"subscript",icon:[512,512,[],"f12c","M496 448h-16V304a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 352h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]},faSubway:{prefix:"fas",iconName:"subway",icon:[448,512,[],"f239","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zM200 232V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm200 0V120c0-13.255-10.745-24-24-24H272c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h104c13.255 0 24-10.745 24-24zm-48 56c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48zm-256 0c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]},faSuitcase:{prefix:"fas",iconName:"suitcase",icon:[512,512,[],"f0f2","M128 480h256V80c0-26.5-21.5-48-48-48H176c-26.5 0-48 21.5-48 48v400zm64-384h128v32H192V96zm320 80v256c0 26.5-21.5 48-48 48h-48V128h48c26.5 0 48 21.5 48 48zM96 480H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h48v352z"]},faSuitcaseRolling:{prefix:"fas",iconName:"suitcase-rolling",icon:[384,512,[],"f5c1","M336 160H48c-26.51 0-48 21.49-48 48v224c0 26.51 21.49 48 48 48h16v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h128v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16h16c26.51 0 48-21.49 48-48V208c0-26.51-21.49-48-48-48zm-16 216c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zm0-96c0 4.42-3.58 8-8 8H72c-4.42 0-8-3.58-8-8v-16c0-4.42 3.58-8 8-8h240c4.42 0 8 3.58 8 8v16zM144 48h96v80h48V48c0-26.51-21.49-48-48-48h-96c-26.51 0-48 21.49-48 48v80h48V48z"]},faSun:{prefix:"fas",iconName:"sun",icon:[512,512,[],"f185","M256 160c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm246.4 80.5l-94.7-47.3 33.5-100.4c4.5-13.6-8.4-26.5-21.9-21.9l-100.4 33.5-47.4-94.8c-6.4-12.8-24.6-12.8-31 0l-47.3 94.7L92.7 70.8c-13.6-4.5-26.5 8.4-21.9 21.9l33.5 100.4-94.7 47.4c-12.8 6.4-12.8 24.6 0 31l94.7 47.3-33.5 100.5c-4.5 13.6 8.4 26.5 21.9 21.9l100.4-33.5 47.3 94.7c6.4 12.8 24.6 12.8 31 0l47.3-94.7 100.4 33.5c13.6 4.5 26.5-8.4 21.9-21.9l-33.5-100.4 94.7-47.3c13-6.5 13-24.7.2-31.1zm-155.9 106c-49.9 49.9-131.1 49.9-181 0-49.9-49.9-49.9-131.1 0-181 49.9-49.9 131.1-49.9 181 0 49.9 49.9 49.9 131.1 0 181z"]},faSuperscript:{prefix:"fas",iconName:"superscript",icon:[512,512,[],"f12b","M496 160h-16V16a16 16 0 0 0-16-16h-48a16 16 0 0 0-14.29 8.83l-16 32A16 16 0 0 0 400 64h16v96h-16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h96a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zM336 64h-67a16 16 0 0 0-13.14 6.87l-79.9 115-79.9-115A16 16 0 0 0 83 64H16A16 16 0 0 0 0 80v48a16 16 0 0 0 16 16h33.48l77.81 112-77.81 112H16a16 16 0 0 0-16 16v48a16 16 0 0 0 16 16h67a16 16 0 0 0 13.14-6.87l79.9-115 79.9 115A16 16 0 0 0 269 448h67a16 16 0 0 0 16-16v-48a16 16 0 0 0-16-16h-33.48l-77.81-112 77.81-112H336a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16z"]},faSurprise:{prefix:"fas",iconName:"surprise",icon:[496,512,[],"f5c2","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zM136 208c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm112 208c-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64-28.7 64-64 64zm80-176c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faSwatchbook:{prefix:"fas",iconName:"swatchbook",icon:[512,512,[],"f5c3","M434.66,167.71h0L344.5,77.36a31.83,31.83,0,0,0-45-.07h0l-.07.07L224,152.88V424L434.66,212.9A32,32,0,0,0,434.66,167.71ZM480,320H373.09L186.68,506.51c-2.06,2.07-4.5,3.58-6.68,5.49H480a32,32,0,0,0,32-32V352A32,32,0,0,0,480,320ZM192,32A32,32,0,0,0,160,0H32A32,32,0,0,0,0,32V416a96,96,0,0,0,192,0ZM96,440a24,24,0,1,1,24-24A24,24,0,0,1,96,440Zm32-184H64V192h64Zm0-128H64V64h64Z"]},faSwimmer:{prefix:"fas",iconName:"swimmer",icon:[640,512,[],"f5c4","M189.61 310.58c3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c16.02-14.77 34.5-22.58 53.46-22.58h16.3c18.96 0 37.45 7.81 53.46 22.58 3.54 3.26 15.27 9.42 34.39 9.42s30.86-6.16 34.39-9.42c14.86-13.71 31.88-21.12 49.39-22.16l-112.84-80.6 18-12.86c3.64-2.58 8.28-3.52 12.62-2.61l100.35 21.53c25.91 5.53 51.44-10.97 57-36.88 5.55-25.92-10.95-51.44-36.88-57L437.68 98.47c-30.73-6.58-63.02.12-88.56 18.38l-80.02 57.17c-10.38 7.39-19.36 16.44-26.72 26.94L173.75 299c5.47 3.23 10.82 6.93 15.86 11.58zM624 352h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 343.58 442.04 352 416 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 343.58 250.04 352 224 352s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 343.58 58.04 352 32 352H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-512-96c44.18 0 80-35.82 80-80s-35.82-80-80-80-80 35.82-80 80 35.82 80 80 80z"]},faSwimmingPool:{prefix:"fas",iconName:"swimming-pool",icon:[640,512,[],"f5c5","M624 416h-16c-26.04 0-45.8-8.42-56.09-17.9-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C461.8 407.58 442.04 416 416 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C269.8 407.58 250.04 416 224 416s-45.8-8.42-56.09-17.9c-8.9-8.21-19.66-14.1-31.77-14.1h-16.3c-12.11 0-22.87 5.89-31.77 14.1C77.8 407.58 58.04 416 32 416H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16c38.62 0 72.72-12.19 96-31.84 23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84s72.72-12.19 96-31.84c23.28 19.66 57.38 31.84 96 31.84h16c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-400-32v-96h192v96c19.12 0 30.86-6.16 34.39-9.42 9.17-8.46 19.2-14.34 29.61-18.07V128c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v96H224v-96c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-16c0-52.94-43.06-96-96-96s-96 43.06-96 96v228.5c10.41 3.73 20.44 9.62 29.61 18.07 3.53 3.27 15.27 9.43 34.39 9.43z"]},faSynagogue:{prefix:"fas",iconName:"synagogue",icon:[640,512,[],"f69b","M70 196.51L6.67 268.29A26.643 26.643 0 0 0 0 285.93V512h128V239.58l-38-43.07c-5.31-6.01-14.69-6.01-20 0zm563.33 71.78L570 196.51c-5.31-6.02-14.69-6.02-20 0l-38 43.07V512h128V285.93c0-6.5-2.37-12.77-6.67-17.64zM339.99 7.01c-11.69-9.35-28.29-9.35-39.98 0l-128 102.4A32.005 32.005 0 0 0 160 134.4V512h96v-92.57c0-31.88 21.78-61.43 53.25-66.55C349.34 346.35 384 377.13 384 416v96h96V134.4c0-9.72-4.42-18.92-12.01-24.99l-128-102.4zm52.07 215.55c1.98 3.15-.29 7.24-4 7.24h-38.94L324 269.79c-1.85 2.95-6.15 2.95-8 0l-25.12-39.98h-38.94c-3.72 0-5.98-4.09-4-7.24l19.2-30.56-19.2-30.56c-1.98-3.15.29-7.24 4-7.24h38.94l25.12-40c1.85-2.95 6.15-2.95 8 0l25.12 39.98h38.95c3.71 0 5.98 4.09 4 7.24L372.87 192l19.19 30.56z"]},faSync:{prefix:"fas",iconName:"sync",icon:[512,512,[],"f021","M440.65 12.57l4 82.77A247.16 247.16 0 0 0 255.83 8C134.73 8 33.91 94.92 12.29 209.82A12 12 0 0 0 24.09 224h49.05a12 12 0 0 0 11.67-9.26 175.91 175.91 0 0 1 317-56.94l-101.46-4.86a12 12 0 0 0-12.57 12v47.41a12 12 0 0 0 12 12H500a12 12 0 0 0 12-12V12a12 12 0 0 0-12-12h-47.37a12 12 0 0 0-11.98 12.57zM255.83 432a175.61 175.61 0 0 1-146-77.8l101.8 4.87a12 12 0 0 0 12.57-12v-47.4a12 12 0 0 0-12-12H12a12 12 0 0 0-12 12V500a12 12 0 0 0 12 12h47.35a12 12 0 0 0 12-12.6l-4.15-82.57A247.17 247.17 0 0 0 255.83 504c121.11 0 221.93-86.92 243.55-201.82a12 12 0 0 0-11.8-14.18h-49.05a12 12 0 0 0-11.67 9.26A175.86 175.86 0 0 1 255.83 432z"]},faSyncAlt:{prefix:"fas",iconName:"sync-alt",icon:[512,512,[],"f2f1","M370.72 133.28C339.458 104.008 298.888 87.962 255.848 88c-77.458.068-144.328 53.178-162.791 126.85-1.344 5.363-6.122 9.15-11.651 9.15H24.103c-7.498 0-13.194-6.807-11.807-14.176C33.933 94.924 134.813 8 256 8c66.448 0 126.791 26.136 171.315 68.685L463.03 40.97C478.149 25.851 504 36.559 504 57.941V192c0 13.255-10.745 24-24 24H345.941c-21.382 0-32.09-25.851-16.971-40.971l41.75-41.749zM32 296h134.059c21.382 0 32.09 25.851 16.971 40.971l-41.75 41.75c31.262 29.273 71.835 45.319 114.876 45.28 77.418-.07 144.315-53.144 162.787-126.849 1.344-5.363 6.122-9.15 11.651-9.15h57.304c7.498 0 13.194 6.807 11.807 14.176C478.067 417.076 377.187 504 256 504c-66.448 0-126.791-26.136-171.315-68.685L48.97 471.03C33.851 486.149 8 475.441 8 454.059V320c0-13.255 10.745-24 24-24z"]},faSyringe:{prefix:"fas",iconName:"syringe",icon:[512,512,[],"f48e","M201.5 174.8l55.7 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-55.7-55.8-45.3 45.3 55.8 55.8c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L111 265.2l-26.4 26.4c-17.3 17.3-25.6 41.1-23 65.4l7.1 63.6L2.3 487c-3.1 3.1-3.1 8.2 0 11.3l11.3 11.3c3.1 3.1 8.2 3.1 11.3 0l66.3-66.3 63.6 7.1c23.9 2.6 47.9-5.4 65.4-23l181.9-181.9-135.7-135.7-64.9 65zm308.2-93.3L430.5 2.3c-3.1-3.1-8.2-3.1-11.3 0l-11.3 11.3c-3.1 3.1-3.1 8.2 0 11.3l28.3 28.3-45.3 45.3-56.6-56.6-17-17c-3.1-3.1-8.2-3.1-11.3 0l-33.9 33.9c-3.1 3.1-3.1 8.2 0 11.3l17 17L424.8 223l17 17c3.1 3.1 8.2 3.1 11.3 0l33.9-34c3.1-3.1 3.1-8.2 0-11.3l-73.5-73.5 45.3-45.3 28.3 28.3c3.1 3.1 8.2 3.1 11.3 0l11.3-11.3c3.1-3.2 3.1-8.2 0-11.4z"]},faTable:{prefix:"fas",iconName:"table",icon:[512,512,[],"f0ce","M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z"]},faTableTennis:{prefix:"fas",iconName:"table-tennis",icon:[512,512,[],"f45d","M496.2 296.5C527.7 218.7 512 126.2 449 63.1 365.1-21 229-21 145.1 63.1l-56 56.1 211.5 211.5c46.1-62.1 131.5-77.4 195.6-34.2zm-217.9 79.7L57.9 155.9c-27.3 45.3-21.7 105 17.3 144.1l34.5 34.6L6.7 424c-8.6 7.5-9.1 20.7-1 28.8l53.4 53.5c8 8.1 21.2 7.6 28.7-1L177.1 402l35.7 35.7c19.7 19.7 44.6 30.5 70.3 33.3-7.1-17-11-35.6-11-55.1-.1-13.8 2.5-27 6.2-39.7zM416 320c-53 0-96 43-96 96s43 96 96 96 96-43 96-96-43-96-96-96z"]},faTablet:{prefix:"fas",iconName:"tablet",icon:[448,512,[],"f10a","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"]},faTabletAlt:{prefix:"fas",iconName:"tablet-alt",icon:[448,512,[],"f3fa","M400 0H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V48c0-26.5-21.5-48-48-48zM224 480c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm176-108c0 6.6-5.4 12-12 12H60c-6.6 0-12-5.4-12-12V60c0-6.6 5.4-12 12-12h328c6.6 0 12 5.4 12 12v312z"]},faTablets:{prefix:"fas",iconName:"tablets",icon:[640,512,[],"f490","M160 192C78.9 192 12.5 250.5.1 326.7c-.8 4.8 3.3 9.3 8.3 9.3h303.3c5 0 9.1-4.5 8.3-9.3C307.5 250.5 241.1 192 160 192zm151.6 176H8.4c-5 0-9.1 4.5-8.3 9.3C12.5 453.5 78.9 512 160 512s147.5-58.5 159.9-134.7c.8-4.8-3.3-9.3-8.3-9.3zM593.4 46.6c-56.5-56.5-144.2-61.4-206.9-16-4 2.9-4.3 8.9-.8 12.3L597 254.3c3.5 3.5 9.5 3.2 12.3-.8 45.5-62.7 40.6-150.4-15.9-206.9zM363 65.7c-3.5-3.5-9.5-3.2-12.3.8-45.4 62.7-40.5 150.4 15.9 206.9 56.5 56.5 144.2 61.4 206.9 15.9 4-2.9 4.3-8.9.8-12.3L363 65.7z"]},faTachometerAlt:{prefix:"fas",iconName:"tachometer-alt",icon:[576,512,[],"f3fd","M288 32C128.94 32 0 160.94 0 320c0 52.8 14.25 102.26 39.06 144.8 5.61 9.62 16.3 15.2 27.44 15.2h443c11.14 0 21.83-5.58 27.44-15.2C561.75 422.26 576 372.8 576 320c0-159.06-128.94-288-288-288zm0 64c14.71 0 26.58 10.13 30.32 23.65-1.11 2.26-2.64 4.23-3.45 6.67l-9.22 27.67c-5.13 3.49-10.97 6.01-17.64 6.01-17.67 0-32-14.33-32-32S270.33 96 288 96zM96 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm48-160c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm246.77-72.41l-61.33 184C343.13 347.33 352 364.54 352 384c0 11.72-3.38 22.55-8.88 32H232.88c-5.5-9.45-8.88-20.28-8.88-32 0-33.94 26.5-61.43 59.9-63.59l61.34-184.01c4.17-12.56 17.73-19.45 30.36-15.17 12.57 4.19 19.35 17.79 15.17 30.36zm14.66 57.2l15.52-46.55c3.47-1.29 7.13-2.23 11.05-2.23 17.67 0 32 14.33 32 32s-14.33 32-32 32c-11.38-.01-20.89-6.28-26.57-15.22zM480 384c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faTag:{prefix:"fas",iconName:"tag",icon:[512,512,[],"f02b","M0 252.118V48C0 21.49 21.49 0 48 0h204.118a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882L293.823 497.941c-18.745 18.745-49.137 18.745-67.882 0L14.059 286.059A48 48 0 0 1 0 252.118zM112 64c-26.51 0-48 21.49-48 48s21.49 48 48 48 48-21.49 48-48-21.49-48-48-48z"]},faTags:{prefix:"fas",iconName:"tags",icon:[640,512,[],"f02c","M497.941 225.941L286.059 14.059A48 48 0 0 0 252.118 0H48C21.49 0 0 21.49 0 48v204.118a48 48 0 0 0 14.059 33.941l211.882 211.882c18.744 18.745 49.136 18.746 67.882 0l204.118-204.118c18.745-18.745 18.745-49.137 0-67.882zM112 160c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm513.941 133.823L421.823 497.941c-18.745 18.745-49.137 18.745-67.882 0l-.36-.36L527.64 323.522c16.999-16.999 26.36-39.6 26.36-63.64s-9.362-46.641-26.36-63.64L331.397 0h48.721a48 48 0 0 1 33.941 14.059l211.882 211.882c18.745 18.745 18.745 49.137 0 67.882z"]},faTape:{prefix:"fas",iconName:"tape",icon:[640,512,[],"f4db","M224 192c-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64-28.7-64-64-64zm400 224H380.6c41.5-40.7 67.4-97.3 67.4-160 0-123.7-100.3-224-224-224S0 132.3 0 256s100.3 224 224 224h400c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400-64c-53 0-96-43-96-96s43-96 96-96 96 43 96 96-43 96-96 96z"]},faTasks:{prefix:"fas",iconName:"tasks",icon:[512,512,[],"f0ae","M139.61 35.5a12 12 0 0 0-17 0L58.93 98.81l-22.7-22.12a12 12 0 0 0-17 0L3.53 92.41a12 12 0 0 0 0 17l47.59 47.4a12.78 12.78 0 0 0 17.61 0l15.59-15.62L156.52 69a12.09 12.09 0 0 0 .09-17zm0 159.19a12 12 0 0 0-17 0l-63.68 63.72-22.7-22.1a12 12 0 0 0-17 0L3.53 252a12 12 0 0 0 0 17L51 316.5a12.77 12.77 0 0 0 17.6 0l15.7-15.69 72.2-72.22a12 12 0 0 0 .09-16.9zM64 368c-26.49 0-48.59 21.5-48.59 48S37.53 464 64 464a48 48 0 0 0 0-96zm432 16H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16zm0-320H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16V80a16 16 0 0 0-16-16zm0 160H208a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h288a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faTaxi:{prefix:"fas",iconName:"taxi",icon:[512,512,[],"f1ba","M462 241.64l-22-84.84c-9.6-35.2-41.6-60.8-76.8-60.8H352V64c0-17.67-14.33-32-32-32H192c-17.67 0-32 14.33-32 32v32h-11.2c-35.2 0-67.2 25.6-76.8 60.8l-22 84.84C21.41 248.04 0 273.47 0 304v48c0 23.63 12.95 44.04 32 55.12V448c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-32h256v32c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32v-40.88c19.05-11.09 32-31.5 32-55.12v-48c0-30.53-21.41-55.96-50-62.36zM96 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm20.55-112l17.2-66.36c2.23-8.16 9.59-13.64 15.06-13.64h214.4c5.47 0 12.83 5.48 14.85 12.86L395.45 240h-278.9zM416 352c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faTeeth:{prefix:"fas",iconName:"teeth",icon:[640,512,[],"f62e","M544 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96V96c0-53.02-42.98-96-96-96zM160 368c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm144 120c0 30.93-25.07 56-56 56s-56-25.07-56-56v-56c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v56zm0-120c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-88c0-30.93 25.07-56 56-56s56 25.07 56 56v88zm128 128c0 26.51-21.49 48-48 48s-48-21.49-48-48v-64c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v64zm0-128c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-64c0-26.51 21.49-48 48-48s48 21.49 48 48v64z"]},faTeethOpen:{prefix:"fas",iconName:"teeth-open",icon:[640,512,[],"f62f","M544 0H96C42.98 0 0 42.98 0 96v64c0 35.35 28.66 64 64 64h512c35.34 0 64-28.65 64-64V96c0-53.02-42.98-96-96-96zM160 176c0 8.84-7.16 16-16 16H80c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm144 0c0 8.84-7.16 16-16 16h-80c-8.84 0-16-7.16-16-16v-56c0-30.93 25.07-56 56-56s56 25.07 56 56v56zm128 0c0 8.84-7.16 16-16 16h-64c-8.84 0-16-7.16-16-16v-32c0-26.51 21.49-48 48-48s48 21.49 48 48v32zm0 144H64c-35.34 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h448c53.02 0 96-42.98 96-96v-32c0-35.35-28.66-64-64-64zm-416 80c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32zm144-8c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm144 0c0 30.93-25.07 56-56 56s-56-25.07-56-56v-24c0-8.84 7.16-16 16-16h80c8.84 0 16 7.16 16 16v24zm128 8c0 26.51-21.49 48-48 48s-48-21.49-48-48v-32c0-8.84 7.16-16 16-16h64c8.84 0 16 7.16 16 16v32z"]},faTemperatureHigh:{prefix:"fas",iconName:"temperature-high",icon:[512,512,[],"f769","M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V112c0-8.8-7.2-16-16-16s-16 7.2-16 16v210.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]},faTemperatureLow:{prefix:"fas",iconName:"temperature-low",icon:[512,512,[],"f76b","M416 0c-52.9 0-96 43.1-96 96s43.1 96 96 96 96-43.1 96-96-43.1-96-96-96zm0 128c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32zm-160-16C256 50.1 205.9 0 144 0S32 50.1 32 112v166.5C12.3 303.2 0 334 0 368c0 79.5 64.5 144 144 144s144-64.5 144-144c0-34-12.3-64.9-32-89.5V112zM144 448c-44.1 0-80-35.9-80-80 0-25.5 12.2-48.9 32-63.8V112c0-26.5 21.5-48 48-48s48 21.5 48 48v192.2c19.8 14.8 32 38.3 32 63.8 0 44.1-35.9 80-80 80zm16-125.1V304c0-8.8-7.2-16-16-16s-16 7.2-16 16v18.9c-18.6 6.6-32 24.2-32 45.1 0 26.5 21.5 48 48 48s48-21.5 48-48c0-20.9-13.4-38.5-32-45.1z"]},faTenge:{prefix:"fas",iconName:"tenge",icon:[384,512,[],"f7d7","M372 160H12c-6.6 0-12 5.4-12 12v56c0 6.6 5.4 12 12 12h140v228c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12V240h140c6.6 0 12-5.4 12-12v-56c0-6.6-5.4-12-12-12zm0-128H12C5.4 32 0 37.4 0 44v56c0 6.6 5.4 12 12 12h360c6.6 0 12-5.4 12-12V44c0-6.6-5.4-12-12-12z"]},faTerminal:{prefix:"fas",iconName:"terminal",icon:[640,512,[],"f120","M257.981 272.971L63.638 467.314c-9.373 9.373-24.569 9.373-33.941 0L7.029 444.647c-9.357-9.357-9.375-24.522-.04-33.901L161.011 256 6.99 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L257.981 239.03c9.373 9.372 9.373 24.568 0 33.941zM640 456v-32c0-13.255-10.745-24-24-24H312c-13.255 0-24 10.745-24 24v32c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24z"]},faTextHeight:{prefix:"fas",iconName:"text-height",icon:[576,512,[],"f034","M304 32H16A16 16 0 0 0 0 48v96a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-32h56v304H80a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h160a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-40V112h56v32a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm256 336h-48V144h48c14.31 0 21.33-17.31 11.31-27.31l-80-80a16 16 0 0 0-22.62 0l-80 80C379.36 126 384.36 144 400 144h48v224h-48c-14.31 0-21.32 17.31-11.31 27.31l80 80a16 16 0 0 0 22.62 0l80-80C580.64 386 575.64 368 560 368z"]},faTextWidth:{prefix:"fas",iconName:"text-width",icon:[448,512,[],"f035","M432 32H16A16 16 0 0 0 0 48v80a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16v-16h120v112h-24a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h128a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16h-24V112h120v16a16 16 0 0 0 16 16h32a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zm-68.69 260.69C354 283.36 336 288.36 336 304v48H112v-48c0-14.31-17.31-21.32-27.31-11.31l-80 80a16 16 0 0 0 0 22.62l80 80C94 484.64 112 479.64 112 464v-48h224v48c0 14.31 17.31 21.33 27.31 11.31l80-80a16 16 0 0 0 0-22.62z"]},faTh:{prefix:"fas",iconName:"th",icon:[512,512,[],"f00a","M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z"]},faThLarge:{prefix:"fas",iconName:"th-large",icon:[512,512,[],"f009","M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z"]},faThList:{prefix:"fas",iconName:"th-list",icon:[512,512,[],"f00b","M149.333 216v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24v-80c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zM125.333 32H24C10.745 32 0 42.745 0 56v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zm80 448H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm-24-424v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24zm24 264H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24z"]},faTheaterMasks:{prefix:"fas",iconName:"theater-masks",icon:[640,512,[],"f630","M206.86 245.15c-35.88 10.45-59.95 41.2-57.53 74.1 11.4-12.72 28.81-23.7 49.9-30.92l7.63-43.18zM95.81 295L64.08 115.49c-.29-1.62.28-2.62.24-2.65 57.76-32.06 123.12-49.01 189.01-49.01 1.61 0 3.23.17 4.85.19 13.95-13.47 31.73-22.83 51.59-26 18.89-3.02 38.05-4.55 57.18-5.32-9.99-13.95-24.48-24.23-41.77-27C301.27 1.89 277.24 0 253.32 0 176.66 0 101.02 19.42 33.2 57.06 9.03 70.48-3.92 98.48 1.05 126.58l31.73 179.51c14.23 80.52 136.33 142.08 204.45 142.08 3.59 0 6.75-.46 10.01-.8-13.52-17.08-28.94-40.48-39.5-67.58-47.61-12.98-106.06-51.62-111.93-84.79zm97.55-137.46c-.73-4.12-2.23-7.87-4.07-11.4-8.25 8.91-20.67 15.75-35.32 18.32-14.65 2.58-28.67.4-39.48-5.17-.52 3.94-.64 7.98.09 12.1 3.84 21.7 24.58 36.19 46.34 32.37 21.75-3.82 36.28-24.52 32.44-46.22zM606.8 120.9c-88.98-49.38-191.43-67.41-291.98-51.35-27.31 4.36-49.08 26.26-54.04 54.36l-31.73 179.51c-15.39 87.05 95.28 196.27 158.31 207.35 63.03 11.09 204.47-53.79 219.86-140.84l31.73-179.51c4.97-28.11-7.98-56.11-32.15-69.52zm-273.24 96.8c3.84-21.7 24.58-36.19 46.34-32.36 21.76 3.83 36.28 24.52 32.45 46.22-.73 4.12-2.23 7.87-4.07 11.4-8.25-8.91-20.67-15.75-35.32-18.32-14.65-2.58-28.67-.4-39.48 5.17-.53-3.95-.65-7.99.08-12.11zm70.47 198.76c-55.68-9.79-93.52-59.27-89.04-112.9 20.6 25.54 56.21 46.17 99.49 53.78 43.28 7.61 83.82.37 111.93-16.6-14.18 51.94-66.71 85.51-122.38 75.72zm130.3-151.34c-8.25-8.91-20.68-15.75-35.33-18.32-14.65-2.58-28.67-.4-39.48 5.17-.52-3.94-.64-7.98.09-12.1 3.84-21.7 24.58-36.19 46.34-32.37 21.75 3.83 36.28 24.52 32.45 46.22-.73 4.13-2.23 7.88-4.07 11.4z"]},faThermometer:{prefix:"fas",iconName:"thermometer",icon:[512,512,[],"f491","M476.8 20.4c-37.5-30.7-95.5-26.3-131.9 10.2l-45.7 46 50.5 50.5c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.4-50.5-45.1 45.4 50.3 50.4c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0L209 167.4l-45.1 45.4L214 263c3.1 3.1 3.1 8.2 0 11.3l-11.3 11.3c-3.1 3.1-8.2 3.1-11.3 0l-50.1-50.2L96 281.1V382L7 471c-9.4 9.4-9.4 24.6 0 33.9 9.4 9.4 24.6 9.4 33.9 0l89-89h99.9L484 162.6c34.9-34.9 42.2-101.5-7.2-142.2z"]},faThermometerEmpty:{prefix:"fas",iconName:"thermometer-empty",icon:[256,512,[],"f2cb","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-35.346 28.654-64 64-64s64 28.654 64 64zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThermometerFull:{prefix:"fas",iconName:"thermometer-full",icon:[256,512,[],"f2c7","M224 96c0-53.019-42.981-96-96-96S32 42.981 32 96v203.347C12.225 321.756.166 351.136.002 383.333c-.359 70.303 56.787 128.176 127.089 128.664.299.002.61.003.909.003 70.698 0 128-57.304 128-128 0-32.459-12.088-62.09-32-84.653V96zm-96 368l-.576-.002c-43.86-.304-79.647-36.544-79.423-80.42.173-33.98 19.266-51.652 31.999-66.08V96c0-26.467 21.533-48 48-48s48 21.533 48 48v221.498c12.63 14.312 32 32.164 32 66.502 0 44.112-35.888 80-80 80zm64-80c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V96c0-17.673 14.327-32 32-32s32 14.327 32 32v232.583c19.124 11.068 32 31.732 32 55.417z"]},faThermometerHalf:{prefix:"fas",iconName:"thermometer-half",icon:[256,512,[],"f2c9","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V224c0-17.673 14.327-32 32-32s32 14.327 32 32v104.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThermometerQuarter:{prefix:"fas",iconName:"thermometer-quarter",icon:[256,512,[],"f2ca","M192 384c0 35.346-28.654 64-64 64s-64-28.654-64-64c0-23.685 12.876-44.349 32-55.417V288c0-17.673 14.327-32 32-32s32 14.327 32 32v40.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThermometerThreeQuarters:{prefix:"fas",iconName:"thermometer-three-quarters",icon:[256,512,[],"f2c8","M192 384c0 35.346-28.654 64-64 64-35.346 0-64-28.654-64-64 0-23.685 12.876-44.349 32-55.417V160c0-17.673 14.327-32 32-32s32 14.327 32 32v168.583c19.124 11.068 32 31.732 32 55.417zm32-84.653c19.912 22.563 32 52.194 32 84.653 0 70.696-57.303 128-128 128-.299 0-.609-.001-.909-.003C56.789 511.509-.357 453.636.002 383.333.166 351.135 12.225 321.755 32 299.347V96c0-53.019 42.981-96 96-96s96 42.981 96 96v203.347zM208 384c0-34.339-19.37-52.19-32-66.502V96c0-26.467-21.533-48-48-48S80 69.533 80 96v221.498c-12.732 14.428-31.825 32.1-31.999 66.08-.224 43.876 35.563 80.116 79.423 80.42L128 464c44.112 0 80-35.888 80-80z"]},faThumbsDown:{prefix:"fas",iconName:"thumbs-down",icon:[512,512,[],"f165","M0 56v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H24C10.745 32 0 42.745 0 56zm40 200c0-13.255 10.745-24 24-24s24 10.745 24 24-10.745 24-24 24-24-10.745-24-24zm272 256c-20.183 0-29.485-39.293-33.931-57.795-5.206-21.666-10.589-44.07-25.393-58.902-32.469-32.524-49.503-73.967-89.117-113.111a11.98 11.98 0 0 1-3.558-8.521V59.901c0-6.541 5.243-11.878 11.783-11.998 15.831-.29 36.694-9.079 52.651-16.178C256.189 17.598 295.709.017 343.995 0h2.844c42.777 0 93.363.413 113.774 29.737 8.392 12.057 10.446 27.034 6.148 44.632 16.312 17.053 25.063 48.863 16.382 74.757 17.544 23.432 19.143 56.132 9.308 79.469l.11.11c11.893 11.949 19.523 31.259 19.439 49.197-.156 30.352-26.157 58.098-59.553 58.098H350.723C358.03 364.34 384 388.132 384 430.548 384 504 336 512 312 512z"]},faThumbsUp:{prefix:"fas",iconName:"thumbs-up",icon:[512,512,[],"f164","M104 224H24c-13.255 0-24 10.745-24 24v240c0 13.255 10.745 24 24 24h80c13.255 0 24-10.745 24-24V248c0-13.255-10.745-24-24-24zM64 472c-13.255 0-24-10.745-24-24s10.745-24 24-24 24 10.745 24 24-10.745 24-24 24zM384 81.452c0 42.416-25.97 66.208-33.277 94.548h101.723c33.397 0 59.397 27.746 59.553 58.098.084 17.938-7.546 37.249-19.439 49.197l-.11.11c9.836 23.337 8.237 56.037-9.308 79.469 8.681 25.895-.069 57.704-16.382 74.757 4.298 17.598 2.244 32.575-6.148 44.632C440.202 511.587 389.616 512 346.839 512l-2.845-.001c-48.287-.017-87.806-17.598-119.56-31.725-15.957-7.099-36.821-15.887-52.651-16.178-6.54-.12-11.783-5.457-11.783-11.998v-213.77c0-3.2 1.282-6.271 3.558-8.521 39.614-39.144 56.648-80.587 89.117-113.111 14.804-14.832 20.188-37.236 25.393-58.902C282.515 39.293 291.817 0 312 0c24 0 72 8 72 81.452z"]},faThumbtack:{prefix:"fas",iconName:"thumbtack",icon:[384,512,[],"f08d","M298.028 214.267L285.793 96H328c13.255 0 24-10.745 24-24V24c0-13.255-10.745-24-24-24H56C42.745 0 32 10.745 32 24v48c0 13.255 10.745 24 24 24h42.207L85.972 214.267C37.465 236.82 0 277.261 0 328c0 13.255 10.745 24 24 24h136v104.007c0 1.242.289 2.467.845 3.578l24 48c2.941 5.882 11.364 5.893 14.311 0l24-48a8.008 8.008 0 0 0 .845-3.578V352h136c13.255 0 24-10.745 24-24-.001-51.183-37.983-91.42-85.973-113.733z"]},faTicketAlt:{prefix:"fas",iconName:"ticket-alt",icon:[576,512,[],"f3ff","M128 160h320v192H128V160zm400 96c0 26.51 21.49 48 48 48v96c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48v-96c26.51 0 48-21.49 48-48s-21.49-48-48-48v-96c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v96c-26.51 0-48 21.49-48 48zm-48-104c0-13.255-10.745-24-24-24H120c-13.255 0-24 10.745-24 24v208c0 13.255 10.745 24 24 24h336c13.255 0 24-10.745 24-24V152z"]},faTimes:{prefix:"fas",iconName:"times",icon:[352,512,[],"f00d","M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"]},faTimesCircle:{prefix:"fas",iconName:"times-circle",icon:[512,512,[],"f057","M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"]},faTint:{prefix:"fas",iconName:"tint",icon:[352,512,[],"f043","M205.22 22.09c-7.94-28.78-49.44-30.12-58.44 0C100.01 179.85 0 222.72 0 333.91 0 432.35 78.72 512 176 512s176-79.65 176-178.09c0-111.75-99.79-153.34-146.78-311.82zM176 448c-61.75 0-112-50.25-112-112 0-8.84 7.16-16 16-16s16 7.16 16 16c0 44.11 35.89 80 80 80 8.84 0 16 7.16 16 16s-7.16 16-16 16z"]},faTintSlash:{prefix:"fas",iconName:"tint-slash",icon:[640,512,[],"f5c7","M633.82 458.1L494.97 350.78c.52-5.57 1.03-11.16 1.03-16.87 0-111.76-99.79-153.34-146.78-311.82-7.94-28.78-49.44-30.12-58.44 0-15.52 52.34-36.87 91.96-58.49 125.68L45.47 3.37C38.49-2.05 28.43-.8 23.01 6.18L3.37 31.45C-2.05 38.42-.8 48.47 6.18 53.9l588.36 454.73c6.98 5.43 17.03 4.17 22.46-2.81l19.64-25.27c5.41-6.97 4.16-17.02-2.82-22.45zM144 333.91C144 432.35 222.72 512 320 512c44.71 0 85.37-16.96 116.4-44.7L162.72 255.78c-11.41 23.5-18.72 48.35-18.72 78.13z"]},faTired:{prefix:"fas",iconName:"tired",icon:[496,512,[],"f5c8","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm33.8 189.7l80-48c11.6-6.9 24 7.7 15.4 18L343.6 208l33.6 40.3c8.7 10.4-3.9 24.8-15.4 18l-80-48c-7.7-4.7-7.7-15.9 0-20.6zm-163-30c-8.6-10.3 3.8-24.9 15.4-18l80 48c7.8 4.7 7.8 15.9 0 20.6l-80 48c-11.5 6.8-24-7.6-15.4-18l33.6-40.3-33.6-40.3zM248 288c51.9 0 115.3 43.8 123.2 106.7 1.7 13.6-8 24.6-17.7 20.4-25.9-11.1-64.4-17.4-105.5-17.4s-79.6 6.3-105.5 17.4c-9.8 4.2-19.4-7-17.7-20.4C132.7 331.8 196.1 288 248 288z"]},faToggleOff:{prefix:"fas",iconName:"toggle-off",icon:[576,512,[],"f204","M384 64H192C85.961 64 0 149.961 0 256s85.961 192 192 192h192c106.039 0 192-85.961 192-192S490.039 64 384 64zM64 256c0-70.741 57.249-128 128-128 70.741 0 128 57.249 128 128 0 70.741-57.249 128-128 128-70.741 0-128-57.249-128-128zm320 128h-48.905c65.217-72.858 65.236-183.12 0-256H384c70.741 0 128 57.249 128 128 0 70.74-57.249 128-128 128z"]},faToggleOn:{prefix:"fas",iconName:"toggle-on",icon:[576,512,[],"f205","M384 64H192C86 64 0 150 0 256s86 192 192 192h192c106 0 192-86 192-192S490 64 384 64zm0 320c-70.8 0-128-57.3-128-128 0-70.8 57.3-128 128-128 70.8 0 128 57.3 128 128 0 70.8-57.3 128-128 128z"]},faToilet:{prefix:"fas",iconName:"toilet",icon:[384,512,[],"f7d8","M368 48c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16H16C7.2 0 0 7.2 0 16v16c0 8.8 7.2 16 16 16h16v156.7C11.8 214.8 0 226.9 0 240c0 67.2 34.6 126.2 86.8 160.5l-21.4 70.2C59.1 491.2 74.5 512 96 512h192c21.5 0 36.9-20.8 30.6-41.3l-21.4-70.2C349.4 366.2 384 307.2 384 240c0-13.1-11.8-25.2-32-35.3V48h16zM80 72c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H88c-4.4 0-8-3.6-8-8V72zm112 200c-77.1 0-139.6-14.3-139.6-32s62.5-32 139.6-32 139.6 14.3 139.6 32-62.5 32-139.6 32z"]},faToiletPaper:{prefix:"fas",iconName:"toilet-paper",icon:[576,512,[],"f71e","M128 0C74.98 0 32 85.96 32 192v172.07c0 41.12-9.8 62.77-31.17 126.87C-2.62 501.3 5.09 512 16.01 512h280.92c13.77 0 26-8.81 30.36-21.88 12.83-38.48 24.71-72.4 24.71-126.05V192c0-83.6 23.67-153.52 60.44-192H128zM96 224c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zm64 0c-8.84 0-16-7.16-16-16s7.16-16 16-16 16 7.16 16 16-7.16 16-16 16zM480 0c-53.02 0-96 85.96-96 192s42.98 192 96 192 96-85.96 96-192S533.02 0 480 0zm0 256c-17.67 0-32-28.65-32-64s14.33-64 32-64 32 28.65 32 64-14.33 64-32 64z"]},faToiletPaperSlash:{prefix:"fas",iconName:"toilet-paper-slash",icon:[640,512,[],"e072","M64,192V364.13c0,41.12-9.75,62.75-31.12,126.87A16,16,0,0,0,48,512H328.86a31.87,31.87,0,0,0,30.38-21.87c9.31-27.83,18-53.35,22.18-85.55l-316-244.25C64.53,170.66,64,181.19,64,192ZM633.82,458.09l-102-78.81C575.28,360.91,608,284.32,608,192,608,86,565,0,512,0s-96,86-96,192c0,42,7,80.4,18.43,112L384,265V192c0-83.62,23.63-153.5,60.5-192H160c-23.33,0-44.63,16.83-61.26,44.53L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.45A16,16,0,0,0,6.18,53.91L594.54,508.63A16,16,0,0,0,617,505.81l19.64-25.26A16,16,0,0,0,633.82,458.09ZM512,256c-17.63,0-32-28.62-32-64s14.37-64,32-64,32,28.63,32,64S529.62,256,512,256Z"]},faToolbox:{prefix:"fas",iconName:"toolbox",icon:[512,512,[],"f552","M502.63 214.63l-45.25-45.25c-6-6-14.14-9.37-22.63-9.37H384V80c0-26.51-21.49-48-48-48H176c-26.51 0-48 21.49-48 48v80H77.25c-8.49 0-16.62 3.37-22.63 9.37L9.37 214.63c-6 6-9.37 14.14-9.37 22.63V320h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-16c0-8.84 7.16-16 16-16h32c8.84 0 16 7.16 16 16v16h128v-82.75c0-8.48-3.37-16.62-9.37-22.62zM320 160H192V96h128v64zm64 208c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H192v16c0 8.84-7.16 16-16 16h-32c-8.84 0-16-7.16-16-16v-16H0v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96H384v16z"]},faTools:{prefix:"fas",iconName:"tools",icon:[512,512,[],"f7d9","M501.1 395.7L384 278.6c-23.1-23.1-57.6-27.6-85.4-13.9L192 158.1V96L64 0 0 64l96 128h62.1l106.6 106.6c-13.6 27.8-9.2 62.3 13.9 85.4l117.1 117.1c14.6 14.6 38.2 14.6 52.7 0l52.7-52.7c14.5-14.6 14.5-38.2 0-52.7zM331.7 225c28.3 0 54.9 11 74.9 31l19.4 19.4c15.8-6.9 30.8-16.5 43.8-29.5 37.1-37.1 49.7-89.3 37.9-136.7-2.2-9-13.5-12.1-20.1-5.5l-74.4 74.4-67.9-11.3L334 98.9l74.4-74.4c6.6-6.6 3.4-17.9-5.7-20.2-47.4-11.7-99.6.9-136.6 37.9-28.5 28.5-41.9 66.1-41.2 103.6l82.1 82.1c8.1-1.9 16.5-2.9 24.7-2.9zm-103.9 82l-56.7-56.7L18.7 402.8c-25 25-25 65.5 0 90.5s65.5 25 90.5 0l123.6-123.6c-7.6-19.9-9.9-41.6-5-62.7zM64 472c-13.2 0-24-10.8-24-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13.2-10.7 24-24 24z"]},faTooth:{prefix:"fas",iconName:"tooth",icon:[448,512,[],"f5c9","M443.98 96.25c-11.01-45.22-47.11-82.06-92.01-93.72-32.19-8.36-63 5.1-89.14 24.33-3.25 2.39-6.96 3.73-10.5 5.48l28.32 18.21c7.42 4.77 9.58 14.67 4.8 22.11-4.46 6.95-14.27 9.86-22.11 4.8L162.83 12.84c-20.7-10.85-43.38-16.4-66.81-10.31-44.9 11.67-81 48.5-92.01 93.72-10.13 41.62-.42 80.81 21.5 110.43 23.36 31.57 32.68 68.66 36.29 107.35 4.4 47.16 10.33 94.16 20.94 140.32l7.8 33.95c3.19 13.87 15.49 23.7 29.67 23.7 13.97 0 26.15-9.55 29.54-23.16l34.47-138.42c4.56-18.32 20.96-31.16 39.76-31.16s35.2 12.85 39.76 31.16l34.47 138.42c3.39 13.61 15.57 23.16 29.54 23.16 14.18 0 26.48-9.83 29.67-23.7l7.8-33.95c10.61-46.15 16.53-93.16 20.94-140.32 3.61-38.7 12.93-75.78 36.29-107.35 21.95-29.61 31.66-68.8 21.53-110.43z"]},faTorah:{prefix:"fas",iconName:"torah",icon:[640,512,[],"f6a0","M320.05 366.48l17.72-29.64h-35.46zm99.21-166H382.4l18.46 30.82zM48 0C21.49 0 0 14.33 0 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32C96 14.33 74.51 0 48 0zm172.74 311.5h36.85l-18.46-30.82zm161.71 0h36.86l-18.45-30.8zM128 464h384V48H128zm66.77-278.13a21.22 21.22 0 0 1 18.48-10.71h59.45l29.13-48.71a21.13 21.13 0 0 1 18.22-10.37A20.76 20.76 0 0 1 338 126.29l29.25 48.86h59.52a21.12 21.12 0 0 1 18.1 32L415.63 256 445 305a20.69 20.69 0 0 1 .24 21.12 21.25 21.25 0 0 1-18.48 10.72h-59.47l-29.13 48.7a21.13 21.13 0 0 1-18.16 10.4 20.79 20.79 0 0 1-18-10.22l-29.25-48.88h-59.5a21.11 21.11 0 0 1-18.1-32L224.36 256 195 207a20.7 20.7 0 0 1-.23-21.13zM592 0c-26.51 0-48 14.33-48 32v448c0 17.67 21.49 32 48 32s48-14.33 48-32V32c0-17.67-21.49-32-48-32zM320 145.53l-17.78 29.62h35.46zm-62.45 55h-36.81l18.44 30.8zm29.58 111h65.79L386.09 256l-33.23-55.52h-65.79L253.9 256z"]},faToriiGate:{prefix:"fas",iconName:"torii-gate",icon:[512,512,[],"f6a1","M376.45 32h-240.9A303.17 303.17 0 0 1 0 0v96c0 17.67 14.33 32 32 32h32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h48v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h256v240c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V256h48c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16h-48v-64h32c17.67 0 32-14.33 32-32V0a303.17 303.17 0 0 1-135.55 32zM128 128h96v64h-96v-64zm256 64h-96v-64h96v64z"]},faTractor:{prefix:"fas",iconName:"tractor",icon:[640,512,[],"f722","M528 336c-48.6 0-88 39.4-88 88s39.4 88 88 88 88-39.4 88-88-39.4-88-88-88zm0 112c-13.23 0-24-10.77-24-24s10.77-24 24-24 24 10.77 24 24-10.77 24-24 24zm80-288h-64v-40.2c0-14.12 4.7-27.76 13.15-38.84 4.42-5.8 3.55-14.06-1.32-19.49L534.2 37.3c-6.66-7.45-18.32-6.92-24.7.78C490.58 60.9 480 89.81 480 119.8V160H377.67L321.58 29.14A47.914 47.914 0 0 0 277.45 0H144c-26.47 0-48 21.53-48 48v146.52c-8.63-6.73-20.96-6.46-28.89 1.47L36 227.1c-8.59 8.59-8.59 22.52 0 31.11l5.06 5.06c-4.99 9.26-8.96 18.82-11.91 28.72H22c-12.15 0-22 9.85-22 22v44c0 12.15 9.85 22 22 22h7.14c2.96 9.91 6.92 19.46 11.91 28.73l-5.06 5.06c-8.59 8.59-8.59 22.52 0 31.11L67.1 476c8.59 8.59 22.52 8.59 31.11 0l5.06-5.06c9.26 4.99 18.82 8.96 28.72 11.91V490c0 12.15 9.85 22 22 22h44c12.15 0 22-9.85 22-22v-7.14c9.9-2.95 19.46-6.92 28.72-11.91l5.06 5.06c8.59 8.59 22.52 8.59 31.11 0l31.11-31.11c8.59-8.59 8.59-22.52 0-31.11l-5.06-5.06c4.99-9.26 8.96-18.82 11.91-28.72H330c12.15 0 22-9.85 22-22v-6h80.54c21.91-28.99 56.32-48 95.46-48 18.64 0 36.07 4.61 51.8 12.2l50.82-50.82c6-6 9.37-14.14 9.37-22.63V192c.01-17.67-14.32-32-31.99-32zM176 416c-44.18 0-80-35.82-80-80s35.82-80 80-80 80 35.82 80 80-35.82 80-80 80zm22-256h-38V64h106.89l41.15 96H198z"]},faTrademark:{prefix:"fas",iconName:"trademark",icon:[640,512,[],"f25c","M260.6 96H12c-6.6 0-12 5.4-12 12v43.1c0 6.6 5.4 12 12 12h85.1V404c0 6.6 5.4 12 12 12h54.3c6.6 0 12-5.4 12-12V163.1h85.1c6.6 0 12-5.4 12-12V108c.1-6.6-5.3-12-11.9-12zM640 403l-24-296c-.5-6.2-5.7-11-12-11h-65.4c-5.1 0-9.7 3.3-11.3 8.1l-43.8 127.1c-7.2 20.6-16.1 52.8-16.1 52.8h-.9s-8.9-32.2-16.1-52.8l-43.8-127.1c-1.7-4.8-6.2-8.1-11.3-8.1h-65.4c-6.2 0-11.4 4.8-12 11l-24.4 296c-.6 7 4.9 13 12 13H360c6.3 0 11.5-4.9 12-11.2l9.1-132.9c1.8-24.2 0-53.7 0-53.7h.9s10.7 33.6 17.9 53.7l30.7 84.7c1.7 4.7 6.2 7.9 11.3 7.9h50.3c5.1 0 9.6-3.2 11.3-7.9l30.7-84.7c7.2-20.1 17.9-53.7 17.9-53.7h.9s-1.8 29.5 0 53.7l9.1 132.9c.4 6.3 5.7 11.2 12 11.2H628c7 0 12.5-6 12-13z"]},faTrafficLight:{prefix:"fas",iconName:"traffic-light",icon:[384,512,[],"f637","M384 192h-64v-37.88c37.2-13.22 64-48.38 64-90.12h-64V32c0-17.67-14.33-32-32-32H96C78.33 0 64 14.33 64 32v32H0c0 41.74 26.8 76.9 64 90.12V192H0c0 41.74 26.8 76.9 64 90.12V320H0c0 42.84 28.25 78.69 66.99 91.05C79.42 468.72 130.6 512 192 512s112.58-43.28 125.01-100.95C355.75 398.69 384 362.84 384 320h-64v-37.88c37.2-13.22 64-48.38 64-90.12zM192 416c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm0-128c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]},faTrailer:{prefix:"fas",iconName:"trailer",icon:[640,512,[],"e041","M624,320H544V80a16,16,0,0,0-16-16H16A16,16,0,0,0,0,80V368a16,16,0,0,0,16,16H65.61c7.83-54.21,54-96,110.39-96s102.56,41.79,110.39,96H624a16,16,0,0,0,16-16V336A16,16,0,0,0,624,320ZM96,243.68a176.29,176.29,0,0,0-32,20.71V136a8,8,0,0,1,8-8H88a8,8,0,0,1,8,8Zm96-18.54c-5.31-.49-10.57-1.14-16-1.14s-10.69.65-16,1.14V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,39.25a176.29,176.29,0,0,0-32-20.71V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8ZM384,320H352V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm96,0H448V136a8,8,0,0,1,8-8h16a8,8,0,0,1,8,8Zm-304,0a80,80,0,1,0,80,80A80,80,0,0,0,176,320Zm0,112a32,32,0,1,1,32-32A32,32,0,0,1,176,432Z"]},faTrain:{prefix:"fas",iconName:"train",icon:[448,512,[],"f238","M448 96v256c0 51.815-61.624 96-130.022 96l62.98 49.721C386.905 502.417 383.562 512 376 512H72c-7.578 0-10.892-9.594-4.957-14.279L130.022 448C61.82 448 0 403.954 0 352V96C0 42.981 64 0 128 0h192c65 0 128 42.981 128 96zm-48 136V120c0-13.255-10.745-24-24-24H72c-13.255 0-24 10.745-24 24v112c0 13.255 10.745 24 24 24h304c13.255 0 24-10.745 24-24zm-176 64c-30.928 0-56 25.072-56 56s25.072 56 56 56 56-25.072 56-56-25.072-56-56-56z"]},faTram:{prefix:"fas",iconName:"tram",icon:[512,512,[],"f7da","M288 64c17.7 0 32-14.3 32-32S305.7 0 288 0s-32 14.3-32 32 14.3 32 32 32zm223.5-12.1c-2.3-8.6-11-13.6-19.6-11.3l-480 128c-8.5 2.3-13.6 11-11.3 19.6C2.5 195.3 8.9 200 16 200c1.4 0 2.8-.2 4.1-.5L240 140.8V224H64c-17.7 0-32 14.3-32 32v224c0 17.7 14.3 32 32 32h384c17.7 0 32-14.3 32-32V256c0-17.7-14.3-32-32-32H272v-91.7l228.1-60.8c8.6-2.3 13.6-11.1 11.4-19.6zM176 384H80v-96h96v96zm160-96h96v96h-96v-96zm-32 0v96h-96v-96h96zM192 96c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"]},faTransgender:{prefix:"fas",iconName:"transgender",icon:[384,512,[],"f224","M372 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C198.5 104.1 172.2 96 144 96 64.5 96 0 160.5 0 240c0 68.5 47.9 125.9 112 140.4V408H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM144 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faTransgenderAlt:{prefix:"fas",iconName:"transgender-alt",icon:[480,512,[],"f225","M468 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-80.7 80.7C294.5 104.1 268.2 96 240 96c-28.2 0-54.5 8.1-76.7 22.1l-16.5-16.5 19.8-19.8c4.7-4.7 4.7-12.3 0-17l-28.3-28.3c-4.7-4.7-12.3-4.7-17 0l-19.8 19.8-19-19 16.9-16.9C107.1 12.9 101.7 0 91 0H12C5.4 0 0 5.4 0 12v79c0 10.7 12.9 16 20.5 8.5l16.9-16.9 19 19-19.8 19.8c-4.7 4.7-4.7 12.3 0 17l28.3 28.3c4.7 4.7 12.3 4.7 17 0l19.8-19.8 16.5 16.5C104.1 185.5 96 211.8 96 240c0 68.5 47.9 125.9 112 140.4V408h-36c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v28c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-28h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-27.6c64.1-14.6 112-71.9 112-140.4 0-28.2-8.1-54.5-22.1-76.7l80.7-80.7 16.9 16.9c7.6 7.6 20.5 2.2 20.5-8.5V12c0-6.6-5.4-12-12-12zM240 320c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faTrash:{prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z"]},faTrashAlt:{prefix:"fas",iconName:"trash-alt",icon:[448,512,[],"f2ed","M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm272-256a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zm-96 0a16 16 0 0 1 32 0v224a16 16 0 0 1-32 0zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faTrashRestore:{prefix:"fas",iconName:"trash-restore",icon:[448,512,[],"f829","M53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32zm70.11-175.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faTrashRestoreAlt:{prefix:"fas",iconName:"trash-restore-alt",icon:[448,512,[],"f82a","M32 464a48 48 0 0 0 48 48h288a48 48 0 0 0 48-48V128H32zm91.31-172.8l89.38-94.26a15.41 15.41 0 0 1 22.62 0l89.38 94.26c10.08 10.62 2.94 28.8-11.32 28.8H256v112a16 16 0 0 1-16 16h-32a16 16 0 0 1-16-16V320h-57.37c-14.26 0-21.4-18.18-11.32-28.8zM432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16z"]},faTree:{prefix:"fas",iconName:"tree",icon:[384,512,[],"f1bb","M378.31 378.49L298.42 288h30.63c9.01 0 16.98-5 20.78-13.06 3.8-8.04 2.55-17.26-3.28-24.05L268.42 160h28.89c9.1 0 17.3-5.35 20.86-13.61 3.52-8.13 1.86-17.59-4.24-24.08L203.66 4.83c-6.03-6.45-17.28-6.45-23.32 0L70.06 122.31c-6.1 6.49-7.75 15.95-4.24 24.08C69.38 154.65 77.59 160 86.69 160h28.89l-78.14 90.91c-5.81 6.78-7.06 15.99-3.27 24.04C37.97 283 45.93 288 54.95 288h30.63L5.69 378.49c-6 6.79-7.36 16.09-3.56 24.26 3.75 8.05 12 13.25 21.01 13.25H160v24.45l-30.29 48.4c-5.32 10.64 2.42 23.16 14.31 23.16h95.96c11.89 0 19.63-12.52 14.31-23.16L224 440.45V416h136.86c9.01 0 17.26-5.2 21.01-13.25 3.8-8.17 2.44-17.47-3.56-24.26z"]},faTrophy:{prefix:"fas",iconName:"trophy",icon:[576,512,[],"f091","M552 64H448V24c0-13.3-10.7-24-24-24H152c-13.3 0-24 10.7-24 24v40H24C10.7 64 0 74.7 0 88v56c0 35.7 22.5 72.4 61.9 100.7 31.5 22.7 69.8 37.1 110 41.7C203.3 338.5 240 360 240 360v72h-48c-35.3 0-64 20.7-64 56v12c0 6.6 5.4 12 12 12h296c6.6 0 12-5.4 12-12v-12c0-35.3-28.7-56-64-56h-48v-72s36.7-21.5 68.1-73.6c40.3-4.6 78.6-19 110-41.7 39.3-28.3 61.9-65 61.9-100.7V88c0-13.3-10.7-24-24-24zM99.3 192.8C74.9 175.2 64 155.6 64 144v-16h64.2c1 32.6 5.8 61.2 12.8 86.2-15.1-5.2-29.2-12.4-41.7-21.4zM512 144c0 16.1-17.7 36.1-35.3 48.8-12.5 9-26.7 16.2-41.8 21.4 7-25 11.8-53.6 12.8-86.2H512v16z"]},faTruck:{prefix:"fas",iconName:"truck",icon:[640,512,[],"f0d1","M624 352h-16V243.9c0-12.7-5.1-24.9-14.1-33.9L494 110.1c-9-9-21.2-14.1-33.9-14.1H416V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48v320c0 26.5 21.5 48 48 48h16c0 53 43 96 96 96s96-43 96-96h128c0 53 43 96 96 96s96-43 96-96h48c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM160 464c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm320 0c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm80-208H416V144h44.1l99.9 99.9V256z"]},faTruckLoading:{prefix:"fas",iconName:"truck-loading",icon:[640,512,[],"f4de","M50.2 375.6c2.3 8.5 11.1 13.6 19.6 11.3l216.4-58c8.5-2.3 13.6-11.1 11.3-19.6l-49.7-185.5c-2.3-8.5-11.1-13.6-19.6-11.3L151 133.3l24.8 92.7-61.8 16.5-24.8-92.7-77.3 20.7C3.4 172.8-1.7 181.6.6 190.1l49.6 185.5zM384 0c-17.7 0-32 14.3-32 32v323.6L5.9 450c-4.3 1.2-6.8 5.6-5.6 9.8l12.6 46.3c1.2 4.3 5.6 6.8 9.8 5.6l393.7-107.4C418.8 464.1 467.6 512 528 512c61.9 0 112-50.1 112-112V0H384zm144 448c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48z"]},faTruckMonster:{prefix:"fas",iconName:"truck-monster",icon:[640,512,[],"f63b","M624 224h-16v-64c0-17.67-14.33-32-32-32h-73.6L419.22 24.02A64.025 64.025 0 0 0 369.24 0H256c-17.67 0-32 14.33-32 32v96H48c-8.84 0-16 7.16-16 16v80H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h16.72c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64h65.45c29.21-38.65 75.1-64 127.28-64s98.07 25.35 127.28 64H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zm-336-96V64h81.24l51.2 64H288zm304 224h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 512 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67A110.85 110.85 0 0 0 373.2 352H368c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32c-.02-8.84-7.18-16-16.02-16zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48zm-208-80h-5.2c-2.2-7.33-5.07-14.28-8.65-20.89l3.67-3.67c6.25-6.25 6.25-16.38 0-22.63l-22.63-22.63c-6.25-6.25-16.38-6.25-22.63 0l-3.67 3.67A110.85 110.85 0 0 0 192 277.2V272c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v5.2c-7.33 2.2-14.28 5.07-20.89 8.65l-3.67-3.67c-6.25-6.25-16.38-6.25-22.63 0L58.18 304.8c-6.25 6.25-6.25 16.38 0 22.63l3.67 3.67a110.85 110.85 0 0 0-8.65 20.89H48c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h5.2c2.2 7.33 5.07 14.28 8.65 20.89l-3.67 3.67c-6.25 6.25-6.25 16.38 0 22.63l22.63 22.63c6.25 6.25 16.38 6.25 22.63 0l3.67-3.67c6.61 3.57 13.57 6.45 20.9 8.65v5.2c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-5.2c7.33-2.2 14.28-5.07 20.9-8.65l3.67 3.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.25-6.25 6.25-16.38 0-22.63l-3.67-3.67a110.85 110.85 0 0 0 8.65-20.89h5.2c8.84 0 16-7.16 16-16v-32C288 359.16 280.84 352 272 352zm-112 80c-26.51 0-48-21.49-48-48s21.49-48 48-48 48 21.49 48 48-21.49 48-48 48z"]},faTruckMoving:{prefix:"fas",iconName:"truck-moving",icon:[640,512,[],"f4df","M621.3 237.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7H480V64c0-17.7-14.3-32-32-32H32C14.3 32 0 46.3 0 64v336c0 44.2 35.8 80 80 80 26.3 0 49.4-12.9 64-32.4 14.6 19.6 37.7 32.4 64 32.4 44.2 0 80-35.8 80-80 0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H624c8.8 0 16-7.2 16-16v-85.5c0-17-6.7-33.2-18.7-45.2zM80 432c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm128 0c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32zm272-224h37.5c4.3 0 8.3 1.7 11.3 4.7l43.3 43.3H480v-48zm48 224c-17.6 0-32-14.4-32-32s14.4-32 32-32 32 14.4 32 32-14.4 32-32 32z"]},faTruckPickup:{prefix:"fas",iconName:"truck-pickup",icon:[640,512,[],"f63c","M624 288h-16v-64c0-17.67-14.33-32-32-32h-48L419.22 56.02A64.025 64.025 0 0 0 369.24 32H256c-17.67 0-32 14.33-32 32v128H64c-17.67 0-32 14.33-32 32v64H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h49.61c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16h67.23c-.76 5.27-1.61 10.52-1.61 16 0 61.86 50.14 112 112 112s112-50.14 112-112c0-5.48-.85-10.73-1.61-16H624c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16zM288 96h81.24l76.8 96H288V96zM176 416c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48zm288 0c-26.47 0-48-21.53-48-48s21.53-48 48-48 48 21.53 48 48-21.53 48-48 48z"]},faTshirt:{prefix:"fas",iconName:"tshirt",icon:[640,512,[],"f553","M631.2 96.5L436.5 0C416.4 27.8 371.9 47.2 320 47.2S223.6 27.8 203.5 0L8.8 96.5c-7.9 4-11.1 13.6-7.2 21.5l57.2 114.5c4 7.9 13.6 11.1 21.5 7.2l56.6-27.7c10.6-5.2 23 2.5 23 14.4V480c0 17.7 14.3 32 32 32h256c17.7 0 32-14.3 32-32V226.3c0-11.8 12.4-19.6 23-14.4l56.6 27.7c7.9 4 17.5.8 21.5-7.2L638.3 118c4-7.9.8-17.6-7.1-21.5z"]},faTty:{prefix:"fas",iconName:"tty",icon:[512,512,[],"f1e4","M5.37 103.822c138.532-138.532 362.936-138.326 501.262 0 6.078 6.078 7.074 15.496 2.583 22.681l-43.214 69.138a18.332 18.332 0 0 1-22.356 7.305l-86.422-34.569a18.335 18.335 0 0 1-11.434-18.846L351.741 90c-62.145-22.454-130.636-21.986-191.483 0l5.953 59.532a18.331 18.331 0 0 1-11.434 18.846l-86.423 34.568a18.334 18.334 0 0 1-22.356-7.305L2.787 126.502a18.333 18.333 0 0 1 2.583-22.68zM96 308v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H92c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zM96 500v-40c0-6.627-5.373-12-12-12H44c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H140c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z"]},faTv:{prefix:"fas",iconName:"tv",icon:[640,512,[],"f26c","M592 0H48A48 48 0 0 0 0 48v320a48 48 0 0 0 48 48h240v32H112a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16H352v-32h240a48 48 0 0 0 48-48V48a48 48 0 0 0-48-48zm-16 352H64V64h512z"]},faUmbrella:{prefix:"fas",iconName:"umbrella",icon:[576,512,[],"f0e9","M575.7 280.8C547.1 144.5 437.3 62.6 320 49.9V32c0-17.7-14.3-32-32-32s-32 14.3-32 32v17.9C138.3 62.6 29.5 144.5.3 280.8c-2.2 10.1 8.5 21.3 18.7 11.4 52-55 107.7-52.4 158.6 37 5.3 9.5 14.9 8.6 19.7 0 20.2-35.4 44.9-73.2 90.7-73.2 58.5 0 88.2 68.8 90.7 73.2 4.8 8.6 14.4 9.5 19.7 0 51-89.5 107.1-91.4 158.6-37 10.3 10 20.9-1.3 18.7-11.4zM256 301.7V432c0 8.8-7.2 16-16 16-7.8 0-13.2-5.3-15.1-10.7-5.9-16.7-24.1-25.4-40.8-19.5-16.7 5.9-25.4 24.2-19.5 40.8 11.2 31.9 41.6 53.3 75.4 53.3 44.1 0 80-35.9 80-80V301.6c-9.1-7.9-19.8-13.6-32-13.6-12.3.1-22.4 4.8-32 13.7z"]},faUmbrellaBeach:{prefix:"fas",iconName:"umbrella-beach",icon:[640,512,[],"f5ca","M115.38 136.9l102.11 37.18c35.19-81.54 86.21-144.29 139-173.7-95.88-4.89-188.78 36.96-248.53 111.8-6.69 8.4-2.66 21.05 7.42 24.72zm132.25 48.16l238.48 86.83c35.76-121.38 18.7-231.66-42.63-253.98-7.4-2.7-15.13-4-23.09-4-58.02.01-128.27 69.17-172.76 171.15zM521.48 60.5c6.22 16.3 10.83 34.6 13.2 55.19 5.74 49.89-1.42 108.23-18.95 166.98l102.62 37.36c10.09 3.67 21.31-3.43 21.57-14.17 2.32-95.69-41.91-187.44-118.44-245.36zM560 447.98H321.06L386 269.5l-60.14-21.9-72.9 200.37H16c-8.84 0-16 7.16-16 16.01v32.01C0 504.83 7.16 512 16 512h544c8.84 0 16-7.17 16-16.01v-32.01c0-8.84-7.16-16-16-16z"]},faUnderline:{prefix:"fas",iconName:"underline",icon:[448,512,[],"f0cd","M32 64h32v160c0 88.22 71.78 160 160 160s160-71.78 160-160V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H272a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h32v160a80 80 0 0 1-160 0V64h32a16 16 0 0 0 16-16V16a16 16 0 0 0-16-16H32a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16zm400 384H16a16 16 0 0 0-16 16v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16v-32a16 16 0 0 0-16-16z"]},faUndo:{prefix:"fas",iconName:"undo",icon:[512,512,[],"f0e2","M212.333 224.333H12c-6.627 0-12-5.373-12-12V12C0 5.373 5.373 0 12 0h48c6.627 0 12 5.373 12 12v78.112C117.773 39.279 184.26 7.47 258.175 8.007c136.906.994 246.448 111.623 246.157 248.532C504.041 393.258 393.12 504 256.333 504c-64.089 0-122.496-24.313-166.51-64.215-5.099-4.622-5.334-12.554-.467-17.42l33.967-33.967c4.474-4.474 11.662-4.717 16.401-.525C170.76 415.336 211.58 432 256.333 432c97.268 0 176-78.716 176-176 0-97.267-78.716-176-176-176-58.496 0-110.28 28.476-142.274 72.333h98.274c6.627 0 12 5.373 12 12v48c0 6.627-5.373 12-12 12z"]},faUndoAlt:{prefix:"fas",iconName:"undo-alt",icon:[512,512,[],"f2ea","M255.545 8c-66.269.119-126.438 26.233-170.86 68.685L48.971 40.971C33.851 25.851 8 36.559 8 57.941V192c0 13.255 10.745 24 24 24h134.059c21.382 0 32.09-25.851 16.971-40.971l-41.75-41.75c30.864-28.899 70.801-44.907 113.23-45.273 92.398-.798 170.283 73.977 169.484 169.442C423.236 348.009 349.816 424 256 424c-41.127 0-79.997-14.678-110.63-41.556-4.743-4.161-11.906-3.908-16.368.553L89.34 422.659c-4.872 4.872-4.631 12.815.482 17.433C133.798 479.813 192.074 504 256 504c136.966 0 247.999-111.033 248-247.998C504.001 119.193 392.354 7.755 255.545 8z"]},faUniversalAccess:{prefix:"fas",iconName:"universal-access",icon:[512,512,[],"f29a","M256 48c114.953 0 208 93.029 208 208 0 114.953-93.029 208-208 208-114.953 0-208-93.029-208-208 0-114.953 93.029-208 208-208m0-40C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 56C149.961 64 64 149.961 64 256s85.961 192 192 192 192-85.961 192-192S362.039 64 256 64zm0 44c19.882 0 36 16.118 36 36s-16.118 36-36 36-36-16.118-36-36 16.118-36 36-36zm117.741 98.023c-28.712 6.779-55.511 12.748-82.14 15.807.851 101.023 12.306 123.052 25.037 155.621 3.617 9.26-.957 19.698-10.217 23.315-9.261 3.617-19.699-.957-23.316-10.217-8.705-22.308-17.086-40.636-22.261-78.549h-9.686c-5.167 37.851-13.534 56.208-22.262 78.549-3.615 9.255-14.05 13.836-23.315 10.217-9.26-3.617-13.834-14.056-10.217-23.315 12.713-32.541 24.185-54.541 25.037-155.621-26.629-3.058-53.428-9.027-82.141-15.807-8.6-2.031-13.926-10.648-11.895-19.249s10.647-13.926 19.249-11.895c96.686 22.829 124.283 22.783 220.775 0 8.599-2.03 17.218 3.294 19.249 11.895 2.029 8.601-3.297 17.219-11.897 19.249z"]},faUniversity:{prefix:"fas",iconName:"university",icon:[512,512,[],"f19c","M496 128v16a8 8 0 0 1-8 8h-24v12c0 6.627-5.373 12-12 12H60c-6.627 0-12-5.373-12-12v-12H24a8 8 0 0 1-8-8v-16a8 8 0 0 1 4.941-7.392l232-88a7.996 7.996 0 0 1 6.118 0l232 88A8 8 0 0 1 496 128zm-24 304H40c-13.255 0-24 10.745-24 24v16a8 8 0 0 0 8 8h464a8 8 0 0 0 8-8v-16c0-13.255-10.745-24-24-24zM96 192v192H60c-6.627 0-12 5.373-12 12v20h416v-20c0-6.627-5.373-12-12-12h-36V192h-64v192h-64V192h-64v192h-64V192H96z"]},faUnlink:{prefix:"fas",iconName:"unlink",icon:[512,512,[],"f127","M304.083 405.907c4.686 4.686 4.686 12.284 0 16.971l-44.674 44.674c-59.263 59.262-155.693 59.266-214.961 0-59.264-59.265-59.264-155.696 0-214.96l44.675-44.675c4.686-4.686 12.284-4.686 16.971 0l39.598 39.598c4.686 4.686 4.686 12.284 0 16.971l-44.675 44.674c-28.072 28.073-28.072 73.75 0 101.823 28.072 28.072 73.75 28.073 101.824 0l44.674-44.674c4.686-4.686 12.284-4.686 16.971 0l39.597 39.598zm-56.568-260.216c4.686 4.686 12.284 4.686 16.971 0l44.674-44.674c28.072-28.075 73.75-28.073 101.824 0 28.072 28.073 28.072 73.75 0 101.823l-44.675 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.598 39.598c4.686 4.686 12.284 4.686 16.971 0l44.675-44.675c59.265-59.265 59.265-155.695 0-214.96-59.266-59.264-155.695-59.264-214.961 0l-44.674 44.674c-4.686 4.686-4.686 12.284 0 16.971l39.597 39.598zm234.828 359.28l22.627-22.627c9.373-9.373 9.373-24.569 0-33.941L63.598 7.029c-9.373-9.373-24.569-9.373-33.941 0L7.029 29.657c-9.373 9.373-9.373 24.569 0 33.941l441.373 441.373c9.373 9.372 24.569 9.372 33.941 0z"]},faUnlock:{prefix:"fas",iconName:"unlock",icon:[448,512,[],"f09c","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48z"]},faUnlockAlt:{prefix:"fas",iconName:"unlock-alt",icon:[448,512,[],"f13e","M400 256H152V152.9c0-39.6 31.7-72.5 71.3-72.9 40-.4 72.7 32.1 72.7 72v16c0 13.3 10.7 24 24 24h32c13.3 0 24-10.7 24-24v-16C376 68 307.5-.3 223.5 0 139.5.3 72 69.5 72 153.5V256H48c-26.5 0-48 21.5-48 48v160c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V304c0-26.5-21.5-48-48-48zM264 408c0 22.1-17.9 40-40 40s-40-17.9-40-40v-48c0-22.1 17.9-40 40-40s40 17.9 40 40v48z"]},faUpload:{prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M296 384h-80c-13.3 0-24-10.7-24-24V192h-87.7c-17.8 0-26.7-21.5-14.1-34.1L242.3 5.7c7.5-7.5 19.8-7.5 27.3 0l152.2 152.2c12.6 12.6 3.7 34.1-14.1 34.1H320v168c0 13.3-10.7 24-24 24zm216-8v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h136v8c0 30.9 25.1 56 56 56h80c30.9 0 56-25.1 56-56v-8h136c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"]},faUser:{prefix:"fas",iconName:"user",icon:[448,512,[],"f007","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUserAlt:{prefix:"fas",iconName:"user-alt",icon:[512,512,[],"f406","M256 288c79.5 0 144-64.5 144-144S335.5 0 256 0 112 64.5 112 144s64.5 144 144 144zm128 32h-55.1c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16H128C57.3 320 0 377.3 0 448v16c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-16c0-70.7-57.3-128-128-128z"]},faUserAltSlash:{prefix:"fas",iconName:"user-alt-slash",icon:[640,512,[],"f4fa","M633.8 458.1L389.6 269.3C433.8 244.7 464 198.1 464 144 464 64.5 399.5 0 320 0c-67.1 0-123 46.1-139 108.2L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM198.4 320C124.2 320 64 380.2 64 454.4v9.6c0 26.5 21.5 48 48 48h382.2L245.8 320h-47.4z"]},faUserAstronaut:{prefix:"fas",iconName:"user-astronaut",icon:[448,512,[],"f4fb","M64 224h13.5c24.7 56.5 80.9 96 146.5 96s121.8-39.5 146.5-96H384c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16h-13.5C345.8 39.5 289.6 0 224 0S102.2 39.5 77.5 96H64c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16zm40-88c0-22.1 21.5-40 48-40h144c26.5 0 48 17.9 48 40v24c0 53-43 96-96 96h-48c-53 0-96-43-96-96v-24zm72 72l12-36 36-12-36-12-12-36-12 36-36 12 36 12 12 36zm151.6 113.4C297.7 340.7 262.2 352 224 352s-73.7-11.3-103.6-30.6C52.9 328.5 0 385 0 454.4v9.6c0 26.5 21.5 48 48 48h80v-64c0-17.7 14.3-32 32-32h128c17.7 0 32 14.3 32 32v64h80c26.5 0 48-21.5 48-48v-9.6c0-69.4-52.9-125.9-120.4-133zM272 448c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-96 0c-8.8 0-16 7.2-16 16v48h32v-48c0-8.8-7.2-16-16-16z"]},faUserCheck:{prefix:"fas",iconName:"user-check",icon:[640,512,[],"f4fc","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4zm323-128.4l-27.8-28.1c-4.6-4.7-12.1-4.7-16.8-.1l-104.8 104-45.5-45.8c-4.6-4.7-12.1-4.7-16.8-.1l-28.1 27.9c-4.7 4.6-4.7 12.1-.1 16.8l81.7 82.3c4.6 4.7 12.1 4.7 16.8.1l141.3-140.2c4.6-4.7 4.7-12.2.1-16.8z"]},faUserCircle:{prefix:"fas",iconName:"user-circle",icon:[496,512,[],"f2bd","M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 96c48.6 0 88 39.4 88 88s-39.4 88-88 88-88-39.4-88-88 39.4-88 88-88zm0 344c-58.7 0-111.3-26.6-146.5-68.2 18.8-35.4 55.6-59.8 98.5-59.8 2.4 0 4.8.4 7.1 1.1 13 4.2 26.6 6.9 40.9 6.9 14.3 0 28-2.7 40.9-6.9 2.3-.7 4.7-1.1 7.1-1.1 42.9 0 79.7 24.4 98.5 59.8C359.3 421.4 306.7 448 248 448z"]},faUserClock:{prefix:"fas",iconName:"user-clock",icon:[640,512,[],"f4fd","M496 224c-79.6 0-144 64.4-144 144s64.4 144 144 144 144-64.4 144-144-64.4-144-144-144zm64 150.3c0 5.3-4.4 9.7-9.7 9.7h-60.6c-5.3 0-9.7-4.4-9.7-9.7v-76.6c0-5.3 4.4-9.7 9.7-9.7h12.6c5.3 0 9.7 4.4 9.7 9.7V352h38.3c5.3 0 9.7 4.4 9.7 9.7v12.6zM320 368c0-27.8 6.7-54.1 18.2-77.5-8-1.5-16.2-2.5-24.6-2.5h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h347.1c-45.3-31.9-75.1-84.5-75.1-144zm-96-112c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128z"]},faUserCog:{prefix:"fas",iconName:"user-cog",icon:[640,512,[],"f4fe","M610.5 373.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 400.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm201.2 226.5c-2.3-1.2-4.6-2.6-6.8-3.9l-7.9 4.6c-6 3.4-12.8 5.3-19.6 5.3-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-5.5-17.7 1.9-36.4 17.9-45.7l7.9-4.6c-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-16-9.2-23.4-28-17.9-45.7.9-2.9 2.2-5.8 3.2-8.7-3.8-.3-7.5-1.2-11.4-1.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c10.1 0 19.5-3.2 27.2-8.5-1.2-3.8-2-7.7-2-11.8v-9.2z"]},faUserEdit:{prefix:"fas",iconName:"user-edit",icon:[640,512,[],"f4ff","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h274.9c-2.4-6.8-3.4-14-2.6-21.3l6.8-60.9 1.2-11.1 7.9-7.9 77.3-77.3c-24.5-27.7-60-45.5-99.9-45.5zm45.3 145.3l-6.8 61c-1.1 10.2 7.5 18.8 17.6 17.6l60.9-6.8 137.9-137.9-71.7-71.7-137.9 137.8zM633 268.9L595.1 231c-9.3-9.3-24.5-9.3-33.8 0l-37.8 37.8-4.1 4.1 71.8 71.7 41.8-41.8c9.3-9.4 9.3-24.5 0-33.9z"]},faUserFriends:{prefix:"fas",iconName:"user-friends",icon:[640,512,[],"f500","M192 256c61.9 0 112-50.1 112-112S253.9 32 192 32 80 82.1 80 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C51.6 288 0 339.6 0 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zM480 256c53 0 96-43 96-96s-43-96-96-96-96 43-96 96 43 96 96 96zm48 32h-3.8c-13.9 4.8-28.6 8-44.2 8s-30.3-3.2-44.2-8H432c-20.4 0-39.2 5.9-55.7 15.4 24.4 26.3 39.7 61.2 39.7 99.8v38.4c0 2.2-.5 4.3-.6 6.4H592c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112z"]},faUserGraduate:{prefix:"fas",iconName:"user-graduate",icon:[448,512,[],"f501","M319.4 320.6L224 416l-95.4-95.4C57.1 323.7 0 382.2 0 454.4v9.6c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-9.6c0-72.2-57.1-130.7-128.6-133.8zM13.6 79.8l6.4 1.5v58.4c-7 4.2-12 11.5-12 20.3 0 8.4 4.6 15.4 11.1 19.7L3.5 242c-1.7 6.9 2.1 14 7.6 14h41.8c5.5 0 9.3-7.1 7.6-14l-15.6-62.3C51.4 175.4 56 168.4 56 160c0-8.8-5-16.1-12-20.3V87.1l66 15.9c-8.6 17.2-14 36.4-14 57 0 70.7 57.3 128 128 128s128-57.3 128-128c0-20.6-5.3-39.8-14-57l96.3-23.2c18.2-4.4 18.2-27.1 0-31.5l-190.4-46c-13-3.1-26.7-3.1-39.7 0L13.6 48.2c-18.1 4.4-18.1 27.2 0 31.6z"]},faUserInjured:{prefix:"fas",iconName:"user-injured",icon:[448,512,[],"f728","M277.37 11.98C261.08 4.47 243.11 0 224 0c-53.69 0-99.5 33.13-118.51 80h81.19l90.69-68.02zM342.51 80c-7.9-19.47-20.67-36.2-36.49-49.52L239.99 80h102.52zM224 256c70.69 0 128-57.31 128-128 0-5.48-.95-10.7-1.61-16H97.61c-.67 5.3-1.61 10.52-1.61 16 0 70.69 57.31 128 128 128zM80 299.7V512h128.26l-98.45-221.52A132.835 132.835 0 0 0 80 299.7zM0 464c0 26.51 21.49 48 48 48V320.24C18.88 344.89 0 381.26 0 422.4V464zm256-48h-55.38l42.67 96H256c26.47 0 48-21.53 48-48s-21.53-48-48-48zm57.6-128h-16.71c-22.24 10.18-46.88 16-72.89 16s-50.65-5.82-72.89-16h-7.37l42.67 96H256c44.11 0 80 35.89 80 80 0 18.08-6.26 34.59-16.41 48H400c26.51 0 48-21.49 48-48v-41.6c0-74.23-60.17-134.4-134.4-134.4z"]},faUserLock:{prefix:"fas",iconName:"user-lock",icon:[640,512,[],"f502","M224 256A128 128 0 1 0 96 128a128 128 0 0 0 128 128zm96 64a63.08 63.08 0 0 1 8.1-30.5c-4.8-.5-9.5-1.5-14.5-1.5h-16.7a174.08 174.08 0 0 1-145.8 0h-16.7A134.43 134.43 0 0 0 0 422.4V464a48 48 0 0 0 48 48h280.9a63.54 63.54 0 0 1-8.9-32zm288-32h-32v-80a80 80 0 0 0-160 0v80h-32a32 32 0 0 0-32 32v160a32 32 0 0 0 32 32h224a32 32 0 0 0 32-32V320a32 32 0 0 0-32-32zM496 432a32 32 0 1 1 32-32 32 32 0 0 1-32 32zm32-144h-64v-80a32 32 0 0 1 64 0z"]},faUserMd:{prefix:"fas",iconName:"user-md",icon:[448,512,[],"f0f0","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zM104 424c0 13.3 10.7 24 24 24s24-10.7 24-24-10.7-24-24-24-24 10.7-24 24zm216-135.4v49c36.5 7.4 64 39.8 64 78.4v41.7c0 7.6-5.4 14.2-12.9 15.7l-32.2 6.4c-4.3.9-8.5-1.9-9.4-6.3l-3.1-15.7c-.9-4.3 1.9-8.6 6.3-9.4l19.3-3.9V416c0-62.8-96-65.1-96 1.9v26.7l19.3 3.9c4.3.9 7.1 5.1 6.3 9.4l-3.1 15.7c-.9 4.3-5.1 7.1-9.4 6.3l-31.2-4.2c-7.9-1.1-13.8-7.8-13.8-15.9V416c0-38.6 27.5-70.9 64-78.4v-45.2c-2.2.7-4.4 1.1-6.6 1.9-18 6.3-37.3 9.8-57.4 9.8s-39.4-3.5-57.4-9.8c-7.4-2.6-14.9-4.2-22.6-5.2v81.6c23.1 6.9 40 28.1 40 53.4 0 30.9-25.1 56-56 56s-56-25.1-56-56c0-25.3 16.9-46.5 40-53.4v-80.4C48.5 301 0 355.8 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-72-56.8-130.3-128-133.8z"]},faUserMinus:{prefix:"fas",iconName:"user-minus",icon:[640,512,[],"f503","M624 208H432c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUserNinja:{prefix:"fas",iconName:"user-ninja",icon:[448,512,[],"f504","M325.4 289.2L224 390.6 122.6 289.2C54 295.3 0 352.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-70.2-54-127.1-122.6-133.2zM32 192c27.3 0 51.8-11.5 69.2-29.7 15.1 53.9 64 93.7 122.8 93.7 70.7 0 128-57.3 128-128S294.7 0 224 0c-50.4 0-93.6 29.4-114.5 71.8C92.1 47.8 64 32 32 32c0 33.4 17.1 62.8 43.1 80-26 17.2-43.1 46.6-43.1 80zm144-96h96c17.7 0 32 14.3 32 32H144c0-17.7 14.3-32 32-32z"]},faUserNurse:{prefix:"fas",iconName:"user-nurse",icon:[448,512,[],"f82f","M319.41,320,224,415.39,128.59,320C57.1,323.1,0,381.6,0,453.79A58.21,58.21,0,0,0,58.21,512H389.79A58.21,58.21,0,0,0,448,453.79C448,381.6,390.9,323.1,319.41,320ZM224,304A128,128,0,0,0,352,176V65.82a32,32,0,0,0-20.76-30L246.47,4.07a64,64,0,0,0-44.94,0L116.76,35.86A32,32,0,0,0,96,65.82V176A128,128,0,0,0,224,304ZM184,71.67a5,5,0,0,1,5-5h21.67V45a5,5,0,0,1,5-5h16.66a5,5,0,0,1,5,5V66.67H259a5,5,0,0,1,5,5V88.33a5,5,0,0,1-5,5H237.33V115a5,5,0,0,1-5,5H215.67a5,5,0,0,1-5-5V93.33H189a5,5,0,0,1-5-5ZM144,160H304v16a80,80,0,0,1-160,0Z"]},faUserPlus:{prefix:"fas",iconName:"user-plus",icon:[640,512,[],"f234","M624 208h-64v-64c0-8.8-7.2-16-16-16h-32c-8.8 0-16 7.2-16 16v64h-64c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h64v64c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16v-64h64c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zm-400 48c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUserSecret:{prefix:"fas",iconName:"user-secret",icon:[448,512,[],"f21b","M383.9 308.3l23.9-62.6c4-10.5-3.7-21.7-15-21.7h-58.5c11-18.9 17.8-40.6 17.8-64v-.3c39.2-7.8 64-19.1 64-31.7 0-13.3-27.3-25.1-70.1-33-9.2-32.8-27-65.8-40.6-82.8-9.5-11.9-25.9-15.6-39.5-8.8l-27.6 13.8c-9 4.5-19.6 4.5-28.6 0L182.1 3.4c-13.6-6.8-30-3.1-39.5 8.8-13.5 17-31.4 50-40.6 82.8-42.7 7.9-70 19.7-70 33 0 12.6 24.8 23.9 64 31.7v.3c0 23.4 6.8 45.1 17.8 64H56.3c-11.5 0-19.2 11.7-14.7 22.3l25.8 60.2C27.3 329.8 0 372.7 0 422.4v44.8C0 491.9 20.1 512 44.8 512h358.4c24.7 0 44.8-20.1 44.8-44.8v-44.8c0-48.4-25.8-90.4-64.1-114.1zM176 480l-41.6-192 49.6 32 24 40-32 120zm96 0l-32-120 24-40 49.6-32L272 480zm41.7-298.5c-3.9 11.9-7 24.6-16.5 33.4-10.1 9.3-48 22.4-64-25-2.8-8.4-15.4-8.4-18.3 0-17 50.2-56 32.4-64 25-9.5-8.8-12.7-21.5-16.5-33.4-.8-2.5-6.3-5.7-6.3-5.8v-10.8c28.3 3.6 61 5.8 96 5.8s67.7-2.1 96-5.8v10.8c-.1.1-5.6 3.2-6.4 5.8z"]},faUserShield:{prefix:"fas",iconName:"user-shield",icon:[640,512,[],"f505","M622.3 271.1l-115.2-45c-4.1-1.6-12.6-3.7-22.2 0l-115.2 45c-10.7 4.2-17.7 14-17.7 24.9 0 111.6 68.7 188.8 132.9 213.9 9.6 3.7 18 1.6 22.2 0C558.4 489.9 640 420.5 640 296c0-10.9-7-20.7-17.7-24.9zM496 462.4V273.3l95.5 37.3c-5.6 87.1-60.9 135.4-95.5 151.8zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm96 40c0-2.5.8-4.8 1.1-7.2-2.5-.1-4.9-.8-7.5-.8h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c6.8 0 13.3-1.5 19.2-4-54-42.9-99.2-116.7-99.2-212z"]},faUserSlash:{prefix:"fas",iconName:"user-slash",icon:[640,512,[],"f506","M633.8 458.1L362.3 248.3C412.1 230.7 448 183.8 448 128 448 57.3 390.7 0 320 0c-67.1 0-121.5 51.8-126.9 117.4L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4l588.4 454.7c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.4-6.8 4.1-16.9-2.9-22.3zM96 422.4V464c0 26.5 21.5 48 48 48h350.2L207.4 290.3C144.2 301.3 96 356 96 422.4z"]},faUserTag:{prefix:"fas",iconName:"user-tag",icon:[640,512,[],"f507","M630.6 364.9l-90.3-90.2c-12-12-28.3-18.7-45.3-18.7h-79.3c-17.7 0-32 14.3-32 32v79.2c0 17 6.7 33.2 18.7 45.2l90.3 90.2c12.5 12.5 32.8 12.5 45.3 0l92.5-92.5c12.6-12.5 12.6-32.7.1-45.2zm-182.8-21c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24c0 13.2-10.7 24-24 24zm-223.8-88c70.7 0 128-57.3 128-128C352 57.3 294.7 0 224 0S96 57.3 96 128c0 70.6 57.3 127.9 128 127.9zm127.8 111.2V294c-12.2-3.6-24.9-6.2-38.2-6.2h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 287.9 0 348.1 0 422.3v41.6c0 26.5 21.5 48 48 48h352c15.5 0 29.1-7.5 37.9-18.9l-58-58c-18.1-18.1-28.1-42.2-28.1-67.9z"]},faUserTie:{prefix:"fas",iconName:"user-tie",icon:[448,512,[],"f508","M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm95.8 32.6L272 480l-32-136 32-56h-96l32 56-32 136-47.8-191.4C56.9 292 0 350.3 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-72.1-56.9-130.4-128.2-133.8z"]},faUserTimes:{prefix:"fas",iconName:"user-times",icon:[640,512,[],"f235","M589.6 240l45.6-45.6c6.3-6.3 6.3-16.5 0-22.8l-22.8-22.8c-6.3-6.3-16.5-6.3-22.8 0L544 194.4l-45.6-45.6c-6.3-6.3-16.5-6.3-22.8 0l-22.8 22.8c-6.3 6.3-6.3 16.5 0 22.8l45.6 45.6-45.6 45.6c-6.3 6.3-6.3 16.5 0 22.8l22.8 22.8c6.3 6.3 16.5 6.3 22.8 0l45.6-45.6 45.6 45.6c6.3 6.3 16.5 6.3 22.8 0l22.8-22.8c6.3-6.3 6.3-16.5 0-22.8L589.6 240zM224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"]},faUsers:{prefix:"fas",iconName:"users",icon:[640,512,[],"f0c0","M96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm448 0c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm32 32h-64c-17.6 0-33.5 7.1-45.1 18.6 40.3 22.1 68.9 62 75.1 109.4h66c17.7 0 32-14.3 32-32v-32c0-35.3-28.7-64-64-64zm-256 0c61.9 0 112-50.1 112-112S381.9 32 320 32 208 82.1 208 144s50.1 112 112 112zm76.8 32h-8.3c-20.8 10-43.9 16-68.5 16s-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48v-28.8c0-63.6-51.6-115.2-115.2-115.2zm-223.7-13.4C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},faUsersCog:{prefix:"fas",iconName:"users-cog",icon:[640,512,[],"f509","M610.5 341.3c2.6-14.1 2.6-28.5 0-42.6l25.8-14.9c3-1.7 4.3-5.2 3.3-8.5-6.7-21.6-18.2-41.2-33.2-57.4-2.3-2.5-6-3.1-9-1.4l-25.8 14.9c-10.9-9.3-23.4-16.5-36.9-21.3v-29.8c0-3.4-2.4-6.4-5.7-7.1-22.3-5-45-4.8-66.2 0-3.3.7-5.7 3.7-5.7 7.1v29.8c-13.5 4.8-26 12-36.9 21.3l-25.8-14.9c-2.9-1.7-6.7-1.1-9 1.4-15 16.2-26.5 35.8-33.2 57.4-1 3.3.4 6.8 3.3 8.5l25.8 14.9c-2.6 14.1-2.6 28.5 0 42.6l-25.8 14.9c-3 1.7-4.3 5.2-3.3 8.5 6.7 21.6 18.2 41.1 33.2 57.4 2.3 2.5 6 3.1 9 1.4l25.8-14.9c10.9 9.3 23.4 16.5 36.9 21.3v29.8c0 3.4 2.4 6.4 5.7 7.1 22.3 5 45 4.8 66.2 0 3.3-.7 5.7-3.7 5.7-7.1v-29.8c13.5-4.8 26-12 36.9-21.3l25.8 14.9c2.9 1.7 6.7 1.1 9-1.4 15-16.2 26.5-35.8 33.2-57.4 1-3.3-.4-6.8-3.3-8.5l-25.8-14.9zM496 368.5c-26.8 0-48.5-21.8-48.5-48.5s21.8-48.5 48.5-48.5 48.5 21.8 48.5 48.5-21.7 48.5-48.5 48.5zM96 224c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64zm224 32c1.9 0 3.7-.5 5.6-.6 8.3-21.7 20.5-42.1 36.3-59.2 7.4-8 17.9-12.6 28.9-12.6 6.9 0 13.7 1.8 19.6 5.3l7.9 4.6c.8-.5 1.6-.9 2.4-1.4 7-14.6 11.2-30.8 11.2-48 0-61.9-50.1-112-112-112S208 82.1 208 144c0 61.9 50.1 112 112 112zm105.2 194.5c-2.3-1.2-4.6-2.6-6.8-3.9-8.2 4.8-15.3 9.8-27.5 9.8-10.9 0-21.4-4.6-28.9-12.6-18.3-19.8-32.3-43.9-40.2-69.6-10.7-34.5 24.9-49.7 25.8-50.3-.1-2.6-.1-5.2 0-7.8l-7.9-4.6c-3.8-2.2-7-5-9.8-8.1-3.3.2-6.5.6-9.8.6-24.6 0-47.6-6-68.5-16h-8.3C179.6 288 128 339.6 128 403.2V432c0 26.5 21.5 48 48 48h255.4c-3.7-6-6.2-12.8-6.2-20.3v-9.2zM173.1 274.6C161.5 263.1 145.6 256 128 256H64c-35.3 0-64 28.7-64 64v32c0 17.7 14.3 32 32 32h65.9c6.3-47.4 34.9-87.3 75.2-109.4z"]},faUsersSlash:{prefix:"fas",iconName:"users-slash",icon:[640,512,[],"e073","M132.65,212.32,36.21,137.78A63.4,63.4,0,0,0,32,160a63.84,63.84,0,0,0,100.65,52.32Zm40.44,62.28A63.79,63.79,0,0,0,128,256H64A64.06,64.06,0,0,0,0,320v32a32,32,0,0,0,32,32H97.91A146.62,146.62,0,0,1,173.09,274.6ZM544,224a64,64,0,1,0-64-64A64.06,64.06,0,0,0,544,224ZM500.56,355.11a114.24,114.24,0,0,0-84.47-65.28L361,247.23c41.46-16.3,71-55.92,71-103.23A111.93,111.93,0,0,0,320,32c-57.14,0-103.69,42.83-110.6,98.08L45.46,3.38A16,16,0,0,0,23,6.19L3.37,31.46A16,16,0,0,0,6.18,53.91L594.53,508.63A16,16,0,0,0,617,505.82l19.64-25.27a16,16,0,0,0-2.81-22.45ZM128,403.21V432a48,48,0,0,0,48,48H464a47.45,47.45,0,0,0,12.57-1.87L232,289.13C173.74,294.83,128,343.42,128,403.21ZM576,256H512a63.79,63.79,0,0,0-45.09,18.6A146.29,146.29,0,0,1,542,384h66a32,32,0,0,0,32-32V320A64.06,64.06,0,0,0,576,256Z"]},faUtensilSpoon:{prefix:"fas",iconName:"utensil-spoon",icon:[512,512,[],"f2e5","M480.1 31.9c-55-55.1-164.9-34.5-227.8 28.5-49.3 49.3-55.1 110-28.8 160.4L9 413.2c-11.6 10.5-12.1 28.5-1 39.5L59.3 504c11 11 29.1 10.5 39.5-1.1l192.4-214.4c50.4 26.3 111.1 20.5 160.4-28.8 63-62.9 83.6-172.8 28.5-227.8z"]},faUtensils:{prefix:"fas",iconName:"utensils",icon:[416,512,[],"f2e7","M207.9 15.2c.8 4.7 16.1 94.5 16.1 128.8 0 52.3-27.8 89.6-68.9 104.6L168 486.7c.7 13.7-10.2 25.3-24 25.3H80c-13.7 0-24.7-11.5-24-25.3l12.9-238.1C27.7 233.6 0 196.2 0 144 0 109.6 15.3 19.9 16.1 15.2 19.3-5.1 61.4-5.4 64 16.3v141.2c1.3 3.4 15.1 3.2 16 0 1.4-25.3 7.9-139.2 8-141.8 3.3-20.8 44.7-20.8 47.9 0 .2 2.7 6.6 116.5 8 141.8.9 3.2 14.8 3.4 16 0V16.3c2.6-21.6 44.8-21.4 48-1.1zm119.2 285.7l-15 185.1c-1.2 14 9.9 26 23.9 26h56c13.3 0 24-10.7 24-24V24c0-13.2-10.7-24-24-24-82.5 0-221.4 178.5-64.9 300.9z"]},faVectorSquare:{prefix:"fas",iconName:"vector-square",icon:[512,512,[],"f5cb","M512 128V32c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32H160c0-17.67-14.33-32-32-32H32C14.33 0 0 14.33 0 32v96c0 17.67 14.33 32 32 32v192c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32h192c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-96c0-17.67-14.33-32-32-32V160c17.67 0 32-14.33 32-32zm-96-64h32v32h-32V64zM64 64h32v32H64V64zm32 384H64v-32h32v32zm352 0h-32v-32h32v32zm-32-96h-32c-17.67 0-32 14.33-32 32v32H160v-32c0-17.67-14.33-32-32-32H96V160h32c17.67 0 32-14.33 32-32V96h192v32c0 17.67 14.33 32 32 32h32v192z"]},faVenus:{prefix:"fas",iconName:"venus",icon:[288,512,[],"f221","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80z"]},faVenusDouble:{prefix:"fas",iconName:"venus-double",icon:[512,512,[],"f226","M288 176c0-79.5-64.5-144-144-144S0 96.5 0 176c0 68.5 47.9 125.9 112 140.4V368H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.5 112-71.9 112-140.4zm-224 0c0-44.1 35.9-80 80-80s80 35.9 80 80-35.9 80-80 80-80-35.9-80-80zm336 140.4V368h36c6.6 0 12 5.4 12 12v40c0 6.6-5.4 12-12 12h-36v36c0 6.6-5.4 12-12 12h-40c-6.6 0-12-5.4-12-12v-36h-36c-6.6 0-12-5.4-12-12v-40c0-6.6 5.4-12 12-12h36v-51.6c-21.2-4.8-40.6-14.3-57.2-27.3 14-16.7 25-36 32.1-57.1 14.5 14.8 34.7 24 57.1 24 44.1 0 80-35.9 80-80s-35.9-80-80-80c-22.3 0-42.6 9.2-57.1 24-7.1-21.1-18-40.4-32.1-57.1C303.4 43.6 334.3 32 368 32c79.5 0 144 64.5 144 144 0 68.5-47.9 125.9-112 140.4z"]},faVenusMars:{prefix:"fas",iconName:"venus-mars",icon:[576,512,[],"f228","M564 0h-79c-10.7 0-16 12.9-8.5 20.5l16.9 16.9-48.7 48.7C422.5 72.1 396.2 64 368 64c-33.7 0-64.6 11.6-89.2 30.9 14 16.7 25 36 32.1 57.1 14.5-14.8 34.7-24 57.1-24 44.1 0 80 35.9 80 80s-35.9 80-80 80c-22.3 0-42.6-9.2-57.1-24-7.1 21.1-18 40.4-32.1 57.1 24.5 19.4 55.5 30.9 89.2 30.9 79.5 0 144-64.5 144-144 0-28.2-8.1-54.5-22.1-76.7l48.7-48.7 16.9 16.9c2.4 2.4 5.4 3.5 8.4 3.5 6.2 0 12.1-4.8 12.1-12V12c0-6.6-5.4-12-12-12zM144 64C64.5 64 0 128.5 0 208c0 68.5 47.9 125.9 112 140.4V400H76c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h36v36c0 6.6 5.4 12 12 12h40c6.6 0 12-5.4 12-12v-36h36c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-36v-51.6c64.1-14.6 112-71.9 112-140.4 0-79.5-64.5-144-144-144zm0 224c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z"]},faVest:{prefix:"fas",iconName:"vest",icon:[448,512,[],"e085","M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a24.021,24.021,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A24.021,24.021,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.564A151.518,151.518,0,0,0,224,86.234a151.55,151.55,0,0,0,73.812-19.672L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM131.312,371.312l-48,48a16,16,0,0,1-22.624-22.624l48-48a16,16,0,0,1,22.624,22.624Zm256,48a15.992,15.992,0,0,1-22.624,0l-48-48a16,16,0,0,1,22.624-22.624l48,48A15.993,15.993,0,0,1,387.312,419.312Z"]},faVestPatches:{prefix:"fas",iconName:"vest-patches",icon:[448,512,[],"e086","M437.252,239.877,384,160V32A32,32,0,0,0,352,0H320a23.982,23.982,0,0,0-13.312,4.031l-25,16.672a103.794,103.794,0,0,1-115.376,0l-25-16.672A23.982,23.982,0,0,0,128,0H96A32,32,0,0,0,64,32V160L10.748,239.877A64,64,0,0,0,0,275.377V480a32,32,0,0,0,32,32H192V288a31.987,31.987,0,0,1,1.643-10.119L207.135,237.4,150.188,66.561A151.579,151.579,0,0,0,224,86.234a151.565,151.565,0,0,0,73.811-19.668L224,288V512H416a32,32,0,0,0,32-32V275.377A64,64,0,0,0,437.252,239.877ZM63.5,272.484a12.01,12.01,0,0,1,17-16.968l15.5,15.5,15.5-15.5a12.01,12.01,0,0,1,17,16.968L112.984,288,128.5,303.516a12.01,12.01,0,0,1-17,16.968L96,304.984l-15.5,15.5a12.01,12.01,0,0,1-17-16.968L79.016,288ZM96,456a40,40,0,1,1,40-40A40,40,0,0,1,96,456ZM359.227,335.785,310.7,336a6.671,6.671,0,0,1-6.7-6.7l.215-48.574A24.987,24.987,0,0,1,331.43,256.1c12.789,1.162,22.129,12.619,22.056,25.419l-.037,5.057,5.051-.037c12.826-.035,24.236,9.275,25.4,22.076A24.948,24.948,0,0,1,359.227,335.785Z"]},faVial:{prefix:"fas",iconName:"vial",icon:[480,512,[],"f492","M477.7 186.1L309.5 18.3c-3.1-3.1-8.2-3.1-11.3 0l-34 33.9c-3.1 3.1-3.1 8.2 0 11.3l11.2 11.1L33 316.5c-38.8 38.7-45.1 102-9.4 143.5 20.6 24 49.5 36 78.4 35.9 26.4 0 52.8-10 72.9-30.1l246.3-245.7 11.2 11.1c3.1 3.1 8.2 3.1 11.3 0l34-33.9c3.1-3 3.1-8.1 0-11.2zM318 256H161l148-147.7 78.5 78.3L318 256z"]},faVials:{prefix:"fas",iconName:"vials",icon:[640,512,[],"f493","M72 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H72c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64zm480 384H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM360 64h24v240c0 44.1 35.9 80 80 80s80-35.9 80-80V64h24c4.4 0 8-3.6 8-8V8c0-4.4-3.6-8-8-8H360c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8zm72 0h64v96h-64V64z"]},faVideo:{prefix:"fas",iconName:"video",icon:[576,512,[],"f03d","M336.2 64H47.8C21.4 64 0 85.4 0 111.8v288.4C0 426.6 21.4 448 47.8 448h288.4c26.4 0 47.8-21.4 47.8-47.8V111.8c0-26.4-21.4-47.8-47.8-47.8zm189.4 37.7L416 177.3v157.4l109.6 75.5c21.2 14.6 50.4-.3 50.4-25.8V127.5c0-25.4-29.1-40.4-50.4-25.8z"]},faVideoSlash:{prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M633.8 458.1l-55-42.5c15.4-1.4 29.2-13.7 29.2-31.1v-257c0-25.5-29.1-40.4-50.4-25.8L448 177.3v137.2l-32-24.7v-178c0-26.4-21.4-47.8-47.8-47.8H123.9L45.5 3.4C38.5-2 28.5-.8 23 6.2L3.4 31.4c-5.4 7-4.2 17 2.8 22.4L42.7 82 416 370.6l178.5 138c7 5.4 17 4.2 22.5-2.8l19.6-25.3c5.5-6.9 4.2-17-2.8-22.4zM32 400.2c0 26.4 21.4 47.8 47.8 47.8h288.4c11.2 0 21.4-4 29.6-10.5L32 154.7v245.5z"]},faVihara:{prefix:"fas",iconName:"vihara",icon:[640,512,[],"f6a7","M632.88 400.71L544 352v-64l55.16-17.69c11.79-5.9 11.79-22.72 0-28.62L480 192v-64l27.31-16.3c7.72-7.72 5.61-20.74-4.16-25.62L320 0 136.85 86.07c-9.77 4.88-11.88 17.9-4.16 25.62L160 128v64L40.84 241.69c-11.79 5.9-11.79 22.72 0 28.62L96 288v64L7.12 400.71c-5.42 3.62-7.7 9.63-7 15.29.62 5.01 3.57 9.75 8.72 12.33L64 448v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48h160v48c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16v-48l55.15-19.67c5.16-2.58 8.1-7.32 8.72-12.33.71-5.67-1.57-11.68-6.99-15.29zM224 128h192v64H224v-64zm-64 224v-64h320v64H160z"]},faVirus:{prefix:"fas",iconName:"virus",icon:[512,512,[],"e074","M483.55,227.55H462c-50.68,0-76.07-61.27-40.23-97.11L437,115.19A28.44,28.44,0,0,0,396.8,75L381.56,90.22c-35.84,35.83-97.11,10.45-97.11-40.23V28.44a28.45,28.45,0,0,0-56.9,0V50c0,50.68-61.27,76.06-97.11,40.23L115.2,75A28.44,28.44,0,0,0,75,115.19l15.25,15.25c35.84,35.84,10.45,97.11-40.23,97.11H28.45a28.45,28.45,0,1,0,0,56.89H50c50.68,0,76.07,61.28,40.23,97.12L75,396.8A28.45,28.45,0,0,0,115.2,437l15.24-15.25c35.84-35.84,97.11-10.45,97.11,40.23v21.54a28.45,28.45,0,0,0,56.9,0V462c0-50.68,61.27-76.07,97.11-40.23L396.8,437A28.45,28.45,0,0,0,437,396.8l-15.25-15.24c-35.84-35.84-10.45-97.12,40.23-97.12h21.54a28.45,28.45,0,1,0,0-56.89ZM224,272a48,48,0,1,1,48-48A48,48,0,0,1,224,272Zm80,56a24,24,0,1,1,24-24A24,24,0,0,1,304,328Z"]},faVirusSlash:{prefix:"fas",iconName:"virus-slash",icon:[640,512,[],"e075","M114,227.6H92.4C76.7,227.6,64,240.3,64,256s12.7,28.4,28.4,28.4H114c50.7,0,76.1,61.3,40.2,97.1L139,396.8 c-11.5,10.7-12.2,28.7-1.6,40.2s28.7,12.2,40.2,1.6c0.5-0.5,1.1-1,1.6-1.6l15.2-15.2c35.8-35.8,97.1-10.5,97.1,40.2v21.5 c0,15.7,12.8,28.4,28.5,28.4c15.7,0,28.4-12.7,28.4-28.4V462c0-26.6,17-45.9,38.2-53.4l-244.5-189 C133.7,224.7,123.9,227.5,114,227.6z M617,505.8l19.6-25.3c5.4-7,4.2-17-2.8-22.5L470.6,332c4.2-25.4,24.9-47.5,55.4-47.5h21.5 c15.7,0,28.4-12.7,28.4-28.4s-12.7-28.4-28.4-28.4H526c-50.7,0-76.1-61.3-40.2-97.1l15.2-15.3c10.7-11.5,10-29.5-1.6-40.2 c-10.9-10.1-27.7-10.1-38.6,0l-15.2,15.2c-35.8,35.8-97.1,10.5-97.1-40.2V28.5C348.4,12.7,335.7,0,320,0 c-15.7,0-28.4,12.7-28.4,28.4V50c0,50.7-61.3,76.1-97.1,40.2L179.2,75c-11.1-11.1-29.4-10.6-40.5,0.5L45.5,3.4 c-7-5.4-17-4.2-22.5,2.8L3.4,31.5c-5.4,7-4.2,17,2.8,22.5l588.4,454.7C601.5,514.1,611.6,512.8,617,505.8z M335.4,227.5l-62.9-48.6 c4.9-1.8,10.2-2.8,15.4-2.9c26.5,0,48,21.5,48,48C336,225.2,335.5,226.3,335.4,227.5z"]},faViruses:{prefix:"fas",iconName:"viruses",icon:[640,512,[],"e076","M624,352H611.88c-28.51,0-42.79-34.47-22.63-54.63l8.58-8.57a16,16,0,1,0-22.63-22.63l-8.57,8.58C546.47,294.91,512,280.63,512,252.12V240a16,16,0,0,0-32,0v12.12c0,28.51-34.47,42.79-54.63,22.63l-8.57-8.58a16,16,0,0,0-22.63,22.63l8.58,8.57c20.16,20.16,5.88,54.63-22.63,54.63H368a16,16,0,0,0,0,32h12.12c28.51,0,42.79,34.47,22.63,54.63l-8.58,8.57a16,16,0,1,0,22.63,22.63l8.57-8.58c20.16-20.16,54.63-5.88,54.63,22.63V496a16,16,0,0,0,32,0V483.88c0-28.51,34.47-42.79,54.63-22.63l8.57,8.58a16,16,0,1,0,22.63-22.63l-8.58-8.57C569.09,418.47,583.37,384,611.88,384H624a16,16,0,0,0,0-32ZM480,384a32,32,0,1,1,32-32A32,32,0,0,1,480,384ZM346.51,213.33h16.16a21.33,21.33,0,0,0,0-42.66H346.51c-38,0-57.05-46-30.17-72.84l11.43-11.44A21.33,21.33,0,0,0,297.6,56.23L286.17,67.66c-26.88,26.88-72.84,7.85-72.84-30.17V21.33a21.33,21.33,0,0,0-42.66,0V37.49c0,38-46,57.05-72.84,30.17L86.4,56.23A21.33,21.33,0,0,0,56.23,86.39L67.66,97.83c26.88,26.88,7.85,72.84-30.17,72.84H21.33a21.33,21.33,0,0,0,0,42.66H37.49c38,0,57.05,46,30.17,72.84L56.23,297.6A21.33,21.33,0,1,0,86.4,327.77l11.43-11.43c26.88-26.88,72.84-7.85,72.84,30.17v16.16a21.33,21.33,0,0,0,42.66,0V346.51c0-38,46-57.05,72.84-30.17l11.43,11.43a21.33,21.33,0,0,0,30.17-30.17l-11.43-11.43C289.46,259.29,308.49,213.33,346.51,213.33ZM160,192a32,32,0,1,1,32-32A32,32,0,0,1,160,192Zm80,32a16,16,0,1,1,16-16A16,16,0,0,1,240,224Z"]},faVoicemail:{prefix:"fas",iconName:"voicemail",icon:[640,512,[],"f897","M496 128a144 144 0 0 0-119.74 224H263.74A144 144 0 1 0 144 416h352a144 144 0 0 0 0-288zM64 272a80 80 0 1 1 80 80 80 80 0 0 1-80-80zm432 80a80 80 0 1 1 80-80 80 80 0 0 1-80 80z"]},faVolleyballBall:{prefix:"fas",iconName:"volleyball-ball",icon:[512,512,[],"f45f","M231.39 243.48a285.56 285.56 0 0 0-22.7-105.7c-90.8 42.4-157.5 122.4-180.3 216.8a249 249 0 0 0 56.9 81.1 333.87 333.87 0 0 1 146.1-192.2zm-36.9-134.4a284.23 284.23 0 0 0-57.4-70.7c-91 49.8-144.8 152.9-125 262.2 33.4-83.1 98.4-152 182.4-191.5zm187.6 165.1c8.6-99.8-27.3-197.5-97.5-264.4-14.7-1.7-51.6-5.5-98.9 8.5A333.87 333.87 0 0 1 279.19 241a285 285 0 0 0 102.9 33.18zm-124.7 9.5a286.33 286.33 0 0 0-80.2 72.6c82 57.3 184.5 75.1 277.5 47.8a247.15 247.15 0 0 0 42.2-89.9 336.1 336.1 0 0 1-80.9 10.4c-54.6-.1-108.9-14.1-158.6-40.9zm-98.3 99.7c-15.2 26-25.7 54.4-32.1 84.2a247.07 247.07 0 0 0 289-22.1c-112.9 16.1-203.3-24.8-256.9-62.1zm180.3-360.6c55.3 70.4 82.5 161.2 74.6 253.6a286.59 286.59 0 0 0 89.7-14.2c0-2 .3-4 .3-6 0-107.8-68.7-199.1-164.6-233.4z"]},faVolumeDown:{prefix:"fas",iconName:"volume-down",icon:[384,512,[],"f027","M215.03 72.04L126.06 161H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V89.02c0-21.47-25.96-31.98-40.97-16.98zm123.2 108.08c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 229.28 336 242.62 336 257c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.87z"]},faVolumeMute:{prefix:"fas",iconName:"volume-mute",icon:[512,512,[],"f6a9","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zM461.64 256l45.64-45.64c6.3-6.3 6.3-16.52 0-22.82l-22.82-22.82c-6.3-6.3-16.52-6.3-22.82 0L416 210.36l-45.64-45.64c-6.3-6.3-16.52-6.3-22.82 0l-22.82 22.82c-6.3 6.3-6.3 16.52 0 22.82L370.36 256l-45.63 45.63c-6.3 6.3-6.3 16.52 0 22.82l22.82 22.82c6.3 6.3 16.52 6.3 22.82 0L416 301.64l45.64 45.64c6.3 6.3 16.52 6.3 22.82 0l22.82-22.82c6.3-6.3 6.3-16.52 0-22.82L461.64 256z"]},faVolumeOff:{prefix:"fas",iconName:"volume-off",icon:[256,512,[],"f026","M215 71l-89 89H24a24 24 0 0 0-24 24v144a24 24 0 0 0 24 24h102.06L215 441c15 15 41 4.47 41-17V88c0-21.47-26-32-41-17z"]},faVolumeUp:{prefix:"fas",iconName:"volume-up",icon:[576,512,[],"f028","M215.03 71.05L126.06 160H24c-13.26 0-24 10.74-24 24v144c0 13.25 10.74 24 24 24h102.06l88.97 88.95c15.03 15.03 40.97 4.47 40.97-16.97V88.02c0-21.46-25.96-31.98-40.97-16.97zm233.32-51.08c-11.17-7.33-26.18-4.24-33.51 6.95-7.34 11.17-4.22 26.18 6.95 33.51 66.27 43.49 105.82 116.6 105.82 195.58 0 78.98-39.55 152.09-105.82 195.58-11.17 7.32-14.29 22.34-6.95 33.5 7.04 10.71 21.93 14.56 33.51 6.95C528.27 439.58 576 351.33 576 256S528.27 72.43 448.35 19.97zM480 256c0-63.53-32.06-121.94-85.77-156.24-11.19-7.14-26.03-3.82-33.12 7.46s-3.78 26.21 7.41 33.36C408.27 165.97 432 209.11 432 256s-23.73 90.03-63.48 115.42c-11.19 7.14-14.5 22.07-7.41 33.36 6.51 10.36 21.12 15.14 33.12 7.46C447.94 377.94 480 319.54 480 256zm-141.77-76.87c-11.58-6.33-26.19-2.16-32.61 9.45-6.39 11.61-2.16 26.2 9.45 32.61C327.98 228.28 336 241.63 336 256c0 14.38-8.02 27.72-20.92 34.81-11.61 6.41-15.84 21-9.45 32.61 6.43 11.66 21.05 15.8 32.61 9.45 28.23-15.55 45.77-45 45.77-76.88s-17.54-61.32-45.78-76.86z"]},faVoteYea:{prefix:"fas",iconName:"vote-yea",icon:[640,512,[],"f772","M608 320h-64v64h22.4c5.3 0 9.6 3.6 9.6 8v16c0 4.4-4.3 8-9.6 8H73.6c-5.3 0-9.6-3.6-9.6-8v-16c0-4.4 4.3-8 9.6-8H96v-64H32c-17.7 0-32 14.3-32 32v96c0 17.7 14.3 32 32 32h576c17.7 0 32-14.3 32-32v-96c0-17.7-14.3-32-32-32zm-96 64V64.3c0-17.9-14.5-32.3-32.3-32.3H160.4C142.5 32 128 46.5 128 64.3V384h384zM211.2 202l25.5-25.3c4.2-4.2 11-4.2 15.2.1l41.3 41.6 95.2-94.4c4.2-4.2 11-4.2 15.2.1l25.3 25.5c4.2 4.2 4.2 11-.1 15.2L300.5 292c-4.2 4.2-11 4.2-15.2-.1l-74.1-74.7c-4.3-4.2-4.2-11 0-15.2z"]},faVrCardboard:{prefix:"fas",iconName:"vr-cardboard",icon:[640,512,[],"f729","M608 64H32C14.33 64 0 78.33 0 96v320c0 17.67 14.33 32 32 32h160.22c25.19 0 48.03-14.77 58.36-37.74l27.74-61.64C286.21 331.08 302.35 320 320 320s33.79 11.08 41.68 28.62l27.74 61.64C399.75 433.23 422.6 448 447.78 448H608c17.67 0 32-14.33 32-32V96c0-17.67-14.33-32-32-32zM160 304c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64zm320 0c-35.35 0-64-28.65-64-64s28.65-64 64-64 64 28.65 64 64-28.65 64-64 64z"]},faWalking:w,faWallet:{prefix:"fas",iconName:"wallet",icon:[512,512,[],"f555","M461.2 128H80c-8.84 0-16-7.16-16-16s7.16-16 16-16h384c8.84 0 16-7.16 16-16 0-26.51-21.49-48-48-48H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h397.2c28.02 0 50.8-21.53 50.8-48V176c0-26.47-22.78-48-50.8-48zM416 336c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32z"]},faWarehouse:{prefix:"fas",iconName:"warehouse",icon:[640,512,[],"f494","M504 352H136.4c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0 96H136.1c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8h368c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm0-192H136.6c-4.4 0-8 3.6-8 8l-.1 48c0 4.4 3.6 8 8 8H504c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8zm106.5-139L338.4 3.7a48.15 48.15 0 0 0-36.9 0L29.5 117C11.7 124.5 0 141.9 0 161.3V504c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V256c0-17.6 14.6-32 32.6-32h382.8c18 0 32.6 14.4 32.6 32v248c0 4.4 3.6 8 8 8h80c4.4 0 8-3.6 8-8V161.3c0-19.4-11.7-36.8-29.5-44.3z"]},faWater:{prefix:"fas",iconName:"water",icon:[576,512,[],"f773","M562.1 383.9c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144c-21.5-2.4-42.1-10.5-57.9-22.9-14.1-11.1-34.2-11.3-48.2 0-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3zm0-144C540.6 93.4 520 85.4 504.2 73 490.1 61.9 470 61.7 456 73c-37.9 30.4-107.2 30.4-145.7-1.5-13.5-11.2-33-9.1-46.7 1.8-38 30.1-106.9 30-145.2-1.7-13.5-11.2-33.3-8.9-47.1 2-15.5 12.2-36 20.1-57.7 22.4-7.9.8-13.6 7.8-13.6 15.7v32.2c0 9.1 7.6 16.8 16.7 16 28.8-2.5 56.1-11.4 79.4-25.9 56.5 34.6 137 34.1 192 0 56.5 34.6 137 34.1 192 0 23.3 14.2 50.9 23.3 79.1 25.8 9.1.8 16.7-6.9 16.7-16v-31.6c.1-8-5.7-15.4-13.8-16.3z"]},faWaveSquare:{prefix:"fas",iconName:"wave-square",icon:[640,512,[],"f83e","M476 480H324a36 36 0 0 1-36-36V96h-96v156a36 36 0 0 1-36 36H16a16 16 0 0 1-16-16v-32a16 16 0 0 1 16-16h112V68a36 36 0 0 1 36-36h152a36 36 0 0 1 36 36v348h96V260a36 36 0 0 1 36-36h140a16 16 0 0 1 16 16v32a16 16 0 0 1-16 16H512v156a36 36 0 0 1-36 36z"]},faWeight:{prefix:"fas",iconName:"weight",icon:[512,512,[],"f496","M448 64h-25.98C438.44 92.28 448 125.01 448 160c0 105.87-86.13 192-192 192S64 265.87 64 160c0-34.99 9.56-67.72 25.98-96H64C28.71 64 0 92.71 0 128v320c0 35.29 28.71 64 64 64h384c35.29 0 64-28.71 64-64V128c0-35.29-28.71-64-64-64zM256 320c88.37 0 160-71.63 160-160S344.37 0 256 0 96 71.63 96 160s71.63 160 160 160zm-.3-151.94l33.58-78.36c3.5-8.17 12.94-11.92 21.03-8.41 8.12 3.48 11.88 12.89 8.41 21l-33.67 78.55C291.73 188 296 197.45 296 208c0 22.09-17.91 40-40 40s-40-17.91-40-40c0-21.98 17.76-39.77 39.7-39.94z"]},faWeightHanging:{prefix:"fas",iconName:"weight-hanging",icon:[512,512,[],"f5cd","M510.28 445.86l-73.03-292.13c-3.8-15.19-16.44-25.72-30.87-25.72h-60.25c3.57-10.05 5.88-20.72 5.88-32 0-53.02-42.98-96-96-96s-96 42.98-96 96c0 11.28 2.3 21.95 5.88 32h-60.25c-14.43 0-27.08 10.54-30.87 25.72L1.72 445.86C-6.61 479.17 16.38 512 48.03 512h415.95c31.64 0 54.63-32.83 46.3-66.14zM256 128c-17.64 0-32-14.36-32-32s14.36-32 32-32 32 14.36 32 32-14.36 32-32 32z"]},faWheelchair:{prefix:"fas",iconName:"wheelchair",icon:[512,512,[],"f193","M496.101 385.669l14.227 28.663c3.929 7.915.697 17.516-7.218 21.445l-65.465 32.886c-16.049 7.967-35.556 1.194-43.189-15.055L331.679 320H192c-15.925 0-29.426-11.71-31.679-27.475C126.433 55.308 128.38 70.044 128 64c0-36.358 30.318-65.635 67.052-63.929 33.271 1.545 60.048 28.905 60.925 62.201.868 32.933-23.152 60.423-54.608 65.039l4.67 32.69H336c8.837 0 16 7.163 16 16v32c0 8.837-7.163 16-16 16H215.182l4.572 32H352a32 32 0 0 1 28.962 18.392L438.477 396.8l36.178-18.349c7.915-3.929 17.517-.697 21.446 7.218zM311.358 352h-24.506c-7.788 54.204-54.528 96-110.852 96-61.757 0-112-50.243-112-112 0-41.505 22.694-77.809 56.324-97.156-3.712-25.965-6.844-47.86-9.488-66.333C45.956 198.464 0 261.963 0 336c0 97.047 78.953 176 176 176 71.87 0 133.806-43.308 161.11-105.192L311.358 352z"]},faWifi:{prefix:"fas",iconName:"wifi",icon:[640,512,[],"f1eb","M634.91 154.88C457.74-8.99 182.19-8.93 5.09 154.88c-6.66 6.16-6.79 16.59-.35 22.98l34.24 33.97c6.14 6.1 16.02 6.23 22.4.38 145.92-133.68 371.3-133.71 517.25 0 6.38 5.85 16.26 5.71 22.4-.38l34.24-33.97c6.43-6.39 6.3-16.82-.36-22.98zM320 352c-35.35 0-64 28.65-64 64s28.65 64 64 64 64-28.65 64-64-28.65-64-64-64zm202.67-83.59c-115.26-101.93-290.21-101.82-405.34 0-6.9 6.1-7.12 16.69-.57 23.15l34.44 33.99c6 5.92 15.66 6.32 22.05.8 83.95-72.57 209.74-72.41 293.49 0 6.39 5.52 16.05 5.13 22.05-.8l34.44-33.99c6.56-6.46 6.33-17.06-.56-23.15z"]},faWind:{prefix:"fas",iconName:"wind",icon:[512,512,[],"f72e","M156.7 256H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h142.2c15.9 0 30.8 10.9 33.4 26.6 3.3 20-12.1 37.4-31.6 37.4-14.1 0-26.1-9.2-30.4-21.9-2.1-6.3-8.6-10.1-15.2-10.1H81.6c-9.8 0-17.7 8.8-15.9 18.4 8.6 44.1 47.6 77.6 94.2 77.6 57.1 0 102.7-50.1 95.2-108.6C249 291 205.4 256 156.7 256zM16 224h336c59.7 0 106.8-54.8 93.8-116.7-7.6-36.2-36.9-65.5-73.1-73.1-55.4-11.6-105.1 24.9-114.9 75.5-1.9 9.6 6.1 18.3 15.8 18.3h32.8c6.7 0 13.1-3.8 15.2-10.1C325.9 105.2 337.9 96 352 96c19.4 0 34.9 17.4 31.6 37.4-2.6 15.7-17.4 26.6-33.4 26.6H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16zm384 32H243.7c19.3 16.6 33.2 38.8 39.8 64H400c26.5 0 48 21.5 48 48s-21.5 48-48 48c-17.9 0-33.3-9.9-41.6-24.4-2.9-5-8.7-7.6-14.5-7.6h-33.8c-10.9 0-19 10.8-15.3 21.1 17.8 50.6 70.5 84.8 129.4 72.3 41.2-8.7 75.1-41.6 84.7-82.7C526 321.5 470.5 256 400 256z"]},faWindowClose:{prefix:"fas",iconName:"window-close",icon:[512,512,[],"f410","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-83.6 290.5c4.8 4.8 4.8 12.6 0 17.4l-40.5 40.5c-4.8 4.8-12.6 4.8-17.4 0L256 313.3l-66.5 67.1c-4.8 4.8-12.6 4.8-17.4 0l-40.5-40.5c-4.8-4.8-4.8-12.6 0-17.4l67.1-66.5-67.1-66.5c-4.8-4.8-4.8-12.6 0-17.4l40.5-40.5c4.8-4.8 12.6-4.8 17.4 0l66.5 67.1 66.5-67.1c4.8-4.8 12.6-4.8 17.4 0l40.5 40.5c4.8 4.8 4.8 12.6 0 17.4L313.3 256l67.1 66.5z"]},faWindowMaximize:{prefix:"fas",iconName:"window-maximize",icon:[512,512,[],"f2d0","M464 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16 160H64v-84c0-6.6 5.4-12 12-12h360c6.6 0 12 5.4 12 12v84z"]},faWindowMinimize:{prefix:"fas",iconName:"window-minimize",icon:[512,512,[],"f2d1","M464 352H48c-26.5 0-48 21.5-48 48v32c0 26.5 21.5 48 48 48h416c26.5 0 48-21.5 48-48v-32c0-26.5-21.5-48-48-48z"]},faWindowRestore:{prefix:"fas",iconName:"window-restore",icon:[512,512,[],"f2d2","M512 48v288c0 26.5-21.5 48-48 48h-48V176c0-44.1-35.9-80-80-80H128V48c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zM384 176v288c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48h288c26.5 0 48 21.5 48 48zm-68 28c0-6.6-5.4-12-12-12H76c-6.6 0-12 5.4-12 12v52h252v-52z"]},faWineBottle:{prefix:"fas",iconName:"wine-bottle",icon:[512,512,[],"f72f","M507.31 72.57L439.43 4.69c-6.25-6.25-16.38-6.25-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l-76.67 76.67c-46.58-19.7-102.4-10.73-140.37 27.23L18.75 312.23c-24.99 24.99-24.99 65.52 0 90.51l90.51 90.51c24.99 24.99 65.52 24.99 90.51 0l158.39-158.39c37.96-37.96 46.93-93.79 27.23-140.37l76.67-76.67c6.25 6.25 16.38 6.25 22.63 0l22.63-22.63c6.24-6.24 6.24-16.37-.01-22.62zM179.22 423.29l-90.51-90.51 122.04-122.04 90.51 90.51-122.04 122.04z"]},faWineGlass:{prefix:"fas",iconName:"wine-glass",icon:[288,512,[],"f4e3","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40z"]},faWineGlassAlt:{prefix:"fas",iconName:"wine-glass-alt",icon:[288,512,[],"f5ce","M216 464h-40V346.81c68.47-15.89 118.05-79.91 111.4-154.16l-15.95-178.1C270.71 6.31 263.9 0 255.74 0H32.26c-8.15 0-14.97 6.31-15.7 14.55L.6 192.66C-6.05 266.91 43.53 330.93 112 346.82V464H72c-22.09 0-40 17.91-40 40 0 4.42 3.58 8 8 8h208c4.42 0 8-3.58 8-8 0-22.09-17.91-40-40-40zM61.75 48h164.5l7.17 80H54.58l7.17-80z"]},faWonSign:{prefix:"fas",iconName:"won-sign",icon:[576,512,[],"f159","M564 192c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-48l18.6-80.6c1.7-7.5-4-14.7-11.7-14.7h-46.1c-5.7 0-10.6 4-11.7 9.5L450.7 128H340.8l-19.7-86c-1.3-5.5-6.1-9.3-11.7-9.3h-44c-5.6 0-10.4 3.8-11.7 9.3l-20 86H125l-17.5-85.7c-1.1-5.6-6.1-9.6-11.8-9.6H53.6c-7.7 0-13.4 7.1-11.7 14.6L60 128H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h62.3l7.2 32H12c-6.6 0-12 5.4-12 12v40c0 6.6 5.4 12 12 12h83.9l40.9 182.6c1.2 5.5 6.1 9.4 11.7 9.4h56.8c5.6 0 10.4-3.9 11.7-9.3L259.3 288h55.1l42.4 182.7c1.3 5.4 6.1 9.3 11.7 9.3h56.8c5.6 0 10.4-3.9 11.7-9.3L479.1 288H564c6.6 0 12-5.4 12-12v-40c0-6.6-5.4-12-12-12h-70.1l7.4-32zM183.8 342c-6.2 25.8-6.8 47.2-7.3 47.2h-1.1s-1.7-22-6.8-47.2l-11-54h38.8zm27.5-118h-66.8l-6.5-32h80.8zm62.9 0l2-8.6c1.9-8 3.5-16 4.8-23.4h11.8c1.3 7.4 2.9 15.4 4.8 23.4l2 8.6zm130.9 118c-5.1 25.2-6.8 47.2-6.8 47.2h-1.1c-.6 0-1.1-21.4-7.3-47.2l-12.4-54h39.1zm25.2-118h-67.4l-7.3-32h81.6z"]},faWrench:{prefix:"fas",iconName:"wrench",icon:[512,512,[],"f0ad","M507.73 109.1c-2.24-9.03-13.54-12.09-20.12-5.51l-74.36 74.36-67.88-11.31-11.31-67.88 74.36-74.36c6.62-6.62 3.43-17.9-5.66-20.16-47.38-11.74-99.55.91-136.58 37.93-39.64 39.64-50.55 97.1-34.05 147.2L18.74 402.76c-24.99 24.99-24.99 65.51 0 90.5 24.99 24.99 65.51 24.99 90.5 0l213.21-213.21c50.12 16.71 107.47 5.68 147.37-34.22 37.07-37.07 49.7-89.32 37.91-136.73zM64 472c-13.25 0-24-10.75-24-24 0-13.26 10.75-24 24-24s24 10.74 24 24c0 13.25-10.75 24-24 24z"]},faXRay:{prefix:"fas",iconName:"x-ray",icon:[640,512,[],"f497","M240 384c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm160 32c8.8 0 16-7.2 16-16s-7.2-16-16-16-16 7.2-16 16 7.2 16 16 16zM624 0H16C7.2 0 0 7.2 0 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16V16c0-8.8-7.2-16-16-16zm0 448h-48V96H64v352H16c-8.8 0-16 7.2-16 16v32c0 8.8 7.2 16 16 16h608c8.8 0 16-7.2 16-16v-32c0-8.8-7.2-16-16-16zM480 248c0 4.4-3.6 8-8 8H336v32h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h64c26.5 0 48 21.5 48 48s-21.5 48-48 48-48-21.5-48-48v-16h-64v16c0 26.5-21.5 48-48 48s-48-21.5-48-48 21.5-48 48-48h64v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-32H168c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h136v-32H200c-4.4 0-8-3.6-8-8v-16c0-4.4 3.6-8 8-8h104v-24c0-4.4 3.6-8 8-8h16c4.4 0 8 3.6 8 8v24h104c4.4 0 8 3.6 8 8v16c0 4.4-3.6 8-8 8H336v32h136c4.4 0 8 3.6 8 8v16z"]},faYenSign:{prefix:"fas",iconName:"yen-sign",icon:[384,512,[],"f157","M351.2 32h-65.3c-4.6 0-8.8 2.6-10.8 6.7l-55.4 113.2c-14.5 34.7-27.1 71.9-27.1 71.9h-1.3s-12.6-37.2-27.1-71.9L108.8 38.7c-2-4.1-6.2-6.7-10.8-6.7H32.8c-9.1 0-14.8 9.7-10.6 17.6L102.3 200H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h88.2l19.8 37.2V320H44c-6.6 0-12 5.4-12 12v32c0 6.6 5.4 12 12 12h108v92c0 6.6 5.4 12 12 12h56c6.6 0 12-5.4 12-12v-92h108c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12H232v-26.8l19.8-37.2H340c6.6 0 12-5.4 12-12v-32c0-6.6-5.4-12-12-12h-58.3l80.1-150.4c4.3-7.9-1.5-17.6-10.6-17.6z"]},faYinYang:{prefix:"fas",iconName:"yin-yang",icon:[496,512,[],"f6ad","M248 8C111.03 8 0 119.03 0 256s111.03 248 248 248 248-111.03 248-248S384.97 8 248 8zm0 376c-17.67 0-32-14.33-32-32s14.33-32 32-32 32 14.33 32 32-14.33 32-32 32zm0-128c-53.02 0-96 42.98-96 96s42.98 96 96 96c-106.04 0-192-85.96-192-192S141.96 64 248 64c53.02 0 96 42.98 96 96s-42.98 96-96 96zm0-128c-17.67 0-32 14.33-32 32s14.33 32 32 32 32-14.33 32-32-14.33-32-32-32z"]}};function A(t){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},A(t)}function y(t,e){for(var a=0;a0;)e+=gt[62*Math.random()|0];return e}function bt(t){return"".concat(t).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function wt(t){return Object.keys(t||{}).reduce((function(e,a){return e+"".concat(a,": ").concat(t[a],";")}),"")}function Ct(t){return t.size!==mt.size||t.x!==mt.x||t.y!==mt.y||t.rotate!==mt.rotate||t.flipX||t.flipY}function At(t){var e=t.transform,a=t.containerWidth,i=t.iconWidth,n={transform:"translate(".concat(a/2," 256)")},s="translate(".concat(32*e.x,", ").concat(32*e.y,") "),r="scale(".concat(e.size/16*(e.flipX?-1:1),", ").concat(e.size/16*(e.flipY?-1:1),") "),c="rotate(".concat(e.rotate," 0 0)");return{outer:n,inner:{transform:"".concat(s," ").concat(r," ").concat(c)},path:{transform:"translate(".concat(i/2*-1," -256)")}}}var yt={x:0,y:0,width:"100%",height:"100%"};function Lt(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return t.attributes&&(t.attributes.fill||e)&&(t.attributes.fill="black"),t}var Ht=(U.measurePerformance&&Q&&Q.mark&&Q.measure,function(t,e,a,i){var n,s,r,c=Object.keys(t),o=c.length,l=void 0!==i?function(t,e){return function(a,i,n,s){return t.call(e,a,i,n,s)}}(e,i):e;for(void 0===a?(n=1,r=t[c[0]]):(n=0,r=a);n2&&void 0!==arguments[2]?arguments[2]:{}).skipHooks,i=void 0!==a&&a,n=Object.keys(e).reduce((function(t,a){var i=e[a];return i.icon?t[i.iconName]=i.icon:t[a]=i,t}),{});"function"!=typeof j.hooks.addPack||i?j.styles[t]=H({},j.styles[t]||{},n):j.hooks.addPack(t,n),"fas"===t&&Bt("fa",e)}var zt=j.styles,Nt=j.shims,xt=function(){var t=function(t){return Ht(zt,(function(e,a,i){return e[i]=Ht(a,t,{}),e}),{})};t((function(t,e,a){return e[3]&&(t[e[3]]=a),t})),t((function(t,e,a){var i=e[2];return t[a]=a,i.forEach((function(e){t[e]=a})),t}));var e="far"in zt;Ht(Nt,(function(t,a){var i=a[0],n=a[1],s=a[2];return"far"!==n||e||(n="fas"),t[i]={prefix:n,iconName:s},t}),{})};function Dt(t,e,a){if(t&&t[e]&&t[e][a])return{prefix:e,iconName:a,icon:t[e][a]}}function Vt(t){var e=t.tag,a=t.attributes,i=void 0===a?{}:a,n=t.children,s=void 0===n?[]:n;return"string"==typeof t?bt(t):"<".concat(e," ").concat(function(t){return Object.keys(t||{}).reduce((function(e,a){return e+"".concat(a,'="').concat(bt(t[a]),'" ')}),"").trim()}(i),">").concat(s.map(Vt).join(""),"")}function Mt(t){this.name="MissingIcon",this.message=t||"Icon unavailable",this.stack=(new Error).stack}xt(),j.styles,Mt.prototype=Object.create(Error.prototype),Mt.prototype.constructor=Mt;var St={fill:"currentColor"},kt={attributeType:"XML",repeatCount:"indefinite",dur:"2s"},Qt=(H({},St,{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"}),H({},kt,{attributeName:"opacity"}));function It(t){var e=t[0],a=t[1],i=B(t.slice(4),1)[0];return{found:!0,width:e,height:a,icon:Array.isArray(i)?{tag:"g",attributes:{class:"".concat(U.familyPrefix,"-").concat(F.GROUP)},children:[{tag:"path",attributes:{class:"".concat(U.familyPrefix,"-").concat(F.SECONDARY),fill:"currentColor",d:i[0]}},{tag:"path",attributes:{class:"".concat(U.familyPrefix,"-").concat(F.PRIMARY),fill:"currentColor",d:i[1]}}]}:{tag:"path",attributes:{fill:"currentColor",d:i}}}}H({},St,{cx:"256",cy:"364",r:"28"}),H({},kt,{attributeName:"r",values:"28;14;28;28;14;28;"}),H({},Qt,{values:"1;0;1;1;0;1;"}),H({},St,{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),H({},Qt,{values:"1;0;0;0;0;1;"}),H({},St,{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),H({},Qt,{values:"0;0;1;1;0;0;"}),j.styles,j.styles;var Ot='svg:not(:root).svg-inline--fa {\n overflow: visible;\n}\n\n.svg-inline--fa {\n display: inline-block;\n font-size: inherit;\n height: 1em;\n overflow: visible;\n vertical-align: -0.125em;\n}\n.svg-inline--fa.fa-lg {\n vertical-align: -0.225em;\n}\n.svg-inline--fa.fa-w-1 {\n width: 0.0625em;\n}\n.svg-inline--fa.fa-w-2 {\n width: 0.125em;\n}\n.svg-inline--fa.fa-w-3 {\n width: 0.1875em;\n}\n.svg-inline--fa.fa-w-4 {\n width: 0.25em;\n}\n.svg-inline--fa.fa-w-5 {\n width: 0.3125em;\n}\n.svg-inline--fa.fa-w-6 {\n width: 0.375em;\n}\n.svg-inline--fa.fa-w-7 {\n width: 0.4375em;\n}\n.svg-inline--fa.fa-w-8 {\n width: 0.5em;\n}\n.svg-inline--fa.fa-w-9 {\n width: 0.5625em;\n}\n.svg-inline--fa.fa-w-10 {\n width: 0.625em;\n}\n.svg-inline--fa.fa-w-11 {\n width: 0.6875em;\n}\n.svg-inline--fa.fa-w-12 {\n width: 0.75em;\n}\n.svg-inline--fa.fa-w-13 {\n width: 0.8125em;\n}\n.svg-inline--fa.fa-w-14 {\n width: 0.875em;\n}\n.svg-inline--fa.fa-w-15 {\n width: 0.9375em;\n}\n.svg-inline--fa.fa-w-16 {\n width: 1em;\n}\n.svg-inline--fa.fa-w-17 {\n width: 1.0625em;\n}\n.svg-inline--fa.fa-w-18 {\n width: 1.125em;\n}\n.svg-inline--fa.fa-w-19 {\n width: 1.1875em;\n}\n.svg-inline--fa.fa-w-20 {\n width: 1.25em;\n}\n.svg-inline--fa.fa-pull-left {\n margin-right: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-pull-right {\n margin-left: 0.3em;\n width: auto;\n}\n.svg-inline--fa.fa-border {\n height: 1.5em;\n}\n.svg-inline--fa.fa-li {\n width: 2em;\n}\n.svg-inline--fa.fa-fw {\n width: 1.25em;\n}\n\n.fa-layers svg.svg-inline--fa {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.fa-layers {\n display: inline-block;\n height: 1em;\n position: relative;\n text-align: center;\n vertical-align: -0.125em;\n width: 1em;\n}\n.fa-layers svg.svg-inline--fa {\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter, .fa-layers-text {\n display: inline-block;\n position: absolute;\n text-align: center;\n}\n\n.fa-layers-text {\n left: 50%;\n top: 50%;\n -webkit-transform: translate(-50%, -50%);\n transform: translate(-50%, -50%);\n -webkit-transform-origin: center center;\n transform-origin: center center;\n}\n\n.fa-layers-counter {\n background-color: #ff253a;\n border-radius: 1em;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n color: #fff;\n height: 1.5em;\n line-height: 1;\n max-width: 5em;\n min-width: 1.5em;\n overflow: hidden;\n padding: 0.25em;\n right: 0;\n text-overflow: ellipsis;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-bottom-right {\n bottom: 0;\n right: 0;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom right;\n transform-origin: bottom right;\n}\n\n.fa-layers-bottom-left {\n bottom: 0;\n left: 0;\n right: auto;\n top: auto;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: bottom left;\n transform-origin: bottom left;\n}\n\n.fa-layers-top-right {\n right: 0;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top right;\n transform-origin: top right;\n}\n\n.fa-layers-top-left {\n left: 0;\n right: auto;\n top: 0;\n -webkit-transform: scale(0.25);\n transform: scale(0.25);\n -webkit-transform-origin: top left;\n transform-origin: top left;\n}\n\n.fa-lg {\n font-size: 1.3333333333em;\n line-height: 0.75em;\n vertical-align: -0.0667em;\n}\n\n.fa-xs {\n font-size: 0.75em;\n}\n\n.fa-sm {\n font-size: 0.875em;\n}\n\n.fa-1x {\n font-size: 1em;\n}\n\n.fa-2x {\n font-size: 2em;\n}\n\n.fa-3x {\n font-size: 3em;\n}\n\n.fa-4x {\n font-size: 4em;\n}\n\n.fa-5x {\n font-size: 5em;\n}\n\n.fa-6x {\n font-size: 6em;\n}\n\n.fa-7x {\n font-size: 7em;\n}\n\n.fa-8x {\n font-size: 8em;\n}\n\n.fa-9x {\n font-size: 9em;\n}\n\n.fa-10x {\n font-size: 10em;\n}\n\n.fa-fw {\n text-align: center;\n width: 1.25em;\n}\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0;\n}\n.fa-ul > li {\n position: relative;\n}\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit;\n}\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: 0.1em;\n padding: 0.2em 0.25em 0.15em;\n}\n\n.fa-pull-left {\n float: left;\n}\n\n.fa-pull-right {\n float: right;\n}\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: 0.3em;\n}\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: 0.3em;\n}\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8);\n}\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n.fa-rotate-90 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg);\n}\n\n.fa-rotate-180 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg);\n}\n\n.fa-rotate-270 {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg);\n}\n\n.fa-flip-horizontal {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1);\n}\n\n.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1);\n}\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1);\n}\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none;\n}\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n position: relative;\n width: 2.5em;\n}\n\n.fa-stack-1x,\n.fa-stack-2x {\n bottom: 0;\n left: 0;\n margin: auto;\n position: absolute;\n right: 0;\n top: 0;\n}\n\n.svg-inline--fa.fa-stack-1x {\n height: 1em;\n width: 1.25em;\n}\n.svg-inline--fa.fa-stack-2x {\n height: 2em;\n width: 2.5em;\n}\n\n.fa-inverse {\n color: #fff;\n}\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto;\n}\n\n.svg-inline--fa .fa-primary {\n fill: var(--fa-primary-color, currentColor);\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa .fa-secondary {\n fill: var(--fa-secondary-color, currentColor);\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-primary {\n opacity: 0.4;\n opacity: var(--fa-secondary-opacity, 0.4);\n}\n\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\n opacity: 1;\n opacity: var(--fa-primary-opacity, 1);\n}\n\n.svg-inline--fa mask .fa-primary,\n.svg-inline--fa mask .fa-secondary {\n fill: black;\n}\n\n.fad.fa-inverse {\n color: #fff;\n}';var Et=function(){function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.definitions={}}var e,a;return e=t,a=[{key:"add",value:function(){for(var t=this,e=arguments.length,a=new Array(e),i=0;i-1;n--){var s=a[n],r=(s.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(r)>-1&&(i=s)}k.head.insertBefore(e,i)}}(function(){var t=E,e=X,a=U.familyPrefix,i=U.replacementClass,n=Ot;if(a!==t||i!==e){var s=new RegExp("\\.".concat(t,"\\-"),"g"),r=new RegExp("\\--".concat(t,"\\-"),"g"),c=new RegExp("\\.".concat(e),"g");n=n.replace(s,".".concat(a,"-")).replace(r,"--".concat(a,"-")).replace(c,".".concat(i))}return n}()),Kt=!0)}function Tt(t,e){return Object.defineProperty(t,"abstract",{get:e}),Object.defineProperty(t,"html",{get:function(){return t.abstract.map((function(t){return Vt(t)}))}}),Object.defineProperty(t,"node",{get:function(){if(I){var e=k.createElement("div");return e.innerHTML=t.html,e.children}}}),t}function Pt(t){var e=t.prefix,a=void 0===e?"fa":e,i=t.iconName;if(i)return Dt(Gt.definitions,a,i)||Dt(j.styles,a,i)}var Ft,Gt=new Et,Kt=!1,Ut=(Ft=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=e.transform,i=void 0===a?mt:a,n=e.symbol,s=void 0!==n&&n,r=e.mask,c=void 0===r?null:r,o=e.maskId,l=void 0===o?null:o,h=e.title,u=void 0===h?null:h,d=e.titleId,f=void 0===d?null:d,p=e.classes,m=void 0===p?[]:p,g=e.attributes,v=void 0===g?{}:g,b=e.styles,w=void 0===b?{}:b;if(t){var C=t.prefix,A=t.iconName,y=t.icon;return Tt(H({type:"icon"},t),(function(){return Xt(),U.autoA11y&&(u?v["aria-labelledby"]="".concat(U.replacementClass,"-title-").concat(f||vt()):(v["aria-hidden"]="true",v.focusable="false")),function(t){var e=t.icons,a=e.main,i=e.mask,n=t.prefix,s=t.iconName,r=t.transform,c=t.symbol,o=t.title,l=t.maskId,h=t.titleId,u=t.extra,d=t.watchable,f=void 0!==d&&d,p=i.found?i:a,m=p.width,g=p.height,v="fak"===n,b=v?"":"fa-w-".concat(Math.ceil(m/g*16)),w=[U.replacementClass,s?"".concat(U.familyPrefix,"-").concat(s):"",b].filter((function(t){return-1===u.classes.indexOf(t)})).filter((function(t){return""!==t||!!t})).concat(u.classes).join(" "),C={children:[],attributes:H({},u.attributes,{"data-prefix":n,"data-icon":s,class:w,role:u.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(m," ").concat(g)})},A=v&&!~u.classes.indexOf("fa-fw")?{width:"".concat(m/g*16*.0625,"em")}:{};f&&(C.attributes["data-fa-i2svg"]=""),o&&C.children.push({tag:"title",attributes:{id:C.attributes["aria-labelledby"]||"title-".concat(h||vt())},children:[o]});var y=H({},C,{prefix:n,iconName:s,main:a,mask:i,maskId:l,transform:r,symbol:c,styles:H({},A,u.styles)}),L=i.found&&a.found?function(t){var e,a=t.children,i=t.attributes,n=t.main,s=t.mask,r=t.maskId,c=t.transform,o=n.width,l=n.icon,h=s.width,u=s.icon,d=At({transform:c,containerWidth:h,iconWidth:o}),f={tag:"rect",attributes:H({},yt,{fill:"white"})},p=l.children?{children:l.children.map(Lt)}:{},m={tag:"g",attributes:H({},d.inner),children:[Lt(H({tag:l.tag,attributes:H({},l.attributes,d.path)},p))]},g={tag:"g",attributes:H({},d.outer),children:[m]},v="mask-".concat(r||vt()),b="clip-".concat(r||vt()),w={tag:"mask",attributes:H({},yt,{id:v,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[f,g]},C={tag:"defs",children:[{tag:"clipPath",attributes:{id:b},children:(e=u,"g"===e.tag?e.children:[e])},w]};return a.push(C,{tag:"rect",attributes:H({fill:"currentColor","clip-path":"url(#".concat(b,")"),mask:"url(#".concat(v,")")},yt)}),{children:a,attributes:i}}(y):function(t){var e=t.children,a=t.attributes,i=t.main,n=t.transform,s=wt(t.styles);if(s.length>0&&(a.style=s),Ct(n)){var r=At({transform:n,containerWidth:i.width,iconWidth:i.width});e.push({tag:"g",attributes:H({},r.outer),children:[{tag:"g",attributes:H({},r.inner),children:[{tag:i.icon.tag,children:i.icon.children,attributes:H({},i.icon.attributes,r.path)}]}]})}else e.push(i.icon);return{children:e,attributes:a}}(y),B=L.children,z=L.attributes;return y.children=B,y.attributes=z,c?function(t){var e=t.prefix,a=t.iconName,i=t.children,n=t.attributes,s=t.symbol;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:H({},n,{id:!0===s?"".concat(e,"-").concat(U.familyPrefix,"-").concat(a):s}),children:i}]}]}(y):function(t){var e=t.children,a=t.main,i=t.mask,n=t.attributes,s=t.styles,r=t.transform;if(Ct(r)&&a.found&&!i.found){var c={x:a.width/a.height/2,y:.5};n.style=wt(H({},s,{"transform-origin":"".concat(c.x+r.x/16,"em ").concat(c.y+r.y/16,"em")}))}return[{tag:"svg",attributes:n,children:e}]}(y)}({icons:{main:It(y),mask:c?It(c.icon):{found:!1,width:null,height:null,icon:{}}},prefix:C,iconName:A,transform:H({},mt,i),symbol:s,title:u,maskId:l,titleId:f,extra:{attributes:v,styles:w,classes:m}})}))}},function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},a=(t||{}).icon?t:Pt(t||{}),i=e.mask;return i&&(i=(i||{}).icon?i:Pt(i||{})),Ft(a,H({},e,{mask:i}))});Gt.add(C);const qt="obsidian-leaflet-plugin-icon-description",jt=Ut(_t("info-circle")).html[0],Yt="obsidian-leaflet-plugin-icon-bullseye",Rt=Ut(_t("bullseye")).html[0],Wt="obsidian-leaflet-plugin-icon-map",Zt=Ut(_t("map-marked-alt")).html[0],Jt=Object.values(C).map((t=>t.iconName));function _t(t){return t?Pt({iconName:t,prefix:"fas"}):null}const $t=function(t){var e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).classes,a=void 0===e?[]:e;return Tt({type:"layer"},(function(){Xt();var e,i=[];return t((function(t){Array.isArray(t)?t.map((function(t){i=i.concat(t.abstract)})):i=i.concat(t.abstract)})),[{tag:"span",attributes:{class:["".concat(U.familyPrefix,"-layers")].concat((e=a,function(t){if(Array.isArray(t)){for(var e=0,a=new Array(t.length);e{t(Ut(w)),t(Ut(v))})).node[0],te=new Map([["Blinded",Ut(o,{attributes:{stroke:"coral","stroke-width":1}}).node[0]],["Charmed",Ut(u,{attributes:{stroke:"coral","stroke-width":1}}).node[0]],["Concentrating",Ut(f).node[0]],["Deafened",Ut(r).node[0]],["Frightened",Ut(b).node[0]],["Grappled",Ut(h).node[0]],["Incapacitated",Ut(m).node[0]],["Invisible",Ut(l).node[0]],["Paralyzed",$t],["Petrified",Ut(p).node[0]],["Poisoned",Ut(g).node[0]],["Prone",Ut(n).node[0]],["Reacted",Ut(s).node[0]],["Restrained",Ut(d).node[0]],["Stunned",Ut(c).node[0]],["Unconscious",Ut(m).node[0]]]);function ee(t,e){if(!t)return null;if(t.isImage){let e=new Image;return e.src=t.imageUrl,{html:e.outerHTML,node:e}}const a=Ut(_t(t.iconName),e);return{html:a.html[0],node:a.node[0]}}var ae=a(767),ie=a.n(ae);const ne="obsidian-leaflet",se="obsidian-leaflet-map-view",re="https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png",ce="a,b,c,d",oe='© OpenStreetMap contributors © CARTO',le=/^(\d+(?:\.\d+)?)\s?(\w*)/,he=2,ue=.6,de={darkMode:"false",defaultZoom:5,distanceMultiplier:1,drawColor:"#3388ff",geojson:[],geojsonColor:"#3388ff",gpx:[],gpxColor:"#3388ff",height:"500px",image:"real",imageOverlay:[],isMapView:!1,layers:[],linksFrom:[],linksTo:[],marker:[],commandMarker:[],markerFile:[],markerFolder:[],markerTag:[],maxZoom:10,minZoom:1,osmLayer:!0,overlay:[],overlayColor:"blue",scale:1,showAllMarkers:!1,tileServer:[],verbose:!1,zoomDelta:1,zoomFeatures:!1},fe={type:"real",minZoom:1,maxZoom:10,defaultZoom:1,zoomDelta:1,unit:"m",scale:1,distanceMultiplier:1,darkMode:!1,overlayColor:"blue",osmLayer:!0,isMapView:!1},pe={mapMarkers:[],defaultMarker:{type:"default",iconName:"map-marker",color:"#dddddd",transform:{size:6,x:0,y:-2}},markerIcons:[],color:"#dddddd",lat:39.983334,long:-82.98333,notePreview:!1,layerMarkers:!0,previousVersion:null,version:{major:null,minor:null,patch:null},warnedAboutMapMarker:!1,copyOnClick:!1,displayMarkerTooltips:"hover",displayOverlayTooltips:!0,configDirectory:null,mapViewEnabled:!0,mapViewParameters:{},enableDraw:!0,defaultUnitType:"imperial",defaultTile:re,defaultTileDark:re,defaultAttribution:oe,defaultTileSubdomains:ce},me={className:"leaflet-marker-link-popup",autoClose:!1,closeButton:!1,closeOnClick:!1,autoPan:!1},ge=t.Platform.isMacOS?"Meta":"Control",ve=((new Date).getFullYear(),(new Date).getFullYear(),(new Date).getFullYear(),{"Loading Obsidian Leaflet v%1":"Loading Obsidian Leaflet v%1","Open Leaflet Map":"Open Leaflet Map","Unloading Obsidian Leaflet":"Unloading Obsidian Leaflet","Obsidian Leaflet maps must have an ID.":"Obsidian Leaflet maps must have an ID.","ID required":"ID required","There was an error saving into the configured directory.":"There was an error saving into the configured directory.","Could not parse GeoJSON file":"Could not parse GeoJSON file","Could not parse overlay radius. Please make sure it is in the format ` `.":"Could not parse overlay radius. Please make sure it is in the format ` `.","There was an error with the provided latitude. Using default.":"There was an error with the provided latitude. Using default.","There was an error with the provided longitude. Using default.":"There was an error with the provided longitude. Using default.","There was an issue getting the image dimensions.":"There was an issue getting the image dimensions.","There was an error updating the marker for %1.":"There was an error updating the marker for %1.","There was an error updating the marker type for %1.":"There was an error updating the marker type for %1.","There was an error updating the markers for %1.":"There was an error updating the markers for %1.","Coordinates copied to clipboard.":"Coordinates copied to clipboard.","There was an error trying to copy coordinates to clipboard.":"There was an error trying to copy coordinates to clipboard.","There was an error rendering the map":"There was an error rendering the map","Unparseable height provided.":"Unparseable height provided.","There was a problem with the provided height. Using 500px.":"There was a problem with the provided height. Using 500px.","Could not parse latitude":"Could not parse latitude","Could not parse longitude":"Could not parse longitude","No data for marker %1.":"No data for marker %1.","The `%1` field%2 can only be used with the Dataview plugin installed.":"The `%1` field%2 can only be used with the Dataview plugin installed.","Could not parse location in %1":"Could not parse location in %1","Could not parse map overlay length in %1. Please ensure it is in the format: ":"Could not parse map overlay length in %1. Please ensure it is in the format: ","%1 overlay":"%1 overlay","Could not parse %1 in %2. Please ensure it is in the format: ":"Could not parse %1 in %2. Please ensure it is in the format: ",meters:"meters",petameters:"petameters",terameters:"terameters",gigameters:"gigameters",megameters:"megameters",kilometers:"kilometers",hectometers:"hectometers",decameters:"decameters",decimeters:"decimeters",centimeters:"centimeters",millimeters:"millimeters",micrometers:"micrometers",nanometers:"nanometers",picometers:"picometers",femtometers:"femtometers",feet:"feet",inches:"inches",yards:"yards",miles:"miles","nautical miles":"nautical miles","Obsidian Leaflet Settings":"Obsidian Leaflet Settings","Default Map Marker":"Default Map Marker","This marker is always available.":"This marker is always available.","Icon Name":"Icon Name","A default marker must be defined.":"A default marker must be defined","The selected icon does not exist in Font Awesome Free.":"The selected icon does not exist in Font Awesome Free.","Upload Image":"Upload Image","Marker Color":"Marker Color","Layer Base Marker":"Layer Base Marker","Use as base layer for additional markers by default.":"Use as base layer for additional markers by default.","Additional Map Markers":"Additional Map Markers","Add Additional":"Add Additional","These markers will be available in the right-click menu on the map.":"These markers will be available in the right-click menu on the map.","Default Latitude":"Default Latitude","Real-world maps will open to this latitude if not specified.":"Real-world maps will open to this latitude if not specified.","Latitude must be a number.":"Latitude must be a number.","Default Longitude":"Default Longitude","Real-world maps will open to this longitude if not specified.":"Real-world maps will open to this longitude if not specified.","Longitude must be a number.":"Longitude must be a number.","Reset to Default":"Reset to Default","Please back up your data before changing this setting.":"Please back up your data before changing this setting.","Current directory":"Current directory","Default Config Directory":"Default Config Directory","Default Marker Tooltip Behavior":"Default Marker Tooltip Behavior","New markers will be created to this setting by default. Can be overridden per-marker.":"New markers will be created to this setting by default. Can be overridden per-marker.",Always:"Always",Hover:"Hover",Never:"Never","Display Note Preview":"Display Note Preview","Markers linked to notes will show a note preview when hovered.":"Markers linked to notes will show a note preview when hovered.","Display Overlay Tooltips":"Display Overlay Tooltips","Overlay tooltips will display when hovered.":"Overlay tooltips will display when hovered.","Copy Coordinates on Shift-Click":"Copy Coordinates on Shift-Click","Map coordinates will be copied to the clipboard when shift-clicking.":"Map coordinates will be copied to the clipboard when shift-clicking.","This setting is experimental and could cause marker data issues. Use at your own risk.":"This setting is experimental and could cause marker data issues. Use at your own risk.","Import Marker CSV File":"Import Marker CSV File","Choose File":"Choose File","Upload CSV File":"Upload CSV File","Map not specified for line %1":"Map not specified for line %1","Could not parse latitude for line %1":"Could not parse latitude for line %1","Could not parse longitude for line %1":"Could not parse longitude for line %1","Marker file successfully imported.":"Marker file successfully imported.","There was an error while importing %1":"There was an error while importing %1","Export Marker Data":"Export Marker Data","Export all marker data to a CSV file.":"Export all marker data to a CSV file.",Export:"Export","Enable Draw Mode by Default":"Enable Draw Mode by Default","The draw control will be added to maps by default. Can be overridden with the draw map block parameter.":"The draw control will be added to maps by default. Can be overridden with the draw map block parameter.","Default Units":"Default Units","Select the default system of units for the map.":"Select the default system of units for the map.","Default Tile Server":"Default Tile Server","It is up to you to ensure you have proper access to this tile server.":"It is up to you to ensure you have proper access to this tile server.","Default Tile Server Attribution":"Default Tile Server Attribution","Please ensure your attribution meets all requirements set by the tile server.":"Please ensure your attribution meets all requirements set by the tile server.","Default Tile Server (Dark Mode)":"Default Tile Server (Dark Mode)",Imperial:"Imperial",Metric:"Metric","Only display when zooming out above this zoom.":"Only display when zooming out above this zoom.","Only display when zooming in below this zoom.":"Only display when zooming in below this zoom.",Reset:"Reset","Default Tile Server Subdomains":"Default Tile Server Subdomains","Available subdomains for this tile server concurrent requests.":"Available subdomains for this tile server concurrent requests. Spilt by ',', etc. 'a,b,c'","Marker Name":"Marker Name","Marker name already exists.":"Marker name already exists.","Marker name cannot be empty.":"Marker name cannot be empty.","Font Awesome icon name (e.g. map-marker).":"Font Awesome icon name (e.g. map-marker).","Use Image for Icon":"Use Image for Icon","Layer Icon":"Layer Icon","The icon will be layered on the base icon.":"The icon will be layered on the base icon.","Override default icon color.":"Override default icon color.",Save:"Save","Marker type already exists.":"Marker type already exists.","Invalid icon name.":"Invalid icon name.","Icon cannot be empty.":"Icon cannot be empty.",Cancel:"Cancel",Type:"Type","to link heading":"to link heading","to link blocks":"to link blocks",Note:"Note","Blocks must have been created already":"Blocks must have been created already","There was an error parsing the JSON.":"There was an error parsing the JSON.","Execute Command":"Execute Command","The marker will execute an Obsidian command on click":"The marker will execute an Obsidian command on click","Command to Execute":"Command to Execute","Name of Obsidian Command to execute":"Name of Obsidian Command to execute",Command:"Command","Note to Open":"Note to Open","Path of note to open":"Path of note to open",Path:"Path","Marker Type":"Marker Type",Default:"Default","Display Tooltip":"Display Tooltip","Min Zoom":"Min Zoom","Only display when zooming in below this zoom. Current map minimum":"Only display when zooming in below this zoom. Current map minimum","Minimum zoom must be a number.":"Minimum zoom must be a number.","Max Zoom":"Max Zoom","Only display when zooming out above this zoom. Current map maximum":"Only display when zooming out above this zoom. Current map maximum","Maximum zoom must be a number.":"Maximum zoom must be a number.","Associate Tags":"Associate Tags","Markers created from this tag using ":"Markers created from this tag using "," will use this marker icon by default.":" will use this marker icon by default.","Delete Marker":"Delete Marker","Overlay Radius":"Overlay Radius","Circle radius in":"Circle radius in","Radius must be greater than 0.":"Radius must be greater than 0.","Overlay Description":"Overlay Description","Overlay Color":"Overlay Color","Delete Overlay":"Delete Overlay","File Name":"File Name","Enter a file name.":"Enter a file name.","Leaflet Map":"Leaflet Map",'Marker type "%1" does not exist, using default.':'Marker type "%1" does not exist, using default.',"There was an error saving the overlay.":"There was an error saving the overlay.","There was an error adding GeoJSON to map":"There was an error adding GeoJSON to map","There was an error adding GPX to map":"There was an error adding GPX to map","Edit Overlay":"Edit Overlay","Create Marker":"Create Marker","OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server.":"OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server.","There was an issue parsing the tile layer: %1":"There was an issue parsing the tile layer: %1","OpenStreetMap cannot be turned off without specifying additional tile servers.":"OpenStreetMap cannot be turned off without specifying additional tile servers.","No command found!":"No command found!","This marker cannot be edited because it was defined in the code block.":"This marker cannot be edited because it was defined in the code block.","This overlay cannot be edited because it was defined in the code block.":"This overlay cannot be edited because it was defined in the code block.","Edit Marker":"Edit Marker","Convert to Code Block":"Convert to Code Block","Leaflet: Could not create icon for %1 - does this type exist in settings?":"Leaflet: Could not create icon for %1 - does this type exist in settings?",Lat:"Lat",Lng:"Lng",Time:"Time",Elevation:"Elevation",Speed:"Speed",Pace:"Pace",Temperature:"Temperature","Heart Rate":"Heart Rate",Cadence:"Cadence",spm:"spm","Show All Markers":"Show All Markers","Reset View":"Reset View","Edit View Parameters":"Edit View Parameters","Save Parameters to View":"Save Parameters to View","Zoom to %1 GPX Track%2":"Zoom to %1 GPX Track%2",Heatlines:"Heatlines","Zoom to GPX":"Zoom to GPX",Deselect:"Deselect",All:"All",None:"None","Filter Markers":"Filter Markers","Bulk Edit Markers":"Bulk Edit Markers","Delete All":"Delete All",marker:"marker",markers:"markers","Add New":"Add New","There was an issue with the provided latitude.":"There was an issue with the provided latitude.","There was an issue with the provided longitude.":"There was an issue with the provided longitude.",Draw:"Draw",Polygon:"Polygon",Polyline:"Polyline",Rectangle:"Rectangle","Free Draw":"Free Draw","Delete Shapes":"Delete Shapes",Done:"Done",Text:"Text",Color:"Color","Fill Color":"Fill Color","Move Shapes":"Move Shapes","Export Drawing to GeoJSON":"Export Drawing to GeoJSON"}),be=window.localStorage.getItem("language"),we={en:ve,zh:{"Loading Obsidian Leaflet v%1":"加载Obsidian Leaflet版本 v%1","Open Leaflet Map":"打开 Leaflet 地图","Unloading Obsidian Leaflet":"卸载 Obsidian Leaflet 中","Obsidian Leaflet maps must have an ID.":"Obsidian Leaflet 地图必须包含 ID.","ID required":"ID 必填","There was an error saving into the configured directory.":"保存到配置的目录时出错.","Could not parse GeoJSON file":"无法解析 GeoJSON 文件","Could not parse overlay radius. Please make sure it is in the format ` `.":"无法解析覆盖半径. 请确保格式为 `<长度> <单位>`.","There was an error with the provided latitude. Using default.":"提供的纬度有误. 使用默认值.","There was an error with the provided longitude. Using default.":"提供的经度有误. 使用默认值.","There was an issue getting the image dimensions.":"获取图片尺寸时出错.","There was an error updating the marker for %1.":"更新 %1 的标记(marker)时出错","There was an error updating the marker type for %1.":"更新 %1 的标记类型(marker type)出现了错误","There was an error updating the markers for %1.":"更新 %1 的标记(markers)出现了错误","Coordinates copied to clipboard.":"坐标已复制到剪贴板.","There was an error trying to copy coordinates to clipboard.":"尝试复制坐标到剪贴板时出错.","There was an error rendering the map":"渲染地图时出错","Unparseable height provided.":"无法解析的高度(height).","There was a problem with the provided height. Using 500px.":"提供的显示高度(height)有误. 使用 500px.","Could not parse latitude":"无法解析纬度(latitude)","Could not parse longitude":"无法解析经度(longitude)","No data for marker %1.":"标记(marker) %1 没有数据","The `%1` field%2 can only be used with the Dataview plugin installed.":"只有安装了 Dataview 插件,才能使用`%1`字段`%2`","Could not parse location in %1":"无法解析 %1 中的位置","Could not parse map overlay length in %1. Please ensure it is in the format: ":"无法解析 %1 中的地图叠加层长度,请确保其格式为:<距离> <单位>","%1 overlay":"%1 叠加层","Could not parse %1 in %2. Please ensure it is in the format: ":"无法解析 %2 中的 %1,请确保其格式为:<距离> <单位>",meters:"米",petameters:"拍米",terameters:"太米",gigameters:"吉米",megameters:"兆米",kilometers:"千米",hectometers:"百米",decameters:"十米",decimeters:"分米",centimeters:"厘米",millimeters:"毫米",micrometers:"微米",nanometers:"纳米",picometers:"皮米",femtometers:"飞米",feet:"英尺",inches:"英寸",yards:"码",miles:"英里","nautical miles":"海里","Obsidian Leaflet Settings":"Obsidian Leaflet 设置","Default Map Marker":"默认地图标记","This marker is always available.":"此标记始终可用","Icon Name":"图标名称","A default marker must be defined.":"必须定义默认标记","The selected icon does not exist in Font Awesome Free.":"所选图标不存在于 Font Awesome Free 中","Upload Image":"上传图片","Marker Color":"标记颜色","Layer Base Marker":"图层基本标记","Use as base layer for additional markers by default.":"默认情况下,将其用作附加标记的基本图层","Additional Map Markers":"附加地图标记","Add Additional":"添加附加","These markers will be available in the right-click menu on the map.":"这些标记将在地图上的右键菜单可选","Default Latitude":"默认纬度","Real-world maps will open to this latitude if not specified.":"如果未指定,则使用此纬度作为默认值","Latitude must be a number.":"纬度必须是数字","Default Longitude":"默认经度","Real-world maps will open to this longitude if not specified.":"如果未指定,则使用此经度作为默认值","Longitude must be a number.":"经度必须是数字","Reset to Default":"重置为默认值","Please back up your data before changing this setting.":"在更改此设置之前,请先备份您的数据","Current directory":"当前目录","Default Config Directory":"默认配置目录","Default Marker Tooltip Behavior":"何时显示默认标记提示","New markers will be created to this setting by default. Can be overridden per-marker.":"新创建的标记将会加入到下面,在此处对不同的标记进行自定义设置提示方式",Always:"始终",Hover:"悬停",Never:"从不","Display Note Preview":"显示笔记预览","Markers linked to notes will show a note preview when hovered.":"当鼠标悬停在已经关联笔记的标记上时,会显示关联笔记的预览界面","Display Overlay Tooltips":"显示叠加层提示","Overlay tooltips will display when hovered.":"当鼠标悬停在叠加层上时显示提示","Copy Coordinates on Shift-Click":"Shift-单击鼠标左键 时复制坐标","Map coordinates will be copied to the clipboard when shift-clicking.":"当按下 Shift 并单击鼠标左键时,地图坐标将被复制到剪贴板","This setting is experimental and could cause marker data issues. Use at your own risk.":"此设置是实验性的,可能会导致标记数据出现问题,请自行承担风险。","Import Marker CSV File":"导入标记 CSV 文件","Choose File":"选择文件","Upload CSV File":"上传 CSV 文件","Map not specified for line %1":"第 %1 行未指定地图","Could not parse latitude for line %1":"无法解析第 %1 行的纬度1","Could not parse longitude for line %1":"无法解析第 %1 行的经度","Marker file successfully imported.":"标记文件已成功导入","There was an error while importing %1":"导入 %1 时出错","Export Marker Data":"导出标记数据","Export all marker data to a CSV file.":"将所有标记数据导出到 CSV 文件",Export:"导出","Enable Draw Mode by Default":"默认启用绘制模式","The draw control will be added to maps by default. Can be overridden with the draw map block parameter.":"默认情况下,地图会显示绘制控件,可以使用在地图参数配置中自定义关闭控件显示","Default Units":"默认单位","Select the default system of units for the map.":"选择地图的默认单位制","Default Tile Server":"默认瓦片服务器(Tile Server)","It is up to you to ensure you have proper access to this tile server.":"请确保您有权访问此瓦片服务器","Default Tile Server Attribution":"默认瓦片服务器版权描述","Please ensure your attribution meets all requirements set by the tile server.":"请确保您的版权符合瓦片服务器的所有要求,此段将显示在地图右下角","Default Tile Server (Dark Mode)":"默认瓦片服务器(暗黑主题模式)",Imperial:"英制",Metric:"公制","Only display when zooming out above this zoom.":"仅当缩放级别大于此缩放级别时显示","Only display when zooming in below this zoom.":"仅当缩放级别小于此缩放级别时显示",Reset:"重置为默认","Default Tile Server Subdomains":"默认瓦片服务器子域","Available subdomains for this tile server concurrent requests.":"瓦片服务器的子域列表,逗号','作为分隔符,如'a,b,c',主要用来并发请求瓦片服务器,将会替换在瓦片服务器的's'参数","Marker Name":"标记名称","Marker name already exists.":"标记名称已存在","Marker name cannot be empty.":"标记名称不能为空","Font Awesome icon name (e.g. map-marker).":"Font Awesome 图标名称(例如 map-marker)","Use Image for Icon":"使用图片作为图标","Layer Icon":"图标层","The icon will be layered on the base icon.":"图标将叠加在基础图标上","Override default icon color.":"覆盖默认图标颜色",Save:"保存","Marker type already exists.":"标记类型已存在","Invalid icon name.":"无效的图标名称","Icon cannot be empty.":"图标不能为空",Cancel:"取消",Type:"类型","to link heading":"链接标题","to link blocks":"链接块",Note:"注意","Blocks must have been created already":"块必须已经创建。","There was an error parsing the JSON.":"解析JSON时出错","Execute Command":"执行命令","The marker will execute an Obsidian command on click":"点击标记将执行Obsidian命令","Command to Execute":"要执行的命令","Name of Obsidian Command to execute":"要执行的Obsidian命令名称",Command:"命令","Note to Open":"要打开的笔记","Path of note to open":"要打开的笔记的路径",Path:"路径","Marker Type":"标记类型",Default:"默认","Display Tooltip":"显示提示信息","Min Zoom":"最小缩放级别","Only display when zooming in below this zoom. Current map minimum":"只有在缩放级别低于此级别时才显示。当前地图最小级别","Minimum zoom must be a number.":"最小缩放级别必须为数字","Max Zoom":"最大缩放级别","Only display when zooming out above this zoom. Current map maximum":"只有在缩放级别高于此级别时才显示,当前地图最大级别","Maximum zoom must be a number.":"最大缩放级别必须为数字","Associate Tags":"关联标签","Markers created from this tag using ":"属性"," will use this marker icon by default.":"指定tag中包含此处填写的tag,则从这个tag创建的地图标记将会使用当前标记图标","Delete Marker":"删除标记","Overlay Radius":"覆盖半径","Circle radius in":"圆的半径为","Radius must be greater than 0.":"半径必须大于0","Overlay Description":"覆盖说明","Overlay Color":"覆盖颜色","Delete Overlay":"删除覆盖","File Name":"文件名","Enter a file name.":"输入文件名。","Leaflet Map":"Leaflet 地图",'Marker type "%1" does not exist, using default.':'标记类型 "%1" 不存在,使用默认值',"There was an error saving the overlay.":"保存覆盖层时发生错误","There was an error adding GeoJSON to map":"将 GeoJSON 添加到地图时出错","There was an error adding GPX to map":"将 GPX 添加到地图时出错","Edit Overlay":"编辑覆盖层","Create Marker":"创建标记","OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server.":"OpenStreetMap已经限制了在Obsidian中使用其瓦片服务器。您的地图随时可能会出现问题。请切换到其他的瓦片服务器。","There was an issue parsing the tile layer: %1":"解析瓦片图层时出现问题:%1。","OpenStreetMap cannot be turned off without specifying additional tile servers.":"没有指定其他瓦片服务器的情况下,无法关闭OpenStreetMap。","No command found!":"未找到命令!","This marker cannot be edited because it was defined in the code block.":"此标记无法编辑,因为它已经在代码块中被使用","This overlay cannot be edited because it was defined in the code block.":"此覆盖层无法编辑,因为它已经在代码块中被使用","Edit Marker":"编辑标记","Convert to Code Block":"转换成代码块","Leaflet: Could not create icon for %1 - does this type exist in settings?":"Leaflet:无法为%1创建图标-在设置中是否存在此类型?",Lat:"纬度",Lng:"经度",Time:"时间",Elevation:"海拔高度",Speed:"速度",Pace:"配速",Temperature:"温度","Heart Rate":"心率",Cadence:"步频",spm:"spm","Show All Markers":"显示所有标记","Reset View":"重置视图","Edit View Parameters":"编辑视图参数","Save Parameters to View":"保存参数到视图","Zoom to %1 GPX Track%2":"缩放到 %1 条 GPX 轨迹%2",Heatlines:"热力线","Zoom to GPX":"缩放到 GPX",Deselect:"取消选择",All:"全部",None:"无","Filter Markers":"筛选标记","Bulk Edit Markers":"批量编辑标记","Delete All":"全部删除",marker:"标记",markers:"标记","Add New":"添加新的","There was an issue with the provided latitude.":"提供的纬度存在问题","There was an issue with the provided longitude.":"提供的经度存在问题",Draw:"绘制",Polygon:"多边形",Polyline:"折线",Rectangle:"矩形","Free Draw":"自由绘制","Delete Shapes":"删除形状",Done:"完成",Text:"文本",Color:"颜色","Fill Color":"填充颜色","Move Shapes":"移动形状","Export Drawing to GeoJSON":"导出绘制的GeoJSON"}}[be||"en"];function Ce(t,...e){let a=(we&&we[t])??ve[t]??t;for(let t=0;t{navigator.clipboard.writeText(`${ye(e.lat,4)}, ${ye(e.lng,4)}`).then((()=>{new t.Notice(Ce("Coordinates copied to clipboard.")),a()})).catch((()=>{new t.Notice(Ce("There was an error trying to copy coordinates to clipboard.")),i()}))}))}function Be(t,e,a){t&&console.log(`Obsidian Leaflet Map ${e}: ${a}`)}function ze(t){return ie()(t).hex()}function Ne(){return"ID_xyxyxyxyxyxy".replace(/[xy]/g,(function(t){var e=16*Math.random()|0;return("x"==t?e:3&e|8).toString(16)}))}const xe=function(t,e){if(t.inputEl.addClass("is-invalid"),e){t.inputEl.parentElement.addClasses(["has-invalid-message","unset-align-items"]),t.inputEl.parentElement.parentElement.addClass(".unset-align-items");let a=t.inputEl.parentElement.querySelector(".invalid-feedback");a||(a=createDiv({cls:"invalid-feedback"})),a.innerText=e,t.inputEl.parentNode.appendChild(a)}},De=function(t){t.inputEl.removeClass("is-invalid"),t.inputEl.parentElement.removeClasses(["has-invalid-message","unset-align-items"]),t.inputEl.parentElement.parentElement.removeClass(".unset-align-items"),t.inputEl.parentElement.children[1]&&t.inputEl.parentElement.removeChild(t.inputEl.parentElement.children[1])};function Ve(t){if(t){if(/(?:\[.*\]\(|\[\[)(.+)(?:\)|\]\])/.test(t)){const[e,a]=t.match(/(?:\[.*\]\(|\[\[)(.+)(?:\)|\]\])/)??[];return a}return t?.replace(/(\[|\])/g,"")}}const Me={meter:Ce("meters"),meters:Ce("meters"),metre:Ce("meters"),metres:Ce("meters"),m:Ce("meters"),petameter:Ce("petameters"),petametre:Ce("petameters"),petameters:Ce("petameters"),petametres:Ce("petameters"),Pm:Ce("petameters"),terameter:Ce("terameters"),terametre:Ce("terameters"),terameters:Ce("terameters"),terametres:Ce("terameters"),Tm:Ce("terameters"),gigameter:Ce("gigameters"),gigametre:Ce("gigameters"),gigameters:Ce("gigameters"),gigametres:Ce("gigameters"),Gm:Ce("gigameters"),megameter:Ce("megameters"),megametre:Ce("megameters"),megameters:Ce("megameters"),megametres:Ce("megameters"),Mm:Ce("megameters"),kilometer:Ce("kilometers"),kilometre:Ce("kilometers"),kilometers:Ce("kilometers"),kilometres:Ce("kilometers"),km:Ce("kilometers"),hectometer:Ce("hectometers"),hectometre:Ce("hectometers"),hectometers:Ce("hectometers"),hectometres:Ce("hectometers"),hm:Ce("hectometers"),decameter:Ce("decameters"),decametre:Ce("decameters"),decameters:Ce("decameters"),decametres:Ce("decameters"),dam:Ce("decameters"),decimeter:Ce("decimeters"),decimetre:Ce("decimeters"),decimeters:Ce("decimeters"),decimetres:Ce("decimeters"),dm:Ce("decimeters"),centimeter:Ce("centimeters"),centimetre:Ce("centimeters"),centimeters:Ce("centimeters"),centimetres:Ce("centimeters"),cm:Ce("centimeters"),millimeter:Ce("millimeters"),millimetre:Ce("millimeters"),millimeters:Ce("millimeters"),millimetres:Ce("millimeters"),mm:Ce("millimeters"),micrometer:Ce("micrometers"),micrometre:Ce("micrometers"),micrometers:Ce("micrometers"),micrometres:Ce("micrometers"),μm:Ce("micrometers"),nanometer:Ce("nanometers"),nanometre:Ce("nanometers"),nanometers:Ce("nanometers"),nanometres:Ce("nanometers"),nm:Ce("nanometers"),picometer:Ce("picometers"),picometre:Ce("picometers"),picometers:Ce("picometers"),picometres:Ce("picometers"),pm:Ce("picometers"),femtometer:Ce("femtometers"),femtometre:Ce("femtometers"),femtometers:Ce("femtometers"),femtometres:Ce("femtometers"),fm:Ce("femtometers"),foot:Ce("feet"),feet:Ce("feet"),ft:Ce("feet"),inch:Ce("inches"),inches:Ce("inches"),in:Ce("inches"),yard:Ce("yards"),yards:Ce("yards"),yd:Ce("yards"),mile:Ce("miles"),miles:Ce("miles"),mi:Ce("miles"),"nautical mile":Ce("nautical miles"),"nautical miles":Ce("nautical miles"),M:Ce("nautical miles"),NM:Ce("nautical miles"),nmi:Ce("nautical miles")},Se={meter:"metric",meters:"metric",metre:"metric",metres:"metric",m:"metric",petameter:"metric",petametre:"metric",petameters:"metric",petametres:"metric",Pm:"metric",terameter:"metric",terametre:"metric",terameters:"metric",terametres:"metric",Tm:"metric",gigameter:"metric",gigametre:"metric",gigameters:"metric",gigametres:"metric",Gm:"metric",megameter:"metric",megametre:"metric",megameters:"metric",megametres:"metric",Mm:"metric",kilometer:"metric",kilometre:"metric",kilometers:"metric",kilometres:"metric",km:"metric",hectometer:"metric",hectometre:"metric",hectometers:"metric",hectometres:"metric",hm:"metric",decameter:"metric",decametre:"metric",decameters:"metric",decametres:"metric",dam:"metric",decimeter:"metric",decimetre:"metric",decimeters:"metric",decimetres:"metric",dm:"metric",centimeter:"metric",centimetre:"metric",centimeters:"metric",centimetres:"metric",cm:"metric",millimeter:"metric",millimetre:"metric",millimeters:"metric",millimetres:"metric",mm:"metric",micrometer:"metric",micrometre:"metric",micrometers:"metric",micrometres:"metric",μm:"metric",nanometer:"metric",nanometre:"metric",nanometers:"metric",nanometres:"metric",nm:"metric",picometer:"metric",picometre:"metric",picometers:"metric",picometres:"metric",pm:"metric",femtometer:"metric",femtometre:"metric",femtometers:"metric",femtometres:"metric",fm:"metric",foot:"imperial",feet:"imperial",ft:"imperial",inch:"imperial",inches:"imperial",in:"imperial",yard:"imperial",yards:"imperial",yd:"imperial",mile:"imperial",miles:"imperial",mi:"imperial","nautical mile":"imperial","nautical miles":"imperial",M:"imperial",NM:"imperial",nmi:"imperial"};function ke(t){if(null==t)return window;if("[object Window]"!==t.toString()){var e=t.ownerDocument;return e&&e.defaultView||window}return t}function Qe(t){return t instanceof ke(t).Element||t instanceof Element}function Ie(t){return t instanceof ke(t).HTMLElement||t instanceof HTMLElement}function Oe(t){return"undefined"!=typeof ShadowRoot&&(t instanceof ke(t).ShadowRoot||t instanceof ShadowRoot)}var Ee=Math.round;function Xe(t,e){void 0===e&&(e=!1);var a=t.getBoundingClientRect(),i=1,n=1;if(Ie(t)&&e){var s=t.offsetHeight,r=t.offsetWidth;r>0&&(i=a.width/r||1),s>0&&(n=a.height/s||1)}return{width:Ee(a.width/i),height:Ee(a.height/n),top:Ee(a.top/n),right:Ee(a.right/i),bottom:Ee(a.bottom/n),left:Ee(a.left/i),x:Ee(a.left/i),y:Ee(a.top/n)}}function Te(t){var e=ke(t);return{scrollLeft:e.pageXOffset,scrollTop:e.pageYOffset}}function Pe(t){return t?(t.nodeName||"").toLowerCase():null}function Fe(t){return((Qe(t)?t.ownerDocument:t.document)||window.document).documentElement}function Ge(t){return Xe(Fe(t)).left+Te(t).scrollLeft}function Ke(t){return ke(t).getComputedStyle(t)}function Ue(t){var e=Ke(t),a=e.overflow,i=e.overflowX,n=e.overflowY;return/auto|scroll|overlay|hidden/.test(a+n+i)}function qe(t,e,a){void 0===a&&(a=!1);var i,n,s=Ie(e),r=Ie(e)&&function(t){var e=t.getBoundingClientRect(),a=e.width/t.offsetWidth||1,i=e.height/t.offsetHeight||1;return 1!==a||1!==i}(e),c=Fe(e),o=Xe(t,r),l={scrollLeft:0,scrollTop:0},h={x:0,y:0};return(s||!s&&!a)&&(("body"!==Pe(e)||Ue(c))&&(l=(i=e)!==ke(i)&&Ie(i)?{scrollLeft:(n=i).scrollLeft,scrollTop:n.scrollTop}:Te(i)),Ie(e)?((h=Xe(e,!0)).x+=e.clientLeft,h.y+=e.clientTop):c&&(h.x=Ge(c))),{x:o.left+l.scrollLeft-h.x,y:o.top+l.scrollTop-h.y,width:o.width,height:o.height}}function je(t){var e=Xe(t),a=t.offsetWidth,i=t.offsetHeight;return Math.abs(e.width-a)<=1&&(a=e.width),Math.abs(e.height-i)<=1&&(i=e.height),{x:t.offsetLeft,y:t.offsetTop,width:a,height:i}}function Ye(t){return"html"===Pe(t)?t:t.assignedSlot||t.parentNode||(Oe(t)?t.host:null)||Fe(t)}function Re(t){return["html","body","#document"].indexOf(Pe(t))>=0?t.ownerDocument.body:Ie(t)&&Ue(t)?t:Re(Ye(t))}function We(t,e){var a;void 0===e&&(e=[]);var i=Re(t),n=i===(null==(a=t.ownerDocument)?void 0:a.body),s=ke(i),r=n?[s].concat(s.visualViewport||[],Ue(i)?i:[]):i,c=e.concat(r);return n?c:c.concat(We(Ye(r)))}function Ze(t){return["table","td","th"].indexOf(Pe(t))>=0}function Je(t){return Ie(t)&&"fixed"!==Ke(t).position?t.offsetParent:null}function _e(t){for(var e=ke(t),a=Je(t);a&&Ze(a)&&"static"===Ke(a).position;)a=Je(a);return a&&("html"===Pe(a)||"body"===Pe(a)&&"static"===Ke(a).position)?e:a||function(t){var e=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&Ie(t)&&"fixed"===Ke(t).position)return null;for(var a=Ye(t);Ie(a)&&["html","body"].indexOf(Pe(a))<0;){var i=Ke(a);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||e&&"filter"===i.willChange||e&&i.filter&&"none"!==i.filter)return a;a=a.parentNode}return null}(t)||e}var $e="top",ta="bottom",ea="right",aa="left",ia="auto",na=[$e,ta,ea,aa],sa="start",ra="end",ca="viewport",oa="popper",la=na.reduce((function(t,e){return t.concat([e+"-"+sa,e+"-"+ra])}),[]),ha=[].concat(na,[ia]).reduce((function(t,e){return t.concat([e,e+"-"+sa,e+"-"+ra])}),[]),ua=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function da(t){var e=new Map,a=new Set,i=[];function n(t){a.add(t.name),[].concat(t.requires||[],t.requiresIfExists||[]).forEach((function(t){if(!a.has(t)){var i=e.get(t);i&&n(i)}})),i.push(t)}return t.forEach((function(t){e.set(t.name,t)})),t.forEach((function(t){a.has(t.name)||n(t)})),i}var fa={placement:"bottom",modifiers:[],strategy:"absolute"};function pa(){for(var t=arguments.length,e=new Array(t),a=0;a=0?"x":"y"}function Aa(t){var e,a=t.reference,i=t.element,n=t.placement,s=n?ba(n):null,r=n?wa(n):null,c=a.x+a.width/2-i.width/2,o=a.y+a.height/2-i.height/2;switch(s){case $e:e={x:c,y:a.y-i.height};break;case ta:e={x:c,y:a.y+a.height};break;case ea:e={x:a.x+a.width,y:o};break;case aa:e={x:a.x-i.width,y:o};break;default:e={x:a.x,y:a.y}}var l=s?Ca(s):null;if(null!=l){var h="y"===l?"height":"width";switch(r){case sa:e[l]=e[l]-(a[h]/2-i[h]/2);break;case ra:e[l]=e[l]+(a[h]/2-i[h]/2)}}return e}const ya={name:"popperOffsets",enabled:!0,phase:"read",fn:function(t){var e=t.state,a=t.name;e.modifiersData[a]=Aa({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})},data:{}};var La=Math.max,Ha=Math.min,Ba=Math.round,za={top:"auto",right:"auto",bottom:"auto",left:"auto"};function Na(t){var e,a=t.popper,i=t.popperRect,n=t.placement,s=t.variation,r=t.offsets,c=t.position,o=t.gpuAcceleration,l=t.adaptive,h=t.roundOffsets,u=!0===h?function(t){var e=t.x,a=t.y,i=window.devicePixelRatio||1;return{x:Ba(Ba(e*i)/i)||0,y:Ba(Ba(a*i)/i)||0}}(r):"function"==typeof h?h(r):r,d=u.x,f=void 0===d?0:d,p=u.y,m=void 0===p?0:p,g=r.hasOwnProperty("x"),v=r.hasOwnProperty("y"),b=aa,w=$e,C=window;if(l){var A=_e(a),y="clientHeight",L="clientWidth";A===ke(a)&&"static"!==Ke(A=Fe(a)).position&&"absolute"===c&&(y="scrollHeight",L="scrollWidth"),n!==$e&&(n!==aa&&n!==ea||s!==ra)||(w=ta,m-=A[y]-i.height,m*=o?1:-1),n!==aa&&(n!==$e&&n!==ta||s!==ra)||(b=ea,f-=A[L]-i.width,f*=o?1:-1)}var H,B=Object.assign({position:c},l&&za);return o?Object.assign({},B,((H={})[w]=v?"0":"",H[b]=g?"0":"",H.transform=(C.devicePixelRatio||1)<=1?"translate("+f+"px, "+m+"px)":"translate3d("+f+"px, "+m+"px, 0)",H)):Object.assign({},B,((e={})[w]=v?m+"px":"",e[b]=g?f+"px":"",e.transform="",e))}var xa={left:"right",right:"left",bottom:"top",top:"bottom"};function Da(t){return t.replace(/left|right|bottom|top/g,(function(t){return xa[t]}))}var Va={start:"end",end:"start"};function Ma(t){return t.replace(/start|end/g,(function(t){return Va[t]}))}function Sa(t,e){var a=e.getRootNode&&e.getRootNode();if(t.contains(e))return!0;if(a&&Oe(a)){var i=e;do{if(i&&t.isSameNode(i))return!0;i=i.parentNode||i.host}while(i)}return!1}function ka(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Qa(t,e){return e===ca?ka(function(t){var e=ke(t),a=Fe(t),i=e.visualViewport,n=a.clientWidth,s=a.clientHeight,r=0,c=0;return i&&(n=i.width,s=i.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=i.offsetLeft,c=i.offsetTop)),{width:n,height:s,x:r+Ge(t),y:c}}(t)):Ie(e)?function(t){var e=Xe(t);return e.top=e.top+t.clientTop,e.left=e.left+t.clientLeft,e.bottom=e.top+t.clientHeight,e.right=e.left+t.clientWidth,e.width=t.clientWidth,e.height=t.clientHeight,e.x=e.left,e.y=e.top,e}(e):ka(function(t){var e,a=Fe(t),i=Te(t),n=null==(e=t.ownerDocument)?void 0:e.body,s=La(a.scrollWidth,a.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),r=La(a.scrollHeight,a.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),c=-i.scrollLeft+Ge(t),o=-i.scrollTop;return"rtl"===Ke(n||a).direction&&(c+=La(a.clientWidth,n?n.clientWidth:0)-s),{width:s,height:r,x:c,y:o}}(Fe(t)))}function Ia(t){return Object.assign({},{top:0,right:0,bottom:0,left:0},t)}function Oa(t,e){return e.reduce((function(e,a){return e[a]=t,e}),{})}function Ea(t,e){void 0===e&&(e={});var a=e,i=a.placement,n=void 0===i?t.placement:i,s=a.boundary,r=void 0===s?"clippingParents":s,c=a.rootBoundary,o=void 0===c?ca:c,l=a.elementContext,h=void 0===l?oa:l,u=a.altBoundary,d=void 0!==u&&u,f=a.padding,p=void 0===f?0:f,m=Ia("number"!=typeof p?p:Oa(p,na)),g=h===oa?"reference":oa,v=t.rects.popper,b=t.elements[d?g:h],w=function(t,e,a){var i="clippingParents"===e?function(t){var e=We(Ye(t)),a=["absolute","fixed"].indexOf(Ke(t).position)>=0&&Ie(t)?_e(t):t;return Qe(a)?e.filter((function(t){return Qe(t)&&Sa(t,a)&&"body"!==Pe(t)})):[]}(t):[].concat(e),n=[].concat(i,[a]),s=n[0],r=n.reduce((function(e,a){var i=Qa(t,a);return e.top=La(i.top,e.top),e.right=Ha(i.right,e.right),e.bottom=Ha(i.bottom,e.bottom),e.left=La(i.left,e.left),e}),Qa(t,s));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}(Qe(b)?b:b.contextElement||Fe(t.elements.popper),r,o),C=Xe(t.elements.reference),A=Aa({reference:C,element:v,strategy:"absolute",placement:n}),y=ka(Object.assign({},v,A)),L=h===oa?y:C,H={top:w.top-L.top+m.top,bottom:L.bottom-w.bottom+m.bottom,left:w.left-L.left+m.left,right:L.right-w.right+m.right},B=t.modifiersData.offset;if(h===oa&&B){var z=B[n];Object.keys(H).forEach((function(t){var e=[ea,ta].indexOf(t)>=0?1:-1,a=[$e,ta].indexOf(t)>=0?"y":"x";H[t]+=z[a]*e}))}return H}const Xa={name:"flip",enabled:!0,phase:"main",fn:function(t){var e=t.state,a=t.options,i=t.name;if(!e.modifiersData[i]._skip){for(var n=a.mainAxis,s=void 0===n||n,r=a.altAxis,c=void 0===r||r,o=a.fallbackPlacements,l=a.padding,h=a.boundary,u=a.rootBoundary,d=a.altBoundary,f=a.flipVariations,p=void 0===f||f,m=a.allowedAutoPlacements,g=e.options.placement,v=ba(g),b=o||(v!==g&&p?function(t){if(ba(t)===ia)return[];var e=Da(t);return[Ma(t),e,Ma(e)]}(g):[Da(g)]),w=[g].concat(b).reduce((function(t,a){return t.concat(ba(a)===ia?function(t,e){void 0===e&&(e={});var a=e,i=a.placement,n=a.boundary,s=a.rootBoundary,r=a.padding,c=a.flipVariations,o=a.allowedAutoPlacements,l=void 0===o?ha:o,h=wa(i),u=h?c?la:la.filter((function(t){return wa(t)===h})):na,d=u.filter((function(t){return l.indexOf(t)>=0}));0===d.length&&(d=u);var f=d.reduce((function(e,a){return e[a]=Ea(t,{placement:a,boundary:n,rootBoundary:s,padding:r})[ba(a)],e}),{});return Object.keys(f).sort((function(t,e){return f[t]-f[e]}))}(e,{placement:a,boundary:h,rootBoundary:u,padding:l,flipVariations:p,allowedAutoPlacements:m}):a)}),[]),C=e.rects.reference,A=e.rects.popper,y=new Map,L=!0,H=w[0],B=0;B=0,V=D?"width":"height",M=Ea(e,{placement:z,boundary:h,rootBoundary:u,altBoundary:d,padding:l}),S=D?x?ea:aa:x?ta:$e;C[V]>A[V]&&(S=Da(S));var k=Da(S),Q=[];if(s&&Q.push(M[N]<=0),c&&Q.push(M[S]<=0,M[k]<=0),Q.every((function(t){return t}))){H=z,L=!1;break}y.set(z,Q)}if(L)for(var I=function(t){var e=w.find((function(e){var a=y.get(e);if(a)return a.slice(0,t).every((function(t){return t}))}));if(e)return H=e,"break"},O=p?3:1;O>0&&"break"!==I(O);O--);e.placement!==H&&(e.modifiersData[i]._skip=!0,e.placement=H,e.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function Ta(t,e,a){return La(t,Ha(e,a))}function Pa(t,e,a){return void 0===a&&(a={x:0,y:0}),{top:t.top-e.height-a.y,right:t.right-e.width+a.x,bottom:t.bottom-e.height+a.y,left:t.left-e.width-a.x}}function Fa(t){return[$e,ea,ta,aa].some((function(e){return t[e]>=0}))}var Ga=ma({defaultModifiers:[va,ya,{name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:function(t){var e=t.state,a=t.options,i=a.gpuAcceleration,n=void 0===i||i,s=a.adaptive,r=void 0===s||s,c=a.roundOffsets,o=void 0===c||c,l={placement:ba(e.placement),variation:wa(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:n};null!=e.modifiersData.popperOffsets&&(e.styles.popper=Object.assign({},e.styles.popper,Na(Object.assign({},l,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:r,roundOffsets:o})))),null!=e.modifiersData.arrow&&(e.styles.arrow=Object.assign({},e.styles.arrow,Na(Object.assign({},l,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:o})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})},data:{}},{name:"applyStyles",enabled:!0,phase:"write",fn:function(t){var e=t.state;Object.keys(e.elements).forEach((function(t){var a=e.styles[t]||{},i=e.attributes[t]||{},n=e.elements[t];Ie(n)&&Pe(n)&&(Object.assign(n.style,a),Object.keys(i).forEach((function(t){var e=i[t];!1===e?n.removeAttribute(t):n.setAttribute(t,!0===e?"":e)})))}))},effect:function(t){var e=t.state,a={popper:{position:e.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(e.elements.popper.style,a.popper),e.styles=a,e.elements.arrow&&Object.assign(e.elements.arrow.style,a.arrow),function(){Object.keys(e.elements).forEach((function(t){var i=e.elements[t],n=e.attributes[t]||{},s=Object.keys(e.styles.hasOwnProperty(t)?e.styles[t]:a[t]).reduce((function(t,e){return t[e]="",t}),{});Ie(i)&&Pe(i)&&(Object.assign(i.style,s),Object.keys(n).forEach((function(t){i.removeAttribute(t)})))}))}},requires:["computeStyles"]},{name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:function(t){var e=t.state,a=t.options,i=t.name,n=a.offset,s=void 0===n?[0,0]:n,r=ha.reduce((function(t,a){return t[a]=function(t,e,a){var i=ba(t),n=[aa,$e].indexOf(i)>=0?-1:1,s="function"==typeof a?a(Object.assign({},e,{placement:t})):a,r=s[0],c=s[1];return r=r||0,c=(c||0)*n,[aa,ea].indexOf(i)>=0?{x:c,y:r}:{x:r,y:c}}(a,e.rects,s),t}),{}),c=r[e.placement],o=c.x,l=c.y;null!=e.modifiersData.popperOffsets&&(e.modifiersData.popperOffsets.x+=o,e.modifiersData.popperOffsets.y+=l),e.modifiersData[i]=r}},Xa,{name:"preventOverflow",enabled:!0,phase:"main",fn:function(t){var e=t.state,a=t.options,i=t.name,n=a.mainAxis,s=void 0===n||n,r=a.altAxis,c=void 0!==r&&r,o=a.boundary,l=a.rootBoundary,h=a.altBoundary,u=a.padding,d=a.tether,f=void 0===d||d,p=a.tetherOffset,m=void 0===p?0:p,g=Ea(e,{boundary:o,rootBoundary:l,padding:u,altBoundary:h}),v=ba(e.placement),b=wa(e.placement),w=!b,C=Ca(v),A="x"===C?"y":"x",y=e.modifiersData.popperOffsets,L=e.rects.reference,H=e.rects.popper,B="function"==typeof m?m(Object.assign({},e.rects,{placement:e.placement})):m,z={x:0,y:0};if(y){if(s||c){var N="y"===C?$e:aa,x="y"===C?ta:ea,D="y"===C?"height":"width",V=y[C],M=y[C]+g[N],S=y[C]-g[x],k=f?-H[D]/2:0,Q=b===sa?L[D]:H[D],I=b===sa?-H[D]:-L[D],O=e.elements.arrow,E=f&&O?je(O):{width:0,height:0},X=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},T=X[N],P=X[x],F=Ta(0,L[D],E[D]),G=w?L[D]/2-k-F-T-B:Q-F-T-B,K=w?-L[D]/2+k+F+P+B:I+F+P+B,U=e.elements.arrow&&_e(e.elements.arrow),q=U?"y"===C?U.clientTop||0:U.clientLeft||0:0,j=e.modifiersData.offset?e.modifiersData.offset[e.placement][C]:0,Y=y[C]+G-j-q,R=y[C]+K-j;if(s){var W=Ta(f?Ha(M,Y):M,V,f?La(S,R):S);y[C]=W,z[C]=W-V}if(c){var Z="x"===C?$e:aa,J="x"===C?ta:ea,_=y[A],$=_+g[Z],tt=_-g[J],et=Ta(f?Ha($,Y):$,_,f?La(tt,R):tt);y[A]=et,z[A]=et-_}}e.modifiersData[i]=z}},requiresIfExists:["offset"]},{name:"arrow",enabled:!0,phase:"main",fn:function(t){var e,a=t.state,i=t.name,n=t.options,s=a.elements.arrow,r=a.modifiersData.popperOffsets,c=ba(a.placement),o=Ca(c),l=[aa,ea].indexOf(c)>=0?"height":"width";if(s&&r){var h=function(t,e){return Ia("number"!=typeof(t="function"==typeof t?t(Object.assign({},e.rects,{placement:e.placement})):t)?t:Oa(t,na))}(n.padding,a),u=je(s),d="y"===o?$e:aa,f="y"===o?ta:ea,p=a.rects.reference[l]+a.rects.reference[o]-r[o]-a.rects.popper[l],m=r[o]-a.rects.reference[o],g=_e(s),v=g?"y"===o?g.clientHeight||0:g.clientWidth||0:0,b=p/2-m/2,w=h[d],C=v-u[l]-h[f],A=v/2-u[l]/2+b,y=Ta(w,A,C),L=o;a.modifiersData[i]=((e={})[L]=y,e.centerOffset=y-A,e)}},effect:function(t){var e=t.state,a=t.options.element,i=void 0===a?"[data-popper-arrow]":a;null!=i&&("string"!=typeof i||(i=e.elements.popper.querySelector(i)))&&Sa(e.elements.popper,i)&&(e.elements.arrow=i)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]},{name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(t){var e=t.state,a=t.name,i=e.rects.reference,n=e.rects.popper,s=e.modifiersData.preventOverflow,r=Ea(e,{elementContext:"reference"}),c=Ea(e,{altBoundary:!0}),o=Pa(r,i),l=Pa(c,n,s),h=Fa(o),u=Fa(l);e.modifiersData[a]={referenceClippingOffsets:o,popperEscapeOffsets:l,isReferenceHidden:h,hasPopperEscaped:u},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":h,"data-popper-escaped":u})}}]});class Ka{constructor(t,e,a){this.containerEl=e,this.owner=t,e.on("click",".suggestion-item",this.onSuggestionClick.bind(this)),e.on("mousemove",".suggestion-item",this.onSuggestionMouseover.bind(this)),a.register([],"ArrowUp",(()=>(this.setSelectedItem(this.selectedItem-1,!0),!1))),a.register([],"ArrowDown",(()=>(this.setSelectedItem(this.selectedItem+1,!0),!1))),a.register([],"Enter",(t=>(this.useSelectedItem(t),!1))),a.register([],"Tab",(t=>(this.chooseSuggestion(t),!1)))}chooseSuggestion(t){if(!this.items||!this.items.length)return;const e=this.items[this.selectedItem];e&&this.owner.onChooseSuggestion(e,t)}onSuggestionClick(t,e){if(t.preventDefault(),!this.suggestions||!this.suggestions.length)return;const a=this.suggestions.indexOf(e);this.setSelectedItem(a,!1),this.useSelectedItem(t)}onSuggestionMouseover(t,e){if(!this.suggestions||!this.suggestions.length)return;const a=this.suggestions.indexOf(e);this.setSelectedItem(a,!1)}empty(){this.containerEl.empty()}setSuggestions(t){this.containerEl.empty();const e=[];t.forEach((t=>{const a=this.containerEl.createDiv("suggestion-item");this.owner.renderSuggestion(t,a),e.push(a)})),this.items=t,this.suggestions=e,this.setSelectedItem(0,!1)}useSelectedItem(t){if(!this.items||!this.items.length)return;const e=this.items[this.selectedItem];e&&this.owner.selectSuggestion(e,t)}wrap(t,e){return(t%e+e)%e}setSelectedItem(t,e){const a=this.wrap(t,this.suggestions.length),i=this.suggestions[this.selectedItem],n=this.suggestions[a];i&&i.removeClass("is-selected"),n&&n.addClass("is-selected"),this.selectedItem=a,e&&n.scrollIntoView(!1)}}class Ua extends t.FuzzySuggestModal{constructor(e,a,i){super(e),this.items=[],this.scope=new t.Scope(this.app.scope),this.emptyStateText="No match found",this.limit=100,this.inputEl=a,this.items=i,this.suggestEl=createDiv("suggestion-container"),this.contentEl=this.suggestEl.createDiv("suggestion"),this.suggester=new Ka(this,this.contentEl,this.scope),this.scope.register([],"Escape",this.onEscape.bind(this)),this.inputEl.addEventListener("input",this.onInputChanged.bind(this)),this.inputEl.addEventListener("focus",this.onFocus.bind(this)),this.inputEl.addEventListener("blur",this.close.bind(this)),this.suggestEl.on("mousedown",".suggestion-container",(t=>{t.preventDefault()}))}empty(){this.suggester.empty()}onInputChanged(){if(this.shouldNotOpen)return;const t=this.modifyInput(this.inputEl.value),e=this.getSuggestions(t);e.length>0?this.suggester.setSuggestions(e.slice(0,this.limit)):this.onNoSuggestion(),this.open()}onFocus(){this.shouldNotOpen=!1,this.onInputChanged()}modifyInput(t){return t}onNoSuggestion(){this.empty(),this.renderSuggestion(null,this.contentEl.createDiv("suggestion-item"))}open(){this.app.keymap.pushScope(this.scope),document.body.appendChild(this.suggestEl),this.popper=Ga(this.inputEl,this.suggestEl,{placement:"bottom-start",modifiers:[{name:"offset",options:{offset:[0,10]}},{name:"flip",options:{fallbackPlacements:["top"]}}]})}onEscape(){this.close(),this.shouldNotOpen=!0}close(){this.app.keymap.popScope(this.scope),this.suggester.setSuggestions([]),this.popper&&this.popper.destroy(),this.suggestEl.detach()}createPrompt(t){this.promptEl||(this.promptEl=this.suggestEl.createDiv("prompt-instructions"));let e=this.promptEl.createDiv("prompt-instruction");for(let a of t)e.appendChild(a)}}class qa extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.files=[...a],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getFile.bind(this))}createPrompts(){this.createPrompt([createSpan({cls:"prompt-instruction-command",text:Ce("Type")+" #"}),createSpan({text:"to link heading"})]),this.createPrompt([createSpan({cls:"prompt-instruction-command",text:Ce("Type")+" ^"}),createSpan({text:"to link blocks"})]),this.createPrompt([createSpan({cls:"prompt-instruction-command",text:Ce("Note")+": "}),createSpan({text:Ce("Blocks must have been created already")})])}getFile(){const t=this.inputEl.value,e=this.app.metadataCache.getFirstLinkpathDest(t.split(/[\^#]/).shift()||"","");e!=this.file&&(this.file=e,this.file&&(this.cache=this.app.metadataCache.getFileCache(this.file)),this.onInputChanged())}getItemText(e){return e instanceof t.TFile?e.path:Object.prototype.hasOwnProperty.call(e,"heading")?e.heading:Object.prototype.hasOwnProperty.call(e,"id")?e.id:void 0}onChooseItem(e){e instanceof t.TFile?(this.text.setValue(e.basename),this.file=e,this.cache=this.app.metadataCache.getFileCache(this.file)):Object.prototype.hasOwnProperty.call(e,"heading")?this.text.setValue(this.file.basename+"#"+e.heading):Object.prototype.hasOwnProperty.call(e,"id")&&this.text.setValue(this.file.basename+"^"+e.id)}selectSuggestion({item:e}){let a;e instanceof t.TFile?a=e.basename:Object.prototype.hasOwnProperty.call(e,"heading")?a=this.file.basename+"#"+e.heading:Object.prototype.hasOwnProperty.call(e,"id")&&(a=this.file.basename+"^"+e.id),this.text.setValue(a),this.onClose(),this.close()}renderSuggestion(e,a){let{item:i,match:n}=e||{},s=a.createDiv({cls:"suggestion-content"});if(!i)return s.setText(this.emptyStateText),void s.parentElement.addClass("is-selected");if(i instanceof t.TFile){let t=i.path.length-i.name.length;const e=n.matches.map((t=>createSpan("suggestion-highlight")));for(let a=t;at[0]===a));if(t){let r=e[n.matches.indexOf(t)];s.appendChild(r),r.appendText(i.path.substring(t[0],t[1])),a+=t[1]-t[0]-1}else s.appendText(i.path[a])}a.createDiv({cls:"suggestion-note",text:i.path})}else Object.prototype.hasOwnProperty.call(i,"heading")?(s.setText(i.heading),s.prepend(createSpan({cls:"suggestion-flair",text:`H${i.level}`}))):Object.prototype.hasOwnProperty.call(i,"id")&&s.setText(i.id)}get headings(){return this.file?(this.cache||(this.cache=this.app.metadataCache.getFileCache(this.file)),this.cache.headings||[]):[]}get blocks(){return this.file?(this.cache||(this.cache=this.app.metadataCache.getFileCache(this.file)),Object.values(this.cache.blocks||{})||[]):[]}getItems(){const t=this.inputEl.value;return/#/.test(t)?(this.modifyInput=t=>t.split(/#/).pop(),this.headings):/\^/.test(t)?(this.modifyInput=t=>t.split(/\^/).pop(),this.blocks):this.files}}class ja extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.folders=[...a],this.text=e,this.inputEl.addEventListener("input",(()=>this.getFolder()))}getFolder(){const e=this.inputEl.value,a=this.app.vault.getAbstractFileByPath(e);a!=this.folder&&a instanceof t.TFolder&&(this.folder=a,this.onInputChanged())}getItemText(t){return t.path}onChooseItem(t){this.text.setValue(t.path),this.folder=t}selectSuggestion({item:t}){let e=t.path;this.text.setValue(e),this.onClose(),this.close()}renderSuggestion(t,e){let{item:a,match:i}=t||{},n=e.createDiv({cls:"suggestion-content"});if(!a)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");let s=a.path.length-a.name.length;const r=i.matches.map((t=>createSpan("suggestion-highlight")));for(let t=s;te[0]===t));if(e){let s=r[i.matches.indexOf(e)];n.appendChild(s),s.appendText(a.path.substring(e[0],e[1])),t+=e[1]-e[0]-1}else n.appendText(a.path[t])}e.createDiv({cls:"suggestion-note",text:a.path})}getItems(){return this.folders}}class Ya extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.icons=[...a],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){const t=this.inputEl.value,e=this.icons.find((e=>e===t.trim()));e!=this.icon&&(this.icon=e,this.icons&&this.onInputChanged())}getItemText(t){return t}onChooseItem(t){this.text.setValue(t),this.icon=t}selectSuggestion({item:t}){this.text.setValue(t),this.onClose(),this.close()}renderSuggestion(t,e){let{item:a,match:i}=t||{},n=e.createDiv({cls:"suggestion-content icon"});if(!a)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");const s=i.matches.map((t=>createSpan("suggestion-highlight")));for(let t=0;te[0]===t));if(e){let r=s[i.matches.indexOf(e)];n.appendChild(r),r.appendText(a.substring(e[0],e[1])),t+=e[1]-e[0]-1}else n.appendText(a[t])}const r=createDiv({cls:"suggestion-flair"});r.appendChild(Ut(Pt({iconName:a,prefix:"fas"})).node[0]),n.prepend(r)}getItems(){return this.icons}}class Ra extends Ua{constructor(t,e,a){super(t,e.inputEl,a),this.commands=[...a],this.text=e,this.createPrompts(),this.inputEl.addEventListener("input",this.getItem.bind(this))}createPrompts(){}getItem(){const t=this.inputEl.value,e=this.commands.find((e=>e.name===t.trim()||e.id===t.trim()));e!=this.command&&(this.command=e,this.command&&this.onInputChanged())}getItemText(t){return t.name+t.id}onChooseItem(t){this.text.setValue(t.name),this.command=t}selectSuggestion({item:t}){t.id,this.text.setValue(t.name),this.onClose(t),this.close()}renderSuggestion(t,e){let{item:a,match:i}=t||{},n=e.createDiv({cls:"suggestion-content"});if(!a)return n.setText(this.emptyStateText),void n.parentElement.addClass("is-selected");const s=i.matches.map((t=>createSpan("suggestion-highlight")));for(let t=0;te[0]===t));if(e){let r=s[i.matches.indexOf(e)];n.appendChild(r),r.appendText(a.name.substring(e[0],e[1])),t+=e[1]-e[0]-1}else n.appendText(a.name[t])}let r=e.createDiv({cls:"suggestion-note"});for(let t=a.name.length;te[0]===t));if(e){let n=s[i.matches.indexOf(e)];r.appendChild(n),n.appendText(a.id.substring(e[0]-a.name.length,e[1]-a.name.length)),t+=e[1]-e[0]-1}else r.appendText(a.id[t-a.name.length])}}getItems(){return this.commands}onClose(t){}}const Wa=window.moment.locale;class Za extends t.Modal{constructor(t,e){super(e.plugin.app),this.marker=t,this.map=e,this.deleted=!1,this.limit=100,this.advanced=!1,this.marker=t,this.map=e,this.tempMarker=Object.assign(Object.create(Object.getPrototypeOf(this.marker)),this.marker),this.modal&&this.modal.close()}async display(){this.contentEl.empty(),new t.Setting(this.contentEl).setName(Ce("Marker Type")).addDropdown((t=>{t.addOption("default",Ce("Default")),this.map.markerIcons.forEach((e=>{t.addOption(e.type,e.type[0].toUpperCase()+e.type.slice(1).toLowerCase())})),t.setValue(this.marker.type).onChange((async t=>{let e="default"==t?this.map.data.defaultMarker:this.map.markerIcons.get(t);this.tempMarker.type=e.type}))})),this.tempMarker.command?new t.Setting(this.contentEl).setName(Ce("Command to Execute")).setDesc(Ce("Name of Obsidian Command to execute")).addText((t=>{let e=this.app.commands.listCommands(),a=e.find((({id:t})=>t==this.marker.link))?.name??this.marker.link;t.setPlaceholder(Ce("Command")).setValue(a),this.modal=new Ra(this.app,t,[...e]),this.modal.onClose=t=>{this.tempMarker.link=t.id},t.inputEl.onblur=async()=>{this.tempMarker.link=e.find((({name:e,id:a})=>e==t.inputEl.value||a==t.inputEl.value))?.id??t.inputEl.value}})):new t.Setting(this.contentEl).setName(Ce("Note to Open")).setDesc(Ce("Path of note to open")).addText((t=>{let e=this.app.vault.getFiles();t.setPlaceholder(Ce("Path")).setValue(this.marker.link),this.modal=new qa(this.app,t,[...e]),this.modal.onClose=async()=>{this.tempMarker.link=t.inputEl.value},t.inputEl.onblur=async()=>{this.tempMarker.link=t.inputEl.value}})),new t.Setting(this.contentEl).setName("Description").addTextArea((t=>t.setValue(this.tempMarker.description).onChange((t=>this.tempMarker.description=t)))),new t.Setting(this.contentEl).setName("Show Advanced Options").addToggle((t=>t.setValue(this.advanced).onChange((t=>{this.advanced=t,this.display()})))),this.advanced&&(new t.Setting(this.contentEl).setName(Ce("Execute Command")).setDesc(Ce("The marker will execute an Obsidian command on click")).addToggle((t=>{t.setValue(this.tempMarker.command||!1).onChange((t=>{this.tempMarker.command=t,this.tempMarker.link="",this.display()}))})),new t.Setting(this.contentEl).setName(Ce("Display Tooltip")).addDropdown((t=>{t.addOption("hover",Ce("Hover")),t.addOption("always",Ce("Always")),t.addOption("never",Ce("Never")),t.setValue(this.tempMarker.tooltip??"hover").onChange((async t=>{this.tempMarker.tooltip=t}))})),new t.Setting(this.contentEl).setName(Ce("Min Zoom")).setDesc(Ce("Only display when zooming in below this zoom. Current map minimum")+": "+this.map.zoom.min).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Minimum zoom must be a number."))),e.preventDefault(),!1},null!=this.tempMarker.minZoom&&e.setValue(`${this.tempMarker.minZoom}`),e.onChange((t=>{this.tempMarker.minZoom=Number(t)}))})),new t.Setting(this.contentEl).setName(Ce("Max Zoom")).setDesc(Ce("Only display when zooming out above this zoom. Current map maximum")+": "+this.map.zoom.max).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Maximum zoom must be a number."))),e.preventDefault(),!1},e.onChange((t=>{this.tempMarker.maxZoom=Number(t)})),null!=this.tempMarker.maxZoom&&e.setValue(`${this.tempMarker.maxZoom}`)}))),new t.Setting(this.contentEl).addButton((t=>(t.setIcon("trash").setWarning().setTooltip(Ce("Delete Marker")).onClick((()=>{this.deleted=!0,this.close()})),t)))}onOpen(){this.display()}}class Ja extends t.Modal{constructor(t,e){super(e.plugin.app),this.map=e,this.deleted=!1,this.limit=100,this.map=e,this.tempOverlay=Object.assign({},t.data),this.modal&&this.modal.close()}async display(){let e;this.contentEl.empty();let a=this.tempOverlay.radius;"image"==this.map.type&&(a*=this.map.scale),new t.Setting(this.contentEl).setName(Ce("Overlay Radius")).setDesc(`${Ce("Circle radius in")} ${Me[this.tempOverlay.unit]??Ce("meters")}.`).addText((t=>{e=t;const i=new RegExp(`\\${n=Wa(),Intl.NumberFormat(n).formatToParts(1000.1).find((t=>"group"===t.type)).value??","}`,"g");var n;t.setValue(`${ye(a,1).toString().replace(i,"")}`),t.inputEl.onblur=()=>{if(isNaN(Number(t.inputEl.value))&&Number(t.inputEl.value)>0)return xe(e,Ce("Radius must be greater than 0.")),void(t.inputEl.value=`${a}`);De(e),this.tempOverlay.radius=Number(t.inputEl.value)}})),new t.Setting(this.contentEl).setName(Ce("Overlay Description")).addText((t=>{t.setValue(this.tempOverlay.desc).onChange((t=>{this.tempOverlay.desc=t}))}));const i=new t.Setting(this.contentEl).setName(Ce("Overlay Color"));let n=this.tempOverlay.color;if(!/#\w{3,6}/.test(n)){const t=createEl("canvas").getContext("2d");t.fillStyle=n,n=t.fillStyle}let s=i.controlEl.createEl("input",{attr:{type:"color",value:n}});s.oninput=t=>{this.tempOverlay.color=t.target.value},s.onchange=async t=>{this.tempOverlay.color=t.target.value,this.display()},new t.Setting(this.contentEl).setName(Ce("Display Tooltip")).addDropdown((t=>{t.addOption("hover",Ce("Hover")),t.addOption("never",Ce("Never")),t.setValue(this.tempOverlay.tooltip??"hover").onChange((t=>{this.tempOverlay.tooltip=t}))})),new t.Setting(this.contentEl).addButton((t=>(t.setIcon("trash").setWarning().setTooltip(Ce("Delete Overlay")).onClick((()=>{this.deleted=!0,this.close()})),t)))}onOpen(){this.display()}}class _a extends t.Modal{constructor(t,e,a){super(t),this.saved=!1,this.marker=a,this.plugin=e,this.tempMarker={...this.marker},this.tempMarker.tags||(this.tempMarker.tags=[]),this.containerEl.addClass("leaflet-settings-modal")}get data(){return this.plugin.data}async display(e){let a=this.contentEl;a.empty();let i=a.createDiv(),n=i.createDiv();n.addClass("marker-creation-modal");let s,r,c=n.createDiv(),o=n.createDiv("icon-display"),l=new t.Setting(c).setName(Ce("Marker Name")).addText((t=>{s=t.setPlaceholder(Ce("Marker Name")).setValue(this.tempMarker.type),s.onChange((t=>{this.data.markerIcons.find((e=>e.type==t))&&this.tempMarker.type!=this.marker.type?xe(s,Ce("Marker name already exists.")):0!=t.length?(De(s),this.tempMarker.type=t):xe(s,Ce("Marker name cannot be empty."))}))})),h=new t.Setting(c).setName(Ce("Icon Name")).setDesc(Ce("Font Awesome icon name (e.g. map-marker).")).addText((t=>{t.setPlaceholder(Ce("Icon Name")).setValue(this.tempMarker.isImage?"":this.tempMarker.iconName);const e=async()=>{const e=t.inputEl.value;e.length?Pt({iconName:e,prefix:"fas"})?(De(t),this.tempMarker.iconName=e,this.tempMarker.isImage=!1,delete this.tempMarker.imageUrl,await this.plugin.saveSettings(),this.display()):xe(t,Ce("The selected icon does not exist in Font Awesome Free.")):xe(t,Ce("A default marker must be defined."))};new Ya(this.app,t,Jt).onClose=e,t.inputEl.onblur=e,r=t}));const u=createEl("input",{attr:{type:"file",name:"image",accept:"image/*"}});if(new t.Setting(c).setName(Ce("Use Image for Icon")).addButton((t=>{t.setButtonText(Ce("Upload Image")).setTooltip(Ce("Upload Image")),t.buttonEl.addClass("leaflet-file-upload"),t.buttonEl.appendChild(u),t.onClick((()=>u.click()))})),u.onchange=async()=>{const{files:t}=u;if(!t.length)return;const e=t[0],a=new FileReader;a.onloadend=t=>{var e=new Image;e.onload=()=>{this.canvas=o.createEl("canvas");const t=24;let a=e.width,i=e.height;a>=i&&a>t?(i*=t/a,a=t):i>=a&&i>t&&(a*=t/i,i=t),this.canvas.width=a,this.canvas.height=i,this.canvas.getContext("2d").drawImage(e,0,0,a,i),this.tempMarker.isImage=!0,this.tempMarker.imageUrl=this.canvas.toDataURL("image/png"),this.display()},e.src=t.target.result.toString()},a.readAsDataURL(e),u.value=null},!this.tempMarker.isImage){if(this.tempMarker.iconName){const t=this.tempMarker.layer&&!this.data.defaultMarker.isImage?{transform:this.tempMarker.transform,mask:_t(this.data.defaultMarker.iconName),classes:["full-width-height"]}:{classes:["full-width-height"]};let e=ee(this.tempMarker,t).node;e.style.color=this.tempMarker.color?this.tempMarker.color:this.data.defaultMarker.color;let a=l.settingEl.getBoundingClientRect().height+h.settingEl.getBoundingClientRect().height;if(o.setAttribute("style",`height: ${a}px; padding: 1rem; position: relative;`),o.appendChild(e),this.tempMarker.layer){let t=Ut(_t(this.tempMarker.iconName),{transform:this.tempMarker.transform}).node[0].children[0],e=t.getElementsByTagName("path")[0],a=this.getFillColor(this.modalEl);e.setAttribute("fill",a[0]),e.setAttribute("fill-opacity","1"),e.setAttribute("stroke-width","1px"),e.setAttribute("stroke","black"),e.setAttribute("stroke-dasharray","50,50");let i=t.children[0],n=o.getElementsByTagName("svg")[0],s=document.createElementNS("http://www.w3.org/2000/svg","path"),r=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("stroke","red"),s.setAttribute("stroke-width","0"),s.setAttribute("d","M192,0 L192,512"),r.setAttribute("stroke","red"),r.setAttribute("stroke-width","0"),r.setAttribute("d","M0,256 L384,256"),n.appendChild(s),n.appendChild(r);let c={width:32,height:32};n.appendChild(t),t.transform.baseVal.getItem(0).setTranslate(192,256);let l,h=!1,u={x:0,y:0};this.plugin.registerDomEvent(t,"mousedown",(t=>{let e=n.getScreenCTM();u={x:(t.clientX-e.e)/e.a,y:(t.clientY-e.f)/e.d};let a=i.transform.baseVal;if(0===a.numberOfItems||a.getItem(0).type!=SVGTransform.SVG_TRANSFORM_TRANSLATE){let t=n.createSVGTransform();t.setTranslate(0,0),i.transform.baseVal.insertItemBefore(t,0)}l=a.getItem(0),u.x-=l.matrix.e,u.y-=l.matrix.f,h=!0})),this.plugin.registerDomEvent(this.containerEl,"mouseup",(t=>{u={x:0,y:0},s.setAttribute("stroke-width","0"),r.setAttribute("stroke-width","0"),h=!1})),this.plugin.registerDomEvent(t,"mousemove",(t=>{if(h){t.preventDefault();let e=n.getScreenCTM(),a={x:(t.clientX-e.e)/e.a,y:(t.clientY-e.f)/e.d},i=a.x-u.x,o=a.y-u.y;Math.abs(i)<=32&&t.shiftKey?(s.setAttribute("stroke-width","8"),i=0):s.setAttribute("stroke-width","0"),Math.abs(o)<=32&&t.shiftKey?(r.setAttribute("stroke-width","8"),o=0):r.setAttribute("stroke-width","0"),l.setTranslate(i,o),this.tempMarker.transform.x=l.matrix.e/c.width,this.tempMarker.transform.y=l.matrix.f/c.height}}))}}new t.Setting(i).setName(Ce("Layer Icon")).setDesc(Ce("The icon will be layered on the base icon.")).addToggle((t=>{t.setValue(this.tempMarker.layer).onChange((t=>{this.tempMarker.layer=t,this.display()}))}));let e=new t.Setting(i).setName(Ce("Marker Color")).setDesc(Ce("Override default icon color.")),a=e.controlEl.createEl("input",{attr:{type:"color",value:this.tempMarker.color}});a.oninput=t=>{this.tempMarker.color=t.target.value,o.children.length&&(o.children[0].style.color=`${this.tempMarker.color}`)},a.onchange=async t=>{this.tempMarker.color=t.target.value,this.display()},e.addSlider((t=>t.setLimits(0,1,.01).setValue(1).onChange((t=>{this.tempMarker.alpha=t,o.children.length&&(o.children[0].style.opacity=`${this.tempMarker.alpha}`)}))))}new t.Setting(i).setName(Ce("Min Zoom")).setDesc(Ce("Only display when zooming in below this zoom.")).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Minimum zoom must be a number."))),e.preventDefault(),!1},null!=this.tempMarker.minZoom&&e.setValue(`${this.tempMarker.minZoom}`),e.onChange((t=>{this.tempMarker.minZoom=Number(t)}))})),new t.Setting(i).setName(Ce("Max Zoom")).setDesc(Ce("Only display when zooming out above this zoom.")).addText((e=>{let a=!1;e.inputEl.onkeydown=e=>{if(!/^(\d*\.?\d*|Backspace|Delete|Arrow\w+|\-|Tab)$/.test(e.key))return a||(a=!0,new t.Notice(Ce("Maximum zoom must be a number."))),e.preventDefault(),!1},e.onChange((t=>{this.tempMarker.maxZoom=Number(t)})),null!=this.tempMarker.maxZoom&&e.setValue(`${this.tempMarker.maxZoom}`)})),this.buildTags(i.createDiv("additional-markers-container"));let d=new t.Setting(i);if(this.tempMarker.isImage)if(this.canvas)o.appendChild(this.canvas);else{this.canvas=o.createEl("canvas");let t=new Image;t.src=this.tempMarker.imageUrl,this.canvas.style.width="100%",this.canvas.style.height="100%",this.canvas.width=this.canvas.offsetWidth,this.canvas.height=this.canvas.offsetHeight;let e=t.width,a=t.height;ethis.canvas.width&&(a*=this.canvas.width/e,e=this.canvas.width):a>this.canvas.height&&(e*=this.canvas.height/a,a=this.canvas.height),this.canvas.getContext("2d").drawImage(t,0,0,e-4,a-4)}d.addButton((t=>{let e=t.setTooltip(Ce("Save")).onClick((async()=>{let t=!1;this.data.markerIcons.find((t=>t.type==this.tempMarker.type))&&this.tempMarker.type!=this.marker.type&&(xe(s,Ce("Marker type already exists.")),t=!0),0==this.tempMarker.type.length&&(xe(s,Ce("Marker name cannot be empty.")),t=!0),Pt({iconName:r.inputEl.value,prefix:"fas"})||this.tempMarker.isImage||(xe(r,Ce("Invalid icon name.")),t=!0),this.tempMarker.iconName||this.tempMarker.isImage||(xe(r,Ce("Icon cannot be empty.")),t=!0),t||(this.marker.type=this.tempMarker.type,this.marker.iconName=this.tempMarker.iconName,this.marker.color=this.tempMarker.color,this.marker.alpha=this.tempMarker.alpha??1,this.marker.layer=this.tempMarker.layer,this.marker.transform=this.tempMarker.transform,this.marker.isImage=this.tempMarker.isImage,this.marker.imageUrl=this.tempMarker.imageUrl,this.marker.tags=this.tempMarker.tags,this.marker.minZoom=this.tempMarker.minZoom,this.marker.maxZoom=this.tempMarker.maxZoom,this.saved=!0,this.close())}));return e.buttonEl.appendChild(Ut(Pt({iconName:"save",prefix:"fas"})).node[0]),e})),d.addExtraButton((t=>{t.setIcon("cross").setTooltip(Ce("Cancel")).onClick((()=>{this.close()}))})),e&&this.contentEl.querySelector(`#${e}`).focus()}buildTags(e,a=!1){let i;e.empty();const n=new t.Setting(e).setHeading().setName(Ce("Associate Tags")).setDesc(Ce("Markers created from this tag using ")).addText((t=>{t.setPlaceholder("Add Tag"),t.onChange((t=>i=t)),a&&t.inputEl.focus()})).addButton((t=>{t.setTooltip("Add Tag").setButtonText("+").onClick((()=>{i&&i.length&&!this.tempMarker.tags?.includes(i)&&(this.tempMarker.tags.push(i),this.buildTags(e,!0))}))}));n.descEl.createEl("code",{text:"markerTag"}),n.descEl.createSpan({text:Ce(" will use this marker icon by default.")});const s=e.createDiv("additional-markers");if(this.tempMarker.tags)for(let a of this.tempMarker.tags)new t.Setting(s).setName(a).addExtraButton((t=>t.setIcon("trash").setTooltip("Remove Tag").onClick((()=>{this.tempMarker.tags=this.tempMarker.tags.filter((t=>t!==a)),this.buildTags(e)}))))}onOpen(){this.display()}getFillColor(t){let e=getComputedStyle(t).getPropertyValue("background-color");if(e.includes("rgb")){let t=e.indexOf(",")>-1?",":" ",a=e.split("(")[1].split(")")[0].split(t),i=(+a[0]).toString(16),n=(+a[1]).toString(16),s=(+a[2]).toString(16);return 1==i.length&&(i="0"+i),1==n.length&&(n="0"+n),1==s.length&&(s="0"+s),["#"+i+n+s,a[3]?""+ +a[3]:"1"]}if(e.includes("#"))return[e,"1"]}}class $a extends t.PluginSettingTab{constructor(t,e){super(t,e),this.plugin=e}get data(){return this.plugin.data}async display(){let{containerEl:t}=this;t.empty(),t.addClass("obsidian-leaflet-settings"),t.createEl("h2",{text:Ce("Obsidian Leaflet Settings")}),this.createCSVSetting(t.createDiv()),this.createMarkerSettings(t.createDiv()),this.createMapSettings(t.createDiv());let e=t.createDiv("additional-markers-container");this.createDefaultMarkerSettings(e);let a=t.createDiv("additional-markers-container");this.createAdditionalMarkerSettings(a),t.createDiv("coffee").createEl("a",{href:"https://www.buymeacoffee.com/valentine195"}).createEl("img",{attr:{src:"https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=☕&slug=valentine195&button_colour=e3e7ef&font_colour=262626&font_family=Inter&outline_colour=262626&coffee_colour=ff0000"}}),await this.plugin.saveSettings()}createDefaultMarkerSettings(e){let a=new t.Setting(e).setHeading().setName(Ce("Default Map Marker")).setDesc(Ce("This marker is always available.")).settingEl.createDiv({attr:{style:`align-self: start; margin: 0 18px; font-size: 24px; color: ${this.data.defaultMarker.color};`}});a.appendChild(ee(this.data.defaultMarker).node);let i=e.createDiv({cls:"additional-markers"});const n=createEl("input",{attr:{type:"file",name:"image",accept:"image/*"}});if(new t.Setting(i).setName(Ce("Icon Name")).addText((t=>{t.setPlaceholder(Ce("Icon Name")).setValue(this.data.defaultMarker.isImage?"":this.data.defaultMarker.iconName);const e=async()=>{const e=t.inputEl.value;e.length?Pt({iconName:e,prefix:"fas"})?(De(t),this.data.defaultMarker.iconName=e,this.data.defaultMarker.isImage=!1,await this.plugin.saveMarkerTypes(),this.display()):xe(t,Ce("The selected icon does not exist in Font Awesome Free.")):xe(t,Ce("A default marker must be defined."))};new Ya(this.app,t,Jt).onClose=e,t.inputEl.onblur=e})).addButton((t=>{t.setButtonText(Ce("Upload Image")).setTooltip(Ce("Upload Image")),t.buttonEl.addClass("leaflet-file-upload"),t.buttonEl.appendChild(n),t.onClick((()=>n.click()))})),n.onchange=async()=>{const{files:t}=n;if(!t.length)return;const e=t[0],a=new FileReader;a.onloadend=t=>{var e=new Image;e.onload=()=>{const t=document.createElement("canvas"),a=24;let i=e.width,n=e.height;i>=n&&i>a?(n*=a/i,i=a):n>=i&&n>a&&(i*=a/n,n=a),t.width=i,t.height=n,t.getContext("2d").drawImage(e,0,0,i,n),this.data.defaultMarker.isImage=!0,this.data.defaultMarker.imageUrl=t.toDataURL("image/png"),this.plugin.saveMarkerTypes(),this.display()},e.src=t.target.result.toString()},a.readAsDataURL(e),n.value=null},!this.data.defaultMarker.isImage){let e=new t.Setting(i).setName(Ce("Marker Color")).controlEl.createEl("input",{attr:{type:"color",value:this.data.defaultMarker.color}});e.oninput=({target:t})=>{this.data.defaultMarker.color=t.value,a.children[0].setAttribute("style",`color: ${this.data.defaultMarker.color}`)},e.onchange=async({target:t})=>{this.data.defaultMarker.color=t.value,this.display()},new t.Setting(i).setName(Ce("Layer Base Marker")).setDesc(Ce("Use as base layer for additional markers by default.")).addToggle((t=>{t.setValue(this.data.layerMarkers),t.onChange((async t=>{this.data.layerMarkers=t,this.data.markerIcons.forEach((e=>e.layer=t)),await this.plugin.saveMarkerTypes(),this.display()}))}))}}createAdditionalMarkerSettings(e){new t.Setting(e).setHeading().setName(Ce("Additional Map Markers")).setDesc(Ce("These markers will be available in the right-click menu on the map.")).addButton((t=>{let e=t.setTooltip(Ce("Add Additional")).onClick((async()=>{const t=await this.plugin.createNewMarkerType();t&&(this.data.markerIcons.push(t),await this.plugin.saveMarkerTypes(),this.display())}));return e.buttonEl.appendChild(Ut(Pt({iconName:"plus",prefix:"fas"})).node[0]),e}));let a=e.createDiv({cls:"additional-markers"});this.plugin.markerIcons.slice(1).forEach((e=>{let i=new t.Setting(a).addExtraButton((t=>t.onClick((async()=>{const t=await this.plugin.createNewMarkerType({original:e.markerIcon});t&&t.type&&t.iconName&&(t.type!=e.type&&this.data.mapMarkers.forEach((({markers:a})=>{a=a.map((a=>(a.type==e.type&&(a.type=t.type),a)))})),await this.plugin.saveMarkerTypes(),this.display())})))).addExtraButton((t=>t.setIcon("trash").onClick((async()=>{this.data.markerIcons=this.data.markerIcons.filter((t=>t!==e.markerIcon)),await this.plugin.saveMarkerTypes(),this.display()})))),n=createDiv({cls:"marker-icon-display"});n.innerHTML=e.html;let s=i.nameEl.createDiv("marker-type-display");s.appendChild(n),s.appendText(e.type),e.markerIcon.tags&&e.markerIcon.tags.length&&i.setDesc(e.markerIcon.tags.join(", "))}))}createMapSettings(e){e.empty(),new t.Setting(e).setName(Ce("Default Latitude")).setDesc(Ce("Real-world maps will open to this latitude if not specified.")).addText((t=>{t.setValue(`${this.data.lat}`),t.onChange((e=>{isNaN(Number(e))?xe(t,Ce("Latitude must be a number.")):(De(t),this.data.lat=Number(e),t.inputEl.addEventListener("blur",(async()=>{this.display()})))}))})),new t.Setting(e).setName(Ce("Default Longitude")).setDesc(Ce("Real-world maps will open to this longitude if not specified.")).addText((t=>{t.setValue(`${this.data.long}`),t.onChange((e=>{isNaN(Number(e))?xe(t,Ce("Longitude must be a number.")):(De(t),this.data.long=Number(e))})),t.inputEl.addEventListener("blur",(async()=>{this.display()}))})),new t.Setting(e).setName(Ce("Default Units")).setDesc(Ce("Select the default system of units for the map.")).addDropdown((t=>{t.addOption("imperial",Ce("Imperial")).addOption("metric",Ce("Metric")).setValue(this.plugin.data.defaultUnitType).onChange((async t=>{this.plugin.data.defaultUnitType=t,await this.plugin.saveSettings()}))})),new t.Setting(e).setName(Ce("Default Tile Server")).setDesc(Ce("It is up to you to ensure you have proper access to this tile server.")).addText((t=>{t.setValue(this.plugin.data.defaultTile).onChange((t=>{this.plugin.data.defaultTile=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultTile=re,this.createMapSettings(e),this.plugin.saveSettings()})))),new t.Setting(e).setName(Ce("Default Tile Server Subdomains")).setDesc(Ce("Available subdomains for this tile server concurrent requests.")).addText((t=>{t.setValue(this.plugin.data.defaultTileSubdomains).onChange((t=>{this.plugin.data.defaultTileSubdomains=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultTileSubdomains=ce,this.createMapSettings(e),this.plugin.saveSettings()})))),new t.Setting(e).setName(Ce("Default Tile Server Attribution")).setDesc(Ce("Please ensure your attribution meets all requirements set by the tile server.")).addTextArea((t=>{t.setValue(this.plugin.data.defaultAttribution).onChange((t=>{this.plugin.data.defaultAttribution=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultAttribution=oe,this.createMapSettings(e),this.plugin.saveSettings()})))),new t.Setting(e).setName(Ce("Default Tile Server (Dark Mode)")).setDesc(Ce("It is up to you to ensure you have proper access to this tile server.")).addText((t=>{t.setValue(this.plugin.data.defaultTileDark).onChange((t=>{this.plugin.data.defaultTileDark=t,this.plugin.saveSettings()}))})).addExtraButton((t=>t.setIcon("reset").setTooltip(Ce("Reset")).onClick((()=>{this.plugin.data.defaultTileDark=re,this.createMapSettings(e),this.plugin.saveSettings()}))))}createMarkerSettings(e){const a=new t.Setting(e).addText((async e=>{let a=this.app.vault.getAllLoadedFiles().filter((e=>e instanceof t.TFolder));e.setPlaceholder(this.data.configDirectory??this.app.vault.configDir),new ja(this.app,e,[...a]).onClose=async()=>{e.inputEl.value?await this.app.vault.adapter.exists(e.inputEl.value)||(this.data.configDirectory=e.inputEl.value,await this.plugin.saveSettings()):this.data.configDirectory=null},e.inputEl.onblur=async()=>{e.inputEl.value&&(await this.app.vault.adapter.exists(e.inputEl.value),this.data.configDirectory=e.inputEl.value,await this.plugin.saveSettings(),this.display())}})).addExtraButton((t=>{t.setTooltip(Ce("Reset to Default")).setIcon("undo-glyph").onClick((async()=>{this.data.configDirectory=null,await this.plugin.saveSettings(),this.display()}))}));a.descEl.createSpan({text:Ce("Please back up your data before changing this setting.")}),a.descEl.createEl("br"),a.descEl.createSpan({text:`${Ce("Current directory")}: `});const i=this.data.configDirectory??this.app.vault.configDir;a.descEl.createEl("code",{text:i});let n=a.nameEl.createDiv();n.appendChild(Ut(Pt({iconName:"exclamation-triangle",prefix:"fas"})).node[0]),n.appendChild(createSpan({text:Ce("Default Config Directory")})),new t.Setting(e).setName(Ce("Default Marker Tooltip Behavior")).setDesc(Ce("New markers will be created to this setting by default. Can be overridden per-marker.")).addDropdown((t=>{t.addOption("always",Ce("Always")),t.addOption("hover",Ce("Hover")),t.addOption("never",Ce("Never")),t.setValue(this.plugin.data.displayMarkerTooltips??"hover").onChange((t=>{this.plugin.data.displayMarkerTooltips=t}))})),new t.Setting(e).setName(Ce("Enable Draw Mode by Default")).setDesc(Ce("The draw control will be added to maps by default. Can be overridden with the draw map block parameter.")).addToggle((t=>t.setValue(this.data.enableDraw).onChange((async t=>{this.data.enableDraw=t,await this.plugin.saveSettings(),this.display()})))),new t.Setting(e).setName(Ce("Display Note Preview")).setDesc(Ce("Markers linked to notes will show a note preview when hovered.")).addToggle((t=>t.setValue(this.data.notePreview).onChange((async t=>{this.data.notePreview=t,await this.plugin.saveSettings(),this.display()})))),new t.Setting(e).setName(Ce("Display Overlay Tooltips")).setDesc(Ce("Overlay tooltips will display when hovered.")).addToggle((t=>t.setValue(this.data.displayOverlayTooltips).onChange((async t=>{this.data.displayOverlayTooltips=t,await this.plugin.saveSettings(),this.display()})))),new t.Setting(e).setName(Ce("Copy Coordinates on Shift-Click")).setDesc(Ce("Map coordinates will be copied to the clipboard when shift-clicking.")).addToggle((t=>t.setValue(this.data.copyOnClick).onChange((async t=>{this.data.copyOnClick=t,await this.plugin.saveSettings(),this.display()}))))}createCSVSetting(a){const i=new t.Setting(a).setDesc(Ce("This setting is experimental and could cause marker data issues. Use at your own risk."));let n=i.nameEl.createDiv();n.appendChild(Ut(Pt({iconName:"exclamation-triangle",prefix:"fas"})).node[0]),n.appendChild(createSpan({text:Ce("Import Marker CSV File")}));const s=createEl("input",{attr:{type:"file",name:"merge",accept:".csv"}});i.addButton((t=>{t.setButtonText(Ce("Choose File")).setTooltip(Ce("Upload CSV File")),t.buttonEl.addClass("leaflet-file-upload"),t.buttonEl.appendChild(s),t.onClick((()=>s.click()))})),s.onchange=async()=>{const{files:a}=s;if(a.length){try{const i=await a[0].text(),n=new Map,s=(0,e.parse)(i);if(s.data&&s.data.length){for(let e=0;et.replace(/"/g,"")));if(!i||!i.length||"undefined"===i){new t.Notice(Ce("Map not specified for line %1",`${e+1}`));continue}if(r&&r.length&&"undefined"!==r&&("default"==r||this.data.markerIcons.find((({type:t})=>t==r)))||(r="default"),!c||!c.length||isNaN(Number(c))){new t.Notice(Ce("Could not parse latitude for line %1",`${e+1}`));continue}if(!o||!o.length||isNaN(Number(o))){new t.Notice(Ce("Could not parse longitude for line %1",`${e+1}`));continue}l&&l.length&&"undefined"!==l?/\[\[[\s\S]+\]\]/.test(l)&&([,l]=l.match(/\[\[([\s\S]+)\]\]/)):l=void 0,u&&u.length&&"undefined"!==u||(u=Ne()),n.has(i)||n.set(i,[]);const d=n.get(a[0]);d.push({type:r,loc:[Number(c),Number(o)],percent:void 0,link:l,layer:h,id:u,command:!1,description:null,mutable:!0,minZoom:null,maxZoom:null,tooltip:"hover"}),n.set(a[0],d)}for(let[t,e]of[...n]){if(!this.data.mapMarkers.find((({id:e})=>e==t))){const e={id:t,files:[],lastAccessed:Date.now(),markers:[],overlays:[],shapes:[],locked:!1};this.data.mapMarkers.push(e)}if(this.plugin.maps.find((({id:e})=>e==t))){let a=this.plugin.maps.find((({id:e})=>e==t)).map;for(let t of e)a.markers=a.markers.filter((({id:e})=>e!=t.id)),a.createMarker(t.type,t.loc,void 0,t.link,t.id,t.layer)}else{let a=this.data.mapMarkers.find((({id:e})=>e==t));for(let t of e)a.markers=a.markers.filter((({id:e})=>e!=t.id)),a.markers.push(t)}}await this.plugin.saveSettings(),new t.Notice("Marker file successfully imported.")}}catch(e){new t.Notice(Ce("There was an error while importing %1",a[0].name)),console.error(e)}s.value=null}},new t.Setting(a).setName(Ce("Export Marker Data")).setDesc(Ce("Export all marker data to a CSV file.")).addButton((t=>{t.setButtonText(Ce("Export")).onClick((()=>{let t=[];for(let{id:e,markers:a}of this.data.mapMarkers)for(let{type:i,loc:n,link:s,layer:r,id:c}of a)t.push([e,i,n[0],n[1],s,r,c]);let a=new Blob([(0,e.unparse)(t)],{type:"text/csv"}),i=document.createElement("a");i.download="leaflet_marker_data.csv",i.href=window.URL.createObjectURL(a),i.style.display="none",document.body.appendChild(i),i.click(),document.body.removeChild(i)}))}))}}function ti(t){let e=t.length;for(;--e>=0;)t[e]=0}const ei=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ai=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),ii=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ni=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),si=new Array(576);ti(si);const ri=new Array(60);ti(ri);const ci=new Array(512);ti(ci);const oi=new Array(256);ti(oi);const li=new Array(29);ti(li);const hi=new Array(30);function ui(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}let di,fi,pi;function mi(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}ti(hi);const gi=t=>t<256?ci[t]:ci[256+(t>>>7)],vi=(t,e)=>{t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},bi=(t,e,a)=>{t.bi_valid>16-a?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<{bi(t,a[2*e],a[2*e+1])},Ci=(t,e)=>{let a=0;do{a|=1&t,t>>>=1,a<<=1}while(--e>0);return a>>>1},Ai=(t,e,a)=>{const i=new Array(16);let n,s,r=0;for(n=1;n<=15;n++)r=r+a[n-1]<<1,i[n]=r;for(s=0;s<=e;s++){let e=t[2*s+1];0!==e&&(t[2*s]=Ci(i[e]++,e))}},yi=t=>{let e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},Li=t=>{t.bi_valid>8?vi(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Hi=(t,e,a,i)=>{const n=2*e,s=2*a;return t[n]{const i=t.heap[a];let n=a<<1;for(;n<=t.heap_len&&(n{let i,n,s,r,c=0;if(0!==t.sym_next)do{i=255&t.pending_buf[t.sym_buf+c++],i+=(255&t.pending_buf[t.sym_buf+c++])<<8,n=t.pending_buf[t.sym_buf+c++],0===i?wi(t,n,e):(s=oi[n],wi(t,s+256+1,e),r=ei[s],0!==r&&(n-=li[s],bi(t,n,r)),i--,s=gi(i),wi(t,s,a),r=ai[s],0!==r&&(i-=hi[s],bi(t,i,r)))}while(c{const a=e.dyn_tree,i=e.stat_desc.static_tree,n=e.stat_desc.has_stree,s=e.stat_desc.elems;let r,c,o,l=-1;for(t.heap_len=0,t.heap_max=573,r=0;r>1;r>=1;r--)Bi(t,a,r);o=s;do{r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Bi(t,a,1),c=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=c,a[2*o]=a[2*r]+a[2*c],t.depth[o]=(t.depth[r]>=t.depth[c]?t.depth[r]:t.depth[c])+1,a[2*r+1]=a[2*c+1]=o,t.heap[1]=o++,Bi(t,a,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],((t,e)=>{const a=e.dyn_tree,i=e.max_code,n=e.stat_desc.static_tree,s=e.stat_desc.has_stree,r=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,o=e.stat_desc.max_length;let l,h,u,d,f,p,m=0;for(d=0;d<=15;d++)t.bl_count[d]=0;for(a[2*t.heap[t.heap_max]+1]=0,l=t.heap_max+1;l<573;l++)h=t.heap[l],d=a[2*a[2*h+1]+1]+1,d>o&&(d=o,m++),a[2*h+1]=d,h>i||(t.bl_count[d]++,f=0,h>=c&&(f=r[h-c]),p=a[2*h],t.opt_len+=p*(d+f),s&&(t.static_len+=p*(n[2*h+1]+f)));if(0!==m){do{for(d=o-1;0===t.bl_count[d];)d--;t.bl_count[d]--,t.bl_count[d+1]+=2,t.bl_count[o]--,m-=2}while(m>0);for(d=o;0!==d;d--)for(h=t.bl_count[d];0!==h;)u=t.heap[--l],u>i||(a[2*u+1]!==d&&(t.opt_len+=(d-a[2*u+1])*a[2*u],a[2*u+1]=d),h--)}})(t,e),Ai(a,l,t.bl_count)},xi=(t,e,a)=>{let i,n,s=-1,r=e[1],c=0,o=7,l=4;for(0===r&&(o=138,l=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=r,r=e[2*(i+1)+1],++c{let i,n,s=-1,r=e[1],c=0,o=7,l=4;for(0===r&&(o=138,l=3),i=0;i<=a;i++)if(n=r,r=e[2*(i+1)+1],!(++c{bi(t,0+(i?1:0),3),Li(t),vi(t,a),vi(t,~a),a&&t.pending_buf.set(t.window.subarray(e,e+a),t.pending),t.pending+=a};var Si={_tr_init:t=>{Vi||((()=>{let t,e,a,i,n;const s=new Array(16);for(a=0,i=0;i<28;i++)for(li[i]=a,t=0;t<1<>=7;i<30;i++)for(hi[i]=n<<7,t=0;t<1<{let n,s,r=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=(t=>{let e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0})(t)),Ni(t,t.l_desc),Ni(t,t.d_desc),r=(t=>{let e;for(xi(t,t.dyn_ltree,t.l_desc.max_code),xi(t,t.dyn_dtree,t.d_desc.max_code),Ni(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*ni[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e})(t),n=t.opt_len+3+7>>>3,s=t.static_len+3+7>>>3,s<=n&&(n=s)):n=s=a+5,a+4<=n&&-1!==e?Mi(t,e,a,i):4===t.strategy||s===n?(bi(t,2+(i?1:0),3),zi(t,si,ri)):(bi(t,4+(i?1:0),3),((t,e,a,i)=>{let n;for(bi(t,e-257,5),bi(t,a-1,5),bi(t,i-4,4),n=0;n(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=a,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(oi[a]+256+1)]++,t.dyn_dtree[2*gi(e)]++),t.sym_next===t.sym_end),_tr_align:t=>{bi(t,2,3),wi(t,256,si),(t=>{16===t.bi_valid?(vi(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)})(t)}},ki=(t,e,a,i)=>{let n=65535&t|0,s=t>>>16&65535|0,r=0;for(;0!==a;){r=a>2e3?2e3:a,a-=r;do{n=n+e[i++]|0,s=s+n|0}while(--r);n%=65521,s%=65521}return n|s<<16|0};const Qi=new Uint32Array((()=>{let t,e=[];for(var a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e})());var Ii=(t,e,a,i)=>{const n=Qi,s=i+a;t^=-1;for(let a=i;a>>8^n[255&(t^e[a])];return-1^t},Oi={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Ei={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:Xi,_tr_stored_block:Ti,_tr_flush_block:Pi,_tr_tally:Fi,_tr_align:Gi}=Si,{Z_NO_FLUSH:Ki,Z_PARTIAL_FLUSH:Ui,Z_FULL_FLUSH:qi,Z_FINISH:ji,Z_BLOCK:Yi,Z_OK:Ri,Z_STREAM_END:Wi,Z_STREAM_ERROR:Zi,Z_DATA_ERROR:Ji,Z_BUF_ERROR:_i,Z_DEFAULT_COMPRESSION:$i,Z_FILTERED:tn,Z_HUFFMAN_ONLY:en,Z_RLE:an,Z_FIXED:nn,Z_DEFAULT_STRATEGY:sn,Z_UNKNOWN:rn,Z_DEFLATED:cn}=Ei,on=258,ln=262,hn=42,un=113,dn=666,fn=(t,e)=>(t.msg=Oi[e],e),pn=t=>2*t-(t>4?9:0),mn=t=>{let e=t.length;for(;--e>=0;)t[e]=0},gn=t=>{let e,a,i,n=t.w_size;e=t.hash_size,i=e;do{a=t.head[--i],t.head[i]=a>=n?a-n:0}while(--e);e=n,i=e;do{a=t.prev[--i],t.prev[i]=a>=n?a-n:0}while(--e)};let vn=(t,e,a)=>(e<{const e=t.state;let a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},wn=(t,e)=>{Pi(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,bn(t.strm)},Cn=(t,e)=>{t.pending_buf[t.pending++]=e},An=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},yn=(t,e,a,i)=>{let n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,e.set(t.input.subarray(t.next_in,t.next_in+n),a),1===t.state.wrap?t.adler=ki(t.adler,e,n,a):2===t.state.wrap&&(t.adler=Ii(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)},Ln=(t,e)=>{let a,i,n=t.max_chain_length,s=t.strstart,r=t.prev_length,c=t.nice_match;const o=t.strstart>t.w_size-ln?t.strstart-(t.w_size-ln):0,l=t.window,h=t.w_mask,u=t.prev,d=t.strstart+on;let f=l[s+r-1],p=l[s+r];t.prev_length>=t.good_match&&(n>>=2),c>t.lookahead&&(c=t.lookahead);do{if(a=e,l[a+r]===p&&l[a+r-1]===f&&l[a]===l[s]&&l[++a]===l[s+1]){s+=2,a++;do{}while(l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&l[++s]===l[++a]&&sr){if(t.match_start=e,r=i,i>=c)break;f=l[s+r-1],p=l[s+r]}}}while((e=u[e&h])>o&&0!=--n);return r<=t.lookahead?r:t.lookahead},Hn=t=>{const e=t.w_size;let a,i,n;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-ln)&&(t.window.set(t.window.subarray(e,e+e-i),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),gn(t),i+=e),0===t.strm.avail_in)break;if(a=yn(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=a,t.lookahead+t.insert>=3)for(n=t.strstart-t.insert,t.ins_h=t.window[n],t.ins_h=vn(t,t.ins_h,t.window[n+1]);t.insert&&(t.ins_h=vn(t,t.ins_h,t.window[n+3-1]),t.prev[n&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=n,n++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead{let a,i,n,s=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r=0,c=t.strm.avail_in;do{if(a=65535,n=t.bi_valid+42>>3,t.strm.avail_outi+t.strm.avail_in&&(a=i+t.strm.avail_in),a>n&&(a=n),a>8,t.pending_buf[t.pending-2]=~a,t.pending_buf[t.pending-1]=~a>>8,bn(t.strm),i&&(i>a&&(i=a),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,a-=i),a&&(yn(t.strm,t.strm.output,t.strm.next_out,a),t.strm.next_out+=a,t.strm.avail_out-=a,t.strm.total_out+=a)}while(0===r);return c-=t.strm.avail_in,c&&(c>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=c&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-c,t.strm.next_in),t.strstart),t.strstart+=c,t.insert+=c>t.w_size-t.insert?t.w_size-t.insert:c),t.block_start=t.strstart),t.high_watern&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,n+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),n>t.strm.avail_in&&(n=t.strm.avail_in),n&&(yn(t.strm,t.window,t.strstart,n),t.strstart+=n,t.insert+=n>t.w_size-t.insert?t.w_size-t.insert:n),t.high_water>3,n=t.pending_buf_size-n>65535?65535:t.pending_buf_size-n,s=n>t.w_size?t.w_size:n,i=t.strstart-t.block_start,(i>=s||(i||e===ji)&&e!==Ki&&0===t.strm.avail_in&&i<=n)&&(a=i>n?n:i,r=e===ji&&0===t.strm.avail_in&&a===i?1:0,Ti(t,t.block_start,a,r),t.block_start+=a,bn(t.strm)),r?3:1)},zn=(t,e)=>{let a,i;for(;;){if(t.lookahead=3&&(t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-ln&&(t.match_length=Ln(t,a)),t.match_length>=3)if(i=Fi(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=vn(t,t.ins_h,t.window[t.strstart+1]);else i=Fi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(i&&(wn(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2},Nn=(t,e)=>{let a,i,n;for(;;){if(t.lookahead=3&&(t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-3,i=Fi(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=n&&(t.ins_h=vn(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,i&&(wn(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if(i=Fi(t,0,t.window[t.strstart-1]),i&&wn(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(i=Fi(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2};function xn(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}const Dn=[new xn(0,0,0,0,Bn),new xn(4,4,8,4,zn),new xn(4,5,16,8,zn),new xn(4,6,32,32,zn),new xn(4,4,16,16,Nn),new xn(8,16,32,32,Nn),new xn(8,16,128,128,Nn),new xn(8,32,128,256,Nn),new xn(32,128,258,1024,Nn),new xn(32,258,258,4096,Nn)];function Vn(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=cn,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),mn(this.dyn_ltree),mn(this.dyn_dtree),mn(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),mn(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),mn(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Mn=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==hn&&57!==e.status&&69!==e.status&&73!==e.status&&91!==e.status&&103!==e.status&&e.status!==un&&e.status!==dn?1:0},Sn=t=>{if(Mn(t))return fn(t,Zi);t.total_in=t.total_out=0,t.data_type=rn;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=2===e.wrap?57:e.wrap?hn:un,t.adler=2===e.wrap?0:1,e.last_flush=-2,Xi(e),Ri},kn=t=>{const e=Sn(t);var a;return e===Ri&&((a=t.state).window_size=2*a.w_size,mn(a.head),a.max_lazy_match=Dn[a.level].max_lazy,a.good_match=Dn[a.level].good_length,a.nice_match=Dn[a.level].nice_length,a.max_chain_length=Dn[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),e},Qn=(t,e,a,i,n,s)=>{if(!t)return Zi;let r=1;if(e===$i&&(e=6),i<0?(r=0,i=-i):i>15&&(r=2,i-=16),n<1||n>9||a!==cn||i<8||i>15||e<0||e>9||s<0||s>nn||8===i&&1!==r)return fn(t,Zi);8===i&&(i=9);const c=new Vn;return t.state=c,c.strm=t,c.status=hn,c.wrap=r,c.gzhead=null,c.w_bits=i,c.w_size=1<Qn(t,e,cn,15,8,sn),deflateInit2:Qn,deflateReset:kn,deflateResetKeep:Sn,deflateSetHeader:(t,e)=>Mn(t)||2!==t.state.wrap?Zi:(t.state.gzhead=e,Ri),deflate:(t,e)=>{if(Mn(t)||e>Yi||e<0)return t?fn(t,Zi):Zi;const a=t.state;if(!t.output||0!==t.avail_in&&!t.input||a.status===dn&&e!==ji)return fn(t,0===t.avail_out?_i:Zi);const i=a.last_flush;if(a.last_flush=e,0!==a.pending){if(bn(t),0===t.avail_out)return a.last_flush=-1,Ri}else if(0===t.avail_in&&pn(e)<=pn(i)&&e!==ji)return fn(t,_i);if(a.status===dn&&0!==t.avail_in)return fn(t,_i);if(a.status===hn&&0===a.wrap&&(a.status=un),a.status===hn){let e=cn+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=en||a.level<2?0:a.level<6?1:6===a.level?2:3,e|=i<<6,0!==a.strstart&&(e|=32),e+=31-e%31,An(a,e),0!==a.strstart&&(An(a,t.adler>>>16),An(a,65535&t.adler)),t.adler=1,a.status=un,bn(t),0!==a.pending)return a.last_flush=-1,Ri}if(57===a.status)if(t.adler=0,Cn(a,31),Cn(a,139),Cn(a,8),a.gzhead)Cn(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),Cn(a,255&a.gzhead.time),Cn(a,a.gzhead.time>>8&255),Cn(a,a.gzhead.time>>16&255),Cn(a,a.gzhead.time>>24&255),Cn(a,9===a.level?2:a.strategy>=en||a.level<2?4:0),Cn(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(Cn(a,255&a.gzhead.extra.length),Cn(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(t.adler=Ii(t.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(Cn(a,0),Cn(a,0),Cn(a,0),Cn(a,0),Cn(a,0),Cn(a,9===a.level?2:a.strategy>=en||a.level<2?4:0),Cn(a,3),a.status=un,bn(t),0!==a.pending)return a.last_flush=-1,Ri;if(69===a.status){if(a.gzhead.extra){let e=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let n=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+n),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>e&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex+=n,bn(t),0!==a.pending)return a.last_flush=-1,Ri;e=0,i-=n}let n=new Uint8Array(a.gzhead.extra);a.pending_buf.set(n.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>e&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-e,e)),a.gzindex=0}a.status=73}if(73===a.status){if(a.gzhead.name){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i)),bn(t),0!==a.pending)return a.last_flush=-1,Ri;i=0}e=a.gzindexi&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(91===a.status){if(a.gzhead.comment){let e,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i)),bn(t),0!==a.pending)return a.last_flush=-1,Ri;i=0}e=a.gzindexi&&(t.adler=Ii(t.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(103===a.status){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(bn(t),0!==a.pending))return a.last_flush=-1,Ri;Cn(a,255&t.adler),Cn(a,t.adler>>8&255),t.adler=0}if(a.status=un,bn(t),0!==a.pending)return a.last_flush=-1,Ri}if(0!==t.avail_in||0!==a.lookahead||e!==Ki&&a.status!==dn){let i=0===a.level?Bn(a,e):a.strategy===en?((t,e)=>{let a;for(;;){if(0===t.lookahead&&(Hn(t),0===t.lookahead)){if(e===Ki)return 1;break}if(t.match_length=0,a=Fi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(wn(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2})(a,e):a.strategy===an?((t,e)=>{let a,i,n,s;const r=t.window;for(;;){if(t.lookahead<=on){if(Hn(t),t.lookahead<=on&&e===Ki)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=t.strstart-1,i=r[n],i===r[++n]&&i===r[++n]&&i===r[++n])){s=t.strstart+on;do{}while(i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&i===r[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=Fi(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=Fi(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(wn(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,e===ji?(wn(t,!0),0===t.strm.avail_out?3:4):t.sym_next&&(wn(t,!1),0===t.strm.avail_out)?1:2})(a,e):Dn[a.level].func(a,e);if(3!==i&&4!==i||(a.status=dn),1===i||3===i)return 0===t.avail_out&&(a.last_flush=-1),Ri;if(2===i&&(e===Ui?Gi(a):e!==Yi&&(Ti(a,0,0,!1),e===qi&&(mn(a.head),0===a.lookahead&&(a.strstart=0,a.block_start=0,a.insert=0))),bn(t),0===t.avail_out))return a.last_flush=-1,Ri}return e!==ji?Ri:a.wrap<=0?Wi:(2===a.wrap?(Cn(a,255&t.adler),Cn(a,t.adler>>8&255),Cn(a,t.adler>>16&255),Cn(a,t.adler>>24&255),Cn(a,255&t.total_in),Cn(a,t.total_in>>8&255),Cn(a,t.total_in>>16&255),Cn(a,t.total_in>>24&255)):(An(a,t.adler>>>16),An(a,65535&t.adler)),bn(t),a.wrap>0&&(a.wrap=-a.wrap),0!==a.pending?Ri:Wi)},deflateEnd:t=>{if(Mn(t))return Zi;const e=t.state.status;return t.state=null,e===un?fn(t,Ji):Ri},deflateSetDictionary:(t,e)=>{let a=e.length;if(Mn(t))return Zi;const i=t.state,n=i.wrap;if(2===n||1===n&&i.status!==hn||i.lookahead)return Zi;if(1===n&&(t.adler=ki(t.adler,e,a,0)),i.wrap=0,a>=i.w_size){0===n&&(mn(i.head),i.strstart=0,i.block_start=0,i.insert=0);let t=new Uint8Array(i.w_size);t.set(e.subarray(a-i.w_size,a),0),e=t,a=i.w_size}const s=t.avail_in,r=t.next_in,c=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,Hn(i);i.lookahead>=3;){let t=i.strstart,e=i.lookahead-2;do{i.ins_h=vn(i,i.ins_h,i.window[t+3-1]),i.prev[t&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=t,t++}while(--e);i.strstart=t,i.lookahead=2,Hn(i)}return i.strstart+=i.lookahead,i.block_start=i.strstart,i.insert=i.lookahead,i.lookahead=0,i.match_length=i.prev_length=2,i.match_available=0,t.next_in=r,t.input=c,t.avail_in=s,i.wrap=n,Ri},deflateInfo:"pako deflate (from Nodeca project)"};const On=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var En={assign:function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(const e in a)On(a,e)&&(t[e]=a[e])}}return t},flattenChunks:t=>{let e=0;for(let a=0,i=t.length;a=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;Tn[254]=Tn[254]=1;var Pn={string2buf:t=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,i,n,s,r=t.length,c=0;for(n=0;n>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},buf2string:(t,e)=>{const a=e||t.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(t.subarray(0,e));let i,n;const s=new Array(2*a);for(n=0,i=0;i4)s[n++]=65533,i+=r-1;else{for(e&=2===r?31:3===r?15:7;r>1&&i1?s[n++]=65533:e<65536?s[n++]=e:(e-=65536,s[n++]=55296|e>>10&1023,s[n++]=56320|1023&e)}}return((t,e)=>{if(e<65534&&t.subarray&&Xn)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let a="";for(let i=0;i{(e=e||t.length)>t.length&&(e=t.length);let a=e-1;for(;a>=0&&128==(192&t[a]);)a--;return a<0||0===a?e:a+Tn[t[a]]>e?a:e}},Fn=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Gn=Object.prototype.toString,{Z_NO_FLUSH:Kn,Z_SYNC_FLUSH:Un,Z_FULL_FLUSH:qn,Z_FINISH:jn,Z_OK:Yn,Z_STREAM_END:Rn,Z_DEFAULT_COMPRESSION:Wn,Z_DEFAULT_STRATEGY:Zn,Z_DEFLATED:Jn}=Ei;function _n(t){this.options=En.assign({level:Wn,method:Jn,chunkSize:16384,windowBits:15,memLevel:8,strategy:Zn},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Fn,this.strm.avail_out=0;let a=In.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==Yn)throw new Error(Oi[a]);if(e.header&&In.deflateSetHeader(this.strm,e.header),e.dictionary){let t;if(t="string"==typeof e.dictionary?Pn.string2buf(e.dictionary):"[object ArrayBuffer]"===Gn.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=In.deflateSetDictionary(this.strm,t),a!==Yn)throw new Error(Oi[a]);this._dict_set=!0}}function $n(t,e){const a=new _n(e);if(a.push(t,!0),a.err)throw a.msg||Oi[a.err];return a.result}_n.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize;let n,s;if(this.ended)return!1;for(s=e===~~e?e:!0===e?jn:Kn,"string"==typeof t?a.input=Pn.string2buf(t):"[object ArrayBuffer]"===Gn.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;)if(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),(s===Un||s===qn)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=In.deflate(a,s),n===Rn)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=In.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Yn;if(0!==a.avail_out){if(s>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(0===a.avail_in)break}else this.onData(a.output)}return!0},_n.prototype.onData=function(t){this.chunks.push(t)},_n.prototype.onEnd=function(t){t===Yn&&(this.result=En.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ts={Deflate:_n,deflate:$n,deflateRaw:function(t,e){return(e=e||{}).raw=!0,$n(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,$n(t,e)},constants:Ei};const es=16209;var as=function(t,e){let a,i,n,s,r,c,o,l,h,u,d,f,p,m,g,v,b,w,C,A,y,L,H,B;const z=t.state;a=t.next_in,H=t.input,i=a+(t.avail_in-5),n=t.next_out,B=t.output,s=n-(e-t.avail_out),r=n+(t.avail_out-257),c=z.dmax,o=z.wsize,l=z.whave,h=z.wnext,u=z.window,d=z.hold,f=z.bits,p=z.lencode,m=z.distcode,g=(1<>>24,d>>>=w,f-=w,w=b>>>16&255,0===w)B[n++]=65535&b;else{if(!(16&w)){if(0==(64&w)){b=p[(65535&b)+(d&(1<>>=w,f-=w),f<15&&(d+=H[a++]<>>24,d>>>=w,f-=w,w=b>>>16&255,!(16&w)){if(0==(64&w)){b=m[(65535&b)+(d&(1<c){t.msg="invalid distance too far back",z.mode=es;break t}if(d>>>=w,f-=w,w=n-s,A>w){if(w=A-w,w>l&&z.sane){t.msg="invalid distance too far back",z.mode=es;break t}if(y=0,L=u,0===h){if(y+=o-w,w2;)B[n++]=L[y++],B[n++]=L[y++],B[n++]=L[y++],C-=3;C&&(B[n++]=L[y++],C>1&&(B[n++]=L[y++]))}else{y=n-A;do{B[n++]=B[y++],B[n++]=B[y++],B[n++]=B[y++],C-=3}while(C>2);C&&(B[n++]=B[y++],C>1&&(B[n++]=B[y++]))}break}}break}}while(a>3,a-=C,f-=C<<3,d&=(1<{const o=c.bits;let l,h,u,d,f,p,m=0,g=0,v=0,b=0,w=0,C=0,A=0,y=0,L=0,H=0,B=null;const z=new Uint16Array(16),N=new Uint16Array(16);let x,D,V,M=null;for(m=0;m<=15;m++)z[m]=0;for(g=0;g=1&&0===z[b];b--);if(w>b&&(w=b),0===b)return n[s++]=20971520,n[s++]=20971520,c.bits=1,0;for(v=1;v0&&(0===t||1!==b))return-1;for(N[1]=0,m=1;m<15;m++)N[m+1]=N[m]+z[m];for(g=0;g852||2===t&&L>592)return 1;for(;;){x=m-A,r[g]+1=p?(D=M[r[g]-p],V=B[r[g]-p]):(D=96,V=0),l=1<>A)+h]=x<<24|D<<16|V|0}while(0!==h);for(l=1<>=1;if(0!==l?(H&=l-1,H+=l):H=0,g++,0==--z[m]){if(m===b)break;m=e[a+r[g]]}if(m>w&&(H&d)!==u){for(0===A&&(A=w),f+=v,C=m-A,y=1<852||2===t&&L>592)return 1;u=H&d,n[u]=w<<24|C<<16|f-s|0}}return 0!==H&&(n[f+H]=m-A<<24|64<<16|0),c.bits=w,0};const{Z_FINISH:os,Z_BLOCK:ls,Z_TREES:hs,Z_OK:us,Z_STREAM_END:ds,Z_NEED_DICT:fs,Z_STREAM_ERROR:ps,Z_DATA_ERROR:ms,Z_MEM_ERROR:gs,Z_BUF_ERROR:vs,Z_DEFLATED:bs}=Ei,ws=16180,Cs=16190,As=16191,ys=16192,Ls=16194,Hs=16199,Bs=16200,zs=16206,Ns=16209,xs=t=>(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24);function Ds(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Vs=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode16211?1:0},Ms=t=>{if(Vs(t))return ps;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=ws,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,us},Ss=t=>{if(Vs(t))return ps;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,Ms(t)},ks=(t,e)=>{let a;if(Vs(t))return ps;const i=t.state;return e<0?(a=0,e=-e):(a=5+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?ps:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,Ss(t))},Qs=(t,e)=>{if(!t)return ps;const a=new Ds;t.state=a,a.strm=t,a.window=null,a.mode=ws;const i=ks(t,e);return i!==us&&(t.state=null),i};let Is,Os,Es=!0;const Xs=t=>{if(Es){Is=new Int32Array(512),Os=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(cs(1,t.lens,0,288,Is,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;cs(2,t.lens,0,32,Os,0,t.work,{bits:5}),Es=!1}t.lencode=Is,t.lenbits=9,t.distcode=Os,t.distbits=5},Ts=(t,e,a,i)=>{let n;const s=t.state;return null===s.window&&(s.wsize=1<=s.wsize?(s.window.set(e.subarray(a-s.wsize,a),0),s.wnext=0,s.whave=s.wsize):(n=s.wsize-s.wnext,n>i&&(n=i),s.window.set(e.subarray(a-i,a-i+n),s.wnext),(i-=n)?(s.window.set(e.subarray(a-i,a),0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whaveQs(t,15),inflateInit2:Qs,inflate:(t,e)=>{let a,i,n,s,r,c,o,l,h,u,d,f,p,m,g,v,b,w,C,A,y,L,H=0;const B=new Uint8Array(4);let z,N;const x=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Vs(t)||!t.output||!t.input&&0!==t.avail_in)return ps;a=t.state,a.mode===As&&(a.mode=ys),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,c=t.avail_in,l=a.hold,h=a.bits,u=c,d=o,L=us;t:for(;;)switch(a.mode){case ws:if(0===a.wrap){a.mode=ys;break}for(;h<16;){if(0===c)break t;c--,l+=i[s++]<>>8&255,a.check=Ii(a.check,B,2,0),l=0,h=0,a.mode=16181;break}if(a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&l)<<8)+(l>>8))%31){t.msg="incorrect header check",a.mode=Ns;break}if((15&l)!==bs){t.msg="unknown compression method",a.mode=Ns;break}if(l>>>=4,h-=4,y=8+(15&l),0===a.wbits&&(a.wbits=y),y>15||y>a.wbits){t.msg="invalid window size",a.mode=Ns;break}a.dmax=1<>8&1),512&a.flags&&4&a.wrap&&(B[0]=255&l,B[1]=l>>>8&255,a.check=Ii(a.check,B,2,0)),l=0,h=0,a.mode=16182;case 16182:for(;h<32;){if(0===c)break t;c--,l+=i[s++]<>>8&255,B[2]=l>>>16&255,B[3]=l>>>24&255,a.check=Ii(a.check,B,4,0)),l=0,h=0,a.mode=16183;case 16183:for(;h<16;){if(0===c)break t;c--,l+=i[s++]<>8),512&a.flags&&4&a.wrap&&(B[0]=255&l,B[1]=l>>>8&255,a.check=Ii(a.check,B,2,0)),l=0,h=0,a.mode=16184;case 16184:if(1024&a.flags){for(;h<16;){if(0===c)break t;c--,l+=i[s++]<>>8&255,a.check=Ii(a.check,B,2,0)),l=0,h=0}else a.head&&(a.head.extra=null);a.mode=16185;case 16185:if(1024&a.flags&&(f=a.length,f>c&&(f=c),f&&(a.head&&(y=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Uint8Array(a.head.extra_len)),a.head.extra.set(i.subarray(s,s+f),y)),512&a.flags&&4&a.wrap&&(a.check=Ii(a.check,i,f,s)),c-=f,s+=f,a.length-=f),a.length))break t;a.length=0,a.mode=16186;case 16186:if(2048&a.flags){if(0===c)break t;f=0;do{y=i[s+f++],a.head&&y&&a.length<65536&&(a.head.name+=String.fromCharCode(y))}while(y&&f>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=As;break;case 16189:for(;h<32;){if(0===c)break t;c--,l+=i[s++]<>>=7&h,h-=7&h,a.mode=zs;break}for(;h<3;){if(0===c)break t;c--,l+=i[s++]<>>=1,h-=1,3&l){case 0:a.mode=16193;break;case 1:if(Xs(a),a.mode=Hs,e===hs){l>>>=2,h-=2;break t}break;case 2:a.mode=16196;break;case 3:t.msg="invalid block type",a.mode=Ns}l>>>=2,h-=2;break;case 16193:for(l>>>=7&h,h-=7&h;h<32;){if(0===c)break t;c--,l+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=Ns;break}if(a.length=65535&l,l=0,h=0,a.mode=Ls,e===hs)break t;case Ls:a.mode=16195;case 16195:if(f=a.length,f){if(f>c&&(f=c),f>o&&(f=o),0===f)break t;n.set(i.subarray(s,s+f),r),c-=f,s+=f,o-=f,r+=f,a.length-=f;break}a.mode=As;break;case 16196:for(;h<14;){if(0===c)break t;c--,l+=i[s++]<>>=5,h-=5,a.ndist=1+(31&l),l>>>=5,h-=5,a.ncode=4+(15&l),l>>>=4,h-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=Ns;break}a.have=0,a.mode=16197;case 16197:for(;a.have>>=3,h-=3}for(;a.have<19;)a.lens[x[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,z={bits:a.lenbits},L=cs(0,a.lens,0,19,a.lencode,0,a.work,z),a.lenbits=z.bits,L){t.msg="invalid code lengths set",a.mode=Ns;break}a.have=0,a.mode=16198;case 16198:for(;a.have>>24,v=H>>>16&255,b=65535&H,!(g<=h);){if(0===c)break t;c--,l+=i[s++]<>>=g,h-=g,a.lens[a.have++]=b;else{if(16===b){for(N=g+2;h>>=g,h-=g,0===a.have){t.msg="invalid bit length repeat",a.mode=Ns;break}y=a.lens[a.have-1],f=3+(3&l),l>>>=2,h-=2}else if(17===b){for(N=g+3;h>>=g,h-=g,y=0,f=3+(7&l),l>>>=3,h-=3}else{for(N=g+7;h>>=g,h-=g,y=0,f=11+(127&l),l>>>=7,h-=7}if(a.have+f>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=Ns;break}for(;f--;)a.lens[a.have++]=y}}if(a.mode===Ns)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=Ns;break}if(a.lenbits=9,z={bits:a.lenbits},L=cs(1,a.lens,0,a.nlen,a.lencode,0,a.work,z),a.lenbits=z.bits,L){t.msg="invalid literal/lengths set",a.mode=Ns;break}if(a.distbits=6,a.distcode=a.distdyn,z={bits:a.distbits},L=cs(2,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,z),a.distbits=z.bits,L){t.msg="invalid distances set",a.mode=Ns;break}if(a.mode=Hs,e===hs)break t;case Hs:a.mode=Bs;case Bs:if(c>=6&&o>=258){t.next_out=r,t.avail_out=o,t.next_in=s,t.avail_in=c,a.hold=l,a.bits=h,as(t,d),r=t.next_out,n=t.output,o=t.avail_out,s=t.next_in,i=t.input,c=t.avail_in,l=a.hold,h=a.bits,a.mode===As&&(a.back=-1);break}for(a.back=0;H=a.lencode[l&(1<>>24,v=H>>>16&255,b=65535&H,!(g<=h);){if(0===c)break t;c--,l+=i[s++]<>w)],g=H>>>24,v=H>>>16&255,b=65535&H,!(w+g<=h);){if(0===c)break t;c--,l+=i[s++]<>>=w,h-=w,a.back+=w}if(l>>>=g,h-=g,a.back+=g,a.length=b,0===v){a.mode=16205;break}if(32&v){a.back=-1,a.mode=As;break}if(64&v){t.msg="invalid literal/length code",a.mode=Ns;break}a.extra=15&v,a.mode=16201;case 16201:if(a.extra){for(N=a.extra;h>>=a.extra,h-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=16202;case 16202:for(;H=a.distcode[l&(1<>>24,v=H>>>16&255,b=65535&H,!(g<=h);){if(0===c)break t;c--,l+=i[s++]<>w)],g=H>>>24,v=H>>>16&255,b=65535&H,!(w+g<=h);){if(0===c)break t;c--,l+=i[s++]<>>=w,h-=w,a.back+=w}if(l>>>=g,h-=g,a.back+=g,64&v){t.msg="invalid distance code",a.mode=Ns;break}a.offset=b,a.extra=15&v,a.mode=16203;case 16203:if(a.extra){for(N=a.extra;h>>=a.extra,h-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=Ns;break}a.mode=16204;case 16204:if(0===o)break t;if(f=d-o,a.offset>f){if(f=a.offset-f,f>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=Ns;break}f>a.wnext?(f-=a.wnext,p=a.wsize-f):p=a.wnext-f,f>a.length&&(f=a.length),m=a.window}else m=n,p=r-a.offset,f=a.length;f>o&&(f=o),o-=f,a.length-=f;do{n[r++]=m[p++]}while(--f);0===a.length&&(a.mode=Bs);break;case 16205:if(0===o)break t;n[r++]=a.length,o--,a.mode=Bs;break;case zs:if(a.wrap){for(;h<32;){if(0===c)break t;c--,l|=i[s++]<{if(Vs(t))return ps;let e=t.state;return e.window&&(e.window=null),t.state=null,us},inflateGetHeader:(t,e)=>{if(Vs(t))return ps;const a=t.state;return 0==(2&a.wrap)?ps:(a.head=e,e.done=!1,us)},inflateSetDictionary:(t,e)=>{const a=e.length;let i,n,s;return Vs(t)?ps:(i=t.state,0!==i.wrap&&i.mode!==Cs?ps:i.mode===Cs&&(n=1,n=ki(n,e,a,0),n!==i.check)?ms:(s=Ts(t,e,a,a),s?(i.mode=16210,gs):(i.havedict=1,us)))},inflateInfo:"pako inflate (from Nodeca project)"},Fs=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const Gs=Object.prototype.toString,{Z_NO_FLUSH:Ks,Z_FINISH:Us,Z_OK:qs,Z_STREAM_END:js,Z_NEED_DICT:Ys,Z_STREAM_ERROR:Rs,Z_DATA_ERROR:Ws,Z_MEM_ERROR:Zs}=Ei;function Js(t){this.options=En.assign({chunkSize:65536,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Fn,this.strm.avail_out=0;let a=Ps.inflateInit2(this.strm,e.windowBits);if(a!==qs)throw new Error(Oi[a]);if(this.header=new Fs,Ps.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Pn.string2buf(e.dictionary):"[object ArrayBuffer]"===Gs.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(a=Ps.inflateSetDictionary(this.strm,e.dictionary),a!==qs)))throw new Error(Oi[a])}function _s(t,e){const a=new Js(e);if(a.push(t),a.err)throw a.msg||Oi[a.err];return a.result}Js.prototype.push=function(t,e){const a=this.strm,i=this.options.chunkSize,n=this.options.dictionary;let s,r,c;if(this.ended)return!1;for(r=e===~~e?e:!0===e?Us:Ks,"[object ArrayBuffer]"===Gs.call(t)?a.input=new Uint8Array(t):a.input=t,a.next_in=0,a.avail_in=a.input.length;;){for(0===a.avail_out&&(a.output=new Uint8Array(i),a.next_out=0,a.avail_out=i),s=Ps.inflate(a,r),s===Ys&&n&&(s=Ps.inflateSetDictionary(a,n),s===qs?s=Ps.inflate(a,r):s===Ws&&(s=Ys));a.avail_in>0&&s===js&&a.state.wrap>0&&0!==t[a.next_in];)Ps.inflateReset(a),s=Ps.inflate(a,r);switch(s){case Rs:case Ws:case Ys:case Zs:return this.onEnd(s),this.ended=!0,!1}if(c=a.avail_out,a.next_out&&(0===a.avail_out||s===js))if("string"===this.options.to){let t=Pn.utf8border(a.output,a.next_out),e=a.next_out-t,n=Pn.buf2string(a.output,t);a.next_out=e,a.avail_out=i-e,e&&a.output.set(a.output.subarray(t,t+e),0),this.onData(n)}else this.onData(a.output.length===a.next_out?a.output:a.output.subarray(0,a.next_out));if(s!==qs||0!==c){if(s===js)return s=Ps.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(0===a.avail_in)break}}return!0},Js.prototype.onData=function(t){this.chunks.push(t)},Js.prototype.onEnd=function(t){t===qs&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=En.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var $s={Inflate:Js,inflate:_s,inflateRaw:function(t,e){return(e=e||{}).raw=!0,_s(t,e)},ungzip:_s,constants:Ei};const{Deflate:tr,deflate:er,deflateRaw:ar,gzip:ir}=ts,{Inflate:nr,inflate:sr,inflateRaw:rr,ungzip:cr}=$s;var or=cr;const lr="OBSIDIAN_LEAFLET_PLUGIN",hr=window.L;window.L||a(243),window[lr]=window.L,window[lr].Circle.mergeOptions({weight:he,opacity:ue}),a(660),a(857),window.L=hr;const ur=window[lr];class dr extends ur.DivIcon{constructor(t){super(t)}createIcon(t){const e=super.createIcon(t);for(let t in this.options.data)e.dataset[t]=this.options.data[t];return this.div=e,e}setData(t){if(this.options.data={...this.options.data,...t},this.div)for(let e in t)this.div.dataset[e]=this.options.data[e]}}const fr=function(t){return new dr(t)};class pr extends ur.Marker{constructor(t,e,a){super(t,e),this.options.icon.setData(a)}}var mr=453.59237,gr=1024,vr=8192,br=1048576,wr=8388608,Cr=1073741824,Ar=8589934592,yr=1099511627776,Lr=8796093022208,Hr=0x4000000000000,Br=9007199254740992,zr={__proto__:null,bit:[0,1,0],bits:[0,1,0],b:[0,1,0],unibit:[0,1,0],unibits:[0,1,0],millibit:[0,.001,0],millibits:[0,.001,0],centibit:[0,.01,0],centibits:[0,.01,0],decibit:[0,.1,0],decibits:[0,.1,0],crumb:[0,2,0],crumbs:[0,2,0],dibit:[0,2,0],dibits:[0,2,0],triad:[0,3,0],triads:[0,3,0],triade:[0,3,0],triades:[0,3,0],tribit:[0,3,0],tribits:[0,3,0],nibble:[0,4,0],nibbles:[0,4,0],tetrad:[0,4,0],tetrads:[0,4,0],tetrade:[0,4,0],tetrades:[0,4,0],quadbit:[0,4,0],quadbits:[0,4,0],semioctet:[0,4,0],semioctets:[0,4,0],halfbyte:[0,4,0],halfbytes:[0,4,0],quartet:[0,4,0],quartets:[0,4,0],pentad:[0,5,0],pentads:[0,5,0],hexad:[0,6,0],hexads:[0,6,0],hexade:[0,6,0],hexades:[0,6,0],sextet:[0,6,0],sextets:[0,6,0],heptad:[0,7,0],heptads:[0,7,0],heptade:[0,7,0],heptades:[0,7,0],byte:[0,8,0],bytes:[0,8,0],B:[0,8,0],octect:[0,8,0],octects:[0,8,0],octad:[0,8,0],octads:[0,8,0],octade:[0,8,0],octades:[0,8,0],decabit:[0,10,0],decabits:[0,10,0],declet:[0,10,0],decle:[0,10,0],deckle:[0,10,0],slab:[0,12,0],slabs:[0,12,0],hextet:[0,16,0],hextets:[0,16,0],catena:[0,24,0],catenas:[0,24,0],hectobit:[0,100,0],hectobits:[0,100,0],hbit:[0,100,0],kilobit:[0,1e3,0],kilobits:[0,1e3,0],kbit:[0,1e3,0],kibibit:[0,gr,0],kibibits:[0,gr,0],Kibit:[0,gr,0],kilobyte:[0,8e3,0],kilobytes:[0,8e3,0],kB:[0,8e3,0],kibibyte:[0,vr,0],kibibytes:[0,vr,0],KiB:[0,vr,0],megabit:[0,1e6,0],megabits:[0,1e6,0],Mbit:[0,1e6,0],mebibit:[0,br,0],mebibits:[0,br,0],Mibit:[0,br,0],megabyte:[0,8e6,0],megabytes:[0,8e6,0],MB:[0,8e6,0],mebibyte:[0,wr,0],mebibytes:[0,wr,0],MiB:[0,wr,0],gigabit:[0,1e9,0],gigabits:[0,1e9,0],Gbit:[0,1e9,0],gibibit:[0,Cr,0],gibibits:[0,Cr,0],Gibit:[0,Cr,0],gigabyte:[0,8e9,0],gigabytes:[0,8e9,0],GB:[0,8e9,0],gibibyte:[0,Ar,0],gibibytes:[0,Ar,0],GiB:[0,Ar,0],terabit:[0,1e12,0],terabits:[0,1e12,0],Tbit:[0,1e12,0],tebibit:[0,yr,0],tebibits:[0,yr,0],Tibit:[0,yr,0],terabyte:[0,8e12,0],terabytes:[0,8e12,0],TB:[0,8e12,0],tebibyte:[0,Lr,0],tebibytes:[0,Lr,0],TiB:[0,Lr,0],petabit:[0,1e15,0],petabits:[0,1e15,0],Pbit:[0,1e15,0],pebibit:[0,Hr,0],pebibits:[0,Hr,0],Pibit:[0,Hr,0],petabyte:[0,8e15,0],petabytes:[0,8e15,0],PB:[0,8e15,0],pebibyte:[0,Br,0],pebibytes:[0,Br,0],PiB:[0,Br,0],meter:[1,1,0],meters:[1,1,0],metre:[1,1,0],metres:[1,1,0],m:[1,1,0],petameter:[1,1e15,0],petametre:[1,1e15,0],petameters:[1,1e15,0],petametres:[1,1e15,0],Pm:[1,1e15,0],terameter:[1,1e12,0],terametre:[1,1e12,0],terameters:[1,1e12,0],terametres:[1,1e12,0],Tm:[1,1e12,0],gigameter:[1,1e9,0],gigametre:[1,1e9,0],gigameters:[1,1e9,0],gigametres:[1,1e9,0],Gm:[1,1e9,0],megameter:[1,1e6,0],megametre:[1,1e6,0],megameters:[1,1e6,0],megametres:[1,1e6,0],Mm:[1,1e6,0],kilometer:[1,1e3,0],kilometre:[1,1e3,0],kilometers:[1,1e3,0],kilometres:[1,1e3,0],km:[1,1e3,0],hectometer:[1,100,0],hectometre:[1,100,0],hectometers:[1,100,0],hectometres:[1,100,0],hm:[1,100,0],decameter:[1,10,0],decametre:[1,10,0],decameters:[1,10,0],decametres:[1,10,0],dam:[1,10,0],decimeter:[1,.1,0],decimetre:[1,.1,0],decimeters:[1,.1,0],decimetres:[1,.1,0],dm:[1,.1,0],centimeter:[1,.01,0],centimetre:[1,.01,0],centimeters:[1,.01,0],centimetres:[1,.01,0],cm:[1,.01,0],millimeter:[1,.001,0],millimetre:[1,.001,0],millimeters:[1,.001,0],millimetres:[1,.001,0],mm:[1,.001,0],micrometer:[1,1e-7,0],micrometre:[1,1e-7,0],micrometers:[1,1e-7,0],micrometres:[1,1e-7,0],μm:[1,1e-7,0],nanometer:[1,1e-9,0],nanometre:[1,1e-9,0],nanometers:[1,1e-9,0],nanometres:[1,1e-9,0],nm:[1,1e-9,0],picometer:[1,1e-12,0],picometre:[1,1e-12,0],picometers:[1,1e-12,0],picometres:[1,1e-12,0],pm:[1,1e-12,0],femtometer:[1,1e-15,0],femtometre:[1,1e-15,0],femtometers:[1,1e-15,0],femtometres:[1,1e-15,0],fm:[1,1e-15,0],foot:[1,.3048,0],feet:[1,.3048,0],ft:[1,.3048,0],inch:[1,.0254,0],inches:[1,.0254,0],in:[1,.0254,0],yard:[1,.9144,0],yards:[1,.9144,0],yd:[1,.9144,0],mile:[1,1609.344,0],miles:[1,1609.344,0],mi:[1,1609.344,0],"nautical mile":[1,1852,0],"nautical miles":[1,1852,0],M:[1,1852,0],NM:[1,1852,0],nmi:[1,1852,0],kilogram:[2,1e3,0],kilograms:[2,1e3,0],kg:[2,1e3,0],gram:[2,1,0],grams:[2,1,0],g:[2,1,0],decagram:[2,10,0],decagrams:[2,10,0],dag:[2,10,0],hectogram:[2,100,0],hectograms:[2,100,0],hg:[2,100,0],megagram:[2,1e6,0],megagrams:[2,1e6,0],Mg:[2,1e6,0],tonne:[2,1e6,0],tonnes:[2,1e6,0],"metric ton":[2,1e6,0],"metric tons":[2,1e6,0],t:[2,1e6,0],gigagram:[2,1e9,0],gigagrams:[2,1e9,0],Gg:[2,1e9,0],teragram:[2,1e12,0],teragrams:[2,1e12,0],Tg:[2,1e12,0],petagram:[2,1e15,0],petagrams:[2,1e15,0],Pg:[2,1e15,0],exagram:[2,1e18,0],exagrams:[2,1e18,0],Eg:[2,1e18,0],zettagram:[2,1e21,0],zettagrams:[2,1e21,0],Zg:[2,1e21,0],yottagram:[2,1e24,0],yottagrams:[2,1e24,0],Yg:[2,1e24,0],decigram:[2,.1,0],decigrams:[2,.1,0],dg:[2,.1,0],centigram:[2,.01,0],centigrams:[2,.01,0],cg:[2,.01,0],milligram:[2,.001,0],milligrams:[2,.001,0],mg:[2,.001,0],microgram:[2,1e-6,0],micrograms:[2,1e-6,0],µg:[2,1e-6,0],nanogram:[2,1e-9,0],nanograms:[2,1e-9,0],ng:[2,1e-9,0],picogram:[2,1e-12,0],picograms:[2,1e-12,0],pg:[2,1e-12,0],femtogram:[2,1e-15,0],femtograms:[2,1e-15,0],fg:[2,1e-15,0],attogram:[2,1e-18,0],attograms:[2,1e-18,0],ag:[2,1e-18,0],zeptogram:[2,1e-21,0],zeptograms:[2,1e-21,0],zg:[2,1e-21,0],yoctogram:[2,1e-24,0],yoctograms:[2,1e-24,0],yg:[2,1e-24,0],pound:[2,mr,0],pounds:[2,mr,0],lb:[2,mr,0],stone:[2,14*mr,0],stones:[2,14*mr,0],st:[2,14*mr,0],ounce:[2,28.349523125,0],ounces:[2,28.349523125,0],oz:[2,28.349523125,0],"℥":[2,28.349523125,0],"short ton":[2,907184.74,0],"short tons":[2,907184.74,0],"us ton":[2,907184.74,0],"us tons":[2,907184.74,0],"long ton":[2,2240*mr,0],"long tons":[2,2240*mr,0],"imperial ton":[2,2240*mr,0],"imperial tons":[2,2240*mr,0],"displacement ton":[2,2240*mr,0],"displacement tons":[2,2240*mr,0],pascal:[3,1,0],pascals:[3,1,0],Pa:[3,1,0],femtopascal:[3,1e-15,0],femtopascals:[3,1e-15,0],fPa:[3,1e-15,0],picopascal:[3,1e-12,0],picopascals:[3,1e-12,0],pPa:[3,1e-12,0],nanopascal:[3,1e-9,0],nanopascals:[3,1e-9,0],nPa:[3,1e-9,0],micropascal:[3,1e-6,0],micropascals:[3,1e-6,0],μPa:[3,1e-6,0],millipascal:[3,.001,0],millipascals:[3,.001,0],mPa:[3,.001,0],centipascal:[3,.01,0],centipascals:[3,.01,0],cPa:[3,.01,0],decipascal:[3,.1,0],decipascals:[3,.1,0],dPa:[3,.1,0],decapascal:[3,10,0],decapascals:[3,10,0],daPa:[3,10,0],hectopascal:[3,100,0],hectopascals:[3,100,0],hPa:[3,100,0],kilopascal:[3,1e3,0],kilopascals:[3,1e3,0],kPa:[3,1e3,0],megapascal:[3,1e6,0],megapascals:[3,1e6,0],MPa:[3,1e6,0],gigapascal:[3,1e9,0],gigapascals:[3,1e9,0],GPa:[3,1e9,0],terapascal:[3,1e12,0],terapascals:[3,1e12,0],TPa:[3,1e12,0],petapascal:[3,1e15,0],petapascals:[3,1e15,0],PPa:[3,1e15,0],bar:[3,1e5,0],femtobar:[3,1e-15,0],femtobars:[3,1e-15,0],fbar:[3,1e-15,0],picobar:[3,1e-12,0],picobars:[3,1e-12,0],pbar:[3,1e-12,0],nanobar:[3,1e-9,0],nanobars:[3,1e-9,0],nbar:[3,1e-9,0],microbar:[3,1e-6,0],microbars:[3,1e-6,0],μbar:[3,1e-6,0],millibar:[3,.001,0],millibars:[3,.001,0],mbar:[3,.001,0],centibar:[3,.01,0],centibars:[3,.01,0],cbar:[3,.01,0],decibar:[3,.1,0],decibars:[3,.1,0],dbar:[3,.1,0],decabar:[3,10,0],decabars:[3,10,0],dabar:[3,10,0],hectobar:[3,100,0],hectobars:[3,100,0],hbar:[3,100,0],kilobar:[3,1e3,0],kilobars:[3,1e3,0],kbar:[3,1e3,0],megabar:[3,1e6,0],megabars:[3,1e6,0],Mbar:[3,1e6,0],gigabar:[3,1e9,0],gigabars:[3,1e9,0],Gbar:[3,1e9,0],terabar:[3,1e12,0],terabars:[3,1e12,0],Tbar:[3,1e12,0],petabar:[3,1e15,0],petabars:[3,1e15,0],Pbar:[3,1e15,0],torr:[3,101325/760,0],millitorr:[3,101325/760/1e3,0],millitorrs:[3,101325/760/1e3,0],mTorr:[3,101325/760/1e3,0],atmosphere:[3,101325,0],atmospheres:[3,101325,0],atm:[3,101325,0],kelvin:[4,1,0],kelvins:[4,1,0],K:[4,1,0],fahrenheit:[4,5/9,273.15-32],F:[4,5/9,273.15-32],celsius:[4,1,273.15],C:[4,1,273.15],rankine:[4,5/9,0],R:[4,5/9,0],delisle:[4,2/-3,373.15],De:[4,2/-3,373.15],second:[5,1,0],seconds:[5,1,0],s:[5,1,0],century:[5,3155695200,0],centuries:[5,3155695200,0],c:[5,3155695200,0],day:[5,86400,0],days:[5,86400,0],d:[5,86400,0],decade:[5,315569520,0],decades:[5,315569520,0],dec:[5,315569520,0],fortnight:[5,1209600,0],fortnights:[5,1209600,0],fn:[5,1209600,0],helek:[5,3+1/3,0],halakim:[5,3+1/3,0],hour:[5,3600,0],hours:[5,3600,0],h:[5,3600,0],jiffy:[5,1/60,0],jiffies:[5,1/60,0],j:[5,1/60,0],ja:[5,.01,0],ke:[5,900,0],millennium:[5,31556952e3,0],millennia:[5,31556952e3,0],milliday:[5,86.4,0],millidays:[5,86.4,0],md:[5,86.4,0],minute:[5,60,0],minutes:[5,60,0],min:[5,60,0],moment:[5,90,0],moments:[5,90,0],month:[5,2592e3,0],months:[5,2592e3,0],mo:[5,2592e3,0],shake:[5,1e-8,0],shakes:[5,1e-8,0],sigma:[5,1e-6,0],sigmas:[5,1e-6,0],svedberg:[5,1e-13,0],svedbergs:[5,1e-13,0],S:[5,1e-13,0],week:[5,604800,0],weeks:[5,604800,0],wk:[5,604800,0],year:[5,31536e3,0],years:[5,31536e3,0],a:[5,31536e3,0],y:[5,31536e3,0],yr:[5,31536e3,0],petasecond:[5,1e15,0],petaseconds:[5,1e15,0],Ps:[5,1e15,0],terasecond:[5,1e12,0],teraseconds:[5,1e12,0],Ts:[5,1e12,0],gigasecond:[5,1e9,0],gigaseconds:[5,1e9,0],Gs:[5,1e9,0],megasecond:[5,1e6,0],megaseconds:[5,1e6,0],Ms:[5,1e6,0],kilosecond:[5,1e3,0],kiloseconds:[5,1e3,0],ks:[5,1e3,0],hectosecond:[5,100,0],hectoseconds:[5,100,0],hs:[5,100,0],decasecond:[5,10,0],decaseconds:[5,10,0],das:[5,10,0],decisecond:[5,.1,0],deciseconds:[5,.1,0],ds:[5,.1,0],centisecond:[5,.01,0],centiseconds:[5,.01,0],cs:[5,.01,0],millisecond:[5,.001,0],milliseconds:[5,.001,0],ms:[5,.001,0],microsecond:[5,1e-7,0],microseconds:[5,1e-7,0],μs:[5,1e-7,0],nanosecond:[5,1e-9,0],nanoseconds:[5,1e-9,0],ns:[5,1e-9,0],picosecond:[5,1e-12,0],picoseconds:[5,1e-12,0],ps:[5,1e-12,0],femtosecond:[5,1e-15,0],femtoseconds:[5,1e-15,0],fs:[5,1e-15,0],"cubic meter":[6,1,0],"cubic meters":[6,1,0],"cubic metre":[6,1,0],"cubic metres":[6,1,0],"m³":[6,1,0],m3:[6,1,0],"cubic kilometer":[6,1e3,0],"cubic kilometre":[6,1e3,0],"cubic kilometers":[6,1e3,0],"cubic kilometres":[6,1e3,0],"km³":[6,1e3,0],km3:[6,1e3,0],"cubic hectometer":[6,1e6,0],"cubic hectometre":[6,1e6,0],"cubic hectometers":[6,1e6,0],"cubic hectometres":[6,1e6,0],"hm³":[6,1e6,0],hm3:[6,1e6,0],"cubic decameter":[6,10,0],"cubic decametre":[6,10,0],"cubic decameters":[6,10,0],"cubic decametres":[6,10,0],"dam³":[6,10,0],dam3:[6,10,0],"cubic decimeter":[6,.1,0],"cubic decimetre":[6,.1,0],"cubic decimeters":[6,.1,0],"cubic decimetres":[6,.1,0],"dm³":[6,.1,0],dm3:[6,.1,0],"cubic centimeter":[6,1e-6,0],"cubic centimetre":[6,1e-6,0],"cubic centimeters":[6,1e-6,0],"cubic centimetres":[6,1e-6,0],"cm³":[6,1e-6,0],cc:[6,1e-6,0],cm3:[6,1e-6,0],"cubic millimeter":[6,.001,0],"cubic millimetre":[6,.001,0],"cubic millimeters":[6,.001,0],"cubic millimetres":[6,.001,0],"mm³":[6,.001,0],mm3:[6,.001,0],gigaliter:[6,1e6,0],gigalitre:[6,1e6,0],gigaliters:[6,1e6,0],gigalitres:[6,1e6,0],Gl:[6,1e6,0],GL:[6,1e6,0],megaliter:[6,1e3,0],megalitre:[6,1e3,0],megaliters:[6,1e3,0],megalitres:[6,1e3,0],Ml:[6,1e3,0],ML:[6,1e3,0],kiloliter:[6,1,0],kilolitre:[6,1,0],kiloliters:[6,1,0],kilolitres:[6,1,0],kl:[6,1,0],kL:[6,1,0],hectoliter:[6,.1,0],hectolitre:[6,.1,0],hectoliters:[6,.1,0],hectolitres:[6,.1,0],hl:[6,.1,0],hL:[6,.1,0],decaliter:[6,.01,0],decalitre:[6,.01,0],decaliters:[6,.01,0],decalitres:[6,.01,0],dal:[6,.01,0],daL:[6,.01,0],liter:[6,.001,0],litre:[6,.001,0],liters:[6,.001,0],litres:[6,.001,0],l:[6,.001,0],L:[6,.001,0],deciliter:[6,1e-4,0],decilitre:[6,1e-4,0],deciliters:[6,1e-4,0],decilitres:[6,1e-4,0],dl:[6,1e-4,0],dL:[6,1e-4,0],centiliter:[6,1e-5,0],centilitre:[6,1e-5,0],centiliters:[6,1e-5,0],centilitres:[6,1e-5,0],cl:[6,1e-5,0],cL:[6,1e-5,0],milliliter:[6,1e-6,0],millilitre:[6,1e-6,0],milliliters:[6,1e-6,0],millilitres:[6,1e-6,0],ml:[6,1e-6,0],mL:[6,1e-6,0],microliter:[6,1e9,0],microlitre:[6,1e9,0],microliters:[6,1e9,0],microlitres:[6,1e9,0],μl:[6,1e9,0],μL:[6,1e9,0],stere:[6,1,0],steres:[6,1,0],"cubic mile":[6,4200,0],"cubic miles":[6,4200,0],"cu mi":[6,4200,0],cumi:[6,4200,0],mi3:[6,4200,0],"acre-foot":[6,1233.48183754752,0],"acre-feet":[6,1233.48183754752,0],"ac⋅ft":[6,1233.48183754752,0],"ac ft":[6,1233.48183754752,0],"cubic yard":[6,.76,0],"cubic yards":[6,.76,0],"cu yd":[6,.76,0],cuyd:[6,.76,0],yd3:[6,.76,0],"cubic foot":[6,.028,0],"cubic feet":[6,.028,0],"cu ft":[6,.028,0],cuft:[6,.028,0],ft3:[6,.028,0],cufoot:[6,.028,0],foot3:[6,.028,0],"board foot":[6,.002359737,0],"board feet":[6,.002359737,0],"cubic inch":[6,16387064e-12,0],"cubic inches":[6,16387064e-12,0],"cu in":[6,16387064e-12,0],cuin:[6,16387064e-12,0],in3:[6,16387064e-12,0],"measurement ton":[6,1.133,0],"measurement tons":[6,1.133,0],MTON:[6,1.133,0],"imperial barrel":[6,.16,0],"imperial barrels":[6,.16,0],"imp bbl":[6,.16,0],impbbl:[6,.16,0],kilderkin:[6,.08318,0],kilderkins:[6,.08318,0],firkin:[6,.041,0],firkins:[6,.041,0],"imperial bushel":[6,.03636872,0],"imperial bushels":[6,.03636872,0],"imp bsh":[6,.03636872,0],"imp bu":[6,.03636872,0],impbsh:[6,.03636872,0],impbu:[6,.03636872,0],"imperial peck":[6,.00909218,0],"imperial pecks":[6,.00909218,0],pk:[6,.00909218,0],imppk:[6,.00909218,0],"imperial quart":[6,.0011365225,0],"imperial quarts":[6,.0011365225,0],"imp qt":[6,.0011365225,0],impqt:[6,.0011365225,0],"imperial gallon":[6,.00454609,0],"imperial gallons":[6,.00454609,0],"imp gal":[6,.00454609,0],impgal:[6,.00454609,0],"imperial pint":[6,.00056826125,0],"imperial pints":[6,.00056826125,0],"imp pt":[6,.00056826125,0],imppt:[6,.00056826125,0],gill:[6,.0001420653125,0],gills:[6,.0001420653125,0],gi:[6,.0001420653125,0],impgi:[6,.0001420653125,0],"imperial fluid ounce":[6,284130625e-13,0],"imperial fluid ounces":[6,284130625e-13,0],"imp fl oz":[6,284130625e-13,0],impoz:[6,284130625e-13,0],"US barrel":[6,.164,0],"US barrels":[6,.164,0],"US bbl":[6,.164,0],"U.S. bbl":[6,.164,0],USbbl:[6,.164,0],usbbl:[6,.164,0],"U.S.bbl":[6,.164,0],barrel:[6,1/6.2898,0],barrels:[6,1/6.2898,0],bbl:[6,1/6.2898,0],oilbbl:[6,1/6.2898,0],"US beer barrel":[6,.117,0],"US beer barrels":[6,.117,0],USbeerbbl:[6,.117,0],usbeerbbl:[6,.117,0],"U.S.beerbbl":[6,.117,0],"US gallon":[6,1/264.1721,0],"US gallons":[6,1/264.1721,0],"US gal":[6,1/264.1721,0],"U.S. gal":[6,1/264.1721,0],USgal:[6,1/264.1721,0],usgal:[6,1/264.1721,0],"U.S.gal":[6,1/264.1721,0],"US quart":[6,.000946352946,0],"US quarts":[6,.000946352946,0],"US qt":[6,.000946352946,0],"U.S. qt":[6,.000946352946,0],USqt:[6,.000946352946,0],usqt:[6,.000946352946,0],"U.S.qt":[6,.000946352946,0],"US pint":[6,.000473176473,0],"US pints":[6,.000473176473,0],"US pt":[6,.000473176473,0],"U.S. pt":[6,.000473176473,0],USpt:[6,.000473176473,0],uspt:[6,.000473176473,0],"U.S.pt":[6,.000473176473,0],"US gill":[6,118e-6,0],"US gills":[6,118e-6,0],USgi:[6,118e-6,0],usgi:[6,118e-6,0],"U.S.gi":[6,118e-6,0],"US fluid ounce":[6,295735295625e-16,0],"US fluid ounces":[6,295735295625e-16,0],"US fl oz":[6,295735295625e-16,0],USoz:[6,295735295625e-16,0],USflox:[6,295735295625e-16,0],usoz:[6,295735295625e-16,0],usfloz:[6,295735295625e-16,0],"U.S.oz":[6,295735295625e-16,0],"U.S.floz":[6,295735295625e-16,0],"US dry barrel":[6,.12,0],"US dry barrels":[6,.12,0],"US dry bbl":[6,.12,0],"U.S. dry bbl":[6,.12,0],USdrybbl:[6,.12,0],usdrybbl:[6,.12,0],drybbl:[6,.12,0],"U.S.drybbl":[6,.12,0],"US bushel":[6,.0352391,0],"US bushels":[6,.0352391,0],"US bsh":[6,.0352391,0],"U.S. bsh":[6,.0352391,0],USbsh:[6,.0352391,0],usbsh:[6,.0352391,0],"U.S.bsh":[6,.0352391,0],"US bu":[6,.0352391,0],"U.S. bu":[6,.0352391,0],USbu:[6,.0352391,0],usbu:[6,.0352391,0],"U.S.bu":[6,.0352391,0],"US kenning":[6,.12,0],"US kennings":[6,.12,0],"U.S. kenning":[6,.12,0],USkenning:[6,.12,0],"U.S.kenning":[6,.12,0],uskenning:[6,.12,0],"US peck":[6,.00909218,0],"US pk":[6,.00909218,0],"U.S. pk":[6,.00909218,0],Uspk:[6,.00909218,0],uspk:[6,.00909218,0],"U.S.pk":[6,.00909218,0],"US dry gallon":[6,.00440488377086,0],"US dry gal":[6,.00440488377086,0],"U.S. dry gal":[6,.00440488377086,0],USdrygal:[6,.00440488377086,0],usdrygal:[6,.00440488377086,0],drygal:[6,.00440488377086,0],"U.S.drygal":[6,.00440488377086,0],"US dry quart":[6,.000946352946,0],"US dry qt":[6,.000946352946,0],"U.S. dry qt":[6,.000946352946,0],USdryqt:[6,.000946352946,0],usdryqt:[6,.000946352946,0],dryqt:[6,.000946352946,0],"U.S.dryqt":[6,.000946352946,0],"US dry pint":[6,33.6003125,0],"US dry pt":[6,33.6003125,0],"U.S. dry pt":[6,33.6003125,0],USdrypt:[6,33.6003125,0],"U.S.drypt":[6,33.6003125,0],usdrypt:[6,33.6003125,0],drypt:[6,33.6003125,0],radian:[7,1,0],radians:[7,1,0],rad:[7,1,0],rads:[7,1,0],r:[7,1,0],turn:[7,2*Math.PI,0],turns:[7,2*Math.PI,0],degree:[7,Math.PI/180,0],degrees:[7,Math.PI/180,0],deg:[7,Math.PI/180,0],degs:[7,Math.PI/180,0],"°":[7,Math.PI/180,0],gradian:[7,Math.PI/200,0],gradians:[7,Math.PI/200,0],gon:[7,Math.PI/200,0],gons:[7,Math.PI/200,0],grad:[7,Math.PI/200,0],grads:[7,Math.PI/200,0],grade:[7,Math.PI/200,0],grades:[7,Math.PI/200,0],newton:[8,1,0],newtons:[8,1,0],N:[8,1,0],dyne:[8,1e-5,0],dynes:[8,1e-5,0],dyn:[8,1e-5,0],"kilogram-force":[8,9.80665,0],kgf:[8,9.80665,0],kilopond:[8,9.80665,0],kiloponds:[8,9.80665,0],kp:[8,9.80665,0],"pound of force":[8,4.448222,0],"pound-force":[8,4.448222,0],lbf:[8,4.448222,0],poundal:[8,.138255,0],poundals:[8,.138255,0],pdl:[8,.138255,0]};const Nr=function(t){return{from:function(e){return{to:function(a){var i=zr[e],n=zr[a];if(i[0]!==n[0])throw new Error;var s=i[1]/n[1];return"bigint"==typeof t?t*BigInt(s)+(BigInt(i[2])-BigInt(n[2])):t*s+(i[2]-n[2])}}}}};let xr=window[lr];class Dr{constructor(t,e,a){this.map=t,this.target=e,this.options={...me,...a},this.map.on("should-close-popup",(t=>{this.options.permanent||t!=this&&this.close()}))}get displayMarkerTooltips(){return this.map.plugin.data.displayMarkerTooltips}get displayOverlayTooltips(){return this.map.plugin.data.displayOverlayTooltips}canShowTooltip(t,e){const a=t instanceof Ec?this.displayMarkerTooltips:this.displayOverlayTooltips;return"always"===e||!("hover"!==e||!a)||"never"!==e&&a}onZoomAnim(){this.target instanceof xr.Circle&&(this.leafletInstance.options.offset=new xr.Point(0,-1*this.target.getElement().getBoundingClientRect().height/2+10),this.leafletInstance.update())}onTimeOut(){this.handlerTarget instanceof xr.LatLng||this.handlerTarget instanceof xr.Layer||(this.handlerTarget.leafletInstance.off("mouseenter",this.onMouseOver),this.handlerTarget.leafletInstance.off("mouseout",this.onMouseOut)),this.handlerTarget instanceof xr.Layer&&this.handlerTarget.off("mouseout",this.onMouseOut).off("mouseenter",this.onMouseOver),this.leafletInstance.getElement().removeEventListener("mouseenter",this.onMouseOver),this.leafletInstance.getElement().removeEventListener("mouseleave",this.onMouseOut),this.map.leafletInstance.off("zoom",this.onZoomAnim),this.options.permanent||this.close()}onMouseOut(){clearTimeout(this._timeoutHandler),this.options.permanent||(this._timeoutHandler=setTimeout((()=>this.onTimeOut()),500))}onMouseOver(){clearTimeout(this._timeoutHandler)}setTarget(t){return this.target=t,this.leafletInstance=this.getPopup(),this}open(t,e){if("tooltip"in this.target&&!this.canShowTooltip(this.target))return;if(this.leafletInstance||(this.leafletInstance=this.getPopup()),this._timeoutHandler&&clearTimeout(this._timeoutHandler),this.leafletInstance.isOpen())return this.leafletInstance.setContent(t),void(this.target instanceof xr.Polyline&&this.leafletInstance.setLatLng(this.target.getLatLngs()[1]));let a;this.map.trigger("should-close-popup",this),this.target instanceof xr.Polyline&&this.target.on("remove",(()=>this.close())),this.handlerTarget=e??this.target,this.leafletInstance&&this.leafletInstance.isOpen()&&(this.close(),this.target instanceof xr.Layer&&this.target.closePopup()),this.leafletInstance.setContent(t),this.map.leafletInstance.on("popupopen",(()=>{this.options.permanent||(a=this.leafletInstance.getElement(),a.addEventListener("mouseenter",this.onMouseOver.bind(this)),a.addEventListener("mouseleave",this.onMouseOut.bind(this)))})),this.map.leafletInstance.addLayer(this.leafletInstance),this.handlerTarget instanceof Tc&&this.map.leafletInstance.on("zoom",this.onZoomAnim.bind(this)),this.options.permanent||(this.handlerTarget instanceof xr.LatLng?this._timeoutHandler=setTimeout((()=>{a.removeEventListener("mouseenter",this.onMouseOver),a.removeEventListener("mouseleave",this.onMouseOut),this.close()}),1e3):this.handlerTarget instanceof xr.Layer?this.handlerTarget.on("mouseout",this.onMouseOut.bind(this)).on("mouseenter",this.onMouseOver.bind(this)):this.handlerTarget.leafletInstance.on("mouseout",this.onMouseOut.bind(this)).on("mouseenter",this.onMouseOver.bind(this)))}close(){this.leafletInstance&&(this.target instanceof Ec&&"always"===this.target.tooltip||this.leafletInstance.removeFrom(this.map.leafletInstance))}getPopup(){return this.leafletInstance&&this.leafletInstance.isOpen()&&this.close(),this.buildPopup()}buildPopup(){return this.target instanceof xr.LatLng?xr.popup(this.options).setLatLng(this.target):this.target instanceof xr.Polyline?xr.popup(this.options).setLatLng(this.target.getLatLngs()[1]):this.target instanceof xr.Marker?xr.popup({...this.options,offset:new xr.Point(0,-1*this.target.getElement().getBoundingClientRect().height/2)}).setLatLng(this.target.getLatLng()):this.target instanceof Tc?xr.popup({...this.options,offset:new xr.Point(0,-1*this.target.leafletInstance.getElement().getBoundingClientRect().height/2+10)}).setLatLng(this.target.leafletInstance.getLatLng()):xr.popup({...this.options,offset:new xr.Point(0,-1*this.target.leafletInstance.getElement().getBoundingClientRect().height/2)}).setLatLng(this.target.leafletInstance.getLatLng())}isOpen(){return this.leafletInstance&&this.leafletInstance.isOpen()}setContent(t){this.leafletInstance||(this.leafletInstance=this.getPopup()),this.leafletInstance.setContent(t)}setLatLng(t){this.leafletInstance||(this.leafletInstance=this.getPopup()),this.leafletInstance.setLatLng(t)}}function Vr(t,e,a){return new Dr(t,e,a)}const Mr=window[lr];class Sr extends Mr.Control{constructor(t,e){super(t),this.map=e,this.popups=[]}get lines(){return this.map.previousDistanceLines}getPopup(){return Vr(this.map,null,{permanent:!0,className:"leaflet-marker-link-popup",autoClose:!1,closeButton:!1,closeOnClick:!1,autoPan:!1})}initEvents(){this.controlEl.onmouseenter=this.onMouseEnter.bind(this),this.controlEl.onclick=this.onClick.bind(this),this.controlEl.onmouseleave=this.onMouseLeave.bind(this)}onMouseEnter(){if(this.lines.length){const t=this.lines[0].getLatLngs()[0],e=this.getPopup().setTarget(this.lines[0].getLatLngs()[0]);e.open(`[${t.lat.toLocaleString("en-US",{maximumFractionDigits:4})}, ${t.lng.toLocaleString("en-US",{maximumFractionDigits:4})}]`),this.popups.push(e),this.map.leafletInstance.openPopup(e.leafletInstance);for(let t=0;tthis.onClick(t)))}onAdd(t){return this.leafletInstance=t,kr.DomEvent.disableClickPropagation(this.controlEl),kr.DomEvent.disableScrollPropagation(this.controlEl),this.added(),this.controlEl}added(){}disable(){this.enabled&&(this.controlEl.addClass("disabled"),this.enabled=!1)}enable(){this.enabled||(this.controlEl.removeClass("disabled"),this.enabled=!0)}setTooltip(t){this.tooltip=t,this.controlEl.children[0].setAttrs({"aria-label":this.tooltip})}removeTooltip(){this.tooltip=null,this.controlEl.children[0].removeAttribute("aria-label")}setIcon(t){this.iconEl.empty(),this.icon=t,this.iconEl.appendChild(Ut({prefix:"fas",iconName:this.icon}).node[0])}}const Ir=window[lr];class Or extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.map.on("markers-updated",(()=>{this.map.markers.length||this.map.overlays.length?this.enable():this.disable()}))}onClick(t){this.expand()}added(){this.section=this.controlEl.createEl("section",{cls:this.cls+"-list"}),Ir.DomEvent.disableClickPropagation(this.controlEl),Ir.DomEvent.disableScrollPropagation(this.controlEl),this.iconEl.dataset.draggable="false",this.map.leafletInstance.on("click",this.collapse,this),Ir.DomEvent.on(this.controlEl,"mouseenter",(()=>this.expand())),Ir.DomEvent.on(this.controlEl,"mouseleave",(()=>this.collapse())),t.Platform.isMobile?Ir.DomEvent.on(this.controlEl,"click",this.expand,this):Ir.DomEvent.on(this.controlEl,"focus",this.expand,this)}expand(){if(!this.enabled)return;if(this.expanded)return;this.expanded=!0,Ir.DomUtil.addClass(this.controlEl,"expanded"),this.draw(),this.section.style.height=null;const t=this.leafletInstance.getSize().y-(this.controlEl.offsetTop+50);return t{t.stopPropagation(),this.map.markerIcons.forEach((({type:t})=>{this.show(t)})),this.update()},t.createEl("button",{text:Ce("None")}).onclick=t=>{t.stopPropagation(),this.map.markerIcons.forEach((({type:t})=>{this.hide(t)})),this.update()};const e=this.section.createEl("div","input-container");for(let[t,a]of this.map.markerIcons.entries())if(this.map.currentGroup.markers[t]&&this.map.currentGroup.markers[t].getLayers().length){const i=e.createEl("div","input-item"),n=Ne(),s=i.createEl("input",{attr:{id:"leaflet-control-expandable-item-label-"+n,...this.map.displaying.get(t)?{checked:!0}:{}},type:"checkbox"}),r=i.createEl("label",{attr:{for:"leaflet-control-expandable-item-label-"+n}});r.createDiv({cls:"leaflet-control-expandable-icon"}).innerHTML=a.html,r.createDiv({text:t[0].toUpperCase()+t.slice(1).toLowerCase()}),s.addEventListener("click",(e=>{s.checked?this.show(t):this.map.displaying.get(t)&&this.hide(t),this.map.displaying.set(t,s.checked)})),this.inputs.set(t,s)}if(this.map.currentGroup.markers.custom&&this.map.currentGroup.markers.custom.getLayers()?.length){const t=e.createEl("div","input-item"),a=Ne(),i=t.createEl("input",{attr:{id:"leaflet-control-expandable-item-label-"+a,...this.map.displaying.get("custom")?{checked:!0}:{}},type:"checkbox"});t.createEl("label",{attr:{for:"leaflet-control-expandable-item-label-"+a}}).createDiv({text:"Custom"}),i.addEventListener("click",(t=>{i.checked?this.show("custom"):this.map.displaying.get("custom")&&this.hide("custom"),this.map.displaying.set("custom",i.checked)})),this.inputs.set("custom",i)}}update(){for(let[t,e]of this.inputs)e.checked=this.map.displaying.get(t)}show(t){this.map.currentGroup.markers[t].addTo(this.leafletInstance),this.map.overlays.filter((e=>e.type===t)).forEach((t=>t.leafletInstance.addTo(this.map.currentGroup.group))),this.map.sortOverlays(),this.map.displaying.set(t,!0)}hide(t){this.map.currentGroup.markers[t].remove(),this.map.overlays.filter((e=>e.type===t)).forEach((t=>t.leafletInstance.remove())),this.map.displaying.set(t,!1)}}class Er extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.map.leafletInstance.on("zoomend zoom zoomstart",(()=>{this.controlEl.setAttr("aria-label",`Reset Zoom\nCurrent: ${this.map.leafletInstance.getZoom()}`)}))}onAdd(t){return this.controlEl.setAttr("aria-label",`Reset Zoom\nCurrent: ${this.map.leafletInstance.getZoom()}`),this.controlEl}onClick(t){this.map.resetZoom()}}window[lr];class Xr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.map.on("markers-updated",(()=>{this.map.markers.length?this.enable():this.disable()}))}onClick(t){this.enabled&&this.map.zoomAllMarkers()}}const Tr=window[lr];class Pr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}onClick(t){this.target||this.map.leafletInstance.fitBounds(this.map.gpxLayer.getBounds())}added(){this.controlEl.addClass("leaflet-control-gpx"),this.section=this.controlEl.createEl("section",{cls:this.cls+"-list"}),Tr.DomEvent.disableClickPropagation(this.controlEl),Tr.DomEvent.disableScrollPropagation(this.controlEl),this.iconEl.dataset.draggable="false"}setTarget(t){this.target&&this.removeTarget(),this.target=t,this.target.targeted=!0,this.removeTooltip(),this.expand()}removeTarget(){this.target.deselect(),this.target=null,this.collapse(),this.setTooltip(Ce("Zoom to %1 GPX Track%2",`${this.map.gpxData.length}`,1==this.map.gpxData.length?"":"s"))}expand(){if(!this.target)return;if(!this.target.parsed)return;this.expanded=!0,Tr.DomUtil.addClass(this.controlEl,"expanded"),this.draw(),this.section.style.height=null;const t=this.leafletInstance.getSize().y-(this.controlEl.offsetTop+50);return t{i||(i=!0,e=this.section.createDiv("gpx-data"),a=this.section.createEl("div","input-container"),a.createSpan({text:Ce("Heatlines")}))},s="imperial"===this.map.plugin.unitSystemForUnit(this.map.unit)?"mi":"km";if(this.target.data.length&&(n(),e.createDiv("data-item").createSpan({text:`Distance: ${ye(Nr(this.target.data.length).from("m").to(s),2)}${s}`})),this.target.flags.elevation){n();const t=e.createDiv("data-item"),i="imperial"===this.map.plugin.unitSystemForUnit(this.map.unit)?"ft":"m";t.createSpan({text:`${Ce("Elevation")}:`});const s=t.createDiv("gpx-elevation"),r=Nr(this.target.elevation.max).from("m").to(i),c=s.createDiv("elevation-gain");c.appendChild(Ut(_t("angle-up")).node[0]),c.createSpan({text:`${ye(r,0)}${i}`});const o=Nr(this.target.elevation.min).from("m").to(i),l=s.createDiv("elevation-loss");l.appendChild(Ut(_t("angle-down")).node[0]),l.createSpan({text:`${ye(o,0)}${i}`});const h=a.createDiv("input-item"),u=h.createEl("input",{attr:{id:"leaflet-gpx-control-ele","data-which":"ele",name:"leaflet-gpx-control-checkbox-group",..."ele"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});h.createEl("label",{attr:{for:"leaflet-gpx-control-ele"},text:Ce("Elevation")}),u.onclick=t=>{this.trySwitch("ele")}}if(this.target.data.flags.speed){n();let t,i,s=this.target.speed.avg;switch(this.map.plugin.unitSystemForUnit(this.map.unit)){case"metric":s=60*Nr(s).from("m").to("km")*60,t="km/h",i="km";break;case"imperial":s=60*Nr(s).from("m").to("mi")*60,t="mph",i="mi"}e.createDiv("data-item").createSpan({text:`${Ce("Speed")}: ${ye(s,0)} ${t}`}),e.createDiv("data-item").createSpan({text:`${Ce("Pace")}: ${ye(60/s,0)}"/${i}`});const r=a.createDiv("input-item"),c=r.createEl("input",{attr:{id:"leaflet-gpx-control-speed","data-which":"speed",name:"leaflet-gpx-control-checkbox-group",..."speed"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});r.createEl("label",{attr:{for:"leaflet-gpx-control-speed"},text:Ce("Speed")}),c.onclick=t=>{this.trySwitch("speed")}}if(this.target.flags.cad){n(),e.createDiv("data-item").createSpan({text:`${Ce("Cadence")}: ${this.target.cad.avg} ${Ce("spm")}`});const t=a.createDiv("input-item"),i=t.createEl("input",{attr:{id:"leaflet-gpx-control-cad","data-which":"cad",name:"leaflet-gpx-control-checkbox-group",..."cad"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});t.createEl("label",{attr:{for:"leaflet-gpx-control-cad"},text:Ce("Cadence")}),i.onclick=t=>{this.trySwitch("cad")}}if(this.target.flags.hr){e.createDiv("data-item").createSpan({text:`${Ce("Heart Rate")}: ${this.target.hr.avg}`});const t=a.createDiv("input-item"),i=t.createEl("input",{attr:{id:"leaflet-gpx-control-hr","data-which":"hr",name:"leaflet-gpx-control-checkbox-group",..."hr"==this.target.displaying?{checked:!0}:{}},type:"checkbox"});t.createEl("label",{attr:{for:"leaflet-gpx-control-hr"},text:Ce("Heart Rate")}),i.onclick=t=>{this.trySwitch("hr")}}const r=this.section.createDiv("control-buttons");new t.ExtraButtonComponent(r).setIcon(Yt).setTooltip(Ce("Zoom to GPX")).onClick((()=>{this.map.leafletInstance.fitBounds(this.target.leafletInstance.getBounds())})),new t.ExtraButtonComponent(r).setIcon("cross-in-box").setTooltip(Ce("Deselect")).onClick((()=>{this.removeTarget()}))}trySwitch(t){this.target.displaying===t?this.target.switch("default"):this.target.switch(t),this.draw()}}class Fr extends t.Modal{constructor(t){super(t.app),this.plugin=t}onOpen(){this.containerEl.addClass("leaflet-edit-parameters");const e=new t.TextAreaComponent(this.contentEl);e.setValue(JSON.stringify(this.plugin.data.mapViewParameters,null,4)),e.inputEl.setAttr("style","width: 100%; min-height: 500px;");const a=this.contentEl.createDiv("context-buttons");new t.ButtonComponent(a).setIcon("checkmark").setTooltip(Ce("Save")).onClick((async()=>{try{this.plugin.data.mapViewParameters=JSON.parse(e.inputEl.value),await this.plugin.saveSettings(),this.plugin.view&&this.plugin.view.update(),this.close()}catch(e){new t.Notice(Ce("There was an error parsing the JSON.")+`\n\n${e.message}`)}})),new t.ExtraButtonComponent(a).setIcon("cross").setTooltip(Ce("Cancel")).onClick((()=>this.close()))}onClose(){}}class Gr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}onClick(t){const e=new Fr(this.map.plugin);e.onClose=()=>{},e.open()}}class Kr extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}async onClick(t){this.map.plugin.data.mapViewParameters=this.map.renderer.params,this.map.trigger("should-save")}}class Ur extends Qr{constructor(t){super({icon:"check",cls:"leaflet-control-complete",tooltip:"Finish"},t.map.leafletInstance),this.drawControl=t}onClick(t){t.stopPropagation(),this.drawControl.controller.newShape(this.drawControl.controller.shape.newInstance())}}class qr extends Qr{constructor(t){super({icon:"undo-alt",cls:"leaflet-control-undo",tooltip:"Undo"},t.map.leafletInstance),this.drawControl=t}onClick(t){t.stopPropagation(),this.drawControl.controller.shape.undo()}}class jr extends Qr{constructor(t){super({icon:"times-circle",cls:"leaflet-control-cancel",tooltip:"Cancel"},t.map.leafletInstance),this.drawControl=t}onClick(t){t.stopPropagation(),this.drawControl.parent.stopDrawingContext()}}class Yr extends Qr{constructor(t,e){super(t,e.map.leafletInstance),this.parent=e,this.complete=new Ur(this),this.undo=new qr(this),this.cancel=new jr(this),this.actionsEl=this.controlEl.createDiv("control-actions"),this.draw()}get map(){return this.parent.map}get controller(){return this.parent.controller}onClick(){this.openActions()}openActions(){this.actionsEl.addClass("expanded")}closeActions(){this.actionsEl.removeClass("expanded")}}class Rr extends Yr{constructor(t){super({icon:"circle",cls:"leaflet-control-has-actions leaflet-control-draw-paint",tooltip:Ce("Color")},t),this.fill=new Zr(this),this.pick=new Wr(this),this.iconEl.setAttr("style",`color: ${this.parent.controller.color}`),this.actionsEl.appendChild(this.fill.controlEl),this.actionsEl.appendChild(this.pick.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions()}draw(){}updateColor(t){this.parent.controller.color=t,this.iconEl.setAttr("style",`color: ${this.parent.controller.color}`)}closeActions(){super.closeActions(),this.fill.setActive(!1)}}class Wr extends Qr{constructor(t){super({icon:"palette",cls:"leaflet-control-has-actions leaflet-control-draw-palette",tooltip:Ce("Color")},t.map.leafletInstance),this.drawControl=t,this.input=this.controlEl.createEl("input",{type:"color"}),this.input.oninput=t=>{this.drawControl.updateColor(t.target.value)},this.input.onchange=()=>{this.drawControl.fill.setActive(!0)}}onClick(){this.drawControl.fill.setActive(!1),this.input.click()}}class Zr extends Qr{constructor(t){super({icon:"fill-drip",cls:"leaflet-control-fill-color",tooltip:Ce("Fill Color")},t.map.leafletInstance),this.drawControl=t,this.active=!1}setActive(t){this.active=t,this.drawControl.controller.isColoring=t,t?this.controlEl.addClass("active"):this.controlEl.removeClass("active")}onClick(t){t.stopPropagation(),this.setActive(!this.active)}}var Jr=a(243);class _r extends t.Modal{constructor(t,e){super(t),this.onSubmit=e}onOpen(){const{contentEl:e}=this;e.createEl("h1",{text:Ce("Enter a file name.")}),new t.Setting(e).setName(Ce("File Name")).addText((t=>{t.onChange((t=>this.result=t))})),new t.Setting(e).addButton((t=>{t.setButtonText(Ce("Save")).setCta().onClick((()=>{this.close(),this.onSubmit(this.result)}))}))}onClose(){let{contentEl:t}=this;t.empty()}}class $r extends Qr{constructor(t){super({icon:"save",cls:"leaflet-control-has-actions leaflet-control-save",tooltip:Ce("Export Drawing to GeoJSON")},t.map.leafletInstance),this.parent=t}get map(){return this.parent.map}onClick(t){t.stopPropagation();const{plugin:e}=this.map,a=[];this.map.controller.flatShapes.forEach((t=>{t.leafletInstance instanceof Jr.Polyline&&a.push(t.leafletInstance)}));const i=JSON.stringify(a.map((t=>t.toGeoJSON()))),n=e.app.fileManager.getNewFileParent(e.app.workspace.getActiveFile().path);new _r(e.app,(t=>{e.app.vault.adapter.write(`${n.path}/${t}.json`,i)})).open()}}class tc{get mapLayer(){return this.layer?this.map.mapLayers?.find((({id:t})=>t===this.layer))??this.map.mapLayers[0]:this.map.mapLayers[0]}onShow(){}show(){this.group&&this.group.addLayer(this.leafletInstance),this.onShow()}onHide(){}hide(){this.group&&this.group.removeLayer(this.leafletInstance)}registerForShow(t){this.map.isLayerRendered(this.layer)?t():this.layer?this.map.on("layer-ready-for-features",(e=>{this.layer===e&&t()})):this.map.on("first-layer-ready",(e=>{this.layer=e,t()}))}checkAndAddToMap(){this.registerForShow(this.show.bind(this))}remove(){this.group&&this.group.removeLayer(this.leafletInstance)}}const ec=window[lr];class ac extends dr{constructor(){super({iconSize:new ec.Point(8,8),className:"leaflet-div-icon leaflet-vertex-icon"})}}class ic extends t.Events{constructor(t,e,a,i=Ne()){super(),this.parent=e,this.targets=a,this.id=i,this.selected=!1,this.isBeingHovered=!1,this.vertices=new Set,this.modifierState=!1,this.addMarkerTarget(a?.marker),this.addVertexTargets(...a?.vertices??[]),this.addTargetsById(),this.leafletInstance=new ec.Marker(t,{icon:new ac,draggable:!0,pane:"drawing-markers"}).addTo(this.parent.map.leafletInstance),this.registerDragEvents(),this.vertices.size&&this.vertices.forEach((t=>{t.addVertexTargets(this),t.marker=this.marker}))}incrementLatLng(t){const e=this.latlng.lat+t.lat,a=this.latlng.lng+t.lng;this.leafletInstance.setLatLng(ec.latLng(e,a)),this.marker&&this.marker.setLatLng(ec.latLng(e,a))}getLatLng(){return this.leafletInstance.getLatLng()}setLatLng(t){this.leafletInstance.setLatLng(t),this.parent.redraw(),this.marker&&this.marker.leafletInstance&&this.marker.leafletInstance.setLatLng(t),this.vertices.forEach((e=>e.updateLatLng(t)))}updateLatLng(t){this.leafletInstance.setLatLng(t),this.trigger("drag"),this.parent.redraw()}get latlng(){return this.getLatLng()}addTargetsById(){if(this.targets&&this.targets.vertexIds){let t=this.parent.controller.vertices;for(let e of this.targets.vertexIds){let a=t.find((t=>t.id==e));a&&this.addVertexTargets(a)}}if(this.targets&&this.targets.markerId){const t=this.parent.map.markers.find((t=>t.id==this.targets.markerId));if(!t)return;this.addMarkerTarget(t)}}addMarkerTarget(t,e=!0){t&&(this.marker=t,e&&this.vertices.forEach((t=>t.addMarkerTarget(this.marker,!1))),this.registerMarkerEvents())}addVertexTargets(...t){for(let e of t)e!=this&&(this.vertices.add(e),e.vertices.forEach((t=>this.vertices.add(t)&&t.vertices.add(this))),e.vertices.add(this),e.marker?this.addMarkerTarget(e.marker):this.marker&&(e.addMarkerTarget(this.marker),e.vertices.forEach((t=>t.addMarkerTarget(this.marker)))),e.on("delete",(()=>{this.vertices.delete(e)})));this.vertices.delete(this)}registerDragEvents(){this.leafletInstance.on("drag",((t,e)=>{ec.DomEvent.stopPropagation(t),this.modifierState=t.originalEvent?.getModifierState("Shift")??!1;let a=this.parent.getMousemoveDelta(t.latlng,this.latlng,this.modifierState);this.modifierState||(this.parent.controller.getVertexTargets(this)&&(a=this.parent.controller.getVertexTargets(this).getLatLng()),this.parent.map.markers.find((t=>t.isBeingHovered))&&(a=this.parent.map.markers.find((t=>t.isBeingHovered)).leafletInstance.getLatLng())),this.setLatLng(a),this.trigger("drag")})),this.leafletInstance.on("mouseover",(()=>{this.isBeingHovered=!0})),this.leafletInstance.on("mouseout",(()=>{this.isBeingHovered=!1})),this.leafletInstance.on("mousedown",(t=>{ec.DomEvent.stopPropagation(t),this.selected=!0})),this.leafletInstance.on("mouseup",(t=>{ec.DomEvent.stopPropagation(t),this.selected=!1})),this.leafletInstance.on("dragstart",(()=>{this.selected=!0,this.leafletInstance.setZIndexOffset(-1)})),this.leafletInstance.on("dragend",(t=>{if(ec.DomEvent.stopPropagation(t),this.leafletInstance.setZIndexOffset(0),!this.modifierState){if(this.parent.controller.getVertexTargets(this)){const t=this.parent.controller.getVertexTargets(this);this.addVertexTargets(t)}this.parent.map.markers.find((t=>t.isBeingHovered))&&(this.marker=this.parent.map.markers.find((t=>t.isBeingHovered)),this.registerMarkerEvents())}this.modifierState=!1,this.parent.redraw(),this.parent.map.trigger("should-save")})),this.leafletInstance.on("click",(t=>{ec.DomEvent.stopPropagation(t),this.parent.controller.isDrawing&&(this.selected=!1,this.parent.controller.shape.onClick(t,{vertices:[this]}))})),this.registerMarkerEvents()}unregisterMarkerEvents(){this.marker&&this.marker.leafletInstance.off("drag",this.onTargetDrag,this)}onTargetDrag(t){this.leafletInstance.fire("drag",t)}registerMarkerEvents(){this.marker&&(this.marker.leafletInstance.on("drag",this.onTargetDrag,this),this.marker.leafletInstance.on("remove",(()=>{this.unregisterMarkerEvents(),this.marker=null})))}delete(){this.trigger("delete"),this.unregisterMarkerEvents(),this.hide()}hide(){this.leafletInstance.remove()}show(){this.leafletInstance.addTo(this.parent.map.leafletInstance)}toProperties(){return{lat:this.latlng.lat,lng:this.latlng.lng,id:this.id,targets:{vertexIds:Array.from(this.vertices).map((t=>t.id)),markerId:this.marker?.id}}}static fromProperties(t,e){return new ic(ec.latLng(t.lat,t.lng),e,t.targets,t.id)}}class nc extends ec.DivIcon{constructor(){super({iconSize:new ec.Point(6,6),className:"leaflet-div-icon leaflet-mid-icon"})}}const sc=window[lr];class rc extends tc{constructor(t,e=[],a=t.color){super(),this.controller=t,this.color=a,this.layer="INTERNAL_SHAPE_LAYER",this.options={pane:"drawing",color:this.color,fillColor:this.color},this.vertices=[],this.map=this.controller.map,this.vertices=e.map((t=>ic.fromProperties(t,this))),this.hideVertices()}toProperties(){return{type:this.type,color:this.color,vertices:this.vertices.map((t=>t.toProperties()))}}registerEvents(){this.leafletInstance.on("click",(t=>{sc.DomEvent.stopPropagation(t),this.controller.isDeleting&&(this.hideVertices(),this.controller.removeShape(this)),this.controller.isColoring&&this.setColor(this.controller.color),this.controller.isAddingArrows&&"polyline"==this.type&&this.toggleArrows()})),this.leafletInstance.on("mousedown",(t=>{this.controller.isDragging&&(this.map.leafletInstance.dragging.disable(),this.dragStart=t.latlng,this.controller.draggingShape=this)})),this.leafletInstance.on("mouseup",(t=>{this.controller.isDragging&&(this.map.leafletInstance.dragging.enable(),this.controller.draggingShape=null,this.map.trigger("should-save"))}))}get group(){return this.map.drawingLayer}get latlngs(){return this.vertices.map((t=>t.getLatLng()))}onClick(t,e){let a=this.controller.getSelectedVertex();a?a.selected=!1:this._onClick(t,e)}onMousemove(t){let e=t.latlng;t.originalEvent.getModifierState("Shift")||(this.controller.vertices.find((t=>t.isBeingHovered))?e=this.controller.vertices.find((t=>t.isBeingHovered)).getLatLng():this.map.markers.find((t=>t.isBeingHovered))&&(e=this.map.markers.find((t=>t.isBeingHovered)).leafletInstance.getLatLng())),this._onMousemove(e,t.originalEvent.getModifierState("Shift"))}onDrag(t,e=!0){sc.DomEvent.stop(t),this.dragStart||(this.dragStart=t.latlng);const a=this.getMousemoveDelta(t.latlng,this.dragStart,t.originalEvent.getModifierState("Shift")),i=sc.latLng(a.lat-this.dragStart.lat,a.lng-this.dragStart.lng);if(this.vertices.forEach((t=>t.incrementLatLng(i))),this.redraw(),e){const e=new Set;this.vertices.forEach((t=>t.vertices.forEach((t=>t&&e.add(t.parent))))),e.forEach((e=>{e.dragStart=this.dragStart,e.onDrag(t,!1)}))}this.dragStart=t.latlng}checkAndAddToMap(){this.map.readyForDrawings?this.show():this.map.on("ready-for-drawings",(()=>this.show()))}show(){this.vertices.length&&(this.initialize(),this.registerEvents()),this.onShow()}showVertices(){this.vertices.forEach((t=>{t.show()}))}hideVertices(){this.vertices.forEach((t=>{t.hide()}))}getMousemoveDelta(t,e,a){if(a){const a=[Math.abs(t.lat-(e??this.latlngs[this.vertices.length-1]).lat),Math.abs(t.lng-(e??this.latlngs[this.vertices.length-1]).lng)];a[0]>a[1]?t.lng=(e??this.latlngs[this.vertices.length-1]).lng:t.lat=(e??this.latlngs[this.vertices.length-1]).lat}return t}setColor(t){this.color=t,this.leafletInstance.setStyle({fillColor:t,color:t}),this.map.trigger("should-save")}remove(){this.leafletInstance.remove(),this.hideVertices(),this.vertices.forEach((t=>t.delete())),this.vertices=[],this.map.trigger("should-save")}}const cc=window[lr];class oc extends rc{constructor(){super(...arguments),this.extensions={forward:{line:cc.polyline([],{...this.options,dashArray:"5,10",weight:1,interactive:!1,color:this.controller.color}),added:!1},backward:{line:cc.polyline([],{...this.options,dashArray:"5,10",weight:1,interactive:!1,color:this.controller.color}),added:!1}},this.leafletInstance=cc.polygon([],this.options).addTo(this.map.leafletInstance),this.type="polygon"}get canSave(){return this.vertices.length>=3}hideExtensions(){this.extensions.forward.line.remove(),this.extensions.forward.added=!1,this.extensions.backward.line.remove(),this.extensions.backward.added=!1}_onClick(t,e){this.vertices.push(new ic(this.mouseLoc??t.latlng,this,e)),this.redraw()}_onMousemove(t,e){this.vertices.length&&(this.mouseLoc=this.getMousemoveDelta(t,null,e),this.showExtensions(this.mouseLoc))}redraw(){this.leafletInstance.setLatLngs(this.latlngs),this.leafletInstance.redraw(),this.showExtensions(this.latlngs[this.vertices.length-1])}showExtensions(t){this.vertices.length>=1&&(this.extensions.forward.line.setLatLngs([this.latlngs[this.vertices.length-1],t]),this.extensions.forward.added?this.extensions.forward.line.redraw():(this.extensions.forward.line.addTo(this.map.leafletInstance),this.extensions.forward.added=!0)),this.vertices.length>1&&(this.extensions.backward.line.setLatLngs([this.latlngs[0],t]),this.extensions.backward.added?this.extensions.backward.line.redraw():(this.extensions.backward.line.addTo(this.map.leafletInstance),this.extensions.backward.added=!0))}stopDrawing(){this.extensions.forward.line.remove(),this.extensions.backward.line.remove(),this.vertices.length<3&&this.remove()}undo(){this.vertices.pop(),this.hideExtensions(),this.redraw()}newInstance(){return this.stopDrawing(),new oc(this.controller)}initialize(){this.hideVertices(),this.redraw()}}class lc extends Yr{constructor(t){super({icon:"draw-polygon",cls:"leaflet-control-has-actions leaflet-control-draw-polygon",tooltip:Ce("Polygon")},t),this.parent=t}draw(){this.actionsEl.appendChild(this.complete.controlEl),this.actionsEl.appendChild(this.undo.controlEl),this.actionsEl.appendChild(this.cancel.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.controller.newShape(new oc(this.controller))}}const hc=window[lr];class uc extends rc{constructor(e,a=[],i=e.color,n=e.isAddingArrows,s=!1){super(e,a,i),this.arrows=n,this.reversed=s,this.triangleID=Ne(),this.triangleEl=hc.SVG.create("marker"),this.pathEl=hc.SVG.create("path"),this.extensions={forward:{line:hc.polyline([],{...this.options,dashArray:"5,10",weight:1,interactive:!1}),added:!1}},this.leafletInstance=hc.polyline([],this.options).addTo(this.map.leafletInstance),this.type="polyline",this.triangleEl.setAttrs({id:`${this.triangleID}`,viewBox:"0 0 10 10",refX:"5",refY:"5",markerUnits:"strokeWidth",markerWidth:"5",markerHeight:"5",orient:"auto",fill:i}),this.pathEl.setAttribute("d","M 0 0 L 10 5 L 0 10 z"),this.triangleEl.appendChild(this.pathEl),this.checkAndAddDef(),this.arrows&&(this.addArrows(),this.reversed&&this.reverseArrows(),this.redraw()),this.leafletInstance.on("click",(e=>{if(e.originalEvent.getModifierState(ge)&&this.vertices.length>1){const e=[];let a=0;for(let t=1;t{this.element.setAttribute("marker-mid",`url(#${this.triangleID})`)})),this.leafletInstance.options.smoothFactor=0}get element(){return this.leafletInstance.getElement()}removeArrows(){this.arrows=!1,this.reversed=!1,this.element.removeAttribute("marker-mid"),this.pathEl.removeAttribute("transform"),this.leafletInstance.options.smoothFactor=1}toProperties(){return{type:this.type,color:this.color,vertices:this.vertices.map((t=>t.toProperties())),arrows:this.arrows,reversed:this.reversed}}get canSave(){return this.vertices.length>=1}addLatLng(t){this.vertices.push(new ic(t,this))}hideExtensions(){this.extensions.forward.line.remove(),this.extensions.forward.added=!1}_onClick(t,e){0==this.vertices.length&&this.checkAndAddDef(),this.vertices.push(new ic(this.mouseLoc??t.latlng,this,e)),this.redraw()}_onMousemove(t,e){this.vertices.length&&(this.mouseLoc=this.getMousemoveDelta(t,null,e),this.showExtensions(this.mouseLoc))}get coordinates(){return this.arrows?this.latlngs.length?[this.latlngs[0],...this.latlngs.slice(1).map(((t,e)=>[hc.latLngBounds(this.latlngs[e],t).getCenter(),t])).flat()]:[]:this.latlngs}redraw(){this.leafletInstance.setLatLngs(this.coordinates),this.leafletInstance.redraw(),this.showExtensions(this.latlngs[this.vertices.length-1])}showExtensions(t){this.vertices.length>=1&&(this.extensions.forward.line.setLatLngs([this.latlngs[this.vertices.length-1],t]),this.extensions.forward.added?this.extensions.forward.line.redraw():(this.extensions.forward.line.addTo(this.map.leafletInstance),this.extensions.forward.added=!0))}stopDrawing(){this.extensions.forward.line.remove(),1===this.vertices.length&&this.remove()}undo(){this.vertices.pop(),this.hideExtensions(),this.redraw()}initialize(){this.hideVertices(),this.redraw()}newInstance(){return this.stopDrawing(),new uc(this.controller)}get pane(){return this.map.leafletInstance.getPane("drawing")}checkAndAddDef(){this.pane&&(this.pane.firstElementChild?this.addDef():this.registerAddDef())}registerAddDef(){const t=new MutationObserver((e=>{for(const a of e)if("childList"===a.type)return this.addDef(),void t.disconnect()}));t.observe(this.pane,{childList:!0,attributes:!1,subtree:!1})}addDef(){let t=this.pane.firstElementChild.querySelector("defs");t||(t=hc.SVG.create("defs"),this.pane.firstElementChild.prepend(t)),t.appendChild(this.triangleEl)}onShow(){this.checkAndAddDef(),this.arrows&&(this.addArrows(),this.reversed&&this.reverseArrows(),this.redraw())}remove(){this.hideExtensions(),this.removeArrows(),super.remove()}}class dc extends Yr{constructor(t){super({icon:"project-diagram",cls:"leaflet-control-has-actions leaflet-control-draw-polyline",tooltip:Ce("Polyline")},t),this.parent=t,this.arrow=new fc(this),this.actionsEl.appendChild(this.arrow.controlEl),this.actionsEl.appendChild(this.undo.controlEl),this.actionsEl.appendChild(this.cancel.controlEl)}draw(){this.actionsEl.appendChild(this.complete.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.controller.newShape(new uc(this.controller))}}class fc extends Qr{constructor(t){super({icon:"arrow-up",cls:"leaflet-control-arrow",tooltip:"Add Arrows to Line"},t.map.leafletInstance),this.drawControl=t}get active(){return this.drawControl.controller.isAddingArrows}onClick(t){t.stopPropagation(),this.active?(this.controlEl.removeClass("active"),this.drawControl.controller.setArrowContext(!1)):(this.controlEl.addClass("active"),this.drawControl.controller.setArrowContext(!0))}}const pc=window[lr];class mc extends rc{constructor(){super(...arguments),this.leafletInstance=pc.rectangle([[0,0],[0,0]],this.options).addTo(this.map.leafletInstance),this.type="rectangle"}get canSave(){return 4==this.vertices.length}_onClick(t,e){if(0==this.vertices.length)this.vertices.push(new ic(t.latlng,this,e)),this.bounds=pc.latLngBounds(t.latlng,t.latlng),this.redraw();else if(1==this.vertices.length)return this.bounds=pc.latLngBounds(this.latlngs[0],t.latlng),this.vertices.push(new ic(t.latlng,this,e)),this.syncVerticesToCorners(),this.registerVertexDrags(),this.redraw(),this.ghost.remove(),this.ghost=null,void this.controller.newShape(this.newInstance())}syncVerticesToCorners(){const t=this.vertices.find((t=>t.latlng.equals(this.bounds.getNorthWest())))??new ic(this.bounds.getNorthWest(),this),e=this.vertices.find((t=>t.latlng.equals(this.bounds.getNorthEast())))??new ic(this.bounds.getNorthEast(),this),a=this.vertices.find((t=>t.latlng.equals(this.bounds.getSouthEast())))??new ic(this.bounds.getSouthEast(),this),i=this.vertices.find((t=>t.latlng.equals(this.bounds.getSouthWest())))??new ic(this.bounds.getSouthWest(),this);this.vertices=[t,e,a,i]}_onMousemove(t,e){this.vertices.length&&this.showGhost(t)}showGhost(t){2!=this.vertices.length&&(this.ghost||(this.ghost=pc.rectangle(pc.latLngBounds(this.latlngs[0],t),{dashArray:"5,10",weight:1,interactive:!1,fillOpacity:.5,color:this.controller.color,fillColor:this.controller.color}).addTo(this.map.leafletInstance)),this.ghost.setBounds(pc.latLngBounds(this.latlngs[0],t)))}get boundsArray(){return[this.bounds.getNorthWest(),this.bounds.getNorthEast(),this.bounds.getSouthEast(),this.bounds.getSouthWest()]}registerVertexDrags(){this.vertices[0].on("drag",(()=>{this.vertices[3].setLatLng(pc.latLng([this.vertices[3].getLatLng().lat,this.vertices[0].getLatLng().lng])),this.vertices[1].setLatLng(pc.latLng([this.vertices[0].getLatLng().lat,this.vertices[1].getLatLng().lng]))})),this.vertices[1].on("drag",(()=>{this.vertices[2].setLatLng(pc.latLng([this.vertices[2].getLatLng().lat,this.vertices[1].getLatLng().lng])),this.vertices[0].setLatLng(pc.latLng([this.vertices[1].getLatLng().lat,this.vertices[0].getLatLng().lng]))})),this.vertices[2].on("drag",(()=>{this.vertices[1].setLatLng(pc.latLng([this.vertices[1].getLatLng().lat,this.vertices[2].getLatLng().lng])),this.vertices[3].setLatLng(pc.latLng([this.vertices[2].getLatLng().lat,this.vertices[3].getLatLng().lng]))})),this.vertices[3].on("drag",(()=>{this.vertices[0].setLatLng(pc.latLng([this.vertices[0].getLatLng().lat,this.vertices[3].getLatLng().lng])),this.vertices[2].setLatLng(pc.latLng([this.vertices[3].getLatLng().lat,this.vertices[2].getLatLng().lng]))}))}updateBounds(){4==this.vertices.length&&(this.bounds=pc.latLngBounds(this.latlngs))}redraw(){this.updateBounds(),this.leafletInstance.setBounds(this.bounds),this.leafletInstance.redraw()}showExtensions(t){}stopDrawing(){1===this.vertices.length&&this.remove(),this.ghost&&(this.ghost.remove(),this.ghost=null)}undo(){this.controller.shapes.length&&this.controller.shapes.rectangle.pop().remove()}newInstance(){return this.stopDrawing(),new mc(this.controller)}initialize(){this.redraw(),this.hideVertices(),this.syncVerticesToCorners(),this.registerVertexDrags()}}class gc extends Yr{constructor(t){super({icon:"vector-square",cls:"leaflet-control-has-actions leaflet-control-draw-rectangle",tooltip:Ce("Rectangle")},t),this.parent=t}draw(){this.actionsEl.appendChild(this.undo.controlEl),this.actionsEl.appendChild(this.cancel.controlEl)}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.controller.newShape(new mc(this.controller))}}const vc=window[lr];class bc extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e,this.polygon=new lc(this),this.rectangle=new gc(this),this.polyline=new dc(this),this.color=new Rr(this),this.drag=new wc(this),this.delete=new Cc(this),this.geoJson=new $r(this),this.done=new Ac(this)}get controller(){return this.map.controller}onClick(t){}added(){this.controlEl.addClass("leaflet-control-draw"),this.section=this.controlEl.createEl("section",{cls:this.cls+"-list"}),this.context=this.controlEl.createEl("section",{cls:this.cls+"-list"}),this.draw(),vc.DomEvent.disableClickPropagation(this.controlEl),vc.DomEvent.disableScrollPropagation(this.controlEl),this.iconEl.dataset.draggable="false",this.map.on("click",this.collapse,this),vc.DomEvent.on(this.controlEl,"click",(()=>this.expand()))}complete(){this.stopDrawingContext(),this.controller.hideVertices(),this.collapse()}collapse(){return vc.DomUtil.removeClass(this.controlEl,"expanded"),this.enabled=!1,this}draw(){this.section.appendChild(this.polygon.controlEl),this.section.appendChild(this.rectangle.controlEl),this.section.appendChild(this.polyline.controlEl),this.section.appendChild(this.color.controlEl),this.section.appendChild(this.drag.controlEl),this.section.appendChild(this.delete.controlEl),this.section.appendChild(this.geoJson.controlEl),this.section.appendChild(this.done.controlEl)}expand(){this.enabled=!0,this.startDrawingContext(),vc.DomUtil.addClass(this.controlEl,"expanded"),this.section.style.height=null;const t=this.leafletInstance.getSize().y-(this.controlEl.offsetTop+50);return t{t.stopPropagation(),this.parent.stopDrawingContext()}}get map(){return this.parent.map}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.parent.controller.startDragging()}draw(){this.actionsEl.appendChild(this.complete.controlEl)}}class Cc extends Yr{constructor(t){super({icon:"trash",cls:"leaflet-control-has-actions leaflet-control-draw-trash",tooltip:Ce("Delete Shapes")},t),this.parent=t,this.complete.onClick=t=>{t.stopPropagation(),this.parent.stopDrawingContext()}}get map(){return this.parent.map}onClick(){this.parent.stopDrawingContext(),this.openActions(),this.parent.controller.isDeleting=!0}draw(){this.actionsEl.appendChild(this.complete.controlEl)}}class Ac extends Qr{constructor(t){super({icon:"check",cls:"leaflet-control-draw-done",tooltip:Ce("Done")},t.map.leafletInstance),this.parent=t}get map(){return this.parent.map}onClick(t){t.stopPropagation(),this.parent.complete(),this.parent.map.trigger("should-save")}}const yc=window[lr];class Lc{constructor(t,e){this.map=t,this.isDrawing=!1,this.isDeleting=!1,this.isColoring=!1,this.isDragging=!1,this.isAddingArrows=!1,this.shapes={rectangle:[],polyline:[],polygon:[]},this.color=this.map.options.drawColor}getSelectedVertex(){return Object.values(this.shapes).flat().map((t=>t.vertices)).flat().find((t=>t.selected))}removeShape(t){this.shapes[t.type]=this.shapes[t.type].filter((e=>e!=t)),t.remove()}setArrowContext(t){this.isAddingArrows=t,"polyline"==this.shape?.type&&(t?this.shape.addArrows():this.shape.removeArrows())}get flatShapes(){return Object.values(this.shapes).flat()}get vertices(){return this.flatShapes.map((t=>t.vertices)).flat()}hideVertices(){this.flatShapes.forEach((t=>t.hideVertices()))}showVertices(){this.flatShapes.forEach((t=>t.showVertices()))}addShape(t){let e;switch(t.type){case"polygon":e=new oc(this,t.vertices,t.color);break;case"polyline":e=new uc(this,t.vertices,t.color,t.arrows,t.reversed);break;case"rectangle":e=new mc(this,t.vertices,t.color)}e.checkAndAddToMap(),this.shapes[t.type].push(e)}newShape(t){const e=t??this.shape.newInstance();this.shape&&this.saveShape(),this.shape=e,this.startDrawing()}saveShape(){this.shape&&(this.shape.stopDrawing(),this.shape.canSave&&(this.shapes[this.shape.type].push(this.shape),this.shape.registerEvents(),this.map.trigger("should-save"))),this.stopDrawing()}startDragging(){this.stopDrawing(),this.isDragging=!0,this.map.contentEl.addClass("shape-dragging"),this.map.leafletInstance.on("mousemove touchmove",this.onDrag,this)}stopDragging(){this.isDragging=!1,this.map.contentEl.removeClass("shape-dragging"),this.map.leafletInstance.off("mousemove touchmove",this.onDrag,this)}onDrag(t){yc.DomEvent.stop(t),this.draggingShape&&this.draggingShape.onDrag(t)}startDrawing(){this.isDrawing=!0,this.registerDrawing()}stopDrawing(){this.isDrawing=!1,this.shape&&(this.shape.stopDrawing(),this.unregisterDrawing(),this.shape=null)}getVertexTargets(t){return this.vertices.find((e=>e!=t&&e.isBeingHovered))}registerDrawing(){this.map.registerScope(),this.map.contentEl.addClass("drawing"),this.map.leafletInstance.on("mousemove touchmove",this.shape.onMousemove,this.shape),this.map.leafletInstance.on("click",this.shape.onClick,this.shape)}unregisterDrawing(){this.map.unregisterScope(),this.map.contentEl.removeClass("drawing"),this.map.leafletInstance.off("mousemove touchmove",this.shape.onMousemove,this.shape),this.map.leafletInstance.off("click",this.shape.onClick,this.shape)}toProperties(){return this.flatShapes.map((t=>t.toProperties()))}}const Hc=window[lr];class Bc extends Hc.Control.Layers{constructor(){super({},{}),this.geojsonAdded=!1,this.gpxAdded=!1}onAdd(t){const e=super.onAdd(t),a=Ut({iconName:"layer-group",prefix:"fas"}).node[0];return a.setAttr("style","color: var(--text-normal);margin: auto;"),e.children[0].appendChild(a),e}addGeoJSON(t){this.geojsonAdded||this.container.appendChild(this._separator.cloneNode(!0))}addGPX(t){}}class zc extends Qr{constructor(t,e){super(t,e.leafletInstance),this.map=e}onClick(t){this.map.options.lock=!this.map.options.lock,this.setState(this.map.options.lock),this.map.trigger("lock"),this.map.trigger("should-save")}setState(t){t?(this.setIcon("lock"),this.setTooltip("Unlock Map")):(this.setIcon("unlock"),this.setTooltip("Lock Map"))}}let Nc=window[lr];class xc extends t.Events{constructor(e,a){super(),this.renderer=e,this.options=a,this.readyForDrawings=!1,this.controller=new Lc(this),this.geojsonData=[],this.gpxData=[],this.gpxIcons={start:null,end:null,waypoint:null},this.imageOverlayData=[],this.isDrawing=!1,this.layerControl=new Bc,this.layerControlAdded=!1,this.popup=Vr(this,null),this.contentEl=createDiv(),this.displaying=new Map,this.distanceLines=[],this.distanceTooltips=[],this.previousDistanceLines=[],this.mapLayers=[],this.overlays=[],this.markers=[],this.zoom={min:this.options.minZoom,max:this.options.maxZoom,default:this.options.defaultZoom,delta:this.options.zoomDelta},this.unit=this.options.unit??this.plugin.defaultUnit,this.contentEl.style.height=a.height,this.contentEl.style.width=a.width??"100%",this.options=Object.assign({},fe,a),this.contentEl.addEventListener("touchmove",(t=>{t.stopPropagation()})),this.escapeScope=new t.Scope(this.plugin.app.scope),this.escapeScope.register(void 0,"Escape",(()=>this.escapeScopeCallback()))}get plugin(){return this.renderer.plugin}escapeScopeCallback(){this.isFullscreen||(this.stopDrawingContext(),this.controller.isDrawing&&this.controller.newShape())}createMap(){this.leafletInstance=Nc.map(this.contentEl,{crs:this.CRS,maxZoom:this.zoom.max,minZoom:this.zoom.min,scrollWheelZoom:!this.options.noScrollZoom,zoomDelta:this.zoom.delta,zoomSnap:this.zoom.delta,zoomControl:!this.options.noUI,wheelPxPerZoomLevel:1/this.zoom.delta*60,worldCopyJump:"real"===this.type,...this.plugin.isDesktop&&!this.options.noUI?{fullscreenControl:!0}:{}}),this.leafletInstance.createPane("base-layer"),this.leafletInstance.createPane("geojson"),this.leafletInstance.createPane("gpx"),this.leafletInstance.createPane("gpx-canvas"),this.leafletInstance.createPane("drawing"),this.leafletInstance.createPane("drawing-markers"),this.drawingLayer=new Nc.LayerGroup([],{pane:"drawing"}).addTo(this.leafletInstance),this.readyForDrawings=!0,this.trigger("ready-for-drawings"),this.canvas=Nc.Hotline.renderer({pane:"gpx-canvas"}).addTo(this.leafletInstance),this.leafletInstance.on("blur",(()=>{this.unregisterScope()})),this.leafletInstance.on("contextmenu",(t=>this.handleMapContext(t))),this.leafletInstance.on("click",(t=>this.handleMapClick(t))),this.on("first-layer-ready",(()=>{if(this.addFeatures(),this.log(`Moving to supplied coordinates: ${this.renderOptions.coords}`),this.setInitialCoords(this.renderOptions.coords),this.leafletInstance.panTo(this.initialCoords),(this.geojsonData.length||this.gpxData.length)&&this.options.zoomFeatures){this.log("Zooming to features."),this.leafletInstance.fitBounds(this.featureLayer.getBounds());const{lat:t,lng:e}=this.featureLayer.getBounds().getCenter();this.log(`Features center: [${t}, ${e}]`),this.setInitialCoords([t,e]),this.zoom.default=this.leafletInstance.getBoundsZoom(this.featureLayer.getBounds())}this.renderOptions.zoomDistance&&(this.zoomDistance=this.renderOptions.zoomDistance,this.setZoomByDistance(this.renderOptions.zoomDistance)),this.leafletInstance.setZoom(this.zoom.default,{animate:!1}),this.featureLayer.addTo(this.currentGroup.group),this.currentGroup.group.addTo(this.leafletInstance),this.tileOverlayLayer.addTo(this.leafletInstance),this.options.zoomMarkers&&(this.log("Zooming to markers."),this.zoomAllMarkers())})),this.leafletInstance.on("baselayerchange",(({layer:t})=>{this.leafletInstance.setMaxBounds([void 0,void 0]),this.currentLayer=t.getLayers()[0],this.resetZoom(),this.options.recenter&&this.leafletInstance.setMaxBounds(this.bounds)})),this.buildControls()}get currentGroup(){return this.mapLayers?.find((t=>t.layer==this.currentLayer))}get data(){return this.plugin.data}get defaultIcon(){return this.markerIcons.get("default")}get displayed(){return this.markers.filter((t=>(t.layer===this.currentGroup.id||!t.layer)&&this.displaying.get(t.type)))}get id(){return this.options.id}get isFullscreen(){return this.leafletInstance.isFullscreen()}get markerIcons(){return new Map([...this.plugin.markerIcons,...this.options.localMarkerTypes??[]].map((t=>[t.type,t])))}get markerTypes(){return Array.from(this.markerIcons.keys())}get verbose(){return this.options.verbose}addMarker(...e){let a=[];for(const i of e){let e,n;"object"==typeof i.type?(n="custom",e=this.plugin.parseIcon({type:"custom",iconName:i.type.icon??"map-marker",layer:i.type.layer??!0,color:i.type.color})):(this.markerTypes.includes(i.type)||(new t.Notice(Ce('Marker type "%1" does not exist, using default.',i.type)),i.type="default"),e=this.markerIcons.get(i.type),n=i.type),e?.icon??this.defaultIcon.icon,this.displaying.has(n)||this.displaying.set(n,!0);const s=new Ec(this,{id:i.id,type:n,loc:Nc.latLng(i.loc),link:i.link,layer:i.layer?i.layer:this.currentGroup?.id??null,mutable:i.mutable??!1,command:i.command??!1,zoom:this.leafletInstance.getMaxZoom(),percent:i.percent,description:i.description,tooltip:i.tooltip??this.plugin.data.displayMarkerTooltips,minZoom:i.minZoom,maxZoom:i.maxZoom});this.markers.push(s),a.push(s)}return a}createMarker(t,e,a=null,i=Ne(),n=null,s=null,r=!0,c=!1,o=null,l=null,h=null,u=this.plugin.data.displayMarkerTooltips){const d=this.addMarker({id:i,type:t,loc:e,link:n,layer:s||this.currentGroup?.id,mutable:r,command:c,percent:a,description:o,minZoom:l,maxZoom:h,tooltip:u});return r&&this.trigger("marker-added",d[0]),d[0]}onMarkerClick(t,e){if(this.controller.isDrawing)return Nc.DomEvent.stopPropagation(e),void this.controller.shape.onClick(e,{marker:t});this.handleMapDistance(e)}updateMarker(t){const e=this.markers.find((e=>e.id==t.id));this.displaying.delete(e.type),this.displaying.set(t.type,!0),e.link=t.link,e.description=t.description,e.icon=this.markerIcons.get(t.type),e.minZoom=t.minZoom,e.maxZoom=t.maxZoom,e.command=t.command,e.shouldShow(this.leafletInstance.getZoom())?e.show():e.shouldHide(this.leafletInstance.getZoom())&&e.hide()}addOverlay(...t){for(let e of t)this.overlays.push(new Tc(this,e));this.sortOverlays()}createOverlay(t){this.addOverlay(t),this.trigger("markers-updated")}startDrawingContext(){this.plugin.app.keymap.pushScope(this.escapeScope),this.isDrawing=!0}beginOverlayDrawingContext(t,e){this.startDrawingContext(),this.tempCircle=Nc.circle(t.latlng,{radius:1,color:this.options.overlayColor}),this.leafletInstance.once("click",(async()=>{this.tempCircle&&(this.log("Overlay drawing complete."),this.tempCircle.remove(),this.createOverlay({radius:"image"===this.type?this.tempCircle.getRadius():Nr(this.tempCircle.getRadius()).from("m").to(this.unit),color:this.tempCircle.options.color,loc:[this.tempCircle.getLatLng().lat,this.tempCircle.getLatLng().lng],layer:this.currentGroup.id,unit:this.unit,desc:"",mutable:!0,marker:e?.id??null}),this.trigger("should-save"),this.leafletInstance.off("mousemove"))})),this.leafletInstance.on("mousemove",(e=>{this.tempCircle.setRadius(this.leafletInstance.distance(t.latlng,e.latlng))})),this.tempCircle.addTo(this.currentGroup.group)}addLayerControl(){this.layerControlAdded||(this.layerControlAdded=!0,this.filterControl?.remove(),this.layerControl.addTo(this.leafletInstance),this.filterControl?.addTo(this.leafletInstance))}onFirstLayerReady(t){this.mapLayers.length?t():this.on("first-layer-ready",(()=>{t()}))}addFeatures(){let e;if(this.featureLayer=Nc.featureGroup(),this.tileOverlayLayer=Nc.featureGroup(),this.geojsonData.length>0&&(this.addLayerControl(),this.log(`Adding ${this.geojsonData.length} GeoJSON features to map.`),this.geojsonLayer=Nc.featureGroup().addTo(this.featureLayer),e=0,this.geojsonData.forEach((({data:a,alias:i,note:n})=>{try{const t=new Fc(this,this.featureLayer,{color:this.options.geojsonColor},a,n);t.leafletInstance.addTo(this.geojsonLayer),this.layerControl.addOverlay(t.leafletInstance,i&&i.length?i:`GeoJSON ${e+1}`),e++}catch(e){return console.error(e),void new t.Notice(Ce("There was an error adding GeoJSON to map")+` ${this.id}.\n\n${i}`)}})),this.log(`${e} GeoJSON feature${1==e?"":"s"} added to map.`)),this.gpxData.length>0){e=0,this.addLayerControl(),this.log(`Adding ${this.gpxData.length} GPX features to map.`),this.gpxLayer=Nc.featureGroup().addTo(this.featureLayer);for(let{data:a,alias:i}of this.gpxData)try{const t=new _c(this,a,this.gpxIcons);t.show(),t.leafletInstance.addTo(this.gpxLayer),this.layerControl.addOverlay(t.leafletInstance,i??`GPX ${e+1}`),e++}catch(e){return console.error(e),void new t.Notice(Ce("There was an error adding GPX to map")+` ${this.id}`)}this.gpxControl=function(t,e){const a={position:"bottomleft",icon:"running",cls:"leaflet-control-expandable",tooltip:Ce("Zoom to %1 GPX Track%2",`${e.gpxData.length}`,1==e.gpxData.length?"":"s")};return new Pr(a,e)}(0,this).addTo(this.leafletInstance)}if((this.geojsonData.length||this.gpxData.length)&&this.options.zoomFeatures){this.log("Zooming to features."),this.leafletInstance.fitBounds(this.featureLayer.getBounds());const{lat:t,lng:e}=this.featureLayer.getBounds().getCenter();this.log(`Features center: [${t}, ${e}]`),this.setInitialCoords([t,e]),this.zoom.default=this.leafletInstance.getBoundsZoom(this.featureLayer.getBounds())}this.imageOverlayData&&this.imageOverlayData.length&&this.onFirstLayerReady((()=>{this.addLayerControl(),this.leafletInstance.createPane("image-overlay");for(let t of this.imageOverlayData){let e=t.bounds.length?t.bounds:this.bounds;const a=Nc.imageOverlay(t.data,e,{pane:"image-overlay"});this.layerControl.addOverlay(a,t.alias)}})),this.options.tileOverlay&&this.options.tileOverlay.length&&this.onFirstLayerReady((()=>{this.addLayerControl();let t=0;for(const e of this.options.tileOverlay){t++;const[a,i=`Layer ${t}`,n]=e.split("|"),s=Nc.tileLayer(a);n&&"on"==n&&s.addTo(this.tileOverlayLayer),this.layerControl.addOverlay(s,i&&i.length?i:`Layer ${t}`)}}))}addShapes(...t){for(const e of t)this.controller.addShape(e)}buildControls(){if(!this.options.noUI){if(this.options.hasAdditional&&this.addLayerControl(),this.plugin.isDesktop){const t=this.contentEl.querySelector(".leaflet-control-fullscreen-button");if(t){t.setAttr("aria-label","Toggle Full Screen");const e=Ut({iconName:"expand",prefix:"fas"}).node[0],a=Ut({iconName:"compress",prefix:"fas"}).node[0];t.appendChild(e),this.leafletInstance.on("fullscreenchange",(()=>{this.isFullscreen?t.replaceChild(a,t.children[0]):t.replaceChild(e,t.children[0])}))}}var t;this.filterControl=function(t,e){const a={position:"topright",icon:"filter",cls:"leaflet-control-expandable",tooltip:Ce("Filter Markers")};return new Or(a,e)}(0,this).addTo(this.leafletInstance),this.lockControl=function(t,e){const a={position:"topright",icon:e.options.lock?"lock":"unlock",cls:"leaflet-control-lock",tooltip:e.options.lock?"Unlock Map":"Lock Map"};return new zc(a,e)}(0,this).addTo(this.leafletInstance),function(t,e){const a={position:"topleft",icon:"map-marked-alt",cls:"leaflet-control-zoom-markers",tooltip:Ce("Show All Markers")};return new Xr(a,e)}(0,this).addTo(this.leafletInstance),function(t,e){return new Er({position:"topleft",icon:"bullseye",cls:"leaflet-control-reset-zoom"},e)}(0,this).addTo(this.leafletInstance),this.distanceDisplay=(t={position:"bottomleft"},this,new Sr(t,this)).addTo(this.leafletInstance),this.options.isMapView?function(t,e){const a={position:"bottomright",icon:"edit",cls:"leaflet-control-edit-parameters",tooltip:Ce("Edit View Parameters")};return new Gr(a,e)}(0,this).addTo(this.leafletInstance):this.options.isInitiativeView||function(t,e){const a={position:"bottomright",icon:"save",cls:"leaflet-control-save-param",tooltip:Ce("Save Parameters to View")};return new Kr(a,e)}(0,this).addTo(this.leafletInstance),this.options.draw&&function(t,e){const a={position:"bottomright",icon:"shapes",cls:"leaflet-control-expandable",tooltip:Ce("Draw")};return new bc(a,e)}(0,this).addTo(this.leafletInstance)}}updateLockState(t){this.options.lock=t,this.lockControl.setState(this.options.lock),this.trigger("lock")}closePopup(t){t&&this.leafletInstance.closePopup(t)}distanceAlongPolylines(t){if(1==t.length){const e=t[0].getLatLngs();return this.distance(e[0],e[1])}let e=0;for(const a of t){const t=a.getLatLngs();e+=this.leafletInstance.distance(t[0],t[1])}let a=`${ye(e*this.scale,1)}`;return 1!==this.options.distanceMultiplier&&(a+=` (${ye(e*this.scale*this.options.distanceMultiplier,1)})`),a+` ${this.unit}`}distance(t,e){const a=this.leafletInstance.distance(t,e);let i=`${ye(a*this.scale,1)}`;return 1!==this.options.distanceMultiplier&&(i+=` (${ye(a*this.scale*this.options.distanceMultiplier,1)})`),i+` ${this.unit}`}getMarkersById(t){return this.markers.filter((({id:e})=>e===t))}getOverlaysUnderClick(t){const e=[...this.overlays].filter((e=>e.mutable&&e.isUnder(t)&&e.layer===this.currentGroup.id));return e.sort(((t,e)=>t.radiusInMeters-e.radiusInMeters)),e}getZoom(){return this.rendered?this.leafletInstance.getZoom():this.zoom.default}async handleMapClick(t){this.controller.isDrawing||(this.handleMapDistance(t),(t.originalEvent.getModifierState("Shift")||t.originalEvent.getModifierState("Alt"))&&await this.getMapCoordinates(t))}async getMapCoordinates(e){this.log("Map popup context detected. Opening popup.");const a=Le(e.latlng);this.popup.setTarget(e.latlng).open(`[${a.lat}, ${a.lng}]`),this.data.copyOnClick&&(e.originalEvent.getModifierState("Shift")||t.Platform.isMobile)&&(this.log("Copying coordinates of click to clipboard."),await He(e.latlng))}handleMapDistance(e,a){if(!a&&(!e.originalEvent.getModifierState("Shift")&&!e.originalEvent.getModifierState("Alt")||e.originalEvent.getModifierState("Control"))){if(!this.distanceLines.length)return;return void this.stopDrawingContext()}this.log("Distance measurement context starting.");const i=e.latlng;this.isDrawing||this.startDrawingContext(),this.distanceLines.push(Nc.polyline([i,e.latlng])),this.distanceLines.last().addTo(this.leafletInstance),this.distanceTooltips.push(Vr(this,this.distanceLines.last(),{permanent:!0}));const n=this.distanceAlongPolylines([this.distanceLines.last()]);this.distanceTooltips.last().open(n),this.leafletInstance.on("mousemove",(t=>{const e=t.latlng,a=[Math.abs(e.lat-i.lat),Math.abs(e.lng-i.lng)];t.originalEvent.getModifierState("Shift")&&(a[0]>a[1]?e.lng=i.lng:e.lat=i.lat),!this.markers.find((t=>t.isBeingHovered))||t.originalEvent.getModifierState(ge)?this.distanceLines.last().setLatLngs([i,e]):this.distanceLines.last().setLatLngs([i,this.markers.find((t=>t.isBeingHovered)).loc]);const n=this.distanceAlongPolylines(this.distanceLines),s=this.distanceAlongPolylines([this.distanceLines.last()]);this.distanceTooltips.last().open(`${n} (${s})`),this.distanceDisplay.setText(n),this.distanceLines.last().redraw()})),this.leafletInstance.on("mouseout",(()=>{t.Platform.isMobile||this.stopDrawingContext()}))}handleMapContext(e,a){if(this.controller.isDrawing)return;if(t.Platform.isMobile)return this.handleMapContextMobile(e,a);if(e.originalEvent.getModifierState("Shift"))return this.log("Beginning overlay drawing context."),void this.beginOverlayDrawingContext(e);if(a){const i=this.getOverlaysUnderClick(e);if(!i.length){if(!a.mutable)return void new t.Notice(Ce("This overlay cannot be edited because it was defined in the code block."));i.push(a)}const n=a=>{const i=new t.Menu;i.setNoIcon(),i.addItem((e=>{e.setTitle(Ce("Edit Overlay")).onClick((()=>{const e=new Ja(a,this);e.onClose=async()=>{if(e.deleted)return this.log("Overlay deleted in context menu. Removing."),a.remove(),this.overlays=this.overlays.filter((t=>t!=a)),this.trigger("markers-updated"),void this.trigger("should-save");try{a.data.color=e.tempOverlay.color,a.data.radius=e.tempOverlay.radius,a.data.desc=e.tempOverlay.desc,a.data.tooltip=e.tempOverlay.tooltip;let t=Nr(Number(a.data.radius)).from(a.data.unit??"m").to("image"==this.type?this.unit:"m");"image"==this.type&&(t/=this.scale),a.leafletInstance.setRadius(t),a.leafletInstance.setStyle({color:a.data.color}),this.trigger("should-save")}catch(e){new t.Notice(Ce("There was an error saving the overlay.")+`\n\n${e.message}`)}},e.open()}))})),i.addItem((t=>{t.setTitle(Ce("Convert to Code Block")).onClick((async()=>{a.mutable=!1,this.trigger("create-immutable-layer",a),this.trigger("should-save")}))})),i.addItem((t=>{t.setTitle(Ce("Delete Overlay")).onClick((()=>{this.log("Overlay deleted in context menu. Removing."),a.remove(),this.overlays=this.overlays.filter((t=>t!=a)),this.trigger("markers-updated"),this.trigger("should-save")}))})),i.showAtMouseEvent(e.originalEvent)};if(1==i.length)n(i[0]);else{let a=new t.Menu;a.setNoIcon(),a.addItem((t=>{t.setTitle(Ce("Create Marker")),t.onClick((()=>{a.hide(),this.handleMapContext(e)}))})),i.forEach(((t,e)=>{a.addItem((a=>{a.setTitle(`Overlay ${e+1}`),a.onClick((()=>{n(t)})),a.dom.onmouseenter=()=>{t.leafletInstance.getElement().addClass("leaflet-layer-targeted")},a.dom.onmouseleave=()=>{t.leafletInstance.getElement().removeClass("leaflet-layer-targeted")}}))})),a.onHide((()=>{i.forEach((t=>{t.leafletInstance.getElement().removeClass("leaflet-layer-targeted")}))})),a.showAtMouseEvent(e.originalEvent)}return}if(this.markerIcons.size<=1)return this.log("No additional marker types defined. Adding default marker."),void this.createMarker(this.defaultIcon.type,[e.latlng.lat,e.latlng.lng],void 0);let i=new t.Menu;i.setNoIcon(),this.log("Opening marker context menu."),this.markerIcons.forEach((t=>{t.type&&t.html&&i.addItem((a=>{a.setTitle("default"==t.type?"Default":t.type),a.onClick((async()=>{this.log(`${t.type} selected. Creating marker.`),this.createMarker(t.type,[e.latlng.lat,e.latlng.lng],void 0),this.trigger("should-save")}))}))})),i.showAtMouseEvent(e.originalEvent)}handleMapContextMobile(e,a){let i=new t.Menu;i.setNoIcon(),i.addItem((t=>{t.setTitle("Show coordinates").onClick((async()=>{await this.getMapCoordinates(e)}))})),i.addItem((t=>t.setTitle(this.isDrawing?"Finish measuring":"Measure distance").onClick((()=>{this.handleMapDistance(e,!0)})))),i.addSeparator(),this.log("Opening marker context menu."),this.markerIcons.forEach((t=>{t.type&&t.html&&i.addItem((a=>{a.setTitle("default"==t.type?"Default":t.type),a.onClick((async()=>{this.log(`${t.type} selected. Creating marker.`),this.createMarker(t.type,[e.latlng.lat,e.latlng.lng],void 0),this.trigger("should-save")}))}))})),i.showAtMouseEvent(e.originalEvent)}isLayerRendered(t){return!!this.mapLayers.find((({id:e})=>e===t))}loadFeatureData(t){this.geojsonData=[...this.geojsonData??[],...t.geojsonData??[]],this.gpxData=[...this.gpxData??[],...t.gpxData??[]],this.gpxIcons={start:null,end:null,waypoint:null,...this.gpxIcons??{},...t.gpxIcons}}log(t){Be(this.verbose,this.id,t)}remove(){this.stopDrawingContext(),this.leafletInstance.remove(),this.contentEl.detach(),this.rendered=!1,this.trigger("removed")}removeMarker(t){const e=this.markers.find((({id:e})=>e==t.id));e&&(e.remove(),this.markers=this.markers.filter((({id:t})=>t!=e.id)),this.trigger("markers-updated"),this.trigger("should-save"))}registerScope(){this.plugin.app.keymap.pushScope(this.escapeScope)}resetZoom(){if(this.rendered){if(this.leafletInstance.invalidateSize(),this.log("Element added to note, resetting zoom."),this.zoomDistance&&(this.log("Zooming by distance."),this.setZoomByDistance(this.zoomDistance)),this.options.zoomFeatures){this.log("Zooming to features."),this.leafletInstance.fitBounds(this.featureLayer.getBounds());const{lat:t,lng:e}=this.featureLayer.getBounds().getCenter();this.log(`Features center: [${t}, ${e}]`),this.setInitialCoords([t,e]),this.zoom.default=this.leafletInstance.getBoundsZoom(this.featureLayer.getBounds())}if(this.options.zoomMarkers)return this.log("Zooming to markers."),void this.zoomAllMarkers();this.log(`Resetting map view to [${this.initialCoords[0]}, ${this.initialCoords[1]}], zoom ${this.zoom.default}.`),this.leafletInstance.setView(this.initialCoords,this.zoom.default)}}zoomAllMarkers(){const t=Nc.featureGroup(this.displayed.map((({leafletInstance:t})=>t)));t&&t.getLayers().length?(this.log(`Moving to display ${t.getLayers().length} markers.`),this.leafletInstance.fitBounds(t.getBounds(),{maxZoom:this.leafletInstance.getBoundsZoom(t.getBounds())})):this.leafletInstance.fitWorld()}sortOverlays(){if(this.overlays.length){this.log("Sorting overlays."),this.overlays.sort(((t,e)=>e.radiusInMeters-t.radiusInMeters));for(let t of this.overlays)t.leafletInstance.bringToFront();this.log("Overlays sorted.")}}setZoomByDistance(t){t||(this.zoom.default=this.options.defaultZoom);const e=Nc.circle(this.initialCoords,{radius:t,fillOpacity:0,opacity:0});e.addTo(this.leafletInstance),this.zoom.default=this.leafletInstance.getBoundsZoom(e.getBounds()),e.remove()}stopDrawingContext(){if(this.isDrawing=!1,this.plugin.app.keymap.popScope(this.escapeScope),this.leafletInstance.off("mousemove"),this.leafletInstance.off("mouseout"),this.previousDistanceLines=[],this.distanceLines.length){for(const t of this.distanceLines)t.unbindTooltip(),t.remove(),this.previousDistanceLines.push(t);this.distanceLines=[]}this.tempCircle&&(this.tempCircle.remove(),this.tempCircle=void 0)}toProperties(){return{id:this.id,locked:this.options.lock,lastAccessed:Date.now(),markers:this.markers.filter((({mutable:t})=>t)).map((t=>t.toProperties())),overlays:this.overlays.filter((({mutable:t})=>t)).map((t=>t.toProperties())),shapes:this.controller.toProperties()}}unregisterScope(){this.plugin.app.keymap.popScope(this.escapeScope)}updateMarkerIcons(){this.markerIcons.forEach((({type:t})=>{this.markerIcons.has(t)||(this.displaying.set(t,!0),this.currentGroup.markers[t]=Nc.layerGroup())})),this.markers.forEach((t=>{let e=this.markerIcons.get(t.type)??this.defaultIcon;t.icon=e})),[...this.displaying].forEach((([t])=>{this.markerTypes.includes(t)||"custom"==t||(this.displaying.delete(t),this.currentGroup.markers.default||(this.currentGroup.markers.default=Nc.layerGroup(),this.displaying.set("default",!0),this.currentGroup.markers.default.addTo(this.currentGroup.group)),this.currentGroup.markers[t]?.getLayers()?.forEach((t=>this.currentGroup.markers.default.addLayer(t))),delete this.currentGroup.markers[t])}))}}class Dc extends xc{constructor(t,e){super(t,e),this.renderer=t,this.options=e,this.CRS=Nc.CRS.EPSG3857,this.mapLayers=[],this.type="real",this.createMap()}get plugin(){return this.renderer.plugin}get bounds(){return this.leafletInstance.getBounds()}get scale(){return Nr(1).from("m").to(this.unit)}setInitialCoords(t){this.initialCoords=t}async buildLayer(e){e.data.contains("openstreetmap")&&new t.Notice(Ce("OpenStreetMap has restricted the use of its tile server in Obsidian. Your map may break at any time. Please switch to a different tile server."));const a=e.subdomains?e.subdomains:this.plugin.data.defaultTileSubdomains?this.plugin.data.defaultTileSubdomains.split(",").filter((t=>t)).map((t=>t.trim())):ce,i=Nc.tileLayer(e.data,{...e.data.contains("stamen-tiles")?{attribution:oe}:{attribution:this.plugin.data.defaultAttribution,subdomains:a},className:this.options.darkMode?"dark-mode":""}),n=Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])));n.custom=Nc.layerGroup();const s={none:Nc.layerGroup(),...Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])))},r=Nc.layerGroup([i,...Object.values(n),...Object.values(s)]);return this.mapLayers.push({group:r,layer:i,id:e.id??"real",markers:n,overlays:s}),this.layerControlAdded&&this.layerControl.addBaseLayer(r,e.alias??`Layer ${this.mapLayers.length}`),this.trigger("layer-ready-for-features",this.mapLayers[this.mapLayers.length-1].id),i}async render(e){this.renderOptions={coords:e.coords,zoomDistance:e.zoomDistance},this.imageOverlayData=e.imageOverlayData,this.log("Beginning render process."),this.start=Date.now(),this.log("Building initial map layer.");const a=document.body.hasClass("theme-light")?this.plugin.data.defaultTile:this.plugin.data.defaultTileDark;let i={id:"real",data:a,alias:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"==a?"OpenStreetMap":"Tile Server"};const n=[];for(let e of this.options.tileLayer){const[a,i]=e.split("|");a?n.push({id:a,data:a,alias:i,subdomains:this.options.tileSubdomains}):new t.Notice(Ce("There was an issue parsing the tile layer: %1",e))}if(!this.options.osmLayer&&n.length||(this.options.osmLayer||new t.Notice(Ce("OpenStreetMap cannot be turned off without specifying additional tile servers.")),n.unshift(i)),this.currentLayer=await this.buildLayer(n[0]),this.mapLayers[0].layer.once("load",(()=>{this.rendered=!0,this.log(`Initial map layer rendered in ${(Date.now()-this.start)/1e3} seconds.`),this.trigger("rendered")})),this.trigger("first-layer-ready",this.mapLayers[0].id),n.length>1){this.log("Building additional layers in the background.");for(let t of n.slice(1))await this.buildLayer(t)}}}class Vc extends xc{constructor(t,e){super(t,e),this.renderer=t,this.options=e,this.CRS=Nc.CRS.Simple,this.mapLayers=[],this.type="image",this.createMap()}get plugin(){return this.renderer.plugin}get bounds(){return this.currentLayer.getBounds()}get scale(){return this.options.scale??1}setInitialCoords(t){let e=[1,1];this.options.bounds||(e=[this.bounds.getCenter().lat/50,this.bounds.getCenter().lng/50]),this.initialCoords=[t[0]*e[0],t[1]*e[1]]}_buildMapLayer(t){this.mapLayers.length||this.log("map.ts: 1494: Building initial map layer. ");const{h:e,w:a}=t;let i;if(this.dimensions={h:e,w:a},this.options.bounds?.length)i=new Nc.LatLngBounds(...this.options.bounds);else{const t=this.leafletInstance.unproject([0,e],this.zoom.max-1),n=this.leafletInstance.unproject([a,0],this.zoom.max-1);i=new Nc.LatLngBounds(t,n)}const n=Nc.imageOverlay(t.data,i,{className:this.options.darkMode?"dark-mode":"",pane:"base-layer"}),s=Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])));s.custom=Nc.layerGroup();const r={none:Nc.layerGroup(),...Object.fromEntries(this.markerTypes.map((t=>[t,Nc.layerGroup()])))};return{group:Nc.layerGroup([n,...Object.values(s),...Object.values(r)]),layer:n,id:t.id,markers:s,overlays:r,dimensions:[a,e],alias:t.alias}}async buildLayer(t){const e=this._buildMapLayer(t);return this.mapLayers.push(e),this.trigger("layer-ready-for-features",e.id),1===this.mapLayers.length&&(this.currentLayer=this.mapLayers[0].layer,this.trigger("first-layer-ready",this.currentGroup.id),this.options.recenter&&this.leafletInstance.setMaxBounds(this.bounds)),this.layerControl.addBaseLayer(e.group,t.alias??`Layer ${this.mapLayers.length}`),this.mapLayers[0].layer.once("load",(()=>{this.rendered=!0,this.log(`Initial map layer rendered in ${(Date.now()-this.start)/1e3} seconds.`),this.trigger("rendered")})),e.layer}async render(t){this.renderOptions={coords:t.coords,zoomDistance:t.zoomDistance},this.imageOverlayData=t.imageOverlayData,this.log("Beginning render process."),this.start=Date.now(),this.trigger("ready-to-render"),this.readyToRender=!0}registerLayerToBuild(t){this.readyToRender?this.buildLayer(t):this.on("ready-to-render",(()=>{this.buildLayer(t)}))}}class Mc extends t.ItemView{constructor(e,a){super(e),this.leaf=e,this.plugin=a,this.innerContentEl=this.contentEl.createDiv({cls:"markdown-preview-view",attr:{style:"height: 100%;"}}),this.mapEl=this.innerContentEl.createDiv("block-language-leaflet"),this.context=new t.MarkdownRenderChild(this.mapEl),this.context.load()}get params(){return{...de,...this.plugin.data.mapViewParameters??{},height:"100%",isMapView:!0}}async onOpen(){this.renderer=new ao(this.plugin,"",this.mapEl,this.params,""),this.context.addChild(this.renderer)}update(){this.renderer.unload(),this.renderer=new ao(this.plugin,"",this.mapEl,this.params,""),this.context.addChild(this.renderer)}getDisplayText(){return Ce("Leaflet Map")}getViewType(){return se}onResize(){this.renderer&&this.renderer.setHeight(`${this.contentEl.firstElementChild.getBoundingClientRect().height}px`)}onMoreOptionsMenu(t){t.addItem((t=>{t.setIcon("pencil").setTitle("Edit Map Parameters").onClick((()=>{const t=new Fr(this.plugin);t.onClose=()=>{},t.open()}))}))}}let Sc=window[lr];class kc{}class Qc extends kc{constructor(t){super(),this.text=t}get display(){return createSpan({text:this.text})}async run(){}}class Ic extends kc{constructor(t,e,a){super(),this._text=t,this.app=e,this.description=a,this.display=this._getDisplay()}get isInternal(){return null!=this.app.metadataCache.getFirstLinkpathDest(this.text.split(/(\^|\||#)/).shift(),"")}get text(){return this._text}set text(t){this._text=t,this.display=this._getDisplay()}_getDisplay(){if(this.text){if(this.external)return createEl("a",{text:this.text,href:this.text,cls:"external-link"});if(this.description?.length){const t=createDiv();return t.createSpan({text:this.description}),this.text?.length&&(t.createEl("br"),t.createEl("br"),t.createSpan({text:this.text.replace(/(\^)/," > ^").replace(/#/," > ").split("|").pop(),cls:"internal-link"})),t}return createSpan({text:this.text.replace(/(\^)/," > ^").replace(/#/," > ").split("|").pop()})}}get external(){return!this.isInternal&&/((?:https?:\/\/)?(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b(?:[-a-zA-Z0-9@:%_\+.~#?&//=]*))/.test(this.text)}async run(t){await this.app.workspace.openLinkText(this._text.replace("^","#^").split(/\|/).shift(),this.app.workspace.getActiveFile()?.path??"",t.originalEvent.getModifierState(ge))}}class Oc extends kc{constructor(t,e){super(),this._text=t,this.app=e,this.display=this._getDisplay()}get text(){return this._text}set text(t){this._text=t,this.display=this._getDisplay()}get exists(){return null!=this.app.commands.findCommand(this._text)}get command(){return this.app.commands.findCommand(this._text)}_getDisplay(){const e=createDiv({attr:{style:"display: flex; align-items: center;"}});return this.exists?((0,t.setIcon)(e.createSpan({attr:{style:"margin-right: 0.5em; display: flex; align-items: center;"}}),"run-command"),e.createSpan({text:this.command.name})):((0,t.setIcon)(e.createSpan({attr:{style:"margin-right: 0.5em; display: flex; align-items: center;"}}),"cross"),e.createSpan({text:Ce("No command found!")})),e}run(t){this.exists&&this.app.commands.executeCommandById(this._text)}}class Ec extends tc{constructor(e,{id:a,type:i,loc:n,link:s,layer:r,mutable:c,command:o,percent:l,description:h,minZoom:u,maxZoom:d,tooltip:f}){super(),this.map=e,this.popup=Vr(this.map,this),this.isBeingHovered=!1;const p=this.map.markerIcons.get(i)??this.map.markerIcons.get("default");if(!p)return void new t.Notice(Ce("Leaflet: Could not create icon for %1 - does this type exist in settings?",i));const m=p.markerIcon,g=fr(this.map.plugin.parseIcon(m));var v,b;this.leafletInstance=(v=n,b={icon:g,keyboard:c&&!this.map.options.lock,draggable:c&&!this.map.options.lock,bubblingMouseEvents:!0},new pr(v,b,{link:s,mutable:`${c}`,type:i})),this.id=a,this.type=i,this.loc=n,this.description=h,this.layer=r,this.mutable=c,this.command=o,this.divIcon=g,this.percent=l,this.tooltip=f,o?this.target=new Oc(s,this.map.plugin.app):s?this.target=new Ic(s,this.map.plugin.app,this.description):h&&(this.target=new Qc(this.description)),this.link=s,this.minZoom=u??m?.minZoom??null,this.maxZoom=d??m?.maxZoom??null,this.checkAndAddToMap(),this.bindEvents()}get group(){return this.mapLayer?.markers[this.type]}bindEvents(){this.leafletInstance.on("contextmenu",(e=>{if(Sc.DomEvent.stopPropagation(e),e.originalEvent.getModifierState("Shift"))return void this.map.beginOverlayDrawingContext(e,this);if(!this.mutable)return void new t.Notice(Ce("This marker cannot be edited because it was defined in the code block."));const a=new t.Menu;a.setNoIcon(),a.addItem((t=>{t.setTitle(Ce("Edit Marker")).onClick((()=>this.editMarker()))})),a.addItem((t=>{t.setTitle(Ce("Convert to Code Block")).onClick((async()=>{this.mutable=!1,this.map.trigger("create-immutable-layer",this),this.map.trigger("should-save")}))})),a.addItem((t=>{t.setTitle(Ce("Delete Marker")).onClick((()=>{this.map.removeMarker(this)}))})),a.showAtMouseEvent(e.originalEvent)})).on("dblclick",(e=>{this.mutable?(Sc.DomEvent.stopPropagation(e),this.editMarker()):new t.Notice(Ce("This marker cannot be edited because it was defined in the code block."))})).on("click",(async t=>{if(this.map.isDrawing||this.map.controller.isDrawing)this.map.onMarkerClick(this,t);else{if(Sc.DomEvent.stopPropagation(t),t.originalEvent.getModifierState("Alt")||t.originalEvent.getModifierState("Shift")){this.map.onMarkerClick(this,t);const e=Le(this.latLng);return this.popup.open(`[${e.lat}, ${e.lng}]`),void(this.map.data.copyOnClick&&t.originalEvent.getModifierState(ge)&&await He(this.loc))}this.target&&this.target.run(t)}})).on("dragstart",(t=>{Sc.DomEvent.stopPropagation(t)})).on("drag",(t=>{this.map.trigger("marker-dragging",this),("always"===this.tooltip&&this.popup||this.popup.isOpen())&&this.popup.setLatLng(t.latlng)})).on("dragend",(t=>{const e=this.loc;this.setLatLng(this.leafletInstance.getLatLng()),this.map.trigger("marker-data-updated",this,e)})).on("mouseover",(t=>{Sc.DomEvent.stopPropagation(t),this.isBeingHovered=!0,this.target&&this.popup.open(this.target.display),this.map.data.notePreview&&this.link&&this.map.plugin.app.workspace.trigger("hover-link",{event:t.originalEvent,source:this.map.plugin.manifest.id,hoverParent:{state:{source:ne}},targetEl:this.leafletInstance.getElement(),linktext:this.link.replace("^","#^").split("|").shift(),state:{source:ne}})})).on("mouseout",(t=>{this.leafletInstance.closeTooltip(),this.isBeingHovered=!1})),this.map.leafletInstance.on("zoomanim",(t=>{this.shouldShow(t.zoom)?this.map.leafletInstance.once("zoomend",(()=>this.show())):this.shouldHide(t.zoom)&&this.hide()})),this.map.on("lock",(()=>{this.mutable&&this.registerForShow((()=>{this.leafletInstance.dragging&&(this.map.options.lock?this.leafletInstance.dragging.disable():this.leafletInstance.dragging.enable(),this.leafletInstance.options.keyboard=!this.map.options.lock)}))})),this.map.leafletInstance.on("baselayerchange",(t=>{t.layer.hasLayer(this.group)?this.show():this.hide()}))}editMarker(){let t=new Za(this,this.map);t.onClose=async()=>{t.deleted?(this.map.removeMarker(this),this.map.trigger("marker-deleted",this)):(this.map.displaying.delete(this.type),this.map.displaying.set(t.tempMarker.type,!0),this.description=t.tempMarker.description,this.link=t.tempMarker.link,this.icon=this.map.markerIcons.get(t.tempMarker.type),this.tooltip=t.tempMarker.tooltip,this.minZoom=t.tempMarker.minZoom,this.maxZoom=t.tempMarker.maxZoom,this.command=t.tempMarker.command,this.shouldShow(this.map.leafletInstance.getZoom())&&!this.displayed?this.show():this.shouldHide(this.map.leafletInstance.getZoom())&&this.displayed&&this.hide(),"always"===this.tooltip?this.popup.open(this.target.display):this.popup.close(),this.map.trigger("marker-updated",this),this.map.trigger("should-save"))},t.open()}get link(){return this._link}set link(t){this.leafletInstance.options?.icon&&this.leafletInstance.options.icon.setData({link:`${t}`}),t&&t.length?((!this.target||this.target instanceof Qc)&&(this.command?this.target=new Oc(t,this.map.plugin.app):this.target=new Ic(t,this.map.plugin.app,this.description)),this._link=t.startsWith("#")?this.map.options.context+t:t,this.target&&(this.target.text=t),this.popup&&this.displayed&&"always"===this.tooltip&&this.popup.open(this.target.display)):this.description&&this.description.length&&(this.target=new Qc(this.description))}get command(){return this._command}set command(t){this._command=t,this.link&&(t?this.target=new Oc(this.link,this.map.plugin.app):this.link?this.target=new Ic(this.link,this.map.plugin.app,this.description):this.description&&(this.target=new Qc(this.description)))}get mutable(){return this._mutable}set mutable(t){this._mutable=t,this.leafletInstance.options?.icon&&this.leafletInstance.options.icon.setData({mutable:`${t}`})}get type(){return this._type}set type(t){this._type=t,this.leafletInstance.options?.icon&&this.leafletInstance.options.icon.setData({type:`${t}`})}set icon(t){this.type=t.type,this._icon=t,this.leafletInstance.setIcon(t.icon)}get latLng(){return this.loc}get display(){const t=[this.link];return this.description&&(t.unshift(`${this.description} `,"("),t.push(")")),t.join("")}setLatLng(t){if(this.loc=t,this.map.rendered&&"image"===this.map.type){let{x:t,y:e}=this.map.leafletInstance.project(this.loc,this.map.zoom.max-1);this.percent=[t/this.map.currentGroup.dimensions[0],e/this.map.currentGroup.dimensions[1]]}this.leafletInstance.fire("drag",{latlng:t}),this.leafletInstance.setLatLng(t)}show(){this.shouldShow(this.map.getZoom())&&this.group&&!this.displayed&&(this.group.addLayer(this.leafletInstance),this.displayed=!0,"always"===this.tooltip&&this.target&&this.leafletInstance.on("add",(()=>{this.popup.open(this.target.display)}))),this.onShow()}onShow(){}shouldShow(t){if(this.minZoom==this.maxZoom&&null==this.minZoom)return!0;if(!this.displayed){const e=this.minZoom??this.map.zoom.min,a=this.maxZoom??this.map.zoom.max;if(e<=t&&t<=a)return this.map.displaying.get(this.type)??!0}return!1}hide(){this.group&&this.displayed&&(this.remove(),this.displayed=!1,this.popup.close())}shouldHide(t){if(this.displayed){const e=this.minZoom??this.map.zoom.min,a=this.maxZoom??this.map.zoom.max;if(e>t||t>a)return!0}}static from(t,e){return new Ec(t,e)}toProperties(){return{id:this.id,type:this.type,loc:[this.leafletInstance.getLatLng().lat,this.leafletInstance.getLatLng().lng],link:this.link,layer:this.layer,mutable:this.mutable,command:this.command,percent:this.percent,description:this.description,minZoom:this.minZoom,maxZoom:this.maxZoom,tooltip:this.tooltip}}toCodeBlockProperties(){return[this.type,this.latLng.lat,this.latLng.lng,this.link,this.description,this.minZoom,this.maxZoom]}remove(){this.group&&this.group.removeLayer(this.leafletInstance),"always"==this.tooltip&&this.popup.leafletInstance?.remove()}}let Xc=window[lr];class Tc extends tc{constructor(t,e){super(),this.map=t,this.data=e,this.popup=Vr(this.map,this),this.leafletInstance=Xc.circle(Xc.latLng(this.data.loc),{radius:this.radiusInMeters,color:this.color}),this.layer=e.layer,this.checkAndAddToMap(),this.bindEvents()}get radius(){let t=this.radiusInMeters;return"image"==this.map.type&&(t=Nr(t).from("m").to(this.map.unit),t/=this.map.scale),t}setRadius(t){this.data.radius=t,this.leafletInstance.setRadius(this.radius)}get radiusInMeters(){return Nr(this.data.radius).from(this.data.unit??"m").to("m")}get mutable(){return this.data.mutable}set mutable(t){this.data.mutable=t}setMutable(t){this.data.mutable=t}get color(){return this.data.color}setColor(t){this.data.color=t}get id(){return this.data.id}get latlng(){return this.leafletInstance.getLatLng()}get loc(){return[this.latlng.lat,this.latlng.lng]}get type(){if(this.data.id){const t=this.map.markers.find((({id:t})=>t===this.data.id));if(t)return t.type}return"none"}get description(){let t=Nr(this.data.radius).from(this.data.unit).to(this.map.unit);return"image"==this.type&&(t*=this.map.scale),this.data.desc?this.data.desc+` (${ye(t,1)} ${this.map.unit})`:`${ye(t,1)} ${this.map.unit}`}get group(){return this.mapLayer?.overlays[this.type]}get marker(){return this.data.marker}show(){this.group&&this.group.addLayer(this.leafletInstance)}bindEvents(){if(this.leafletInstance.on("contextmenu",(t=>{Xc.DomEvent.stopPropagation(t),this.map.handleMapContext(t,this)})).on("mouseover",(t=>{Xc.DomEvent.stopPropagation(t),this.popup.open(this.description)})).on("click",(t=>{t.originalEvent.getModifierState(ge)?this.focus():this.popup.open(this.description)})),this.marker){const t=this.map.getMarkersById(this.marker);if(!t||!t.length)return;t[0].leafletInstance.on("drag",(e=>{this.leafletInstance.setLatLng(t[0].leafletInstance.getLatLng())}))}}isUnder(t){const e=this.leafletInstance.getElement();if(!e)return!1;const{clientX:a,clientY:i}=t.originalEvent,{x:n,y:s,width:r,height:c}=e.getBoundingClientRect(),o=r/2,l=[n+r/2,s+c/2];return this.mutable&&Math.pow(a-l[0],2)+Math.pow(i-l[1],2){const a=new Gc(this,t,e,{pane:this.options.pane??"geojson"});return this.markers.push(a),a.leafletInstance},style:t=>{if(!t||!t.properties)return{};const{stroke:e=this.options.color,"stroke-opacity":a=ue,"stroke-width":i=he,fill:n=null,"fill-opacity":s=.2}=t.properties;return{color:e,opacity:a,weight:i,fillColor:n,fillOpacity:s}},onEachFeature:(t,e)=>{if("Point"==t.geometry?.type)return;const a=new Kc(this,t,e);this.features.push(a)}}),n&&this.leafletInstance.on("click",(async t=>{await this.map.plugin.app.workspace.openLinkText(this.note.replace("^","#^").split(/\|/).shift(),this.map.plugin.app.workspace.getActiveFile()?.path??"",!0)}))}get group(){return this.map.featureLayer}get display(){return this._display||(this._display=createDiv()),this._display}addMarker(t,e,a){const i=new Gc(this,null,t,{pane:a??this.options.pane});return this.markers.push(i),i.leafletInstance}toProperties(){}buildTooltip(e,{icon:a,description:i}){let n=createDiv({attr:{style:"text-align: left;"}});const s=n.createDiv({attr:{style:"display: flex; justify-content: space-between;"}}),r=s.createEl("label",{text:e,attr:{style:"text-align: left;"}});return a&&(0,t.setIcon)(s.createDiv({attr:{style:"margin-left: 0.5rem;"}}),qt),this.note&&this.note.length&&(0,t.setIcon)(s.createDiv({attr:{style:"margin-left: 0.5rem;"}}),"note-glyph"),i&&(r.setAttr("style","font-weight: bolder; text-align: left;"),n.createEl("p",{attr:{style:"margin: 0.25rem 0; text-align: left;"},text:i})),n}}class Gc{constructor(t,e,a,i){this.parent=t;const n=e?.properties["marker-symbol"]??"default",s=this.map.markerIcons.get(n)??this.map.markerIcons.get("default");this.title=e?.properties.title??e?.properties.name??null,this.description=e?.properties.description??null,(this.title||this.parent.note)&&(this.iconDisplay=this.parent.buildTooltip(this.title??this.parent.note,{icon:null!=this.description}),this.descriptionDisplay=this.parent.buildTooltip(this.title??this.parent.note,{description:this.description})),this.leafletInstance=Pc.marker(a,{pane:i.pane,icon:s.icon,draggable:!1}),this.leafletInstance.setZIndexOffset(1e3),this.leafletInstance.on("click",(t=>{if((!t.originalEvent.getModifierState("Shift")||!t.originalEvent.getModifierState("Alt"))&&this.description)return Pc.DomEvent.stop(t),void this.parent.popup.setTarget(this.leafletInstance).open(this.descriptionDisplay)})),this.leafletInstance.on("mouseover",(t=>{!this.map.isDrawing&&this.title&&(Pc.DomEvent.stop(t),this.parent.popup.setTarget(this.leafletInstance).open(this.iconDisplay))}))}get map(){return this.parent.map}}class Kc{constructor(t,e,a){this.parent=t,this.feature=e,this.leafletInstance=a,this.title=e.properties.title??e.properties.name??null,this.description=e.properties.description??null,this.title&&(this.iconDisplay=this.parent.buildTooltip(this.title,{icon:null!=this.description}),this.descriptionDisplay=this.parent.buildTooltip(this.title,{description:this.description})),this.leafletInstance.on("mouseover",(()=>this.onLayerMouseover())),this.leafletInstance.on("click",(t=>this.onLayerClick(t)))}get map(){return this.parent.map}getLatLngs(){if(this.leafletInstance instanceof Pc.Polyline)return this.leafletInstance.getLatLngs().flat(2)}onLayerMouseover(){(this.title||this.description)&&(this.map.isDrawing||this.parent.popup.setTarget(this.leafletInstance.getBounds().getCenter()).open(this.iconDisplay,this.leafletInstance))}onLayerClick(t){if(!t.originalEvent.getModifierState(ge))return t.originalEvent.getModifierState("Shift")&&t.originalEvent.getModifierState("Alt")||!this.title?void this.map.leafletInstance.fire("click",t,!0):(this.parent.popup.setTarget(t.latlng).open(this.descriptionDisplay,this.leafletInstance),void Pc.DomEvent.stopPropagation(t));this._focus()}_focus(){const{lat:t,lng:e}=Le(this.leafletInstance.getBounds().getCenter());this.map.log(`Feature was Control clicked. Moving to bounds [${t}, ${e}]`),this.map.leafletInstance.fitBounds(this.leafletInstance.getBounds())}}var Uc=a(520),qc=a(477),jc=a.n(qc);function Yc(){return jc()('(()=>{var e={647:(e,t,n)=>{function r(e){this.options=e||{locator:{}}}function a(){this.cdata=!1}function i(e,t){t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber}function o(e){if(e)return"\\n@"+(e.systemId||"")+"#[line:"+e.lineNumber+",col:"+e.columnNumber+"]"}function s(e,t,n){return"string"==typeof e?e.substr(t,n):e.length>=t+n||t?new java.lang.String(e,t,n)+"":e}function l(e,t){e.currentElement?e.currentElement.appendChild(t):e.doc.appendChild(t)}r.prototype.parseFromString=function(e,t){var n=this.options,r=new h,i=n.domBuilder||new a,s=n.errorHandler,l=n.locator,c=n.xmlns||{},m=/\\/x?html?$/.test(t),p=m?u.entityMap:{lt:"<",gt:">",amp:"&",quot:\'"\',apos:"\'"};return l&&i.setDocumentLocator(l),r.errorHandler=function(e,t,n){if(!e){if(t instanceof a)return t;e=t}var r={},i=e instanceof Function;function s(t){var a=e[t];!a&&i&&(a=2==e.length?function(n){e(t,n)}:e),r[t]=a&&function(e){a("[xmldom "+t+"]\\t"+e+o(n))}||function(){}}return n=n||{},s("warning"),s("error"),s("fatalError"),r}(s,i,l),r.domBuilder=n.domBuilder||i,m&&(c[""]="http://www.w3.org/1999/xhtml"),c.xml=c.xml||"http://www.w3.org/XML/1998/namespace",e&&"string"==typeof e?r.parse(e,c,p):r.errorHandler.error("invalid doc source"),i.doc},a.prototype={startDocument:function(){this.doc=(new p).createDocument(null,null,null),this.locator&&(this.doc.documentURI=this.locator.systemId)},startElement:function(e,t,n,r){var a=this.doc,o=a.createElementNS(e,n||t),s=r.length;l(this,o),this.currentElement=o,this.locator&&i(this.locator,o);for(var u=0;u{function n(e,t){for(var n in e)t[n]=e[n]}function r(e,t){var r=e.prototype;if(!(r instanceof t)){function a(){}a.prototype=t.prototype,n(r,a=new a),e.prototype=r=a}r.constructor!=e&&("function"!=typeof e&&console.error("unknow Class:"+e),r.constructor=e)}var a="http://www.w3.org/1999/xhtml",i={},o=i.ELEMENT_NODE=1,s=i.ATTRIBUTE_NODE=2,l=i.TEXT_NODE=3,u=i.CDATA_SECTION_NODE=4,c=i.ENTITY_REFERENCE_NODE=5,h=i.ENTITY_NODE=6,m=i.PROCESSING_INSTRUCTION_NODE=7,p=i.COMMENT_NODE=8,d=i.DOCUMENT_NODE=9,f=i.DOCUMENT_TYPE_NODE=10,g=i.DOCUMENT_FRAGMENT_NODE=11,N=i.NOTATION_NODE=12,v={},w={},y=(v.INDEX_SIZE_ERR=(w[1]="Index size error",1),v.DOMSTRING_SIZE_ERR=(w[2]="DOMString size error",2),v.HIERARCHY_REQUEST_ERR=(w[3]="Hierarchy request error",3)),E=(v.WRONG_DOCUMENT_ERR=(w[4]="Wrong document",4),v.INVALID_CHARACTER_ERR=(w[5]="Invalid character",5),v.NO_DATA_ALLOWED_ERR=(w[6]="No data allowed",6),v.NO_MODIFICATION_ALLOWED_ERR=(w[7]="No modification allowed",7),v.NOT_FOUND_ERR=(w[8]="Not found",8)),b=(v.NOT_SUPPORTED_ERR=(w[9]="Not supported",9),v.INUSE_ATTRIBUTE_ERR=(w[10]="Attribute in use",10));function x(e,t){if(t instanceof Error)var n=t;else n=this,Error.call(this,w[e]),this.message=w[e],Error.captureStackTrace&&Error.captureStackTrace(this,x);return n.code=e,t&&(this.message=this.message+": "+t),n}function T(){}function _(e,t){this._node=e,this._refresh=t,D(this)}function D(e){var t=e._node._inc||e._node.ownerDocument._inc;if(e._inc!=t){var r=e._refresh(e._node);re(e,"length",r.length),n(r,e),e._inc=t}}function C(){}function S(e,t){for(var n=e.length;n--;)if(e[n]===t)return n}function A(e,t,n,r){if(r?t[S(t,r)]=n:t[t.length++]=n,e){n.ownerElement=e;var a=e.ownerDocument;a&&(r&&F(a,e,r),function(e,t,n){e&&e._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&(t._nsMap[n.prefix?n.localName:""]=n.value)}(a,e,n))}}function I(e,t,n){var r=S(t,n);if(!(r>=0))throw x(E,new Error(e.tagName+"@"+n));for(var a=t.length-1;r"==e&&">")||"&"==e&&"&"||\'"\'==e&&"""||"&#"+e.charCodeAt()+";"}function B(e,t){if(t(e))return!0;if(e=e.firstChild)do{if(B(e,t))return!0}while(e=e.nextSibling)}function k(){}function F(e,t,n,r){e&&e._inc++,"http://www.w3.org/2000/xmlns/"==n.namespaceURI&&delete t._nsMap[n.prefix?n.localName:""]}function U(e,t,n){if(e&&e._inc){e._inc++;var r=t.childNodes;if(n)r[r.length++]=n;else{for(var a=t.firstChild,i=0;a;)r[i++]=a,a=a.nextSibling;r.length=i}}}function P(e,t){var n=t.previousSibling,r=t.nextSibling;return n?n.nextSibling=r:e.firstChild=r,r?r.previousSibling=n:e.lastChild=n,U(e.ownerDocument,e),t}function q(e,t,n){var r=t.parentNode;if(r&&r.removeChild(t),t.nodeType===g){var a=t.firstChild;if(null==a)return t;var i=t.lastChild}else a=i=t;var o=n?n.previousSibling:e.lastChild;a.previousSibling=o,i.nextSibling=n,o?o.nextSibling=a:e.firstChild=a,null==n?e.lastChild=i:n.previousSibling=i;do{a.parentNode=e}while(a!==i&&(a=a.nextSibling));return U(e.ownerDocument||e,e),t.nodeType==g&&(t.firstChild=t.lastChild=null),t}function L(){this._nsMap={}}function $(){}function V(){}function j(){}function z(){}function H(){}function X(){}function Y(){}function G(){}function W(){}function Z(){}function Q(){}function J(e,t){var n=[],r=9==this.nodeType&&this.documentElement||this,a=r.prefix,i=r.namespaceURI;if(i&&null==a&&null==(a=r.lookupPrefix(i)))var o=[{namespace:i,prefix:null}];return ee(this,n,e,t,o),n.join("")}function K(e,t,n){var r=e.prefix||"",a=e.namespaceURI;if(!r&&!a)return!1;if("xml"===r&&"http://www.w3.org/XML/1998/namespace"===a||"http://www.w3.org/2000/xmlns/"==a)return!1;for(var i=n.length;i--;){var o=n[i];if(o.prefix==r)return o.namespace!=a}return!0}function ee(e,t,n,r,i){if(r){if(!(e=r(e)))return;if("string"==typeof e)return void t.push(e)}switch(e.nodeType){case o:i||(i=[]),i.length;var h=e.attributes,N=h.length,v=e.firstChild,w=e.tagName;n=a===e.namespaceURI||n,t.push("<",w);for(var y=0;y"),n&&/^script$/i.test(w))for(;v;)v.data?t.push(v.data):ee(v,t,n,r,i),v=v.nextSibling;else for(;v;)ee(v,t,n,r,i),v=v.nextSibling;t.push("")}else t.push("/>");return;case d:case g:for(v=e.firstChild;v;)ee(v,t,n,r,i),v=v.nextSibling;return;case s:return t.push(" ",e.name,\'="\',e.value.replace(/[<&"]/g,M),\'"\');case l:return t.push(e.data.replace(/[<&]/g,M).replace(/]]>/g,"]]>"));case u:return t.push("");case p:return t.push("\\x3c!--",e.data,"--\\x3e");case f:var _=e.publicId,D=e.systemId;if(t.push("");else if(D&&"."!=D)t.push(" SYSTEM ",D,">");else{var C=e.internalSubset;C&&t.push(" [",C,"]"),t.push(">")}return;case m:return t.push("");case c:return t.push("&",e.nodeName,";");default:t.push("??",e.nodeName)}}function te(e,t,n){var r;switch(t.nodeType){case o:(r=t.cloneNode(!1)).ownerDocument=e;case g:break;case s:n=!0}if(r||(r=t.cloneNode(!1)),r.ownerDocument=e,r.parentNode=null,n)for(var a=t.firstChild;a;)r.appendChild(te(e,a,n)),a=a.nextSibling;return r}function ne(e,t,n){var r=new t.constructor;for(var a in t){var i=t[a];"object"!=typeof i&&i!=r[a]&&(r[a]=i)}switch(t.childNodes&&(r.childNodes=new T),r.ownerDocument=e,r.nodeType){case o:var l=t.attributes,u=r.attributes=new C,c=l.length;u._ownerElement=r;for(var h=0;h0},lookupPrefix:function(e){for(var t=this;t;){var n=t._nsMap;if(n)for(var r in n)if(n[r]==e)return r;t=t.nodeType==s?t.ownerDocument:t.parentNode}return null},lookupNamespaceURI:function(e){for(var t=this;t;){var n=t._nsMap;if(n&&e in n)return n[e];t=t.nodeType==s?t.ownerDocument:t.parentNode}return null},isDefaultNamespace:function(e){return null==this.lookupPrefix(e)}},n(i,R),n(i,R.prototype),k.prototype={nodeName:"#document",nodeType:d,doctype:null,documentElement:null,_inc:1,insertBefore:function(e,t){if(e.nodeType==g){for(var n=e.firstChild;n;){var r=n.nextSibling;this.insertBefore(n,t),n=r}return e}return null==this.documentElement&&e.nodeType==o&&(this.documentElement=e),q(this,e,t),e.ownerDocument=this,e},removeChild:function(e){return this.documentElement==e&&(this.documentElement=null),P(this,e)},importNode:function(e,t){return te(this,e,t)},getElementById:function(e){var t=null;return B(this.documentElement,(function(n){if(n.nodeType==o&&n.getAttribute("id")==e)return t=n,!0})),t},getElementsByClassName:function(e){var t=new RegExp("(^|\\\\s)"+e+"(\\\\s|$)");return new _(this,(function(e){var n=[];return B(e.documentElement,(function(r){r!==e&&r.nodeType==o&&t.test(r.getAttribute("class"))&&n.push(r)})),n}))},createElement:function(e){var t=new L;return t.ownerDocument=this,t.nodeName=e,t.tagName=e,t.childNodes=new T,(t.attributes=new C)._ownerElement=t,t},createDocumentFragment:function(){var e=new Z;return e.ownerDocument=this,e.childNodes=new T,e},createTextNode:function(e){var t=new j;return t.ownerDocument=this,t.appendData(e),t},createComment:function(e){var t=new z;return t.ownerDocument=this,t.appendData(e),t},createCDATASection:function(e){var t=new H;return t.ownerDocument=this,t.appendData(e),t},createProcessingInstruction:function(e,t){var n=new Q;return n.ownerDocument=this,n.tagName=n.target=e,n.nodeValue=n.data=t,n},createAttribute:function(e){var t=new $;return t.ownerDocument=this,t.name=e,t.nodeName=e,t.localName=e,t.specified=!0,t},createEntityReference:function(e){var t=new W;return t.ownerDocument=this,t.nodeName=e,t},createElementNS:function(e,t){var n=new L,r=t.split(":"),a=n.attributes=new C;return n.childNodes=new T,n.ownerDocument=this,n.nodeName=t,n.tagName=t,n.namespaceURI=e,2==r.length?(n.prefix=r[0],n.localName=r[1]):n.localName=t,a._ownerElement=n,n},createAttributeNS:function(e,t){var n=new $,r=t.split(":");return n.ownerDocument=this,n.nodeName=t,n.name=t,n.namespaceURI=e,n.specified=!0,2==r.length?(n.prefix=r[0],n.localName=r[1]):n.localName=t,n}},r(k,R),L.prototype={nodeType:o,hasAttribute:function(e){return null!=this.getAttributeNode(e)},getAttribute:function(e){var t=this.getAttributeNode(e);return t&&t.value||""},getAttributeNode:function(e){return this.attributes.getNamedItem(e)},setAttribute:function(e,t){var n=this.ownerDocument.createAttribute(e);n.value=n.nodeValue=""+t,this.setAttributeNode(n)},removeAttribute:function(e){var t=this.getAttributeNode(e);t&&this.removeAttributeNode(t)},appendChild:function(e){return e.nodeType===g?this.insertBefore(e,null):function(e,t){var n=t.parentNode;if(n){var r=e.lastChild;n.removeChild(t),r=e.lastChild}return r=e.lastChild,t.parentNode=e,t.previousSibling=r,t.nextSibling=null,r?r.nextSibling=t:e.firstChild=t,e.lastChild=t,U(e.ownerDocument,e,t),t}(this,e)},setAttributeNode:function(e){return this.attributes.setNamedItem(e)},setAttributeNodeNS:function(e){return this.attributes.setNamedItemNS(e)},removeAttributeNode:function(e){return this.attributes.removeNamedItem(e.nodeName)},removeAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);n&&this.removeAttributeNode(n)},hasAttributeNS:function(e,t){return null!=this.getAttributeNodeNS(e,t)},getAttributeNS:function(e,t){var n=this.getAttributeNodeNS(e,t);return n&&n.value||""},setAttributeNS:function(e,t,n){var r=this.ownerDocument.createAttributeNS(e,t);r.value=r.nodeValue=""+n,this.setAttributeNode(r)},getAttributeNodeNS:function(e,t){return this.attributes.getNamedItemNS(e,t)},getElementsByTagName:function(e){return new _(this,(function(t){var n=[];return B(t,(function(r){r===t||r.nodeType!=o||"*"!==e&&r.tagName!=e||n.push(r)})),n}))},getElementsByTagNameNS:function(e,t){return new _(this,(function(n){var r=[];return B(n,(function(a){a===n||a.nodeType!==o||"*"!==e&&a.namespaceURI!==e||"*"!==t&&a.localName!=t||r.push(a)})),r}))}},k.prototype.getElementsByTagName=L.prototype.getElementsByTagName,k.prototype.getElementsByTagNameNS=L.prototype.getElementsByTagNameNS,r(L,R),$.prototype.nodeType=s,r($,R),V.prototype={data:"",substringData:function(e,t){return this.data.substring(e,e+t)},appendData:function(e){e=this.data+e,this.nodeValue=this.data=e,this.length=e.length},insertData:function(e,t){this.replaceData(e,0,t)},appendChild:function(e){throw new Error(w[y])},deleteData:function(e,t){this.replaceData(e,t,"")},replaceData:function(e,t,n){n=this.data.substring(0,e)+n+this.data.substring(e+t),this.nodeValue=this.data=n,this.length=n.length}},r(V,R),j.prototype={nodeName:"#text",nodeType:l,splitText:function(e){var t=this.data,n=t.substring(e);t=t.substring(0,e),this.data=this.nodeValue=t,this.length=t.length;var r=this.ownerDocument.createTextNode(n);return this.parentNode&&this.parentNode.insertBefore(r,this.nextSibling),r}},r(j,V),z.prototype={nodeName:"#comment",nodeType:p},r(z,V),H.prototype={nodeName:"#cdata-section",nodeType:u},r(H,V),X.prototype.nodeType=f,r(X,R),Y.prototype.nodeType=N,r(Y,R),G.prototype.nodeType=h,r(G,R),W.prototype.nodeType=c,r(W,R),Z.prototype.nodeName="#document-fragment",Z.prototype.nodeType=g,r(Z,R),Q.prototype.nodeType=m,r(Q,R),R.prototype.toString=J;try{if(Object.defineProperty){function ae(e){switch(e.nodeType){case o:case g:var t=[];for(e=e.firstChild;e;)7!==e.nodeType&&8!==e.nodeType&&t.push(ae(e)),e=e.nextSibling;return t.join("");default:return e.nodeValue}}Object.defineProperty(_.prototype,"length",{get:function(){return D(this),this.$$length}}),Object.defineProperty(R.prototype,"textContent",{get:function(){return ae(this)},set:function(e){switch(this.nodeType){case o:case g:for(;this.firstChild;)this.removeChild(this.firstChild);(e||String(e))&&this.appendChild(this.ownerDocument.createTextNode(e));break;default:this.data=e,this.value=e,this.nodeValue=e}}}),re=function(e,t,n){e["$$"+t]=n}}}catch(ie){}t.DOMImplementation=O},791:(e,t)=>{t.entityMap={lt:"<",gt:">",amp:"&",quot:\'"\',apos:"\'",Agrave:"À",Aacute:"Á",Acirc:"Â",Atilde:"Ã",Auml:"Ä",Aring:"Å",AElig:"Æ",Ccedil:"Ç",Egrave:"È",Eacute:"É",Ecirc:"Ê",Euml:"Ë",Igrave:"Ì",Iacute:"Í",Icirc:"Î",Iuml:"Ï",ETH:"Ð",Ntilde:"Ñ",Ograve:"Ò",Oacute:"Ó",Ocirc:"Ô",Otilde:"Õ",Ouml:"Ö",Oslash:"Ø",Ugrave:"Ù",Uacute:"Ú",Ucirc:"Û",Uuml:"Ü",Yacute:"Ý",THORN:"Þ",szlig:"ß",agrave:"à",aacute:"á",acirc:"â",atilde:"ã",auml:"ä",aring:"å",aelig:"æ",ccedil:"ç",egrave:"è",eacute:"é",ecirc:"ê",euml:"ë",igrave:"ì",iacute:"í",icirc:"î",iuml:"ï",eth:"ð",ntilde:"ñ",ograve:"ò",oacute:"ó",ocirc:"ô",otilde:"õ",ouml:"ö",oslash:"ø",ugrave:"ù",uacute:"ú",ucirc:"û",uuml:"ü",yacute:"ý",thorn:"þ",yuml:"ÿ",nbsp:" ",iexcl:"¡",cent:"¢",pound:"£",curren:"¤",yen:"¥",brvbar:"¦",sect:"§",uml:"¨",copy:"©",ordf:"ª",laquo:"«",not:"¬",shy:"­­",reg:"®",macr:"¯",deg:"°",plusmn:"±",sup2:"²",sup3:"³",acute:"´",micro:"µ",para:"¶",middot:"·",cedil:"¸",sup1:"¹",ordm:"º",raquo:"»",frac14:"¼",frac12:"½",frac34:"¾",iquest:"¿",times:"×",divide:"÷",forall:"∀",part:"∂",exist:"∃",empty:"∅",nabla:"∇",isin:"∈",notin:"∉",ni:"∋",prod:"∏",sum:"∑",minus:"−",lowast:"∗",radic:"√",prop:"∝",infin:"∞",ang:"∠",and:"∧",or:"∨",cap:"∩",cup:"∪",int:"∫",there4:"∴",sim:"∼",cong:"≅",asymp:"≈",ne:"≠",equiv:"≡",le:"≤",ge:"≥",sub:"⊂",sup:"⊃",nsub:"⊄",sube:"⊆",supe:"⊇",oplus:"⊕",otimes:"⊗",perp:"⊥",sdot:"⋅",Alpha:"Α",Beta:"Β",Gamma:"Γ",Delta:"Δ",Epsilon:"Ε",Zeta:"Ζ",Eta:"Η",Theta:"Θ",Iota:"Ι",Kappa:"Κ",Lambda:"Λ",Mu:"Μ",Nu:"Ν",Xi:"Ξ",Omicron:"Ο",Pi:"Π",Rho:"Ρ",Sigma:"Σ",Tau:"Τ",Upsilon:"Υ",Phi:"Φ",Chi:"Χ",Psi:"Ψ",Omega:"Ω",alpha:"α",beta:"β",gamma:"γ",delta:"δ",epsilon:"ε",zeta:"ζ",eta:"η",theta:"θ",iota:"ι",kappa:"κ",lambda:"λ",mu:"μ",nu:"ν",xi:"ξ",omicron:"ο",pi:"π",rho:"ρ",sigmaf:"ς",sigma:"σ",tau:"τ",upsilon:"υ",phi:"φ",chi:"χ",psi:"ψ",omega:"ω",thetasym:"ϑ",upsih:"ϒ",piv:"ϖ",OElig:"Œ",oelig:"œ",Scaron:"Š",scaron:"š",Yuml:"Ÿ",fnof:"ƒ",circ:"ˆ",tilde:"˜",ensp:" ",emsp:" ",thinsp:" ",zwnj:"‌",zwj:"‍",lrm:"‎",rlm:"‏",ndash:"–",mdash:"—",lsquo:"‘",rsquo:"’",sbquo:"‚",ldquo:"“",rdquo:"”",bdquo:"„",dagger:"†",Dagger:"‡",bull:"•",hellip:"…",permil:"‰",prime:"′",Prime:"″",lsaquo:"‹",rsaquo:"›",oline:"‾",euro:"€",trade:"™",larr:"←",uarr:"↑",rarr:"→",darr:"↓",harr:"↔",crarr:"↵",lceil:"⌈",rceil:"⌉",lfloor:"⌊",rfloor:"⌋",loz:"◊",spades:"♠",clubs:"♣",hearts:"♥",diams:"♦"}},275:(e,t)=>{var n=/[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]/,r=new RegExp("[\\\\-\\\\.0-9"+n.source.slice(1,-1)+"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]"),a=new RegExp("^"+n.source+r.source+"*(?::"+n.source+r.source+"*)?$");function i(e,t){this.message=e,this.locator=t,Error.captureStackTrace&&Error.captureStackTrace(this,i)}function o(){}function s(e,t){return t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}function l(e,t,n,r,a,i){function o(e,t,r){e in n.attributeNames&&i.fatalError("Attribute "+e+" redefined"),n.addValue(e,t,r)}for(var s,l=++t,u=0;;){var c=e.charAt(l);switch(c){case"=":if(1===u)s=e.slice(t,l),u=3;else{if(2!==u)throw new Error("attribute equal must after attrName");u=3}break;case"\'":case\'"\':if(3===u||1===u){if(1===u&&(i.warning(\'attribute value must after "="\'),s=e.slice(t,l)),t=l+1,!((l=e.indexOf(c,t))>0))throw new Error("attribute value no end \'"+c+"\' match");o(s,h=e.slice(t,l).replace(/&#?\\w+;/g,a),t-1),u=5}else{if(4!=u)throw new Error(\'attribute value must after "="\');o(s,h=e.slice(t,l).replace(/&#?\\w+;/g,a),t),i.warning(\'attribute "\'+s+\'" missed start quot(\'+c+")!!"),t=l+1,u=5}break;case"/":switch(u){case 0:n.setTagName(e.slice(t,l));case 5:case 6:case 7:u=7,n.closed=!0;case 4:case 1:case 2:break;default:throw new Error("attribute invalid close char(\'/\')")}break;case"":return i.error("unexpected end of input"),0==u&&n.setTagName(e.slice(t,l)),l;case">":switch(u){case 0:n.setTagName(e.slice(t,l));case 5:case 6:case 7:break;case 4:case 1:"/"===(h=e.slice(t,l)).slice(-1)&&(n.closed=!0,h=h.slice(0,-1));case 2:2===u&&(h=s),4==u?(i.warning(\'attribute "\'+h+\'" missed quot(")!\'),o(s,h.replace(/&#?\\w+;/g,a),t)):("http://www.w3.org/1999/xhtml"===r[""]&&h.match(/^(?:disabled|checked|selected)$/i)||i.warning(\'attribute "\'+h+\'" missed value!! "\'+h+\'" instead!!\'),o(h,h,t));break;case 3:throw new Error("attribute value missed!!")}return l;case"€":c=" ";default:if(c<=" ")switch(u){case 0:n.setTagName(e.slice(t,l)),u=6;break;case 1:s=e.slice(t,l),u=2;break;case 4:var h=e.slice(t,l).replace(/&#?\\w+;/g,a);i.warning(\'attribute "\'+h+\'" missed quot(")!!\'),o(s,h,t);case 5:u=6}else switch(u){case 2:n.tagName,"http://www.w3.org/1999/xhtml"===r[""]&&s.match(/^(?:disabled|checked|selected)$/i)||i.warning(\'attribute "\'+s+\'" missed value!! "\'+s+\'" instead2!!\'),o(s,s,t),t=l,u=1;break;case 5:i.warning(\'attribute space is required"\'+s+\'"!!\');case 6:u=1,t=l;break;case 3:u=4,t=l;break;case 7:throw new Error("elements closed character \'/\' and \'>\' must be connected to")}}l++}}function u(e,t,n){for(var r=e.tagName,a=null,i=e.length;i--;){var o=e[i],s=o.qName,l=o.value;if((p=s.indexOf(":"))>0)var u=o.prefix=s.slice(0,p),c=s.slice(p+1),h="xmlns"===u&&c;else c=s,u=null,h="xmlns"===s&&"";o.localName=c,!1!==h&&(null==a&&(a={},m(n,n={})),n[h]=a[h]=l,o.uri="http://www.w3.org/2000/xmlns/",t.startPrefixMapping(h,l))}for(i=e.length;i--;)(u=(o=e[i]).prefix)&&("xml"===u&&(o.uri="http://www.w3.org/XML/1998/namespace"),"xmlns"!==u&&(o.uri=n[u||""]));var p;(p=r.indexOf(":"))>0?(u=e.prefix=r.slice(0,p),c=e.localName=r.slice(p+1)):(u=null,c=e.localName=r);var d=e.uri=n[u||""];if(t.startElement(d,c,r,e),!e.closed)return e.currentNSMap=n,e.localNSMap=a,!0;if(t.endElement(d,c,r),a)for(u in a)t.endPrefixMapping(u)}function c(e,t,n,r,a){if(/^(?:script|textarea)$/i.test(n)){var i=e.indexOf("",t),o=e.substring(t+1,i);if(/[&<]/.test(o))return/^script$/i.test(n)?(a.characters(o,0,o.length),i):(o=o.replace(/&#?\\w+;/g,r),a.characters(o,0,o.length),i)}return t+1}function h(e,t,n,r){var a=r[n];return null==a&&((a=e.lastIndexOf(""))t?(n.comment(e,t+4,a-t-4),a+3):(r.error("Unclosed comment"),-1):-1;if("CDATA["==e.substr(t+3,6)){var a=e.indexOf("]]>",t+9);return n.startCDATA(),n.characters(e,t+9,a-t-9),n.endCDATA(),a+3}var i=function(e,t){var n,r=[],a=/\'[^\']+\'|"[^"]+"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;for(a.lastIndex=t,a.exec(e);n=a.exec(e);)if(r.push(n),n[1])return r}(e,t),o=i.length;if(o>1&&/!doctype/i.test(i[0][0])){var s=i[1][0],l=!1,u=!1;o>3&&(/^public$/i.test(i[2][0])?(l=i[3][0],u=o>4&&i[4][0]):/^system$/i.test(i[2][0])&&(u=i[3][0]));var c=i[o-1];return n.startDTD(s,l,u),n.endDTD(),c.index+c[0].length}return-1}function d(e,t,n){var r=e.indexOf("?>",t);if(r){var a=e.substring(t,r).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);return a?(a[0].length,n.processingInstruction(a[1],a[2]),r+2):-1}return-1}function f(){this.attributeNames={}}i.prototype=new Error,i.prototype.name=i.name,o.prototype={parse:function(e,t,n){var r=this.domBuilder;r.startDocument(),m(t,t={}),function(e,t,n,r,a){function o(e){var t=e.slice(1,-1);return t in n?n[t]:"#"===t.charAt(0)?function(e){if(e>65535){var t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}(parseInt(t.substr(1).replace("x","0x"))):(a.error("entity not found:"+e),e)}function m(t){if(t>x){var n=e.substring(x,t).replace(/&#?\\w+;/g,o);y&&g(x),r.characters(n,0,t-x),x=t}}function g(t,n){for(;t>=v&&(n=w.exec(e));)N=n.index,v=N+n[0].length,y.lineNumber++;y.columnNumber=t-N+1}for(var N=0,v=0,w=/.*(?:\\r\\n?|\\n)|.*$/g,y=r.locator,E=[{currentNSMap:t}],b={},x=0;;){try{var T=e.indexOf("<",x);if(T<0){if(!e.substr(x).match(/^\\s*$/)){var _=r.doc,D=_.createTextNode(e.substr(x));_.appendChild(D),r.currentElement=D}return}switch(T>x&&m(T),e.charAt(T+1)){case"/":var C=e.indexOf(">",T+3),S=e.substring(T+2,C),A=E.pop();C<0?(S=e.substring(T+2).replace(/[\\s<].*/,""),a.error("end tag name: "+S+" is not complete:"+A.tagName),C=T+1+S.length):S.match(/\\sx?x=C:m(Math.max(T,x)+1)}}(e,t,n,r,this.errorHandler),r.endDocument()}},f.prototype={setTagName:function(e){if(!a.test(e))throw new Error("invalid tagName:"+e);this.tagName=e},addValue:function(e,t,n){if(!a.test(e))throw new Error("invalid attribute:"+e);this.attributeNames[e]=this.length,this[this.length++]={qName:e,value:t,offset:n}},length:0,getLocalName:function(e){return this[e].localName},getLocator:function(e){return this[e].locator},getQName:function(e){return this[e].qName},getURI:function(e){return this[e].uri},getValue:function(e){return this[e].value}},t.XMLReader=o,t.ParseError=i}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var i=t[r]={exports:{}};return e[r](i,i.exports,n),i.exports}(()=>{"use strict";var e=n(647);const t=self;t.onmessage=async e=>{try{let n=e.data.string;n=n.replace(/>\\s+<"),n=n.replace(/gpxtpx:|gpxx:|ns3:|gpxdata:|wptx1:|ctx:|mytrails:/g,""),n=n.replace(/cadence>/g,"cad>"),n=n.replace(/heartrate>/g,"hr>"),n=n.replace(/<\\/temp>/g,""),n=n.replace(//g,"");const r=new s(n);t.postMessage({data:r.info})}catch(e){t.postMessage({error:e})}};const r=36e5,a=864e5,i={color:"blue"},o={parseElements:["track","route","waypoint"],joinTrackSegments:!0,max_point_interval:15e3,polyline_options:i};class s{constructor(e,t=o){this.xml=e,this.layers={},this.options={...t,...o},this._init_info(),this._parse(this.xml)}get_duration_string(e,t){let n="";e>=a&&(n+=Math.floor(e/a)+"d ",e%=a),e>=r&&(n+=Math.floor(e/r)+":",e%=r);const i=Math.floor(e/6e4);e%=6e4,i<10&&(n+="0"),n+=i+"\'";const o=Math.floor(e/1e3);return e%=1e3,o<10&&(n+="0"),n+=o,n+=!t&&e>0?"."+Math.round(1e3*Math.floor(e))/1e3:\'"\',n}get_duration_string_iso(e,t){return this.get_duration_string(e,t).replace("\'",":").replace(\'"\',"")}_merge_objs(e,t){return{...e,...t}}_prepare_data_point(e,t,n,r){const a=[t&&t(e[0])||e[0],n&&n(e[1])||e[1]];return a.push(r&&r(a[0],a[1])||a[0]+": "+a[1]),a}_init_info(){this.info={name:null,desc:null,author:null,copyright:null,waypoints:[],styles:[],coords:[],length:0,flags:{elevation:!1,speed:!1,hr:!1,duration:!1,atemp:!1,cad:!1},elevation:{gain:0,loss:0,max:0,min:1/0,total:0,avg:0,points:[]},speed:{max:0,min:1/0,avg:0,total:0,points:[]},hr:{avg:0,min:1/0,max:0,total:0,points:[]},duration:{start:null,end:null,moving:0,total:0},atemp:{avg:0,min:1/0,max:0,total:0,points:[]},cad:{avg:0,min:1/0,max:0,total:0,points:[]}}}_parse(t,n=this.options,r=!1){const a=(e,t)=>{const n=this._parse_gpx_data(e,t);if(!n)throw new Error("No layers found.");this.layers=n,this.info.coords=this.layers.map((e=>e.coords)),this.info.styles=this.layers.map((e=>e.style))},i=new e.a;r?setTimeout((function(){a(i.parseFromString(t,"text/xml"),n)})):a(i.parseFromString(t,"text/xml"),n)}_parse_gpx_data(e,t=this.options){let n=[];const r=e.getElementsByTagName("name");r.length>0&&(this.info.name=r[0].textContent);const a=e.getElementsByTagName("desc");a.length>0&&(this.info.desc=a[0].textContent);const i=e.getElementsByTagName("author");i.length>0&&(this.info.author=i[0].textContent);const o=e.getElementsByTagName("copyright");o.length>0&&(this.info.copyright=o[0].textContent);const s=t.parseElements;if(s.indexOf("route")>-1){const r=e.getElementsByTagName("rte");for(let e=0;e-1){const r=e.getElementsByTagName("trk");for(let e=0;e-1){this.info.waypoints=[];const t=e.getElementsByTagName("wpt");for(let e=0;e0?n[0].textContent:"",a=t[e].getElementsByTagName("desc"),i=a.length>0?a[0].textContent:"",o=t[e].getElementsByTagName("sym"),s=o.length>0?o[0].textContent:null,u=t[e].getElementsByTagName("type"),c=u.length>0?u[0].textContent:null;this.info.waypoints.push({...l,name:r,desc:i,symbol:s,type:c})}}return n}_parse_segment(e,t,n,r){const a=e.getElementsByTagName(r);if(!a.length)return[];const i=[];let o=null;for(let e=0;e0&&!isNaN(Date.parse(r[0].textContent))&&(n.meta.time=new Date(Date.parse(r[0].textContent)));const s=null!=o?Math.abs(n.meta.time?.valueOf()??0-o.meta.time?.valueOf())??null:null,l=a[e].getElementsByTagName("ele");l.length>0?(n.meta.elevation=parseFloat(l[0].textContent),this.info.flags.elevation=!0):o&&o.meta?.elevation?(n.meta.elevation=o.meta.elevation,this.info.flags.elevation=!0):n.meta.elevation=null;const u=null!=o?n.meta.elevation-o.meta.elevation:null,c=null!=o?this._dist3d(o,n):null,h=a[e].getElementsByTagName("speed");h.length>0?(this.info.flags.speed=!0,n.meta.speed=parseFloat(h[0].textContent)):n.meta.speed=s>0?1e3*c/s:null;const m=a[e].getElementsByTagNameNS("*","hr");m.length>0&&(this.info.flags.hr=!0,n.meta.hr=parseInt(m[0].textContent),this.info.hr.points.push([n.lat,n.lng,n.meta.hr]),this.info.hr.total+=n.meta.hr);const p=a[e].getElementsByTagNameNS("*","cad");p.length>0&&(this.info.flags.cad=!0,n.meta.cad=parseInt(p[0].textContent),this.info.cad.points.push([n.lat,n.lng,n.meta.cad]),this.info.cad.total+=n.meta.cad,n.meta.cad>this.info.cad.max&&(this.info.cad.max=n.meta.cad),n.meta.cad0&&(this.info.flags.atemp=!0,n.meta.atemp=parseInt(d[0].textContent),this.info.atemp.points.push([n.lat,n.lng,n.meta.atemp]),this.info.atemp.total+=n.meta.atemp),n.meta.elevation>this.info.elevation.max&&(this.info.elevation.max=n.meta.elevation),n.meta.elevationthis.info.speed.max&&(this.info.speed.max=n.meta.speed),n.meta.speed0?this.info.elevation.gain+=u:this.info.elevation.loss+=Math.abs(u),o=n,i.push(n)}return[{coords:i,style:this._extract_styling(e,n,t.polyline_options)}]}_extract_styling(e,t,n){var r,a=this._merge_objs(i,t),o=e.getElementsByTagNameNS("http://www.topografix.com/GPX/gpx_style/0/2","line");return o.length>0&&((r=o[0].getElementsByTagName("color")).length>0&&(a.color="#"+r[0].textContent),(r=o[0].getElementsByTagName("opacity")).length>0&&(a.opacity=r[0].textContent),(r=o[0].getElementsByTagName("weight")).length>0&&(a.weight=r[0].textContent),(r=o[0].getElementsByTagName("linecap")).length>0&&(a.lineCap=r[0].textContent),(r=o[0].getElementsByTagName("linejoin")).length>0&&(a.lineJoin=r[0].textContent),(r=o[0].getElementsByTagName("dasharray")).length>0&&(a.dashArray=r[0].textContent),(r=o[0].getElementsByTagName("dashoffset")).length>0&&(a.dashOffset=r[0].textContent)),this._merge_objs(a,n)}_dist2d(e,t){var n=this._deg2rad(t.lat-e.lat),r=this._deg2rad(t.lng-e.lng),a=Math.sin(n/2)*Math.sin(n/2)+Math.cos(this._deg2rad(e.lat))*Math.cos(this._deg2rad(t.lat))*Math.sin(r/2)*Math.sin(r/2);return 2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a))*6371e3}_dist3d(e,t){var n=this._dist2d(e,t),r=Math.abs(t.meta.elevation-e.meta.elevation);return Math.sqrt(Math.pow(n,2)+Math.pow(r,2))}_deg2rad(e){return e*Math.PI/180}}})()})();',"Worker",{name:"Leaflet Image Loader",esModule:!1},void 0)}let Rc=window[lr];const Wc=window.moment.locale,Zc={weight:3,outlineWidth:1};function Jc(t){return t.length&&t[0]instanceof Array?1+Jc(t[0]):0}class _c extends tc{constructor(t,e,a){super(),this.map=t,this.icons=a,this.popup=Vr(this.map,this,{permanent:!0}),this.data={flags:{elevation:!1,speed:!1,hr:!1,duration:!1,atemp:!1,cad:!1}},this.targeted=!1,this.hotlines={},this.map.log("Parsing GPX Data."),this.worker=new Yc,this.icons.start&&!this.map.markerIcons.has(this.icons.start)&&(this.icons.start="default"),this.icons.end&&!this.map.markerIcons.has(this.icons.end)&&(this.icons.end="default"),this.icons.waypoint&&!this.map.markerIcons.has(this.icons.waypoint)&&(this.icons.waypoint="default"),this.worker.postMessage({string:e}),this.worker.onmessage=t=>{this.worker.terminate(),t.data.error?this.map.log("There was an error parsing GPX Data."):(this.map.log("GPX Data parsed."),this.data=t.data.data,this.parsed=!0)},this.gpx=(0,Uc.gpx)((new DOMParser).parseFromString(e,"text/xml"));const i=[];this.gpx.features=this.gpx.features.map((t=>{if("Point"===t?.geometry?.type)t.properties={...t.properties??{},"marker-symbol":this.icons.waypoint};else if(t?.geometry&&"coordinates"in t.geometry){const e=t.geometry.coordinates;i.push(...e.flat(Jc(e)-1))}return t})),this.icons.start&&this.gpx.features.push({type:"Feature",geometry:{type:"Point",coordinates:i[0]},properties:{"marker-symbol":this.icons.start}}),this.icons.end&&this.gpx.features.push({type:"Feature",geometry:{type:"Point",coordinates:i[i.length-1]},properties:{"marker-symbol":this.icons.end}}),this.geojson=new Fc(this.map,this.group,{color:this.map.options.gpxColor,pane:"gpx"},this.gpx),this.leafletInstance.on("mouseover",(t=>{Rc.DomEvent.stop(t),this.map.leafletInstance.hasLayer(this.hotline)||this.targeted||this.leafletInstance.getLayers()[0].getElement().addClass("leaflet-layer-targeted")})),this.leafletInstance.on("mouseout",(t=>{this.map.leafletInstance.hasLayer(this.hotline)||this.targeted?this.popup.close():this.deselect()})),this.leafletInstance.on("click",(t=>{this.parsed&&this.map.gpxControl.setTarget(this)})),this.leafletInstance.on("mousemove",(t=>{if(this.parsed&&(this.map.leafletInstance.hasLayer(this.hotline)||this.targeted)){const e=this.findClosestPoint(t.latlng),a=this.popupContent(e);this.popup.setTarget(t.latlng).open(a)}}))}get leafletInstance(){return this.geojson.leafletInstance}get group(){return this.map.featureLayer}get renderer(){return this.map.canvas}switch(t){switch(this.map.leafletInstance.hasLayer(this.hotline)&&this.hotline.remove(),this.displaying=t,this.hide(),t){case"cad":this.hotline=Rc.hotline(this.cad.points,{min:this.cad.min,max:this.cad.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;case"ele":this.hotline=Rc.hotline(this.elevation.points,{min:this.elevation.min,max:this.elevation.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;case"hr":this.hotline=Rc.hotline(this.hr.points,{min:this.hr.min,max:this.hr.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;case"speed":this.hotline=Rc.hotline(this.speed.points,{min:this.speed.min,max:this.speed.max,...Zc,renderer:this.renderer}).addTo(this.map.leafletInstance);break;default:this.show()}}findClosestPoint(t){const e=[...this.points];return e.sort(((e,a)=>this.map.leafletInstance.distance(e,t)-this.map.leafletInstance.distance(a,t))),e[0]}get flags(){return this.data.flags}get points(){return this.data?.coords.flat()}get duration(){return this.data.duration}get speed(){return this.data.speed}get cad(){return this.data.cad}get elevation(){return this.data.elevation}get hr(){return this.data.hr}get atemp(){return this.data.atemp}deselect(){this.switch("default"),this.leafletInstance.getLayers()[0].getElement().removeClass("leaflet-layer-targeted"),this.targeted=!1}hide(){this.leafletInstance&&this.leafletInstance.setStyle({color:"transparent",weight:10})}show(){this.leafletInstance&&this.leafletInstance.setStyle({color:this.map.options.gpxColor,weight:2})}get polyline(){return this.featureGroup?.getLayers()?.filter((t=>t instanceof Rc.Polyline))?.shift()}popupContent(t){const{lat:e,lng:a}=Le(t),i=createDiv("gpx-popup");if(i.createSpan({text:`${Ce("Lat")}: ${e}, ${Ce("Lng")}: ${a}`}),t.meta.time&&i.createSpan({text:`${Ce("Time")}: ${t.meta.time.toLocaleString(Wc())}`}),t.meta.elevation&&!isNaN(t.meta.elevation)){const e="imperial"===this.map.plugin.unitSystemForUnit(this.map.unit)?"ft":"m",a=this.points[this.points.indexOf(t)-1];let n=t.meta.elevation-(a?.meta?.elevation??t.meta.elevation);const s=Nr(t.meta.elevation).from("m").to(e),r=i.createDiv("elevation gpx-elevation");let c,o;r.createSpan({text:`${Ce("Elevation")}: ${ye(s,2)} ${e} (`});const l=ye(Nr(n).from("m").to(e),1);Number(l)>0?(c=Ut(_t("angle-up")).node[0],o="elevation-gain"):Number(l)<0?(c=Ut(_t("angle-down")).node[0],o="elevation-loss"):(c=createSpan(),o="");const h=r.createSpan(o);h.appendChild(c),h.createSpan({text:`${Math.abs(Number(l))}${e}`}),r.createSpan({text:")"})}if(t.meta.speed&&!isNaN(t.meta.speed)){let e,a,n=t.meta.speed;switch(this.map.plugin.unitSystemForUnit(this.map.unit)){case"metric":n=60*Nr(n).from("m").to("km")*60,e="km/h",a="km";break;case"imperial":n=60*Nr(n).from("m").to("mi")*60,e="mph",a="mi"}i.createSpan({text:`${Ce("Speed")}: ${ye(n,2)} ${e}`}),i.createSpan({text:`${Ce("Pace")}: ${ye(60/n,2)}"/${a}`})}return t.meta.atemp&&!isNaN(t.meta.atemp)&&i.createSpan({text:`${Ce("Temperature")}: ${ye(t.meta.atemp,2)} °C`}),t.meta.hr&&!isNaN(t.meta.hr)&&i.createSpan({text:`${Ce("Heart Rate")}: ${ye(t.meta.hr,2)}`}),t.meta.cad&&!isNaN(t.meta.cad)&&i.createSpan({text:`${Ce("Cadence")}: ${ye(t.meta.cad,2)} ${Ce("spm")}`}),i}toProperties(){}}const $c=window[lr];class to extends t.Events{constructor(t,e,a){super(),this.renderer=t,this.file=e,this.fileIds=a,this.renderer.registerEvent(this.plugin.app.metadataCache.on("changed",(t=>this._onChange(t)))),this.renderer.registerEvent(this.plugin.app.vault.on("rename",(t=>this._onRename(t)))),this.renderer.registerEvent(this.plugin.app.vault.on("delete",(t=>this._onDelete(t))))}get plugin(){return this.renderer.plugin}get map(){return this.renderer.map}_onChange(e){if(e!==this.file)return;const a=this.plugin.app.metadataCache.getFileCache(e);if(!("frontmatter"in a))return;this.frontmatter=a.frontmatter;let i=[];const n=this.map.getMarkersById(this.fileIds.get("marker"));if(n&&this.frontmatter.location&&this.frontmatter.location instanceof Array)try{let t=this.frontmatter.location;t&&t instanceof Array&&!(t[0]instanceof Array)&&(t=[t]);for(let e in t){const a=t[e],i=n[e];i&&2==a.length&&a.every((t=>"number"==typeof t))&&(i.loc.equals($c.latLng(a))||i.setLatLng($c.latLng(a)))}}catch(a){console.error(a),new t.Notice(Ce("There was an error updating the marker for %1.",e.name))}if(n&&this.frontmatter.mapmarker)try{const{mapmarker:t}=this.frontmatter;if(this.plugin.markerIcons.find((({type:e})=>e==t)))for(const e of n)e.icon=this.plugin.markerIcons.find((({type:e})=>e==t))}catch(a){console.error(a),new t.Notice(Ce("There was an error updating the marker type for %1.",e.name))}if(this.frontmatter.mapmarkers)try{const t=this.map.getMarkersById(this.fileIds.get("mapmarkers")),{mapmarkers:a}=this.frontmatter;for(const e of t)this.map.removeMarker(e);a.forEach((([t,a,i])=>{this.map.addMarker({type:t,loc:a,percent:null,id:this.fileIds.get("mapmarkers"),link:this.plugin.app.metadataCache.fileToLinktext(e,"",!0),layer:this.map.currentGroup.id,command:!1,mutable:!1,description:i,minZoom:null,maxZoom:null,tooltip:"hover"})}))}catch(e){console.error(e),new t.Notice(Ce("There was an error updating the markers for %1."))}if(this.fileIds.has("overlay")&&(this.map.overlays.filter((({data:t})=>t.id===this.fileIds.get("overlay")))?.forEach((t=>{t.leafletInstance.remove()})),this.map.overlays=this.map.overlays.filter((({data:t})=>t.id!=this.fileIds.get("overlay"))),this.frontmatter.mapoverlay&&this.frontmatter.mapoverlay instanceof Array&&i.push(...this.frontmatter.mapoverlay)),this.fileIds.has("overlayTag")&&this.map.options.overlayTag in this.frontmatter){this.map.overlays=this.map.overlays.filter((({id:t,leafletInstance:e})=>(t===this.fileIds.get("overlayTag")&&e.remove(),t!=this.fileIds.get("overlayTag"))));let t=this.frontmatter.location??[0,0];t&&t instanceof Array&&!(t[0]instanceof Array)&&(t=[t]),i.push([this.map.options.overlayColor??"blue",t[0],this.frontmatter[this.map.options.overlayTag],`${e.basename}: ${this.map.options.overlayTag}`,this.fileIds.get("overlayTag")])}if(i.length){const t=[...i].map((([t,e,a,i,n=this.fileIds.get("overlay")])=>{const s=a.match(le);if(!s||isNaN(Number(s[1])))throw new Error("Could not parse overlay radius. Please make sure it is in the format ` `.");const[,r,c="m"]=s;return{radius:Number(r),loc:e,color:t,unit:c,layer:this.map.currentGroup.id,desc:i,id:n,mutable:!1}}));this.map.addOverlay(...t)}}_onRename(t){if(t!==this.file)return;const e=this.map.getMarkersById(this.fileIds.get("marker"));for(const t of e)t.link=this.plugin.app.metadataCache.fileToLinktext(this.file,"",!0)}_onDelete(t){if(t!==this.file)return;this.file=null;const e=this.map.getMarkersById(this.fileIds.get("marker"));for(const t of e)this.map.removeMarker(t);this.map.overlays.filter((({data:t})=>t.id===this.fileIds.get("overlay")))?.forEach((t=>{t.leafletInstance.remove()})),this.map.overlays=this.map.overlays.filter((({data:t})=>t.id!=this.fileIds.get("overlay"))),this.trigger("remove")}}class eo extends t.Events{constructor(t){super(),this.app=t}async loadImage(t,e){for(let a of e){const{link:e,id:i,alias:n}=await this.getLink(a),{h:s,w:r}=await this.getImageDimensions(e),c={data:e,h:s,w:r,alias:n,id:i};this.trigger(`${t}-layer-data-ready`,c)}}async loadImageAsync(t,e){return new Promise((async(t,a)=>{for(let a of e){const{link:e,id:i,alias:n}=await this.getLink(a),{h:s,w:r}=await this.getImageDimensions(e);t({data:e,h:s,w:r,alias:n,id:i})}}))}unload(){}getImageDimensions(e){return new Promise((function(a,i){var n=new Image;n.onload=function(){const{width:t,height:e}=n;n.detach(),a({w:t,h:e})},n.onerror=()=>{new t.Notice(Ce("There was an issue getting the image dimensions.")),i()},n.src=e}))}async getLink(t){let e,a,i;t=decodeURIComponent(t);try{if(/https?:/.test(t)){e="link";const[n,s]=Ve(t).split("|");a=n,i=s}else{e="file";const[n,s]=Ve(t).split("|");i=s&&s.length?s:null;let r=this.app.metadataCache.getFirstLinkpathDest(n,"");if(!r)throw new Error;a=this.app.vault.getResourcePath(r)}}catch(t){console.error(t)}return{link:a,id:encodeURIComponent(t),alias:i}}}class ao extends t.MarkdownRenderChild{constructor(e,a,i,n,s){super(i),this.plugin=e,this.sourcePath=a,this.params=n,this.source=s,this.watchers=new WeakMap,this.loader=new eo(this.plugin.app),this.modifiedSource=this.source,this.hasChangedSource=!1,this.handled=!1,this.view=this.app.workspace.getActiveViewOfType(t.MarkdownView)??this.app.workspace.getActiveViewOfType(Mc),this.params={...de,...n},this.parentEl=i;let r=this.params.imageOverlay?.length>0;r="real"!=this.params.image?r||this.params.layers.length>1:r||[this.params.osmLayer,...[this.params.tileServer].flat(),...[this.params.tileOverlay].flat()].filter((t=>t)).length>1;let c=this.app.vault.getAbstractFileByPath(this.sourcePath);c instanceof t.TFile&&(this.file=c);let o=[];this.params.tileServer&&this.params.tileServer.length&&(o=[this.params.tileServer].flat());let l=[];this.params.tileOverlay&&this.params.tileOverlay.length&&(l=[this.params.tileOverlay].flat());let h=[];this.params.tileSubdomains&&this.params.tileSubdomains.length&&(h=[this.params.tileSubdomains].flat().map((t=>t.split(","))).flat()),this.options={bounds:this.params.bounds,context:this.sourcePath,darkMode:"true"==`${this.params.darkMode}`,defaultZoom:+this.params.defaultZoom,distanceMultiplier:this.params.distanceMultiplier,draw:this.params.draw??this.plugin.data.enableDraw,drawColor:ze(this.params.drawColor),geojsonColor:ze(this.params.geojsonColor),gpxColor:ze(this.params.gpxColor),hasAdditional:r,height:this.getHeight(this.params.height),id:this.params.id,imageOverlays:[],isInitiativeView:this.params.isInitiativeView,isMapView:this.params.isMapView,layers:this.params.layers,lock:this.params.lock,maxZoom:+this.params.maxZoom,minZoom:+this.params.minZoom,noUI:this.params.noUI??!1,osmLayer:this.params.osmLayer,overlayTag:this.params.overlayTag,overlayColor:this.params.overlayColor,recenter:this.params.recenter,scale:this.params.scale,noScrollZoom:this.params.noScrollZoom,tileLayer:o,tileOverlay:l,tileSubdomains:h,type:"real"!=this.params.image?"image":"real",unit:this.params.unit??this.plugin.defaultUnit,verbose:this.params.verbose,zoomDelta:+this.params.zoomDelta,zoomFeatures:this.params.zoomFeatures,zoomMarkers:this.params.showAllMarkers},this.preserveAspect=this.params.preserveAspect??!1,this.containerEl.style.height=this.options.height,this.containerEl.style.width=this.params.width??"100%",this.containerEl.style.backgroundColor="var(--background-secondary)",this.resize=new ResizeObserver((()=>{const t=this.containerEl.getBoundingClientRect();if(this.preserveAspect&&t.width>0&&t.height>0){null==this.aspect&&(this.aspect=t.width/t.height);const e=t.width/this.aspect;this.map.contentEl.style.height=`${e}px`}this.map&&this.map.rendered&&this.map.leafletInstance.invalidateSize()})),this.mapBuilt=this.buildMap(),this.resize.observe(this.containerEl)}async placeLayerInCodeBlock(e){e.mutable=!1;const a=e instanceof Ec?e.command?"commandMarker":"marker":"overlay";if(this.modifiedSource=`${this.modifiedSource}${a}: ${e.toCodeBlockProperties().join(",")}\n`,!this.hasChangedSource){const e=async()=>{if(!this.hasChangedSource)return;const t=(await this.app.vault.cachedRead(this.file)).replace(this.source,this.modifiedSource);await this.app.vault.modify(this.file,t),this.source=this.modifiedSource,this.hasChangedSource=!1};this.register((async()=>await e()));const a=this.app.workspace.on("layout-change",(async()=>{const i=this.app.workspace.getActiveViewOfType(t.MarkdownView);i&&i==this.view&&(await e(),this.app.workspace.offref(a))}));this.registerEvent(a)}this.hasChangedSource=!0}setHeight(t){this.containerEl.style.height=t,this.map&&(this.map.contentEl.style.height=t,this.map.leafletInstance.invalidateSize())}async getMap(){return await this.mapBuilt,this.map}async buildMap(){if(this.options.localMarkerTypes=await this.plugin.getLocalFileMarkers(this.file),"real"===this.options.type)this.map=new Dc(this,this.options);else{this.map=new Vc(this,this.options);let t=this.options.layers.length>1;this.loader.on(`${this.map.id}-layer-data-ready`,(e=>{this.map.log(`Data ready for layer ${decodeURIComponent(e.id)}.`),this.map instanceof Vc&&this.map.registerLayerToBuild(e),t&&(t=!1,this.loader.loadImage(this.map.id,this.options.layers.slice(1)))})),this.map.log(`Loading layer data for ${this.map.id}.`),this.loader.loadImage(this.map.id,[this.options.layers[0]])}this.map.on("removed",(()=>this.resize.disconnect())),this.map.on("should-save",(async()=>await this.plugin.saveSettings())),this.map.on("create-immutable-layer",(async t=>{await this.placeLayerInCodeBlock(t)})),this.loadSavedData(),await this.loadImmutableData(),await this.loadFeatureData(),this.map.log("Getting initiatial coordinates.");const{coords:t,zoomDistance:e,file:a}=await this.getCoordinates(this.params.lat,this.params.long,this.params.coordinates,this.params.zoomTag,this.map);let i;a&&this.registerWatcher(a,new Map([["coordinates","coordinates"]])),this.params.imageOverlay?.length&&(i=await Promise.all(this.params.imageOverlay.map((async([t,...e])=>({...await this.loader.loadImageAsync(this.map.id,[t]),bounds:e}))))),this.map.render({coords:t,zoomDistance:e,imageOverlayData:i})}async onload(){await this.mapBuilt,this.map.log("MarkdownRenderChild loaded. Appending map."),this.containerEl.appendChild(this.map.contentEl),this.map.leafletInstance.invalidateSize(),this.parentEl.contains(this.containerEl)||(this.map.log("Map element is off the page and not loaded into DOM. Will auto-detect and reset zoom."),new MutationObserver(((t,e)=>{for(const a of t)"childList"===a.type&&Array.from(this.parentEl.children).includes(this.containerEl.parentElement)&&(this.map.resetZoom(),e.disconnect())})).observe(this.parentEl,{attributes:!1,childList:!0,subtree:!1}))}async onunload(){this.map.log("Unloading map."),super.onunload(),this.loader?.unload(),this.resize?.disconnect();try{this.map.remove()}catch(t){}let e=this.plugin.app.vault.getAbstractFileByPath(this.sourcePath);if(!(e&&e instanceof t.TFile))return;let a=await this.plugin.app.vault.read(e),i=!1,n=new RegExp(`\`\`\`leaflet[\\s\\S]*?\\bid:(\\s?${this.map.id})\\b\\s*\\n[\\s\\S]*?\`\`\``,"g");if(i=a.match(n)?.length>0||!1,!i){this.map.log("Map instance was removed from note.");let t=this.plugin.mapFiles.find((({file:t})=>t===this.sourcePath));t.maps=t.maps.filter((t=>t!=this.map.id))}await this.plugin.saveSettings(),this.plugin.maps=this.plugin.maps.filter((t=>t.map!=this.map))}getHeight(e){try{if(!/\d+(px|%)/.test(e))throw new Error(Ce("Unparseable height provided."));if(/\d+%/.test(e)){const a=(this.app.workspace.getActiveViewOfType(t.MarkdownView)??this.app.workspace.getActiveViewOfType(Mc)).contentEl;let[,i]=e.match(/(\d+)%/),n=getComputedStyle(a),s=a.clientHeight;s-=parseFloat(n.paddingTop)+parseFloat(n.paddingBottom),e=s*Number(i)/100+"px"}}catch(a){new t.Notice(Ce("There was a problem with the provided height. Using 500px.")),e="500px"}finally{return e}}async loadFeatureData(){let e=this.params.geojson,a=[];e instanceof Array||(e=[e]);const i=new Map(e?.flat(1/0).filter((t=>t)).map((t=>{let[e,a=e,i]=t.replace(/(\[|\])/g,"").split("|");return a?.length||(a=e),[e,{path:e,alias:a,note:i}]})));function n(e,a,i){if(!((i-=1)<0)&&e)if(e instanceof t.TFile&&["json","geojson"].includes(e.extension)){let t=e.path;a.set(t,{path:t,alias:t.substring(1+t.lastIndexOf("/"),t.lastIndexOf("."))})}else e instanceof t.TFolder&&e.children.forEach((t=>n(t,a,i)))}if(this.params.geojsonFolder&&this.params.geojsonFolder.length){const t=this.params.geojsonFolder,e=this.sourcePath.substring(0,this.sourcePath.lastIndexOf("/"));let a=Array.isArray(t)?t:[t];for(let t of a){let a,s;({abstractFile:a,path:t,depth:s}=this.filePathAndDepth(t,e)),n(a,i,s)}}if(i.size){this.map.log("Loading GeoJSON files.");for(let{path:e,alias:n,note:s}of[...i.values()]){const i=this.plugin.app.metadataCache.getFirstLinkpathDest(Ve(e),this.sourcePath);if(i&&i instanceof t.TFile){const r=await this.plugin.app.vault.read(i);let c;try{c=JSON.parse(r)}catch(a){new t.Notice(Ce("Could not parse GeoJSON file")+` ${e}\n\n`+a.message);continue}a.push({data:c,alias:n,note:s})}}}a.reverse();let s=this.params.gpx,r=[],c={start:null,end:null,waypoint:null,...this.params.gpxMarkers};s instanceof Array||(s=[s]);let o=new Map(s?.flat(1/0).filter((t=>t)).map((t=>{let[e,a=e]=t.replace(/(\[|\])/g,"").split("|");return a?.length||(a=e),[e,{path:e,alias:a}]})));if(this.params.gpxFolder&&this.params.gpxFolder.length)for(let e of this.params.gpxFolder){let a=this.plugin.app.vault.getAbstractFileByPath(e);a&&(a instanceof t.TFile&&"gpx"===a.extension&&o.set(e,{path:e}),a instanceof t.TFolder&&t.Vault.recurseChildren(a,(e=>{e instanceof t.TFile&&("gpx"===e.extension||e.path.endsWith(".gpx.gz"))&&o.set(e.path,{path:e.path})})))}if(o.size){this.map.log("Loading GPX files.");for(let{path:e,alias:a}of[...o.values()]){const i=this.plugin.app.metadataCache.getFirstLinkpathDest(Ve(e),this.sourcePath);if(i&&i instanceof t.TFile){let t;if("gz"===i.extension){let e=await this.plugin.app.vault.readBinary(i);t=or(e,{to:"string"})}else t=await this.plugin.app.vault.read(i);r.push({data:t,alias:a})}}}this.map.loadFeatureData({geojsonData:a,gpxData:r,gpxIcons:c})}loadSavedData(){let t=this.plugin.data.mapMarkers.find((({id:t})=>t==this.params.id));t&&(this.map.updateLockState(t.locked),this.map.addMarker(...t.markers?.map((t=>{const e=decodeURIComponent(t.layer)===t.layer?encodeURIComponent(t.layer):t.layer;return{...t,mutable:!0,layer:e}}))??[]),this.map.addOverlay(...new Set(t?.overlays??[])),this.map.addShapes(...t.shapes))}async loadImmutableData(){((this.params.marker??[]).length||(this.params.commandMarker??[]).length||(this.params.markerTag??[]).length||(this.params.markerFile??[]).length||(this.params.markerFolder??[]).length||(this.params.linksTo??[]).length||(this.params.linksFrom??[]).length||(this.params.overlayTag??[]).length)&&this.map.log("Loading immutable items.");let{markers:t,overlays:e}=await this.getImmutableItems();((t??[]).length||(e??[]).length)&&this.map.log(`Found ${t.length} markers and ${e.length} overlays.`);let a=t.map((([t,e,a,i,n,s,r,c,o,l])=>({type:t,loc:[Number(e),Number(a)],percent:void 0,link:i?.trim(),id:r,layer:n,mutable:!1,command:s,description:c,minZoom:o,maxZoom:l,tooltip:"hover",zoom:void 0}))),i=[...e].filter((t=>t&&t.length)).map((([t,e,a,i,n=Ne()])=>{const s=`${a}`.match(le)??[];if(!s||isNaN(Number(s[1])))throw new Error(Ce("Could not parse overlay radius. Please make sure it is in the format ` `."));const[,r,c]=s??[];return{radius:Number(r),loc:e,color:t,unit:c&&c.length?c:void 0,layer:this.params.layers[0],desc:i,id:n,mutable:!1}}));this.map.addMarker(...a),this.map.addOverlay(...i)}get app(){return this.plugin.app}getImmutableMarkers(){let a=[];for(let i of this.params.marker??[]){const{data:n}=(0,e.parse)(i);if(!n.length){new t.Notice("No data");continue}let s,r,[c,o,l,h,u,d,f,p]=n[0];c&&c.length&&"undefined"!==c||(c="default"),o&&o.length&&!isNaN(Number(o))?l&&l.length&&!isNaN(Number(l))?(s=null==d||0==d.length||isNaN(Number(d))?void 0:Number(d),r=null==f||0==f.length||isNaN(Number(f))?void 0:Number(f),h=Ve(h),u&&u.length&&"undefined"!==u||(u=void 0),a.push([c,Number(o),Number(l),h,p,!1,null,u,s,r])):new t.Notice(Ce("Could not parse longitude")):new t.Notice(Ce("Could not parse latitude"))}for(let i of this.params.commandMarker??[]){const{data:n}=(0,e.parse)(i);if(!n.length){new t.Notice(Ce("No data for marker %1.",i));continue}let s,r,[c,o,l,h,u,d,f]=n[0];if(c&&c.length&&"undefined"!==c||(c="default"),!o||!o.length||isNaN(Number(o))){new t.Notice("Could not parse latitude");continue}if(!l||!l.length||isNaN(Number(l))){new t.Notice("Could not parse longitude");continue}s=isNaN(Number(d))?void 0:Number(d),r=isNaN(Number(f))?void 0:Number(f),h&&h.length&&"undefined"!==h?/\[\[[\s\S]+\]\]/.test(h)&&(h=Ve(h)):h=void 0;const p=this.app.commands.listCommands(),{id:m}=p.find((({name:t,id:e})=>t==h||e==h));u&&u.length&&"undefined"!==u||(u=void 0),a.push([c,Number(o),Number(l),m,u,!0,null,null,s,r])}return a}async getImmutableItems(){return new Promise((async(e,a)=>{let i=this.getImmutableMarkers(),n=[];const{markerTag:s=[],filterTag:r=[],markerFile:c=[],markerFolder:o=[],linksTo:l=[],linksFrom:h=[],overlayTag:u,overlayColor:d}=this.params;function f(e,a,i){(i-=1)<0||!e||(e instanceof t.TFile?a.add(e.path):e instanceof t.TFolder&&e.children.forEach((t=>f(t,a,i))))}if(c.length||o.length||s.length||r.length||l.length||h.length){let e=new Set(c);const a=this.sourcePath.substring(0,this.sourcePath.lastIndexOf("/"));for(let t of o){let i,n;({abstractFile:i,path:t,depth:n}=this.filePathAndDepth(t,a)),f(i,e,n)}const p=app.plugins.plugins.dataview?.index;if(p){if(s.length>0){const t=new Set;for(let e of s){const a=e.filter((t=>t)).map((t=>(t.includes("#")||(t=`#${t}`),p.tags.getInverse(t.trim()))));a.length&&a.reduce(((t,e)=>new Set([...e].filter(Set.prototype.has,new Set(t))))).forEach(t.add,t)}t.forEach(e.add,e)}if(r.length>0&&e.size){const t=new Set;for(let e of r){const a=e.filter((t=>t)).map((t=>(t.includes("#")||(t=`#${t}`),p.tags.getInverse(t.trim()))));a.length&&a.reduce(((t,e)=>new Set([...e].filter(Set.prototype.has,new Set(t))))).forEach(t.add,t)}e=new Set([...e].filter(t.has,t))}for(let t of l){const a=this.app.metadataCache.getFirstLinkpathDest(Ve(t),"");if(!a)continue;const i=p.links.invMap.get(a.path);i&&i.forEach(e.add,e)}for(let t of h){const a=this.app.metadataCache.getFirstLinkpathDest(Ve(t),"");if(!a)continue;const i=p.links.map.get(a.path);i&&i.forEach(e.add,e)}}else{const e=[];s.length&&e.push("markerTags"),l.length&&e.push("linksTo"),h.length&&e.push("linksFrom"),e.length&&new t.Notice(Ce("The `%1` field%2 can only be used with the Dataview plugin installed.",e.reduce(((t,a,i)=>[t,a].join(i===e.reduce(((t,a,i)=>[t,a].join(i===e.length-1?" and ":", "))).length-1?" and ":", "))),e.length>2?"s":""))}for(let a of e){const e=Ve(a);if(!e){this.map.log(`Could not parse link for ${a}`);continue}const s=this.app.metadataCache.getFirstLinkpathDest(e,this.sourcePath),r=this.app.metadataCache.fileToLinktext(s,this.sourcePath,!0),c=new Map;if(!(s&&s instanceof t.TFile&&"md"===s.extension))continue;const o=this.app.metadataCache.getFileCache(s)??{},{frontmatter:l}=o,h=p?.tags?.get(e)??new Set;if(!l||!l.location&&!l.mapoverlay&&!l.mapmarkers)continue;const f=Ne();if(l.location){let e=l.location;!e.length||e[0]instanceof Array||(e=[e]);for(const a of e){let e,n,c=!1,[o,u]=a;try{o="number"==typeof o?o:Number(o?.split("%").shift()),u="number"==typeof u?u:Number(u?.split("%").shift())}catch(t){c=!0}if(c||isNaN(o)||isNaN(u))new t.Notice(Ce("Could not parse location in %1",s.basename));else{if(l.mapzoom){let[t,a]=l.mapzoom;e=isNaN(Number(t))?void 0:Number(t),n=isNaN(Number(a))?void 0:Number(a)}i.push([l.mapmarker||this.plugin.getIconForTag(h)||"default",o,u,r,void 0,!1,f,null,e,n])}}c.set("marker",f)}if(l.mapmarkers){const t=Ne();l.mapmarkers.forEach((([e,a,n,s,c])=>{let o,l;o=isNaN(Number(s))?void 0:Number(s),l=isNaN(Number(c))?void 0:Number(c),i.push([e||this.plugin.getIconForTag(h)||"default",a[0],a[1],r,void 0,!1,t,n,o,l])})),c.set("mapmarkers",t)}if(l.mapoverlay&&((l.mapoverlay[0]instanceof Array?l.mapoverlay:[l.mapoverlay]).forEach((([e=d??"blue",a=[0,0],i="1 m",r])=>{i.match(le)?n.push([e,a,i,r??Ce("%1 overlay",s.basename),f]):new t.Notice(Ce("Could not parse map overlay length in %1. Please ensure it is in the format: ",s.name))})),c.set("overlay",f)),u in l){if(!l[u].match(le)){new t.Notice(Ce("Could not parse %1 in %2. Please ensure it is in the format: ",u,s.name));continue}let e=l.location;if(!e)continue;e instanceof Array&&!(e[0]instanceof Array)&&(e=[e]),n.push([d,e[0],l[u],`${s.basename}: ${u}`,f]),c.set("overlayTag",f)}this.registerWatcher(s,c)}}if(this.params.overlay.length){const t=Array.isArray(this.params.overlay[0])?this.params.overlay:[this.params.overlay];for(const e of t.filter((t=>t&&t.length)))try{let[t,a,i,s,r=Ne()]="string"==typeof e?e.split(/,(?![^\[]*\])/):e;if(a="string"==typeof a?a.replace(/(\[|\])/g,"").split(","):a,!i.match(le))continue;const c=[Number(a[0]),Number(a[1])];n.push([t,c,i,s,r])}catch(t){}}e({markers:i,overlays:n})}))}filePathAndDepth(t,e){"."==t[0]&&(t=e+t.substring(1));let a=t.endsWith("/")?2:1/0;for(;t.endsWith("/");)t=t.substring(0,t.length-1),++a;return{abstractFile:this.app.vault.getAbstractFileByPath(t),depth:a,path:t}}registerWatcher(t,e){if(null==t)return;const a=new to(this,t,e);this.watchers.set(t,a),a.on("remove",(()=>this.watchers.delete(t)))}async getCoordinates(e,a,i,n,s){let r=e,c=a;const o=[void 0,void 0];let l,h,u,d;"string"==typeof i&&i.length?(h=this.plugin.app.metadataCache.getFirstLinkpathDest(Ve(i),this.sourcePath),h&&h instanceof t.TFile&&(({latitude:r,longitude:c,zoomDistance:l}=this._getCoordsFromCache(this.plugin.app.metadataCache.getFileCache(h),n)),s.log("Coordinates file found."))):i&&2==i.length&&(r=i[0],c=i[1],s.log(`Using supplied coordinates [${r}, ${c}]`));try{u=Number(`${r}`?.split("%",1)[0])}catch(e){new t.Notice(Ce("There was an error with the provided latitude. Using default."))}isNaN(u)?"real"===s.type?o[0]=this.plugin.data.lat:o[0]=50:o[0]=u;try{d=Number(`${c}`?.split("%",1)[0])}catch(e){new t.Notice(Ce("There was an error with the provided longitude. Using default."))}return isNaN(d)?"real"===s.type?o[1]=this.plugin.data.long:o[1]=50:o[1]=d,{coords:o,zoomDistance:l,file:h}}_getCoordsFromCache(t,e){let a,i,n;if(t&&t.frontmatter&&t.frontmatter.location&&t.frontmatter.location instanceof Array){let e=t.frontmatter.location;e instanceof Array&&e[0]instanceof Array||(e=[e]);const n=e[0];a=n[0],i=n[1]}if(e&&Object.prototype.hasOwnProperty.call(t.frontmatter,e)){const a=t.frontmatter[e],[,i,s]=a?.match(le)??[];if(!i)return;n=Nr(i).from(s??"m").to("image"==this.map.type?this.map.unit:"m"),"image"==this.map.type&&(n/=this.map.scale)}return{latitude:a,longitude:i,zoomDistance:n}}}const io="data:image/png;base64,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lXcvvbtjvXX48u6l+W35e+nSw5f+YIw/mTe2d7z08O4Bc9vcuv5i3bh/+PYX2zutv1q3bO57/ONmt5fenfPWPH8IvH8aD2+DbTfv7z6/PTz/HO5+eCEnXsH6kM29159+Y4zf3+552fnm+W0fs+xu+2/3YpeHzlsP757TfuPy5WTUZesa5LfG+MMTLbi+jH3rbJ//us/dw7dtsXuph33uX8jxi7/0L8f4reVJHl7o0fM7fgt3odY9nNjFEv843Pz97l3d3mEG+Y21MdYw6xu1bdD5zDf32cdedrd9/3d32r3tp96UXcOt/MkYv71pnP2mE22y/3ht9rR/85d3fvuCjt/v42jbd+PSC2N8e/+e7d7aw8d2+3QO7856j/v3uX4INlFPB5vfZqX+b687PHohS/zN53N3MCwNfurXh/fq+NOw+8gcf+Yefvefj/F7R789erHbt3j3xu2/7z5rD9jZ/nO/eey2FS5dmofHn5z46J08sLYtdvLnXbRN3P2Hatc8WxNsD4533512f2HXmofPylGbH5pp3ti10eHp7I7/zfv7g++8887T7zw9mV/m7YXvzhC/tt6aW64sX5ab298u39Z/88t22/6Bcx/rn6ON21+9997ZleX78ve99/7JDPJfzl5dtmw2vnd1c2veWO+5/l22b74sv1zuu9nLZh+7zbs9vHfu3LmPPjo3/6zM/5WMTywbdpvPvTz/zVvXJ2++uXyd356afPrTT316fn3qqV/91V99cuHatQ/vnPo84Xbcjttx+9FRiNv/grr92w9SAmp/sNrPzKYGAAAAAACIgZMcAAAAAACI4syH1z7csd46fPlwXhVbbl27du21a/9pjP81b2zveO213QPmtrl1/cW6cf/w7S+2d1p/tW7Z3Pf4x81ur314aU7VeAi8fxqvbYNtN+/vPr+9Nv8c7n54ISdewfqQzb3Xn741xh9v97zsfPP8to9Zdrf9t3uxy0Pnrdd2z2m/cflyMuqydQ3ym2P8zokWXF/GvnW2z3/d5+7h27bYvdTDPvcv5PjFX3tyjN887Hv/i9Pv4/YZrq999y7tdrHEPw43f797V7d3+DfzEvraGGuY9Y3aNuh85pv77GMvu9u+/7s77d72U2/KruFWvjbGH20aZ7/pRJvsP16bPe3f/OWd376g4/f7ONr23bg2J8f57v492721h4/t9ukc3p31Hvfvc/0QbKKeDja/zdKM3193ePRClvibz+fuYFga/NSvD+/V8adh95E5/sy99uGvzSL3o98evdjtW7x74/bfd5+1B+xs/7nfPHbbCteu/d4YXzvx0Tt5YG1b7OTPu2ibuPsP1a55tibYHhwf/uepna/tWvPwWTlq80MzzRu7Njo8nd3xv3l//+G9e/fu3LszmV/m7YU/nSH+93prbrm5fFlubn+7fFv/zS/bbfsHzn2sf442bn/1/vsXVpbvy9/33//JGeS1C19Ztmw2vv+Vza15Y73n+nfZvvmy/HK572Yvm33sNu/28P5LL730jW+8NP+szDmXxoVlw27zS5+d/+atRyfPPbd8nd+emDz77BPPzq9PPPHBBx+8sfDqq995/dTnCbfjdtyO24+OQtz+F9Tt/+5BSkDtD1a7OnTn3hgf/D+P+9HIWVWofi2Fh+bg1PJpRr8+xjvFIRpm4HlijKeKQ5w5c7b+deTMwDPHbr9dG4IZeBxwuwFuV8HtBrhdBbcboHaHnNaak8VXHyP1M/C0JMKMGXhaEuF79a+jKRHOWUyKs1TKWgopiRC3O+B2FdxugNtVcLsBandomIsu55QwZC2Fht6+uWT12eIQOYmwZZrR+kTIWgoy8/Covm4wwe0GuF0FtxvgdhXcboDaHVg61aC+pKFlVWwSoUxLSUPLqtgRaymkJMKYxUBxuw5ul8HtFrhdJcXtqN2h4ZTwzTEuF4dYSEmE9QvGXRzjSnGIhkT47BifLg6RVNIwLwsX1xukJMJPziA/VxsiZjFQ3K6D22VwuwVuV0lxO2p3yLnu1bAqNr19Kim9fTmJsL63r6FuOyURzhXdx1u1ISa43QC3q+B2A9yugtsNULtDQ2s1XfdqGMFUnwhb6rYbBqfO7oz3ikPk9PaFlDQ8M4c10NsnEXMlB7fr4HYZ3G6B21VS3I7aHXJai5IGlYZESEmDQcvg1PqShpTevpS6bdzugNtVcLsBblfB7Qao3SHnuldEIkzp7SMRGlDSoNIyzWhDbx+zq3ngdhXcLoPbdXC7DLOrWTC7mkPENKMtdduUNMjkJEJ6+1RSEiFud8DtKrjdALer4HYD1O7AqkIGIYNTM3r7cganptRth/T2pZQ04HYH3K6C2w1wuwpuN0DtDjmtldLbR922BonQomFVbAanqvRcycHtBrhdBbcb4HYV3G6A2h1yivtSphklEWrcHeNWcQgSoQMlDTKMyfHA7Sq4XQa36+B2GcbkWIRMIZ1zSvh4+QzoDE6VyanbbpmBh1WxVVISIW53wO0quN0At6vgdgPU7pBz3Yu6bZWMwak5JQ0hM/CcnyUNxR2KKYmQMTkeuF0Ft8vgdh3cLsOYHIuQMTk5qwqFTDPasCr2XPb3anGIlkR4doxz5UFCEiElDTIxJzm4XQe3y+B2C9yukuJ21O6Qc0rIWgoqGSUNJEKLiLpt1lJwwO0GuF0FtxvgdhXcboDaHXKK+yJ6+1pKGhp6+yhpMAip26a3T6bnSg5uN8DtKrjdALer4HYD1O6Q01pMM6pCSYNMS28faymopPT2cZLjgdtVcLsMbtfB7TKc5FhwJcchIhE+NBNhwuDUhkTIDDwWEYmQ3j4H3G6A21VwuwFuV8HtBqjdgdYyCFlLoaG3L6Vumxl4dBqmGWVVbAfcboDbVXC7AW5Xwe0GqN2hobWapmmIWEshZZpREqEBvX0qKYkwZp0c3K6D22VwuwVuV0lxO2p3aGitN8e4XBxiIaKkISURpgxOzZmBpyERzsODBeMkYq7k4HYd3C6D2y1wu0qK21G7A9e9DEIGp9LbJ0NJgw6JUCbmJAe36+B2GdxugdtVUtyO2h1oLYP6uu2UwakkQoOUGXhIhCqc5HjgdhXcLoPbdXC7DCc5Fh0nOTlLp84VsS4Wh2BwqkpDImyZgaelpKGlbnvOR19cVE0ilOk5ycHtBrhdBbcb4HYV3G6A2h0YwWRA3bZKQyK8O8at4hCUNDikDE5NSYS43QG3q+B2A9yugtsNULtDwylhznWv+t6+pTsjoW6bwakGKYmQ3j6VmCs5uF0Ht8vgdgvcrpLidtTu0NBa58qPj5V5zbb6GAkZnNpQ0kAiNGhJhJQ0qDQkwp4ppHG7AW5Xwe0GuF0FtxugdoeG1np5jLeLQyxE9PallDQ0rIrdUtJwdYyXy4OkrKUQkghTFozD7Q64XQW3G+B2FdxugNodGor7mk4JIxIhJQ0yOTPwUNKgQt22A243wO0quN0At6vgdgPU7kBrGYTMwJPR20citJizmBR3zJyfdicRSnCS44HbVXC7DG7Xwe0ynORYcJLjwDSjKhkz8OTUbbeUNNQnQmbgkeEkxwO3q+B2Gdyug9tlOMmxCJlC+qPy42OlYQQTddsqKWsp5PT2Mc2oSkoixO0OuF0FtxvgdhXcboDaHXJOCUmEKhfHuFIcImUtBWbg0UkpaUgZnIrbHXC7Cm43wO0quN0AtTvknBJSt62S0dvHgnEWDdOM1vf2Mc2oA243wO0quN0At6vgdgPU7pBzSthQ3Fe/lsJDMxFS0iCRkwhb6rYj1lJIKWmIOcnB7Tq4XQa3W+B2lRS3o3YHTgkNQnr7WDBOJicRRkwzOv+fWK/ElLpt3O6A21VwuwFuV8HtBqjdoaG1mlYVaijue3yMt2ojMDhVJicRppQ00NunEnMlB7fr4HYZ3G6B21VS3I7aHW6Ocbs4RM6E2yGDU0mEMvT26aSsip2SCHG7A25Xwe0GuF0FtxugdgdOCQ1CShoaZuBpKGnIqdtOmWaU3j6VmHI13K6D22VwuwVuV0lxO2p3yBnB1HBKGFLSkDHNaE5vX0oiDJmBp2Ga0ZhyNdyug9tlcLsFbldJcTtqd2AEk0F9b99ypDPNqETOgnG3xrhbHoTePpWURIjbHXC7Cm43wO0quN0AtTvQWgYhJQ0NM/CQCA1CEmHDgnEpvX0x5Wq4XQe3y+B2C9yukuJ21O7AdS+DkERISYNMy6rYIYNTz8/evuIq3pREGHMlB7fr4HYZ3G6B21VS3I7aHZimwSBkBh4SoUxLIkyZZrS+bpvBqQ643QC3q+B2A9yugtsNULsDrWVA3bZKSiLMGZw6VxYu7oqjpEGGKaQ9cLsKbpfB7Tq4XYYppC1CTnKaivvmkV69YO68Zlt8jj6X/b3BWgoSOXXbLSUN9b19DYkwZXBqzJUc3K6D22VwuwVuV0lxO2p3yCnua2itkLrthkTYsJZCSyLMqdumpEElZcE43O6A21VwuwFuV8HtBqjdIae1GlYVqu/tS0mElDQYhJQ0pKylkFK3jdsdcLsKbjfA7Sq43QC1O+QsnRpRt00ilGFVbIuG3j7WUlCJOcnB7Tq4XQa3W+B2lRS3o3aHnFNCVsVWYS0FmZxEGLFgXMrg1JiTHNyug9tlcLsFbldJcTtqd7g3xgfFIXJaixl4VFJ6+66O8XJ5EBKhSkpJQ8+YHNxugNtVcLsBblfB7Qao3YFTQoP6uu2WRNjQ23d7jKvFIejtsyARqqT09uF2B9yugtsNcLsKbjdA7Q60lkHIgnEZvX0MTrWIqNsmETrgdgPcroLbDXC7Cm43QO0OOa0VsZZCSiJsmGaURGjR0NsXMgNPyoJxuN0Bt6vgdgPcroLbDVC7Q0NxX9OqQvT2qVwc40pxiIaShpZEmLOWQkQiZC0FB9xugNtVcLsBblfB7Qao3SHnlJBEqEJvnwy9fTopvX0piRC3O+B2FdxugNtVcLsBanegtQxIhCopibClt49EqJKylgInOR64XQW3y+B2Hdwuw0mORcgU0k2rCjUsndqylkLEgnENiTBnBp6UkgYGp6r0TDyA2w1wuwpuN8DtKrjdALU75JwSNrRW/eDUh2YiTOjtS6nbzilpYAYelYaSBmZX88DtKrhdBrfr4HYZZlez4CTHIaWkgd4+DRKhRURvHyUNDrjdALer4HYD3K6C2w1Qu8PNMW4Xh2iapiGit49VsWVy6rZbShro7VNJ6e3D7Q64XQW3G+B2FdxugNodGk4Jc+aia6nbrh+c2rAqdkoipLdPJ2UGnsszyCu1IWLK1XC7Dm6Xwe0WuF0lxe2o3YHrXgb1JQ0pddsNiTBncGpIIjw/7Z7Q25cyOBW3O+B2FdxugNtVcLsBanegtQxCVsWmt08mJxHOlYWLJ0tJmWY0pbcPtzvgdhXcboDbVXC7AWp3aJiLLqe1QtZSaEiEDE41SJlmNCQRptRt43YH3K6C2w1wuwpuN0DtDg2tlTOCqT4RtgxOvTjGleIQ9PYZhCTClJKGlFWxcbsDblfB7Qa4XQW3G6B2h4brXk2rCs1rtheLQ4QkQqYZlWlJhLfGuFseJGIGnpRpRmPK1XC7Dm6Xwe0WuF0lxe2o3YHiPoOQkoaM3j4Gp1pElDSk9PbFnOTgdh3cLoPbLXC7SorbUbtDzikhiVAlYwaeu2PcKg5BInRI6e1LSYS43QG3q+B2A9yugtsNULsDE24bsCq2SkpJQ8uCcSmJkMGpKj1jcnC7AW5Xwe0GuF0FtxugdoeGpVObTgkjBqe2JMJPjXGpOASDUw1SVsUmEar0XMnB7Qa4XQW3G+B2FdxugNodKO4zqF9LoWVw6s+O8W5xCEoaDJiBR4XBqQ643QC3q+B2A9yugtsNULsDrWUQUrfdkAgbShpaEuHVMV4uD8KCcSr09jngdgPcroLbDXC7Cm43QO0OORNuN7TW42O8VRuhpaQho7cvp6ShJRFGTDPKDDwOuN0At6vgdgPcroLbDVC7Q84IppS67frevs+M8XBxCKYZNUgZnEoiVIm5koPbdXC7DG63wO0qKW5H7Q5c9zIIWTCuobfv9hhXi0MwA48FM/CopCRC3O6A21VwuwFuV8HtBqjdIeeUMGJwKjPwyJAILZiBRyVlmlHc7oDbVXC7AW5Xwe0GqN2B1jKor9tu6e3LKGnISYQtM/A0DE6lpEGFkxwP3K6C22Vwuw5ul+EkxyJk4oGm615fHuNXikNQt63SMAMPddsWEXXb9PY54HYD3K6C2w1wuwpuN0DtDhT3GdQnwodmSUN5ImwoaUhZFTsnEUZMM5rS28eYHA/croLbZXC7Dm6XYUyORUi5Wk5rsSq2CiUNBil12/T2qcSUq+F2Hdwug9stcLtKittRuwOtZRAyOJWSBpmcum0SoUrDqthzgqrqESAT3G6A21VwuwFuV8HtBqjdgdYyCFkwjt4+GRKhTsoMPA2JkHI1D9yugttlcLsObpehXM2CkxyHlERYPzg1Y1Xsu2PcKg7RVLd9a4y75UHqB6een59dZuCR4CTHA7er4HYZ3K6D22U4ybFgdjUHEqFKRiKkt8+ivrePRCjTc5KD2w1wuwpuN8DtKrjdALU7cEpoUJ8IU2bgIREahEwz2pAIU0oamHjAA7er4HYZ3K6D22WYeMAi5CTn5fIJDlciZuBpWTCORCiTM81ow1oKTDOqEnOSg9t1cLsMbrfA7SopbkftDpwSGrTMwBOxYFxK3XZOb1/E4NSURMiYHA/croLbZXC7Dm6XYUyOBSc5DvNIrz5GQnr7mGZUht4+nYZpRkmEDrjdALer4HYD3K6C2w1Qu8PNMW4Xh2hqrbns78XiEPW9fS112w2DU+dk8VeLQ1DSYEEiVElJhLjdAber4HYD3K6C2w1Q+8ozk/Pr3x37m+fP726ef+Y/jvGP1k2H+xw/5Pz2p5OPXe99dLdTkU785pln/vUYf//kllNP4vBs5t+TD95EO/U6Tt9pwzzS/9t6582vj+91iLULtN7t457wqVbYt8D52dv3Xx8Qeb/T7fO9/9nf/xROv87tz/99HiF/9sCd7+5zejen9/ugTad+/r5Zt719Rbtnt7vT6Tf1+I3dvD1HO9/cOn77tm37zDP/YIxff8Dn6WNf2annehT16HmdvNs/m719D/jwnd71x3xa7v/VA+/162P8qwd+VO7f6+5tPtn6978992/+qTF++cGHz8c33cfs9oGb1q3/Yoy/d/RJ+thP4+GoPHqpu5Y8/dpP7ObP5mf3+EDfHoUf+wQ/7sXdd7Aeti6HxzzIH/RB3W/68f9f7X7v123jdtyO23E7bnf5nnc7ajfUfmbMc+8by5cN60/bG/sthx/2G7Z3Wlg3bTecutfJn3f7Xh+1ecDR1u295vbTW+57Psu2o+e8e8B9m7bPbbfpxEs62v3Jp3p6Tyde8f2v6Hi/R89395D7o29f3/0BHrDrBzytE9v3bXjiFR3vfbfn7as8tPuDWvDU4ya/dd8Tu+9xp1t5/wrva5iP3c3uzdo9xeOXtr/XUcOebOyj3ZyIuL37b35s3KOWOMH+Q/qxrXn0nt73Zp56Zfe3wX3b7ns+D/ggbL/vXsz+bd2/o6fueLzXbYNu7nnyk3I61P3H3cn73tdW9z3NE69+867uD8/79nC818MLuf+1HD5qWz2s+zw+FI4Or1ONfXQcPrZrmnXLY2uLPPbYY+ut5eu8/fi6bd26ufn45pdb1nvPXywbfmPu61srL6z/lq/rT/PG/vby4/rrF57f3treY/LupZV333330vyz/N3emrzz9PLnj2aId648PW9teeedd947e/bq1eXL/Du/nT330bn596Pl60fX3/zc5Pr1p5566tPzH24/9VRx+1EA3I7bT37gTh/np5/miVeP2/883Y7aTz3V/5vaz5x6kQAAAAAAAH+h4SQHAAAAAACiOHPvzr17N+/dmV9X1p+2N+6sW5d/N+/NwtTryw/L5mXD5vu8x3qfm3fu7B+13c9yj+XfbtPmAfNedzaPmo/b7mN3lz8c44eWXx62LNzc73n7HNcbN5fnvL/P3LTseD6L/cY1+vrQw1Pa3HphjBc3z3zzCpZdbe+1vpjNc978vLnbZtP6/RBz94z2z2v7u6Ut5yWyf3/UWMfRlzvMeMdPdXnm2wY7avP9iz28oPlv82Tv3bs237r/uXvWRzvf3F7a5uhJbd6h9VVu36/197uWPX53Dk93/vuJMf5gfcLbZlj3vWm3E89q2c36xh69PcvLOdUwx89x3eN8zPUxfnH7mPnjpp13z/Do2e9CH37cfF8/uPsom4/B8Sduuce/HeO7hzfs9JPfbtz+5nj7/p1Y2ulol4dG273B85H/eI7jPWraw5PabjxurvXXh19s7rv/rByexrbRDs/qu2N8bd/KmydyOJJOtczucZtgu6dyCHLiYD207517vzfG/9g27dFne3ffwydk//3QCJt7Hz5Wyzu83e3hQLxz7z/Mz+4a4uiprp+Wo6ba7+Jw5Ow/HDsz3TxWzv7B68fsT2eIF7fv/1Hb/u7+QzNvvH/h/YULFy6st5av8/ZX1m3r1s3Nr2x+uWW99/zFsuGfziA3v7Hw0vpv+br+NG/sby8/rr9+6bPbW9t7TL756Mo3v/nNR+ef5e/21uTZJ5Y/vzNDPHr3iXlry7PPPvvBG2/cvr18mX/ntzde/c6r8+93lq/fef3yJyevv/7II4/80vyH23E7bsftuD3O7X+M2nW1qwOdGuai+6h8ivUVFoxTaVgwrmGaUWbgsYiYgadlVezv+cGpKrjdALer4HYD3K6C2w1QuwMTbht8e9x4qzZCy4JxDdOMsiq2QcqCcSRCFdbJ8cDtKrhdBrfr4HYZ1smx6FgnJ6e1Gk4JHx+jPhHeSOjtIxEa3BrjbnkQVsVWeX0G+WJtCE5yPHC7Cm6Xwe06uF2GkxwLruQ4RJQ0tCwYl5EIc1bF/vQYz5YHIRGqXJ5BXqkNwUmOB25Xwe0yuF0Ht8twkmPRcZLTsHRqTnHfvGZb/PGlblvm7hi3ikOcOXN2jHPlQVp6+yLqtlNWxe4Zk4PbDXC7Cm43wO0quN0AtTtwSmhAb58KJQ0GJEIV6rYdcLsBblfB7Qa4XQW3G6B2B1rLgN4+FRKhQUrdNr19KpzkeOB2Fdwug9t1cLsMJzkWHSc598b4oDhETmvV9/a1zMBDIpRpKWlImWY0pG47JRHidgfcroLbDXC7Cm43QO0OnBIahCTCz4zxcHGI22NcLQ7RUrfNNKM6JEIZruR44HYV3C6D23VwuwxXciw4yXFISYQR04w2JMKWGXiujvFyeZCWRHhljLdrI5yfJQ3FIajbdsDtBrhdBbcb4HYV3G6A2h0eKu/4OfNI+dXtlUfrLz5/3yc+WR1iUt7bd+bCY3+lOsS58anqEJ9+vL6lZsfoxfIgZ77/r9bHeKL8Pz9nnhyPVYd4qqHCZHq3ulZmdozWl+PgdgfcLoPbDXC7Cm7XQe0ODa11eVypDrHw2fL+pTMXxrXqEH/tE5+pDnHmzOfq5+6/Oj5fHeL6Y3+9OsTSMVrezzCPwfJP7pkzz43nq0PMRPgDxSFaEuEPjh8qjjDH8Wac5OB2A9wug9sdcLtMiNtRu8MXxwvVIXJa6+Z4sT7EZ6tDLEMuX6oP8Uh1iC+N+kT4+THq/2Nysd5YS49J+YE+SzOqy3FuNVSYnLk0rhdH6LmSg9sNcDtuLwC3y+B2HdTu8Ep9J8Cr9RdTFxpa67X64ZDXxoXqEGfOfHn8cHWIK+NydYir46HqEPOabX1pRk8ibOjte6p+zMH1jmvo9YnwR0Z5iAluN8DtMrhdB7fL4HYd1O6Q01pfqT/zvFZ/jv7iuFkdYslSXwlIhGfHj1aH6EmEn6rvljlz5qWOoury3j4SoQFuN8DtuL0A3C6D23VQu8MX6o+P2/VvyMKF8XR1iCfrP763xmvVIVoS4aX6qTm+PL5aHeLM66O+NGOOgG04QHoSYfVwYRKhAW43wO0yuF0Ht8vgdh3U7nBxPF4d4o2OzoyWU8IXx5vVIZ6qH/+6HOl3AhLhww2T4+Qkws/WH+gpvX0vlI+AndOlNgyyxe0GuB23F4DbZXC7Dmp3yGmtjN6+lkT4cH3dxAvl87jnJMLP1x+DayL88eIQDYnwXEO/T0oixO0OuF0Gt+vgdhncroPaHT4zblRfhmxqrZv1Q/x+YnytOsSb9ZP8tPT2NSTCFxpKqnMS4YX6LEUiVOk5ycHtBrhdBrfr4HYZ3K6D2h0aWutux3G+LAJbPlCqYZLD6+PJ6hApifD5hhlAXx3j9fIgj9QX2JIIDUISIW53wO0yuF0Ht8vgdh3U7tDQWk90HOctrdWwXFVLb98L9XUTj4+79SHK16QjETo0TDPakggfKy8OjznJwe0GuB23l4DbZULcjtodck4JG657NSTCL42frA5BItRpSYSX64/BlkR4fYwfKQ5BIjTA7Qa4XQa36+B2Gdyug9odPlU/NWDOKWHD/B/nOpZCz0iEjzWUVJMIDRoS4dmOyfvrE+EXR8dMQrjdALfL4HYd3C6D23VQu0NDa+UU95EIZUiEOi2J8E59liIRqsSc5OB2A9wug9sdcLtMiNtRu8Pnx3irOETTKeG1+tkgSIQq5x8bzxaHoKTBgkQoE5IIcbsDblfB7Qa4XQa366B2h4bWerT+rHOBRCjTkAjHeLQ+1/6N4hDLsr/j7fIgM9tWJxASoUFIIsTtDrhdBbcb4HYZ3K6D2h1oLYOURPhY+VymHYnwxrhcHGKZLL5+de8zb9cfgyRCg5BEiNsdcLsKbjfA7TK4XQe1O9BaBiRCFRKhAb19MiRCA9xugNtVcLsBbpfB7Tqo3aGhtZ7rKEttaa2GSQ4/MX6qOkRLIrwxniMRitDbJ9ORCH+gPhF+fYx3ikNMcLsBblfB7Qa4XQa366B2B04JDRoS4dlxvTpESm9fx7hREqHBuTF+rDhERyJ8ZpQf5l+oDzHB7Qa4XQW3G+B2Gdyug9odHqk/PnJai0SoQiI0SClpaEiETzcoMSUR4nYH3K6C2w1wuwxu10HtDlz3MiARqvzIGC8Vh6CkwYJEqPLMjYxEiNsdcLsKbjfA7TK4XQe1OzS01ksdnRkkQoOIRPhWxwygJEKDkEQ4u5GrD/OYMTm43QC3q+B2C9yukuJ21O5AaxmQCFUaEuEMUZ+jWhLhT4/xM+VBSIQqKSUNuN0Bt6vgdgPcLoPbdVC7Q0NxX05rkQhV6O3zglQnkOXwKA9CIlSJGZOD2w1wuwput8DtKiluR+0OtJZBSCKc60n/ZHEIevsM5tLbD5UHIRGqNNRtXxzjSnGICW43wO0quN0At8vgdh3U7sB1L4OGRPg3x9eqQyzdGdWr0pEI6e2rIKRum3I1D9yugttlcLsBblehXM2CkxyHJ8dj1SEaEuHT41x1iJxEWF/S8MQYb5QHIRHKhPT2MfGAB25Xwe0yuN0At6sw8YBFg9rPvF7/4c1pLRKhSkMi/LGOHEUiNCARqnxmjIeLQ0xwuwFuV8HtBrhdBrfroHYHWsuARKjSkAgfGuN2cQgSoQWJUIWTHA/croLbZXC7AW5X4STHouMk53L9wLic1kpJhDdIhCJ3O4KQCGUuNSixIRH+7BjvFoeY4HYD3K6C2w1wuwxu10HtDrSWQUginKPvqhPhWzfG9xeHoLfPgkSo8rfqE+GnxrhUHGKC2w1wuwpuN8DtMrhdB7U70FoGIYmwobdvFlVfKA5BIrR4rf5AD0mEf7u+K44rOR64XQW3y+B2A9yuwpUcC05yHEiEKg29fQ2JkMGpFvT2qcxynOquOK7keOB2Fdwug9sNcLsKV3IsOMlxaGits/UfXxKhSk5vHwvGyZAIDXC7AW5Xwe0GuF0Gt+ugdgdayyAkEVLSIEMiNCARqvTMrobbDXC7Cm43wO0yuF0HtTvQWgYkQpWURMgMPAYhiTClbhu3O+B2FdxugNtlcLsOanegtQxCEmFGSQN12xYNifC9MX6uOERIbx/lah64XQW3y+B2A9yuQrmaRchJzoWO45xEqEMilHl0jCfKg7SUNDw5xheLQ/z8GF8tDkEiNMDtBrhdBbcb4HYZ3K6D2h1oLYOGRPjl8aXqEB2rYjckwq+O8QvFIZoS4exSrM5RLYnwbH0IEqEBbjfA7Sq43QC3y+B2HdTuQGsZhPT2zSP9enGIhkT4xY4cRSI0CEmEDXXbnOR44HYV3C6D2w1wuwonORYdJzmv17+UnNZqSISXxtnqECRCHRKhwdUxXikO0ZEI36qfHqdn4gHcboDbVXC7AW6Xwe06qN3h1frjI6e1SIQqJEKDlETY0Nv38Hi8OEJLIuy5koPbDXC7Cm43wO0yuF0HtTvQWgYkQhUSoQGJUCakbrvnSg5uN8DtKrjdALfL4HYd1O7wdv1lyJzWIhGq/MwYP1wcgkRoQSJUSRmcitsdcLsKbjfA7TK4XQe1O+ScEj41bjxTHIJEqEJvn0FKIgyp205ZMA63O+B2FdxugNtlcLsOanfIOSUkEaqQCGVIhAYNvX0vNCixIRF+pr40fILbDXC7Cm43wO0yuF0HtTvQWgYkQhUSoQGJUOb5ceN8cYiY3j7c7oDbVXC7AW6Xwe06qN2B614GJEKVlET43Bh3y4O0JMIX67XY0ts3yhNhygw8uN0Bt6vgdgPcLoPbdVC7Q1JrlR8jJEKVlETY0tv3C2N8tTxIQ2/fe2P8XHGIjpKGlMGpuN0Bt6vgdgPcLoPbdVC7A61lQCJUSUmE3xjjm+VBZrb9QnmQjJKGjt6+v1Nfb/B9Y/xicYgJbjfA7Sq43QC3y+B2HdTuQGsZhCTCec32zeIQM0vdSUiEL43xaHmQlkTYUNLQMANPRyKc/4l7oTjEL43xreIQE9xugNtVcLsBbpfB7Tqo3YERTAYhibCht49EaJDS29dQ0tAxOLUhEX5+jOeLQ0xwuwFuV8HtBrhdBrfroHaHpNait0+DRCjTkgh/eYxfKQ9CSYPKj9Z3xT1Sn2snuN0At6vgdgPcLoPbdVC7Q1JrlZ8SXqk/RycR/uVLhCm9fSFrKTT09nGS44HbVXC7DG43wO0qnORYcCXHoaG1nq7/+LbUbd8YP1QcoiERfqEjRzE41SCkty8lEeJ2B9yugtsNcLsMbtdB7Q5JrVV+jIQkwozevpZESG+fQUgiTClpwO0OuF0FtxvgdhncroPaHXJa61b9uDUSocorY9wsDkEitCARqqT09uF2B9yugtsNcLsMbtdB7Q45rUVJgwq9fTKfHeO58iAkQpmQRMjsah64XQW3y+B2A9yuwuxqFpSrOVDSoEIilMnp7ZuHR3WQp+tDhAxO7VknB7cb4HYV3G6A22Vwuw5qd2BVIYOQRJixYByJ0CIlEUb09rEYqAduV8HtMrjdALersBioRcdJzt8d46vFIXKue4UkQnr7ZEiEBu+M8fXiECwYZ4DbDXC7Cm43wO0yuF0HtTsknRKSCDVIhDIkQoMrY1wsDhGSCHsmHsDtBrhdBbcb4HYZ3K6D2h2SivsSEuEL4+nqECRCHRKhQUNvX0hJAxMPeOB2Fdwug9sNcLsKEw9YcJLjQCJUIRHKkAgNQhJhyloKuN0Bt6vgdgPcLoPbdVC7A61lQCJUSUmELati//IYv1IeJCURRszAw0mOB25Xwe0yuN0At6twkmPBmBwHEqEKiVCmJRHS2ycTUtLAmBwP3K6C22VwuwFuV2FMjkXHSc4b9cfHnfo3ZCFjVWwSoUpLIvzhMb6/PEhKIvxyfa8lvX0GuN0At6vgdgPcLoPbdVC7Q05r0dunQiKUeX+Mb5QHSUmElDSo9KyTg9sNcLsKbjfA7TK4XQe1O9BaBg2J8PlxpToEiVCHRGjAgnEqXMnxwO0quF0GtxvgdhWu5FhwkuOQkQjp7VMhEVqQCFVSevtwuwNuV8HtBrhdBrfroHaHpNYqP0ZIhCozS10jEYqkJMKGBeO+NUa5ElOmGcXtDrhdBbcb4HYZ3K6D2h2SWovePg0SoQyJ0KAhEXbUbTckQq7keOB2Fdwug9sNcLsKV3IsuJLjQCJU+T/snQuzHMd5nsEmYCikUADOSZEAdSCgQKjAk9QhAAsX6kIWKMoVBsUAssEIjOIKUIrlIJEUJwIVm7LIQFGci52LYzmGEifOxfb/dN9mdiHb5fe1q7uoz89Dcs/u7Mz0TM/s87F7vukhEMrkcRR/dnghUwLh1fFRakJKw4zevihPxcbtDrhdBbcb4HYZ3K6D2h2oLQMCoUqUQPjFlD49vJBfHD9yTZS87f0JA05eT+nk4CJo5HjgdhXcLoPbDXC7Co0cCxo5DgRCldydcXRwERMC4c6MGDWlt+9nUzo+vJAYgfAb6eDW4CIOvZfSweAiSFfzwO0quF0GtxvgdhXS1Sxo5Dh8JqUvDC6CQKgyIRAenxGjCIQGEwLhsfE/8jJ61LHBRTDwgAduV8HtMrjdALerMPCAxQS1U1sOBEIVAqEBgVCGQGiA2w1wuwpuN8DtMrhdB7U7UFsGZ8ZnWxIIVQiEFgRClSiBELc74HYV3G6A22Vwuw5qd6C2DOjtUyEQGkQJhHfG32RLIDTA7Qa4XQW3G+B2Gdyug9odqC0DAqHKbkqvDS5iSiCc8iyFKIGQ3j4VGjkeuF0Ft8vgdgPcrkIjx4JGjkOMQLifzowugt4+HXr7DIIEwgkj8DCEtAduV8HtMrjdALerMIS0BY0chxiBMEhvX5RhRuntM5gQCA9S+urgIsL09uF2B9yugtsNcLsMbtdB7Q7UlgGBUIXePgMCoQyB0AC3G+B2FdxugNtlcLsOanegtgwIhCoEQgMCoQx52wa43QC3q+B2A9wug9t1UHvl+M7d43d3do7fPZ7JLzvlb/+TvyqT8gzHfzmlf1Le1FnLhPKmfbW15FMrKUvulLW3yfXrtsK25vo5z1DelukPU/qnO3W1dVJeIL+tM+bPtbS2yN32ts5TZsif8/d91l7euuH1m1p2/TZP+mcp3W8L1j3PMyxb3bekLNIL6ZtbS9gqtG7z3TrPZrOWufNmfzN9a626vkAru+1xKXNr7X1Tnvpci2irz+XkvV+2sdfG8W+lb7Ypbcm2hmVzN7VTCywLlA3odZg3e6mtzWztQLU97fV4fC+lb/eD10rqh77X0VL4UuJmOze7snUG1Q0pZW827fjxf57S6aWu+7zr2VcL6PO21S9nQ9ndWpFrQfUgP1WHZVfqfv5KSv9iPYz91GovZS3LsdusZd2HtbRejetmbe9fr9J/mQvpx65V+XLW92XW86BVc63nepDrsagnat2AWvhSYcvh66vZ+U5Kj+r099s53nZn+Skuu7+sop3Rfentn2c9eftWLL/idsKXjfts/qEvFbCutP8o+h7X38169tUi1x/P1tnX17xsaVu0rOabxSV9x/ohrPP0PdnswPbvcz31tk6rVT/LqdENtXP3uykd7tu1nEVbVbb84LbktVT0oo9WQKvo/qteN69vxT9O6bv1p1yn9F/XxdsXL+7ezq/5n9u7F3cvXqzv89/yJ09rE/JXeeLt3d0yoX6z+ap+qu93/1V+KnaZYbfMnsnz1y/ymzK1z3jx1cp7+Z/8+l79++XXX3/9y7gdt+N23I7bt/Z1Keqn2+2/itrXw7sc2z9X7YcSAAAAAABAIGjkAAAAAABAKA4dO3lw7ODkyWMHxzL55WT52//kr8qkPMOxnAhZ39RZy4Typn21teRTKylLnixrb5Pr122Fbc31c56hvC3T8w1leXpZbZ2UF8hv64z5cy2tLXLQ3tZ5ygz5c/6+z9rLWze8flPLrt/mSb9W9qTOWfc8z7Bsdd+SskgvpG9uLWGr0LrNB3WezWYtc+fN/iB9sFZdX6CV3fa4lLm19r4pT32uRbTV53Ly3i/b2GvjWC6iTWlLtjUsm7upnVpgWaBsQK/DvNlLbW1maweq7Wmvx2MnU/q1fvBaSf3Q9zpaCl9K3GznZle2z6CyIaXszabl//JQjUtd93nXs68W0Odtq1/OhrK7tSLXgupBfqoOy67U/cxXtzeHsZ9a7aWsZTl2m7Ws+7CW1qtx3azt/etVWvejb3o7q5aK+4mTtVVzred6kOuxqCdq3YBa+FJhy+Hrqyl78r06/RvtHG+7s/wUl91fVtHO6L709s+znrx9K5ZfcTvhy8aVX+FSAetK+4+i73H93axnXy1y/fFsnX19zcuWtkXLaj6ov8C2af0Q1nn6nmx2YPv3uZ56W6fVqp/l1OiGOlmKqGtaz9U+b9/Q/oPbktdS0Ys+WgGtovuvet28vhXfS/Vnnr8pU/qv69KDS5f2H+TX/M+D/Uv7ly7V9/lv+ZOntQn5qzzxwf5+mVC/2XxVP9X3+7+eiygz7JfZM3n++kV+U6b2GS+9WHk3/5Nf361/X7pz585LuB2343bcjtvDuT2h9vXwLsf2z1W7eusOdzAZTLg59Vh6cXQR3JyqwzCjBtycqsLAAx64XQW3y+B2A9yuwsADFoyu5kAgVCEQykwJhJ9OaWd4ITECYe6ovjW4iBkPjLufb04dXEQGtxvgdhXcboDbZXC7Dmp3oLYMCIQqUQIhw4waBOntmxAIuZLjgdtVcLsMbjfA7SpcybGgkeNAIFQhEMoQCA3upHR7cBGkNBjgdgPcroLbDXC7DG7XQe0O1JYBgVAlSiD8fkq/NLyQKIHwTEq7g4sIEghJV/PA7Sq4XQa3G+B2FdLVLGjkOBAIVQiEMgRCgyApDRMC4YWU9gcXkcHtBrhdBbcb4HYZ3K6D2h2oLQMCoUqOUqciBMJ87n5yeCEEQpkggZB0NQ/croLbZXC7AW5XIV3NgkaOw4TaOjO+jT4jED6T0rXBRUwIhDspfXpwEfT2WQQJhNfz8xoGF8GVHA/croLbZXC7AW5X4UqOBY0cB3r7VOjtk6G3z2BCIMxPKPvq4CLC5G3jdgfcroLbDXC7DG7XQe0O1JYBgVAlSiCkt8+AEXhUSFfzwO0quF0GtxvgdhXS1Sxo5DgQCFUIhDIEQgMCoQqNHA/croLbZXC7AW5XoZFjQSPHgUCoQiCUIaXBIEjedpRAiNsdcLsKbjfA7TK4XQe1O1BbBgRCFQKhwZRAeHX8gw6CBMIoN6fidgfcroLbDXC7DG7XQe0OE2rr3PgiCgRCFQKhTJyUhvMp3R1cRJBAGKW3D7c74HYV3G6A22Vwuw5qd/haSu8PLiJObREIVQiEBgRCmSCB8Ob4IjK43QC3q+B2A9wug9t1ULvDC+N/hHFqa0IgPJmeHV0EgVAnTiDMP4/RhQQZZvS9lA4GF/Hc+CIyuN0At6vgdgPcLoPbdVC7A7VlECQQxnhgHHnbFgRClSi9fbjdAber4HYD3C6D23VQuwO1ZUBKgwqB0CBKIDwz/v7XICkNXMnxwO0quF0GtxvgdhWu5FjQyHEgEKoQCGVIaTAIkrcdJaUBtzvgdhXcboDbZXC7Dmp3oLYMCIQqBEKDKYHwSyntDC5iQm8fKQ0GuN0At6vgdgPcLoPbdVC7Q5zayr/0W4OLeHH86Usg/FgFwjgpDRNG4CGlQYVGjgduV8HtMrjdALer0MixmKD2QLU1oUlIIFQhEBpECYR3Uro9uAgCoQFuN8DtKrjdALfL4HYd1O5AbRkQCFUmBMKdlD49uIhIKQ3kbatECYS43QG3q+B2A9wug9t1ULsDtWVAIFSht8/gkykdHl4IgVAlys2puN0Bt6vgdgPcLoPbdVC7A7VlQCBUyV1xVwYXEefm1CmBkJQGlSi9fbjdAber4HYD3C6D23VQuwO1ZUAgVInS23c5pS8OL4RAqPJ8HoHnmbFFxHmWAm53wO0quN0At6vgdgPU7jChtl4bPzBHgUCoQiCUiRMIQ6Q0fCoHwi+PLaKlNPytsUWEaeTgdgPcjtuHgNtVorgdtTvEqS2GGVUhEMqQt20wIRCmlF4fW8ShQxdzlPrU2CLCpKvhdgPcjtuHgNtVorgdtTtw3cuAQKhCIDQgEKpECYRhruTgdgPcjtuHgNtVorgdtTtQWwYEQhUCoUGUQDj+gXFTUhpyIEzPjy0izJUc3G6A23H7EHC7ShS3o3YHasuAQKgS5VkKBEKD8b19z+cYNTwQ3s6FREhpwO0OuF0FtxvgdhXcboDaHagtAwKhSpTePm5ONQhyc2qU3j7c7oDbVXC7AW5Xwe0GqN2B2jIgEKpMCISfSOnzg4uI9CyFGIFwUt52iECI2x1wuwpuN8DtKrjdALU7TKit76T09cFFFK6NH2adQKgyIRAenpFtQEqDwYvDi4iS0hBm4AHcboDbVXC7BW5XieJ21O4Qp0l4dPxvhECoQiA0iBII3x3+TLopgTDKMKO43QG3q+B2A9yugtsNULsDtWVAIFSJEghJaTAYHwjJ23bA7Qa4XQW3G+B2FdxugNodqC0DAqEKgdBgSiA8PzxKzUhpyIFw+MXtCYEwTLoabjfA7Sq43QK3q0RxO2p3oLYMCIQqEwLhhRmD45DSYPBsSjtjS5jS2xdlmFHc7oDbVXC7AW5Xwe0GqN2B2jIgEKpE6e0jEBoQCFW4kuOB21VwuwxuN8DtKlzJsaCR40AgVCEQyhAIDYLcnBolEOJ2B9yugtsNcLsKbjdA7Q7UlgGBUCU/svrK4CIIhBYhhhmNcnMqjRwP3K6C22VwuwFuV6GRY0Ejx4FAqEIglCEQGkwIhDMeGBclbxu3O+B2FdxugNtVcLsBaneIU1ufTennBxdBIFQhpcGAQKgy61kKIXr7cLsDblfB7Qa4XQW3G6B2hzi1xVOxVQiEMnGGGSUQqkR5lgJud8DtKrjdALer4HYD1O4Qp7ZIaVAhEMrQ22cQJBDu5q64CIEQtzvgdhXcboDbVXC7AWp3oLYMggTCZ1K6NriIKIEwn7tvDS8kSiCcMAIPD4wzwO0GuF0FtxvgdhXcboDaHagtgyCBkN4+GQKhASPwqHAlxwO3q+B2GdxugNtVuJJjQSPHgUCoQiCU+TCl7w8vhECowgPjHHC7AW5Xwe0GuF0Ftxugdgdqy4BAqBIlEMbp7fvS8EdWRxlmNEpKA253wO0quN0At6vgdgPU7hCnthiBR4VAKBMnEMbI2w5ycyqNHA/croLbZXC7AW5XoZFjEWR0tddS2h1cRIHePpUJgfD9lD4aXAQpDRYhAmGUvO0wjRzcboDbVXC7BW5XieJ21O4Qp0lIIFSht08m/9IvDy9kSiA8PzxKRRlmNMpTsXG7A25Xwe0GuF0Ftxugdgdqy4BAqBIlEMZJaZgQCJ8dnho+JW87ys2puN0Bt6vgdgPcroLbDVC7A7VlQCBUIRAaEAhVuDnVAbcb4HYV3G6A21VwuwFqd6C2DAiEKlECIXnbBuMD4ZSUhgmBcC+lk2NLKOB2A9yugtsNcLsKbjdA7Q7UlgGBUCVKIIzT2xfiWQpTnoodZQQe3O6A21VwuwFuV8HtBqjdgdoyGB8If25GIHwvpXuDiyAQGhAIVaYEwig3p+J2B9yugtsNcLsKbjdA7Q7UlsGzwy9E5mu2lwYXQSA0IBAaBAmEUfK2cbsDblfB7Qa4XQW3G6B2hzgDbn82pZ8fXMT43j4CoQyB0GLCzakTnqXAzakGuN0At6vgdgPcroLbDVC7A01Cg/GBMD8Ra3wgfDWlI4OLIBAa0NunMuvm1IMIw4zidgfcroLbDXC7Cm43QO0O1JbBhECY0oPBRRAIDQiEBuMD4aynYo8OhNyT44HbVXC7DG43wO0q3JNjQSPHgUCoQiCUiRMIeSq2SpRAiNsdcLsKbjfA7Sq43QC1O1BbBqQ0qBAIDQiEKlGepUC6mgduV8HtMrjdALerkK5mQSPHIUYgpLdPhUBoMSGlgZtTVWjkeOB2Fdwug9sNcLsKjRwLGjkOIQIhI/DITAmEeYiRy8MLidLbN/6p2FMC4YRnKdDI8cDtKrhdBrcb4HYVGjkWNHIcQgRCUhpk6O2zmNDbNz4QkrftgNsNcLsKbjfA7Sq43QC1O8QZcJsHxqkQCGUIhAY8ME4lzJUc3K6D22VwuwVuV4nidtTuQJPQIEjeNikNMnFSGkIEwigpDVzJ8cDtKrhdBrcb4HYVruRY0MhxCBEI6e2TmRIIP0zp+8MLIRCqTElp2M1dcRF6+3C7A25Xwe0GuF0FtxugdoevpfT+4CIm1da18Vc7g+RtT+jt20npyuAi4qQ0fD6lTwwvJEQgnDUCT4inYuN2B9yugtsNcLsKbjdA7Q40CQ0IhCpRAiG9fQZxnoodIm8btzvgdhXcboDbVXC7AWp3oLYMJqQ0HKT9wUWQ0mBAIDQIktIQJW8btzvgdhXcboDbVXC7AWp3oLYMggTCCb19OUqdjhAIGYHHIEhKQ5S8bdzugNtVcLsBblfB7Qao3YHaMggyAs/1lM4OLuJ+SicGFzElEH4npX89vJApgfBLwx90ECUQRsnbxu0OuF0FtxvgdhXcboDaHagtgyAj8BAIZejtMwiS0hCltw+3O+B2FdxugNtVcLsBanegtgyC3Jw6IW+blAaDKYHwfEp3BxcR5KnYUfK2cbsDblfB7Qa4XQW3G6B2B2rLIEhv34S8bXr7DOjtU5kSCCeMwLOXhj9fP4PbDXC7Cm43wO0quN0AtTvEGXA7RCCkt+/jFQh5KrbBhECYhxkdPqp+lN4+3O6A21VwuwFuV8HtBqjdgSahQZDevhiB8EJKXxxcxKTevi+mdGF4IQRClQl526SreeB2Fdwug9sNcLsK6WoWNHIcQgTCKSPwTAiEpDQY0Nunwgg8DrjdALer4HYD3K6C2w1QuwO1ZRCkt4+8bRkCoUGQQBiltw+3O+B2FdxugNtVcLsBanegtgwIhCpR8rZ5KrbBu8MH+cm3NYQYgYcrOR64XQW3y+B2A9yuwpUcCxo5DgRClRh52wRCC3r7VCaMwMOVHA/croLbZXC7AW5X4UqOBY0chxCBcMoIPPT2yZDSYDC+t2/WMKOj87Zp5HjgdhXcLoPbDXC7Co0ciyCNnDxU4+7gIgohAiEpDQTCMYQIhFNSGqI8FRu3O+B2FdxugNtVcLsBanegSWgQpLePlAYZAqFBkKdiR7k5Fbc74HYV3G6A21VwuwFqd6C2DIL09l1P6ezgIqIEQh4YZxDnqdijUxqmPBUbtzvgdhXcboDbVXC7AWp3oLYMgvT2kdIgw82pBnHytkffnBomXQ236+B23D4G3K4Sxe2o3YHaMuCBcSo8FduAQKhCIHTA7Qa4XQW3G+B2FdxugNodqC2DCSkNB2l/cBEEQoMpgfCtlG4OL+T88Cg1Y5jRGTenRhmBB7c74HYV3G6A21VwuwFqd6C2DILkbU8IhBOeik0gtPjS8DtHCYQyXMnxwO0quF0GtxvgdhWu5FjQyHEIEQhJafh45W1PuTmVQKgy7ebUvz+2CBo5HrhdBbfL4HYD3K5CI8eCRo5DiEBISsPHKxDS22cQJBAez4V8YWwRNHI8cLsKbpfB7Qa4XYVGjgWNHIcYgTBISgOB0CBK3naQm1Pv5kK+OrYI7snxwO0quF0GtxvgdhXuybGgkeMQIhBOGWZ0wrMUclL11cFFEAgtQjwwbkre9oRAyJUcD9yugttlcLsBblfhSo4FjRyHIym9OriIIL19EwLhhJtT4zxLgUCokm9rSK+PLSJOIMTtDrhdBbcb4HYV3G6A2h2oLQPytlWiBMI4vX0TUhrGB8Ioedukq3ngdhXcLoPbDXC7CulqFn8ltd+48fjxjUL98055eZz/Ka/5Y5nwTvn2Byn9zTqpvbyTJ9aZHt947ubNvZv5JbO391x581z5+Nxe/pSnlJfyOb/s1ZnqHOWlzbwst3cz3xb3b9pc+d+yhjZbWVVdUZ85Tyxv6wztv2W1Zfa2XH9Zv86rLxtSZ/hhSv+2fpMnbAqpL7n09iEX9lzZpFpSXbTuxLJzeYPWhXpBdX/bKvae+4303boLdbHl+2VFy4bXD0vF1b/12za1bOwyZd2xMl/fxH+X0q+36UvdtxnrJq8F9v2ra2ora+uu+17+bKbkJbeOT5v071P6D6WeSjm9urbWtNmoZT1L7fXdXvZ/2b/ysqykL3fzF1M62g/CegT6Dvd56grK1tXDvpTZNmAprs7Ua6wesHZStVX8x5R+s+7esmFrzZSVrhtUZl9qoG7CctjXOcrWt0O0OfOWVeVz9/RylPvOL2dA2/y1ctbdryfMUnFreZtTdnPq1DMnf/itlP7hchD6L209JstZ1Y/echxq3Sz70I7y+rPalFQrpld0lsnP9C1ZT8NNvfdtar+l7d9OP/mWqtz6hbZfTD2ovXr3U/pPN28ebtzvL23GvfLx/oUL9y8cPnzh8P37+SX/mz/3ueqESvkiz1GXv3A/z59nrnMV/nNOafgv5Yv8TVmwffGJtpI+1zpzKSwXkFdd5uvfl2n1fS0vv9ksl//mkg/ffzkHwl8tS/ZvylaW75YdWwrIu9MLqnO0FZUdrGvKr8sSvdj2sS79X3NvX9+CPn/7ov/Xyrt793gnv7tbPt29WHj1Vdy+mRG3r87C7bgdt/90u/23Ufs641+o9kP5aAIAAAAAAISBRg4AAAAAAITi0Esv3bnzUqH+OVNe7uR/ymv+WCacKd/+t5S+WSe1lzN5Yp3pzkv3jhw5eyS/ZM6evVfe3Csf753Nn/KU8lI+55ezdaY6R3lpMy/LnT2Sr3SeaXPlf8sa2mxlVXVFfeY8sbytM7T/ltWW2dty/WX9Oq++bEid4XdS+oX6TZ6wKaS+5NLbh1zYvbJJtaS6aN2JZefyBq0L9YLq/rZVnL13LH1Qd6Eutny/rGjZ8Pphqbj6t37bppaNXaasO1bm65v47Q/SQZu+1H2bsW7yWmDfv7qmtrK27rrv5c9mSl5y6/i0SZ9L6XdKPZVyenVtrWmzUct6ltrru73s/7J/5WVZSV/uyI9S+t1+ENYj0He4z1NXULauHvalzLYBS3F1pl5j9YC1k6qtIhfx3+vuLRu21kxZ6bpBZfalBuomLId9naNsfTtEmzNvWdVvpPR7y1HuO7+cAW3z18pZd7+eMEvFreVtTtnNqVPPnPzhH6X0w+Ug9F/aekyWs6ofveU41LpZ9qEd5fVntSmpVkyv6G+l9FLfkvU03NR736b2W9r+7fSTb6nKrV9o+8XUg9qr91hKPzpy5GjjSX9pM54tH59cu/bk2tGj144+eZJf8r/5c5+rTqiUL/IcdflrT/L8eeY6V+HH2Wx/o3yRvykLti8+21bS51pnLoXlAvKqy3z9+zKtvq/l5Teb5fLfXPLRJ/8jF/I/y5L9m7KV5btlx5YC8u70guocbUVlB+ua8uuyRC+2faxL51/gB30L+vzti/5fK+/8+c908rvz5dP504VTp3D7ZkbcvjoLt+N23P7T7fZvofZ1xr9Q7eqtOxPuYMpPFt4dXEQhxM2pU4YZ5VkKMnGeij1hBJ7xD4ybMgJPlAfG4XYH3K6C2w1wuwpuN0DtDgzTYBBkmFECoUycYUYnjMAz4anY+ebUZ8YWEWeYUdzugNtVcLsBblfB7Qao3YHaMgjS2zfhWQoEQoMpgTAPljJ4DFACoQxDSHvgdhXcLoPbDXC7CkNIW8xo5HwtpfcHFxHnuleQ3r73UpLTGf+SEAgNCIQqUZ6lMOdKDm43wO0quN0At6vgdgPU7kCT0CBIbx8pDTJx8rYnpDS8O7yIKYEwSm8fbnfA7Sq43QC3q+B2A9TuQG0ZBOntIxDKxOntC3FzKr19DrjdALer4HYD3K6C2w1QuwO1ZRAkEJLSIJPP3beGF0IgVMmd4SF6+2jkeOB2Fdwug9sNcLsKjRwLGjkOBEKVCYHwfkonBhdBILQIEQijpDTQyPHA7Sq4XQa3G+B2FRo5FjRyHO6l9N7gIoLkbTMCj0ycQDjh5tRnhxcx5VkKUfK2cbsDblfB7Qa4XQW3G6B2B54qZDAhEKb0YHARU/K26e0ziNLbN/7m1CkpDVHytnG7A25Xwe0GuF0Ftxugdoc4TcIYgXBGbx952zJxRuAhpUElSm8fbnfA7Sq43QC3q+B2A9TuEKe2YqQ0BOntixIIGYHHIEggjNLbh9sdcLsKbjfA7Sq43QC1O/xMSocHFxGnSUggVCEQGlxOaW94ISFSGujtc8DtBrhdBbcb4HYV3G6A2h1eSenC4CLiNAkZgUclSiAkb9tg/M2p9PY54HYD3K6C2w1wuwpuN0DtDnGahGdTuj64iCB52/T2yTxM6cPhhUR5KvaEZynMGIEnSiDE7Q64XQW3G+B2FdxugNodqC0DUhpUCIQGUYYZnZDSkEfgeWZsEVMCIelqHrhdBbfL4HYD3K5CupoFjRwHUhpUCIQyp1I6N7yQKIGQ3j4VGjkeuF0Ft8vgdgPcrkIjx4J0NYcQgZDevo9XIIzT2xfi5lQCoQNuN8DtKrjdALer4HYD1O4Qp7ZCjMATpbcvygPj4vT2hRhmdMoD46KMwIPbHXC7Cm43wO0quN0AtTtMqK04j04lEKoQCA24OVWFQOiA2w1wuwpuN8DtKrjdALU70CQ0IBCqRElpiBMIQ6Q0RHmWAqOreeB2Fdwug9sNcLsKo6tZ0MhxCBEIGWaUQDiGEM9SiNLbRyPHA7er4HYZ3G6A21Vo5FjQyHEIEQh5YNzHKxBOuTmVp2KrRLk5dS+lk2NLKOB2A9yugtsNcLsKbjdA7Q5xaosReFQIhDKMwGMwPm+blAYH3G6A21VwuwFuV8HtBqjdIU5t0dunQkqDDCkNBgRCFRo5HrhdBbfL4HYD3K5CI8eCKzkOIQIhedt/DQNhlJQGAqEKjRwP3K6C22VwuwFuV6GRY0EjxyFEIHz+IO0PLmJKILyQ0tXBRcQJhFF6+xiBRyXMENK4XQe3y+B2C9yuEsXtqN2B2jII0ts3IW+bQGhAIFTJ/5+YnhlbxJSbU7mS44HbVXC7DG43wO0qXMmxoJHjECMQzrg5lQfGycQJhCEeGDelt29CIORKjgduV8HtMrjdALercCXHgkaOw5xA+HNjS2AEno9XIIwzAs+EQDi+t+8LOUYNV2KUlAbc7oDbVXC7AW5Xwe0GqN2B2jK4lNLzY0vg5lQC4RhC9PbdyjHq+tgi4vT24XYH3K6C2w1wuwpuN0DtDtSWwaV08KmxJTDMKIFwDCFG4InS23cj520PNkkGtxvgdhXcboDbVXC7AWp3oLYM6O1TiRIIyds2IKVBhUaOB25Xwe0yuN0At6vQyLEI0sjJMhndz1Cgt0+FvG2ZOL19EwLhsyntjC3hqzlGDX8+8pxAOPp/qTO43QC3q+B2A9yugtsNULtDnNo6Oz6lc3wgpLfv4xUI6e0zCJLSMCFv+53c20cjRwe3q+B2GdxugNtVprgdtTvEqa174zsCJqQ0BBlmlGcpGJC3rRIlpeFxLiJEuhpu18HtMrjdArerRHE7aneIU1sTrns9GH76RgmEUXr74qQ0TAiEQVIaJvT20cjxwO0quF0GtxvgdhUaORakqzlwc6oKedsy9PYZjL85dcowo1F6+3C7A25Xwe0GuF0Ftxugdoc4tTXhuteE3j7ytgmEQwiR0hAlEDLwgAduV8HtMrjdALerMPCABelqDvT2qRAIZQiEBuRtq3AlxwO3q+B2GdxugNtVuJJjMeNKzispXRhcxKQBt+ntUyEQysQJhNfG/9CDPEthQt72nOfk4HYD3K6C2w1wuwpuN0DtDnFqa8JYdOMDIU/FJhCO4UlK9wcXMb63L8rNqTRyPHC7Cm6Xwe0GuF2FRo5FkCGk49QWvX0qEwLhzZTeGlxEpBF4jo7/oZO3rTKnkYPbDXC7Cm43wO0quN0AtTvEqa0QedtRevvup3RicBEEQosQgTBK3jaNHA/croLbZXC7AW5XoZFjEWR0tTi1xc2pKvT2GUQJhORtq9DI8cDtKrhdBrcb4HYVGjkWNHIcQjwVm94+GQKhxYS87fEPjIsSCMOMrobbdXC7DG63wO0qUdyO2h3i1FaI3r4pgXDCA+MIhAZRevtIaVDhSo4HblfB7TK43QC3q3Alx4IrOQ4EQhVSGmTijMBDIFSJ8iwF3O6A21VwuwFuV8HtBqjdgdoyuDS8jT4lb3tCbx+B0IBAqBIlpWHKU7FxuwNuV8HtBrhdBbcboHYHastgws2pKT0YW0KG3j4ZAqEBgVCFKzkeuF0Ft8vgdgPcrsKVHIsgjZyPUnp/cBGFKTenju7ti5LSMCFvey+ly4OLIBBaBAmEc/K2Y1zJwe06uF0Gt1vgdpUobkftDhNqK8tk8O+jEqO3L8gwo9ycakAgVJnyVOwoedu43QG3q+B2A9yugtsNULsDtWWwnw64OVUiSkoDgdAgPzR+8EimUwJhlGcp4HYH3K6C2w1wuwpuN0DtDnFq62xK1wcXESRvm5tTZeIEwgnPUsg/j8EuCZTSQCPHALer4HYZ3G6A21Vo5FhMUHug2gqR0sCzFGTiBMLLKe0NLyREb9+UQLiTC7k1tggaOR64XQW3y+B2A9yuQiPHgis5DhNqK//SIwwzej2ls4OLuJDS1cFFxAmEUXr7gqQ0ROntw+0OuF0FtxvgdhXcboDaHSbU1pWUdgYXUQjR20cglCEQWkwIhPspXRhbwq0co4Zf3I4SCHG7A25Xwe0GuF0FtxugdgeahAZBUhoYgUeGYUYNgqQ0RBmBB7c74HYV3G6A21VwuwFqd6C2DILcnEoglCEQGoy/OXVKb1+UEXhwuwNuV8HtBrhdBbcboHaHOLU14alC4/O2o9ycGmUEHgKhwfiUBnr7HHC7AW5Xwe0GuF0Ftxugdoc4tRWity9KSgOB0IC8bZUpgXBCbx+NHA/croLbZXC7AW5XoZFjwZUchwlNwkvDL0Q+f5D2x5aQ+XpKnxtcBIHQgN4+FQKhA243wO0quN0At6vgdgPU7sAwDQZBevsupvTS4CIIhAZRAiHDjKrkvO3RJsngdgPcroLbDXC7Cm43QO0OcZqEPEtB5XZKdwYXQSA0iJLSwFOxVbiS44HbVXC7DG43wO0qXMmxoJHjQG+fCoFQJk4gpLdPJcqzFHC7A25Xwe0GuF0Ftxugdgdqy2BCb9+MYUZJaZDhgXEGQXr7ouRt43YH3K6C2w1wuwpuN0DtDnFqK8Qwo6Q0yEwJhDkx9bXhhUTp7QsSCKOkNOB2B9yugtsNcLsKbjdA7Q5xaitESkOUQMgD4wwIhCpTAuH7Od/g1tgiSFfzwO0quF0GtxvgdhXS1Sy4kuNAIFTZTenM4CKiBMI4KQ0EQpUoT8XG7Q64XQW3G+B2FdxugNodXhk+/nmg2gpycyp52zJxevuujf+hjw+EU25OjZK3jdsdcLsKbjfA7Sq43QC1O8RpEk5I7ttPBwRCCQKhAb19KlF6+7gnxwO3q+B2GdxugNtVuCfHgntyHM6mdH1wEUFSGrg5VYaUBgOeiq1CI8cDt6vgdhncboDbVWjkWExQe6DampLSMDrbkt4+GQKhBcOMqkR5lgJud8DtKrjdALer4HYD1O4Qp7bo7VNhBB4ZAqEBedsqNHI8cLsKbpfB7Qa4XYVGjgVXchxCPDCOp2LLEAgtQuRt81RsB9xugNtVcLsBblfB7Qao3YHaMpgwAs9B2h9bQoZAKMMD4wzy/ycO7lAkb9sBtxvgdhXcboDbVXC7AWp3oLYMgvT2TcjbvpDS1cFFEAgtQvT23coBZPjF7TkpDaP/lzqD2w1wuwpuN8DtKrjdALU7UFsGBEKVCYFwL6XLg4sgpcEiSEpDlN4+3O6A21VwuwFuV8HtBqjdIU5tTRhwm5tTVSbcnBonEF5OaW94ISFuTo2S0sA9OR64XQW3y+B2A9yuwj05FkGek5MvC+8MLqJA3rYKw4zKxOntmxAIg+RtR7k5Fbc74HYV3G6A21VwuwFqd3hl+EOeAjUJg/T2TQiEDDNqECUQ0tunMiddDbcb4HYV3G6A21VwuwFqd4hz3StE3vanUnowtoQMvX0y+dw9N7yQKHnbQXr7ogRC3O6A21VwuwFuV8HtBqjdIU5tTWgSBrk5dTelM4OLIBAaRAmE+8O7l3iWggNuN8DtKrjdALer4HYD1O4Qp7ZC9Pbl7oxjY0vI0NsnEyelgRF4VKL09uF2B9yugtsNcLsKbjdA7Q7UlsH4vG0CoQyB0CJEIIxyc+o7ubeP5+To4HYV3C6D2w1wu8oUt6N2hzi1NeG61/7w0zdKIIxyc2qcB8ZdG3+rYpBAGKW3D7c74HYV3G6A21VwuwFqd4hTW/T2qUx4lgK9fQZRAmGQm1Mn9PbRyPHA7Sq4XQa3G+B2FRo5FlzJcQiRt50TUw/GlpDh5lSZOIGQlAaVKL19uN0Bt6vgdgPcroLbDVC7w4QBt+M8VejS8HEzpvT2TQiEF1K6OriIKU/FjjMCDykNKlF6+3C7A25Xwe0GuF0FtxugdgeahAbjA2GU3r4JedsEQosQD4xjmFEH3G6A21VwuwFuV8HtBqjdgdoyGJ+3PSUQxrg5lUBowQPjVCakNNDI8cDtKrhdBrcb4HYVGjkWNHIcQgRCbk6ViZO3fTmlveGFhMjb5lkKDrjdALer4HYD3K6C2w1QuwO1ZUBvn0qUYUa5OdUgSG9flLxt3O6A21VwuwFuV8HtBqjdgdoyCHJzKr19MgRCg/3hd0PS2+eA2w1wuwpuN8DtKrjdALU7UFsGQVIaeCq2DIHQgECowj05HrhdBbfL4HYD3K7CPTkWNHIcJjw6NUhvH4FQJk4gnDACDykNKjRyPHC7Cm6Xwe0GuF2FRo7FBLXPqK04A26Pf2AcgVCGQGgR4lkKt3KMuj62iDh527jdAber4HYD3K6C2w1Qe+XlF15o/77wwtsvv11eXsiv7XP+t7wvU34/D9ZYPuUP/duXXyizlz/tU/9bptVP+b+ygvKyWaR8vzV/X6RN/wcp/a+l3DZLeVO2IH/7dpmprLSV15Zt66oTV+rktmDb9jZHWa4t9GJKv9wW2XxZC9nsTNu3tlllK+pG19pZdqXWVK2yuvV9T2oh+d03UvrtP6M6Wk1ul1a3dvlUilj3vtVTXV+eWjdi2Y+yW/87dwNs1lE3b7P/bfvb4suiyzbX8v90lfWjUKtu3dTPp/R7rSKWvWyvm71a9nupynbUWqGbVfea7Hvel6hv385u//ZmLW3RrW3rtdz3sW/n1pS+Nf34bG3O5iR6+Qcp/cHWcm317eRZz6Ve4Uu1tKPbj/FyXDYncv+qV3GdIZ+7R5/e5zpXP0GXDW7n1FYV9JruZ07f7Pzma+u21P/6vv+dlH5QJrdf6VrK5iiuBdbTalmsbWMvu1bDcnJtbVH7eeQ3d/L/N5SzoPx8ynF/aqfqPtT3dcm2yFMHf/Pz7TW0bMXmlHg7/zwub828ORPrsW+T+w42g6xHtUwuK+riabvZRdR+8m+++eajN998OweQ//PoUXnbWN7maevfR4++spmjf/HojTffeJR5s/zJE8sMb6zf53flT134zUf/NxfyQpuyrCYvvs2yfFugLN8WL3PlaW/UYr5SZ6uT+jJ5hlJSXjafu+lX6jdvfOXGjRvv5P/yy+Mbjx8/Lu/a25t7N3+C+4cbW5LF7bgdt+N23B7D7W+hdl3th3JVAwAAAAAAhIFGDgAAAAAAhOLQidOn27+nT189cbW8nM6v7XP+t7wvU34hpf9XPuUP/dsTp8vs5U/71P+WafVT/q+soLxsFinfb83fF2nT8wWp/7+U22Ypb8oW5G+vlpnKSlt5bdm2rjpxpU5uC7Ztb3OU5dpCv5vS+bbI5stayGZn2r61zSpbUTe61s6yK7WmapXVre97UgvJ776XPvitP6M6Wk1ul1a3dvlUilj3vtVTXV+eWjdi2Y+yW38vpzRs1lE3b7P/bfvb4suiyzbX8v90lfWjUKtu3dQ/SOkPW0Use9leN3u17PdSle2otUI3q+412fe8L1HfXv1xSu9u1tIW3dq2Xst9H/t2bk3pW9OPz9bmbE6iE/luyztby7XVt5NnPZd6hS/V0o5uP8bLcdmcyP2rXsV1hnzu/u2n97nO1U/QZYPbObVVBb2m+5nTNzu/+bvrttT/+r7/MKUnZXL7la6lbI7iWmA9rZbF2jb2sms1LCfX1ha1n0d+k4fH+XE5C8rPpxz3p3aq7kN9X5dsizx18Dc/315Dy1ZsTomrx4pLNjNvzsR67NvkvoPNIOtRLZPLirp42m52EbWf/KlTpx6eOvWb2Wx/9PBhedtY3uZp69+HDz/azNG/eHjl1JWHmVPlT55YZriyfp/flT914VMP/zgX8vttyrKavPg2y/JtgbJ8W7zMladdqcV8VGerk/oyeYZSUl42D4eU6iKnrnx07ty51/J/+eXDcx9++GF5196+dfmtn+CXPtnYkixux+24Hbfj9hhu/xFq19Wu3roTZ5gGnqWgws2pMvncPTe8kCjDjAZ5KnaUm1NxuwNuV8HtBrhdBbcboHaHOLUVYpjRKE/FjhII44zAEyIQThlmNMqzFHC7A25Xwe0GuF0Ftxugdoc4tcUwoyoTAuH9lE4MLoJAaBEiEPLAOAfcboDbVXC7AW5Xwe0GqN2B2jII0tu3m9KZwUUQCA2iPDAuyFOxo6Q04HYH3K6C2w1wuwpuN0DtDnFq6+z4Z0mRt60SJRDGydueEAhJaVDJvX3p+bFFZHC7AW5Xwe0GuF0Ftxugdoc4tTWlt2/06Zsf+3tybAkZ8rZl6O0zCPJU7CiBELc74HYV3G6A21VwuwFqd6C2DOjtU4nS2xcnEJK3rRIlpQG3O+B2FdxugNtVcLsBaneYUFtXUtoZXERhygg8o9voBEIZUhosQvT2TUlp2MmF3BpbRJiBB3C7Dm6Xwe0WuF0littRuwNNQoMgI/BMuDk1SkrDlEB4OaW94YWE6O2bEggn9PaFaeTgdh3cLoPbLXC7ShS3o3YHassgSG8fgVBmSkpDlEAYZASeKMOM4nYH3K6C2w1wuwpuN0DtDtSWwX464OZUiSiBME5Kw4RAmDvDB2dNTLk5dU5vHwMPGOB2Fdwug9sNcLsKAw9Y0MhxCHFz6pRAeDulO4OLiJK3zc2pBuN7+0hpcMDtBrhdBbcb4HYV3G6A2h2oLYMgedsTAmGU3r44gZCbU1WiBELc7oDbVXC7AW5Xwe0GqN2B2jIgpUGF3j6DKL19PEtBhUaOB25Xwe0yuN0At6vQyLGgkeMw4dGpQXr7yNuWmZK3fS6lG8MLuTY83yBKSkOUQIjbHXC7Cm43wO0quN0AtTvEqa0QI/BE6e2LEgin9PZ9mNLj4YVwc6pKlJQG3O6A21VwuwFuV8HtBqjdgdoyGN/bl8dRPBhbQoZAKDOlt29KIJzQ2xckbztKbx9ud8DtKrjdALer4HYD1O5AbRmMH4GHQChDILQIkbcd5ebUx7kIGjk6uF0Ft8vgdgPcrjLF7ajdIU5tTUjuG5/SQCCUiRMIX0vpneGFhEhpiBIIeU6OB25Xwe0yuN0At6vwnBwL7slxoLdPhWFGZeLcnBqity9K3jZXcjxwuwpul8HtBrhdhSs5FlzJcSBvW4XePhkCoQEpDSpcyfHA7Sq4XQa3G+B2Fa7kWNDIcQgxAg/DjMrEGYGHQKgyJRDu5EJujS2CKzkeuF0Ft8vgdgPcrsKVHAsaOQ709ql8PaXPDS4iygPjuDnVYPyzFPLPI703tog4I/DgdgfcroLbDXC7Cm43QO0O1JbB+LztKb195G3LxElpeDL8ztEoN6dGCYS43QG3q+B2A9yugtsNULsDtWVAIFQhEBpESWkIEgij3JyK2x1wuwpuN8DtKrjdALU7UFsG++kgQt72bkpnBhcRJRCSt20wPm87SkrDO7m3j4EHdHC7Cm6Xwe0GuF1littRu0Oc2ro3/jcyPm+bm1Nl6O2zoLdPJUpvH253wO0quN0At6vgdgPU7hCntkKMwMMwozJxevum3Jw6IW+bZymo0MjxwO0quF0GtxvgdhUaORYzruS8MnzUjEC1RW+fSpRAGKe379r4H3qQYUYnpDTMaeTgdgPcroLbDXC7Cm43QO0O1JZBkLztGIFwL6XLg4uIFAhJaVCJ0tuH2x1wuwpuN8DtKrjdALU7cN3LgAfGqdDbZxBlmNEgKQ1RevtwuwNuV8HtBrhdBbcboHYHassgyDCjBEKZOCPwEAhVogRC3O6A21VwuwFuV8HtBqjdIU5tTRimgd4+FQKhQZSUhiCBMEpKA253wO0quN0At6vgdgPU7kBtGTACj0qUQBgnpSFEIJzyLIUJgXDKU7FxuwNuV8HtBrhdBbcboHaHOLXFCDwqEwLh/ZRODC6CQGjBCDwqUQIhbnfA7Sq43QC3q+B2A9TuEKe2pvT2kbetwQg8BvT2qRAIHXC7AW5Xwe0GuF0Ftxugdoc4tcXNqSoTAmHuivsMvX0iBEKVKSkNE25OpZHjgdtVcLsMbjfA7So0ciy4kuMQ4lkKU/K2b6d0Z3ARBEIDAqEKD4xzwO0GuF0FtxvgdhXcboDaHagtAwKhynMpnR9cBCPwWEwIhPvDU8OjBEKu5HjgdhXcLoPbDXC7CldyLGjkOExI7gtycyqBUIbePgOGGf0T9s72547jPs/SIJRcRUVFyZAlgRQJiUIt1IJJWpRplxYsMmgNhhCBoA3RSrBsgEGJ2AUKqx9kl3RkGAGM5kvTpGaBpC9p0jpu0jR239t/rjM7u3vOIwXIfX+YgXDnuqjnec7Lnp1zZvdcP83sb2ZUaOR44HYV3C6D2w1wuwqNHAvG5DgwA48KgVCGQGhQvx6D16RLCYSkq3ngdhXcLoPbDXC7CulqFlzJcYhIaUgZnJoSCHNSGiasih0SCFNSGnC7A25Xwe0GuF0FtxugdgdqyyBkVWx6+2QIhAbkbavQyPHA7Sq4XQa3G+B2FRo5FjRyHCJSGlIGp9aFDq4PLoKUBouIlAYCoQNuN8DtKrjdALer4HYD1O5AbRmE9PZNSGkgEBpMCYRfKOVTg4tgLQUVGjkeuF0Ft8vgdgPcrkIjx4JGjgMLxqkQCGVyAuGElIaQtRRSBqfidgfcroLbDXC7Cm43QO0O1JbB+N6+Ovru9NgSKgxOlckJhBHTjKakNNDI8cDtKrhdBrcb4HYVGjkWNHIcIvK2UwIhq2IbPCjlw+GFEAhVUnr7cLsDblfB7Qa4XQW3G6B2B2rLYHxKQ8rgVAKhASkNKuRtO+B2A9yugtsNcLsKbjdA7Q6fHT414COXSnl6cBGNiN6+lLztlJSGeu5eHV4IKQ0qKSkNcxo5uN0At6vgdgPcroLbDVC7A01CAwanqqQEwilrKaSkNIxfSyGlt490NQ/croLbZXC7AW5XIV3NgkaOA4FQhUAok7NgXEQgnNLb914t5Ctji6i9faOHuVdwuwFuV8HtBrhdBbcboHYHasvg1fJawloKz5RydnARBEKDlEAYktIwIRDeqikNNHJ0cLsKbpfB7Qa4XWWK21G7A7VlQG+fSkogzBmcSiBUuVALeXRsEUw84IHbVXC7DG43wO0qTDxgEdLImTSC6c74lE4CoUpKIKS3zyAkEE7o7YsZk4PbdXC7DG63wO0qKW5H7Q45TcIpgXB0tmVKIEyZZpTBqQYhgfAXaiG/NLaImEYObtfB7bh9DLhdJcXtqN2BJqFByFoKBEIZevsMQgJhSm8fbnfA7Sq43QC3q+B2A9TukNMknJK3TW+fRkpKQ07e9pXxM+uHBMIJvX2MyfHA7Sq4XQa3G+B2FcbkWISMycmprfELxqX09hEIDVICYf16DF54+2aNUW+MLSInpQG3O+B2FdxugNtVcLsBanegtgxCevveLuX24CJIaTAgpUFlyoJxKSkNuN0Bt6vgdgPcroLbDVC7Q05tnRvfETA+b7t2Z5weW0JlQiCkt88gZXAqvX0qLAbqgdtVcLsMbjfA7SosBmoxQe1BtUVvnwq9fTKkNBiQt63ClRwP3K6C22VwuwFuV+FKjgVXchwIhCrMwCMzJRBeLeXW8EIiUhqYgccBtxvgdhXcboDbVXC7AWp3yKktphlVIRDK5ATCiMGpKb19zK7mgdtVcLsMbjfA7SrMrmbBFNIOETPw0Nv3yQqEOYNTHw6PUvT2ydDI8cDtKrhdBrcb4HYVGjkWXMlxIKVBhUAow6rYBuN7+6bMwJOSt43bHXC7Cm43wO0quN0AtTtQWwYhvX3PlHJ2cBEEQoOUaUZfHZ41kdLbRyPHA7er4HYZ3G6A21Vo5FjQyHGIyNtOmYHnTCnXBxdBILSgt08lJW8btzvgdhXcboDbVXC7AWp3yKktUhpUJqQ0EAgNyNtWSento5HjgdtVcLsMbjfA7So0ciy4kuMQkdKQMgNPyoJx5G0bMAOPCulqHrhdBbfL4HYD3K5CuprFjEbOZ8fPPphTWyF52wxOlcnp7YtYSyElpWFOIwe3G+B2FdxugNtVcLsBanfIqa0pedujUxro7ZPJWUuBlAaVlN6+OelquN0At6vgdgPcroLbDVC7Q851r3OlvDG4CHr7VAiEBim9faQ0qDAmxwO3q+B2GdxugNtVGJNjMUHtQbU14brXq+W1wb19N0s5PbaECikNMjmBkN4+lZSUBtzugNtVcLsBblfB7Qao3YHaMiAQqhAIDaYEwi+U8qnBRdDbp0IjxwO3q+B2GdxugNtVaORY0MhxmDLNKGspaKQEQganGjA4VYVGjgduV8HtMrjdALer0MixoJHjQCBUobdPJicQTkhpGN/bVzvDx2fwpqylgNsdcLsKbjfA7Sq43QC1O+TU1oRpGkIGp9LbJ0MgNHh1+JQvBEIH3G6A21VwuwFuV8HtBqjdIae26O1TyejtqwtvXxxcRFIgZAYelZRAiNsdcLsKbjfA7Sq43QC1O+TU1pS1FCIC4TOlnB1cREogzBmcGpG3TSB0wO0GuF0FtxvgdhXcboDaHXJqa8KE2+MXjCMQyhAILSIC4ZTBqSmBELc74HYV3G6A21VwuwFqd6C2DEJ6+ybkbU9YMC4npeFBKR8OL2RCIByft80MPA643QC3q+B2A9yugtsNULtDTm1NSWmI6O2bkLddo9T1hEBIb5/B+ECYspYCV3I8cLsKbpfB7Qa4XYUrORakqzlMGMHEDDwqEwIhC8ZZEAhVUnr7cLsDblfB7Qa4XQW3G6B2B2rLgN4+lZRpRqcEwikpDVeGRylm4JHhSo4HblfB7TK43QC3q3Alx4JGjsOE2nq1vDY4ENbE1NfGllBhLQUZ8rYNQganpqQ04HYH3K6C2w1wuwpuN0DtDjm1xTSjKvT2yUzp7btayq3hhbCWgsqE3j7S1Txwuwpul8HtBrhdhXQ1C8bkOLBgnAq9fTJTevtSAiF52yo0cjxwuwpul8HtBrhdhUaOBVdyHCJSGm6WcnpsCRUCoQyrYhuM7+1LWUuBRo4HblfB7TK43QC3q9DIsaCR40BvnwopDTIEQoOQVbFT8rZxuwNuV8HtBrhdBbcboHYHassgZJrRCYFwwoJxOXnbBEKVlLxtGjkeuF0Ft8vgdgPcrkIjx4JGjgOBUIXePhkCoUHI4NSUvG3c7oDbVXC7AW5Xwe0GqN0hp7YmTNMwPm87JRDS22cwJRBOWEth/ODUoGlGR6/KUsHtBrhdBbcb4HYV3G6A2h1yautcKW8MLiJkwTgGp8rkBMKI3r46dnv4l3xSSgONHAPcroLbZXC7AW5XoZFjMUHtQbUVkdKQMgPPmVKuDy6CwakWTDOqkpLSgNsdcLsKbjfA7Sq43QC1L9y/sXL//o37Ny4uP/VX/1n+XGxP/EEp//xGu7k+Wjfq29Vb9ZX1dt+43l4e3Z7e99AfaVts+764PHDY5dlS7vWH+ov7hvcv1n99N+t/rcz+ovZutzfd38G6xfLnN9pmR+WtfL06q9+6eHEvvO2jb9hes9/pL28ftv5qW7d7y8/ya3//y8/9G3evPfnktbt3754u5e7dJ+udJ+/Wn3aj3m23659lm2v11rV2v/3anlw27K9pjyw320vbo3W7wy7qdv+pjlrrL6rl9I2XbbeH+svrny9ve61/+nPt6fWh9e7+HpeKXD9LvfX9Uj6/VG0/KIcq6Qfo6NDtNbwehrVK6r1ed/2gLgeuUl+3Ht/7z5fyrf5o2+d++uyH+Npx5S311Sr2uHq2D9Dq6NqJE2U9yX6rlFP9Y60f7uTxPpwzx2fQRz7i9l1Y3+V2Wu8n8Y2flPKlvXr6ZocXtrIOr+o1uJ96/VvXa67XcX9//S0dn/v3f6WUP16LX8/VrZijz7bV81aPhw+wHoX9c69fyKXS+1nfyv9pKa8v5/eJb13f6/66dfdLHV97sp8gh6O2brceuXaYrtVj08795Vy9+71SnutPLGfq+ng/mP1Ar2f0elj3I3y0TfsK7Ud/P+GX870+8p9rAPmTddPtFK/fuPXEX75By9upD7Q31r4a61exnVxbIdtptpxa/Y3WrepL+h7/tBbyX9by16/Wenv55rcdHvawf+fWrZY6+UgxfTftlN/O798r5YPfX+6+8+nLL15+5/Ll9tP+e7Hd7nce++Zjj7377mONdyuPPfbNZxtvvfUWbsftuB234/Y4t//H/buI2v9StT9SjyYAAAAAAEAMNHIAAAAAACCKRx6cX3nw4PyD81eXn/qr/yx/rrYn/lopf3S+3VwfrRv17eqt+sp6u29cby+Pbk/ve+iPtC22fV9dHjjs8nYpv9Uf6i/uGz64Wv/13az/tTL7i9q73d50fwfrFsuf77TNjspbqVmjf9pvXb26F9720Tdsr9nv9Je3D1t/ta3bveVn+bW//+Xnwfl+xfv+/XrN9s/6tcD1At9+OXDNB9gucq+XgLfreYdrd9tFx/bS9ergYRd1ux/UlIb9wvZ6eXG50Lhf61739xv7Ve+jnIQTiQf71e3795eKXD9LvfV3akrDUrX9oByqpB+go0O31/B6GNYqqfd63fWDuhy4Sn3denwf/NdSftofbfvcT5/9EC/XRg/XUpfkh1bFh+o5XNSsF0hPnCjrSXa9lD/vH2v9cCeP9+GcOT6DPvIRt+/C+i6303o/ic//Tik/2aunb3Z4YSvr8Kpeg/up1791veZ6Hff319/S8bn/oF4Yfmktfj1Xt2KOPttWz1s9Hj7AehT2z71+IZdK72d9K/9npXxuOb9PfOv6XvfXrbtf6vjijX6CHI7aut127bpfMm4Hbc0sqRk/v7flW6wnbb/afMjeOEok6YlExwd8uaq+ZsucPOGX870+8k+q2X6+Z4xsyR31ZNpeslzZXnbT3lj7amzZGMvdwzX8/dTqb7Rdhd/SRf5bLeT8lqOyv90tRWX5gh/2sH/n1q32pJajjfpuemZJf+CPakpDv3v3y8c5SWsCRr9z+dM1sWHJcKh/2o1PL+kNNasBt+N23I7bcXuc2x/u30XU/peqXR26wwgmA6YZVWGaUYMHpXw4vJCIBeOmzMCTMs0obnfA7Sq43QC3q+B2A9TuQG0ZfH74WrZ1svjXxpZQeaaUs4OLIBAaTAmEE9ZSCFkVO2UGHtzugNtVcLsBblfB7Qao3SGntlgwTmXCNKMEQoMp04w+HL7QAYFQpvb2jf5f6gpuN8DtKrjdALer4HYD1O6QU1sRvX1TAuGE3r6UBeNYS8FgfCAMWhWbRo4BblfB7TK43QC3q9DIseBKjsOEJmHIqtikNMhMCYRXS7k1vJCIQEhvnwNuN8DtKrjdALer4HYD1O7w2fHpnDm1FRIIGZwqk5PSQCBUScnbxu0OuF0FtxvgdhXcboDaHXKahBOue31j+OlLIJTJ6e2bEggjBqcGpTQwu5oBblfB7TK43QC3qzC7mgXpag7nxs9AGDIDz4RAmJK3nTMDz4Tevjrl/eBYO2Wa0fdqIV8ZWwSzq3ngdhXcLoPbDXC7CrOrWUxQO7XlQEqDyplSrg8ugkBoQUqDyoRAyJgcD9yugttlcLsBbldhTI4FjRyHiJSGm6+VXxtbQiUjENYiLg4uIimlYUIg/HopnxpbAoHQAbcb4HYV3G6A21VwuwFqd6C2DMjbViGlwYC1FFRSUhpo5HjgdhXcLoPbDXC7Co0cCxo5DszAozJhwTgCoUFKb19IIEyZgQe3O+B2FdxugNtVcLsBanfIqS16+1To7ZMhpcFg/OBUphl1wO0GuF0FtxvgdhXcboDaHagtg1fLa4N7+6bMwENvn0zOgnERKQ0pgfBW/ZozhbQOblfB7TK43QC3q0xxO2p3oLYMxk8zSm/fJysQ5szAMyEQ1s7wwUVMWUthTt426+QY4HYV3C6D2w1wuwrr5FiENHIulfL04CIaE5L7xvf2kbdNIBxDRG9fSt52zJUc3K6D23H7GHC7SorbUbsDTUIDUhpUUgLh90v5zvBCUlIaxvf2TUlpuFALeXRsEYzJ8cDtKrhdBrcb4HYVxuRYhFzJyZmmIaS3j5QGGQanGpC3rUIjxwO3q+B2GdxugNtVaORYcCXHgUCoMqG3j1WxDab09hEIVSbkbdPI8cDtKrhdBrcb4HYVGjkWNHIcIqYZJaXhr2AgpLdPhd4+B9xugNtVcLsBblfB7Qao3eFyKV8dXMSk2jo3ftza+AXjUgIhvX0GUwanEghVJgTCObOr4XYD3K6C2w1wuwpuN0DtDjm1FTHNaJ1i5PTYEirkbcuQt20wPhCmTDM650oObjfA7Sq43QC3q+B2A9TukFNbE5qEIatik9IgQ0qDQUhv35y1FEb/L3UFtxvgdhXcboDbVXC7AWp3yKmtKb19oy9ETgmEz5RydnARKSkNOb19V0q5MLiIV4cXQSB0wO0GuF0FtxvgdhXcboDaHXJqa8I0DSG9fRNSGp4o5aXBRdDbZxHR20dKgwNuN8DtKrjdALer4HYD1O6QU1sRM/Ck9PZNSGmoHYoXBxdBILQI6e1LmYEHtzvgdhXcboDbVXC7AWp3oLYMQlIayNuWmZLSMGUGngkpDeRtq5Cu5oHbVXC7DG43wO0qpKtZ0MhxIBCqZPT25QTCKb19D0t5b3ARISkNE3r7btVAyBTSOrhdBbfL4HYD3K4yxe2o3YHaMiAQqpDSYMCq2Cp1Ft7xc7GkpDTgdgfcroLbDXC7Cm43QO0OObU1YQTT+LUUUganpgTCnN6+CYGwDmsY3KGYkrdNupoHblfB7TK43QC3q5CuZsHEAw5TAmHEqtgEQhkCoUFI3nZKbx9ud8DtKrjdALer4HYD1O6QU1vMwKOSMc1oTiAkpUElJRAyJscDt6vgdhncboDbVRiTY0G6mgO9fSoZgZC1FCwiAiF52w643QC3q+B2A9yugtsNULtDTm0xOFUlI6WBGXgsyNtWmZO3PdokFdxugNtVcLsBblfB7Qao3SGntiIGp6b09qUEQnr7DJhmVIUrOR64XQW3y+B2A9yuwpUcC67kOJwbf7VzfG9fvWZ7emwJlQmBsCZVXx9cRE4gnLJg3IS1FFgVW4VGjgduV8HtMrjdALer0MixmKD2oNqaktJAb59GSiAkpcEgpLfvQi3k0bFF0MjxwO0quF0GtxvgdhUaORYz0tVeLOXM4CJyaiskb/vtUm4PLoJAaDAlEF4Z3hWX0tv3Xi3kK2OLmDMmB7cb4HYV3G6A21VwuwFqd6BJaEBvn0rKDDyXSrk6vJApKQ0TAmHINKMTAiFXcjxwuwpul8HtBrhdhSs5FjRyHCKmGWUGnk9WIMzp7YtIaUgJhFNWxcbtDrhdBbcb4HYV3G6A2h1yaouUBpUJKQ0pgXBKb19KIByf0jAlbzslEOJ2B9yugtsNcLsKbjdA7Q45tTVlBp7Rpy+9fZ+sQMg0owb09qnQyPHA7Sq4XQa3G+B2FRo5Fsyu5hCRt53S25eSt01Kg0HIgnEpgRC3O+B2FdxugNtVcLsBanfIqS16+1QyevvqJD8XBxeRtJYCgVBlzqrYNHIMcLsKbpfB7Qa4XYVGjgVXchwm1Nar5bWEvG3WUpDJSWmYsGAcgVCFRo4HblfB7TK43QC3q9DIsaCR4zDhulf9ptPbJ0FKg0HKqtjj87brovHjlZiylgJud8DtKrjdALer4HYD1O5AbRkwA49KSiDMSWmI6O1LCYS3am8fjRwd3K6C22VwuwFuV5nidtTuQG0Z0NunkpLSwOBUg78+3CUMTnXA7Qa4XQW3G+B2FdxugNodqC2D8XnbU1bFfqaUs4OLSJlmlEBo8FopT4wtISUQTlkVG7c74HYV3G6A21VwuwFqd3ixlDODi8iprZCUBmbgkclJaYgIhFMWjEsZnIrbHXC7Cm43wO0quN0AtTvQJDRgmlGVlLxtevsMSGlQ4UqOB25Xwe0yuN0At6twJceCRo5DRG9fSkrDhECY09uXMs3o+EA4ZXDqnN4+ZlczwO0quF0GtxvgdhVmV7OgkeNAb58KedsyBEIDUhpUuJLjgdtVcLsMbjfA7SpcybGgkeNwZ/x3hLxtFVIaDEhpUElJaeBKjgduV8HtMrjdALercCXHYoLag2qLVbFVMgan0ttnQSBUSentw+0OuF0FtxvgdhXcboDaHXJqi7UUVAiEMvT2GRAIVWjkeOB2Fdwug9sNcLsKjRwL0tUcIganpgRCFowzIBCqpARCFgP1wO0quF0GtxvgdhUWA7WgkeNAb58KvX0yBEKDkAXjUgIhbnfA7Sq43QC3q+B2A9TukFNbE5L7QqYZJRDKkLdtwAw8KjRyPHC7Cm6Xwe0GuF2FRo4FY3IcIqYZnRII3y7l9uAiCIQGBEKVlN4+xuR44HYV3C6D2w1wuwpjciy4kuMQEQinpDQQCGVIaTAIydueM80oV3IMcLsKbpfB7Qa4XYUrORY0chwIhCoZKQ2sim0REQhJaXDA7Qa4XQW3G+B2FdxugNodJtTWpVKeHlxEgxl4VDICISkNFldKuTC4iJCUhpTePtzugNtVcLsBblfB7Qao3YEmocH4GXhS8rZTphl9qpR7wwtJ6e0LGZw6IRAyJscDt6vgdhncboDbVRiTY0Ejx4HePhV6+2SeL+W54YWkBMKQvO2UlAbc7oDbVXC7AW5Xwe0GqN2B2jIIWUuBwakyOYHwYSnvDS4iJBDOSWkY/b/UFdxugNtVcLsBblfB7Qao3SGntiLWUqC375MVCElpMAgJhBN6+27V3j4aOTq4XQW3y+B2A9yuMsXtqN0hp7bujE/pZAYelSdKeWlwETmB8EEpHw4vhECokrKWAm53wO0quN0At6vgdgPU7kBtGbAqtgq9fQYpKQ3MwKNCupoHblfB7TK43QC3q5CuZkEjxyEipSElEKbMwDMlb3tKb98XSvnU4CLGB8KbNYAMv7h9oRby6NgiuJLjgdtVcLsMbjfA7SpcybEgXc2Bwakq9PbJkNJgQEqDCldyPHC7Cm6Xwe0GuF2FKzkWIRMP5KwqNL63r3ZnnB5bQoVAKENKg0FISkNK3jZud8DtKrjdALer4HYD1O5Ak9CAQKhCIDRgBh6VlEDIOjkeuF0Ft8vgdgPcrsI6ORY0chwmJPe9OnxyQALhX8FAOCWlgd4+lTmDU2nkGOB2Fdwug9sNcLsKjRyLGWNyXizlzOAicpqETDOqkhIIcxaMm9DbRyBUmZOuhtsNcLsKbjfA7Sq43QC1O+Q0CSMCYcoMPARCg5RAGJLSkBIIcbsDblfB7Qa4XQW3G6B2h5zamjDhNjPwqKQEwpy87YiUhvr/ieNn1U+ZgQe3O+B2FdxugNtVcLsBanfIqa2IwakpgZBVsQ1SAuH43r4paymkzMCD2x1wuwpuN8DtKrjdALU75NTWlFWxydvWYME4g5RASN62Co0cD9yugttlcLsBblehkWPBlRwHevtUSGmQIRAahORtp0wzitsdcLsKbjfA7Sq43QC1O+TU1oS56MYHQganEgjHEDEDz5SUhjnTjDImxwC3q+B2GdxugNtVGJNjMWMK6ZzamjM49e+PLYFAKFOzJi4OLoJAaBHS25eylgJud8DtKrjdALer4HYD1O6QU1sTrnvV7oxfHVsCgZDevjEQCFVSAiFud8DtKrjdALer4HYD1O7AqkIG9Zv+t8eWQN62TE5v35RVsSNSGlKmGWUxUA/croLbZXC7AW5XYTFQC8bkOEy47jU+ENbE1NNjS6gQCGWmTDNKIFQJ6u1jTI4BblfB7TK43QC3qzAmx4J0NYeI3j5SGkhpGMOVUi4MLiIkpSGltw+3O+B2FdxugNtVcLsBanegtgxCAuHbpdweXERKIMxZMC6it29KSkPKWgq43QG3q+B2A9yugtsNULsDtWUwfnBqSt52yqrYOb19DE5VuVALeXRsETRyPHC7Cm6Xwe0GuF2FRo4FjRyHiN6+lLztCYEwZ3BqSiAkb1uFMTkeuF0Ft8vgdgPcrsKYHAsaOQ4RgZC87U9Wbx+DUw0IhCpcyfHA7Sq4XQa3G+B2Fa7kWNDIcYgIhCkpDSmBMKe372Ep7w0uIiQQThicyjo5HrhdBbfL4HYD3K7COjkWNHIcJsxFR962CoHQgECoUjN+yhtji8gJhLjdAber4HYD3K6C2w1Qu0NObUX09pHSQCAcA4NTVVICIW53wO0quN0At6vgdgPUvnCncqr9Wjl159Spc/XPqXajPVNvVf5eKT9a7t65c649uGx44mX1v+WZ5dV9n8srl5vn+j7XDbfn9qLrS++c+nz17sk99jLqK9e3cvwm192eqv/1vR0V19/yYcv9Ze3evyzlS8v2fb8b+yffXvPR8pb3uNfKx97KcXHfLeVXjgo/14vq72B9p/sH3Hdwco+1rK3Wjp46VEwp31022T/5+kR/j2uVndjjuteTH279YMvH3g/29r5+Usr31hrej2Z/um1/9KlOngVHJ8FHPtL20PaWT536USnf6Nv2ErZS1i23Eg6fpb/h9TiceLxv/fFif1jK19f3up4U/WC3x07spp9P23dg23Y9bvun2/fcqv/UnYePVx4+/O+l/ObDh+1O/VVvNNqddvtKvbVutjzcfl05urO9ZH9dv3ml/uu7WR6rv39cytntkb7HXsBhT8cF7b/71n0XH3/25IYPH/92KX/++CuvXH/l+kuNV15Zfte/9Va93f62G9fbrX63b7RuWH9f74+3rSt1w3Wrvp96p349Tm177M+sz9dtn3q+8VT/024t/9b/lp/+2H5nv9v+LpvVf39cY9S/3R9ZeH3deN9ZfWzde9+s/Vo27AX2O2sxh22ef+q5e88999y9e8/de6kW8nr9W+8+d6k+UB+9dKneuNQeqI/Xe+1WffS5eqNvUG+1B+vt5WXtlf1me+T81QcPrp5/cP7Bg/P1d6MW8cHP2832c3V5aPnzoFK3Xp64ev7+/RsXb9y/caP/3L9798knn6w/ly/jdtyO23E7bo9z+49Ru672R+rRBAAAAAAAiIFGDgAAAAAARPHIcuGuX/VbaJfwXt+u5a0X8ir/o5RfX+62i4PLK9Z7+8vqf8szy6v7PreLiO01yz7XDbfn9qLrS596/jOlfOHkHnsZ9ZXrWzl+k+tun6//rZceD8VtVy+3LfeXtXu/W1OFl+37fvdrp9sn317z0fKW97jXysfeynFxH5TyuaPCX+9FrZdI18uq2wfcd3Byj+3C6lprR0/tFVOntfxg2WT/5OsT/T2uVXZij+teT3649YMtH3s/2Nv7+g+l/OFaw/vR7E+37Y8+1cmz4Ogk+MhH2h7a3vLzz/96KT/u2/YStlLWLbcSDp9lu8a9XnY+erxv/fFi62jLH67vdT0p+sFuj53YTT+ftu/Atu163PZPt+95ufT91HJl+t69eu5+616/at0uZi+sF7bvXdouYK8Pt1+Xju5sL9lf129eqv/6bpbH6u+anPEH2yPrJfH9RX1PxwXtv/vWfRcff/bkhvee+3opf/e5duG8Xl9vF8775fPlCnu/2N5v9Ovp/eFlo3XD+rtele8X25cd1A3Xrfp+6p369Xhl22N/Zn2+btuuyrfr8suf5Sp9+7f+t/z0x/Y7+932d9ms/vtONdv390cWLq4b7zurj61775u1X8uGvcB+Z8sT2Le5cb9lCzxZ0wbu1mTkcr/+rXefvNbzCK5dqzeutQfq4/Veu1UffbLeWBMNltvtNcvL2iv7zfbI5RffeefFy+9cfuedy/V343/WIv59u9l+XlweWv68U6lbL0+8ePnddx/77GPvPvZY/3n35ZefffbZ+vPWW7gdt+N23I7b49z+v1C7rnZ16A4jmAxCphl9u5Tbg4tIWRV7yloKDE5VYXCqA243wO0quN0At6vgdgPU7kBtGYQEwgkz8NQlq68PLoJAaBERCOsEVeMnnJwQCFkM1AO3q+B2GdxugNtVWAzUgkaOA4FQhWlGZQiEBvT2qdDI8cDtKrhdBrcb4HYVGjkWNHIcJtTW6VJuji2BQPjJCoQ5aylMWDCOQKhCupoHblfB7TK43QC3q5CuZkEjx2FCbbEqtgqB0IDePpWUlIYaCMsvji2igtsNcLsKbjfA7Sq43QC1O1BbBiG9fRMGp6YEQlIaDMYHwps1gLwxtoiclAbc7oDbVXC7AW5Xwe0GqN2B2jIIydt+pq7CPLiICYGwjn+9OLiISb19V0u5NbyQCSkNtTP8ibElpKQ00MjxwO0quF0GtxvgdhUaORY0chzujL/aGdLbl5HSMCUQ5vT2RQTClJQGGjkeuF0Ft8vgdgPcrkIjx2KC2oNq69z4q53kbauQ0mDwoJQPhxcSkdIwpbfvvVrIV8YWQSPHA7er4HYZ3G6A21Vo5FhMUHtQbZHSoMJaCjL09hmM7+1Lydtm4gEP3K6C22VwuwFuV2HiAQvS1RwmXPciEKrQ22dAIFSZktKQ0tuH2x1wuwpuN8DtKrjdALU75NQWvX0qBEKZKYNTSWlQSUlpYJ0cD9yugttlcLsBbldhnRwLruQ4sJaCCtOMypC3bRAyA09KIMTtDrhdBbcb4HYV3G6A2h2oLYOQQEhvn0zONKMEQpWUQIjbHXC7Cm43wO0quN0AtTtQWwbjA2FNTH1tbAmVCb19DE41mBIIr5RyYXARIQvGpQRC3O6A21VwuwFuV8HtBqjdIae2Igan1m/66bElVOjtk5nS21e/IG8NL2TC4NTxgTBlLQUaOR64XQW3y+B2A9yuQiPHgokHHBicqjIhED5RykuDiyAQWkQMTk2ZgYdGjgduV8HtMrjdALer0Mix4EqOA4FQhd4+mSmB8F4p7w8vJCIQBuVts06OAW5Xwe0yuN0At6uwTo5FSCPnUilPDy6iEREIp6Q0MAOPDIHQgAXjVG7V3r6IRg5u18HtuH0MuF0lxe2o3SGnSRiRtz1lcCq9fTJTBqdOCYQTBqeGLBg3IRCyGKgHblfB7TK43QC3q7AYqAVjchzo7VN5ppSzg4tICYQ5vX0RM/BMSWlIGZyK2x1wuwpuN8DtKrjdALU7UFsGIYGQ3j6ZnN6+iJSGlEDIlRwP3K6C22VwuwFuV+FKjgWNHAcCoQqBUCant49pRlXm9PYx8YABblfB7TK43QC3qzDxgAWNHIeIvO2UGXgmTDNaZXJ+cBFMM2pBb58KV3I8cLsKbpfB7Qa4XYUrORaMyXGICIQMTpWps5hcHVxEUiCMGJxKIHTA7Qa4XQW3G+B2FdxugNodcmprwnWv+k3/1bElEAhlcgJhnazxzeGFsJaCyoVayKNji6CR44HbVXC7DG43wO0qNHIsSFdzODd+mnV6+1QmpDTkBMIpvX0T8raZZlSFMTkeuF0Ft8vgdgPcrsKYHIsJag+qLXr7VCYEwl8u5XODi6g9Jg8GF0EgtGBwqgpXcjxwuwpul8HtBrhdhSs5FlzJcYjI204ZnHqmlOuDi5gyOHXKNKMMTlVJydtmnRwP3K6C22VwuwFuV2GdHAvG5DhMqK3xvX0EQpmcGXhS8rbHB8I6C+/4i9spgRC3O+B2FdxugNtVcLsBanegtgxOl3JzbAkpgXDC4NSc3r6UQEhKgwrpah64XQW3y+B2A9yuQrqaBY0ch4gF46YEwrdLuT24iAmBcEredk5KQ0TedkpKA40cD9yugttlcLsBblehkWPBmByHCbVFb58KgdAgZS0FevtUaOR44HYV3C6D2w1wuwqNHAsaOQ4RgTBlBp6UlIYpedv3Snl/eCEEQpWUvG3c7oDbVXC7AW5Xwe0GqN2B2jIYn9JQR9+dHltChUAoM6W3b0ogjMjbnjI49b1ayFfGFkEjxwO3q+B2GdxugNtVaORY0MhxIBCqZORtEwgtCIQqKQvG4XYH3K6C2w1wuwpuN0DtDhNqq04w8vTgIhoEQhV6+2RyFoyLSGmYMjh1Qm9fXdH9tYhGDm7Xwe0yuN0Ct6ukuB21O9AkNBgfCMnblqG3zyJiBp6g3j7S1Qxwuwpul8HtBrhdhXQ1Cxo5DiwYpzIhED5RykuDi8iZgSclpYFVsVWYXc0Dt6vgdhncboDbVZhdzSJknZyc614haynQ2yeTM81oRG9fygw8MY0c3K6D22VwuwVuV0lxO2p3oEloQCBUmdDblxMI6e1TSentI13NA7er4HYZ3G6A21VIV7MIuZKTk9xH3rZKSkpDzuBUevtUUgIhbnfA7Sq43QC3q+B2A9TukFNbEb19UwIh04zK5CwYR2+fyoQZeGLS1XC7Dm6Xwe0WuF0lxe2o3SGntiY0CRmcqnKmlOuDi8hJaaC3TyUlpYFGjgduV8HtMrjdALer0Mix4EqOAykNKhN6+wiEBlMCYcSCcVNSGlJWxcbtDrhdBbcb4HYV3G6A2h1yauvc+GnWQwJhxgw8TDNqQUqDSkreNm53wO0quN0At6vgdgPU7pBTW/T2qTxTytnBRaTMwEPetgEpDSo0cjxwuwpul8HtBrhdhUaOBVdyHCY0CcnbVknp7WMGHoPxvX0pKQ2MyfHA7Sq4XQa3G+B2FcbkWHAlx4EZeFQyAmFO3nZKb19IIEwZnIrbHXC7Cm43wO0quN0AtTtQWwanS7k5toSbpZweW0KFQCiT09t3pZQLg4sIydueMzi1/OLYIiq43QC3q+B2A9yugtsNULtDTm1F5G0TCGVIabCoX4/RX/TxgbB+PcZf3E4JhLjdAber4HYD3K6C2w1Qu0NObUWkNEwJhBMGpxIIDQiEKim9faSreeB2Fdwug9sNcLsK6WoWXMlxiAiE5G3LkNJgMSEQhqylkJK3jdsdcLsKbjfA7Sq43QC1O+TUVkRKAzPwyOQEwimDU6tMBnfFkdIgc6v+/y7pajq4XQW3y+B2A9yuMsXtqN2B2jIISWmYEAhZS8EgpbcvJKUhpbcPtzvgdhXcboDbVXC7AWp3oLYMWEtBJaW3b8o0oymBkJQGFRYD9cDtKrhdBrcb4HYVFgO1oJHjEBEI6e2TIRBaRARCevsccLsBblfB7Qa4XQW3G6B2B2rLgN4+lQmBcMoMPARCg5CUhjnTjHIlxwC3q+B2GdxugNtVuJJjQSPHISIQMgOPTB3gd3VwEZPyti+V8ubwQujtU0kJhLjdAber4HYD3K6C2w1Qu0NObZ0bPzlHyODUt0u5PbiIlECY09s3YQaekLztlAXjcLsDblfB7Qa4XQW3G6B2h5zaiujtY8E4mZzevinTjJLSoJKSt43bHXC7Cm43wO0quN0AtTtQWwYhaylkBEKmGbUgpUElJRDidgfcroLbDXC7Cm43QO0OObU1YenUkMGpEwLhhMGppDRYRATClGlGaeR44HYV3C6D2w1wuwqNHIsJag+qrYjevimDU8nblskJhBF521N6+y7UQh4dWwRjcjxwuwpul8HtBrhdhTE5FlzJcaC3TyVjBh5SGizqAL8zg4sIydueEAi5kuOB21VwuwxuN8DtKlzJsZhxJefF8d+PnNo6XcrNsSWQ0iBDb59FxOBUUhoccLsBblfB7Qa4XQW3G6B2B5qEBqyloDKhty9nwbiUGXhCUhomBELWyfHA7Sq4XQa3G+B2FdbJsQhp5NT1sJ4eXERjQnJfSG9fRiCcktKQ09s3IaWhfj0GF8GCcQ643QC3q+B2A9yugtsNULsDTUIDAqEKg1MNUnr7SGlQYUyOB25Xwe0yuN0At6swJsci5EpOzjQNITPwZARCBqdaTAiEv1bKL48tIWVVbBo5HrhdBbfL4HYD3K5CI8eCKzkOBEKVCdOMThicmhMI6e1TIaXBAbcb4HYV3G6A21VwuwFqd6C2DEIGp2aspUDetkXE4NSUlAYaOR64XQW3y+B2A9yuQiPHgkaOQ0QgJG9bJicQ0tuncrPGqDfGFpGT0oDbHXC7Cm43wO0quN0AtTtQWwYhgXDCWgoEQgMCoQopDQ643QC3q+B2A9yugtsNULsDtWUwPm+7dmecHltChd4+mZyUhjqLyeAolRIIU2bgwe0OuF0FtxvgdhXcboDaHagtg/G9fQRCmZzBqXVG+jeHFxKRt50SCLmS44HbVXC7DG43wO0qXMmxoJHjQCBUmRAIJ8zAk7MqNoNTVVJSGriS44HbVXC7DG43wO0qXMmxoJHjEJHSkLKWAtOMGqQEwpCUhpRAiNsdcLsKbjfA7Sq43QC1O1BbBiHTjJLSIENvnwGBUIVGjgduV8HtMrjdALer0MixCGnk1LTUpwcX0Yjo7UuZZjQlpSGnt2/C4FRSGlRixuTgdh3cLoPbLXC7SorbUbsDTUKDkGlGMwIhKQ0WEXnbKQvGcSXHA7er4HYZ3G6A21W4kmNBI8eB3j4VUhpkpgTClLUUxgfCKQvGpQRC3O6A21VwuwFuV8HtBqjdIae2zo3/joQEwrdLuT24iAm9fbdKuTq4CAKhRUhv35yUhvKLY4uo4HYD3K6C2w1wuwpuN0DtDjm1FdHbx+BUmZxASEqDSspaClzJ8cDtKrhdBrcb4HYVruRYcCXHIaK3b0ognNDblxIIp8zAQ2+fCoNTHXC7AW5Xwe0GuF0Ftxugdoec2qpTjIy+2hmS0pDR28c0oxYEQpWUVbFxuwNuV8HtBrhdBbcboHaHnNqK6O2bEgifKeXs4CImBMKcVbFTevtYS0GFdDUP3K6C22VwuwFuVyFdzYIrOQ4TaotpRlXOlHJ9cBH09llMWEuBQKhCI8cDt6vgdhncboDbVWjkWNDIcYhYS4HBqTI5gXBKb1/EgnEpaymQruaB21VwuwxuN8DtKqSrWTDxgENEIEyZZpRAaJCS0kDetgqNHA/croLbZXC7AW5XoZFjEdLIuVTK04OLaEQEwpTevpRVsXNSGgiEKikpDbjdAber4HYD3K6C2w1QuwNNQgMCoUpKIGQtBYOQlIaUaUZxuwNuV8HtBrhdBbcboHYHastg/Aw8N0s5PbaECnnbMq+Xcml4ISmBkMGpKlNWxcbtDrhdBbcb4HYV3G6A2h2oLYPTpdwcW0LKNKMTevtyphllBh4V8rYdcLsBblfB7Qa4XQW3G6B2h5zailgwLiWlIaW3LycQRqQ0pATCmDE5uF0Ht8vgdgvcrpLidtTukFNbpDSoZORtT+nty8nbjphmtH49xs+qn5K3jdsdcLsKbjfA7Sq43QC1O1BbBuNTGqYEwgnTjDI41WBKIKyLbp0ZXERISkNKIMTtDrhdBbcb4HYV3G6A2h2oLYPxvX2/NOMbQkqDTE4gJG9bJWWaUdzugNtVcLsBblfB7Qao3YHaMhg/zWgNhOOn5iAQyhAIDcYHwpRpRmnkeOB2Fdwug9sNcLsKjRwLGjkO9PapTEhpOFPK9cFFMDjVImJw6pRAmDI4Fbc74HYV3G6A21VwuwFqd6C2DKYEQnr7NOjts5iQtx0yA09K3jZud8DtKrjdALer4HYD1L7wwgu367/2u9+4vdypv9fb7Ub995ulfKb9PWy8Pbls3n4vTy8bLH9eOLve257uu1tY9tB398Lts+vD3y7lt7dX902Xn76XvbAT73MttW93KL1vdnhjZ/c3XPleKT/a3+b6Ubbnb+9vev2g23uuP2f7vb7t0Uc/rq/18323dpNtb3nf0f7siXo6rrzjzdYiWuV8/PkXXvhhKd/9nbWIE+X3o3X49Hslbi8+qtvD51kK2gveDtffqgs27Mdw2/ZwRLYDcLbXzFEV1z/L7raTZ9t+O5BrndXX/bSUf7Yfh+MTcC9r+1xHz+4H+Hirw+c8+Rlv/6yU393eQ39XhzdxqKrDCbN9+hOlHh2/F25/aTllt1pZNvvDUr599FlbjWzfiP5Wl/Nq38PhmB0OwtGXaz/T96pa7tYvyM+OT/yPHPqlhO0Tbntq5R6qZH3d/vH3p+obXt9ZHVjdvujbB9tet9fTfmc/CY6+7fupcvQF2XbRS2k36tfjM/uX+rD/rTK3Q1l3uR7So9redrqdT8eH6FBTt2uM+tGJej584FPnTjXunLvTfp07daf+a4+1+/WRdu/UuXqnPte2bDfP3albt82XDepDy7b1O1i+tLyo7aj9Xn617ZZH13t1L/XW+si6+foe6v1+48qVhw8ff/zh+q9y5Ur79fBs/Zr/63a/Pbk88vgrlZeuv/TKK9fbrXan3m4/Tz31fKX+eq7x/fOVw3lw/NU6SHk97XA7bt8FhNuPbLNshttx+yfO7d/4i5SJ2g9fwGO1P1KPJgAAAAAAQAw0cgAAAAAAIIpHnn325fqv/e43Xl7u1N/r7Xaj/quj737Q/h423p5cNm+/l6eXDZY/z35tvbc93Xe3sOyh7+7Zl7+2PvwPSvnf26v7pstP38te2In3uZbatzuU3jc7vLGv7W+48tulXN7f5vpRtudf3t/0+kG391x/vtbv9W2PPvpxfa2f74NSHtve8r6j/dkT9XRcecebrUW0yvn4888+++9K+eBfrEWcKL8frcOn3ytxe/FR3R4+z1LQXvB2uL5cyr/aj+G27eGIbAfga71mjqq4/ll2t5082/bbgVzrrL7uT0o5ux+H4xNwL2v7XEfP7gf4eKvD5zz5GV8+X8rj23vo7+rwJg5VdThhtk9/otSj4/fsy/9wOWW3Wlk2+8el/J+jz9pqZPtG9Le6nFf7Hg7H7HAQjr5c+5m+V9Vyt35Bfn584n/k0C8lbJ9w21Mr91Al6+v2j78/Vd/w+s6+VcqfHX1dttft9bTf2U+Co2/7fqocfUG2XfRS2o06A88P9i/1Yf9bZW6Hsu5yPaRHtb3tdDufjg/Roab+TTXb5RP1fPjAb735VuP9N99vv9586/36rz3W7tdH2r233qx36nNty3bzzffr1m3zZYP60LLt79dCvrm8qO2o/V5+te2WR9d7dS/11vrIuvn6Hur9fuPWrQ8//OIXP1z/VW7dar8+/L+1iH/U7rcnl0e++NXKE2ee+OpXz7Rb7U693X7ee+8XKvXX32j8079ZOZwHx1+tg5TX0w634/ZdQLj9yDbLZrgdt3/i3P7//iJlovbDF/BY7erQHUYwGYyfZvTROmqNwakSU1bFnjIDz6VS3hxeCINTVSbMwFMHp44fg47bHXC7Cm43+P/snVuvZVd6lr1HOnSEY4qqDTK0q2wpKlEqpLIpyTZO7CpEywJpqygrcqtobrCVVmgjiLgwgQ7IuQgRiAtACCQHEFxwlX/ADSHhGM7wkxjzuOaqQ/O+SY+vnbefx7X3Xoe51phrrDmfz2PMb4yB21VwuwFqd8iprT5Z/OgZCAmEKszAY1ASCAvWUgiZZjRlLQXc7oDbVXC7AW5Xwe0GqN0hp7YievseVJwhBEKZnEAYsZZCSm8fjRwP3K6C22VwuwFuV6GRY8GVHAfWUlApWDAuJRCyYJxByKrYNSkNrJNjgNtVcLsMbjfA7Sqsk2NBI8ehJ6a+O7iIPh/91dgS6O2TyentKwmEBSkN4wNhyoJxXMnxwO0quF0GtxvgdhWu5FgUqL2itvoV2xuDi5goqK2S3r7x3QCXfXqcwUXcbO2bg4vI6e0jpUGFQOiA2w1wuwpuN8DtKrjdALU75NRWREpDSm/f72/tpwYXwQw8FhEpDSl52zHparhdB7fL4HYL3K6S4nbU7sB1L4PxKQ0ledsZgTCnt++z1j4fXgiBUCWltw+3O+B2FdxugNtVcLsBanfIqa2IGXgIhDI5gZDBqSr09jngdgPcroLbDXC7Cm43QO0OObVVMOF2SW8fedsaDE61iBicetVj1PB+n5QF43C7A25Xwe0GuF0FtxugdofXxy+Wm9MkDJlmNKO3LydvOyUQhgxOTVlLAbc74HYV3G6A21VwuwFqd6C2DEJm4GGaUZmcQEhKg0pKSgNud8DtKrjdALer4HYD1O5AbRkwA49KSiDMSWmImGY0KKWBRo4BblfB7TK43QC3q9DIsWBMjkNEIExJaSAQGpRMM9pnMRmtxfGBsGRV7JQZeHC7A25Xwe0GuF0Ftxugdgdqy2D8DDwpvX0pg1NJaTAICYQpedu43QG3q+B2A9yugtsNULtDTm2xKrYKvX0yJb19rKWgkhIImV3NA7er4HYZ3G6A21WYXc2CdXIcCuaiIxCqEAgN6O1TYcE4B9xugNtVcLsBblfB7Qao3SGntsjbVilYS4FAaFCSt00gVEkZnIrbHXC7Cm43wO0quN0AtTvk1FZEb99FP0MIhBI5gTBlLYWQaUYLevto5HjgdhXcLoPbDXC7Co0cC67kOBQk94UMTn3c2keDiyAQGpDSoEJvnwNuN8DtKrjdALer4HYD1O6QU1ukNKhkrIrNDDwWEYNT6e1zwO0GuF0FtxvgdhXcboDaHXJqKyKlISVvm0BoQN62SspaCjRyPHC7Cm6Xwe0GuF2FRo4F6WoOEdOMlqQ0ZORt91lMvhhcBIHQIiSlIWUGHtzugNtVcLsBblfB7Qao3SGntlJSGsZ3A5C3LZOT0sDgVJWU3j7c7oDbVXC7AW5Xwe0GqN2B2jIISWlgLQUZFowzGB8Ir/rpMbzfJ2VVbNzugNtVcLsBblfB7Qao3YHaMhg/A0/KgnEpedvMwGMQ0tuXsio2bnfA7Sq43QC3q+B2A9TuQG0Z0NunktLbR962AXnbKo8qlkzB7Q64XQW3G+B2FdxugNodXm/t5uAicmorpLePvG2ZnLxtAqFKyuBU3O6A21VwuwFuV8HtBqjdIadJyAw8KhmBsPeYvDe4CAKhRUjedkogxO0OuF0FtxvgdhXcboDaHXJqi7UUVEhpkMnJ2y6Ygef68O4levsccLsBblfB7Qa4XQW3G6B2h5zaKrju1c/0q7EllATCjN4+AqFF7zEZfYGbBeNUaOR44HYV3C6D2w1wuwqNHAvS1Rz+Qmt/anARIb19BYEwZQaekpSGkmlGC3r7xgdCUhoccLsBblfB7Qa4XQW3G6B2h5zaikhpuKiYmoNpRmVyevsYnKqSEghxuwNuV8HtBrhdBbcboHaHnNqKmGY0JRCS0mBAIFQpSWm43Qu5GFsEjRwP3K6C22VwuwFuV6GRY0G6mkNBk3D8NKMlM/BctnZrcBEEQoOUVbFDUhpqFowbP5swbnfA7Sq43QC3q+B2A9TukFNbKWspjM/bJhDK5EwzWpC3zTSjKlzJ8cDtKrhdBrcb4HYVruRYcCXHISKlgbUUZLpMvhhcBCkNFvT2qdDI8cDtKrhdBrcb4HYVGjkWNHIcUnr7xl/rLMjbvtnaNwcXkRMI77f2cHghLBinktLbh9sdcLsKbjfA7Sq43QC1O1BbBiG9fczAI5OT0hDR28daCg643QC3q+B2A9yugtsNULsDtWUQkrfNDDwypDQYjO/tS5lmlIkHPHC7Cm6Xwe0GuF2FiQcsaOQ4RPT2kdIgQyC0iFgwjt4+B9xugNtVcLsBblfB7Qao3SGntiKmGaW3T4aUBouIlIaU3j4aOR64XQW3y+B2A9yuQiPHgimkHQqahNdbuxpbQkpvH3nbBimBkJQGFdLVPHC7Cm6Xwe0GuF2FdDULruQ4RARCFoyTIRBaRPT2laQ0FEwz+qhi8Xvc7oDbVXC7AW5Xwe0GqN2B2jIo6e1jwTiNkmlGCYQGIWsp1PT2jT/NcbsDblfB7Qa4XQW3G6B2h5zaemP8OVIyOHX8GcKCcTJvt3Z/eCEpgXB8SkPK4FTS1Txwuwpul8HtBrhdhXQ1iwK1V9RWXw/rxuAiJiJm4GEtBRl6+ywievtK8rYLUhpiGjm4XQe3y+B2C9yukuJ21O5AbRmMD4QXFQmdBSkNKYEwZ5rRiN6+lEAYM7sabtfB7TK43QK3q6S4HbU7UFsGIYGQaUZlcnr7+mXhm4OLIBCq0MjxwO0quF0GtxvgdhUaORY0chwiAmFKSkNKIMzp7SsIhMzAo0IjxwO3q+B2GdxugNtVaORYhDRycqZpCBmcSiCUyenti1gVu2QGnpS8bdzugNtVcLsBblfB7Qao3YHaMiAQqrBgnAF52yrMwOOA2w1wuwpuN8DtKrjdALU7UFsGpDSoEAgNUnr7QgJhSm8fbnfA7Sq43QC3q+B2A9TukFNb/UwffY70M/3J2BJ6b9/4MyQjpSFnmtHPWvt8eCERvX0MTnXA7Qa4XQW3G+B2FdxugNodcmororcvJaWBvG2DPsTv4fBCWEtBpSClgUaOB25Xwe0yuN0At6vQyLHgSo5DRG9fSUpDxqrYzMBjQSBUud0LuRhbBI0cD9yugttlcLsBblehkWPBlRyHiN6+kkBYsGDczda+ObiInN4+8rZV6O1zwO0GuF0FtxvgdhXcboDaHagtg5CUhoJAmNLbR0qDAYFQhUaOB25Xwe0yuN0At6vQyLEIaeQUrSrUV8QaPc16yOBUUhpkSlIaGJyqkjI4NWZ2Ndyug9tlcLsFbldJcTtqd8iprZTevvFnCCkNMjl526Q0qKQEQtzugNtVcLsBblfB7Qao3SHnuldBkzAkpSFjBp6SaUZzAmFBb9/11m6OLSFlLQXS1Txwuwpul8HtBrhdhXQ1i5ArOTnTNITMwMOCcTI5g1MjUhqu+ukxXIkpq2LjdgfcroLbDXC7Cm43QO0OObVFSoNKRiDMWTAuJRCGTDOaktKA2x1wuwpuN8DtKrjdALU75NRWQZNwfCC86GfI8JSGgsGpKYHw7dbuDy8kJRCG5G2nzMCD2x1wuwpuN8DtKrjdALU7vD481zKoSUhKg0pKSkNO3nbPfR19oo/v7StJaUjp7cPtDrhdBbcb4HYV3G6A2h1oEhqUTDPK4FSNkkBY0ttXMs1oRCAkpcEBtxvgdhXcboDbVXC7AWp3oEloQG+fCtOMGqT09oWkNKTMwIPbHXC7Cm43wO0quN0AtTvkNAmZZlSFVbFlcgIhedsqKYEQtzvgdhXcboDbVXC7AWp3yKmtlBl4IlIaUganEggNyNtWoZHjgdtVcLsMbjfA7So0cixCruTkLJ06PhCmpDTQ22eQsio2gVAlZkwObtfB7TK43QK3q6S4HbU75NRWREpDSSAsmGaUvG2DksGpBYEwZMG4lECI2x1wuwpuN8DtKrjdALU75NQWM/CoFARCevsM+gnycHghEXnbT/rpMXwultu9kIuxRcSkq+F2Hdwug9stcLtKittRuwPJfQYlgTBiVWwCoUFJb19E3nbKgnH92B3//7u43QG3q+B2A9yugtsNULtDTm1FrIrNDDwyJYNT/2Brnw0vhMGpKikpDTFXcnC7Dm6Xwe0WuF0lxe2o3SGntiIGp9LbJ8MMPBYRKQ1MM+qA2w1wuwpuN8DtKrjdALU7UFsGpDSoFEwz+qi19wYXQW+fBYFQhUaOB25Xwe0yuN0At6vQyLGgkeNQUFvXW7saW0LJDDwZKQ0EQouIlAYCoQNuN8DtKrjdALer4HYD1O5AbRmMD4QlvX0FM/AU9PaVDE7NCYSspaBSMDiVRo4HblfB7TK43QC3q9DIsaCR4xCRt33RAyHTjEqQt20RkdJQMs1ozQw8Gevk4HYd3C6D2y1wu0qK21G7w+ut3RxcRE5thczAkxEIc6YZLQmEfdGt0Sd67wwfXERKIKy5koPbDXC7Cm43wO0quN0AtTvQJDSgt08lJRDmpDRE5G2XBMKUVbFxuwNuV8HtBrhdBbcboHYHmoQGITPwEAhlCIQGDE5V4UqOB25Xwe0yuN0At6twJceCKzkOEb19JTPwZEwzSkqDBYNTVVJ6+3C7A25Xwe0GuF0Ftxugdgdqy2B8b19JICzo7etn+tcTAmFJb99nrX0+vJCI3j7yth1wuwFuV8HtBrhdBbcboHYHasuAVbFV+pn+5eAicgIhKQ0qJSkNKYEQtzvgdhXcboDbVXC7AWp3oLYMQlIa6O2TyQmEESkN9PY54HYD3K6C2w1wuwpuN0DtDtSWQcg0o/T2yeQEwoi1FOjtc8DtBrhdBbcb4HYV3G6A2h2oLYOQlIbL1m4NLoLePoOUvG0CoQqNHA/croLbZXC7AW5XoZFjQSPHoV+zHX21M2RwKr19Mjm9fQUpDSGBMGWaUdzugNtVcLsBblfB7Qao3YHaMiClQeVRa+8MLoJpRi0YnKpS0NvXj93xpzlud8DtKrjdALer4HYD1O5AbRmErIqd0dvXi/hicBGkNFiM7+1LWUuBKzkeuF0Ft8vgdgPcrsKVHAsaOQ4FtfXz7d7V2BJSUhpS8rZzevtIaVCp6e1jMVAD3K6C22VwuwFuV2ExUAsaOQ4RedslKQ0F04wW9Pb1rIn3BhdRFAjp7VMpCYS3eyEXY4ugkeOB21VwuwxuN8DtKjRyLCoaOT/Z2p8cXMT91m4MLmIiYlXslEBIb58BedsqJSkNKb19uN0Bt6vgdgPcroLbDVC7Q0Ft5cxFFxIIM/K2cwJhSW9fxIJxKXnbMY0c3K6D22VwuwVuV0lxO2p3oLYMQlbFzsjbzhmcmtLbF5LSkDI4Fbc74HYV3G6A21VwuwFqd6C2DFhLQSUlpYFAaDC+t+9JPz2GZ/DW9PYVTCGN2w1wuwpuN8DtKrjdALU75NQW04yqZATCkt6+t1u7P7yQkkD4Rms3BxcRktKQkreN2x1wuwpuN8DtKrjdALXPvLbw8vQz/dpu77cW/m1r393vLBu+PD09/zo8eLyxPXV6l2MJT2372ms9LfUnjtuennkxx7Ke84Lzh5Z7v9Daz33/7U4f6XmPbgUddv3pT9XP9N/Ya/HsTdaKe+azT3ee2f9l4/2JY3n/rp+Ev/m8F21fzVmFPPN5jq977oec+a3W/k5/w77x00fD6S2Wg2D6vX/Ws8/1oq9xffi7rf3a86t/f7vv+6WuW53KfnbzXsQXL3jlix57bnnPfAtH/lxrf+b77OLz3/T8m52qbf/2nvuifoL8tdPLn9pkuXv24Nn3/9TB9sIP+c9a+8sv2PkXHynz93/2Yc6E8tQLemf4oYi9Kp57FLz4MHj6dDo+9u/76fEf9mPyB2faM776edu4Hbe/oCZwO27//51NuH0kvzu3o3ZD7S+1exP9O+113m9P/+bb663lyfmx78331zvrr+XP9OD8s7/TUy/fHp+LWJ/YXr0Vde9767uuv/f3WzffXrTdmQvZ7i3PbLeWO6cdOJR6r/3SVuj53/1zPPuyZT+O+3b6nNvLln/L517r6VBDe2Vst84rbK+u/YM+VdphX491ub3TqU7PPs9WxrFWDnV5rJV5/097vm26Vdb+cfYyjzt2vrfLYXT4Fo/Hx+kIWHa6f+dnFbl9icePdvoCjvX11MGyfe7lky4bP/XsaYdOh/C+Z9vjZ0UcquRY7nm1zb97PU1VdXqf4xd9PGbPd2s7do5f3dPnwOm76re+dzgUt09xeo/jpzns7tmZ96Lf+9sc3uxwEm77vZ/Y58fD8RQ6Pnz2Jtvpu3607SQ7+yDbpzgdD8ed2L6K00bHL+u8Bk/fxPVX+n/3Xnnlleln+nPv+nrj+nxj/j393OuP3Js26nemv/3+6VXz3/7EtuErf6u/9V9969NP31rZb/Rbd9+625/49G7/1+m3+oPz8+vmy+9pm/777ny/b7w+3rdf7r31t3sR0wPT7Vdf/dar/af/mn4WvvHRRx/d+uijb3zjVv/X/y7/fnzija9//eu4/ezAPJ63uB23H7+uwyH19LGN2586T0/1e3oT3F7rdtR+dlweT9tn1f7SdtAAAAAAAAAkQCMHAAAAAACieOmTr0188rVPPvnk9nxju73cmp/sf/vwor80PT7fWbb52ie3t236nY3p5nTv8PL18enV0yu215xeuvz5qdZ+ZS573XZ73fzQ/Ni6b9ubrYUsD20fYv8IWzlP/fnkn7T2cH+P7Y339z3bfv9Aa1Hrlvvn28veqmV91S+29jcPO7MVs73Ntnvb+8+3e+U/sz/LdtN3sX3ebWemhM5/MD+3vdP62tv9geNe7tWwbrzV4v4BD9/xem8v/2+09o/nB7d92/duL2D907/W9b/tMNq+xf3bXXflqbr9j639+f2N93rc/5x/Ace/awGnjQ+7uH/keZv/1Nqvr7e3A2t7//2F2/OnY/XpKjmry9M3sf3+tdb+7P419yo43t6/m1MVbsfbVspc8nLK7d/64fhcK+xftfaTWw3sH+f0onWr04v3kucT+rC/x3o9HPLzth+19vf3g+3s0+47evwEh6Nt/dCnetre5FTo8qJ+Bfn17dH9wDmv+G2P5kP/zCDrEbXv9+lAP32Nn/zdbrb/vO/GjWv9v4+vXbs2/Ux/Pr6x3rgx35h/Tz8f90c+njbqd6a//f7pVfPf/sS24bVf6YX8lzuPH99Z2W/0W5d3LvsTjy/7v06/1R+cn183X35P2/Tfl/P9vvH6eN9+uXfn9/Uifrs/MN1+881vv9l/+q/pZ+HDBw8eXDx48OGHF/1f/7v8e3/iqqcj7ycMbj870E/+2d78eBwfjLUWdFIPbsftuB23/9DdfvNU56j9cJyf9LO9eb+lDnTKmaYhYi2FlAXjUmbgYZpRA6YZVWF2NQ/croLbZXC7AW5XYXY1C6aQdohYS6EHwvFnyOPWPhpcBIHQoCQQFqyK3U8PFoyToJHjgdtVcLsMbjfA7So0cixo5DikBEJ6+75CC8b90db+yPBCUgLh+N4+AqEDbjfA7Sq43QC3q+B2A9TuQG0ZXG/tamwJJati09snU9Lbd7+npQ4vpCClYXxvX0lKQ8qCcbjdAber4HYD3K6C2w1QuwO1ZUBKg8qj1t4ZXEROIOzLbn0+vJCCVbFJaVChkeOB21VwuwxuN8DtKjRyLGjkONDbp5IRCElpsCClQaWgt6//T9z40xy3O+B2FdxugNtVcLsBanfIqa3enfHu4CKYgUclJaWhJBCmpDQwA48KjRwP3K6C22VwuwFuV6GRY1Gg9pd+prXvDC6iqLZ6d8bocyQkEJK3LZPT2xcRCFNSGmoaObjdALer4HYD3K6C2w1Qu0NOkzAiEKakNPQz/UsCoUhKIAzJ205JacDtDrhdBbcb4HYV3G6A2h0+aO3R4CJyrnuND4QXfdQaKQ3kbf/gKRic2oc1DC6CQOiA2w1wuwpuN8DtKrjdALU75DQJI1bFTuntSwmEOQvGRfT2kbftgNsNcLsKbjfA7Sq43QC1O1BbBvT2qRAIDejtU0nJ2+7H7vjhGbjdAber4HYD3K6C2w1QuwO1ZUAgVEkJhKQ0GITkbaf09uF2B9yugtsNcLsKbjdA7Q7UlgGBUKVgcCq9fRakNKikLBiH2x1wuwpuN8DtKrjdALU7UFsGJdOMjj9DCgIhC8YZlKylUNDbxzSjKlzJ8cDtKrhdBrcb4HYVruRY0MhxKKit3p3xZGwJLBgnwzSjFqyloJLS24fbHXC7Cm43wO0quN0AtTvk1FbENKPMwPPV6u0jpcEgZFXslGlGcbsDblfB7Qa4XQW3G6B2h5zaIqVBpSAQktJgUBII+6Jbg5OqUwanFgRCruR44HYV3C6D2w1wuwpXciy4kuOQEghJaSAQDiAiEF7102N4v09KSgNud8DtKrjdALer4HYD1O5AbRmE9PZdtnZrcBEEQgNSGlSYgccBtxvgdhXcboDbVXC7AWp3yKmt3p0x+hzpK2JdjS2hpLcvI2+7ZHAqedsGDE5VYUyOB25Xwe0yuN0At6swJseiQO0v/Uxr3xlcRJ9F8cbgIiaYgUeFvG2ZnN6+iJQG8rYdcLsBblfB7Qa4XQW3G6B2h5wmYUpKQ0TedkEgzOntK1lLgd4+ldu9kIuxRZCu5oHbVXC7DG43wO0qpKtZVDRyPmjt0eAicmorJBBmpDTkTDP6WWufDy+EQKiS0tuH2x1wuwpuN8DtKrjdALU70CQ0CElpYHCqTElKQ0ogHJ/SUDI4taC3jzE5HrhdBbfL4HYD3K7CmBwLGjkOKb19zMDzoxYIU/K26e1T6cfu+P/fxe0OuF0FtxvgdhXcboDaHagtg/GB8KIHwoS8bQKhQUkg7CsL3xxcREggTJmBB7c74HYV3G6A21VwuwFqd6C2DMYHwgcVZwiBUIZpRg1CUhoKevto5HjgdhXcLoPbDXC7Co0cCxo5DhGBkMGpBMIxRARCevsccLsBblfB7Qa4XQW3G6B2h5zaKlhVKGRwKr19MjkpDQRClZpVsRmTY4DbVXC7DG43wO0qjMmxqFgMNKe2ImbgIaXhqxUI6e0zIG9bhXVyPHC7Cm6Xwe0GuF2FdXIsQq7kFC2d2kffvTu4iJAZeAiEMgRCAwKhSkwjB7fr4HbcPgbcrpLidtTukFNb5G2rFATCnpj65eAiclIaUtZSGB8Ir/rpMVyJKYEQtzvgdhXcboDbVXC7AWp3yFk6tSC573prV2NLSOntSwmE9PYZhPT2paylgNsdcLsKbjfA7Sq43QC1O5DcZxDS21cwA8+j1t4ZXESPtV8MLiIpEBYsGDd+cGpJb19BIOynx/glU3C7A25Xwe0GuF0Ftxugdgdqy2B8b1/K4FR6+wxSevtCAmHKNKO43QG3q+B2A9yugtsNULsDtWXA4FSVgt4+AqFFRCBkwTgH3G6A21VwuwFuV8HtBqjdgdoyCElpuGzt1uAiSGkwSElpIG9bJWbiAdyug9tlcLsFbldJcTtqd6C2DFgwTiVlmlEWjDMgpUGFRo4HblfB7TK43QC3q9DIsWB2NQd6+1QyBqeS0mBBIFRJ6e3D7Q64XQW3G+B2FdxugNodaBIasCq2Ssrg1Jzevr7o1s3BRYwPhCUpDbd7IRdji+BKjgduV8HtMrjdALercCXHgkaOQ8GE2+N7+y4q5h8kpUGGQGjA4FQVJh7wwO0quF0GtxvgdhUmHrBgnRyHfqaPvtpJIFQhEBqkBMKQwakp04zidgfcroLbDXC7Cm43QO0OBbX1y6399cFFTEQEQganEgjHwIJxKimrYuN2B9yugtsNcLsKbjdA7Q45TcKIlIaUQJgyzWhOICwYnDq+ty9lBh6u5HjgdhXcLoPbDXC7CldyLEhXcyiorZBpRgtm4Enp7cuZgYeUBpWUQIjbHXC7Cm43wO0quN0AtTvk1BYpDSrMwCNTEgg/a+3z4YVE9PaVDE5NCYS43QG3q+B2A9yugtsNULtDTm2lrKUwfv5B8rZl3m7t/vBCUlIaQqYZTZmBB7c74HYV3G6A21VwuwFqd6C2DMYHwpS1FFICYUneNr19KinTjMZMPIDbdXA7bh8DbldJcTtqd6C2DELytgmEMgxONWBwqgqLgXrgdhXcLoPbDXC7CouBWtDIcYjo7UtZS4EZeAzo7VNJSWmgkeOB21VwuwxuN8DtKjRyLCoaOR+09mhwETm1xeBUFXr7DFhLQSUlENaMycHtBrhdBbcb4HYV3G6A2h1oEhqQt61CIDQo6e0jEKqkpDTgdgfcroLbDXC7Cm43QO0OBbV1v7Ubg4uYiJhmtCSlgbUUZHJ6+5iBRyVlmlHc7oDbVXC7AW5Xwe0GqN2B2jIImWY0IxCSt21B3rZKQSDswxrG//8ubnfA7Sq43QC3q+B2A9TuwHUvg+utXY0toSSloSAQpiwYVxIIu04eDi+EQKiS0tuH2x1wuwpuN8DtKrjdALU75NRWT0wdPc36+EBIb99XKxCWrIpNSoNKSiBknRwP3K6C22VwuwFuV2GdHIsCtVNbDiF52wWDU+ntM2AGHpWUGXho5HjgdhXcLoPbDXC7Co0cCxo5DszAo3LZ2q3BRdDbZ1CS0hARCFkV2wG3G+B2FdxugNtVcLsBanegtgxCVsUmpUEmJ2+7D/C7ObgIVsVWYUyOB25Xwe0yuN0At6swJseCRo5DSiAkb5tAOICC3r7xgbCkty9lLQXc7oDbVXC7AW5Xwe0GqN2B2jIgb1uFQGhQkrcd0dtHIHTA7Qa4XQW3G+B2FdxugNodqC2D8b19BMKvViDMmYEnIm87ZXAq6WoeuF0Ft8vgdgPcrkK6mgWNHIeIBeNKBqdmBMK+6NZ7g4tgwTiLkLztlECI2x1wuwpuN8DtKrjdALU7fNDao8FF5MxFV7IqNoNTNVgV2yIiEAalNBTMrobbDXC7Cm43wO0quN0AtTvkNAkj8rYZnEpKwxhYME4lJRDidgfcroLbDXC7Cm43QO0OObUV0dvHWgoEwjFEzMCTEghJV/PA7Sq4XQa3G+B2FdLVLLiS40DetkpG3jYz8FhEzMCTMjiV2dU8cLsKbpfB7Qa4XYXZ1SwqxuQU1FafKv7G4CImCIQqpDTI5ARCUhpUUgan4nYH3K6C2w1wuwpuN0DtDtSWAYNTVVICYUlKQ8rg1PGBMGhwasaVHNyug9tx+xhwu0qK21G7Q851r4LkPlbFVmEGHgN6+1RSphntU+SOXzIFtzvgdhXcboDbVXC7AWp3yKmtgmkarrd2NbaEkgXjCgJhP9PfGVwEKQ0WEdOMpqQ0MLuaB25Xwe0yuN0At6swu5oFs6s5RMzAw6rYP4KBsCSlgRl4VFIGp+J2B9yugtsNcLsKbjdA7Q7UlkHIWgoFgbDnG3xJSoNISm8fKQ0qNHI8cLsKbpfB7Qa4XYVGjgWNHIeUBeMYnPqj1tuXMs0oM/CoxMyuhtt1cDtuHwNuV0lxO2p3yKmtiN4+UhpkSnr7chaMYy0FlZS8bdzugNtVcLsBblfB7Qao3SGntlJ6+5iBRyMnpaFP1vhweCH09qnc7oVcjC2CRo4HblfB7TK43QC3q9DIseBKjkNBbZVMMzr+DCFvWyant4+8bZWatRRo5BjgdhXcLoPbDXC7Co0ci5BGTs6qQiGBsKC3ryAQsmCcBTPwqBQEwpgxObhdB7fL4HYL3K6S4nbU7vBBa48GF5HTJBwfCB9UnCEZeds5gTClty8kEKYMTsXtDrhdBbcb4HYV3G6A2h247mUQsip2QSBMWTCuJBCW5G0XBMK+nuLg1HCmGXXA7Qa4XQW3G+B2FdxugNodqC2D8YNTU3r7UlIacqYZLUhpGJ+3/aSfHsPnYqnJ26aRY4DbVXC7DG43wO0qNHIsaOQ4RATClMGpKSkNrIptEDIDT0ogxO0OuF0FtxvgdhXcboDaHagtA1IaVJhm1CAlEI7P2yalwQG3G+B2FdxugNtVcLsBanegtgzo7VNJSWlgcKoBg1NVaOR44HYV3C6D2w1wuwqNHAsaOQ4Rq2KnLBhXMDg1Zy0FevtUgtZSoJFjgNtVcLsMbjfA7So0ciwK1B5UWxG9fSmDU0lpMKC3TyUlbztmnRzcroPbZXC7BW5XSXE7anfIqa2CJmGfR/FqbAkpC8YxONWAQKhCIHTA7Qa4XQW3G+B2FdxugNodqC0DAqFKQd52z5p4b3ARBEKLkBl4UvK2cbsDblfB7Qa4XQW3G6B2h5zaikhpSBmcSkqDAWspqKQEwu+09srw0xy3O+B2FdxugNtVcLsBanf4oLVHg4vIqa2QQHjZ2q3BRRT09uUEwpLBqaQ0qBQEwpp0NdxugNtVcLsBblfB7Qao3YEmocH4QHjRr3UmpDQUzMCTM80oM/CopARC0tU8cLsKbpfB7Qa4XYV0NYvfldqfvP/kydX7/Ve/0f/rt+Y708P9zvvTc9Njf6JfTl02OD33/vtX05anF64vefL+y53Xpp/X+u/l/fYXPXnSH56fXf5Om8y3+nn+B6Y76/35Laan15vr3eM7zzenf/ujy1bLq+bf67vPDy0v+q+t/bfDW+3Fz7fWv+ubn95of4tl2/2Z+V22YtYbr73cr9n+xvL48qb7VqdPtD2+79jxwx326PB3fXj+/d/7Sfiby+7vdXj67MudU/lbBW1lbzV3vgPbNttnfPm3e0rDcQ/O93Grz/2bOhS63jtV17ofx+9t5rut/fP9u9q+4dO3djoO9m95+w4OR8Ra4LqD2yfbnu1FfHGql+Pf7Ys5vOSwa6dN949+qIetxPUFUyDcX3s4iJePsr/16Qvevs/Tkbh9UYdDZbu/7m4/QX51/YyHCjkeF8ePd3jz9Yvejr/Dd7R9g2tF9Hu/0NofPr7ZtunpWDrt6/a++2mzn4zznxcpZ3wgfNJPj+EZvF/9wam4Hbcfagq343bcLvGVdztqN9T+Uq/qQdzr8eCFTyw/8+/5of7zve3G9nv5u229310fPLx2eXp9x/nps0LOdmW9tb/V2Wv3B7f9XMs5u3n+Ac7uru+77NTpzrKP+zsvBR0+3boX+6bHPZpfedjN8w+xF3fY9FQrpx06vvrwiZe7p0+139pe+UvrBofPuW627cehPs9r4PClnco5fczDm5zV6jP1eL7f5y/e6n991dnxsb10O6xOdbN/GVtx5x/scAju9X1WRfuOPrOH5y/fNz5+2qe22gs/VdB+ODz96PRlPFvcc/d5PxROX97Z4XL4Po77t50nz3wVxxo/HXHrnf0jbgf2uvEr915Z6H/vXe8/6/3+OX6xP3D9en9ieqjf7DeWJ5dHltf0DZaHp9vT9tP7rM/NP9e3Z/uTx9e+0kNtm140P7gXs2wyvct6e3p+KmMv8PQO8615q7c+7f/NTDfu3n3rrbvzA3c/7YX8035nutef2Dd76y/O206/7t79tDPfmp/p95et31oev3v31Vdf/dar3/pW/9P/rr9+bHmo/3urFzE//GOvfnTrG51by+/p14kffxGnY+4HDW7f7uB23L592qe2wu24fZTbT4fcD5pAtQ9s5AAAAAAAANRDIwcA4CvO3iW9dE7tvV5zt+YL+GHvMwAAfH9+B27/Ye/y7yle+vjaxx/fuNZ/9Rv9v35rvjM93O9cm56bHvvl1v7QssHpuWvXbkxbnl64vuTja3c6jy8v7zx+/PjOneX99hd9/HF//M6dy+Vfv9X/Tb8e/3pr351uz08uD/an5xuX03bL3cv59rTB9vL+d9l43rD/ftw37E/PL+l/5zfrr5z+9bu3Wrt5fKul9Pnl645t+zQ/OL/R/Hdjed/pwy2fYS1mfuW0v48v+yF4bX7JsvtTJWwbLp9o3nLeqbXw+fb6IedNtz1aXroVvtXLnZ4zeu+3+rP9gy5vOX3w9RMsGy9vsxSwfMx5w2VPTx9lvj/v6HRj+ahLzT6+/Iet/ZX5vef3W/a4b7PV9/LxTu89V//yXstuL59n+Zj97ebvZ9rf7Tvu/MvW/s362ecdmXdhqd69+ua92qt/rbj1K1q2n39vRa9vv7ys//Qi/sX09ttuz2UvVbt9tPWpteaXe8tXtH9Lyy5Oe7juwFLM9F7Tz79u7X+cvq1tZ9eN18Nj2/f1SFh2cS5zPhLnPV++9rW85VvYvo3Hd/oJ8o+Wz3iohu3AOtXO+oVM1b++ennfpTqWw2V7ajmQ1+9vfuFPt/Y/1+9qO9K3w/R0HJ8O6O0YWLZZ3nEp8fGdN7/95kL/++13+896v8v77/UH3n23PzE91G/2G8uTyyPLa/oGy8PT7Wn76X3W5+afd7dn+5PH1775v7rZ/nd/fn5wL2bZZHqX9fb0/FTGXuDpHeZb81YfPuj/zUw3Li4+/PBifuCinx7t//Q7073+xL7Zhz87bzv9urh40Jlvzc/0+8vWHy6PX1wck6K3X1fLQ/3fr/Yi/u+cRf3+HzslMp+nz7/82h9/UeI2bsftuP1QZbgdt2e4HbUbalcHOjFNg0HINKOsii2Ts5YC04yqFAxO7cfu+NMctzvgdhXcboDbVXC7AWp3yKmtgqVTCYQqBWsp5EwzyoJxKinTjNask4PbDXC7Cm43wO0quN0AtTtQWwYhaykUrIqdspYCC8YZhPT2paylgNsdcLsKbjfA7Sq43QC1O+TUFikNKgRCmZzePgKhSkogxO0OuF0FtxvgdhXcboDaHXJqq6BJ2K/ZPhlbwoOKa50EQpmcvO2IlAYWjHPA7Qa4XQW3G+B2FdxugNodCmrrfms3BhcxUdAkJBCqFAxO7bH2vcFFFAXCfoI8HF5IRG8fgdABtxvgdhXcboDbVXC7AWp3yGkSvtHau4OLIKVBJWUGHlIaDEhpUCFdzQO3q+B2GdxugNtVSFezKFD7Sx+09mhwEUVNwojBqT0Qjj9DLlu7NbiIgkDYe0y+GFwEKQ0WzMCjUtPIwe0GuF0FtxvgdhXcboDaHXKahBGDU0tm4CmYZrQgb7skpYHePoPxgfCqx6jh/T4p04zidgfcroLbDXC7Cm43QO0OObVVcN3remtXY0tImWY0ZS0Fphk1CBmcmtLbh9sdcLsKbjfA7Sq43QC1O+TUVkGTMCQQZiwYl5PSUDI4tSClgbxtFa7keOB2Fdwug9sNcLsKV3IsuJLjEBEIS/K2GZwqQ2+fwfhAWJLSUDADD1dyPHC7Cm6Xwe0GuF2FKzkWNHIcIqYZZQYemZy87ZJAGDE4NSWlgSs5HrhdBbfL4HYD3K7ClRwLGjkOEYNTS3r7ClIa6O0zIBCqpKQ0cCXHA7er4HYZ3G6A21W4kmNBI8chIhCm5G0TCA1SphkNWTAuJRDidgfcroLbDXC7Cm43QO0OObUVsZZCyarYBEIZphk1CElpSFkVG7c74HYV3G6A21VwuwFqd8iprYi87ZRAmDLNKIHQgN4+FRo5HrhdBbfL4HYD3K5CI8eCKzkOBRNuh/T2sZaCTM40oxGBsCRv+3Yv5GJsETRyPHC7Cm6Xwe0GuF2FRo4F6+Q4FFz3Gt/bl7JgHCkNBiWDU7tMbg4uImRwakpKA253wO0quN0At6vgdgPU7kBtGdDbp5ISCHNm4InI204JhEw84IHbVXC7DG43wO0qTDxgQSPHIWIGnpS1FPpCB+8MLoJAaBExzWjK4FQaOR64XQW3y+B2A9yuQiPHImRMTk9LvTG4iImUQMhaChr9svAXg4tgmlGLkLztlGlGcbsDblfB7Qa4XQW3G6B2B5qEBiG9fZet3RpcBL19Bikz8IT09qXMwIPbHXC7Cm43wO0quN0AtTtQWwbkbauQt21AIFRJ6e2jkeOB21VwuwxuN8DtKjRyLGjkOESspVCS0lDQ25cSCFlLwYBAqEIjxwO3q+B2GdxugNtVaORY0MhxiFhLoSSlgQXjZHICYcTgVGbgccDtBrhdBbcb4HYV3G6A2h1yaisipSFlBp6U3j5m4DEIWRU7JRDidgfcroLbDXC7Cm43QO0O1JZBSUoDgVCjj399b3ARSYEwIqUhJRCSruaB21VwuwxuN8DtKqSrWdDIcYhYFZtA+CPY20fetgp52w643QC3q+B2A9yugtsNULsDtWXADDwqKYGwJG+7z0j/cHghBEKVlLUUcLsDblfB7Qa4XQW3G6B2h5zaIm9bpSAQMjjVgLxtlZTBqVzJ8cDtKrhdBrcb4HYVruRYkK7mENHbd9G7ARJm4Enp7SOlwYBAqMKVHA/croLbZXC7AW5X4UqOBVdyHCICYclaCqQ0yOQEQnr7VFLytnG7A25Xwe0GuF0FtxugdoeC2uppqTcGFzFBSoMKgVAmZy2FPh/9zcFFMM2oSsyVHNyug9tx+xhwu0qK21G7Q06TkECoQiCUIW/bYPzg1Kt+egxfOixlcCpud8DtKrjdALer4HYD1O5AbRmEpDRctnZrcBGspWBQMgMPvX0qKYNTcbsDblfB7Qa4XQW3G6B2B2rLoGQthfGBsGBwasEMPDmBMGXBuJC87du9kIuxRdDI8cDtKrhdBrcb4HYVGjkWNHIcUganktKgkRMIU2bgYS0FFRo5HrhdBbfL4HYD3K5CI8ciZOKBnNoKSWnI6O3LydtmBh6VlEDImBwP3K6C22VwuwFuV2FMjgWNHIeUvO2I3r6UQEhvnwG9fSo0cjxwuwpul8HtBrhdhUaOBelqDvT2qWSkNPRY+8XgIgiEFuMDYcng1JSUBtzugNtVcLsBblfB7Qao3eGD1h4NLiKntsYPTn1QcYZkBMLPK7INmGbUgGlGVWoaObjdALer4HYD3K6C2w1QuwO1ZfDz7d7V2BJSUhr6yNF3Bhfxpys64ujtM6C3T6X/f+L40xy3O+B2FdxugNtVcLsBanfIue5F3rYKvX0yOYNTmWZUpWZV7IJGDm43wO0quN0At6vgdgPU7pBTWxF52yUpDQUz8KQEQnr7DBicqkIjxwO3q+B2GdxugNtVaORYhFzJ6TL52uAiJgpq63prpDRIFATCkpSGnN6+iGlGWRXbAbcb4HYV3G6A21VwuwFqd8iprYiUBganyhAILejtU6lJaciYQhq36+B2GdxugdtVUtyO2h1yaitiBp6LfobQ2ydBILSImIEnJRByJccDt6vgdhncboDbVbiSY8GVHIeI3r6SlIaMvO2cGXhKphmN6O1LmYGHRo4HblfB7TK43QC3q9DIseBKjkNEIExJaSiYZvRha/cHF8HgVIuQQJjS24fbHXC7Cm43wO0quN0AtTvk1BYz8KiQ0iDDgnEGBEIVGjkeuF0Ft8vgdgPcrkIjxyIkXa3L5JPBRUxE9PYxA49MzjSjpDSopEwzGtPIwe06uF0Gt1vgdpUUt6N2B2rLgECoQm+fQUpKQ8g0oz/RC/nZsUXEzK6G23Vwuwxut8DtKiluR+0OH7T2aHAROcl9ISkNBYNTe3fGl4OLKMnbLgmE91t7OLyQiEB41U+Pd8cWkdPbh9sdcLsKbjfA7Sq43QC1O+Qk9xXU1vhpRntv3/huAHr7ZHJ6+yLytlOmGS1ZFRu3O+B2FdxugNtVcLsBanegtgxIaVApCIQ5vX0pedv09qnEjMnB7Tq4XQa3W+B2lRS3o3YHasuA3j6VlN6+nGlG32jt5uAiQvK2UwIhbnfA7Sq43QC3q+B2A9TukFNbEdOM0tsnUzIDD3nbBiEpDQWBkHQ1D9yugttlcLsBblchXc0iZArpnCZhSW8fgVAjZ5rRlBl4QtZSSOntw+0OuF0FtxvgdhXcboDaHZiLzqCkty8ipaFgVeyclIaUvG0CoUpMIwe36+B2GdxugdtVUtyO2h1oEhqQt61SMM1oTiCkt08lJRDGrJOD23Vwuwxut8DtKiluR+0O1JYBvX0q9PYZpATC8YNTg6YZpZFjgNtVcLsMbjfA7So0cixo5DhE9PZd9DNkeN72z7X204OLIG/bgLUUVIIGp9LIMcDtKrhdBrcb4HYVGjkWNHIcIgJhyarYDE6VIW/bIKS3LyUQ4nYH3K6C2w1wuwpuN0DtDoxgMmAGHpWUQMiCcQbje/um0+PO2CJyAiFud8DtKrjdALer4HYD1O5Ak9CAtRRUWDDOgECoQiB0wO0GuF0FtxvgdhXcboDaHT5o7dHgInKahKQ0qKQEwpLePganqkynx+OxReRMM4rbHXC7Cm43wO0quN0AtTvQJDQImWb0cWsfDS4iZZrRt1u7P7wQAqEKvX0OuN0At6vgdgPcroLbDVC7Q0FtdZncHlzERJ9iZPQ060wzqpISCMnbNgjp7SuYZjRmMVDcroPbZXC7BW5XSXE7andgBJPB+EBYktJAb58MvX0GIXnbKYEQtzvgdhXcboDbVXC7AWp3KEjuK2oSRgTClMGpKYGQvG2D663dHFtCSm9fTboabjfA7Sq43QC3q+B2A9TukHPd643W3h1cRD/Tr8aWwOBUmZxAmJLSML63LyUQxlzJwe06uF0Gt1vgdpUUt6N2h5xpGiLytgmEMg8rsg1yVsXuMhncFUdKg0zMlRzcroPbZXC7BW5XSXE7andgmgYDUhpUCIQGKSkNDE5VYXY1j//X3tn8ynWl5T5e3Vy4sSxf51yIbtsm0m1fWZGu40TYllomxoQggttt03IwEQMSNQwaBgwICPEhQA2CCQIhBogviSEzxiAxAAkhMUF88+ew9neddIOep8N6W/3073d86lTV3rXXrlV7/17vVe9aC7er4HYZ3G6A21UYXc0iJF0tp7bGB8IL/QxJCIQFeds5gbAkpaG3mAxuimOYUZmYdDXcroPbZXC7BW5XSXE7anfIqa2IlIaS1r6CEXgKWvs+rEipprXPICRvOyUQ4nYH3K6C2w1wuwpuN0DtDoxFZxASCAta+x63dndwESWBkBF4DELytlMmjMPtDrhdBbcb4HYV3G6A2h1yaiultS9iwjhG4DEgEKrQOdUBtxvgdhXcboDbVXC7AWp3yKmtiNa+krxtUhpkcgJhQd42KQ0qMelquF0Ht8vgdgvcrpLidtTuQHKfQUggzGjtywmEdE5VCRqBZ3zmEm53wO0quN0At6vgdgPU7pBzSRgRCEtSGgpa+wpG4MkJhKQ0qKQEQr7J8cDtKrhdBrcb4HYVvsmx4CLHISUQRnROLQiEJXnbjMBjEDLMaEogxO0OuF0FtxvgdhXcboDaHQpq605rNwYXMUHetgopDTI5gTAib5tA6IDbDXC7Cm43wO0quN0AtTvkJPcV1FY/05+PLSGltY8ReAxo7VMhpcEBtxvgdhXcboDbVXC7AWp3+M7WHg8uIqe2CIQqKYEwp7WPQKhSM5dCwcADuN0At6vgdgPcroLbDVC7A5eEBuRtqxAIDQiEKkGBMGOeHNyug9tlcLsFbldJcTtqd6C2DEJa+zLmUiClwSJiBB5mxXbA7Qa4XQW3G+B2FdxugNodcmqrYJgGAqFKSiAsae3rXfzeGV7IK61dG1wEgVCFixwP3K6C22VwuwFuV+EixyJkdLWc2hofCKfvbJlLQSKnta+fIN82vBBSGlRSOqfidgfcroLbDXC7Cm43QO0OOQNuR+RtlwTCL7T2mcFFpEwYV9La10+QTw8vhECoUjMrdsY3ObhdB7fL4HYL3K6S4nbU7pBTWwWXhFdaezS2hJKUhrPWrg8uIiWlgdY+g5CUhs/2Qr5rbBFc5HjgdhXcLoPbDXC7Chc5FnyT4xDR2pcyYVxKSkNO3nZEa19JIHzYCxlskpohpHG7AW5Xwe0GuF0Ftxugdoec5L6IQJjSOTUlEJa09pHSoFKS0lAQCOmT44HbVXC7DG43wO0q9Mmx4CLHoaC2xqc0lORt09on8/9a+z/DCylJaehfCw/ONyAQynCR44HbVXC7DG43wO0qXORYcJHjEDGXQklKA8OMyvzf1v7X8EJKWvsKhhkNCYQv9kIGpwlzkeOB21VwuwxuN8DtKlzkWIRc5PS01BuDi5iISGlIae0jEBqkdE4NydtOCYS43QG3q+B2A9yugtsNUPvM5WeXL19+Nt30P9O9Z/Mz/d5Pr3+nhc9+qbXfnlboP+ta8/rri5dHJ6+bV5pWm5ctq0+P9hcvdy+/tKw7/3xHa1/aNzotWraxFbbu4Xp/XrrvyF7euuFtf85ta330qdZ+a9nXY2fWLZ28n3Uz61s5XbnfvrSVvlXVvN6yienez/e+WNs219cf73Pf2/3d9Q2ue3/yfK+Zre6Ozaz1/+zyz/Yz5Fu2d73u01pDR7Xv21pXnPZ6q+y1pHPvYl5jX+HZs59s7RNbBZ28ifXNnnvNvmP96dPKWfd6r5xja8tef3trvz+/cD0Qtiqb3v3x6Zzs8ck7PncMrA+PQ29Z0j+pP2ntz/aanJYsb3L7MPcP6OTI3I77vQ6Pytw/yOOQm3b2z1u7e+542j/v7RQ4HvZP++TDXBbsax07uP5sK/fbfoL82LnP6KMf4bzpkw2vR8/6BtYjaj8Itjd1fILTE7/b2m9u+7UumB4tGz4O3KPi903u73h/l9PPzSdPbp71n5tPbt6c/tw8O+uN4f9wNj3Tf8+ezAv6s9PjvupZf8F0f3pVv+lMj/v9vnDdzPKC6TX7NpdNTA/79s7OphFAH09Pzc8sq80v7FvtG51+vjBvadryUvRU8LSVZcG0J9Pr+vPLDs47tWy8P98fPHnypV7ItWVH5y0uN6+9du+9117r//qd6ea99+Y/06P3lqenpf1Of3r6e+/e22+//eab0++bb1+4cGF+9OaF6dHbb/9wL+If357u9UXTWm8uK3z+fuf5dvPo+Q9evHjx6sWrV/vv6XcAuB2343bcjtvj3I7aDbW/0KsaAAC+Xun/tZh/++2lldudr+k+AQDAx+Mru/1ruktfb3CRAwAAAAAAUfwXFznL5aPPV/s6AEij2+DWzPJ3uvm56en9ienP9nh9Znpyv12fXze0rz2v+5F7y8Ll3vp3frxvZt2f6W9PHt9WOdnOtmArcXlqfdW2s/sebptcFiz/Ll260n/nRrcr082tW/Of6dGt5elp6bTa8vfKld4u98EH0+8Ht1999dX50QevTo9u3/6F1n6uP56+lelL+lMfLCv8yMudd7ebT7z7qYMf+qaFb+7gdgAYBW7/mrkdtRu8MGf+PZ9zAKe7z/vd9cGj9e+08Pnrrf3TtEL/Wdea119fvDw6ed280rTavGxZfXq0v3i521MO19f3n//f2j/vG50WLdvYClv3cL0/L913ZC9v3fC2P+e2tT7q4yj+/bKvx86sWzp5P+tm1rdyunK/fbSVvlXVvN6yieleP5e+a9vm+vrjfe57u7+7vsF170+e7zWz1d2xmbX+n9//6/7R/dX2rtd9WmvoqPZ9W+uK015vlb2WdO5dzGvsKzx//i99BJ6tgk7exPpmz71m37H+9GnlrHu9V86xtWWve8/RP5hfuB80y8307o9P52SPT97xuWNgfXgcesuS/kl9urU/3GtyWrK8ye3D3D+gkyNzO+73Ojwqc/8gj0Nu2tnva+1z546n/fPeToHjYf+0Tz7MZcG+1rGD68+2cr/9XGt/fO4z+uhHOG/6ZMPr0bO+gfWI2g+C7U0dn+D0xO+39ivbfq0LpkfLho8D96j4fZP7O97f5fTTk4mnbOL5dr5z8WI/PX59zjNen+m3S97x9Hh9uN/Mr5/vrj/LlqYlS67y+vz2cL7/d/30+Nt52fLsSWnrBuYCl0Xbn7WkecG57W47tb5w281v7YV8Yd/lda/+e7uSfsxZsXE7bsftuB23x7kdtRtqVyuVsegMxg8zWjICT8Ywox9WzOXGXAoGDDOq8jEvckRwuwFuV8HtBrhdBbcboHaH7+xDWgwuIqe2xgfCPo7i+DMkIxDmDDNaMpcCgVAlJRDidgfcroLbDXC7Cm43QO0OOZeE/UwffPimBEJmxZbJCYTj51K42gPIr4wtImUuBb7J8cDtKrhdBrfr4HYZvsmxKFB7UG1FtPaVpDSctXZ9cBGkNBiEzIp9sR+7g10SFAjb8MnvcbsDblfB7Qa4XQW3G6B2h4La6uf5+4OLmCi4JBw/K/Z0pg8/QzJSGkoCIbNi61zt/09MCIQPeyGDvRvzTQ5u18HtMrjdArerpLgdtTvkXBIW1NaV1h6NLYHOqTIlKQ05nVPHB8KU1r6CQNgzfsaf5rjdAber4HYD3K6C2w1QuwO1ZUDetkpKa19OSkNEa19K59Qf7VM7kK6mg9tVcLsMbtfB7TIlbkftDjm1VZDcR0qDSkHnVFIaLCLytksCYUpKA253wO0quN0At6vgdgPU7pBTWyl527T2aZDSYMEIPCoFrX2kq3ngdhXcLoPbdXC7DOlqFnyT45ASCCNa+0hpMAgZgYeUBhkucjxwuwpul8HtOrhdhosci4qLHGYVMhgfCEs6p9LaJ0NKg07KCDwpcyngdgfcroLbDXC7Cm43QO0OObXVz/R7g4sYPwLPhX6G0NonQd62xfhZsQtSGlJa+7jI8cDtKrhdBrfr4HYZLnIsCtQe9L1XRGsfedsyOXnbKSPwhORtp3ROxe0OuF0FtxvgdhXcboDaHXJmFSIQqmS09pHSYEEgVElp7cPtDrhdBbcb4HYV3G6A2h2oLYPxgbAkpaGgte9xa3cHF0Frn0VBSgOdU1W4yPHA7Sq4XQa36+B2GS5yLEIucu60dmNwERMRgTClta9gLgUCoQUTxqmkjMCD2x1wuwpuN8DtKrjdALU7UFsGIcOMkrctw1wKOqQ0yHCR44HbVXC7DG7Xwe0yXORYcJHjUFBbvTnj+dgSUlIaUgIheds6BEIZLnI8cLsKbpfB7Tq4XYaLHIuQi5yc5D5a+1QIhAYMM6pSktJQMAJPzEUObtfB7TK43QK3q6S4HbU7fE9r3z24iKLaYlZslYJAmJK3nRMII1r7yNt2wO0GuF0FtxvgdhXcboDaHXJqi9Y+lYxhRh+09sbgIuic6sCs2DJc5HjgdhXcLoPbdXC7DBc5FhXf5Pxiax8OLqJoViFa+1RIaZApae1LGWaUvG2Vmosc3G6A21VwuwFuV8HtBqjdoeCSMGfqVAKhCoHQoCSl4ZXWro0tgWFGZWK+ycHtOrhdBrdb4HaVFLejdofXW3swuIic2ho/Ak/KXAopKQ05gTBiwriS1r5rvZB7Y4uomQwUtxvgdhXcboDbVXC7AWp3yPneqzdnDD58X7jS2qOxJUzNGQRCiQ9b++LgIpICIZ1TVVJa+3C7A25Xwe0GuF0Ftxugdoec770KaouUBpWUEXjonKpD3rZMzTc5uN0At6vgdgPcroLbDVC7wy+39gODi8iprfGBsGTCuLPWrg8ugrxtgz7t1jvDC2EEHpWUuRRwuwNuV8HtBrhdBbcboHaHgkvCnKlTx6c0pLT2pQTCkta+lJSGkM6pBYEw5psc3K6D22VwuwVuV0lxO2p3YMBtg/GtfSV52wWB8HFrdwcXkRMIae1TSQmEMaOr4XYd3C6D2y1wu0qK21G7Q05yX8RcCiUpDQRCmZyUhogReAiEDrjdALer4HYD3K6C2w1QuwOXhAbjhxmltU8mJxCmdE4NydtO6ZyK2x1wuwpuN8DtKrjdALU7cEloEJLSUDDMaMoIPG+1dmd4ISmtfQwzqhJzkYPbdXC7DG63wO0qKW5H7Q70YDIICYS09skwzKjOxX7sJrT2pXROxe0OuF0FtxvgdhXcboDaHagtg5K5FMafIQXDjKa09jECjw6tfTJc5HjgdhXcLoPbdXC7DBc5FhUXOTlTp0YEQuZSkMnJ204JhORtq9QMPIDbDXC7Cm43wO0quN0AtTsU1FZOD6aQlAYCoUxOIIwYgYdA6IDbDXC7Cm43wO0quN0AtTvkXBJGzIpdMmFcQefUgkD4YWtfHFxEUkpDPz2ujS2BYUZl+ukx/jTH7Q64XQW3G+B2FdxugNodcoZpYJhRlYxZsXMCYUjn1JRAmNLah9sdcLsKbjfA7Sq43QC1O+RcEkakNJR0TiUQyuS09jHMqEpKIMTtDrhdBbcb4HYV3G6A2h2oLYOQzqkFgbBgBJ4Hrb0xuIikvG2GGVVJGYEHtzvgdhXcboDbVXC7AWp3yPneK2LCOFr7ZHI6p5akNETkbRMIHXC7AW5Xwe0GuF0Ftxugdgdqy4C8bRUCoUFK3vb4lIaUQEifHA/croLbZXC7Dm6XoU+OBRc5DhEpDSUj8GQEwpKUhpzOqRF52wRCB9xugNtVcLsBblfB7Qao3aEguS9n6tSQlIaCuRQet3Z3cBE5rX0hedspI/DUDDOa0ScHt+vgdhncboHbVVLcjtodCi4Jc2YVCmntY8I4GQKhDq19MjHf5OB2Hdwug9stcLtKittRuwO1ZRAyKzYpDTI5edsFnVMJhCoxAw/gdh3cLoPbLXC7SorbUbtDQW3lfO8VEggLWvsKhhktmUuhJBD2E+Sd4YVEtPalzKVQMis2bnfA7Sq43QC3q+B2A9TukNODqWCYhiutPRpbAp1TZUpSGko6p5YEwojOqSmBsHdrGD9lCm53wO0quN0At6vgdgPU7sCsQgbjA2FJa9+T1p4OLoLWPgNa+1RSOqfW9MnB7Qa4XQW3G+B2FdxugNodci4JI1IaSmbFLgiEBa19OYGwpHPq+Na+glmxU1r7YgYewO06uF0Gt1vgdpUUt6N2h5xLQmbFViFvW+at1u4ML4QReFTonOqA2w1wuwpuN8DtKrjdALU7cEloENLaV5C3nRIIc1r7IuZSIBA64HYD3K6C2w1wuwpuN0DtDjmzCkW09qWkNBRMGFcSCEs6pxIIVVLytmO+ycHtOrhdBrdb4HaVFLejdoeC2soZcDtkwriC1r6UQJgzlwIj8KiktPbhdgfcroLbDXC7Cm43QO0OzCpkEDKXAoFQJicQkretkhIIcbsDblfB7Qa4XQW3G6B2h4JLwu9v7VsGFzHRp/29N7gIAqFKSt52SUoDgVAlJaUhZghp3K6D22VwuwVuV0lxO2p3yBmmIaK1r2QEHiaMk6Fzqg6tfTIls2LjdgfcroLbDXC7Cm43QO0OOcM0FFwS9t53z8eWwAg8MjmzYqe09oV0Tr3WCxlsEubJ8cDtKrhdBrfr4HYZ5smxqPgmJ6e2Ilr7CIQytPZZ0NqnkjJhHG53wO0quN0At6vgdgPU7kBtGZC3rZKSt50TCHuLybWxJaTMpZCSt43bHXC7Cm43wO0quN0AtTtQWwYMM6pCIDQoCYQFw4yGpDSkBELc7oDbVXC7AW5Xwe0GqN0hpwdTxIRxKa19BZ1Tc0bgSQmEISPwpHROxe0OuF0FtxvgdhXcboDaHXIuCQtq60prj8aWQCCUedDaG4OLSAqE11t7PLaElECYMis2bnfA7Sq43QC3q+B2A9TuwKxCBqQ0qNA51SAlEIbkbadMGIfbHXC7Cm43wO0quN0AtTvkXBIW1Nb4YUZL5lJ40trTwUWkpDTkzIr9qeFRKiVvO2UEHtzugNtVcLsBblfB7Qao3aEguS/nkpDWPhVSGgxo7VNJGYGn5psc3G6A21VwuwFuV8HtBqjdIeeSsCC5b3xrX0redkFKQ04gvNPaO8MLeTo8qZrWPhm+yfHA7Sq4XQa36+B2Gb7Jsajok8MwDQYlrX3jmwEKAuHj1u4OLoJAaBGR0kDetgNuN8DtKrjdALer4HYD1O7wemsPBheRU1shs2IX5G0XBMKczqkpedvMiq1S800ObjfA7Sq43QC3q+B2A9TukPO9V0Fy3/hhRlMCYUHedk4gLMnbHp/ScLHbPaG1ryZvu2CeHNxugNtVcLsBblfB7Qao3SGntiJa+1JSGlICYUlKA619KimBkD45HrhdBbfL4HYd3C5DnxwL0tUcUgIhI/Bo5LT2kbetQiB0wO0GuF0FtxvgdhXcboDaHXIuCSOGGS0ZgeesteuDiyAQGpSkNBAIVWo6p5KuZoDbVXC7DG7Xwe0ypKtZhMyTk1NbJRPGjT9DCIQyOYGQYUZVrvVC7o0touabHNxugNtVcLsBblfB7Qao3aHgkjBnVqGQWbEJhDJvtXZneCGkNKgEtfYVDCGN2w1wuwpuN8DtKrjdALU7UFsGIcOMFgTCggnjPmzti4OLoLXPoaBzaklrX8qs2LjdAber4HYD3K6C2w1Qu0NOct8rw7+IZAQemYLWvpJAWDICT0reNiPwqDC6mgduV8HtMrhdB7fLMLqaRYHauSR0GJ/SUNI5tSAQ0tpnkBIIydtWibnIwe06uF0Gt1vgdpUUt6N2B2rLgGFGVVLytnMC4fXWHo8tIaW1L2VWbNzugNtVcLsBblfB7Qao3SFnmIaUuRQiUhoet3Z3cBEPWntjcBFFgbBkwjhG4FFJCYS43QG3q+B2A9yugtsNULtDTnJfwSXhldYejS2BuRRkcvK2U2bFZgQelZiBB3C7Dm6Xwe0WuF0lxe2o3SHnkjAib5uUBpmSlAY6p+qQ0iBTc5GD2w1wuwpuN8DtKrjdALU7UFsGpDSoFHROzQmEIXMpXOwBhNY+CdLVPHC7Cm6Xwe06uF2GdDULBh5wSAmEEa19KYEwJ287orUvJW87Jl0Nt+vgdhncboHbVVLcjtodCi4Ji2oronNqyjCjKXnbOSPwRARC5lJwwO0GuF0FtxvgdhXcboDaHXJ6MEUEQlIaZHI6p6YEQjqnqsR8k4PbdXC7DG63wO0qKW5H7Q45tRUxK/aFfoYkpDQUtPblDDNaEggLhhkNae1LydvG7Q64XQW3G+B2FdxugNodcmqr4JJw/Ag8KYGwYC4F8rYtxgfCgs6pQXnb47tn4HYH3K6C2w1wuwpuN0DtDgzTYEDetkpKSkNJIAwZgYfWPpmYPjm4XQe3y+B2C9yukuJ21O5QcEnYz/Mbg4uYYC4FFQKhTE5KA4FQJSVvG7c74HYV3G6A21VwuwFqd6C2DEJSGgpmxWaYUYOSQHi9tcdjS6BzqgwXOR64XQW3y+B2Hdwuw0WORchFTs73XiEpDQWBMCVvO2cEnoJASGufCgMPeOB2Fdwug9t1cLsMAw9YfCy1v/jwYf+33vQ/2+N+2+9PDz87/elv5Zf3NeZ/083+gmUT03Pbn+nfyYb677VtxfnRvPDauv781E+09tvzM+vL5kIe9pf159YNb+Vc23b3KHpZeSt1vbO/qX2TD1/81dZ+Yy9kWWlZvK7Vb+d3vLzDdX+np9a3dGzqI3s679j892da+9eTx0c1rDVzVN/6d1tr3c+pZk4+gbWyjk28+LAPK9O+dV26V8S6E9f6z/45zYUsN/ueriUeO7StuZe+LPpSay9vO7nV7Pyyc0fMsdP7Z3RS5rGDJ29u2/EXH/5ba5/Zj5fpd/pk9w/y9BM96mJbfnzq23F1rja2df6ite/oS6YK3d/C/Gc+Hk+O/P6zfFwne7DV1HGsbQfE/nh+op+CPzF/3PsWjmPrOFOmQ/nYydNzZvncTg7i+fHJKTT9+73W/n1ZMB8d547z/Zzri05f+Nlps0fNb2fjfOfYmeU8mxf8Tmv/tn3Myy6ebG45YbfdPrHA8YGdcHIO7SdU//vr/dj9o10Q+5G1rjTtxrah9UTfj6lzZ9/JU4dvpsfX3n9/6tT5a+9/8pPvdz65/Jke3Zgf9IfrkuXv+tzyd7pzY/47P7Ws1p9Zt7G8dP698e29kL9ZNj+tvS9YN7i8vt+fHl2+fPmly8/6T2e6eWm60+8+63f60y+91J+c/s0rLKtMa//vXsSNyzdv3nwy/T7p/6Y7N2+eTc88ee29916buffae/f67dsTby6/n7/f2U/74wQ8RDI/xO39F7cfH/VW5/spvL8Kt+P2k6Jw+9fU7f/6kQN8+0BR+1dQ+wu9qgEAAAAAAGLgIgcAAAAAAKIQLnJ6X7JvML7CO/7GqwRI4Bv3uL3Vbs1vfrmd/05PLY+O56abkzWWJ7YXLRs4anG6e/K7vGhdvi84Nrgsnh5cunTpyqVb/acz3VyZ7vS7t/qd/vSVK/3J6d+8wrLKvPa0hUu3b9/+YPr9oP+b7ty+/er0zAcvv/vuyzOfePndT/TbT008XX4/800dDo8vB7dDCN+4xy1u5+j4cv5Ttb/w/P79/m+96X+2x/22358ePpr+/FTvGLevMf+bbvYXLJuYntv+TP9ONtR/H20rzo/mhX3T8/35qT9t7WfnZ9aXzYXc7y+bd2B9ZlnyaNvdo+hl5a3U9c7+pvZN3n/eZxX6+72QZaVl8bpWv50LXN7hur/bfu3bXNc93dN5x+a/vWrvnTw+qmGtmaP61r/bWut+TuWdfAJrZR2beH7/vf75/dW6dK+IdSce9Z/9c5oLWW72PV1LPHZoW3MvfVn0rLWn205uNTu/7NwRc+z0/hmdlHns4Mmb23b8+f0+Buj/3I+X6Xf6ZPcP8vQTPepiW3586ttxda42tnW+rbXv70umCt3fwvxnPh5Pjvz+s3xcJ3uw1dRxrG0HxP54fmIagWf+uPctHMfWcaZMh/Kxk6fnzPK5nRzE8+OTU2j697nW/seyYD46zh3n+znXF52+cN6jo+a3s3G+c+zMcp7NC/owo9+9fczLLp5sbjlht90+scDxgZ1wcg7tJ1T/+5f99JiL2F50nE3z57StuZ/o+zF17uw7eerwzfT40dWrf9fN9rdXNy6ev9Nv9zunS758tWPxxdNH63M/3gs5+7Iy9sfHJvv97/3qOkx+zBF49tP+OAEPkcwPcTtux+24Hbd/nbl9P+uP8+/wyPwQte9qVyv19dYefNWfiEaf9Pf9wUVMRIzAkzKXQj/Tv3lwEYzAYxExl0LJrNgPeyGDTVIzhDRuN8DtKrjdALer4HYD1O5QMHVqUW31S8LBgwOmDDNKIJQpCYT9BPn08EIiAmHKMKM1Fzm43QC3q+B2A9yugtsNULtDTm2ltPaNP0MyAmEfkfWNwUUUTRhHIFQpae1LmUsBtzvgdhXcboDbVXC7AWp3KKitr4dZhTTGz4pNSoMMs2JbEAhVUgIhbnfA7Sq43QC3q+B2A9TuQG0ZhLT2FcyKXRAIe//XLw4ugkDoQEqDTEy6Gm7Xwe0yuN0Ct6ukuB21O3xPHzVjcBE5tRUSCAta+x63dndwESUpDTl520+HR6mrvTF8cKxNCYQ13+TgdgPcroLbDXC7Cm43QO0OBbV1p7Ubg4uYKOjBND6lgc6pMjmdU2ntUykJhAUj8PT/J94anrmE2x1wuwpuN8DtKrjdALU78L2XAXnbKgRCg5BAeLEfu7T2SfTTY/xpjtsdcLsKbjfA7Sq43QC1O+RcEkYEQlr7ZAiEFgUpDSGtfSl527jdAber4HYD3K6C2w1Qu0NOcl9ESsOFiu86yduWyemcer21x2NLIBDK0CfHA7er4HYZ3K6D22Xok2NRka5WUFs5A26HzIr9pLWng4soCISMwGNB3rZKSkoDbnfA7Sq43QC3q+B2A9TukHNJGBEISWmQobXPgpQGlYLOqXyT44HbVXC7DG7Xwe0yfJNjwTw5DhGBMKVzaj/Tf29wEbT2WUS09vWMn3Y2toiclAbc7oDbVXC7AW5Xwe0GqN0h55KwILkvpLUvY8K4nM6pvYvfO8MLGZ+3fbF3axhcRMms2CmtfbjdAber4HYD3K6C2w1Qu0NObUW09pHSIJMTCEsmjGOYUZWCQBjTJwe36+B2GdxugdtVUtyO2h2oLQNSGlQKAmFOSkNJICwYgSdkVuxrvZB7Y4vgmxwP3K6C22Vwuw5ul+GbHIuQPjlFwzREDDOaEggL8rbpnGoxvnNqQWtfSUpDylwKuN0Bt6vgdgPcroLbDVC7Q86sQuRtq2QEwpyUhpTOqeNb+wiEDrjdALer4HYD3K6C2w1QuwPfexmUpDSMP0NIaZDJae0jEKqkBELc7oDbVXC7AW5Xwe0GqN0hp7YiWvtSUhoIhAYpgXD8MKMpI/BwkeOB21Vwuwxu18HtMlzkWPBNjkPBJWFJ3vb4M6RgVmxG4DEgEKoEzYrNRY4BblfB7TK4XQe3y3CRY1HxTc7rrT0YXERObdHap8KEcQYhnVNTWvtSAiFud8DtKrjdALer4HYD1O5AbRkQCFVIaTBIae0LGWY0ZVZs3O6A21VwuwFuV8HtBqjdoWAsupzaonOqSsoIPG+1dmd4ISETxtE5VabmIge3G+B2FdxugNtVcLsBancoSO4rGnD7leHTPBUEwgs9ECa09j1u7e7gImjtsyBvWyUlpQG3O+B2FdxugNtVcLsBanfIqa2IEXhSAiEpDQbkbavQ2ueA2w1wuwpuN8DtKrjdALU7MEyDAYFQJWUEnpxAGNHaRyB0wO0GuF0FtxvgdhXcboDaHejBZDB+mNGSWbELhhklpcGA1j4V5lJwwO0GuF0FtxvgdhXcboDaHXIuCQu+97rS2qOxJXy+tUsJrX0FnVMftPbG4CKKAmFK51TytlX4JscDt6vgdhncroPbZfgmx4J0NYeCHkzjA2HJMKMFrX0pgbBkwrg7rb0zvBACoUpBax8XOR64XQW3y+B2Hdwuw0WORcjAA/08vzG4iImC2iKlQSUlEJa09oUEwov92GWYUYmY0dVwuw5ul8HtFrhdJcXtqN2B2jJgLgUV8rYNUlIaQiaMu9YLGWwSLnI8cLsKbpfB7Tq4XYaLHIuQi5ycHkwEQpWUCeNyOqcSCFVSWvtwuwNuV8HtBrhdBbcboHaHnNqKmEshJW87ZZjRkrztkkB4vbXHY0tgBB4ZLnI8cLsKbpfB7Tq4XYaLHIuQgQeKvvdKae0bHwi/0NpnBheREghp7dOhc6pMzMADuF0Ht8vgdgvcrpLidtTukHNJGBEISyaMo7VPhrxtnYKUhqDOqeP/v4vbHXC7Cm43wO0quN0AtTv8YmsfDi6in+fvDy5iIiIQlrT2ZXROzQmEjMCjkhIIa77Jwe0GuF0FtxvgdhXcboDaHZg61YDOqSoFrX05I/CQ0qCS0jm1H7ujByzu4HYD3K6C2w1wuwpuN0DtDjm1VdCDafxcCimdUxmBx6AkpeHp8CjFCDwyXOR44HYV3C6D23VwuwwXORYhAw8Ufe9FIFTJSGkoae0rGYGnJBAWjMATEggLOqfWXOTgdgPcroLbDXC7Cm43QO0OObVV8L3X+EBY0jk1I6Uhp7WPlAYVAqEDbjfA7Sq43QC3q+B2A9TuwDANBuRtq5C3bVASCAtSGgiEKv0/caNN0sHtBrhdBbcb4HYV3G6A2h1yBtx+pbV7g4u40tqjsSWkDDNKSoMBrX0q5G074HYD3K6C2w1wuwpuN0DtDjmXhAW1xVwKKgWdU3Na+5hLQSVlmNGYixzcroPbZXC7BW5XSXE7anfIqa2CHkzMpaCS0tqXM5dCxAg8BEIH3G6A21VwuwFuV8HtBqjdoWBWoZzkvpDWvoy87ZLOqW+1dmd4ISkpDSEj8BQEwpo+ObjdALer4HYD3K6C2w1Qu0POJWFEIExp7UsJhDl52wXDjI7P2y5p7UsZgQe3O+B2FdxugNtVcLsBanegtgwIhCopI/CUBMKSlIaIQMgIPA643QC3q+B2A9yugtsNULsDtWUQEgjPWrs+uIiU1j46p+qQty3DRY4HblfB7TK4XQe3y3CRYxFykZMzq9D4YUZTWvtSRuDJSWkgEKqkdE7F7Q64XQW3G+B2FdxugNodqC2DkEBYMMxoQWvfg9beGFxE0oRxzKWgkhIIcbsDblfB7Qa4XQW3G6B2B773MmBWbBUCoUFKIAwZgSclbxu3O+B2FdxugNtVcLsBancoGIuu6JIwYi6F6TtbAqFETt52SefUiNY+UhoccLsBblfB7Qa4XQW3G6B2h4La6uf5jcFFTKS09kXkbRMIDQiEKiWtfdd6IYMnYY65yMHtOrhdBrdb4HaVFLejdoecWYVeGX74MmGcTErnVFIadFJSGlJa+3C7A25Xwe0GuF0FtxugdgeS+wxCWvsKOqcWBMKcCeNKhhl9OrwpLqW1L2WYUdzugNtVcLsBblfB7Qao3aGgtoq+9yJvWyVjBJ6clIaQ1r6L/dgdXERvDG9nY4vImRUbtzvgdhXcboDbVXC7AWp34JLQoH9nO/jwLUlpIBDKEAh1CgJhSmtfzEUObtfB7TK43QK3q6S4HbU75Ay4HdHaVzLMaEEgfNza3cFFEAgtCIQqKYEQtzvgdhXcboDbVXC7AWp3oLYMxrf2pcylQCA0KMnbZgQelZRAiNsdcLsKbjfA7Sq43QC1T/wHbWLm4zXzig4AAAAASUVORK5CYII=",no=window[lr];class so extends Mc{constructor(t,e,a=[],i=[]){super(t,e),this.leaf=t,this.plugin=e,this.players=a,this.creatures=i,this.registerEvent(this.plugin.app.workspace.on("initiative-tracker:closed",(()=>{this.removeChild(this.renderer),this.leaf.detach(),this.unload()})))}get params(){return{...de,id:"initiative-tracker-map",height:"100%",isMapView:!1,isInitiativeView:!0,scale:25.7,unit:"ft"}}async onOpen(){this.renderer=new ro(this),this.context.addChild(this.renderer)}async onClose(){this.renderer.unload(),super.onClose()}update(){this.renderer.unload(),this.renderer=new ro(this),this.context.addChild(this.renderer)}getDisplayText(){return"Initiative Tracker Map"}getViewType(){return"INITIATIVE_TRACKER_MAP_VIEW"}setPlayers(...t){this.players=t}addPlayers(...t){this.players.push(...t)}setCreatures(...t){this.creatures=t}addCreatures(...t){this.creatures.push(...t)}}class ro extends ao{constructor(t){super(t.plugin,"",t.mapEl,t.params,""),this.view=t,this.registerEvent(this.plugin.app.workspace.on("initiative-tracker:new-encounter",(()=>{this.map.removeCreature(...this.view.players,...this.view.creatures),this.loadSavedData()})))}async buildMap(){this.map=new oo(this,this.options);const{h:t,w:e}=await this.loader.getImageDimensions(io);this.map.gridLayer={data:io,h:t,w:e,id:"grid-layer",alias:null},this.map.registerLayerToBuild(this.map.gridLayer),this.map.on("removed",(()=>this.resize.disconnect())),this.map.render({coords:[50,50],zoomDistance:null,imageOverlayData:[]}),this.loadSavedData()}loadSavedData(){let t=this.map.leafletInstance.getCenter(),e=this.view.players.length/2*-1+.5;for(let a of this.view.players){let i=no.latLng(t.lat-1,t.lng+e);this.map.addCreature({latlng:i,creature:a}),e++}e=this.view.creatures.length/2*-1+.5;for(let a of this.view.creatures){let i=no.latLng(t.lat+1,t.lng+e);this.map.addCreature({latlng:i,creature:a}),e++,e++}}}class co extends Qr{constructor(t){super({tooltip:"Replace Image",cls:"leaflet-image-control",icon:"image"},t.leafletInstance),this.map=t,this.input=this.controlEl.createEl("input",{attr:{type:"file",name:"image",accept:"image/*",style:"display: none;"}})}onClick(){this.input.onchange=async()=>{const{files:t}=this.input;if(!t.length)return;const e=t[0],a=new FileReader;a.onloadend=t=>{var e=new Image;e.onload=()=>{const{width:a,height:i}=e;this.map.replaceLayer(0,{data:t.target.result.toString(),h:i,w:a,id:"grid-layer",alias:null}),this.map.removeCreature(...this.map.renderer.view.players,...this.map.renderer.view.creatures),this.map.renderer.loadSavedData()},e.src=t.target.result.toString()},a.readAsDataURL(e),this.input.value=null},this.input.click()}}class oo extends Vc{constructor(){super(...arguments),this.markerMap=new Map,this.creatureMap=new Map}addEvent(t,e){this.renderer.registerEvent(this.plugin.app.workspace.on(t,e))}replaceLayer(t,e){this.mapLayers[t].group.remove(),this.mapLayers=[],this.registerLayerToBuild(e)}isLayerRendered(){return!0}createMap(){super.createMap(),this.leafletInstance.off("contextmenu"),this.leafletInstance.on("contextmenu",(e=>{const a=new t.Menu(this.plugin.app);a.setNoIcon(),a.addItem((t=>{t.setTitle("Add Creature Here"),t.onClick((t=>{this.plugin.app.workspace.trigger("initiative-tracker:add-creature-here",this.leafletInstance.mouseEventToLatLng(t))}))})),a.showAtMouseEvent(e.originalEvent)})),this.on("first-layer-ready",(()=>{this.leafletInstance.fitBounds(this.currentLayer.getBounds())})),this.addEvent("initiative-tracker:creature-added-at-location",((t,e)=>{this.addCreature({latlng:e,creature:t})})),this.addEvent("initiative-tracker:creatures-added",(t=>{this.addCreature(...t.map((t=>({creature:t}))))})),this.addEvent("initiative-tracker:creatures-removed",(t=>{this.removeCreature(...t)})),this.addEvent("initiative-tracker:creature-updated",(t=>{this.markerMap.has(t.id)||this.addCreature({creature:t});const e=this.markerMap.get(t.id);e.creature=t,e.updateCreature()}))}buildControls(){super.buildControls(),this.leafletInstance.addControl(new co(this))}addCreature(...t){let e=[];for(const{latlng:a,creature:i}of t){let t=new lo(this,a??this.leafletInstance.getCenter(),i);e.push(t),this.markerMap.set(i.id,t)}return e}removeCreature(...t){for(const e of t)this.markerMap.has(e.id)&&(this.markerMap.get(e.id).remove(),this.markerMap.delete(e.id))}}class lo extends Ec{constructor(e,a,i){e.markerTypes.includes(i.marker)||(i.marker="default");const n=e.markerIcons.get(i.marker),s=new ho({html:(n??e.defaultIcon).html,className:"leaflet-div-icon"},i);super(e,{id:i.name,type:i.marker,icon:s,layer:null,mutable:!0,command:!1,zoom:null,percent:null,description:null,tooltip:"always",link:i.name,loc:a}),this.creature=i,this.creature.enabled?this.setEnabled():this.setDisabled(),this.map.renderer.registerEvent(this.map.plugin.app.workspace.on("initiative-tracker:active-change",(t=>{t===this.creature?this.setActive():this.setInactive()}))),this.status=this.creature.status,this.initIcon=s,this.leafletInstance.off("contextmenu"),this.leafletInstance.off("click"),this.leafletInstance.on("click",(async t=>{(this.map.isDrawing||this.map.controller.isDrawing)&&this.map.onMarkerClick(this,t)})),this.leafletInstance.on("contextmenu",(e=>{no.DomEvent.stopPropagation(e);const a=new t.Menu(this.map.plugin.app);a.setNoIcon(),a.addItem((t=>{t.setTitle("Apply Damage/Healing").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:apply-damage",this.creature)}))})),a.addItem((t=>{t.setTitle("Add Status").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:add-status",this.creature)}))})),a.addItem((t=>{t.setTitle(this.creature.enabled?"Disable":"Enable").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:enable-disable",this.creature,!this.creature.enabled)}))})),a.addItem((t=>{t.setTitle("Remove Creature").onClick((()=>{this.map.plugin.app.workspace.trigger("initiative-tracker:remove",this.creature)}))})),a.showAtMouseEvent(e.originalEvent)})),this.leafletInstance.on("mouseover",(()=>{this.popup.leafletInstance.bringToFront()}))}onShow(){"always"===this.tooltip&&this.target&&this.popup.open(this.target.display)}updateCreature(){if(this.enabled!=this.creature.enabled&&(this.creature.enabled?this.setEnabled():this.setDisabled()),isNaN(Number(this.creature.hp))||this.creature.hp==this.hp||this.updateHP(this.creature.hp),this.link!=this.creature.name&&(this.link=this.creature.name),this.creature.marker!=this.type){this.map.markerTypes.includes(this.creature.marker)||(new t.Notice(Ce('Marker type "%1" does not exist, using default.',this.creature.marker)),this.creature.marker="default");const e=this.map.markerIcons.get(this.creature.marker),a=new ho({html:(e??this.map.defaultIcon).html,className:"leaflet-div-icon"},this.creature);this.icon=e,this.divIcon=a}this.initIcon.syncStatuses()}setDisabled(){this.enabled=!1,this.leafletInstance?.getElement()?.addClass("initiative-marker-disabled")}setEnabled(){this.enabled=!0,this.leafletInstance?.getElement()?.removeClass("initiative-marker-disabled")}updateHP(t){this.hp=t,this.initIcon.updateHP(t)}setActive(){this.leafletInstance?.getElement()?.addClass("initiative-marker-active")}setInactive(){this.leafletInstance?.getElement()?.removeClass("initiative-marker-active")}}class ho extends dr{constructor(t,e){super(t),this.creature=e}createIcon(t){const e=super.createIcon(t);return this.creature.hp&&(this.addHPBar(),this.updateHP(this.creature.hp),this.status=this.div.createDiv("initiative-marker-status-container"),this.syncStatuses()),e}addHPBar(){this.progress=this.div.createEl("progress",{attr:{min:0,max:this.creature.max}})}updateHP(t){this.progress.setAttr("value",t)}syncStatuses(){this.status.empty();for(let t of this.creature.status)if(te.has(t.name)){const e=te.get(t.name);e.setAttr("aria-label",t.name),e.setAttr("aria-label-position","top"),this.status.appendChild(e)}}}class uo extends t.Plugin{constructor(){super(...arguments),this.maps=[],this.mapFiles=[],this.watchers=new Set,this.Platform=t.Platform,this.isDesktop=t.Platform.isDesktopApp,this.isMobile=t.Platform.isMobileApp,this.isMacOS=t.Platform.isMacOS,this.saveSettings=(0,t.debounce)((async()=>{this.maps.forEach((t=>{this.data.mapMarkers=this.data.mapMarkers.filter((({id:e})=>e!=t.id)),this.data.mapMarkers.push({...t.map.toProperties(),files:this.mapFiles.filter((({maps:e})=>e.indexOf(t.id)>-1)).map((({file:t})=>t))})})),this.data.mapMarkers=this.data.mapMarkers.filter((({markers:t,overlays:e,shapes:a})=>t.length>0||e.length>0||a.length>0)),await this.saveData(this.data)}),100,!1)}get modifierKey(){return this.isMacOS?"Meta":"Control"}get view(){const t=this.app.workspace.getLeavesOfType(se),e=t.length?t[0]:null;if(e&&e.view&&e.view instanceof Mc)return e.view}get initiativeView(){const t=this.app.workspace.getLeavesOfType("INITIATIVE_TRACKER_MAP_VIEW"),e=t.length?t[0]:null;if(e&&e.view&&e.view instanceof so)return e.view}get defaultUnit(){return"imperial"===this.data.defaultUnitType?"mi":"km"}unitSystemForUnit(t){return t?Se[t]??this.data.defaultUnitType:this.data.defaultUnitType}async onload(){console.log(Ce("Loading Obsidian Leaflet v%1",this.manifest.version)),await this.loadSettings(),(0,t.addIcon)(qt,jt),(0,t.addIcon)(Yt,Rt),(0,t.addIcon)(Wt,Zt),this.data.mapViewEnabled&&(this.addRibbonIcon(Wt,Ce("Open Leaflet Map"),(t=>{this.app.workspace.getLeaf(t.getModifierState(ge)).setViewState({type:se})})),this.registerView(se,(t=>new Mc(t,this)))),this.app.workspace.onLayoutReady((()=>{this.patchLinkHover(),this.registerEvent(this.app.vault.on("rename",(async(t,e)=>{t&&this.mapFiles.find((({file:t})=>t===e))&&(this.mapFiles.find((({file:t})=>t===e)).file=t.path,await this.saveSettings())}))),this.registerEvent(this.app.vault.on("delete",(async t=>{t&&this.mapFiles.find((({file:e})=>e===t.path))&&(this.mapFiles=this.mapFiles.filter((({file:e})=>e!=t.path)),await this.saveSettings())}))),this.registerHoverLinkSource(this.manifest.id,{display:this.manifest.name,defaultMod:!1}),this.app.plugins.getPlugin("initiative-tracker")&&this.registerView("INITIATIVE_TRACKER_MAP_VIEW",(t=>new so(t,this))),this.registerEvent(this.app.workspace.on("initiative-tracker:unload",(()=>{this.initiativeView&&this.initiativeView.leaf.detach()})))})),this.markerIcons=this.generateMarkerMarkup(this.data.markerIcons),this.registerMarkdownCodeBlockProcessor("leaflet",this.postprocessor.bind(this)),this.addSettingTab(new $a(this.app,this))}patchLinkHover(){const e=this.app.internalPlugins.plugins["page-preview"];if(!e.enabled)return;const a=function(t,e){const a=Object.keys(e).map((a=>function(t,e,a){const i=t[e],n=t.hasOwnProperty(e);let s=a(i);return i&&Object.setPrototypeOf(s,i),Object.setPrototypeOf(r,s),t[e]=r,c;function r(...a){return s===i&&t[e]===r&&c(),s.apply(this,a)}function c(){t[e]===r&&(n?t[e]=i:delete t[e]),s!==i&&(s=i,Object.setPrototypeOf(r,i||Function))}}(t,a,e[a])));return 1===a.length?a[0]:function(){a.forEach((t=>t()))}}(t.HoverPopover.prototype,{onShow:t=>function(){return this.parent?.state?.source==ne&&this.hoverEl.addClass("obsidian-leaflet-popover"),t.call(this)}});this.register(a),e.disable(),e.enable(),this.register((function(){e.enabled&&(e.disable(),e.enable())}))}async onunload(){console.log(Ce("Unloading Obsidian Leaflet")),this.maps.forEach((t=>{t?.map?.remove();let e=createEl("pre");e.createEl("code",{},(a=>{a.innerText=`\`\`\`leaflet\n${t.source}\`\`\``,t.el.parentElement.replaceChild(e,t.el)}))})),this.view&&this.view.leaf.detach(),this.initiativeView&&this.initiativeView.leaf.detach(),this.maps=[]}async postprocessor(e,a,i){let n=function(e){let a={};const i=e.match(/(?:\[.*\]\(|\[\[)[^\[\]]*(?:\)|\]\])/g)??[];for(let t of i)e=e.replace(t,`LEAFLET_INTERNAL_LINK_${i.indexOf(t)}`);try{a=(0,t.parseYaml)(e)}catch(t){console.error(`Obsidian Leaflet: YAML Parsing failed\n${t}`),a=Object.fromEntries(e.split("\n").map((t=>t.split(/:\s?/))))}finally{let n,s;if(a||(a={}),i.length){let t=JSON.stringify(a);for(let a of i)t=t.replace(`LEAFLET_INTERNAL_LINK_${i.indexOf(a)}`,a),e=e.replace(`LEAFLET_INTERNAL_LINK_${i.indexOf(a)}`,a);a=JSON.parse(t)}(e.match(/^\bimage\b:[\s\S]*?$/gm)??[]).length>1&&(s=(e.match(/^\bimage\b:([\s\S]*?)$/gm)||[]).map((t=>t.split("image: ")[1]))),n="string"==typeof a.image?[a.image]:a.image instanceof Array?[...a.image]:["real"],a.layers=s??[...n],a.image=a.layers[0];let r={marker:[],markerFile:[],markerFolder:[],markerTag:[],filterTag:[],commandMarker:[],geojson:[],linksTo:[],linksFrom:[],overlay:[]};return new RegExp(`(${Object.keys(r).join("|")})`).test(e)&&Object.keys(r).forEach((i=>{let n=new RegExp(`^\\b${i}\\b:\\s?([\\s\\S]*?)$`,"gm");switch(i){case"filterTag":case"markerTag":(e.match(n)||[]).length>1?r[i]=(e.match(n)||[]).map((t=>t.split(new RegExp(`(?:${i}):\\s?`))[1]?.trim().split(/,\s?/))):a[i]instanceof Array?r[i]=a[i].map((t=>t instanceof Array?t:[t])):void 0!==a[i]&&a&&(r[i]=[[a[i]]]);break;case"markerFile":(e.match(n)||[]).length>1?r[i]=(e.match(n)||[]).map((t=>t.split(new RegExp(`(?:${i}):\\s?`))[1]?.trim())):a[i]instanceof Array?r[i]=a[i].flat(2):void 0!==a[i]&&(r[i]=[a[i]]);break;default:(e.match(n)||[]).length>1?r[i]=(e.match(n)||[]).map((e=>(0,t.parseYaml)(e.split(new RegExp(`(?:${i}):\\s?`))[1]?.trim()))):a[i]instanceof Array?r[i]=a[i]:void 0!==a[i]&&(r[i]=[a[i]])}})),Object.assign(a,r),a}}(e);if(!n.id)throw new t.Notice(Ce("Obsidian Leaflet maps must have an ID.")),new Error(Ce("ID required"));Be(n.verbose,n.id,"Beginning Markdown Postprocessor.");const s=new ao(this,i.sourcePath,a,n,e),r=await s.getMap();this.registerMapEvents(r),i.addChild(s),this.maps=this.maps.filter((t=>t.el!=a)),this.maps.push({map:r,source:e,el:a,id:n.id}),this.mapFiles.find((({file:t})=>t==i.sourcePath))?this.mapFiles.find((({file:t})=>t==i.sourcePath)).maps.push(n.id):this.mapFiles.push({file:i.sourcePath,maps:[n.id]})}get configDirectory(){if(this.data.configDirectory)return`${this.data.configDirectory}/plugins/obsidian-leaflet-plugin`}get configFilePath(){if(this.data.configDirectory)return`${this.configDirectory}/data.json`}async loadSettings(){this.data=Object.assign({},pe,await this.loadData()),this.configDirectory&&await this.app.vault.adapter.exists(this.configFilePath)&&(this.data=Object.assign({},this.data,JSON.parse(await this.app.vault.adapter.read(this.configFilePath)))),null!=this.data.version?.major&&this.data.version?.major<5&&(this.data.defaultTile.contains("stamen-tiles")||this.data.defaultTileDark.contains("stamen-tiles"))&&(new t.Notice(createFragment((t=>{t.createSpan({text:"Obsidian Leaflet: Stamen has removed its map tile servers."}),t.createEl("br"),t.createEl("br"),t.createSpan({text:"Going forward, the default tile server will be "}),t.createEl("a",{href:"https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}.png",text:"CartoDB"}),t.createSpan({text:"."})})),0),this.data.defaultTile.contains("stamen-tiles")&&(this.data.defaultTile=re),this.data.defaultTileDark.contains("stamen-tiles")&&(this.data.defaultTileDark=re),this.data.defaultAttribution.contains("Stamen Design")&&(this.data.defaultAttribution=oe)),null!=this.data.version?.major&&this.data.version?.major<6&&(this.data.defaultTile.contains("stamen")||this.data.defaultTileDark.contains("stamen"))&&(new t.Notice(createFragment((t=>{t.createSpan({text:"Obsidian Leaflet: OpenStreetMap has restricted the use of its tile server in Obsidian."}),t.createEl("br"),t.createEl("br"),t.createSpan({text:"Going forward, the default tile server will be "}),t.createEl("a",{href:"http://maps.stamen.com/#terrain/12/37.7706/-122.3782",text:"Stamen Terrain"}),t.createSpan({text:"."})})),0),this.data.defaultTile.contains("openstreetmap")&&(this.data.defaultTile=re),this.data.defaultTileDark.contains("openstreetmap")&&(this.data.defaultTileDark=re)),this.data.previousVersion=this.manifest.version;const e=this.data.previousVersion.split(".");this.data.version={major:Number(e[0]),minor:Number(e[1]),patch:Number(e[2])},"boolean"==typeof this.data.displayMarkerTooltips&&(this.data.displayMarkerTooltips=this.data.displayMarkerTooltips?"hover":"never"),this.data.defaultMarker&&this.data.defaultMarker.iconName||(this.data.defaultMarker=pe.defaultMarker,this.data.layerMarkers=!1),await this.saveSettings()}async saveMarkerTypes(){await this.saveSettings(),this.markerIcons=this.generateMarkerMarkup(this.data.markerIcons),this.maps.forEach((t=>{t.map.updateMarkerIcons()}))}async saveData(e){if(this.configDirectory)try{await this.app.vault.adapter.exists(this.configDirectory)||await this.app.vault.adapter.mkdir(this.configDirectory),await this.app.vault.adapter.write(this.configFilePath,JSON.stringify(e))}catch(e){console.error(e),new t.Notice(Ce("There was an error saving into the configured directory."))}await super.saveData(e)}registerMapEvents(e){this.registerDomEvent(e.contentEl,"dragover",(t=>{t.preventDefault()})),this.registerDomEvent(e.contentEl,"drop",(a=>{a.stopPropagation();let i=decodeURIComponent(a.dataTransfer.getData("text/plain")).split("file=").pop();const n=/\.\w+$/.test(i)?"":".md",s=this.app.vault.getAbstractFileByPath(`${i}${n}`);if(!(s instanceof t.TFile))return;const r=e.leafletInstance.mouseEventToLatLng(a),c=[r.lat,r.lng];e.createMarker(e.defaultIcon.type,c,void 0,void 0,s.basename).leafletInstance.closeTooltip()})),e.on("marker-added",(async t=>{t.leafletInstance.closeTooltip(),t.leafletInstance.unbindTooltip(),this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl)).forEach((e=>{e.map.addMarker(t.toProperties())})),await this.saveSettings()})),e.on("marker-dragging",(t=>{this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl)).forEach((e=>{let a=e.map.markers.find((e=>e.id==t.id));a&&a.leafletInstance.setLatLng(t.leafletInstance.getLatLng())}))})),e.on("marker-data-updated",(async t=>{await this.saveSettings(),this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl)).forEach((e=>{let a=e.map.markers.find((e=>e.id==t.id));a&&a.leafletInstance.setLatLng(t.leafletInstance.getLatLng())}))})),e.on("marker-deleted",(t=>{const a=this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl));for(let{map:e}of a)e.removeMarker(t)})),e.on("marker-updated",(t=>{const a=this.maps.filter((({id:t,map:a})=>t==e.id&&a.contentEl!=e.contentEl));for(let{map:e}of a)e.updateMarker(t)}))}parseIcon(t){t.transform||(t.transform=this.data.defaultMarker.transform),t.iconName||(t.iconName=this.data.defaultMarker.iconName);let e=ee(t,{...t.layer&&!this.data.defaultMarker.isImage?{transform:t.transform,mask:_t(this.data.defaultMarker.iconName)}:{},classes:["full-width-height"]}).node;return e.style.color=t.color?t.color:this.data.defaultMarker.color,e.style.opacity=`${t.alpha??this.data.defaultMarker.alpha??1}`,{type:t.type,html:e.outerHTML,icon:fr({html:e.outerHTML,className:"leaflet-div-icon"}),markerIcon:t}}generateMarkerMarkup(t=this.data.markerIcons){let e=t.map((t=>this.parseIcon(t)));const a=ee(this.data.defaultMarker,{classes:["full-width-height"],styles:{color:this.data.defaultMarker.color,opacity:`${this.data.defaultMarker.alpha??1}`},maskId:`leaflet-mask-${Ne()}`}).html;return e.unshift({type:"default",html:a,icon:fr({html:a,className:"leaflet-div-icon"}),markerIcon:this.data.defaultMarker}),e}async getLocalFileMarkers(e,a="markers.json"){if(!e)return[];const i=`${e.parent.path}/${a}`,n=this.app.vault.getAbstractFileByPath(i),s=[];if(n instanceof t.TFile){const t=await this.app.vault.read(n);try{const e=JSON.parse(t);s.push(...e.map((t=>this.parseIcon(t))))}catch{console.error(`Badly formatted marker file ${i}`)}}return s}getIconForTag(t){return this.data.markerIcons.find((e=>((e.tags??[]).filter((e=>t.has(`${"#"==e[0]?"":"#"}${e}`)))??[]).shift()))?.type}getIconForType(t){return this.data.markerIcons.find((e=>e.type==t))??this.data.defaultMarker}createNewMarkerType(t){return new Promise((e=>{let a=t?.original??{type:t?.name??"",iconName:null,color:t?.layer??this.data.layerMarkers?this.data.defaultMarker.color:this.data.color,alpha:1,layer:t?.layer??this.data.layerMarkers,transform:this.data.defaultMarker.transform,isImage:!1,imageUrl:"",tags:[],minZoom:null,maxZoom:null},i=new _a(this.app,this,a);i.open(),i.onClose=async()=>{i.saved&&e(a),e()}}))}async openInitiativeView(e,a){if(this.initiativeView)this.initiativeView.addPlayers(...e),this.initiativeView.addCreatures(...a);else{const t=this.app.workspace.getLayout().main.children.filter((t=>"empty"!=t?.state?.type)),i=this.app.workspace.getLeaf(t.length>0);await i.open(new so(i,this,e,a))}this.initiativeView||new t.Notice("There was an error opening the initiative map view.")}}})();var n=exports;for(var s in i)n[s]=i[s];i.__esModule&&Object.defineProperty(n,"__esModule",{value:!0})})(); \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-leaflet-plugin/manifest.json b/.obsidian/plugins/obsidian-leaflet-plugin/manifest.json new file mode 100644 index 0000000..d901f4d --- /dev/null +++ b/.obsidian/plugins/obsidian-leaflet-plugin/manifest.json @@ -0,0 +1,10 @@ +{ + "id": "obsidian-leaflet-plugin", + "name": "Leaflet", + "description": "Interactive maps inside your notes", + "version": "6.0.5", + "minAppVersion": "0.12.12", + "author": "Jeremy Valentine", + "repo": "valentine195/obsidian-leaflet-plugin", + "isDesktopOnly": false +} diff --git a/.obsidian/plugins/obsidian-leaflet-plugin/styles.css b/.obsidian/plugins/obsidian-leaflet-plugin/styles.css new file mode 100644 index 0000000..9017be1 --- /dev/null +++ b/.obsidian/plugins/obsidian-leaflet-plugin/styles.css @@ -0,0 +1,1314 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg, +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + } + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile { + will-change: opacity; + } +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + will-change: transform; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-container a.leaflet-active { + outline: 2px solid orange; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover { + text-decoration: underline; + } +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + font-size: 11px; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + } +.leaflet-popup-content p { + margin: 18px 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + border: none; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-clickable { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + } + +/* Settings */ +.icon > .suggestion-flair { + background-color: unset; + width: 12px; + height: 16px; + font-size: 12px; + text-align: center; +} + +.obsidian-leaflet-settings .coffee { + border-top: 1px solid var(--background-modifier-border); + width: 100%; + color: var(--text-faint); + padding: 1rem; + text-align: center; +} +.obsidian-leaflet-settings .coffee img { + height: 30px; +} + +.additional-markers-container > .setting-item:not(.setting-item-heading) { + border: 0px; +} + +.additional-markers-container { + border-top: 1px solid var(--background-modifier-border); + padding: 18px 0 0 0; +} + +.additional-markers-container > .setting-item-heading:only-child { + padding-bottom: 18px; +} + +.additional-markers-control > input:first-of-type { + margin-right: auto !important; +} + +.additional-markers-container > .additional-markers { + margin: 6px 12px; +} +.additional-markers-container > .additional-markers > .setting-item { + border-top: 0; + padding-top: 9px; +} +.additional-markers-container + > .additional-markers + > .setting-item + > .setting-item-control + > *:first-child { + margin: 0 6px; +} + +.setting-item-name > .marker-type-display { + display: flex; + justify-content: flex-start; +} +.marker-type-display > .marker-icon-display { + margin-right: 12px; + font-size: 24px; + width: 18px; + display: flex; + justify-content: center; + align-items: center; +} + +.marker-creation-modal { + padding-top: 18px; + display: grid; + grid-template-columns: 75% 1fr; + grid-template-rows: 1fr; + gap: 1rem; +} + +.marker-creation-modal .setting-item { + border-top: none; +} + +.marker-creation-modal .icon-display { + padding: 1rem; +} + +.marker-creation-modal .icon-display canvas { + width: 100%; +} + +.markers { + display: none; +} + +.marker-icon-display * { + margin-right: 0px !important; +} + +.marker-icon-display input[type="color"] { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + opacity: 0; + width: 100%; + height: 100%; + margin-right: 12px; +} + +.full-width-height, +.full-width-height > * { + height: 100% !important; + width: 100% !important; +} + +.full-width, +.full-width > * { + width: 100% !important; +} + +/** Invalid Setting */ + +.leaflet-settings-modal .unset-align-items { + align-items: unset; +} + +.leaflet-settings-modal .has-invalid-message { + flex-grow: unset; + flex-flow: column nowrap; +} + +.leaflet-settings-modal input.is-invalid { + border-color: #dc3545 !important; + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e"); + background-repeat: no-repeat; + background-position: right calc(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.leaflet-settings-modal .invalid-feedback { + display: block; + width: 100%; + margin-top: 0.25rem; + font-size: 0.875em; + color: #dc3545; +} + +.block-language-leaflet { + margin: 0 auto; +} + +.block-language-leaflet > .leaflet-container { + z-index: 0; + background-color: var(--background-secondary-alt); +} + +.block-language-leaflet > .adding-text { + cursor: text; +} + +.block-language-leaflet .leaflet-bar a { + font-style: unset; +} +.block-language-leaflet .leaflet-bar.disabled { + cursor: not-allowed; +} +.block-language-leaflet .leaflet-bar.disabled > a { + background-color: lightgrey; + pointer-events: none; +} + +/* immutable leaflet markers */ +/* .leaflet-marker-icon:not(.leaflet-marker-draggable) { + cursor: not-allowed; +} + */ +/* div icon override */ +.block-language-leaflet .leaflet-div-icon img { + pointer-events: none; + cursor: pointer; +} + +.block-language-leaflet .leaflet-div-icon { + background: transparent !important; + border: none !important; + width: 25px !important; + height: 25px !important; + margin-left: -12.5px !important; + margin-top: -25px !important; +} + +.block-language-leaflet .leaflet-marker-link-tooltip { + box-shadow: 0 2px 8px var(--background-modifier-box-shadow) !important; + background-color: rgba(0, 0, 0, 0.9) !important; + border: 1px solid rgba(0, 0, 0, 0.9) !important; + border-radius: 6px !important; + color: #dcddde !important; + font-size: 14px !important; + left: 50% !important; + line-height: 20px !important; + width: auto !important; + padding: 5px 14px !important; + /* pointer-events: none !important; */ + opacity: unset !important; +} + +.block-language-leaflet .leaflet-marker-link-popup > * { + animation: leaflet-pop-down 200ms forwards ease-in-out; +} + +@keyframes leaflet-pop-down { + 0% { + opacity: 0; + transform: scale(1); + } + + 20% { + opacity: 0.7; + transform: scale(1.02); + } + 40% { + opacity: 1; + transform: scale(1.05); + } + 100% { + opacity: 1; + transform: scale(1); + } +} + +.block-language-leaflet + .leaflet-marker-link-popup + > .leaflet-popup-content-wrapper { + background-color: rgba(0, 0, 0, 0.9) !important; + color: #dcddde !important; + padding: 5px 14px !important; + border-radius: 6px !important; + line-height: 20px !important; +} +.block-language-leaflet + .leaflet-marker-link-popup + > .leaflet-popup-content-wrapper + > * { + margin: 0; + font-size: 14px; + text-align: center; +} +.block-language-leaflet .leaflet-marker-link-popup .leaflet-popup-tip { + background-color: rgba(0, 0, 0, 0.9) !important; + width: 12px; + height: 12px; +} + +.block-language-leaflet .leaflet-marker-link-tooltip::before { + border-top-color: rgba(0, 0, 0, 0.9) !important; +} + +.block-language-leaflet + .leaflet-control-layers:not(.leaflet-control-layers-expanded) + .leaflet-control-layers-toggle { + background-image: unset !important; + display: flex !important; +} +.block-language-leaflet + .leaflet-control-layers:not(.leaflet-control-layers-expanded) { + width: unset; + height: unset; +} +.block-language-leaflet .leaflet-control-layers-toggle { + width: 30px !important; + height: 30px !important; +} + +.block-language-leaflet + .leaflet-control-layers + .leaflet-control-layers-selector { + appearance: auto; +} + +.block-language-leaflet .leaflet-control.disabled { + pointer-events: hover; +} + +.block-language-leaflet .leaflet-distance-control { + background-color: #fff; + border-radius: 2px; + min-width: 30px; + width: auto; + height: 30px; + padding: 5px; + cursor: pointer !important; +} + +.block-language-leaflet .leaflet-control-draw-paint-icon > svg { + stroke: black; + stroke-width: 25; +} +.block-language-leaflet .leaflet-control-draw-palette { + position: relative; +} +.block-language-leaflet .leaflet-control input[type="color"] { + visibility: hidden; + position: absolute; + top: 0; + left: 0; +} +.leaflet-file-upload > input[type="file"] { + display: none; +} + +/** Bulk Marker Edit Settings */ +.bulk-setting-hover:not(.marker) { + box-shadow: 0 0px 8px var(--background-modifier-box-shadow) !important; +} +.bulk-setting-hover.marker::before { + content: ""; + width: 120%; + height: 120%; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + border-radius: 100%; + border: 3px solid #00ff00 !important; +} +/* .bulk-edit-markers { + width: 675px; +} */ +.bulk-edit-markers .setting-item, +.bulk-edit-markers > .setting-item-control { + padding: 8px 2px; + margin: 0 8px; +} +.bulk-edit-markers > .setting-item:first-child button { + margin-right: 0; +} +.bulk-edit-markers-holder { + height: 250px; + overflow-y: auto; +} +.bulk-edit-markers-holder::-webkit-scrollbar { + width: 2px !important; +} +.bulk-edit-marker-instance .setting-item-control { + display: flex; + flex-flow: row wrap; + justify-content: space-between; +} +.bulk-edit-marker-instance .setting-item-control > *:not(:last-child) { + margin-right: 0.5rem; +} + +.block-language-leaflet .leaflet-container .dark-mode { + filter: brightness(0.6) invert(1) contrast(3) hue-rotate(200deg) + saturate(0.3) brightness(0.7); +} + +.block-language-leaflet .leaflet-container.drawing { + cursor: crosshair; +} +.block-language-leaflet + .leaflet-container.shape-dragging + .leaflet-drawing-pane + path { + cursor: move; +} + +.block-language-leaflet .leaflet-div-icon.initiative-marker-disabled { + opacity: 50%; +} +.block-language-leaflet .leaflet-div-icon.initiative-marker-active svg { + filter: drop-shadow(0 0 3px green); +} +.block-language-leaflet .leaflet-div-icon progress { + width: 100%; + top: 95%; + position: absolute; + left: 50%; + transform: translateX(-50%); +} + +.block-language-leaflet .leaflet-div-icon .initiative-marker-status-container { + position: absolute; + top: -6px; + right: -15px; + display: flex; + flex-flow: column wrap; + justify-content: center; + align-items: center; + height: 46px; + gap: 2px; +} +.block-language-leaflet + .leaflet-div-icon + .initiative-marker-status-container + svg { + height: 10px; +} +.block-language-leaflet + .leaflet-div-icon + .initiative-marker-status-container + svg + > * { + stroke-width: 20px; + stroke: white; +} + +/** Filter Control */ +.block-language-leaflet .leaflet-control-expandable { + background: #fff; +} +.block-language-leaflet + .leaflet-control-expandable:not(.expanded) + > .leaflet-control-expandable-list { + display: none; +} +.block-language-leaflet + .leaflet-control-expandable.expanded + > .leaflet-control-expandable-icon { + display: none; +} +.block-language-leaflet .leaflet-control-expandable .task-list-item > * { + cursor: pointer; +} + +.block-language-leaflet .leaflet-control-expandable .input-container { + margin: 0; +} +.block-language-leaflet .leaflet-control-expandable.expanded .input-container { + padding: 6px 10px 6px 6px; + margin: 0; +} + +.block-language-leaflet .leaflet-control-expandable-list .input-item { + display: flex; + justify-content: flex-start; + align-items: center; +} + +.block-language-leaflet .leaflet-control-expandable input[type="radio"] { + margin-top: 0; +} + +.block-language-leaflet + .leaflet-control-expandable-list + .input-container + .input-item + > input { + top: 0px; + appearance: auto; +} +.block-language-leaflet + .leaflet-control-expandable-list + .input-container + .input-item + > label { + display: flex; + align-items: center; + justify-content: flex-start; +} +.block-language-leaflet + .leaflet-control-expandable-list + .input-container + .input-item + .leaflet-control-expandable-icon { + width: 18px; + height: 18px; + margin-right: 4px; +} +.block-language-leaflet + .leaflet-control-expandable-list + .leaflet-control-expandable-button-group { + margin-bottom: 6px; + padding: 6px 10px 0px 6px; +} +.block-language-leaflet + .leaflet-control-expandable-list + .leaflet-control-expandable-button-group + button:last-child { + margin-right: 0px; +} + +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-gpx + .gpx-data { + padding: 6px 10px 6px 6px; + border-bottom: 1px solid var(--background-modifier-border); +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-gpx + .input-container { + border-bottom: 1px solid var(--background-modifier-border); +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-gpx + .control-buttons { + display: flex; + justify-content: space-evenly; + margin: 0.25rem; +} + +.block-language-leaflet .leaflet-control-gpx .gpx-elevation { + display: flex; + justify-content: space-around; +} +.block-language-leaflet .gpx-elevation .elevation-gain { + color: green; +} +.block-language-leaflet .gpx-elevation .elevation-loss { + color: red; +} + +.gpx-popup { + display: flex; + flex-flow: column; + justify-content: flex-start; + align-items: flex-start; +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list { + display: flex; + flex-flow: column nowrap; +} + +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list + .leaflet-control, +.block-language-leaflet .leaflet-control-draw a { + margin: 0; + border: 0; +} +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + a { + margin-right: 0; +} + +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list + .leaflet-control.leaflet-control-draw-trash, +.block-language-leaflet + .leaflet-control-expandable.leaflet-control-draw.expanded + .leaflet-control-expandable-list + .leaflet-control.leaflet-control-draw-paint { + border-top: 2px solid rgba(0, 0, 0, 0.2); + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.block-language-leaflet .leaflet-control-has-actions { + position: relative; +} + +.block-language-leaflet .leaflet-control-has-actions .control-actions.expanded { + display: flex; + background-color: white; +} +.block-language-leaflet .leaflet-control-has-actions .control-actions { + display: none; + position: absolute; + top: -1px; + right: 100%; + border: 1px solid #ccc; + border-top-left-radius: 2px; + border-bottom-left-radius: 2px; +} + +.block-language-leaflet + .leaflet-control-has-actions + .control-actions + .leaflet-control + a { + border-radius: 0; +} + +.block-language-leaflet .leaflet-control-arrow.active, +.block-language-leaflet .leaflet-control-fill-color.active { + background-color: #3388ff; + color: white; + border-radius: 0; +} +.block-language-leaflet .leaflet-control-arrow.active a, +.block-language-leaflet .leaflet-control-fill-color.active a { + background-color: transparent; + color: white; +} + +.block-language-leaflet .leaflet-div-icon.leaflet-middle-icon, +.block-language-leaflet .leaflet-div-icon.leaflet-vertex-icon { + border-radius: 100%; + width: 12px !important; + height: 12px !important; + border: 1px solid rgb(204, 204, 204) !important; + background-color: white !important; + margin-top: -6px !important; + margin-left: -6px !important; + display: block; +} + +.block-language-leaflet .leaflet-div-icon.leaflet-middle-icon { + width: 10px !important; + height: 10px !important; + margin-top: -5px !important; + margin-left: -5px !important; +} + +.block-language-leaflet .leaflet-text-entry { + position: relative; + width: max-content; +} +.block-language-leaflet .leaflet-text-entry input { + outline: none; + position: absolute; + transform: translate(-50%, 0%); + left: 50%; + text-align: center; + background-color: transparent; + border: 0; +} +.block-language-leaflet .leaflet-text-entry span { + width: fit-content; +} + +.block-language-leaflet .leaflet-pane.leaflet-geojson-pane { + z-index: 398; +} +.block-language-leaflet .leaflet-pane.leaflet-image-overlay-pane { + z-index: 397; +} +.block-language-leaflet .leaflet-pane.leaflet-gpx-pane { + z-index: 405; +} +.block-language-leaflet .leaflet-pane.leaflet-gpx-canvas-pane { + z-index: 301; +} +.block-language-leaflet .leaflet-pane.leaflet-base-layer-pane { + z-index: 300; +} + +.hidden-leaflet-popup { + display: none; + visibility: hidden; +} +/* +.block-language-leaflet .leaflet-control-fullscreen a { + background-image: unset; +} */ + +.block-language-leaflet .leaflet-control-layers-toggle { + background-image: unset !important; +} +.block-language-leaflet .leaflet-retina .leaflet-control-layers-toggle { + background-image: unset !important; +} +.block-language-leaflet .leaflet-default-icon-path { + background-image: unset !important; +} + +.leaflet-layer-targeted { + filter: drop-shadow(0 0 3px green); +} + +.leaflet-edit-parameters .context-buttons { + display: flex; + justify-content: flex-end; + align-items: center; +} + +.block-language-leaflet .leaflet-pm-toolbar .button-container { + margin-top: unset; +} + +.leaflet-marker-icon svg { + filter: drop-shadow(1px 3px 3px black); +} + diff --git a/.obsidian/plugins/obsidian-style-settings/data.json b/.obsidian/plugins/obsidian-style-settings/data.json new file mode 100644 index 0000000..fb04648 --- /dev/null +++ b/.obsidian/plugins/obsidian-style-settings/data.json @@ -0,0 +1,3 @@ +{ + "ITS@@select": "wotc-beyond" +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-style-settings/main.js b/.obsidian/plugins/obsidian-style-settings/main.js new file mode 100644 index 0000000..b7e0ea0 --- /dev/null +++ b/.obsidian/plugins/obsidian-style-settings/main.js @@ -0,0 +1,9858 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ROLLUP +if you want to view the source visit the plugins github repository +*/ + +'use strict'; + +var obsidian = require('obsidian'); + +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ + +function __awaiter(thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +} + +class ExportModal extends obsidian.Modal { + constructor(app, plugin, section, config) { + super(app); + this.plugin = plugin; + this.config = config; + this.section = section; + } + onOpen() { + const { contentEl, modalEl } = this; + modalEl.addClass('modal-style-settings'); + new obsidian.Setting(contentEl) + .setName(`Export settings for: ${this.section}`) + .then((setting) => { + const output = JSON.stringify(this.config, null, 2); + // Build a copy to clipboard link + setting.controlEl.createEl('a', { + cls: 'style-settings-copy', + text: 'Copy to clipboard', + href: '#', + }, (copyButton) => { + new obsidian.TextAreaComponent(contentEl) + .setValue(output) + .then((textarea) => { + copyButton.addEventListener('click', (e) => { + e.preventDefault(); + // Select the textarea contents and copy them to the clipboard + textarea.inputEl.select(); + textarea.inputEl.setSelectionRange(0, 99999); + document.execCommand('copy'); + copyButton.addClass('success'); + setTimeout(() => { + // If the button is still in the dom, remove the success class + if (copyButton.parentNode) { + copyButton.removeClass('success'); + } + }, 2000); + }); + }); + }); + // Build a download link + setting.controlEl.createEl('a', { + cls: 'style-settings-download', + text: 'Download', + attr: { + download: 'style-settings.json', + href: `data:application/json;charset=utf-8,${encodeURIComponent(output)}`, + }, + }); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +} + +class ImportModal extends obsidian.Modal { + constructor(app, plugin) { + super(app); + this.plugin = plugin; + } + onOpen() { + const { contentEl, modalEl } = this; + modalEl.addClass('modal-style-settings'); + new obsidian.Setting(contentEl) + .setName('Import style setting') + .setDesc('Import an entire or partial configuration. Warning: this may override existing settings'); + new obsidian.Setting(contentEl).then((setting) => { + // Build an error message container + const errorSpan = createSpan({ + cls: 'style-settings-import-error', + text: 'Error importing config', + }); + setting.nameEl.appendChild(errorSpan); + // Attempt to parse the imported data and close if successful + const importAndClose = (str) => __awaiter(this, void 0, void 0, function* () { + if (str) { + try { + const importedSettings = JSON.parse(str); + yield this.plugin.settingsManager.setSettings(importedSettings); + this.plugin.settingsTab.display(); + this.close(); + } + catch (e) { + errorSpan.addClass('active'); + errorSpan.setText(`Error importing style settings: ${e}`); + } + } + else { + errorSpan.addClass('active'); + errorSpan.setText(`Error importing style settings: config is empty`); + } + }); + // Build a file input + setting.controlEl.createEl('input', { + cls: 'style-settings-import-input', + attr: { + id: 'style-settings-import-input', + name: 'style-settings-import-input', + type: 'file', + accept: '.json', + }, + }, (importInput) => { + // Set up a FileReader so we can parse the file contents + importInput.addEventListener('change', (e) => { + const reader = new FileReader(); + reader.onload = (e) => __awaiter(this, void 0, void 0, function* () { + yield importAndClose(e.target.result.toString().trim()); + }); + reader.readAsText(e.target.files[0]); + }); + }); + // Build a label we will style as a link + setting.controlEl.createEl('label', { + cls: 'style-settings-import-label', + text: 'Import from file', + attr: { + for: 'style-settings-import-input', + }, + }); + new obsidian.TextAreaComponent(contentEl) + .setPlaceholder('Paste config here...') + .then((ta) => { + new obsidian.ButtonComponent(contentEl) + .setButtonText('Save') + .onClick(() => __awaiter(this, void 0, void 0, function* () { + yield importAndClose(ta.getValue().trim()); + })); + }); + }); + } + onClose() { + const { contentEl } = this; + contentEl.empty(); + } +} + +const SettingType = { + HEADING: 'heading', + INFO_TEXT: 'info-text', + CLASS_TOGGLE: 'class-toggle', + CLASS_SELECT: 'class-select', + VARIABLE_TEXT: 'variable-text', + VARIABLE_NUMBER: 'variable-number', + VARIABLE_NUMBER_SLIDER: 'variable-number-slider', + VARIABLE_SELECT: 'variable-select', + VARIABLE_COLOR: 'variable-color', + VARIABLE_THEMED_COLOR: 'variable-themed-color', + COLOR_GRADIENT: 'color-gradient', +}; + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getDefaultExportFromCjs (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function (path, base) { + return commonjsRequire(path, (base === undefined || base === null) ? module.path : base); + } + }, fn(module, module.exports), module.exports; +} + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var chroma = createCommonjsModule(function (module, exports) { +/** + * chroma.js - JavaScript library for color conversions + * + * Copyright (c) 2011-2019, Gregor Aisch + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * 3. The name Gregor Aisch may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL GREGOR AISCH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ------------------------------------------------------- + * + * chroma.js includes colors from colorbrewer2.org, which are released under + * the following license: + * + * Copyright (c) 2002 Cynthia Brewer, Mark Harrower, + * and The Pennsylvania State University. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. + * + * ------------------------------------------------------ + * + * Named colors are taken from X11 Color Names. + * http://www.w3.org/TR/css3-color/#svg-color + * + * @preserve + */ + +(function (global, factory) { + module.exports = factory() ; +}(commonjsGlobal, (function () { + var limit = function (x, min, max) { + if ( min === void 0 ) min=0; + if ( max === void 0 ) max=1; + + return x < min ? min : x > max ? max : x; + }; + + var clip_rgb = function (rgb) { + rgb._clipped = false; + rgb._unclipped = rgb.slice(0); + for (var i=0; i<=3; i++) { + if (i < 3) { + if (rgb[i] < 0 || rgb[i] > 255) { rgb._clipped = true; } + rgb[i] = limit(rgb[i], 0, 255); + } else if (i === 3) { + rgb[i] = limit(rgb[i], 0, 1); + } + } + return rgb; + }; + + // ported from jQuery's $.type + var classToType = {}; + for (var i = 0, list = ['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Undefined', 'Null']; i < list.length; i += 1) { + var name = list[i]; + + classToType[("[object " + name + "]")] = name.toLowerCase(); + } + var type = function(obj) { + return classToType[Object.prototype.toString.call(obj)] || "object"; + }; + + var unpack = function (args, keyOrder) { + if ( keyOrder === void 0 ) keyOrder=null; + + // if called with more than 3 arguments, we return the arguments + if (args.length >= 3) { return Array.prototype.slice.call(args); } + // with less than 3 args we check if first arg is object + // and use the keyOrder string to extract and sort properties + if (type(args[0]) == 'object' && keyOrder) { + return keyOrder.split('') + .filter(function (k) { return args[0][k] !== undefined; }) + .map(function (k) { return args[0][k]; }); + } + // otherwise we just return the first argument + // (which we suppose is an array of args) + return args[0]; + }; + + var last = function (args) { + if (args.length < 2) { return null; } + var l = args.length-1; + if (type(args[l]) == 'string') { return args[l].toLowerCase(); } + return null; + }; + + var PI = Math.PI; + + var utils = { + clip_rgb: clip_rgb, + limit: limit, + type: type, + unpack: unpack, + last: last, + PI: PI, + TWOPI: PI*2, + PITHIRD: PI/3, + DEG2RAD: PI / 180, + RAD2DEG: 180 / PI + }; + + var input = { + format: {}, + autodetect: [] + }; + + var last$1 = utils.last; + var clip_rgb$1 = utils.clip_rgb; + var type$1 = utils.type; + + + var Color = function Color() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var me = this; + if (type$1(args[0]) === 'object' && + args[0].constructor && + args[0].constructor === this.constructor) { + // the argument is already a Color instance + return args[0]; + } + + // last argument could be the mode + var mode = last$1(args); + var autodetect = false; + + if (!mode) { + autodetect = true; + if (!input.sorted) { + input.autodetect = input.autodetect.sort(function (a,b) { return b.p - a.p; }); + input.sorted = true; + } + // auto-detect format + for (var i = 0, list = input.autodetect; i < list.length; i += 1) { + var chk = list[i]; + + mode = chk.test.apply(chk, args); + if (mode) { break; } + } + } + + if (input.format[mode]) { + var rgb = input.format[mode].apply(null, autodetect ? args : args.slice(0,-1)); + me._rgb = clip_rgb$1(rgb); + } else { + throw new Error('unknown format: '+args); + } + + // add alpha channel + if (me._rgb.length === 3) { me._rgb.push(1); } + }; + + Color.prototype.toString = function toString () { + if (type$1(this.hex) == 'function') { return this.hex(); } + return ("[" + (this._rgb.join(',')) + "]"); + }; + + var Color_1 = Color; + + var chroma = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( chroma.Color, [ null ].concat( args) )); + }; + + chroma.Color = Color_1; + chroma.version = '2.1.2'; + + var chroma_1 = chroma; + + var unpack$1 = utils.unpack; + var max = Math.max; + + var rgb2cmyk = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$1(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + r = r / 255; + g = g / 255; + b = b / 255; + var k = 1 - max(r,max(g,b)); + var f = k < 1 ? 1 / (1-k) : 0; + var c = (1-r-k) * f; + var m = (1-g-k) * f; + var y = (1-b-k) * f; + return [c,m,y,k]; + }; + + var rgb2cmyk_1 = rgb2cmyk; + + var unpack$2 = utils.unpack; + + var cmyk2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$2(args, 'cmyk'); + var c = args[0]; + var m = args[1]; + var y = args[2]; + var k = args[3]; + var alpha = args.length > 4 ? args[4] : 1; + if (k === 1) { return [0,0,0,alpha]; } + return [ + c >= 1 ? 0 : 255 * (1-c) * (1-k), // r + m >= 1 ? 0 : 255 * (1-m) * (1-k), // g + y >= 1 ? 0 : 255 * (1-y) * (1-k), // b + alpha + ]; + }; + + var cmyk2rgb_1 = cmyk2rgb; + + var unpack$3 = utils.unpack; + var type$2 = utils.type; + + + + Color_1.prototype.cmyk = function() { + return rgb2cmyk_1(this._rgb); + }; + + chroma_1.cmyk = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['cmyk']) )); + }; + + input.format.cmyk = cmyk2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$3(args, 'cmyk'); + if (type$2(args) === 'array' && args.length === 4) { + return 'cmyk'; + } + } + }); + + var unpack$4 = utils.unpack; + var last$2 = utils.last; + var rnd = function (a) { return Math.round(a*100)/100; }; + + /* + * supported arguments: + * - hsl2css(h,s,l) + * - hsl2css(h,s,l,a) + * - hsl2css([h,s,l], mode) + * - hsl2css([h,s,l,a], mode) + * - hsl2css({h,s,l,a}, mode) + */ + var hsl2css = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var hsla = unpack$4(args, 'hsla'); + var mode = last$2(args) || 'lsa'; + hsla[0] = rnd(hsla[0] || 0); + hsla[1] = rnd(hsla[1]*100) + '%'; + hsla[2] = rnd(hsla[2]*100) + '%'; + if (mode === 'hsla' || (hsla.length > 3 && hsla[3]<1)) { + hsla[3] = hsla.length > 3 ? hsla[3] : 1; + mode = 'hsla'; + } else { + hsla.length = 3; + } + return (mode + "(" + (hsla.join(',')) + ")"); + }; + + var hsl2css_1 = hsl2css; + + var unpack$5 = utils.unpack; + + /* + * supported arguments: + * - rgb2hsl(r,g,b) + * - rgb2hsl(r,g,b,a) + * - rgb2hsl([r,g,b]) + * - rgb2hsl([r,g,b,a]) + * - rgb2hsl({r,g,b,a}) + */ + var rgb2hsl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$5(args, 'rgba'); + var r = args[0]; + var g = args[1]; + var b = args[2]; + + r /= 255; + g /= 255; + b /= 255; + + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + + var l = (max + min) / 2; + var s, h; + + if (max === min){ + s = 0; + h = Number.NaN; + } else { + s = l < 0.5 ? (max - min) / (max + min) : (max - min) / (2 - max - min); + } + + if (r == max) { h = (g - b) / (max - min); } + else if (g == max) { h = 2 + (b - r) / (max - min); } + else if (b == max) { h = 4 + (r - g) / (max - min); } + + h *= 60; + if (h < 0) { h += 360; } + if (args.length>3 && args[3]!==undefined) { return [h,s,l,args[3]]; } + return [h,s,l]; + }; + + var rgb2hsl_1 = rgb2hsl; + + var unpack$6 = utils.unpack; + var last$3 = utils.last; + + + var round = Math.round; + + /* + * supported arguments: + * - rgb2css(r,g,b) + * - rgb2css(r,g,b,a) + * - rgb2css([r,g,b], mode) + * - rgb2css([r,g,b,a], mode) + * - rgb2css({r,g,b,a}, mode) + */ + var rgb2css = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgba = unpack$6(args, 'rgba'); + var mode = last$3(args) || 'rgb'; + if (mode.substr(0,3) == 'hsl') { + return hsl2css_1(rgb2hsl_1(rgba), mode); + } + rgba[0] = round(rgba[0]); + rgba[1] = round(rgba[1]); + rgba[2] = round(rgba[2]); + if (mode === 'rgba' || (rgba.length > 3 && rgba[3]<1)) { + rgba[3] = rgba.length > 3 ? rgba[3] : 1; + mode = 'rgba'; + } + return (mode + "(" + (rgba.slice(0,mode==='rgb'?3:4).join(',')) + ")"); + }; + + var rgb2css_1 = rgb2css; + + var unpack$7 = utils.unpack; + var round$1 = Math.round; + + var hsl2rgb = function () { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + args = unpack$7(args, 'hsl'); + var h = args[0]; + var s = args[1]; + var l = args[2]; + var r,g,b; + if (s === 0) { + r = g = b = l*255; + } else { + var t3 = [0,0,0]; + var c = [0,0,0]; + var t2 = l < 0.5 ? l * (1+s) : l+s-l*s; + var t1 = 2 * l - t2; + var h_ = h / 360; + t3[0] = h_ + 1/3; + t3[1] = h_; + t3[2] = h_ - 1/3; + for (var i=0; i<3; i++) { + if (t3[i] < 0) { t3[i] += 1; } + if (t3[i] > 1) { t3[i] -= 1; } + if (6 * t3[i] < 1) + { c[i] = t1 + (t2 - t1) * 6 * t3[i]; } + else if (2 * t3[i] < 1) + { c[i] = t2; } + else if (3 * t3[i] < 2) + { c[i] = t1 + (t2 - t1) * ((2 / 3) - t3[i]) * 6; } + else + { c[i] = t1; } + } + (assign = [round$1(c[0]*255),round$1(c[1]*255),round$1(c[2]*255)], r = assign[0], g = assign[1], b = assign[2]); + } + if (args.length > 3) { + // keep alpha channel + return [r,g,b,args[3]]; + } + return [r,g,b,1]; + }; + + var hsl2rgb_1 = hsl2rgb; + + var RE_RGB = /^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/; + var RE_RGBA = /^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/; + var RE_RGB_PCT = /^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/; + var RE_RGBA_PCT = /^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/; + var RE_HSL = /^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/; + var RE_HSLA = /^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/; + + var round$2 = Math.round; + + var css2rgb = function (css) { + css = css.toLowerCase().trim(); + var m; + + if (input.format.named) { + try { + return input.format.named(css); + } catch (e) { + // eslint-disable-next-line + } + } + + // rgb(250,20,0) + if ((m = css.match(RE_RGB))) { + var rgb = m.slice(1,4); + for (var i=0; i<3; i++) { + rgb[i] = +rgb[i]; + } + rgb[3] = 1; // default alpha + return rgb; + } + + // rgba(250,20,0,0.4) + if ((m = css.match(RE_RGBA))) { + var rgb$1 = m.slice(1,5); + for (var i$1=0; i$1<4; i$1++) { + rgb$1[i$1] = +rgb$1[i$1]; + } + return rgb$1; + } + + // rgb(100%,0%,0%) + if ((m = css.match(RE_RGB_PCT))) { + var rgb$2 = m.slice(1,4); + for (var i$2=0; i$2<3; i$2++) { + rgb$2[i$2] = round$2(rgb$2[i$2] * 2.55); + } + rgb$2[3] = 1; // default alpha + return rgb$2; + } + + // rgba(100%,0%,0%,0.4) + if ((m = css.match(RE_RGBA_PCT))) { + var rgb$3 = m.slice(1,5); + for (var i$3=0; i$3<3; i$3++) { + rgb$3[i$3] = round$2(rgb$3[i$3] * 2.55); + } + rgb$3[3] = +rgb$3[3]; + return rgb$3; + } + + // hsl(0,100%,50%) + if ((m = css.match(RE_HSL))) { + var hsl = m.slice(1,4); + hsl[1] *= 0.01; + hsl[2] *= 0.01; + var rgb$4 = hsl2rgb_1(hsl); + rgb$4[3] = 1; + return rgb$4; + } + + // hsla(0,100%,50%,0.5) + if ((m = css.match(RE_HSLA))) { + var hsl$1 = m.slice(1,4); + hsl$1[1] *= 0.01; + hsl$1[2] *= 0.01; + var rgb$5 = hsl2rgb_1(hsl$1); + rgb$5[3] = +m[4]; // default alpha = 1 + return rgb$5; + } + }; + + css2rgb.test = function (s) { + return RE_RGB.test(s) || + RE_RGBA.test(s) || + RE_RGB_PCT.test(s) || + RE_RGBA_PCT.test(s) || + RE_HSL.test(s) || + RE_HSLA.test(s); + }; + + var css2rgb_1 = css2rgb; + + var type$3 = utils.type; + + + + + Color_1.prototype.css = function(mode) { + return rgb2css_1(this._rgb, mode); + }; + + chroma_1.css = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['css']) )); + }; + + input.format.css = css2rgb_1; + + input.autodetect.push({ + p: 5, + test: function (h) { + var rest = [], len = arguments.length - 1; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ]; + + if (!rest.length && type$3(h) === 'string' && css2rgb_1.test(h)) { + return 'css'; + } + } + }); + + var unpack$8 = utils.unpack; + + input.format.gl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgb = unpack$8(args, 'rgba'); + rgb[0] *= 255; + rgb[1] *= 255; + rgb[2] *= 255; + return rgb; + }; + + chroma_1.gl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['gl']) )); + }; + + Color_1.prototype.gl = function() { + var rgb = this._rgb; + return [rgb[0]/255, rgb[1]/255, rgb[2]/255, rgb[3]]; + }; + + var unpack$9 = utils.unpack; + + var rgb2hcg = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$9(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var min = Math.min(r, g, b); + var max = Math.max(r, g, b); + var delta = max - min; + var c = delta * 100 / 255; + var _g = min / (255 - delta) * 100; + var h; + if (delta === 0) { + h = Number.NaN; + } else { + if (r === max) { h = (g - b) / delta; } + if (g === max) { h = 2+(b - r) / delta; } + if (b === max) { h = 4+(r - g) / delta; } + h *= 60; + if (h < 0) { h += 360; } + } + return [h, c, _g]; + }; + + var rgb2hcg_1 = rgb2hcg; + + var unpack$a = utils.unpack; + var floor = Math.floor; + + /* + * this is basically just HSV with some minor tweaks + * + * hue.. [0..360] + * chroma .. [0..1] + * grayness .. [0..1] + */ + + var hcg2rgb = function () { + var assign, assign$1, assign$2, assign$3, assign$4, assign$5; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + args = unpack$a(args, 'hcg'); + var h = args[0]; + var c = args[1]; + var _g = args[2]; + var r,g,b; + _g = _g * 255; + var _c = c * 255; + if (c === 0) { + r = g = b = _g; + } else { + if (h === 360) { h = 0; } + if (h > 360) { h -= 360; } + if (h < 0) { h += 360; } + h /= 60; + var i = floor(h); + var f = h - i; + var p = _g * (1 - c); + var q = p + _c * (1 - f); + var t = p + _c * f; + var v = p + _c; + switch (i) { + case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break + case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break + case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break + case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break + case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break + case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break + } + } + return [r, g, b, args.length > 3 ? args[3] : 1]; + }; + + var hcg2rgb_1 = hcg2rgb; + + var unpack$b = utils.unpack; + var type$4 = utils.type; + + + + + + + Color_1.prototype.hcg = function() { + return rgb2hcg_1(this._rgb); + }; + + chroma_1.hcg = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hcg']) )); + }; + + input.format.hcg = hcg2rgb_1; + + input.autodetect.push({ + p: 1, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$b(args, 'hcg'); + if (type$4(args) === 'array' && args.length === 3) { + return 'hcg'; + } + } + }); + + var unpack$c = utils.unpack; + var last$4 = utils.last; + var round$3 = Math.round; + + var rgb2hex = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$c(args, 'rgba'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var a = ref[3]; + var mode = last$4(args) || 'auto'; + if (a === undefined) { a = 1; } + if (mode === 'auto') { + mode = a < 1 ? 'rgba' : 'rgb'; + } + r = round$3(r); + g = round$3(g); + b = round$3(b); + var u = r << 16 | g << 8 | b; + var str = "000000" + u.toString(16); //#.toUpperCase(); + str = str.substr(str.length - 6); + var hxa = '0' + round$3(a * 255).toString(16); + hxa = hxa.substr(hxa.length - 2); + switch (mode.toLowerCase()) { + case 'rgba': return ("#" + str + hxa); + case 'argb': return ("#" + hxa + str); + default: return ("#" + str); + } + }; + + var rgb2hex_1 = rgb2hex; + + var RE_HEX = /^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/; + var RE_HEXA = /^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/; + + var hex2rgb = function (hex) { + if (hex.match(RE_HEX)) { + // remove optional leading # + if (hex.length === 4 || hex.length === 7) { + hex = hex.substr(1); + } + // expand short-notation to full six-digit + if (hex.length === 3) { + hex = hex.split(''); + hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]; + } + var u = parseInt(hex, 16); + var r = u >> 16; + var g = u >> 8 & 0xFF; + var b = u & 0xFF; + return [r,g,b,1]; + } + + // match rgba hex format, eg #FF000077 + if (hex.match(RE_HEXA)) { + if (hex.length === 5 || hex.length === 9) { + // remove optional leading # + hex = hex.substr(1); + } + // expand short-notation to full eight-digit + if (hex.length === 4) { + hex = hex.split(''); + hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]+hex[3]+hex[3]; + } + var u$1 = parseInt(hex, 16); + var r$1 = u$1 >> 24 & 0xFF; + var g$1 = u$1 >> 16 & 0xFF; + var b$1 = u$1 >> 8 & 0xFF; + var a = Math.round((u$1 & 0xFF) / 0xFF * 100) / 100; + return [r$1,g$1,b$1,a]; + } + + // we used to check for css colors here + // if _input.css? and rgb = _input.css hex + // return rgb + + throw new Error(("unknown hex color: " + hex)); + }; + + var hex2rgb_1 = hex2rgb; + + var type$5 = utils.type; + + + + + Color_1.prototype.hex = function(mode) { + return rgb2hex_1(this._rgb, mode); + }; + + chroma_1.hex = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hex']) )); + }; + + input.format.hex = hex2rgb_1; + input.autodetect.push({ + p: 4, + test: function (h) { + var rest = [], len = arguments.length - 1; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ]; + + if (!rest.length && type$5(h) === 'string' && [3,4,5,6,7,8,9].indexOf(h.length) >= 0) { + return 'hex'; + } + } + }); + + var unpack$d = utils.unpack; + var TWOPI = utils.TWOPI; + var min = Math.min; + var sqrt = Math.sqrt; + var acos = Math.acos; + + var rgb2hsi = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + /* + borrowed from here: + http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/rgb2hsi.cpp + */ + var ref = unpack$d(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + r /= 255; + g /= 255; + b /= 255; + var h; + var min_ = min(r,g,b); + var i = (r+g+b) / 3; + var s = i > 0 ? 1 - min_/i : 0; + if (s === 0) { + h = NaN; + } else { + h = ((r-g)+(r-b)) / 2; + h /= sqrt((r-g)*(r-g) + (r-b)*(g-b)); + h = acos(h); + if (b > g) { + h = TWOPI - h; + } + h /= TWOPI; + } + return [h*360,s,i]; + }; + + var rgb2hsi_1 = rgb2hsi; + + var unpack$e = utils.unpack; + var limit$1 = utils.limit; + var TWOPI$1 = utils.TWOPI; + var PITHIRD = utils.PITHIRD; + var cos = Math.cos; + + /* + * hue [0..360] + * saturation [0..1] + * intensity [0..1] + */ + var hsi2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + /* + borrowed from here: + http://hummer.stanford.edu/museinfo/doc/examples/humdrum/keyscape2/hsi2rgb.cpp + */ + args = unpack$e(args, 'hsi'); + var h = args[0]; + var s = args[1]; + var i = args[2]; + var r,g,b; + + if (isNaN(h)) { h = 0; } + if (isNaN(s)) { s = 0; } + // normalize hue + if (h > 360) { h -= 360; } + if (h < 0) { h += 360; } + h /= 360; + if (h < 1/3) { + b = (1-s)/3; + r = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3; + g = 1 - (b+r); + } else if (h < 2/3) { + h -= 1/3; + r = (1-s)/3; + g = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3; + b = 1 - (r+g); + } else { + h -= 2/3; + g = (1-s)/3; + b = (1+s*cos(TWOPI$1*h)/cos(PITHIRD-TWOPI$1*h))/3; + r = 1 - (g+b); + } + r = limit$1(i*r*3); + g = limit$1(i*g*3); + b = limit$1(i*b*3); + return [r*255, g*255, b*255, args.length > 3 ? args[3] : 1]; + }; + + var hsi2rgb_1 = hsi2rgb; + + var unpack$f = utils.unpack; + var type$6 = utils.type; + + + + + + + Color_1.prototype.hsi = function() { + return rgb2hsi_1(this._rgb); + }; + + chroma_1.hsi = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsi']) )); + }; + + input.format.hsi = hsi2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$f(args, 'hsi'); + if (type$6(args) === 'array' && args.length === 3) { + return 'hsi'; + } + } + }); + + var unpack$g = utils.unpack; + var type$7 = utils.type; + + + + + + + Color_1.prototype.hsl = function() { + return rgb2hsl_1(this._rgb); + }; + + chroma_1.hsl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsl']) )); + }; + + input.format.hsl = hsl2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$g(args, 'hsl'); + if (type$7(args) === 'array' && args.length === 3) { + return 'hsl'; + } + } + }); + + var unpack$h = utils.unpack; + var min$1 = Math.min; + var max$1 = Math.max; + + /* + * supported arguments: + * - rgb2hsv(r,g,b) + * - rgb2hsv([r,g,b]) + * - rgb2hsv({r,g,b}) + */ + var rgb2hsl$1 = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$h(args, 'rgb'); + var r = args[0]; + var g = args[1]; + var b = args[2]; + var min_ = min$1(r, g, b); + var max_ = max$1(r, g, b); + var delta = max_ - min_; + var h,s,v; + v = max_ / 255.0; + if (max_ === 0) { + h = Number.NaN; + s = 0; + } else { + s = delta / max_; + if (r === max_) { h = (g - b) / delta; } + if (g === max_) { h = 2+(b - r) / delta; } + if (b === max_) { h = 4+(r - g) / delta; } + h *= 60; + if (h < 0) { h += 360; } + } + return [h, s, v] + }; + + var rgb2hsv = rgb2hsl$1; + + var unpack$i = utils.unpack; + var floor$1 = Math.floor; + + var hsv2rgb = function () { + var assign, assign$1, assign$2, assign$3, assign$4, assign$5; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + args = unpack$i(args, 'hsv'); + var h = args[0]; + var s = args[1]; + var v = args[2]; + var r,g,b; + v *= 255; + if (s === 0) { + r = g = b = v; + } else { + if (h === 360) { h = 0; } + if (h > 360) { h -= 360; } + if (h < 0) { h += 360; } + h /= 60; + + var i = floor$1(h); + var f = h - i; + var p = v * (1 - s); + var q = v * (1 - s * f); + var t = v * (1 - s * (1 - f)); + + switch (i) { + case 0: (assign = [v, t, p], r = assign[0], g = assign[1], b = assign[2]); break + case 1: (assign$1 = [q, v, p], r = assign$1[0], g = assign$1[1], b = assign$1[2]); break + case 2: (assign$2 = [p, v, t], r = assign$2[0], g = assign$2[1], b = assign$2[2]); break + case 3: (assign$3 = [p, q, v], r = assign$3[0], g = assign$3[1], b = assign$3[2]); break + case 4: (assign$4 = [t, p, v], r = assign$4[0], g = assign$4[1], b = assign$4[2]); break + case 5: (assign$5 = [v, p, q], r = assign$5[0], g = assign$5[1], b = assign$5[2]); break + } + } + return [r,g,b,args.length > 3?args[3]:1]; + }; + + var hsv2rgb_1 = hsv2rgb; + + var unpack$j = utils.unpack; + var type$8 = utils.type; + + + + + + + Color_1.prototype.hsv = function() { + return rgb2hsv(this._rgb); + }; + + chroma_1.hsv = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hsv']) )); + }; + + input.format.hsv = hsv2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$j(args, 'hsv'); + if (type$8(args) === 'array' && args.length === 3) { + return 'hsv'; + } + } + }); + + var labConstants = { + // Corresponds roughly to RGB brighter/darker + Kn: 18, + + // D65 standard referent + Xn: 0.950470, + Yn: 1, + Zn: 1.088830, + + t0: 0.137931034, // 4 / 29 + t1: 0.206896552, // 6 / 29 + t2: 0.12841855, // 3 * t1 * t1 + t3: 0.008856452, // t1 * t1 * t1 + }; + + var unpack$k = utils.unpack; + var pow = Math.pow; + + var rgb2lab = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$k(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var ref$1 = rgb2xyz(r,g,b); + var x = ref$1[0]; + var y = ref$1[1]; + var z = ref$1[2]; + var l = 116 * y - 16; + return [l < 0 ? 0 : l, 500 * (x - y), 200 * (y - z)]; + }; + + var rgb_xyz = function (r) { + if ((r /= 255) <= 0.04045) { return r / 12.92; } + return pow((r + 0.055) / 1.055, 2.4); + }; + + var xyz_lab = function (t) { + if (t > labConstants.t3) { return pow(t, 1 / 3); } + return t / labConstants.t2 + labConstants.t0; + }; + + var rgb2xyz = function (r,g,b) { + r = rgb_xyz(r); + g = rgb_xyz(g); + b = rgb_xyz(b); + var x = xyz_lab((0.4124564 * r + 0.3575761 * g + 0.1804375 * b) / labConstants.Xn); + var y = xyz_lab((0.2126729 * r + 0.7151522 * g + 0.0721750 * b) / labConstants.Yn); + var z = xyz_lab((0.0193339 * r + 0.1191920 * g + 0.9503041 * b) / labConstants.Zn); + return [x,y,z]; + }; + + var rgb2lab_1 = rgb2lab; + + var unpack$l = utils.unpack; + var pow$1 = Math.pow; + + /* + * L* [0..100] + * a [-100..100] + * b [-100..100] + */ + var lab2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$l(args, 'lab'); + var l = args[0]; + var a = args[1]; + var b = args[2]; + var x,y,z, r,g,b_; + + y = (l + 16) / 116; + x = isNaN(a) ? y : y + a / 500; + z = isNaN(b) ? y : y - b / 200; + + y = labConstants.Yn * lab_xyz(y); + x = labConstants.Xn * lab_xyz(x); + z = labConstants.Zn * lab_xyz(z); + + r = xyz_rgb(3.2404542 * x - 1.5371385 * y - 0.4985314 * z); // D65 -> sRGB + g = xyz_rgb(-0.9692660 * x + 1.8760108 * y + 0.0415560 * z); + b_ = xyz_rgb(0.0556434 * x - 0.2040259 * y + 1.0572252 * z); + + return [r,g,b_,args.length > 3 ? args[3] : 1]; + }; + + var xyz_rgb = function (r) { + return 255 * (r <= 0.00304 ? 12.92 * r : 1.055 * pow$1(r, 1 / 2.4) - 0.055) + }; + + var lab_xyz = function (t) { + return t > labConstants.t1 ? t * t * t : labConstants.t2 * (t - labConstants.t0) + }; + + var lab2rgb_1 = lab2rgb; + + var unpack$m = utils.unpack; + var type$9 = utils.type; + + + + + + + Color_1.prototype.lab = function() { + return rgb2lab_1(this._rgb); + }; + + chroma_1.lab = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['lab']) )); + }; + + input.format.lab = lab2rgb_1; + + input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$m(args, 'lab'); + if (type$9(args) === 'array' && args.length === 3) { + return 'lab'; + } + } + }); + + var unpack$n = utils.unpack; + var RAD2DEG = utils.RAD2DEG; + var sqrt$1 = Math.sqrt; + var atan2 = Math.atan2; + var round$4 = Math.round; + + var lab2lch = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$n(args, 'lab'); + var l = ref[0]; + var a = ref[1]; + var b = ref[2]; + var c = sqrt$1(a * a + b * b); + var h = (atan2(b, a) * RAD2DEG + 360) % 360; + if (round$4(c*10000) === 0) { h = Number.NaN; } + return [l, c, h]; + }; + + var lab2lch_1 = lab2lch; + + var unpack$o = utils.unpack; + + + + var rgb2lch = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$o(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + var ref$1 = rgb2lab_1(r,g,b); + var l = ref$1[0]; + var a = ref$1[1]; + var b_ = ref$1[2]; + return lab2lch_1(l,a,b_); + }; + + var rgb2lch_1 = rgb2lch; + + var unpack$p = utils.unpack; + var DEG2RAD = utils.DEG2RAD; + var sin = Math.sin; + var cos$1 = Math.cos; + + var lch2lab = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + /* + Convert from a qualitative parameter h and a quantitative parameter l to a 24-bit pixel. + These formulas were invented by David Dalrymple to obtain maximum contrast without going + out of gamut if the parameters are in the range 0-1. + + A saturation multiplier was added by Gregor Aisch + */ + var ref = unpack$p(args, 'lch'); + var l = ref[0]; + var c = ref[1]; + var h = ref[2]; + if (isNaN(h)) { h = 0; } + h = h * DEG2RAD; + return [l, cos$1(h) * c, sin(h) * c] + }; + + var lch2lab_1 = lch2lab; + + var unpack$q = utils.unpack; + + + + var lch2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$q(args, 'lch'); + var l = args[0]; + var c = args[1]; + var h = args[2]; + var ref = lch2lab_1 (l,c,h); + var L = ref[0]; + var a = ref[1]; + var b_ = ref[2]; + var ref$1 = lab2rgb_1 (L,a,b_); + var r = ref$1[0]; + var g = ref$1[1]; + var b = ref$1[2]; + return [r, g, b, args.length > 3 ? args[3] : 1]; + }; + + var lch2rgb_1 = lch2rgb; + + var unpack$r = utils.unpack; + + + var hcl2rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var hcl = unpack$r(args, 'hcl').reverse(); + return lch2rgb_1.apply(void 0, hcl); + }; + + var hcl2rgb_1 = hcl2rgb; + + var unpack$s = utils.unpack; + var type$a = utils.type; + + + + + + + Color_1.prototype.lch = function() { return rgb2lch_1(this._rgb); }; + Color_1.prototype.hcl = function() { return rgb2lch_1(this._rgb).reverse(); }; + + chroma_1.lch = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['lch']) )); + }; + chroma_1.hcl = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['hcl']) )); + }; + + input.format.lch = lch2rgb_1; + input.format.hcl = hcl2rgb_1; + + ['lch','hcl'].forEach(function (m) { return input.autodetect.push({ + p: 2, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$s(args, m); + if (type$a(args) === 'array' && args.length === 3) { + return m; + } + } + }); }); + + /** + X11 color names + + http://www.w3.org/TR/css3-color/#svg-color + */ + + var w3cx11 = { + aliceblue: '#f0f8ff', + antiquewhite: '#faebd7', + aqua: '#00ffff', + aquamarine: '#7fffd4', + azure: '#f0ffff', + beige: '#f5f5dc', + bisque: '#ffe4c4', + black: '#000000', + blanchedalmond: '#ffebcd', + blue: '#0000ff', + blueviolet: '#8a2be2', + brown: '#a52a2a', + burlywood: '#deb887', + cadetblue: '#5f9ea0', + chartreuse: '#7fff00', + chocolate: '#d2691e', + coral: '#ff7f50', + cornflower: '#6495ed', + cornflowerblue: '#6495ed', + cornsilk: '#fff8dc', + crimson: '#dc143c', + cyan: '#00ffff', + darkblue: '#00008b', + darkcyan: '#008b8b', + darkgoldenrod: '#b8860b', + darkgray: '#a9a9a9', + darkgreen: '#006400', + darkgrey: '#a9a9a9', + darkkhaki: '#bdb76b', + darkmagenta: '#8b008b', + darkolivegreen: '#556b2f', + darkorange: '#ff8c00', + darkorchid: '#9932cc', + darkred: '#8b0000', + darksalmon: '#e9967a', + darkseagreen: '#8fbc8f', + darkslateblue: '#483d8b', + darkslategray: '#2f4f4f', + darkslategrey: '#2f4f4f', + darkturquoise: '#00ced1', + darkviolet: '#9400d3', + deeppink: '#ff1493', + deepskyblue: '#00bfff', + dimgray: '#696969', + dimgrey: '#696969', + dodgerblue: '#1e90ff', + firebrick: '#b22222', + floralwhite: '#fffaf0', + forestgreen: '#228b22', + fuchsia: '#ff00ff', + gainsboro: '#dcdcdc', + ghostwhite: '#f8f8ff', + gold: '#ffd700', + goldenrod: '#daa520', + gray: '#808080', + green: '#008000', + greenyellow: '#adff2f', + grey: '#808080', + honeydew: '#f0fff0', + hotpink: '#ff69b4', + indianred: '#cd5c5c', + indigo: '#4b0082', + ivory: '#fffff0', + khaki: '#f0e68c', + laserlemon: '#ffff54', + lavender: '#e6e6fa', + lavenderblush: '#fff0f5', + lawngreen: '#7cfc00', + lemonchiffon: '#fffacd', + lightblue: '#add8e6', + lightcoral: '#f08080', + lightcyan: '#e0ffff', + lightgoldenrod: '#fafad2', + lightgoldenrodyellow: '#fafad2', + lightgray: '#d3d3d3', + lightgreen: '#90ee90', + lightgrey: '#d3d3d3', + lightpink: '#ffb6c1', + lightsalmon: '#ffa07a', + lightseagreen: '#20b2aa', + lightskyblue: '#87cefa', + lightslategray: '#778899', + lightslategrey: '#778899', + lightsteelblue: '#b0c4de', + lightyellow: '#ffffe0', + lime: '#00ff00', + limegreen: '#32cd32', + linen: '#faf0e6', + magenta: '#ff00ff', + maroon: '#800000', + maroon2: '#7f0000', + maroon3: '#b03060', + mediumaquamarine: '#66cdaa', + mediumblue: '#0000cd', + mediumorchid: '#ba55d3', + mediumpurple: '#9370db', + mediumseagreen: '#3cb371', + mediumslateblue: '#7b68ee', + mediumspringgreen: '#00fa9a', + mediumturquoise: '#48d1cc', + mediumvioletred: '#c71585', + midnightblue: '#191970', + mintcream: '#f5fffa', + mistyrose: '#ffe4e1', + moccasin: '#ffe4b5', + navajowhite: '#ffdead', + navy: '#000080', + oldlace: '#fdf5e6', + olive: '#808000', + olivedrab: '#6b8e23', + orange: '#ffa500', + orangered: '#ff4500', + orchid: '#da70d6', + palegoldenrod: '#eee8aa', + palegreen: '#98fb98', + paleturquoise: '#afeeee', + palevioletred: '#db7093', + papayawhip: '#ffefd5', + peachpuff: '#ffdab9', + peru: '#cd853f', + pink: '#ffc0cb', + plum: '#dda0dd', + powderblue: '#b0e0e6', + purple: '#800080', + purple2: '#7f007f', + purple3: '#a020f0', + rebeccapurple: '#663399', + red: '#ff0000', + rosybrown: '#bc8f8f', + royalblue: '#4169e1', + saddlebrown: '#8b4513', + salmon: '#fa8072', + sandybrown: '#f4a460', + seagreen: '#2e8b57', + seashell: '#fff5ee', + sienna: '#a0522d', + silver: '#c0c0c0', + skyblue: '#87ceeb', + slateblue: '#6a5acd', + slategray: '#708090', + slategrey: '#708090', + snow: '#fffafa', + springgreen: '#00ff7f', + steelblue: '#4682b4', + tan: '#d2b48c', + teal: '#008080', + thistle: '#d8bfd8', + tomato: '#ff6347', + turquoise: '#40e0d0', + violet: '#ee82ee', + wheat: '#f5deb3', + white: '#ffffff', + whitesmoke: '#f5f5f5', + yellow: '#ffff00', + yellowgreen: '#9acd32' + }; + + var w3cx11_1 = w3cx11; + + var type$b = utils.type; + + + + + + Color_1.prototype.name = function() { + var hex = rgb2hex_1(this._rgb, 'rgb'); + for (var i = 0, list = Object.keys(w3cx11_1); i < list.length; i += 1) { + var n = list[i]; + + if (w3cx11_1[n] === hex) { return n.toLowerCase(); } + } + return hex; + }; + + input.format.named = function (name) { + name = name.toLowerCase(); + if (w3cx11_1[name]) { return hex2rgb_1(w3cx11_1[name]); } + throw new Error('unknown color name: '+name); + }; + + input.autodetect.push({ + p: 5, + test: function (h) { + var rest = [], len = arguments.length - 1; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 1 ]; + + if (!rest.length && type$b(h) === 'string' && w3cx11_1[h.toLowerCase()]) { + return 'named'; + } + } + }); + + var unpack$t = utils.unpack; + + var rgb2num = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var ref = unpack$t(args, 'rgb'); + var r = ref[0]; + var g = ref[1]; + var b = ref[2]; + return (r << 16) + (g << 8) + b; + }; + + var rgb2num_1 = rgb2num; + + var type$c = utils.type; + + var num2rgb = function (num) { + if (type$c(num) == "number" && num >= 0 && num <= 0xFFFFFF) { + var r = num >> 16; + var g = (num >> 8) & 0xFF; + var b = num & 0xFF; + return [r,g,b,1]; + } + throw new Error("unknown num color: "+num); + }; + + var num2rgb_1 = num2rgb; + + var type$d = utils.type; + + + + Color_1.prototype.num = function() { + return rgb2num_1(this._rgb); + }; + + chroma_1.num = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['num']) )); + }; + + input.format.num = num2rgb_1; + + input.autodetect.push({ + p: 5, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + if (args.length === 1 && type$d(args[0]) === 'number' && args[0] >= 0 && args[0] <= 0xFFFFFF) { + return 'num'; + } + } + }); + + var unpack$u = utils.unpack; + var type$e = utils.type; + var round$5 = Math.round; + + Color_1.prototype.rgb = function(rnd) { + if ( rnd === void 0 ) rnd=true; + + if (rnd === false) { return this._rgb.slice(0,3); } + return this._rgb.slice(0,3).map(round$5); + }; + + Color_1.prototype.rgba = function(rnd) { + if ( rnd === void 0 ) rnd=true; + + return this._rgb.slice(0,4).map(function (v,i) { + return i<3 ? (rnd === false ? v : round$5(v)) : v; + }); + }; + + chroma_1.rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['rgb']) )); + }; + + input.format.rgb = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgba = unpack$u(args, 'rgba'); + if (rgba[3] === undefined) { rgba[3] = 1; } + return rgba; + }; + + input.autodetect.push({ + p: 3, + test: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + args = unpack$u(args, 'rgba'); + if (type$e(args) === 'array' && (args.length === 3 || + args.length === 4 && type$e(args[3]) == 'number' && args[3] >= 0 && args[3] <= 1)) { + return 'rgb'; + } + } + }); + + /* + * Based on implementation by Neil Bartlett + * https://github.com/neilbartlett/color-temperature + */ + + var log = Math.log; + + var temperature2rgb = function (kelvin) { + var temp = kelvin / 100; + var r,g,b; + if (temp < 66) { + r = 255; + g = -155.25485562709179 - 0.44596950469579133 * (g = temp-2) + 104.49216199393888 * log(g); + b = temp < 20 ? 0 : -254.76935184120902 + 0.8274096064007395 * (b = temp-10) + 115.67994401066147 * log(b); + } else { + r = 351.97690566805693 + 0.114206453784165 * (r = temp-55) - 40.25366309332127 * log(r); + g = 325.4494125711974 + 0.07943456536662342 * (g = temp-50) - 28.0852963507957 * log(g); + b = 255; + } + return [r,g,b,1]; + }; + + var temperature2rgb_1 = temperature2rgb; + + /* + * Based on implementation by Neil Bartlett + * https://github.com/neilbartlett/color-temperature + **/ + + + var unpack$v = utils.unpack; + var round$6 = Math.round; + + var rgb2temperature = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var rgb = unpack$v(args, 'rgb'); + var r = rgb[0], b = rgb[2]; + var minTemp = 1000; + var maxTemp = 40000; + var eps = 0.4; + var temp; + while (maxTemp - minTemp > eps) { + temp = (maxTemp + minTemp) * 0.5; + var rgb$1 = temperature2rgb_1(temp); + if ((rgb$1[2] / rgb$1[0]) >= (b / r)) { + maxTemp = temp; + } else { + minTemp = temp; + } + } + return round$6(temp); + }; + + var rgb2temperature_1 = rgb2temperature; + + Color_1.prototype.temp = + Color_1.prototype.kelvin = + Color_1.prototype.temperature = function() { + return rgb2temperature_1(this._rgb); + }; + + chroma_1.temp = + chroma_1.kelvin = + chroma_1.temperature = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( Color_1, [ null ].concat( args, ['temp']) )); + }; + + input.format.temp = + input.format.kelvin = + input.format.temperature = temperature2rgb_1; + + var type$f = utils.type; + + Color_1.prototype.alpha = function(a, mutate) { + if ( mutate === void 0 ) mutate=false; + + if (a !== undefined && type$f(a) === 'number') { + if (mutate) { + this._rgb[3] = a; + return this; + } + return new Color_1([this._rgb[0], this._rgb[1], this._rgb[2], a], 'rgb'); + } + return this._rgb[3]; + }; + + Color_1.prototype.clipped = function() { + return this._rgb._clipped || false; + }; + + Color_1.prototype.darken = function(amount) { + if ( amount === void 0 ) amount=1; + + var me = this; + var lab = me.lab(); + lab[0] -= labConstants.Kn * amount; + return new Color_1(lab, 'lab').alpha(me.alpha(), true); + }; + + Color_1.prototype.brighten = function(amount) { + if ( amount === void 0 ) amount=1; + + return this.darken(-amount); + }; + + Color_1.prototype.darker = Color_1.prototype.darken; + Color_1.prototype.brighter = Color_1.prototype.brighten; + + Color_1.prototype.get = function(mc) { + var ref = mc.split('.'); + var mode = ref[0]; + var channel = ref[1]; + var src = this[mode](); + if (channel) { + var i = mode.indexOf(channel); + if (i > -1) { return src[i]; } + throw new Error(("unknown channel " + channel + " in mode " + mode)); + } else { + return src; + } + }; + + var type$g = utils.type; + var pow$2 = Math.pow; + + var EPS = 1e-7; + var MAX_ITER = 20; + + Color_1.prototype.luminance = function(lum) { + if (lum !== undefined && type$g(lum) === 'number') { + if (lum === 0) { + // return pure black + return new Color_1([0,0,0,this._rgb[3]], 'rgb'); + } + if (lum === 1) { + // return pure white + return new Color_1([255,255,255,this._rgb[3]], 'rgb'); + } + // compute new color using... + var cur_lum = this.luminance(); + var mode = 'rgb'; + var max_iter = MAX_ITER; + + var test = function (low, high) { + var mid = low.interpolate(high, 0.5, mode); + var lm = mid.luminance(); + if (Math.abs(lum - lm) < EPS || !max_iter--) { + // close enough + return mid; + } + return lm > lum ? test(low, mid) : test(mid, high); + }; + + var rgb = (cur_lum > lum ? test(new Color_1([0,0,0]), this) : test(this, new Color_1([255,255,255]))).rgb(); + return new Color_1(rgb.concat( [this._rgb[3]])); + } + return rgb2luminance.apply(void 0, (this._rgb).slice(0,3)); + }; + + + var rgb2luminance = function (r,g,b) { + // relative luminance + // see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef + r = luminance_x(r); + g = luminance_x(g); + b = luminance_x(b); + return 0.2126 * r + 0.7152 * g + 0.0722 * b; + }; + + var luminance_x = function (x) { + x /= 255; + return x <= 0.03928 ? x/12.92 : pow$2((x+0.055)/1.055, 2.4); + }; + + var interpolator = {}; + + var type$h = utils.type; + + + var mix = function (col1, col2, f) { + if ( f === void 0 ) f=0.5; + var rest = [], len = arguments.length - 3; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 3 ]; + + var mode = rest[0] || 'lrgb'; + if (!interpolator[mode] && !rest.length) { + // fall back to the first supported mode + mode = Object.keys(interpolator)[0]; + } + if (!interpolator[mode]) { + throw new Error(("interpolation mode " + mode + " is not defined")); + } + if (type$h(col1) !== 'object') { col1 = new Color_1(col1); } + if (type$h(col2) !== 'object') { col2 = new Color_1(col2); } + return interpolator[mode](col1, col2, f) + .alpha(col1.alpha() + f * (col2.alpha() - col1.alpha())); + }; + + Color_1.prototype.mix = + Color_1.prototype.interpolate = function(col2, f) { + if ( f === void 0 ) f=0.5; + var rest = [], len = arguments.length - 2; + while ( len-- > 0 ) rest[ len ] = arguments[ len + 2 ]; + + return mix.apply(void 0, [ this, col2, f ].concat( rest )); + }; + + Color_1.prototype.premultiply = function(mutate) { + if ( mutate === void 0 ) mutate=false; + + var rgb = this._rgb; + var a = rgb[3]; + if (mutate) { + this._rgb = [rgb[0]*a, rgb[1]*a, rgb[2]*a, a]; + return this; + } else { + return new Color_1([rgb[0]*a, rgb[1]*a, rgb[2]*a, a], 'rgb'); + } + }; + + Color_1.prototype.saturate = function(amount) { + if ( amount === void 0 ) amount=1; + + var me = this; + var lch = me.lch(); + lch[1] += labConstants.Kn * amount; + if (lch[1] < 0) { lch[1] = 0; } + return new Color_1(lch, 'lch').alpha(me.alpha(), true); + }; + + Color_1.prototype.desaturate = function(amount) { + if ( amount === void 0 ) amount=1; + + return this.saturate(-amount); + }; + + var type$i = utils.type; + + Color_1.prototype.set = function(mc, value, mutate) { + if ( mutate === void 0 ) mutate=false; + + var ref = mc.split('.'); + var mode = ref[0]; + var channel = ref[1]; + var src = this[mode](); + if (channel) { + var i = mode.indexOf(channel); + if (i > -1) { + if (type$i(value) == 'string') { + switch(value.charAt(0)) { + case '+': src[i] += +value; break; + case '-': src[i] += +value; break; + case '*': src[i] *= +(value.substr(1)); break; + case '/': src[i] /= +(value.substr(1)); break; + default: src[i] = +value; + } + } else if (type$i(value) === 'number') { + src[i] = value; + } else { + throw new Error("unsupported value for Color.set"); + } + var out = new Color_1(src, mode); + if (mutate) { + this._rgb = out._rgb; + return this; + } + return out; + } + throw new Error(("unknown channel " + channel + " in mode " + mode)); + } else { + return src; + } + }; + + var rgb$1 = function (col1, col2, f) { + var xyz0 = col1._rgb; + var xyz1 = col2._rgb; + return new Color_1( + xyz0[0] + f * (xyz1[0]-xyz0[0]), + xyz0[1] + f * (xyz1[1]-xyz0[1]), + xyz0[2] + f * (xyz1[2]-xyz0[2]), + 'rgb' + ) + }; + + // register interpolator + interpolator.rgb = rgb$1; + + var sqrt$2 = Math.sqrt; + var pow$3 = Math.pow; + + var lrgb = function (col1, col2, f) { + var ref = col1._rgb; + var x1 = ref[0]; + var y1 = ref[1]; + var z1 = ref[2]; + var ref$1 = col2._rgb; + var x2 = ref$1[0]; + var y2 = ref$1[1]; + var z2 = ref$1[2]; + return new Color_1( + sqrt$2(pow$3(x1,2) * (1-f) + pow$3(x2,2) * f), + sqrt$2(pow$3(y1,2) * (1-f) + pow$3(y2,2) * f), + sqrt$2(pow$3(z1,2) * (1-f) + pow$3(z2,2) * f), + 'rgb' + ) + }; + + // register interpolator + interpolator.lrgb = lrgb; + + var lab$1 = function (col1, col2, f) { + var xyz0 = col1.lab(); + var xyz1 = col2.lab(); + return new Color_1( + xyz0[0] + f * (xyz1[0]-xyz0[0]), + xyz0[1] + f * (xyz1[1]-xyz0[1]), + xyz0[2] + f * (xyz1[2]-xyz0[2]), + 'lab' + ) + }; + + // register interpolator + interpolator.lab = lab$1; + + var _hsx = function (col1, col2, f, m) { + var assign, assign$1; + + var xyz0, xyz1; + if (m === 'hsl') { + xyz0 = col1.hsl(); + xyz1 = col2.hsl(); + } else if (m === 'hsv') { + xyz0 = col1.hsv(); + xyz1 = col2.hsv(); + } else if (m === 'hcg') { + xyz0 = col1.hcg(); + xyz1 = col2.hcg(); + } else if (m === 'hsi') { + xyz0 = col1.hsi(); + xyz1 = col2.hsi(); + } else if (m === 'lch' || m === 'hcl') { + m = 'hcl'; + xyz0 = col1.hcl(); + xyz1 = col2.hcl(); + } + + var hue0, hue1, sat0, sat1, lbv0, lbv1; + if (m.substr(0, 1) === 'h') { + (assign = xyz0, hue0 = assign[0], sat0 = assign[1], lbv0 = assign[2]); + (assign$1 = xyz1, hue1 = assign$1[0], sat1 = assign$1[1], lbv1 = assign$1[2]); + } + + var sat, hue, lbv, dh; + + if (!isNaN(hue0) && !isNaN(hue1)) { + // both colors have hue + if (hue1 > hue0 && hue1 - hue0 > 180) { + dh = hue1-(hue0+360); + } else if (hue1 < hue0 && hue0 - hue1 > 180) { + dh = hue1+360-hue0; + } else { + dh = hue1 - hue0; + } + hue = hue0 + f * dh; + } else if (!isNaN(hue0)) { + hue = hue0; + if ((lbv1 == 1 || lbv1 == 0) && m != 'hsv') { sat = sat0; } + } else if (!isNaN(hue1)) { + hue = hue1; + if ((lbv0 == 1 || lbv0 == 0) && m != 'hsv') { sat = sat1; } + } else { + hue = Number.NaN; + } + + if (sat === undefined) { sat = sat0 + f * (sat1 - sat0); } + lbv = lbv0 + f * (lbv1-lbv0); + return new Color_1([hue, sat, lbv], m); + }; + + var lch$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'lch'); + }; + + // register interpolator + interpolator.lch = lch$1; + interpolator.hcl = lch$1; + + var num$1 = function (col1, col2, f) { + var c1 = col1.num(); + var c2 = col2.num(); + return new Color_1(c1 + f * (c2-c1), 'num') + }; + + // register interpolator + interpolator.num = num$1; + + var hcg$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hcg'); + }; + + // register interpolator + interpolator.hcg = hcg$1; + + var hsi$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hsi'); + }; + + // register interpolator + interpolator.hsi = hsi$1; + + var hsl$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hsl'); + }; + + // register interpolator + interpolator.hsl = hsl$1; + + var hsv$1 = function (col1, col2, f) { + return _hsx(col1, col2, f, 'hsv'); + }; + + // register interpolator + interpolator.hsv = hsv$1; + + var clip_rgb$2 = utils.clip_rgb; + var pow$4 = Math.pow; + var sqrt$3 = Math.sqrt; + var PI$1 = Math.PI; + var cos$2 = Math.cos; + var sin$1 = Math.sin; + var atan2$1 = Math.atan2; + + var average = function (colors, mode, weights) { + if ( mode === void 0 ) mode='lrgb'; + if ( weights === void 0 ) weights=null; + + var l = colors.length; + if (!weights) { weights = Array.from(new Array(l)).map(function () { return 1; }); } + // normalize weights + var k = l / weights.reduce(function(a, b) { return a + b; }); + weights.forEach(function (w,i) { weights[i] *= k; }); + // convert colors to Color objects + colors = colors.map(function (c) { return new Color_1(c); }); + if (mode === 'lrgb') { + return _average_lrgb(colors, weights) + } + var first = colors.shift(); + var xyz = first.get(mode); + var cnt = []; + var dx = 0; + var dy = 0; + // initial color + for (var i=0; i= 360) { A$1 -= 360; } + xyz[i$1] = A$1; + } else { + xyz[i$1] = xyz[i$1]/cnt[i$1]; + } + } + alpha /= l; + return (new Color_1(xyz, mode)).alpha(alpha > 0.99999 ? 1 : alpha, true); + }; + + + var _average_lrgb = function (colors, weights) { + var l = colors.length; + var xyz = [0,0,0,0]; + for (var i=0; i < colors.length; i++) { + var col = colors[i]; + var f = weights[i] / l; + var rgb = col._rgb; + xyz[0] += pow$4(rgb[0],2) * f; + xyz[1] += pow$4(rgb[1],2) * f; + xyz[2] += pow$4(rgb[2],2) * f; + xyz[3] += rgb[3] * f; + } + xyz[0] = sqrt$3(xyz[0]); + xyz[1] = sqrt$3(xyz[1]); + xyz[2] = sqrt$3(xyz[2]); + if (xyz[3] > 0.9999999) { xyz[3] = 1; } + return new Color_1(clip_rgb$2(xyz)); + }; + + // minimal multi-purpose interface + + // @requires utils color analyze + + + var type$j = utils.type; + + var pow$5 = Math.pow; + + var scale = function(colors) { + + // constructor + var _mode = 'rgb'; + var _nacol = chroma_1('#ccc'); + var _spread = 0; + // const _fixed = false; + var _domain = [0, 1]; + var _pos = []; + var _padding = [0,0]; + var _classes = false; + var _colors = []; + var _out = false; + var _min = 0; + var _max = 1; + var _correctLightness = false; + var _colorCache = {}; + var _useCache = true; + var _gamma = 1; + + // private methods + + var setColors = function(colors) { + colors = colors || ['#fff', '#000']; + if (colors && type$j(colors) === 'string' && chroma_1.brewer && + chroma_1.brewer[colors.toLowerCase()]) { + colors = chroma_1.brewer[colors.toLowerCase()]; + } + if (type$j(colors) === 'array') { + // handle single color + if (colors.length === 1) { + colors = [colors[0], colors[0]]; + } + // make a copy of the colors + colors = colors.slice(0); + // convert to chroma classes + for (var c=0; c= _classes[i]) { + i++; + } + return i-1; + } + return 0; + }; + + var tMapLightness = function (t) { return t; }; + var tMapDomain = function (t) { return t; }; + + // const classifyValue = function(value) { + // let val = value; + // if (_classes.length > 2) { + // const n = _classes.length-1; + // const i = getClass(value); + // const minc = _classes[0] + ((_classes[1]-_classes[0]) * (0 + (_spread * 0.5))); // center of 1st class + // const maxc = _classes[n-1] + ((_classes[n]-_classes[n-1]) * (1 - (_spread * 0.5))); // center of last class + // val = _min + ((((_classes[i] + ((_classes[i+1] - _classes[i]) * 0.5)) - minc) / (maxc-minc)) * (_max - _min)); + // } + // return val; + // }; + + var getColor = function(val, bypassMap) { + var col, t; + if (bypassMap == null) { bypassMap = false; } + if (isNaN(val) || (val === null)) { return _nacol; } + if (!bypassMap) { + if (_classes && (_classes.length > 2)) { + // find the class + var c = getClass(val); + t = c / (_classes.length-2); + } else if (_max !== _min) { + // just interpolate between min/max + t = (val - _min) / (_max - _min); + } else { + t = 1; + } + } else { + t = val; + } + + // domain map + t = tMapDomain(t); + + if (!bypassMap) { + t = tMapLightness(t); // lightness correction + } + + if (_gamma !== 1) { t = pow$5(t, _gamma); } + + t = _padding[0] + (t * (1 - _padding[0] - _padding[1])); + + t = Math.min(1, Math.max(0, t)); + + var k = Math.floor(t * 10000); + + if (_useCache && _colorCache[k]) { + col = _colorCache[k]; + } else { + if (type$j(_colors) === 'array') { + //for i in [0.._pos.length-1] + for (var i=0; i<_pos.length; i++) { + var p = _pos[i]; + if (t <= p) { + col = _colors[i]; + break; + } + if ((t >= p) && (i === (_pos.length-1))) { + col = _colors[i]; + break; + } + if (t > p && t < _pos[i+1]) { + t = (t-p)/(_pos[i+1]-p); + col = chroma_1.interpolate(_colors[i], _colors[i+1], t, _mode); + break; + } + } + } else if (type$j(_colors) === 'function') { + col = _colors(t); + } + if (_useCache) { _colorCache[k] = col; } + } + return col; + }; + + var resetCache = function () { return _colorCache = {}; }; + + setColors(colors); + + // public interface + + var f = function(v) { + var c = chroma_1(getColor(v)); + if (_out && c[_out]) { return c[_out](); } else { return c; } + }; + + f.classes = function(classes) { + if (classes != null) { + if (type$j(classes) === 'array') { + _classes = classes; + _domain = [classes[0], classes[classes.length-1]]; + } else { + var d = chroma_1.analyze(_domain); + if (classes === 0) { + _classes = [d.min, d.max]; + } else { + _classes = chroma_1.limits(d, 'e', classes); + } + } + return f; + } + return _classes; + }; + + + f.domain = function(domain) { + if (!arguments.length) { + return _domain; + } + _min = domain[0]; + _max = domain[domain.length-1]; + _pos = []; + var k = _colors.length; + if ((domain.length === k) && (_min !== _max)) { + // update positions + for (var i = 0, list = Array.from(domain); i < list.length; i += 1) { + var d = list[i]; + + _pos.push((d-_min) / (_max-_min)); + } + } else { + for (var c=0; c 2) { + // set domain map + var tOut = domain.map(function (d,i) { return i/(domain.length-1); }); + var tBreaks = domain.map(function (d) { return (d - _min) / (_max - _min); }); + if (!tBreaks.every(function (val, i) { return tOut[i] === val; })) { + tMapDomain = function (t) { + if (t <= 0 || t >= 1) { return t; } + var i = 0; + while (t >= tBreaks[i+1]) { i++; } + var f = (t - tBreaks[i]) / (tBreaks[i+1] - tBreaks[i]); + var out = tOut[i] + f * (tOut[i+1] - tOut[i]); + return out; + }; + } + + } + } + _domain = [_min, _max]; + return f; + }; + + f.mode = function(_m) { + if (!arguments.length) { + return _mode; + } + _mode = _m; + resetCache(); + return f; + }; + + f.range = function(colors, _pos) { + setColors(colors); + return f; + }; + + f.out = function(_o) { + _out = _o; + return f; + }; + + f.spread = function(val) { + if (!arguments.length) { + return _spread; + } + _spread = val; + return f; + }; + + f.correctLightness = function(v) { + if (v == null) { v = true; } + _correctLightness = v; + resetCache(); + if (_correctLightness) { + tMapLightness = function(t) { + var L0 = getColor(0, true).lab()[0]; + var L1 = getColor(1, true).lab()[0]; + var pol = L0 > L1; + var L_actual = getColor(t, true).lab()[0]; + var L_ideal = L0 + ((L1 - L0) * t); + var L_diff = L_actual - L_ideal; + var t0 = 0; + var t1 = 1; + var max_iter = 20; + while ((Math.abs(L_diff) > 1e-2) && (max_iter-- > 0)) { + (function() { + if (pol) { L_diff *= -1; } + if (L_diff < 0) { + t0 = t; + t += (t1 - t) * 0.5; + } else { + t1 = t; + t += (t0 - t) * 0.5; + } + L_actual = getColor(t, true).lab()[0]; + return L_diff = L_actual - L_ideal; + })(); + } + return t; + }; + } else { + tMapLightness = function (t) { return t; }; + } + return f; + }; + + f.padding = function(p) { + if (p != null) { + if (type$j(p) === 'number') { + p = [p,p]; + } + _padding = p; + return f; + } else { + return _padding; + } + }; + + f.colors = function(numColors, out) { + // If no arguments are given, return the original colors that were provided + if (arguments.length < 2) { out = 'hex'; } + var result = []; + + if (arguments.length === 0) { + result = _colors.slice(0); + + } else if (numColors === 1) { + result = [f(0.5)]; + + } else if (numColors > 1) { + var dm = _domain[0]; + var dd = _domain[1] - dm; + result = __range__(0, numColors, false).map(function (i) { return f( dm + ((i/(numColors-1)) * dd) ); }); + + } else { // returns all colors based on the defined classes + colors = []; + var samples = []; + if (_classes && (_classes.length > 2)) { + for (var i = 1, end = _classes.length, asc = 1 <= end; asc ? i < end : i > end; asc ? i++ : i--) { + samples.push((_classes[i-1]+_classes[i])*0.5); + } + } else { + samples = _domain; + } + result = samples.map(function (v) { return f(v); }); + } + + if (chroma_1[out]) { + result = result.map(function (c) { return c[out](); }); + } + return result; + }; + + f.cache = function(c) { + if (c != null) { + _useCache = c; + return f; + } else { + return _useCache; + } + }; + + f.gamma = function(g) { + if (g != null) { + _gamma = g; + return f; + } else { + return _gamma; + } + }; + + f.nodata = function(d) { + if (d != null) { + _nacol = chroma_1(d); + return f; + } else { + return _nacol; + } + }; + + return f; + }; + + function __range__(left, right, inclusive) { + var range = []; + var ascending = left < right; + var end = !inclusive ? right : ascending ? right + 1 : right - 1; + for (var i = left; ascending ? i < end : i > end; ascending ? i++ : i--) { + range.push(i); + } + return range; + } + + // + // interpolates between a set of colors uzing a bezier spline + // + + // @requires utils lab + + + + + var bezier = function(colors) { + var assign, assign$1, assign$2; + + var I, lab0, lab1, lab2; + colors = colors.map(function (c) { return new Color_1(c); }); + if (colors.length === 2) { + // linear interpolation + (assign = colors.map(function (c) { return c.lab(); }), lab0 = assign[0], lab1 = assign[1]); + I = function(t) { + var lab = ([0, 1, 2].map(function (i) { return lab0[i] + (t * (lab1[i] - lab0[i])); })); + return new Color_1(lab, 'lab'); + }; + } else if (colors.length === 3) { + // quadratic bezier interpolation + (assign$1 = colors.map(function (c) { return c.lab(); }), lab0 = assign$1[0], lab1 = assign$1[1], lab2 = assign$1[2]); + I = function(t) { + var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t) * lab0[i]) + (2 * (1-t) * t * lab1[i]) + (t * t * lab2[i]); })); + return new Color_1(lab, 'lab'); + }; + } else if (colors.length === 4) { + // cubic bezier interpolation + var lab3; + (assign$2 = colors.map(function (c) { return c.lab(); }), lab0 = assign$2[0], lab1 = assign$2[1], lab2 = assign$2[2], lab3 = assign$2[3]); + I = function(t) { + var lab = ([0, 1, 2].map(function (i) { return ((1-t)*(1-t)*(1-t) * lab0[i]) + (3 * (1-t) * (1-t) * t * lab1[i]) + (3 * (1-t) * t * t * lab2[i]) + (t*t*t * lab3[i]); })); + return new Color_1(lab, 'lab'); + }; + } else if (colors.length === 5) { + var I0 = bezier(colors.slice(0, 3)); + var I1 = bezier(colors.slice(2, 5)); + I = function(t) { + if (t < 0.5) { + return I0(t*2); + } else { + return I1((t-0.5)*2); + } + }; + } + return I; + }; + + var bezier_1 = function (colors) { + var f = bezier(colors); + f.scale = function () { return scale(f); }; + return f; + }; + + /* + * interpolates between a set of colors uzing a bezier spline + * blend mode formulas taken from http://www.venture-ware.com/kevin/coding/lets-learn-math-photoshop-blend-modes/ + */ + + + + + var blend = function (bottom, top, mode) { + if (!blend[mode]) { + throw new Error('unknown blend mode ' + mode); + } + return blend[mode](bottom, top); + }; + + var blend_f = function (f) { return function (bottom,top) { + var c0 = chroma_1(top).rgb(); + var c1 = chroma_1(bottom).rgb(); + return chroma_1.rgb(f(c0, c1)); + }; }; + + var each = function (f) { return function (c0, c1) { + var out = []; + out[0] = f(c0[0], c1[0]); + out[1] = f(c0[1], c1[1]); + out[2] = f(c0[2], c1[2]); + return out; + }; }; + + var normal = function (a) { return a; }; + var multiply = function (a,b) { return a * b / 255; }; + var darken$1 = function (a,b) { return a > b ? b : a; }; + var lighten = function (a,b) { return a > b ? a : b; }; + var screen = function (a,b) { return 255 * (1 - (1-a/255) * (1-b/255)); }; + var overlay = function (a,b) { return b < 128 ? 2 * a * b / 255 : 255 * (1 - 2 * (1 - a / 255 ) * ( 1 - b / 255 )); }; + var burn = function (a,b) { return 255 * (1 - (1 - b / 255) / (a/255)); }; + var dodge = function (a,b) { + if (a === 255) { return 255; } + a = 255 * (b / 255) / (1 - a / 255); + return a > 255 ? 255 : a + }; + + // # add = (a,b) -> + // # if (a + b > 255) then 255 else a + b + + blend.normal = blend_f(each(normal)); + blend.multiply = blend_f(each(multiply)); + blend.screen = blend_f(each(screen)); + blend.overlay = blend_f(each(overlay)); + blend.darken = blend_f(each(darken$1)); + blend.lighten = blend_f(each(lighten)); + blend.dodge = blend_f(each(dodge)); + blend.burn = blend_f(each(burn)); + // blend.add = blend_f(each(add)); + + var blend_1 = blend; + + // cubehelix interpolation + // based on D.A. Green "A colour scheme for the display of astronomical intensity images" + // http://astron-soc.in/bulletin/11June/289392011.pdf + + var type$k = utils.type; + var clip_rgb$3 = utils.clip_rgb; + var TWOPI$2 = utils.TWOPI; + var pow$6 = Math.pow; + var sin$2 = Math.sin; + var cos$3 = Math.cos; + + + var cubehelix = function(start, rotations, hue, gamma, lightness) { + if ( start === void 0 ) start=300; + if ( rotations === void 0 ) rotations=-1.5; + if ( hue === void 0 ) hue=1; + if ( gamma === void 0 ) gamma=1; + if ( lightness === void 0 ) lightness=[0,1]; + + var dh = 0, dl; + if (type$k(lightness) === 'array') { + dl = lightness[1] - lightness[0]; + } else { + dl = 0; + lightness = [lightness, lightness]; + } + + var f = function(fract) { + var a = TWOPI$2 * (((start+120)/360) + (rotations * fract)); + var l = pow$6(lightness[0] + (dl * fract), gamma); + var h = dh !== 0 ? hue[0] + (fract * dh) : hue; + var amp = (h * l * (1-l)) / 2; + var cos_a = cos$3(a); + var sin_a = sin$2(a); + var r = l + (amp * ((-0.14861 * cos_a) + (1.78277* sin_a))); + var g = l + (amp * ((-0.29227 * cos_a) - (0.90649* sin_a))); + var b = l + (amp * (+1.97294 * cos_a)); + return chroma_1(clip_rgb$3([r*255,g*255,b*255,1])); + }; + + f.start = function(s) { + if ((s == null)) { return start; } + start = s; + return f; + }; + + f.rotations = function(r) { + if ((r == null)) { return rotations; } + rotations = r; + return f; + }; + + f.gamma = function(g) { + if ((g == null)) { return gamma; } + gamma = g; + return f; + }; + + f.hue = function(h) { + if ((h == null)) { return hue; } + hue = h; + if (type$k(hue) === 'array') { + dh = hue[1] - hue[0]; + if (dh === 0) { hue = hue[1]; } + } else { + dh = 0; + } + return f; + }; + + f.lightness = function(h) { + if ((h == null)) { return lightness; } + if (type$k(h) === 'array') { + lightness = h; + dl = h[1] - h[0]; + } else { + lightness = [h,h]; + dl = 0; + } + return f; + }; + + f.scale = function () { return chroma_1.scale(f); }; + + f.hue(hue); + + return f; + }; + + var digits = '0123456789abcdef'; + + var floor$2 = Math.floor; + var random = Math.random; + + var random_1 = function () { + var code = '#'; + for (var i=0; i<6; i++) { + code += digits.charAt(floor$2(random() * 16)); + } + return new Color_1(code, 'hex'); + }; + + var log$1 = Math.log; + var pow$7 = Math.pow; + var floor$3 = Math.floor; + var abs = Math.abs; + + + var analyze = function (data, key) { + if ( key === void 0 ) key=null; + + var r = { + min: Number.MAX_VALUE, + max: Number.MAX_VALUE*-1, + sum: 0, + values: [], + count: 0 + }; + if (type(data) === 'object') { + data = Object.values(data); + } + data.forEach(function (val) { + if (key && type(val) === 'object') { val = val[key]; } + if (val !== undefined && val !== null && !isNaN(val)) { + r.values.push(val); + r.sum += val; + if (val < r.min) { r.min = val; } + if (val > r.max) { r.max = val; } + r.count += 1; + } + }); + + r.domain = [r.min, r.max]; + + r.limits = function (mode, num) { return limits(r, mode, num); }; + + return r; + }; + + + var limits = function (data, mode, num) { + if ( mode === void 0 ) mode='equal'; + if ( num === void 0 ) num=7; + + if (type(data) == 'array') { + data = analyze(data); + } + var min = data.min; + var max = data.max; + var values = data.values.sort(function (a,b) { return a-b; }); + + if (num === 1) { return [min,max]; } + + var limits = []; + + if (mode.substr(0,1) === 'c') { // continuous + limits.push(min); + limits.push(max); + } + + if (mode.substr(0,1) === 'e') { // equal interval + limits.push(min); + for (var i=1; i 0'); + } + var min_log = Math.LOG10E * log$1(min); + var max_log = Math.LOG10E * log$1(max); + limits.push(min); + for (var i$1=1; i$1 pb + var pr = p - pb; + limits.push((values[pb]*(1-pr)) + (values[pb+1]*pr)); + } + } + limits.push(max); + + } + + else if (mode.substr(0,1) === 'k') { // k-means clustering + /* + implementation based on + http://code.google.com/p/figue/source/browse/trunk/figue.js#336 + simplified for 1-d input values + */ + var cluster; + var n = values.length; + var assignments = new Array(n); + var clusterSizes = new Array(num); + var repeat = true; + var nb_iters = 0; + var centroids = null; + + // get seed values + centroids = []; + centroids.push(min); + for (var i$3=1; i$3 200) { + repeat = false; + } + } + + // finished k-means clustering + // the next part is borrowed from gabrielflor.it + var kClusters = {}; + for (var j$5=0; j$5 l2 ? (l1 + 0.05) / (l2 + 0.05) : (l2 + 0.05) / (l1 + 0.05); + }; + + var sqrt$4 = Math.sqrt; + var atan2$2 = Math.atan2; + var abs$1 = Math.abs; + var cos$4 = Math.cos; + var PI$2 = Math.PI; + + var deltaE = function(a, b, L, C) { + if ( L === void 0 ) L=1; + if ( C === void 0 ) C=1; + + // Delta E (CMC) + // see http://www.brucelindbloom.com/index.html?Eqn_DeltaE_CMC.html + a = new Color_1(a); + b = new Color_1(b); + var ref = Array.from(a.lab()); + var L1 = ref[0]; + var a1 = ref[1]; + var b1 = ref[2]; + var ref$1 = Array.from(b.lab()); + var L2 = ref$1[0]; + var a2 = ref$1[1]; + var b2 = ref$1[2]; + var c1 = sqrt$4((a1 * a1) + (b1 * b1)); + var c2 = sqrt$4((a2 * a2) + (b2 * b2)); + var sl = L1 < 16.0 ? 0.511 : (0.040975 * L1) / (1.0 + (0.01765 * L1)); + var sc = ((0.0638 * c1) / (1.0 + (0.0131 * c1))) + 0.638; + var h1 = c1 < 0.000001 ? 0.0 : (atan2$2(b1, a1) * 180.0) / PI$2; + while (h1 < 0) { h1 += 360; } + while (h1 >= 360) { h1 -= 360; } + var t = (h1 >= 164.0) && (h1 <= 345.0) ? (0.56 + abs$1(0.2 * cos$4((PI$2 * (h1 + 168.0)) / 180.0))) : (0.36 + abs$1(0.4 * cos$4((PI$2 * (h1 + 35.0)) / 180.0))); + var c4 = c1 * c1 * c1 * c1; + var f = sqrt$4(c4 / (c4 + 1900.0)); + var sh = sc * (((f * t) + 1.0) - f); + var delL = L1 - L2; + var delC = c1 - c2; + var delA = a1 - a2; + var delB = b1 - b2; + var dH2 = ((delA * delA) + (delB * delB)) - (delC * delC); + var v1 = delL / (L * sl); + var v2 = delC / (C * sc); + var v3 = sh; + return sqrt$4((v1 * v1) + (v2 * v2) + (dH2 / (v3 * v3))); + }; + + // simple Euclidean distance + var distance = function(a, b, mode) { + if ( mode === void 0 ) mode='lab'; + + // Delta E (CIE 1976) + // see http://www.brucelindbloom.com/index.html?Equations.html + a = new Color_1(a); + b = new Color_1(b); + var l1 = a.get(mode); + var l2 = b.get(mode); + var sum_sq = 0; + for (var i in l1) { + var d = (l1[i] || 0) - (l2[i] || 0); + sum_sq += d*d; + } + return Math.sqrt(sum_sq); + }; + + var valid = function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + try { + new (Function.prototype.bind.apply( Color_1, [ null ].concat( args) )); + return true; + } catch (e) { + return false; + } + }; + + // some pre-defined color scales: + + + + + var scales = { + cool: function cool() { return scale([chroma_1.hsl(180,1,.9), chroma_1.hsl(250,.7,.4)]) }, + hot: function hot() { return scale(['#000','#f00','#ff0','#fff']).mode('rgb') } + }; + + /** + ColorBrewer colors for chroma.js + + Copyright (c) 2002 Cynthia Brewer, Mark Harrower, and The + Pennsylvania State University. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software distributed + under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR + CONDITIONS OF ANY KIND, either express or implied. See the License for the + specific language governing permissions and limitations under the License. + */ + + var colorbrewer = { + // sequential + OrRd: ['#fff7ec', '#fee8c8', '#fdd49e', '#fdbb84', '#fc8d59', '#ef6548', '#d7301f', '#b30000', '#7f0000'], + PuBu: ['#fff7fb', '#ece7f2', '#d0d1e6', '#a6bddb', '#74a9cf', '#3690c0', '#0570b0', '#045a8d', '#023858'], + BuPu: ['#f7fcfd', '#e0ecf4', '#bfd3e6', '#9ebcda', '#8c96c6', '#8c6bb1', '#88419d', '#810f7c', '#4d004b'], + Oranges: ['#fff5eb', '#fee6ce', '#fdd0a2', '#fdae6b', '#fd8d3c', '#f16913', '#d94801', '#a63603', '#7f2704'], + BuGn: ['#f7fcfd', '#e5f5f9', '#ccece6', '#99d8c9', '#66c2a4', '#41ae76', '#238b45', '#006d2c', '#00441b'], + YlOrBr: ['#ffffe5', '#fff7bc', '#fee391', '#fec44f', '#fe9929', '#ec7014', '#cc4c02', '#993404', '#662506'], + YlGn: ['#ffffe5', '#f7fcb9', '#d9f0a3', '#addd8e', '#78c679', '#41ab5d', '#238443', '#006837', '#004529'], + Reds: ['#fff5f0', '#fee0d2', '#fcbba1', '#fc9272', '#fb6a4a', '#ef3b2c', '#cb181d', '#a50f15', '#67000d'], + RdPu: ['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'], + Greens: ['#f7fcf5', '#e5f5e0', '#c7e9c0', '#a1d99b', '#74c476', '#41ab5d', '#238b45', '#006d2c', '#00441b'], + YlGnBu: ['#ffffd9', '#edf8b1', '#c7e9b4', '#7fcdbb', '#41b6c4', '#1d91c0', '#225ea8', '#253494', '#081d58'], + Purples: ['#fcfbfd', '#efedf5', '#dadaeb', '#bcbddc', '#9e9ac8', '#807dba', '#6a51a3', '#54278f', '#3f007d'], + GnBu: ['#f7fcf0', '#e0f3db', '#ccebc5', '#a8ddb5', '#7bccc4', '#4eb3d3', '#2b8cbe', '#0868ac', '#084081'], + Greys: ['#ffffff', '#f0f0f0', '#d9d9d9', '#bdbdbd', '#969696', '#737373', '#525252', '#252525', '#000000'], + YlOrRd: ['#ffffcc', '#ffeda0', '#fed976', '#feb24c', '#fd8d3c', '#fc4e2a', '#e31a1c', '#bd0026', '#800026'], + PuRd: ['#f7f4f9', '#e7e1ef', '#d4b9da', '#c994c7', '#df65b0', '#e7298a', '#ce1256', '#980043', '#67001f'], + Blues: ['#f7fbff', '#deebf7', '#c6dbef', '#9ecae1', '#6baed6', '#4292c6', '#2171b5', '#08519c', '#08306b'], + PuBuGn: ['#fff7fb', '#ece2f0', '#d0d1e6', '#a6bddb', '#67a9cf', '#3690c0', '#02818a', '#016c59', '#014636'], + Viridis: ['#440154', '#482777', '#3f4a8a', '#31678e', '#26838f', '#1f9d8a', '#6cce5a', '#b6de2b', '#fee825'], + + // diverging + + Spectral: ['#9e0142', '#d53e4f', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#e6f598', '#abdda4', '#66c2a5', '#3288bd', '#5e4fa2'], + RdYlGn: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee08b', '#ffffbf', '#d9ef8b', '#a6d96a', '#66bd63', '#1a9850', '#006837'], + RdBu: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#f7f7f7', '#d1e5f0', '#92c5de', '#4393c3', '#2166ac', '#053061'], + PiYG: ['#8e0152', '#c51b7d', '#de77ae', '#f1b6da', '#fde0ef', '#f7f7f7', '#e6f5d0', '#b8e186', '#7fbc41', '#4d9221', '#276419'], + PRGn: ['#40004b', '#762a83', '#9970ab', '#c2a5cf', '#e7d4e8', '#f7f7f7', '#d9f0d3', '#a6dba0', '#5aae61', '#1b7837', '#00441b'], + RdYlBu: ['#a50026', '#d73027', '#f46d43', '#fdae61', '#fee090', '#ffffbf', '#e0f3f8', '#abd9e9', '#74add1', '#4575b4', '#313695'], + BrBG: ['#543005', '#8c510a', '#bf812d', '#dfc27d', '#f6e8c3', '#f5f5f5', '#c7eae5', '#80cdc1', '#35978f', '#01665e', '#003c30'], + RdGy: ['#67001f', '#b2182b', '#d6604d', '#f4a582', '#fddbc7', '#ffffff', '#e0e0e0', '#bababa', '#878787', '#4d4d4d', '#1a1a1a'], + PuOr: ['#7f3b08', '#b35806', '#e08214', '#fdb863', '#fee0b6', '#f7f7f7', '#d8daeb', '#b2abd2', '#8073ac', '#542788', '#2d004b'], + + // qualitative + + Set2: ['#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494', '#b3b3b3'], + Accent: ['#7fc97f', '#beaed4', '#fdc086', '#ffff99', '#386cb0', '#f0027f', '#bf5b17', '#666666'], + Set1: ['#e41a1c', '#377eb8', '#4daf4a', '#984ea3', '#ff7f00', '#ffff33', '#a65628', '#f781bf', '#999999'], + Set3: ['#8dd3c7', '#ffffb3', '#bebada', '#fb8072', '#80b1d3', '#fdb462', '#b3de69', '#fccde5', '#d9d9d9', '#bc80bd', '#ccebc5', '#ffed6f'], + Dark2: ['#1b9e77', '#d95f02', '#7570b3', '#e7298a', '#66a61e', '#e6ab02', '#a6761d', '#666666'], + Paired: ['#a6cee3', '#1f78b4', '#b2df8a', '#33a02c', '#fb9a99', '#e31a1c', '#fdbf6f', '#ff7f00', '#cab2d6', '#6a3d9a', '#ffff99', '#b15928'], + Pastel2: ['#b3e2cd', '#fdcdac', '#cbd5e8', '#f4cae4', '#e6f5c9', '#fff2ae', '#f1e2cc', '#cccccc'], + Pastel1: ['#fbb4ae', '#b3cde3', '#ccebc5', '#decbe4', '#fed9a6', '#ffffcc', '#e5d8bd', '#fddaec', '#f2f2f2'], + }; + + // add lowercase aliases for case-insensitive matches + for (var i$1 = 0, list$1 = Object.keys(colorbrewer); i$1 < list$1.length; i$1 += 1) { + var key = list$1[i$1]; + + colorbrewer[key.toLowerCase()] = colorbrewer[key]; + } + + var colorbrewer_1 = colorbrewer; + + // feel free to comment out anything to rollup + // a smaller chroma.js built + + // io --> convert colors + + + + + + + + + + + + + + + + // operators --> modify existing Colors + + + + + + + + + + + // interpolators + + + + + + + + + + + // generators -- > create new colors + chroma_1.average = average; + chroma_1.bezier = bezier_1; + chroma_1.blend = blend_1; + chroma_1.cubehelix = cubehelix; + chroma_1.mix = chroma_1.interpolate = mix; + chroma_1.random = random_1; + chroma_1.scale = scale; + + // other utility methods + chroma_1.analyze = analyze_1.analyze; + chroma_1.contrast = contrast; + chroma_1.deltaE = deltaE; + chroma_1.distance = distance; + chroma_1.limits = analyze_1.limits; + chroma_1.valid = valid; + + // scale + chroma_1.scales = scales; + + // colors + chroma_1.colors = w3cx11_1; + chroma_1.brewer = colorbrewer_1; + + var chroma_js = chroma_1; + + return chroma_js; + +}))); +}); + +function generateColorVariables(key, format, colorStr, opacity, altFormats = []) { + const parsedColor = chroma(colorStr); + const alts = altFormats.reduce((a, alt) => { + a.push(...generateColorVariables(alt.id, alt.format, colorStr, opacity)); + return a; + }, []); + switch (format) { + case 'hex': + return [{ key, value: colorStr }, ...alts]; + case 'hsl': + return [ + { + key, + value: parsedColor.css('hsl'), + }, + ...alts, + ]; + case 'hsl-values': { + const hsl = parsedColor.hsl(); + const alpha = opacity ? `,${parsedColor.alpha()}` : ''; + const h = isNaN(hsl[0]) ? 0 : hsl[0]; + return [ + { + key, + value: `${h},${hsl[1] * 100}%,${hsl[2] * 100}%${alpha}`, + }, + ...alts, + ]; + } + case 'hsl-split': { + const hsl = parsedColor.hsl(); + const h = isNaN(hsl[0]) ? 0 : hsl[0]; + const out = [ + { + key: `${key}-h`, + value: h.toString(), + }, + { + key: `${key}-s`, + value: (hsl[1] * 100).toString() + '%', + }, + { + key: `${key}-l`, + value: (hsl[2] * 100).toString() + '%', + }, + ...alts, + ]; + if (opacity) + out.push({ + key: `${key}-a`, + value: parsedColor.alpha().toString(), + }); + return out; + } + case 'hsl-split-decimal': { + const hsl = parsedColor.hsl(); + const h = isNaN(hsl[0]) ? 0 : hsl[0]; + const out = [ + { + key: `${key}-h`, + value: h.toString(), + }, + { + key: `${key}-s`, + value: hsl[1].toString(), + }, + { + key: `${key}-l`, + value: hsl[2].toString(), + }, + ...alts, + ]; + if (opacity) + out.push({ + key: `${key}-a`, + value: parsedColor.alpha().toString(), + }); + return out; + } + case 'rgb': + return [ + { + key, + value: parsedColor.css(), + }, + ...alts, + ]; + case 'rgb-values': { + const rgb = parsedColor.rgb(); + const alpha = opacity ? `,${parsedColor.alpha()}` : ''; + return [ + { + key, + value: `${rgb[0]},${rgb[1]},${rgb[2]}${alpha}`, + }, + ...alts, + ]; + } + case 'rgb-split': { + const rgb = parsedColor.rgb(); + const out = [ + { + key: `${key}-r`, + value: rgb[0].toString(), + }, + { + key: `${key}-g`, + value: rgb[1].toString(), + }, + { + key: `${key}-b`, + value: rgb[2].toString(), + }, + ...alts, + ]; + if (opacity) + out.push({ + key: `${key}-a`, + value: parsedColor.alpha().toString(), + }); + return out; + } + } +} +function pushColors(arr, id, from, to, format, step, pad) { + const scale = chroma.scale([from.trim(), to.trim()]).domain([0, 100]); + for (let i = 0; i <= 100; i++) { + if (i % step === 0) { + const c = scale(i); + arr.push(...generateColorVariables(`${id}-${i.toString().padStart(pad, '0')}`, format, c.css(), c.alpha() !== 1)); + } + } +} +function getCSSVariables(settings, config, gradients, settingsManager) { + const vars = []; + const themedLight = []; + const themedDark = []; + const gradientCandidates = {}; + const gradientCandidatesLight = {}; + const gradientCandidatesDark = {}; + const seenGradientSections = new Set(); + for (const key in settings) { + const [sectionId, settingId, modifier] = key.split('@@'); + const section = config[sectionId]; + if (!section) + continue; + const setting = config[sectionId][settingId]; + if (!setting) + continue; + const value = settings[key]; + switch (setting.type) { + case SettingType.VARIABLE_NUMBER: + case SettingType.VARIABLE_NUMBER_SLIDER: { + const format = setting + .format; + const val = value !== undefined + ? value + : setting.default; + vars.push({ + key: setting.id, + value: `${val}${format || ''}`, + }); + continue; + } + case SettingType.VARIABLE_TEXT: + case SettingType.VARIABLE_SELECT: { + const format_text = setting; + let text = value !== undefined + ? value.toString() + : format_text.default.toString(); + if (format_text.quotes) { + if (text !== `""`) { + text = `'${text}'`; + } + else { + text = ``; + } + } + vars.push({ + key: setting.id, + value: text, + }); + continue; + } + case SettingType.VARIABLE_COLOR: { + if (!seenGradientSections.has(sectionId)) + seenGradientSections.add(sectionId); + const colorSetting = setting; + const color = value !== undefined ? value.toString() : colorSetting.default; + vars.push(...generateColorVariables(setting.id, colorSetting.format, color, colorSetting.opacity, colorSetting['alt-format'])); + generateColorVariables(setting.id, 'rgb', color, colorSetting.opacity).forEach((kv) => { + gradientCandidates[kv.key] = kv.value; + }); + continue; + } + case SettingType.VARIABLE_THEMED_COLOR: { + if (!seenGradientSections.has(sectionId)) + seenGradientSections.add(sectionId); + const colorSetting = setting; + const colorKey = modifier === 'light' ? 'default-light' : 'default-dark'; + const color = value !== undefined ? value.toString() : colorSetting[colorKey]; + (modifier === 'light' ? themedLight : themedDark).push(...generateColorVariables(setting.id, colorSetting.format, color, colorSetting.opacity, colorSetting['alt-format'])); + generateColorVariables(setting.id, 'rgb', color, colorSetting.opacity).forEach((kv) => { + if (modifier === 'light') { + gradientCandidatesLight[kv.key] = kv.value; + } + else { + gradientCandidatesDark[kv.key] = kv.value; + } + }); + continue; + } + } + } + seenGradientSections.forEach((sectionId) => { + const g = gradients[sectionId]; + if (!g) + return; + g.forEach((def) => { + var _a, _b, _c; + const { from, to, format, step, id, pad = 0 } = def; + if (gradientCandidatesLight[from]) { + const fromColor = gradientCandidatesLight[from]; + const toColor = gradientCandidatesLight[to] || + ((_a = settingsManager.plugin.getCSSVar(to).light) === null || _a === void 0 ? void 0 : _a.trim()); + if (toColor) { + pushColors(themedLight, id, fromColor, toColor, format, step, pad); + } + } + if (gradientCandidatesDark[from]) { + const fromColor = gradientCandidatesDark[from]; + const toColor = gradientCandidatesDark[to] || + ((_b = settingsManager.plugin.getCSSVar(to).dark) === null || _b === void 0 ? void 0 : _b.trim()); + if (toColor) { + pushColors(themedDark, id, fromColor, toColor, format, step, pad); + } + } + if (gradientCandidates[from]) { + const fromColor = gradientCandidates[from]; + const toColor = gradientCandidates[to] || + ((_c = settingsManager.plugin.getCSSVar(to).current) === null || _c === void 0 ? void 0 : _c.trim()); + if (toColor) { + pushColors(vars, id, fromColor, toColor, format, step, pad); + } + } + }); + }); + return [vars, themedLight, themedDark]; +} +class CSSSettingsManager { + constructor(plugin) { + this.config = {}; + this.gradients = {}; + this.plugin = plugin; + this.settings = {}; + this.styleTag = document.createElement('style'); + this.styleTag.id = 'css-settings-manager'; + document.getElementsByTagName('head')[0].appendChild(this.styleTag); + } + cleanup() { + this.styleTag.remove(); + this.removeClasses(); + } + save() { + return __awaiter(this, void 0, void 0, function* () { + yield this.plugin.saveData(this.settings); + this.setCSSVariables(); + }); + } + load() { + return __awaiter(this, void 0, void 0, function* () { + this.settings = Object.assign({}, yield this.plugin.loadData()); + }); + } + initClasses() { + Object.keys(this.config).forEach((section) => { + const config = this.config[section]; + Object.keys(config).forEach((settingId) => { + const setting = config[settingId]; + if (setting.type === SettingType.CLASS_TOGGLE) { + const classToggle = setting; + const value = this.getSetting(section, settingId); + if (value === true || + (value === undefined && classToggle.default === true)) { + document.body.classList.add(setting.id); + } + } + else if (setting.type === SettingType.CLASS_SELECT) { + const multiToggle = setting; + let value = this.getSetting(section, settingId); + if (value === undefined && !!multiToggle.default) { + value = multiToggle.default; + } + else if (value === undefined) { + value = 'none'; + } + if (value !== 'none') { + document.body.classList.add(value); + } + } + }); + }); + } + removeClasses() { + Object.keys(this.config).forEach((section) => { + const config = this.config[section]; + Object.keys(config).forEach((settingId) => { + const setting = config[settingId]; + if (setting.type === SettingType.CLASS_TOGGLE) { + document.body.classList.remove(setting.id); + } + else if (setting.type === SettingType.CLASS_SELECT) { + const multiToggle = setting; + multiToggle.options.forEach((v) => { + if (typeof v === 'string') { + document.body.classList.remove(v); + } + else { + document.body.classList.remove(v.value); + } + }); + } + }); + }); + } + setCSSVariables() { + const [vars, themedLight, themedDark] = getCSSVariables(this.settings, this.config, this.gradients, this); + this.styleTag.innerText = ` + body.css-settings-manager { + ${vars.reduce((combined, current) => { + return combined + `--${current.key}: ${current.value}; `; + }, '')} + } + + body.theme-light.css-settings-manager { + ${themedLight.reduce((combined, current) => { + return combined + `--${current.key}: ${current.value}; `; + }, '')} + } + + body.theme-dark.css-settings-manager { + ${themedDark.reduce((combined, current) => { + return combined + `--${current.key}: ${current.value}; `; + }, '')} + } + ` + .trim() + .replace(/[\r\n\s]+/g, ' '); + this.plugin.app.workspace.trigger('css-change', { + source: 'style-settings', + }); + } + setConfig(settings) { + this.config = {}; + this.gradients = {}; + settings.forEach((s) => { + this.config[s.id] = {}; + s.settings.forEach((setting) => { + this.config[s.id][setting.id] = setting; + if (setting.type === SettingType.COLOR_GRADIENT) { + if (!this.gradients[s.id]) + this.gradients[s.id] = []; + this.gradients[s.id].push(setting); + } + }); + }); + let pruned = false; + for (const key in this.settings) { + const [sectionId, settingId] = key.split('@@'); + if (this.config[sectionId] && !this.config[sectionId][settingId]) { + delete this.settings[key]; + pruned = true; + } + } + if (pruned) { + this.save(); + } + else { + this.setCSSVariables(); + } + } + getSetting(sectionId, settingId) { + return this.settings[`${sectionId}@@${settingId}`]; + } + getSettings(sectionId, ids) { + return ids.reduce((settings, id) => { + const fullId = `${sectionId}@@${id}`; + const alts = ['dark', 'light']; + if (this.settings[fullId]) { + settings[fullId] = this.settings[fullId]; + } + alts.forEach((alt) => { + const id = `${fullId}@@${alt}`; + if (this.settings[id]) { + settings[id] = this.settings[id]; + } + }); + return settings; + }, {}); + } + setSetting(sectionId, settingId, value) { + this.settings[`${sectionId}@@${settingId}`] = value; + this.save(); + this.removeClasses(); + this.initClasses(); + } + setSettings(settings) { + Object.keys(settings).forEach((id) => { + this.settings[id] = settings[id]; + }); + this.removeClasses(); + this.initClasses(); + return this.save(); + } + clearSetting(sectionId, settingId) { + delete this.settings[`${sectionId}@@${settingId}`]; + this.save(); + this.removeClasses(); + this.initClasses(); + } + clearSection(sectionId) { + Object.keys(this.settings).forEach((key) => { + const [section] = key.split('@@'); + if (section === sectionId) { + delete this.settings[key]; + } + }); + this.save(); + this.removeClasses(); + this.initClasses(); + } + export(section, config) { + new ExportModal(this.plugin.app, this.plugin, section, config).open(); + } + import() { + new ImportModal(this.plugin.app, this.plugin).open(); + } +} + +const ar = {}; + +const cz = {}; + +const da = {}; + +const de = { + 'Default:': 'Standard:', + 'Error:': 'Fehler:', + 'missing default light value, or value is not in a valid color format': 'Fehlender heller standard Wert oder Wert ist in keinem validen Farb-Format', + 'missing default dark value, or value is not in a valid color format': 'Fehlender dunkler standard Wert oder Wert ist in keinem validen Farb-Format', + 'missing default value, or value is not in a valid color format': 'Fehlender standard Wert oder Wert ist in keinem validen Farb-Format', + 'missing default value': 'Fehlender standard Wert', +}; + +const en = { + 'Default:': 'Default:', + 'Error:': 'Error:', + 'missing default light value, or value is not in a valid color format': 'missing default light value, or value is not in a valid color format', + 'missing default dark value, or value is not in a valid color format': 'missing default dark value, or value is not in a valid color format', + 'missing default value, or value is not in a valid color format': 'missing default value, or value is not in a valid color format', + 'missing default value': 'missing default value', +}; + +const es = {}; + +const fr = {}; + +const hi = {}; + +const id = {}; + +const it = {}; + +const ja = {}; + +const ko = {}; + +const nl = { + 'Default:': 'Standaard:', + 'Error:': 'Error:', + 'missing default light value, or value is not in a valid color format': 'Geen standaard waarde voor het lichte thema, of de waarde is niet in het goede formaat', + 'missing default dark value, or value is not in a valid color format': 'Geen standaard waarde voor het donkere thema, of de waarde is niet in het goede formaat', + 'missing default value, or value is not in a valid color format': 'Geen standaard waarde, of de waarde is niet in het goede formaat', + 'missing default value': 'Geen standaard waarde', +}; + +const no = {}; + +const pl = {}; + +const pt = {}; + +const ptBr = {}; + +const ro = {}; + +const ru = {}; + +const sq = {}; + +const tr = {}; + +const uk = {}; + +const zh = { + 'Default:': '默认:', + 'Error:': '错误:', + 'missing default light value, or value is not in a valid color format': '缺少默认的浅色模式色值,或该色值没有采用一个有效的颜色格式', + 'missing default dark value, or value is not in a valid color format': '缺少默认的深色模式色值,或该色值没有采用一个有效的颜色格式', + 'missing default value, or value is not in a valid color format': '缺少默认色值,或该色值没有采用一个有效的颜色格式', + 'missing default value': '缺少默认色值', +}; + +const zhTw = {}; + +const lang = window.localStorage.getItem('language'); +const localeMap = { + ar, + cz, + da, + de, + en, + es, + fr, + hi, + id, + it, + ja, + ko, + nl, + no, + pl, + 'pt-BR': ptBr, + pt, + ro, + ru, + sq, + tr, + uk, + 'zh-TW': zhTw, + zh, +}; +const locale = localeMap[lang || 'en']; +function t(str) { + if (!locale) { + console.error('Error: Style Settings locale not found', lang); + } + return (locale && locale[str]) || en[str]; +} + +const settingRegExp = /\/\*!?\s*@settings[\r\n]+?([\s\S]+?)\*\//g; +const nameRegExp = /^name:\s*(.+)$/m; +function getTitle(config) { + if (lang) { + return config[`title.${lang}`] || config.title; + } + return config.title; +} +function getDescription(config) { + if (lang) { + return (config[`description.${lang}`] || + config.description); + } + return config.description; +} +function isValidDefaultColor(color) { + return /^(#|rgb|hsl)/.test(color); +} +function getPickrSettings(opts) { + const { el, isView, containerEl, swatches, opacity, defaultColor } = opts; + return { + el, + container: isView ? document.body : containerEl, + theme: 'nano', + swatches, + lockOpacity: !opacity, + default: defaultColor, + position: 'left-middle', + components: { + preview: true, + hue: true, + opacity: !!opacity, + interaction: { + hex: true, + rgba: true, + hsla: true, + input: true, + cancel: true, + save: true, + }, + }, + }; +} +function onPickrCancel(instance) { + instance.hide(); +} +function sanitizeText(str) { + if (str === '') { + return `""`; + } + return str.replace(/[;<>]/g, ''); +} +function createDescription(description, def, defLabel) { + const fragment = createFragment(); + if (description) { + fragment.appendChild(document.createTextNode(description)); + } + if (def) { + const small = createEl('small'); + small.appendChild(createEl('strong', { text: `${t('Default:')} ` })); + small.appendChild(document.createTextNode(defLabel || def)); + const div = createEl('div'); + div.appendChild(small); + fragment.appendChild(div); + } + return fragment; +} + +var fuzzysort = createCommonjsModule(function (module) { +((root, UMD) => { + if(module.exports) module.exports = UMD(); + else root['fuzzysort'] = UMD(); +})(commonjsGlobal, _ => { + + var single = (search, target) => { if(search=='farzher')return {target:"farzher was here (^-^*)/",score:0,_indexes:[0]} + if(!search || !target) return NULL + + var preparedSearch = getPreparedSearch(search); + if(!isObj(target)) target = getPrepared(target); + + var searchBitflags = preparedSearch.bitflags; + if((searchBitflags & target._bitflags) !== searchBitflags) return NULL + + return algorithm(preparedSearch, target) + }; + + + var go = (search, targets, options) => { if(search=='farzher')return [{target:"farzher was here (^-^*)/",score:0,_indexes:[0],obj:targets?targets[0]:NULL}] + if(!search) return options&&options.all ? all(search, targets, options) : noResults + + var preparedSearch = getPreparedSearch(search); + var searchBitflags = preparedSearch.bitflags; + preparedSearch.containsSpace; + + var threshold = options&&options.threshold || INT_MIN; + var limit = options&&options['limit'] || INT_MAX; // for some reason only limit breaks when minified + + var resultsLen = 0; var limitedCount = 0; + var targetsLen = targets.length; + + // This code is copy/pasted 3 times for performance reasons [options.keys, options.key, no keys] + + // options.key + if(options && options.key) { + var key = options.key; + for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]; + var target = getValue(obj, key); + if(!target) continue + if(!isObj(target)) target = getPrepared(target); + + if((searchBitflags & target._bitflags) !== searchBitflags) continue + var result = algorithm(preparedSearch, target); + if(result === NULL) continue + if(result.score < threshold) continue + + // have to clone result so duplicate targets from different obj can each reference the correct obj + result = {target:result.target, _targetLower:'', _targetLowerCodes:NULL, _nextBeginningIndexes:NULL, _bitflags:0, score:result.score, _indexes:result._indexes, obj:obj}; // hidden + + if(resultsLen < limit) { q.add(result); ++resultsLen; } + else { + ++limitedCount; + if(result.score > q.peek().score) q.replaceTop(result); + } + } + + // options.keys + } else if(options && options.keys) { + var scoreFn = options['scoreFn'] || defaultScoreFn; + var keys = options.keys; + var keysLen = keys.length; + for(var i = 0; i < targetsLen; ++i) { var obj = targets[i]; + var objResults = new Array(keysLen); + for (var keyI = 0; keyI < keysLen; ++keyI) { + var key = keys[keyI]; + var target = getValue(obj, key); + if(!target) { objResults[keyI] = NULL; continue } + if(!isObj(target)) target = getPrepared(target); + + if((searchBitflags & target._bitflags) !== searchBitflags) objResults[keyI] = NULL; + else objResults[keyI] = algorithm(preparedSearch, target); + } + objResults.obj = obj; // before scoreFn so scoreFn can use it + var score = scoreFn(objResults); + if(score === NULL) continue + if(score < threshold) continue + objResults.score = score; + if(resultsLen < limit) { q.add(objResults); ++resultsLen; } + else { + ++limitedCount; + if(score > q.peek().score) q.replaceTop(objResults); + } + } + + // no keys + } else { + for(var i = 0; i < targetsLen; ++i) { var target = targets[i]; + if(!target) continue + if(!isObj(target)) target = getPrepared(target); + + if((searchBitflags & target._bitflags) !== searchBitflags) continue + var result = algorithm(preparedSearch, target); + if(result === NULL) continue + if(result.score < threshold) continue + if(resultsLen < limit) { q.add(result); ++resultsLen; } + else { + ++limitedCount; + if(result.score > q.peek().score) q.replaceTop(result); + } + } + } + + if(resultsLen === 0) return noResults + var results = new Array(resultsLen); + for(var i = resultsLen - 1; i >= 0; --i) results[i] = q.poll(); + results.total = resultsLen + limitedCount; + return results + }; + + + var highlight = (result, hOpen, hClose) => { + if(typeof hOpen === 'function') return highlightCallback(result, hOpen) + if(result === NULL) return NULL + if(hOpen === undefined) hOpen = ''; + if(hClose === undefined) hClose = ''; + var highlighted = ''; + var matchesIndex = 0; + var opened = false; + var target = result.target; + var targetLen = target.length; + var indexes = result._indexes; + indexes = indexes.slice(0, indexes.len).sort((a,b)=>a-b); + for(var i = 0; i < targetLen; ++i) { var char = target[i]; + if(indexes[matchesIndex] === i) { + ++matchesIndex; + if(!opened) { opened = true; + highlighted += hOpen; + } + + if(matchesIndex === indexes.length) { + highlighted += char + hClose + target.substr(i+1); + break + } + } else { + if(opened) { opened = false; + highlighted += hClose; + } + } + highlighted += char; + } + + return highlighted + }; + var highlightCallback = (result, cb) => { + if(result === NULL) return NULL + var target = result.target; + var targetLen = target.length; + var indexes = result._indexes; + indexes = indexes.slice(0, indexes.len).sort((a,b)=>a-b); + var highlighted = ''; + var matchI = 0; + var indexesI = 0; + var opened = false; + var result = []; + for(var i = 0; i < targetLen; ++i) { var char = target[i]; + if(indexes[indexesI] === i) { + ++indexesI; + if(!opened) { opened = true; + result.push(highlighted); highlighted = ''; + } + + if(indexesI === indexes.length) { + highlighted += char; + result.push(cb(highlighted, matchI++)); highlighted = ''; + result.push(target.substr(i+1)); + break + } + } else { + if(opened) { opened = false; + result.push(cb(highlighted, matchI++)); highlighted = ''; + } + } + highlighted += char; + } + return result + }; + + + var indexes = result => result._indexes.slice(0, result._indexes.len).sort((a,b)=>a-b); + + + var prepare = (target) => { + if(typeof target !== 'string') target = ''; + var info = prepareLowerInfo(target); + return {'target':target, _targetLower:info._lower, _targetLowerCodes:info.lowerCodes, _nextBeginningIndexes:NULL, _bitflags:info.bitflags, 'score':NULL, _indexes:[0], 'obj':NULL} // hidden + }; + + + // Below this point is only internal code + // Below this point is only internal code + // Below this point is only internal code + // Below this point is only internal code + + + var prepareSearch = (search) => { + if(typeof search !== 'string') search = ''; + search = search.trim(); + var info = prepareLowerInfo(search); + + var spaceSearches = []; + if(info.containsSpace) { + var searches = search.split(/\s+/); + searches = [...new Set(searches)]; // distinct + for(var i=0; i { + if(target.length > 999) return prepare(target) // don't cache huge targets + var targetPrepared = preparedCache.get(target); + if(targetPrepared !== undefined) return targetPrepared + targetPrepared = prepare(target); + preparedCache.set(target, targetPrepared); + return targetPrepared + }; + var getPreparedSearch = (search) => { + if(search.length > 999) return prepareSearch(search) // don't cache huge searches + var searchPrepared = preparedSearchCache.get(search); + if(searchPrepared !== undefined) return searchPrepared + searchPrepared = prepareSearch(search); + preparedSearchCache.set(search, searchPrepared); + return searchPrepared + }; + + + var all = (search, targets, options) => { + var results = []; results.total = targets.length; + + var limit = options && options.limit || INT_MAX; + + if(options && options.key) { + for(var i=0;i