1
0

single-file.js 815 KB

1
  1. !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((n="undefined"!=typeof globalThis?globalThis:n||self).singlefile={})}(this,function(n){"use strict";var e="undefined"!=typeof document?document.currentScript:null;const{Array:t,Object:a,String:o,Number:i,BigInt:r,Math:s,Date:l,Map:c,Set:d,Response:m,URL:h,Error:p,Uint8Array:u,Uint16Array:g,Uint32Array:w,DataView:b,Blob:f,Promise:y,TextEncoder:k,TextDecoder:v,crypto:S,btoa:j,TransformStream:x,ReadableStream:C,WritableStream:A,CompressionStream:L,DecompressionStream:z,navigator:T,Worker:E}=globalThis,R=4294967295,I=65535,D=67324752,M=134695760,P=M,N=33639248,_=101010256,B=101075792,O=117853008,F=22,U=39169,q=21589,H=6534,W=2048,G="/",V=new l(2107,11,31),K=new l(1980,0,1),J=void 0,Y="undefined",Z="function";class ${constructor(n){return class extends x{constructor(e,t){const a=new n(t);super({transform(n,e){e.enqueue(a.append(n))},flush(n){const e=a.flush();e&&n.enqueue(e)}})}}}}let X=2;try{typeof T!=Y&&T.hardwareConcurrency&&(X=T.hardwareConcurrency)}catch(n){}const Q={chunkSize:524288,maxWorkers:X,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:J,CompressionStreamNative:typeof L!=Y&&L,DecompressionStreamNative:typeof z!=Y&&z},nn=a.assign({},Q);function en(){return nn}function tn(n){return s.max(n.chunkSize,64)}function an(n){const{baseURL:e,chunkSize:a,maxWorkers:o,terminateWorkerTimeout:i,useCompressionStream:r,useWebWorkers:s,Deflate:l,Inflate:c,CompressionStream:d,DecompressionStream:m,workerScripts:h}=n;if(on("baseURL",e),on("chunkSize",a),on("maxWorkers",o),on("terminateWorkerTimeout",i),on("useCompressionStream",r),on("useWebWorkers",s),l&&(nn.CompressionStream=new $(l)),c&&(nn.DecompressionStream=new $(c)),on("CompressionStream",d),on("DecompressionStream",m),h!==J){const{deflate:n,inflate:e}=h;if((n||e)&&(nn.workerScripts||(nn.workerScripts={})),n){if(!t.isArray(n))throw new p("workerScripts.deflate must be an array");nn.workerScripts.deflate=n}if(e){if(!t.isArray(e))throw new p("workerScripts.inflate must be an array");nn.workerScripts.inflate=e}}}function on(n,e){e!==J&&(nn[n]=e)}function rn(n,e,t){return class{constructor(o){const i=this;var r,s;r=o,s="level",(typeof a.hasOwn===Z?a.hasOwn(r,s):r.hasOwnProperty(s))&&o.level===J&&delete o.level,i.codec=new n(a.assign({},e,o)),t(i.codec,n=>{if(i.pendingData){const e=i.pendingData;i.pendingData=new u(e.length+n.length);const{pendingData:t}=i;t.set(e,0),t.set(n,e.length)}else i.pendingData=new u(n)})}append(n){return this.codec.push(n),o(this)}flush(){return this.codec.push(new u,!0),o(this)}};function o(n){if(n.pendingData){const e=n.pendingData;return n.pendingData=null,e}return new u}}const sn=[];for(let n=0;n<256;n++){let e=n;for(let n=0;n<8;n++)1&e?e=e>>>1^3988292384:e>>>=1;sn[n]=e}class ln{constructor(n){this.crc=n||-1}append(n){let e=0|this.crc;for(let t=0,a=0|n.length;t<a;t++)e=e>>>8^sn[255&(e^n[t])];this.crc=e}get(){return~this.crc}}class cn extends x{constructor(){let n;const e=new ln;super({transform(n,t){e.append(n),t.enqueue(n)},flush(){const t=new u(4);new b(t.buffer).setUint32(0,e.get()),n.value=t}}),n=this}}function dn(n){if(typeof k==Y){n=unescape(encodeURIComponent(n));const e=new u(n.length);for(let t=0;t<e.length;t++)e[t]=n.charCodeAt(t);return e}return(new k).encode(n)}const mn={concat(n,e){if(0===n.length||0===e.length)return n.concat(e);const t=n[n.length-1],a=mn.getPartial(t);return 32===a?n.concat(e):mn._shiftRight(e,a,0|t,n.slice(0,n.length-1))},bitLength(n){const e=n.length;if(0===e)return 0;const t=n[e-1];return 32*(e-1)+mn.getPartial(t)},clamp(n,e){if(32*n.length<e)return n;const t=(n=n.slice(0,s.ceil(e/32))).length;return e&=31,t>0&&e&&(n[t-1]=mn.partial(e,n[t-1]&2147483648>>e-1,1)),n},partial:(n,e,t)=>32===n?e:(t?0|e:e<<32-n)+1099511627776*n,getPartial:n=>s.round(n/1099511627776)||32,_shiftRight(n,e,t,a){for(void 0===a&&(a=[]);e>=32;e-=32)a.push(t),t=0;if(0===e)return a.concat(n);for(let o=0;o<n.length;o++)a.push(t|n[o]>>>e),t=n[o]<<32-e;const o=n.length?n[n.length-1]:0,i=mn.getPartial(o);return a.push(mn.partial(e+i&31,e+i>32?t:a.pop(),1)),a}},hn={bytes:{fromBits(n){const e=mn.bitLength(n)/8,t=new u(e);let a;for(let o=0;o<e;o++)3&o||(a=n[o/4]),t[o]=a>>>24,a<<=8;return t},toBits(n){const e=[];let t,a=0;for(t=0;t<n.length;t++)a=a<<8|n[t],3&~t||(e.push(a),a=0);return 3&t&&e.push(mn.partial(8*(3&t),a)),e}}},pn={sha1:class{constructor(n){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],n?(e._h=n._h.slice(0),e._buffer=n._buffer.slice(0),e._length=n._length):e.reset()}reset(){const n=this;return n._h=n._init.slice(0),n._buffer=[],n._length=0,n}update(n){const e=this;"string"==typeof n&&(n=hn.utf8String.toBits(n));const t=e._buffer=mn.concat(e._buffer,n),a=e._length,o=e._length=a+mn.bitLength(n);if(o>9007199254740991)throw new p("Cannot hash more than 2^53 - 1 bits");const i=new w(t);let r=0;for(let n=e.blockSize+a-(e.blockSize+a&e.blockSize-1);n<=o;n+=e.blockSize)e._block(i.subarray(16*r,16*(r+1))),r+=1;return t.splice(0,16*r),e}finalize(){const n=this;let e=n._buffer;const t=n._h;e=mn.concat(e,[mn.partial(1,1)]);for(let n=e.length+2;15&n;n++)e.push(0);for(e.push(s.floor(n._length/4294967296)),e.push(0|n._length);e.length;)n._block(e.splice(0,16));return n.reset(),t}_f(n,e,t,a){return n<=19?e&t|~e&a:n<=39?e^t^a:n<=59?e&t|e&a|t&a:n<=79?e^t^a:void 0}_S(n,e){return e<<n|e>>>32-n}_block(n){const e=this,a=e._h,o=t(80);for(let e=0;e<16;e++)o[e]=n[e];let i=a[0],r=a[1],l=a[2],c=a[3],d=a[4];for(let n=0;n<=79;n++){n>=16&&(o[n]=e._S(1,o[n-3]^o[n-8]^o[n-14]^o[n-16]));const t=e._S(5,i)+e._f(n,r,l,c)+d+o[n]+e._key[s.floor(n/20)]|0;d=c,c=l,l=e._S(30,r),r=i,i=t}a[0]=a[0]+i|0,a[1]=a[1]+r|0,a[2]=a[2]+l|0,a[3]=a[3]+c|0,a[4]=a[4]+d|0}}},un={aes:class{constructor(n){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],a=e._tables[1],o=n.length;let i,r,s,l=1;if(4!==o&&6!==o&&8!==o)throw new p("invalid aes key size");for(e._key=[r=n.slice(0),s=[]],i=o;i<4*o+28;i++){let n=r[i-1];(i%o===0||8===o&&i%o===4)&&(n=t[n>>>24]<<24^t[n>>16&255]<<16^t[n>>8&255]<<8^t[255&n],i%o===0&&(n=n<<8^n>>>24^l<<24,l=l<<1^283*(l>>7))),r[i]=r[i-o]^n}for(let n=0;i;n++,i--){const e=r[3&n?i:i-4];s[n]=i<=4||n<4?e:a[0][t[e>>>24]]^a[1][t[e>>16&255]]^a[2][t[e>>8&255]]^a[3][t[255&e]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],e=this._tables[1],t=n[4],a=e[4],o=[],i=[];let r,s,l,c;for(let n=0;n<256;n++)i[(o[n]=n<<1^283*(n>>7))^n]=n;for(let d=r=0;!t[d];d^=s||1,r=i[r]||1){let i=r^r<<1^r<<2^r<<3^r<<4;i=i>>8^255&i^99,t[d]=i,a[i]=d,c=o[l=o[s=o[d]]];let m=16843009*c^65537*l^257*s^16843008*d,h=257*o[i]^16843008*i;for(let t=0;t<4;t++)n[t][d]=h=h<<24^h>>>8,e[t][i]=m=m<<24^m>>>8}for(let t=0;t<5;t++)n[t]=n[t].slice(0),e[t]=e[t].slice(0)}_crypt(n,e){if(4!==n.length)throw new p("invalid aes block size");const t=this._key[e],a=t.length/4-2,o=[0,0,0,0],i=this._tables[e],r=i[0],s=i[1],l=i[2],c=i[3],d=i[4];let m,h,u,g=n[0]^t[0],w=n[e?3:1]^t[1],b=n[2]^t[2],f=n[e?1:3]^t[3],y=4;for(let n=0;n<a;n++)m=r[g>>>24]^s[w>>16&255]^l[b>>8&255]^c[255&f]^t[y],h=r[w>>>24]^s[b>>16&255]^l[f>>8&255]^c[255&g]^t[y+1],u=r[b>>>24]^s[f>>16&255]^l[g>>8&255]^c[255&w]^t[y+2],f=r[f>>>24]^s[g>>16&255]^l[w>>8&255]^c[255&b]^t[y+3],y+=4,g=m,w=h,b=u;for(let n=0;n<4;n++)o[e?3&-n:n]=d[g>>>24]<<24^d[w>>16&255]<<16^d[b>>8&255]<<8^d[255&f]^t[y++],m=g,g=w,w=b,b=f,f=m;return o}}},gn={getRandomValues(n){const e=new w(n.buffer),t=n=>{let e=987654321;const t=4294967295;return function(){e=36969*(65535&e)+(e>>16)&t;return(((e<<16)+(n=18e3*(65535&n)+(n>>16)&t)&t)/4294967296+.5)*(s.random()>.5?1:-1)}};for(let a,o=0;o<n.length;o+=4){const n=t(4294967296*(a||s.random()));a=987654071*n(),e[o/4]=4294967296*n()|0}return n}},wn={ctrGladman:class{constructor(n,e){this._prf=n,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if(255&~(n>>24))n+=1<<24;else{let e=n>>16&255,t=n>>8&255,a=255&n;255===e?(e=0,255===t?(t=0,255===a?a=0:++a):++t):++e,n=0,n+=e<<16,n+=t<<8,n+=a}return n}incCounter(n){0===(n[0]=this.incWord(n[0]))&&(n[1]=this.incWord(n[1]))}calculate(n,e,t){let a;if(!(a=e.length))return[];const o=mn.bitLength(e);for(let o=0;o<a;o+=4){this.incCounter(t);const a=n.encrypt(t);e[o]^=a[0],e[o+1]^=a[1],e[o+2]^=a[2],e[o+3]^=a[3]}return mn.clamp(e,o)}}},bn={importKey:n=>new bn.hmacSha1(hn.bytes.toBits(n)),pbkdf2(n,e,t,a){if(t=t||1e4,a<0||t<0)throw new p("invalid params to pbkdf2");const o=1+(a>>5)<<2;let i,r,s,l,c;const d=new ArrayBuffer(o),m=new b(d);let h=0;const u=mn;for(e=hn.bytes.toBits(e),c=1;h<(o||1);c++){for(i=r=n.encrypt(u.concat(e,[c])),s=1;s<t;s++)for(r=n.encrypt(r),l=0;l<r.length;l++)i[l]^=r[l];for(s=0;h<(o||1)&&s<i.length;s++)m.setInt32(h,i[s]),h+=4}return d.slice(0,a/8)},hmacSha1:class{constructor(n){const e=this,t=e._hash=pn.sha1,a=[[],[]];e._baseHash=[new t,new t];const o=e._baseHash[0].blockSize/32;n.length>o&&(n=(new t).update(n).finalize());for(let e=0;e<o;e++)a[0][e]=909522486^n[e],a[1][e]=1549556828^n[e];e._baseHash[0].update(a[0]),e._baseHash[1].update(a[1]),e._resultHash=new t(e._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){this._updated=!0,this._resultHash.update(n)}digest(){const n=this,e=n._resultHash.finalize(),t=new n._hash(n._baseHash[1]).update(e).finalize();return n.reset(),t}encrypt(n){if(this._updated)throw new p("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}}},fn=typeof S!=Y&&typeof S.getRandomValues==Z,yn="Invalid password",kn="Invalid signature",vn="zipjs-abort-check-password";function Sn(n){return fn?S.getRandomValues(n):gn.getRandomValues(n)}const jn=16,xn={name:"PBKDF2"},Cn=a.assign({hash:{name:"HMAC"}},xn),An=a.assign({iterations:1e3,hash:{name:"SHA-1"}},xn),Ln=["deriveBits"],zn=[8,12,16],Tn=[16,24,32],En=10,Rn=[0,0,0,0],In=typeof S!=Y,Dn=In&&S.subtle,Mn=In&&typeof Dn!=Y,Pn=hn.bytes,Nn=un.aes,_n=wn.ctrGladman,Bn=bn.hmacSha1;let On=In&&Mn&&typeof Dn.importKey==Z,Fn=In&&Mn&&typeof Dn.deriveBits==Z;class Un extends x{constructor({password:n,rawPassword:e,signed:t,encryptionStrength:o,checkPasswordOnly:i}){super({start(){a.assign(this,{ready:new y(n=>this.resolveReady=n),password:Gn(n,e),signed:t,strength:o-1,pending:new u})},async transform(n,e){const t=this,{password:a,strength:o,resolveReady:r,ready:s}=t;a?(await async function(n,e,t,a){const o=await Wn(n,e,t,Kn(a,0,zn[e])),i=Kn(a,zn[e]);if(o[0]!=i[0]||o[1]!=i[1])throw new p(yn)}(t,o,a,Kn(n,0,zn[o]+2)),n=Kn(n,zn[o]+2),i?e.error(new p(vn)):r()):await s;const l=new u(n.length-En-(n.length-En)%jn);e.enqueue(Hn(t,n,l,0,En,!0))},async flush(n){const{signed:e,ctr:t,hmac:a,pending:o,ready:i}=this;if(a&&t){await i;const r=Kn(o,0,o.length-En),s=Kn(o,o.length-En);let l=new u;if(r.length){const n=Yn(Pn,r);a.update(n);const e=t.update(n);l=Jn(Pn,e)}if(e){const n=Kn(Jn(Pn,a.digest()),0,En);for(let e=0;e<En;e++)if(n[e]!=s[e])throw new p(kn)}n.enqueue(l)}}})}}class qn extends x{constructor({password:n,rawPassword:e,encryptionStrength:t}){let o;super({start(){a.assign(this,{ready:new y(n=>this.resolveReady=n),password:Gn(n,e),strength:t-1,pending:new u})},async transform(n,e){const t=this,{password:a,strength:o,resolveReady:i,ready:r}=t;let s=new u;a?(s=await async function(n,e,t){const a=Sn(new u(zn[e])),o=await Wn(n,e,t,a);return Vn(a,o)}(t,o,a),i()):await r;const l=new u(s.length+n.length-n.length%jn);l.set(s,0),e.enqueue(Hn(t,n,l,s.length,0))},async flush(n){const{ctr:e,hmac:t,pending:a,ready:i}=this;if(t&&e){await i;let r=new u;if(a.length){const n=e.update(Yn(Pn,a));t.update(n),r=Jn(Pn,n)}o.signature=Jn(Pn,t.digest()).slice(0,En),n.enqueue(Vn(r,o.signature))}}}),o=this}}function Hn(n,e,t,a,o,i){const{ctr:r,hmac:s,pending:l}=n,c=e.length-o;let d;for(l.length&&(e=Vn(l,e),t=function(n,e){if(e&&e>n.length){const t=n;(n=new u(e)).set(t,0)}return n}(t,c-c%jn)),d=0;d<=c-jn;d+=jn){const n=Yn(Pn,Kn(e,d,d+jn));i&&s.update(n);const o=r.update(n);i||s.update(o),t.set(Jn(Pn,o),d+a)}return n.pending=Kn(e,d),t}async function Wn(n,e,o,i){n.password=null;const r=await async function(n,e,t,a,o){if(!On)return bn.importKey(e);try{return await Dn.importKey(n,e,t,a,o)}catch(n){return On=!1,bn.importKey(e)}}("raw",o,Cn,!1,Ln),s=await async function(n,e,t){if(!Fn)return bn.pbkdf2(e,n.salt,An.iterations,t);try{return await Dn.deriveBits(n,e,t)}catch(a){return Fn=!1,bn.pbkdf2(e,n.salt,An.iterations,t)}}(a.assign({salt:i},An),r,8*(2*Tn[e]+2)),l=new u(s),c=Yn(Pn,Kn(l,0,Tn[e])),d=Yn(Pn,Kn(l,Tn[e],2*Tn[e])),m=Kn(l,2*Tn[e]);return a.assign(n,{keys:{key:c,authentication:d,passwordVerification:m},ctr:new _n(new Nn(c),t.from(Rn)),hmac:new Bn(d)}),m}function Gn(n,e){return e===J?dn(n):e}function Vn(n,e){let t=n;return n.length+e.length&&(t=new u(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function Kn(n,e,t){return n.subarray(e,t)}function Jn(n,e){return n.fromBits(e)}function Yn(n,e){return n.toBits(e)}const Zn=12;class $n extends x{constructor({password:n,passwordVerification:e,checkPasswordOnly:t}){super({start(){a.assign(this,{password:n,passwordVerification:e}),ee(this,n)},transform(n,e){const a=this;if(a.password){const e=Qn(a,n.subarray(0,Zn));if(a.password=null,e[11]!=a.passwordVerification)throw new p(yn);n=n.subarray(Zn)}t?e.error(new p(vn)):e.enqueue(Qn(a,n))}})}}class Xn extends x{constructor({password:n,passwordVerification:e}){super({start(){a.assign(this,{password:n,passwordVerification:e}),ee(this,n)},transform(n,e){const t=this;let a,o;if(t.password){t.password=null;const e=Sn(new u(Zn));e[11]=t.passwordVerification,a=new u(n.length+e.length),a.set(ne(t,e),0),o=Zn}else a=new u(n.length),o=0;a.set(ne(t,n),o),e.enqueue(a)}})}}function Qn(n,e){const t=new u(e.length);for(let a=0;a<e.length;a++)t[a]=ae(n)^e[a],te(n,t[a]);return t}function ne(n,e){const t=new u(e.length);for(let a=0;a<e.length;a++)t[a]=ae(n)^e[a],te(n,e[a]);return t}function ee(n,e){const t=[305419896,591751049,878082192];a.assign(n,{keys:t,crcKey0:new ln(t[0]),crcKey2:new ln(t[2])});for(let t=0;t<e.length;t++)te(n,e.charCodeAt(t))}function te(n,e){let[t,a,o]=n.keys;n.crcKey0.append([e]),t=~n.crcKey0.get(),a=ie(s.imul(ie(a+oe(t)),134775813)+1),n.crcKey2.append([a>>>24]),o=~n.crcKey2.get(),n.keys=[t,a,o]}function ae(n){const e=2|n.keys[2];return oe(s.imul(e,1^e)>>>8)}function oe(n){return 255&n}function ie(n){return 4294967295&n}const re="deflate-raw";class se extends x{constructor(n,{chunkSize:e,CompressionStream:t,CompressionStreamNative:a}){super({});const{compressed:o,encrypted:i,useCompressionStream:r,zipCrypto:s,signed:l,level:c}=n,d=this;let m,h,p=ce(super.readable);i&&!s||!l||(m=new cn,p=he(p,m)),o&&(p=me(p,r,{level:c,chunkSize:e},a,t)),i&&(s?p=he(p,new Xn(n)):(h=new qn(n),p=he(p,h))),de(d,p,()=>{let n;i&&!s&&(n=h.signature),i&&!s||!l||(n=new b(m.value.buffer).getUint32(0)),d.signature=n})}}class le extends x{constructor(n,{chunkSize:e,DecompressionStream:t,DecompressionStreamNative:a}){super({});const{zipCrypto:o,encrypted:i,signed:r,signature:s,compressed:l,useCompressionStream:c}=n;let d,m,h=ce(super.readable);i&&(o?h=he(h,new $n(n)):(m=new Un(n),h=he(h,m))),l&&(h=me(h,c,{chunkSize:e},a,t)),i&&!o||!r||(d=new cn,h=he(h,d)),de(this,h,()=>{if((!i||o)&&r){const n=new b(d.value.buffer);if(s!=n.getUint32(0,!1))throw new p(kn)}})}}function ce(n){return he(n,new x({transform(n,e){n&&n.length&&e.enqueue(n)}}))}function de(n,e,t){e=he(e,new x({flush:t})),a.defineProperty(n,"readable",{get:()=>e})}function me(n,e,t,a,o){try{n=he(n,new(e&&a?a:o)(re,t))}catch(a){if(!e)return n;try{n=he(n,new o(re,t))}catch(e){return n}}return n}function he(n,e){return n.pipeThrough(e)}const pe="message",ue="start",ge="pull",we="data",be="close",fe="deflate",ye="inflate";class ke extends x{constructor(n,e){super({});const t=this,{codecType:o}=n;let i;o.startsWith(fe)?i=se:o.startsWith(ye)&&(i=le);let r=0,s=0;const l=new i(n,e),c=super.readable,d=new x({transform(n,e){n&&n.length&&(s+=n.length,e.enqueue(n))},flush(){a.assign(t,{inputSize:s})}}),m=new x({transform(n,e){n&&n.length&&(r+=n.length,e.enqueue(n))},flush(){const{signature:n}=l;a.assign(t,{signature:n,outputSize:r,inputSize:s})}});a.defineProperty(t,"readable",{get:()=>c.pipeThrough(d).pipeThrough(l).pipeThrough(m)})}}class ve extends x{constructor(n){let e;super({transform:function t(a,o){if(e){const n=new u(e.length+a.length);n.set(e),n.set(a,e.length),a=n,e=null}a.length>n?(o.enqueue(a.slice(0,n)),t(a.slice(n),o)):e=a},flush(n){e&&e.length&&n.enqueue(e)}})}}let Se=typeof E!=Y;class je{constructor(n,{readable:e,writable:t},{options:o,config:i,streamOptions:r,useWebWorkers:s,transferStreams:l,scripts:c},d){const{signal:m}=r;return a.assign(n,{busy:!0,readable:e.pipeThrough(new ve(i.chunkSize)).pipeThrough(new xe(e,r),{signal:m}),writable:t,options:a.assign({},o),scripts:c,transferStreams:l,terminate:()=>new y(e=>{const{worker:t,busy:a}=n;t?(a?n.resolveTerminated=e:(t.terminate(),e()),n.interface=null):e()}),onTaskFinished(){const{resolveTerminated:e}=n;e&&(n.resolveTerminated=null,n.terminated=!0,n.worker.terminate(),e()),n.busy=!1,d(n)}}),(s&&Se?Le:Ae)(n,i)}}class xe extends x{constructor(n,{onstart:e,onprogress:t,size:a,onend:o}){let i=0;super({async start(){e&&await Ce(e,a)},async transform(n,e){i+=n.length,t&&await Ce(t,i,a),e.enqueue(n)},async flush(){n.size=i,o&&await Ce(o,i)}})}}async function Ce(n,...e){try{await n(...e)}catch(n){}}function Ae(n,e){return{run:()=>async function({options:n,readable:e,writable:t,onTaskFinished:a},o){try{const a=new ke(n,o);await e.pipeThrough(a).pipeTo(t,{preventClose:!0,preventAbort:!0});const{signature:i,inputSize:r,outputSize:s}=a;return{signature:i,inputSize:r,outputSize:s}}finally{a()}}(n,e)}}function Le(n,e){const{baseURL:t,chunkSize:o}=e;if(!n.interface){let i;try{i=function(n,e,t){const o={type:"module"};let i,r;typeof n==Z&&(n=n());try{i=new h(n,e)}catch(e){i=n}if(ze)try{r=new E(i)}catch(n){ze=!1,r=new E(i,o)}else r=new E(i,o);return r.addEventListener(pe,n=>async function({data:n},e){const{type:t,value:o,messageId:i,result:r,error:s}=n,{reader:l,writer:c,resolveResult:d,rejectResult:m,onTaskFinished:h}=e;try{if(s){const{message:n,stack:e,code:t,name:o}=s,i=new p(n);a.assign(i,{stack:e,code:t,name:o}),g(i)}else{if(t==ge){const{value:n,done:t}=await l.read();Ee({type:we,value:n,done:t,messageId:i},e)}t==we&&(await c.ready,await c.write(new u(o)),Ee({type:"ack",messageId:i},e)),t==be&&g(null,r)}}catch(s){Ee({type:be,messageId:i},e),g(s)}function g(n,e){n?m(n):d(e),c&&c.releaseLock(),h()}}(n,t)),r}(n.scripts[0],t,n)}catch(t){return Se=!1,Ae(n,e)}a.assign(n,{worker:i,interface:{run:()=>async function(n,e){let t,o;const i=new y((n,e)=>{t=n,o=e});a.assign(n,{reader:null,writer:null,resolveResult:t,rejectResult:o,result:i});const{readable:r,options:s,scripts:l}=n,{writable:c,closed:d}=function(n){let e;const t=new y(n=>e=n),a=new A({async write(e){const t=n.getWriter();await t.ready,await t.write(e),t.releaseLock()},close(){e()},abort:e=>n.getWriter().abort(e)});return{writable:a,closed:t}}(n.writable),m=Ee({type:ue,scripts:l.slice(1),options:s,config:e,readable:r,writable:c},n);m||a.assign(n,{reader:r.getReader(),writer:c.getWriter()});const h=await i;m||await c.getWriter().close();return await d,h}(n,{chunkSize:o})}})}return n.interface}let ze=!0,Te=!0;function Ee(n,{worker:e,writer:t,onTaskFinished:a,transferStreams:o}){try{let{value:t,readable:a,writable:i}=n;const r=[];if(t&&(t.byteLength<t.buffer.byteLength?n.value=t.buffer.slice(0,t.byteLength):n.value=t.buffer,r.push(n.value)),o&&Te?(a&&r.push(a),i&&r.push(i)):n.readable=n.writable=null,r.length)try{return e.postMessage(n,r),!0}catch(t){Te=!1,n.readable=n.writable=null,e.postMessage(n)}else e.postMessage(n)}catch(n){throw t&&t.releaseLock(),a(),n}}let Re=[];const Ie=[];let De=0;async function Me(n,e){const{options:t,config:a}=e,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,codecType:l,compressed:c,signed:d,encrypted:m}=t,{workerScripts:h,maxWorkers:p}=a;e.transferStreams=o||o===J;const u=!(c||d||m||e.transferStreams);return e.useWebWorkers=!u&&(r||r===J&&a.useWebWorkers),e.scripts=e.useWebWorkers&&h?h[l]:[],t.useCompressionStream=s||s===J&&a.useCompressionStream,(await async function(){const t=Re.find(n=>!n.busy);if(t)return Pe(t),new je(t,n,e,g);if(Re.length<p){const t={indexWorker:De};return De++,Re.push(t),new je(t,n,e,g)}return new y(t=>Ie.push({resolve:t,stream:n,workerOptions:e}))}()).run();function g(n){if(Ie.length){const[{resolve:e,stream:t,workerOptions:a}]=Ie.splice(0,1);e(new je(n,t,a,g))}else n.worker?(Pe(n),function(n,e){const{config:t}=e,{terminateWorkerTimeout:a}=t;i.isFinite(a)&&a>=0&&(n.terminated?n.terminated=!1:n.terminateTimeout=setTimeout(async()=>{Re=Re.filter(e=>e!=n);try{await n.terminate()}catch(n){}},a))}(n,e)):Re=Re.filter(e=>e!=n)}}function Pe(n){const{terminateTimeout:e}=n;e&&(clearTimeout(e),n.terminateTimeout=null)}const Ne="HTTP error ",_e="HTTP Range not supported",Be="Writer iterator completed too soon",Oe="Range",Fe="GET",Ue="bytes",qe=65536,He="writable";class We{constructor(){this.size=0}init(){this.initialized=!0}}class Ge extends We{get readable(){const n=this,{chunkSize:e=qe}=n,t=new C({start(){this.chunkOffset=0},async pull(a){const{offset:o=0,size:i,diskNumberStart:r}=t,{chunkOffset:l}=this;a.enqueue(await wt(n,o+l,s.min(e,i-l),r)),l+e>i?a.close():this.chunkOffset+=e}});return t}}class Ve extends We{constructor(){super();const n=this,e=new A({write:e=>n.writeUint8Array(e)});a.defineProperty(n,He,{get:()=>e})}writeUint8Array(){}}class Ke extends Ge{constructor(n){super(),a.assign(this,{blob:n,size:n.size})}async readUint8Array(n,e){const t=this,a=n+e,o=n||a<t.size?t.blob.slice(n,a):t.blob;let i=await o.arrayBuffer();return i.byteLength>e&&(i=i.slice(n,a)),new u(i)}}class Je extends We{constructor(n){super();const e=new x,t=[];n&&t.push(["Content-Type",n]),a.defineProperty(this,He,{get:()=>e.writable}),this.blob=new m(e.readable,{headers:t}).blob()}getData(){return this.blob}}class Ye extends Ke{constructor(n){super(new f([n],{type:"text/plain"}))}}class Ze extends Ge{constructor(n,e){super(),Xe(this,n,e)}async init(){await Qe(this,st,at),super.init()}readUint8Array(n,e){return nt(this,n,e,st,at)}}class $e extends Ge{constructor(n,e){super(),Xe(this,n,e)}async init(){await Qe(this,lt,ot),super.init()}readUint8Array(n,e){return nt(this,n,e,lt,ot)}}function Xe(n,e,t){const{preventHeadRequest:o,useRangeHeader:i,forceRangeRequests:r,combineSizeEocd:s}=t;delete(t=a.assign({},t)).preventHeadRequest,delete t.useRangeHeader,delete t.forceRangeRequests,delete t.combineSizeEocd,delete t.useXHR,a.assign(n,{url:e,options:t,preventHeadRequest:o,useRangeHeader:i,forceRangeRequests:r,combineSizeEocd:s})}async function Qe(n,e,t){const{url:a,preventHeadRequest:o,useRangeHeader:r,forceRangeRequests:s,combineSizeEocd:l}=n;if(function(n){const{baseURL:e}=en(),{protocol:t}=new h(n,e);return"http:"==t||"https:"==t}(a)&&(r||s)&&(void 0===o||o)){const a=await e(Fe,n,et(n,l?-22:void 0));if(!s&&a.headers.get("Accept-Ranges")!=Ue)throw new p(_e);{let o;l&&(n.eocdCache=new u(await a.arrayBuffer()));const r=a.headers.get("Content-Range");if(r){const n=r.trim().split(/\s*\/\s*/);if(n.length){const e=n[1];e&&"*"!=e&&(o=i(e))}}o===J?await rt(n,e,t):n.size=o}}else await rt(n,e,t)}async function nt(n,e,t,a,o){const{useRangeHeader:i,forceRangeRequests:r,eocdCache:s,size:l,options:c}=n;if(i||r){if(s&&e==l-F&&t==F)return s;const o=await a(Fe,n,et(n,e,t));if(206!=o.status)throw new p(_e);return new u(await o.arrayBuffer())}{const{data:a}=n;return a||await o(n,c),new u(n.data.subarray(e,e+t))}}function et(n,e=0,t=1){return a.assign({},tt(n),{[Oe]:Ue+"="+(e<0?e:e+"-"+(e+t-1))})}function tt({options:n}){const{headers:e}=n;if(e)return Symbol.iterator in e?a.fromEntries(e):e}async function at(n){await it(n,st)}async function ot(n){await it(n,lt)}async function it(n,e){const t=await e(Fe,n,tt(n));n.data=new u(await t.arrayBuffer()),n.size||(n.size=n.data.length)}async function rt(n,e,t){if(n.preventHeadRequest)await t(n,n.options);else{const a=(await e("HEAD",n,tt(n))).headers.get("Content-Length");a?n.size=i(a):await t(n,n.options)}}async function st(n,{options:e,url:t},o){const i=await fetch(t,a.assign({},e,{method:n,headers:o}));if(i.status<400)return i;throw 416==i.status?new p(_e):new p(Ne+(i.statusText||i.status))}function lt(n,{url:e},t){return new y((o,i)=>{const r=new XMLHttpRequest;if(r.addEventListener("load",()=>{if(r.status<400){const n=[];r.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const t=e.trim().split(/\s*:\s*/);t[0]=t[0].trim().replace(/^[a-z]|-[a-z]/g,n=>n.toUpperCase()),n.push(t)}),o({status:r.status,arrayBuffer:()=>r.response,headers:new c(n)})}else i(416==r.status?new p(_e):new p(Ne+(r.statusText||r.status)))},!1),r.addEventListener("error",n=>i(n.detail?n.detail.error:new p("Network error")),!1),r.open(n,e),t)for(const n of a.entries(t))r.setRequestHeader(n[0],n[1]);r.responseType="arraybuffer",r.send()})}class ct extends Ge{constructor(n,e={}){super(),a.assign(this,{url:n,reader:e.useXHR?new $e(n,e):new Ze(n,e)})}set size(n){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(n,e){return this.reader.readUint8Array(n,e)}}class dt extends Ve{init(n=0){a.assign(this,{offset:0,array:new u(n)}),super.init()}writeUint8Array(n){const e=this;if(e.offset+n.length>e.array.length){const t=e.array;e.array=new u(t.length+n.length),e.array.set(t)}e.array.set(n,e.offset),e.offset+=n.length}getData(){return this.array}}class mt extends Ge{constructor(n){super(),this.readers=n}async init(){const n=this,{readers:e}=n;n.lastDiskNumber=0,n.lastDiskOffset=0,await y.all(e.map(async(t,a)=>{await t.init(),a!=e.length-1&&(n.lastDiskOffset+=t.size),n.size+=t.size})),super.init()}async readUint8Array(n,e,t=0){const a=this,{readers:o}=this;let i,r=t;-1==r&&(r=o.length-1);let l=n;for(;l>=o[r].size;)l-=o[r].size,r++;const c=o[r],d=c.size;if(l+e<=d)i=await wt(c,l,e);else{const o=d-l;i=new u(e),i.set(await wt(c,l,o)),i.set(await a.readUint8Array(n+o,e-o,t),o)}return a.lastDiskNumber=s.max(r,a.lastDiskNumber),i}}class ht extends We{constructor(n,e=4294967295){super();const t=this;let o,i,r;a.assign(t,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});const s=new A({async write(e){const{availableSize:a}=t;if(r)e.length>=a?(await l(e.slice(0,a)),await c(),t.diskOffset+=o.size,t.diskNumber++,r=null,await this.write(e.slice(a))):await l(e);else{const{value:a,done:s}=await n.next();if(s&&!a)throw new p(Be);o=a,o.size=0,o.maxSize&&(t.maxSize=o.maxSize),t.availableSize=t.maxSize,await pt(o),i=a.writable,r=i.getWriter(),await this.write(e)}},async close(){await r.ready,await c()}});async function l(n){const e=n.length;e&&(await r.ready,await r.write(n),o.size+=e,t.size+=e,t.availableSize-=e)}async function c(){i.size=o.size,await r.close()}a.defineProperty(t,He,{get:()=>s})}}async function pt(n,e){if(!n.init||n.initialized)return y.resolve();await n.init(e)}function ut(n){return t.isArray(n)&&(n=new mt(n)),n instanceof C&&(n={readable:n}),n}function gt(n){n.writable===J&&typeof n.next==Z&&(n=new ht(n)),n instanceof A&&(n={writable:n});const{writable:e}=n;return e.size===J&&(e.size=0),n instanceof ht||a.assign(n,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),n}function wt(n,e,t,a){return n.readUint8Array(e,t,a)}const bt=mt,ft=ht,yt="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),kt=256==yt.length;function vt(n,e){return e&&"cp437"==e.trim().toLowerCase()?function(n){if(kt){let e="";for(let t=0;t<n.length;t++)e+=yt[n[t]];return e}return(new v).decode(n)}(n):new v(e).decode(n)}const St="filename",jt="rawFilename",xt="comment",Ct="rawComment",At="uncompressedSize",Lt="compressedSize",zt="offset",Tt="diskNumberStart",Et="lastModDate",Rt="rawLastModDate",It="lastAccessDate",Dt="rawLastAccessDate",Mt="creationDate",Pt="rawCreationDate",Nt="internalFileAttribute",_t="externalFileAttribute",Bt="msDosCompatible",Ot="zip64",Ft=[St,jt,Lt,At,Et,Rt,xt,Ct,It,Mt,zt,Tt,Tt,Nt,_t,Bt,Ot,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ut{constructor(n){Ft.forEach(e=>this[e]=n[e])}}const qt="File format is not recognized",Ht="End of central directory not found",Wt="End of Zip64 central directory locator not found",Gt="Central directory header not found",Vt="Local file header not found",Kt="Zip64 extra field not found",Jt="File contains encrypted entry",Yt="Encryption method not supported",Zt="Compression method not supported",$t="Split zip file",Xt="utf-8",Qt="cp437",na=[[At,R],[Lt,R],[zt,R],[Tt,I]],ea={[I]:{getValue:ha,bytes:4},[R]:{getValue:pa,bytes:8}};class ta{constructor(n,e={}){a.assign(this,{reader:ut(n),options:e,config:en()})}async*getEntriesGenerator(n={}){const e=this;let{reader:t}=e;const{config:o}=e;if(await pt(t),t.size!==J&&t.readUint8Array||(t=new Ke(await new m(t.readable).blob()),await pt(t)),t.size<F)throw new p(qt);t.chunkSize=tn(o);const i=await async function(n,e,t,a,o){const i=new u(4);!function(n,e,t){n.setUint32(e,t,!0)}(ua(i),0,e);const r=a+o;return await l(a)||await l(s.min(r,t));async function l(e){const o=t-e,r=await wt(n,o,e);for(let n=r.length-a;n>=0;n--)if(r[n]==i[0]&&r[n+1]==i[1]&&r[n+2]==i[2]&&r[n+3]==i[3])return{offset:o+n,buffer:r.slice(n,n+a).buffer}}}(t,_,t.size,F,1048560);if(!i){throw ha(ua(await wt(t,0,4)))==M?new p($t):new p(Ht)}const r=ua(i);let l=ha(r,12),c=ha(r,16);const d=i.offset,h=ma(r,20),g=d+F+h;let w=ma(r,4);const b=t.lastDiskNumber||0;let f=ma(r,6),y=ma(r,8),k=0,v=0;if(c==R||l==R||y==I||f==I){const n=ua(await wt(t,i.offset-20,20));if(ha(n,0)==O){c=pa(n,8);let e=await wt(t,c,56,-1),a=ua(e);const o=i.offset-20-56;if(ha(a,0)!=B&&c!=o){const n=c;c=o,k=c-n,e=await wt(t,c,56,-1),a=ua(e)}if(ha(a,0)!=B)throw new p(Wt);w==I&&(w=ha(a,16)),f==I&&(f=ha(a,20)),y==I&&(y=pa(a,32)),l==R&&(l=pa(a,40)),c-=l}}if(c>=t.size&&(k=t.size-c-l-F,c=t.size-l-F),b!=w)throw new p($t);if(c<0)throw new p(qt);let S=0,j=await wt(t,c,l,f),x=ua(j);if(l){const n=i.offset-l;if(ha(x,S)!=N&&c!=n){const e=c;c=n,k+=c-e,j=await wt(t,c,l,f),x=ua(j)}}const C=i.offset-c-(t.lastDiskOffset||0);if(l!=C&&C>=0&&(l=C,j=await wt(t,c,l,f),x=ua(j)),c<0||c>=t.size)throw new p(qt);const A=sa(e,n,"filenameEncoding"),L=sa(e,n,"commentEncoding");for(let i=0;i<y;i++){const r=new aa(t,o,e.options);if(ha(x,S)!=N)throw new p(Gt);oa(r,x,S+6);const l=Boolean(r.bitFlag.languageEncodingFlag),c=S+46,d=c+r.filenameLength,m=d+r.extraFieldLength,h=ma(x,S+4),u=!(0&h),g=j.subarray(c,d),w=ma(x,S+32),b=m+w,f=j.subarray(m,b),C=l,z=l,T=u&&!(16&~da(x,S+38)),E=ha(x,S+42)+k;a.assign(r,{versionMadeBy:h,msDosCompatible:u,compressedSize:0,uncompressedSize:0,commentLength:w,directory:T,offset:E,diskNumberStart:ma(x,S+34),internalFileAttribute:ma(x,S+36),externalFileAttribute:ha(x,S+38),rawFilename:g,filenameUTF8:C,commentUTF8:z,rawExtraField:j.subarray(d,m)});const R=sa(e,n,"decodeText")||vt,I=C?Xt:A||Qt,D=z?Xt:L||Qt;let M=R(g,I);M===J&&(M=vt(g,I));let P=R(f,D);P===J&&(P=vt(f,D)),a.assign(r,{rawComment:f,filename:M,comment:P,directory:T||M.endsWith(G)}),v=s.max(E,v),await ia(r,r,x,S+6);const _=new Ut(r);_.getData=(n,e)=>r.getData(n,_,e),S=b;const{onprogress:B}=n;if(B)try{await B(i+1,y,new Ut(r))}catch(n){}yield _}const z=sa(e,n,"extractPrependedData"),T=sa(e,n,"extractAppendedData");return z&&(e.prependedData=v>0?await wt(t,0,v):new u),e.comment=h?await wt(t,d+F,h):new u,T&&(e.appendedData=g<t.size?await wt(t,g,t.size-g):new u),!0}async getEntries(n={}){const e=[];for await(const t of this.getEntriesGenerator(n))e.push(t);return e}async close(){}}class aa{constructor(n,e,t){a.assign(this,{reader:n,config:e,options:t})}async getData(n,e,t={}){const o=this,{reader:i,offset:r,diskNumberStart:s,extraFieldAES:l,compressionMethod:c,config:d,bitFlag:m,signature:h,rawLastModDate:g,uncompressedSize:w,compressedSize:b}=o,f=e.localDirectory={},y=ua(await wt(i,r,30,s));let k=sa(o,t,"password"),v=sa(o,t,"rawPassword");if(k=k&&k.length&&k,v=v&&v.length&&v,l&&99!=l.originalCompressionMethod)throw new p(Zt);if(0!=c&&8!=c)throw new p(Zt);if(ha(y,0)!=D)throw new p(Vt);oa(f,y,4),f.rawExtraField=f.extraFieldLength?await wt(i,r+30+f.filenameLength,f.extraFieldLength,s):new u,await ia(o,f,y,4,!0),a.assign(e,{lastAccessDate:f.lastAccessDate,creationDate:f.creationDate});const S=o.encrypted&&f.encrypted,j=S&&!l;if(S){if(!j&&l.strength===J)throw new p(Yt);if(!k&&!v)throw new p(Jt)}const x=r+30+f.filenameLength+f.extraFieldLength,C=b,L=i.readable;a.assign(L,{diskNumberStart:s,offset:x,size:C});const z=sa(o,t,"signal"),T=sa(o,t,"checkPasswordOnly");T&&(n=new A),n=gt(n),await pt(n,w);const{writable:E}=n,{onstart:R,onprogress:I,onend:M}=t,P={options:{codecType:ye,password:k,rawPassword:v,zipCrypto:j,encryptionStrength:l&&l.strength,signed:sa(o,t,"checkSignature"),passwordVerification:j&&(m.dataDescriptor?g>>>8&255:h>>>24&255),signature:h,compressed:0!=c,encrypted:S,useWebWorkers:sa(o,t,"useWebWorkers"),useCompressionStream:sa(o,t,"useCompressionStream"),transferStreams:sa(o,t,"transferStreams"),checkPasswordOnly:T},config:d,streamOptions:{signal:z,size:C,onstart:R,onprogress:I,onend:M}};let N=0;try{({outputSize:N}=await Me({readable:L,writable:E},P))}catch(n){if(!T||n.message!=vn)throw n}finally{const n=sa(o,t,"preventClose");E.size+=N,n||E.locked||await E.getWriter().close()}return T?J:n.getData?n.getData():E}}function oa(n,e,t){const o=n.rawBitFlag=ma(e,t+2),i=!(1&~o),r=ha(e,t+6);a.assign(n,{encrypted:i,version:ma(e,t),bitFlag:{level:(6&o)>>1,dataDescriptor:!(8&~o),languageEncodingFlag:(o&W)==W},rawLastModDate:r,lastModDate:la(r),filenameLength:ma(e,t+22),extraFieldLength:ma(e,t+24)})}async function ia(n,e,t,o,i){const{rawExtraField:r}=e,s=e.extraField=new c,d=ua(new u(r));let m=0;try{for(;m<r.length;){const n=ma(d,m),e=ma(d,m+2);s.set(n,{type:n,data:r.slice(m+4,m+4+e)}),m+=4+e}}catch(n){}const h=ma(t,o+4);a.assign(e,{signature:ha(t,o+10),uncompressedSize:ha(t,o+18),compressedSize:ha(t,o+14)});const g=s.get(1);g&&(!function(n,e){e.zip64=!0;const t=ua(n.data),a=na.filter(([n,t])=>e[n]==t);for(let o=0,i=0;o<a.length;o++){const[r,s]=a[o];if(e[r]==s){const a=ea[s];e[r]=n[r]=a.getValue(t,i),i+=a.bytes}else if(n[r])throw new p(Kt)}}(g,e),e.extraFieldZip64=g);const w=s.get(28789);w&&(await ra(w,St,jt,e,n),e.extraFieldUnicodePath=w);const b=s.get(25461);b&&(await ra(b,xt,Ct,e,n),e.extraFieldUnicodeComment=b);const f=s.get(39169);f?(!function(n,e,t){const o=ua(n.data),i=da(o,4);a.assign(n,{vendorVersion:da(o,0),vendorId:da(o,2),strength:i,originalCompressionMethod:t,compressionMethod:ma(o,5)}),e.compressionMethod=n.compressionMethod}(f,e,h),e.extraFieldAES=f):e.compressionMethod=h;const y=s.get(10);y&&(!function(n,e){const t=ua(n.data);let o,i=4;try{for(;i<n.data.length&&!o;){const e=ma(t,i),a=ma(t,i+2);1==e&&(o=n.data.slice(i+4,i+4+a)),i+=4+a}}catch(n){}try{if(o&&24==o.length){const t=ua(o),i=t.getBigUint64(0,!0),r=t.getBigUint64(8,!0),s=t.getBigUint64(16,!0);a.assign(n,{rawLastModDate:i,rawLastAccessDate:r,rawCreationDate:s});const l=ca(i),c=ca(r),d={lastModDate:l,lastAccessDate:c,creationDate:ca(s)};a.assign(n,d),a.assign(e,d)}}catch(n){}}(y,e),e.extraFieldNTFS=y);const k=s.get(q);k&&(!function(n,e,t){const a=ua(n.data),o=da(a,0),i=[],r=[];t?(1&~o||(i.push(Et),r.push(Rt)),2&~o||(i.push(It),r.push(Dt)),4&~o||(i.push(Mt),r.push(Pt))):n.data.length>=5&&(i.push(Et),r.push(Rt));let s=1;i.forEach((t,o)=>{if(n.data.length>=s+4){const i=ha(a,s);e[t]=n[t]=new l(1e3*i);const c=r[o];n[c]=i}s+=4})}(k,e,i),e.extraFieldExtendedTimestamp=k);const v=s.get(6534);v&&(e.extraFieldUSDZ=v)}async function ra(n,e,t,o,i){const r=ua(n.data),s=new ln;s.append(i[t]);const l=ua(new u(4));l.setUint32(0,s.get(),!0);const c=ha(r,1);a.assign(n,{version:da(r,0),[e]:vt(n.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&c==ha(l,0)}),n.valid&&(o[e]=n[e],o[e+"UTF8"]=!0)}function sa(n,e,t){return e[t]===J?n.options[t]:e[t]}function la(n){const e=(4294901760&n)>>16,t=65535&n;try{return new l(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch(n){}}function ca(n){return new l(i(n/r(1e4)-r(116444736e5)))}function da(n,e){return n.getUint8(e)}function ma(n,e){return n.getUint16(e,!0)}function ha(n,e){return n.getUint32(e,!0)}function pa(n,e){return i(n.getBigUint64(e,!0))}function ua(n){return new b(n.buffer)}const ga="File already exists",wa="Zip file comment exceeds 64KB",ba="File entry comment exceeds 64KB",fa="File entry name exceeds 64KB",ya="Version exceeds 65535",ka="The strength must equal 1, 2, or 3",va="Extra field type exceeds 65535",Sa="Extra field data exceeds 64KB",ja="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",xa=new u([7,0,2,0,65,69,3,0,0]);let Ca=0;const Aa=[];class La{constructor(n,e={}){const t=(n=gt(n)).availableSize!==J&&n.availableSize>0&&n.availableSize!==1/0&&n.maxSize!==J&&n.maxSize>0&&n.maxSize!==1/0;a.assign(this,{writer:n,addSplitZipSignature:t,options:e,config:en(),files:new c,filenames:new d,offset:n.writable.size,pendingEntriesSize:0,pendingAddFileCalls:new d,bufferedWrites:0})}async add(n="",e,o={}){const i=this,{pendingAddFileCalls:c,config:d}=i;let h;Ca<d.maxWorkers?Ca++:await new y(n=>Aa.push(n));try{if(n=n.trim(),i.filenames.has(n))throw new p(ga);return i.filenames.add(n),h=async function(n,e,o,i){e=e.trim(),i.directory&&!e.endsWith(G)?e+=G:i.directory=e.endsWith(G);const c=Ea(n,i,"encodeText",dn);let d=c(e);d===J&&(d=dn(e));if(_a(d)>I)throw new p(fa);const h=i.comment||"";let f=c(h);f===J&&(f=dn(h));if(_a(f)>I)throw new p(ba);const k=Ea(n,i,"version",20);if(k>I)throw new p(ya);const v=Ea(n,i,"versionMadeBy",20);if(v>I)throw new p(ya);const S=Ea(n,i,Et,new l),j=Ea(n,i,It),C=Ea(n,i,Mt),A=Ea(n,i,Bt,!0),L=Ea(n,i,Nt,0),z=Ea(n,i,_t,0),T=Ea(n,i,"password"),E=Ea(n,i,"rawPassword"),N=Ea(n,i,"encryptionStrength",3),_=Ea(n,i,"zipCrypto"),B=Ea(n,i,"extendedTimestamp",!0),O=Ea(n,i,"keepOrder",!0),F=Ea(n,i,"level"),Y=Ea(n,i,"useWebWorkers"),Z=Ea(n,i,"bufferedWrite"),$=Ea(n,i,"dataDescriptorSignature",!1),X=Ea(n,i,"signal"),Q=Ea(n,i,"useCompressionStream");let nn=Ea(n,i,"dataDescriptor",!0),en=Ea(n,i,Ot);if(T!==J&&N!==J&&(N<1||N>3))throw new p(ka);let an=new u;const{extraField:on}=i;if(on){let n=0,e=0;on.forEach(e=>n+=4+_a(e)),an=new u(n),on.forEach((n,t)=>{if(t>I)throw new p(va);if(_a(n)>I)throw new p(Sa);Pa(an,new g([t]),e),Pa(an,new g([_a(n)]),e+2),Pa(an,n,e+4),e+=4+_a(n)})}let rn=0,sn=0,ln=0;const cn=!0===en;o&&(o=ut(o),await pt(o),o.size===J?(nn=!0,(en||en===J)&&(en=!0,ln=rn=4294967296)):(ln=o.size,rn=function(n){return n+5*(s.floor(n/16383)+1)}(ln)));const{diskOffset:mn,diskNumber:hn,maxSize:pn}=n.writer,un=cn||ln>R,gn=cn||rn>R,wn=cn||n.offset+n.pendingEntriesSize-mn>R,bn=Ea(n,i,"supportZip64SplitFile",!0),fn=bn&&cn||hn+s.ceil(n.pendingEntriesSize/pn)>I;if(wn||un||gn||fn){if(!1===en||!O)throw new p(ja);en=!0}en=en||!1,i=a.assign({},i,{rawFilename:d,rawComment:f,version:k,versionMadeBy:v,lastModDate:S,lastAccessDate:j,creationDate:C,rawExtraField:an,zip64:en,zip64UncompressedSize:un,zip64CompressedSize:gn,zip64Offset:wn,zip64DiskNumberStart:fn,password:T,rawPassword:E,level:Q||n.config.CompressionStream!==J||n.config.CompressionStreamNative!==J?F:0,useWebWorkers:Y,encryptionStrength:N,extendedTimestamp:B,zipCrypto:_,bufferedWrite:Z,keepOrder:O,dataDescriptor:nn,dataDescriptorSignature:$,signal:X,msDosCompatible:A,internalFileAttribute:L,externalFileAttribute:z,useCompressionStream:Q});const yn=function(n){const{rawFilename:e,lastModDate:t,lastAccessDate:a,creationDate:o,rawPassword:i,password:r,level:l,zip64:c,zipCrypto:d,dataDescriptor:m,directory:h,rawExtraField:p,encryptionStrength:g,extendedTimestamp:b}=n,f=0!==l&&!h,y=Boolean(r&&_a(r)||i&&_a(i));let k,v,S,j,x=n.version;if(y&&!d){k=new u(_a(xa)+2);const n=Na(k);Ia(n,0,U),Pa(k,xa,2),Ra(n,8,g)}else k=new u;if(b){S=new u(9+(a?4:0)+(o?4:0));const n=Na(S);Ia(n,0,q),Ia(n,2,_a(S)-4),j=1+(a?2:0)+(o?4:0),Ra(n,4,j);let e=5;Da(n,e,s.floor(t.getTime()/1e3)),e+=4,a&&(Da(n,e,s.floor(a.getTime()/1e3)),e+=4),o&&Da(n,e,s.floor(o.getTime()/1e3));try{v=new u(36);const n=Na(v),e=Ta(t);Ia(n,0,10),Ia(n,2,32),Ia(n,8,1),Ia(n,10,24),Ma(n,12,e),Ma(n,20,Ta(a)||e),Ma(n,28,Ta(o)||e)}catch(n){v=new u}}else v=S=new u;let C=W;m&&(C|=8);let A=0;f&&(A=8);c&&(x=x>45?x:45);y&&(C|=1,d||(x=x>51?x:51,A=99,f&&(k[9]=8)));const L=new u(26),z=Na(L);Ia(z,0,x),Ia(z,2,C),Ia(z,4,A);const T=new w(1),E=Na(T);let R;R=t<K?K:t>V?V:t;Ia(E,0,(R.getHours()<<6|R.getMinutes())<<5|R.getSeconds()/2),Ia(E,2,(R.getFullYear()-1980<<4|R.getMonth()+1)<<5|R.getDate());const I=T[0];Da(z,6,I),Ia(z,22,_a(e));const M=_a(k,S,v,p);Ia(z,24,M);const P=new u(30+_a(e)+M);return Da(Na(P),0,D),Pa(P,L,4),Pa(P,e,30),Pa(P,k,30+_a(e)),Pa(P,S,30+_a(e,k)),Pa(P,v,30+_a(e,k,S)),Pa(P,p,30+_a(e,k,S,v)),{localHeaderArray:P,headerArray:L,headerView:z,lastModDate:t,rawLastModDate:I,encrypted:y,compressed:f,version:x,compressionMethod:A,extraFieldExtendedTimestampFlag:j,rawExtraFieldExtendedTimestamp:S,rawExtraFieldNTFS:v,rawExtraFieldAES:k,extraFieldLength:M}}(i),kn=function(n){const{zip64:e,dataDescriptor:t,dataDescriptorSignature:a}=n;let o,i=new u,r=0;t&&(i=new u(e?a?24:20:a?16:12),o=Na(i),a&&(r=4,Da(o,0,P)));return{dataDescriptorArray:i,dataDescriptorView:o,dataDescriptorOffset:r}}(i),vn=_a(yn.localHeaderArray,kn.dataDescriptorArray);sn=vn+rn,n.options.usdz&&(sn+=sn+64);let Sn;n.pendingEntriesSize+=sn;try{Sn=await async function(n,e,o,i,s){const{files:l,writer:c}=n,{keepOrder:d,dataDescriptor:h,signal:g}=s,{headerInfo:w}=i,{usdz:f}=n.options,k=t.from(l.values()).pop();let v,S,j,C,A,L,z,T={};l.set(e,T);try{let t;d&&(t=k&&k.lock,E()),!(s.bufferedWrite||n.writerLocked||n.bufferedWrites&&d)&&h||f?(L=c,await I()):(L=new x,z=new m(L.readable).blob(),L.writable.size=0,v=!0,n.bufferedWrites++,await pt(c)),await pt(L);const{writable:w}=c;let{diskOffset:y}=c;if(n.addSplitZipSignature){delete n.addSplitZipSignature;const e=new u(4);Da(Na(e),0,M),await za(w,e),n.offset+=4}f&&function(n,e){const{headerInfo:t}=n;let{localHeaderArray:a,extraFieldLength:o}=t,i=Na(a),r=64-(e+_a(a))%64;r<4&&(r+=64);const s=new u(r),l=Na(s);Ia(l,0,H),Ia(l,2,r-2);const c=a;t.localHeaderArray=a=new u(_a(c)+r),Pa(a,c),Pa(a,s,_a(c)),i=Na(a),Ia(i,28,o+r),n.metadataSize+=r}(i,n.offset-y),v||(await t,await D(w));const{diskNumber:S}=c;if(A=!0,T.diskNumberStart=S,T=await async function(n,e,{diskNumberStart:t,lock:o},i,s,l){const{headerInfo:c,dataDescriptorInfo:d,metadataSize:m}=i,{localHeaderArray:h,headerArray:p,lastModDate:g,rawLastModDate:w,encrypted:b,compressed:f,version:y,compressionMethod:k,rawExtraFieldExtendedTimestamp:v,extraFieldExtendedTimestampFlag:S,rawExtraFieldNTFS:j,rawExtraFieldAES:x}=c,{dataDescriptorArray:C}=d,{rawFilename:A,lastAccessDate:L,creationDate:z,password:T,rawPassword:E,level:I,zip64:D,zip64UncompressedSize:M,zip64CompressedSize:P,zip64Offset:N,zip64DiskNumberStart:_,zipCrypto:B,dataDescriptor:O,directory:F,versionMadeBy:U,rawComment:q,rawExtraField:H,useWebWorkers:W,onstart:G,onprogress:V,onend:K,signal:Y,encryptionStrength:Z,extendedTimestamp:$,msDosCompatible:X,internalFileAttribute:Q,externalFileAttribute:nn,useCompressionStream:en}=l,an={lock:o,versionMadeBy:U,zip64:D,directory:Boolean(F),filenameUTF8:!0,rawFilename:A,commentUTF8:!0,rawComment:q,rawExtraFieldExtendedTimestamp:v,rawExtraFieldNTFS:j,rawExtraFieldAES:x,rawExtraField:H,extendedTimestamp:$,msDosCompatible:X,internalFileAttribute:Q,externalFileAttribute:nn,diskNumberStart:t};let on,rn=0,sn=0;const{writable:ln}=e;if(n){n.chunkSize=tn(s),await za(ln,h);const e=n.readable,t=e.size=n.size,a={options:{codecType:fe,level:I,rawPassword:E,password:T,encryptionStrength:Z,zipCrypto:b&&B,passwordVerification:b&&B&&w>>8&255,signed:!0,compressed:f,encrypted:b,useWebWorkers:W,useCompressionStream:en,transferStreams:!1},config:s,streamOptions:{signal:Y,size:t,onstart:G,onprogress:V,onend:K}},o=await Me({readable:e,writable:ln},a);sn=o.inputSize,rn=o.outputSize,on=o.signature,ln.size+=sn}else await za(ln,h);let cn;if(D){let n=4;M&&(n+=8),P&&(n+=8),N&&(n+=8),_&&(n+=4),cn=new u(n)}else cn=new u;(function(n,e){const{signature:t,rawExtraFieldZip64:a,compressedSize:o,uncompressedSize:i,headerInfo:s,dataDescriptorInfo:l}=n,{headerView:c,encrypted:d}=s,{dataDescriptorView:m,dataDescriptorOffset:h}=l,{zip64:p,zip64UncompressedSize:u,zip64CompressedSize:g,zipCrypto:w,dataDescriptor:b}=e;d&&!w||t===J||(Da(c,10,t),b&&Da(m,h,t));if(p){const n=Na(a);Ia(n,0,1),Ia(n,2,_a(a)-4);let e=4;u&&(Da(c,18,R),Ma(n,e,r(i)),e+=8),g&&(Da(c,14,R),Ma(n,e,r(o))),b&&(Ma(m,h+4,r(o)),Ma(m,h+12,r(i)))}else Da(c,14,o),Da(c,18,i),b&&(Da(m,h+4,o),Da(m,h+8,i))})({signature:on,rawExtraFieldZip64:cn,compressedSize:rn,uncompressedSize:sn,headerInfo:c,dataDescriptorInfo:d},l),O&&await za(ln,C);return a.assign(an,{uncompressedSize:sn,compressedSize:rn,lastModDate:g,rawLastModDate:w,creationDate:z,lastAccessDate:L,encrypted:b,size:m+rn,compressionMethod:k,version:y,headerArray:p,signature:on,rawExtraFieldZip64:cn,extraFieldExtendedTimestampFlag:S,zip64UncompressedSize:M,zip64CompressedSize:P,zip64Offset:N,zip64DiskNumberStart:_}),an}(o,L,T,i,n.config,s),A=!1,l.set(e,T),T.filename=e,v){await L.writable.getWriter().close();let n=await z;await t,await I(),C=!0,h||(n=await async function(n,e,t,{zipCrypto:a}){let o;o=await e.slice(0,26).arrayBuffer(),26!=o.byteLength&&(o=o.slice(0,26));const i=new b(o);n.encrypted&&!a||Da(i,14,n.signature);n.zip64?(Da(i,18,R),Da(i,22,R)):(Da(i,18,n.compressedSize),Da(i,22,n.uncompressedSize));return await za(t,new u(o)),e.slice(o.byteLength)}(T,n,w,s)),await D(w),T.diskNumberStart=c.diskNumber,y=c.diskOffset,await n.stream().pipeTo(w,{preventClose:!0,preventAbort:!0,signal:g}),w.size+=n.size,C=!1}if(T.offset=n.offset-y,T.zip64)!function(n,e){const{rawExtraFieldZip64:t,offset:a,diskNumberStart:o}=n,{zip64UncompressedSize:i,zip64CompressedSize:s,zip64Offset:l,zip64DiskNumberStart:c}=e,d=Na(t);let m=4;i&&(m+=8);s&&(m+=8);l&&(Ma(d,m,r(a)),m+=8);c&&Da(d,m,o)}(T,s);else if(T.offset>R)throw new p(ja);return n.offset+=T.size,T}catch(t){if(v&&C||!v&&A){if(n.hasCorruptedEntries=!0,t)try{t.corruptedEntry=!0}catch(n){}v?n.offset+=L.writable.size:n.offset=L.writable.size}throw l.delete(e),t}finally{v&&n.bufferedWrites--,j&&j(),S&&S()}function E(){T.lock=new y(n=>j=n)}async function I(){n.writerLocked=!0;const{lockWriter:e}=n;n.lockWriter=new y(e=>S=()=>{n.writerLocked=!1,e()}),await e}async function D(n){_a(w.localHeaderArray)>c.availableSize&&(c.availableSize=0,await za(n,new u))}}(n,e,o,{headerInfo:yn,dataDescriptorInfo:kn,metadataSize:vn},i)}finally{n.pendingEntriesSize-=sn}return a.assign(Sn,{name:e,comment:h,extraField:on}),new Ut(Sn)}(i,n,e,o),c.add(h),await h}catch(e){throw i.filenames.delete(n),e}finally{c.delete(h);const n=Aa.shift();n?n():Ca--}}async close(n=new u,e={}){const{pendingAddFileCalls:a,writer:o}=this,{writable:i}=o;for(;a.size;)await y.allSettled(t.from(a));await async function(n,e,a){const{files:o,writer:i}=n,{diskOffset:l,writable:c}=i;let{diskNumber:d}=i,m=0,h=0,g=n.offset-l,w=o.size;for(const[,n]of o){const{rawFilename:e,rawExtraFieldZip64:t,rawExtraFieldAES:a,rawComment:o,rawExtraFieldNTFS:i,rawExtraField:r,extendedTimestamp:l,extraFieldExtendedTimestampFlag:c,lastModDate:d}=n;let m;if(l){m=new u(9);const n=Na(m);Ia(n,0,q),Ia(n,2,5),Ra(n,4,c),Da(n,5,s.floor(d.getTime()/1e3))}else m=new u;n.rawExtraFieldCDExtendedTimestamp=m,h+=46+_a(e,o,t,a,i,m,r)}const b=new u(h),f=Na(b);await pt(i);let y=0;for(const[n,e]of t.from(o.values()).entries()){const{offset:t,rawFilename:r,rawExtraFieldZip64:s,rawExtraFieldAES:l,rawExtraFieldCDExtendedTimestamp:d,rawExtraFieldNTFS:h,rawExtraField:p,rawComment:u,versionMadeBy:g,headerArray:w,directory:k,zip64:v,zip64UncompressedSize:S,zip64CompressedSize:j,zip64DiskNumberStart:x,zip64Offset:C,msDosCompatible:A,internalFileAttribute:L,externalFileAttribute:z,diskNumberStart:T,uncompressedSize:E,compressedSize:D}=e,M=_a(s,l,d,h,p);Da(f,m,N),Ia(f,m+4,g);const P=Na(w);S||Da(P,18,E),j||Da(P,14,D),Pa(b,w,m+6),Ia(f,m+30,M),Ia(f,m+32,_a(u)),Ia(f,m+34,v&&x?I:T),Ia(f,m+36,L),z?Da(f,m+38,z):k&&A&&Ra(f,m+38,16),Da(f,m+42,v&&C?R:t),Pa(b,r,m+46),Pa(b,s,m+46+_a(r)),Pa(b,l,m+46+_a(r,s)),Pa(b,d,m+46+_a(r,s,l)),Pa(b,h,m+46+_a(r,s,l,d)),Pa(b,p,m+46+_a(r,s,l,d,h)),Pa(b,u,m+46+_a(r)+M);const _=46+_a(r,u)+M;if(m-y>i.availableSize&&(i.availableSize=0,await za(c,b.slice(y,m)),y=m),m+=_,a.onprogress)try{await a.onprogress(n+1,o.size,new Ut(e))}catch(n){}}await za(c,y?b.slice(y):b);let k=i.diskNumber;const{availableSize:v}=i;v<F&&k++;let S=Ea(n,a,"zip64");if(g>R||h>R||w>I||k>I){if(!1===S)throw new p(ja);S=!0}const j=new u(S?98:F),x=Na(j);if(m=0,S){Da(x,0,B),Ma(x,4,r(44)),Ia(x,12,45),Ia(x,14,45),Da(x,16,k),Da(x,20,d),Ma(x,24,r(w)),Ma(x,32,r(w)),Ma(x,40,r(h)),Ma(x,48,r(g)),Da(x,56,O),Ma(x,64,r(g)+r(h)),Da(x,72,k+1);Ea(n,a,"supportZip64SplitFile",!0)&&(k=I,d=I),w=I,g=R,h=R,m+=76}Da(x,m,_),Ia(x,m+4,k),Ia(x,m+6,d),Ia(x,m+8,w),Ia(x,m+10,w),Da(x,m+12,h),Da(x,m+16,g);const C=_a(e);if(C){if(!(C<=I))throw new p(wa);Ia(x,m+20,C)}await za(c,j),C&&await za(c,e)}(this,n,e);return Ea(this,e,"preventClose")||await i.getWriter().close(),o.getData?o.getData():i}}async function za(n,e){const t=n.getWriter();try{await t.ready,n.size+=_a(e),await t.write(e)}finally{t.releaseLock()}}function Ta(n){if(n)return(r(n.getTime())+r(116444736e5))*r(1e4)}function Ea(n,e,t,a){const o=e[t]===J?n.options[t]:e[t];return o===J?a:o}function Ra(n,e,t){n.setUint8(e,t)}function Ia(n,e,t){n.setUint16(e,t,!0)}function Da(n,e,t){n.setUint32(e,t,!0)}function Ma(n,e,t){n.setBigUint64(e,t,!0)}function Pa(n,e,t){n.set(e,t)}function Na(n){return new b(n.buffer)}function _a(...n){let e=0;return n.forEach(n=>n&&(e+=n.length)),e}let Ba;try{Ba="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:e&&"SCRIPT"===e.tagName.toUpperCase()&&e.src||new URL("single-file.js",document.baseURI).href}catch(n){}an({baseURL:Ba}),function(n){const e=()=>h.createObjectURL(new f(['const{Array:e,Object:t,Number:n,Math:s,Error:r,Uint8Array:a,Uint16Array:i,Uint32Array:o,Int32Array:l,Map:c,DataView:h,Promise:f,TextEncoder:u,crypto:p,postMessage:d,TransformStream:g,ReadableStream:w,WritableStream:y,CompressionStream:v,DecompressionStream:b}=self,m=void 0,_="undefined",S="function";class k{constructor(e){return class extends g{constructor(t,n){const s=new e(n);super({transform(e,t){t.enqueue(s.append(e))},flush(e){const t=s.flush();t&&e.enqueue(t)}})}}}}const z=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;z[e]=t}class D{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let n=0,s=0|e.length;s>n;n++)t=t>>>8^z[255&(t^e[n])];this.crc=t}get(){return~this.crc}}class C extends g{constructor(){let e;const t=new D;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new a(4);new h(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const x={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],s=x.getPartial(n);return 32===s?e.concat(t):x._shiftRight(t,s,0|n,e.slice(0,e.length-1))},bitLength(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+x.getPartial(n)},clamp(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,s.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=x.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,getPartial:e=>s.round(e/1099511627776)||32,_shiftRight(e,t,n,s){for(void 0===s&&(s=[]);t>=32;t-=32)s.push(n),n=0;if(0===t)return s.concat(e);for(let r=0;r<e.length;r++)s.push(n|e[r]>>>t),n=e[r]<<32-t;const r=e.length?e[e.length-1]:0,a=x.getPartial(r);return s.push(x.partial(t+a&31,t+a>32?n:s.pop(),1)),s}},I={bytes:{fromBits(e){const t=x.bitLength(e)/8,n=new a(t);let s;for(let r=0;t>r;r++)3&r||(s=e[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(e){const t=[];let n,s=0;for(n=0;n<e.length;n++)s=s<<8|e[n],3&~n||(t.push(s),s=0);return 3&n&&t.push(x.partial(8*(3&n),s)),t}}},T=class{constructor(e){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){const e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){const t=this;"string"==typeof e&&(e=I.utf8String.toBits(e));const n=t._buffer=x.concat(t._buffer,e),s=t._length,a=t._length=s+x.bitLength(e);if(a>9007199254740991)throw new r("Cannot hash more than 2^53 - 1 bits");const i=new o(n);let l=0;for(let e=t.blockSize+s-(t.blockSize+s&t.blockSize-1);a>=e;e+=t.blockSize)t._block(i.subarray(16*l,16*(l+1))),l+=1;return n.splice(0,16*l),t}finalize(){const e=this;let t=e._buffer;const n=e._h;t=x.concat(t,[x.partial(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(s.floor(e._length/4294967296)),t.push(0|e._length);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,s){return e>19?e>39?e>59?e>79?void 0:t^n^s:t&n|t&s|n&s:t^n^s:t&n|~t&s}_S(e,t){return t<<e|t>>>32-e}_block(t){const n=this,r=n._h,a=e(80);for(let e=0;16>e;e++)a[e]=t[e];let i=r[0],o=r[1],l=r[2],c=r[3],h=r[4];for(let e=0;79>=e;e++){16>e||(a[e]=n._S(1,a[e-3]^a[e-8]^a[e-14]^a[e-16]));const t=n._S(5,i)+n._f(e,o,l,c)+h+a[e]+n._key[s.floor(e/20)]|0;h=c,c=l,l=n._S(30,o),o=i,i=t}r[0]=r[0]+i|0,r[1]=r[1]+o|0,r[2]=r[2]+l|0,r[3]=r[3]+c|0,r[4]=r[4]+h|0}},A={getRandomValues(e){const t=new o(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(s.random()>.5?1:-1))};for(let r,a=0;a<e.length;a+=4){const e=n(4294967296*(r||s.random()));r=987654071*e(),t[a/4]=4294967296*e()|0}return e}},q={importKey:e=>new q.hmacSha1(I.bytes.toBits(e)),pbkdf2(e,t,n,s){if(n=n||1e4,0>s||0>n)throw new r("invalid params to pbkdf2");const a=1+(s>>5)<<2;let i,o,l,c,f;const u=new ArrayBuffer(a),p=new h(u);let d=0;const g=x;for(t=I.bytes.toBits(t),f=1;(a||1)>d;f++){for(i=o=e.encrypt(g.concat(t,[f])),l=1;n>l;l++)for(o=e.encrypt(o),c=0;c<o.length;c++)i[c]^=o[c];for(l=0;(a||1)>d&&l<i.length;l++)p.setInt32(d,i[l]),d+=4}return u.slice(0,s/8)},hmacSha1:class{constructor(e){const t=this,n=t._hash=T,s=[[],[]];t._baseHash=[new n,new n];const r=t._baseHash[0].blockSize/32;e.length>r&&(e=(new n).update(e).finalize());for(let t=0;r>t;t++)s[0][t]=909522486^e[t],s[1][t]=1549556828^e[t];t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new n(t._baseHash[0])}reset(){const e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){this._updated=!0,this._resultHash.update(e)}digest(){const e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new r("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof p!=_&&typeof p.getRandomValues==S,H="Invalid password",P="Invalid signature",B="zipjs-abort-check-password";function K(e){return R?p.getRandomValues(e):A.getRandomValues(e)}const V=16,E={name:"PBKDF2"},U=t.assign({hash:{name:"HMAC"}},E),W=t.assign({iterations:1e3,hash:{name:"SHA-1"}},E),M=["deriveBits"],N=[8,12,16],O=[16,24,32],F=10,L=[0,0,0,0],j=typeof p!=_,G=j&&p.subtle,X=j&&typeof G!=_,J=I.bytes,Q=class{constructor(e){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const n=t._tables[0][4],s=t._tables[1],a=e.length;let i,o,l,c=1;if(4!==a&&6!==a&&8!==a)throw new r("invalid aes key size");for(t._key=[o=e.slice(0),l=[]],i=a;4*a+28>i;i++){let e=o[i-1];(i%a==0||8===a&&i%a==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],i%a==0&&(e=e<<8^e>>>24^c<<24,c=c<<1^283*(c>>7))),o[i]=o[i-a]^e}for(let e=0;i;e++,i--){const t=o[3&e?i:i-4];l[e]=4>=i||4>e?t:s[0][n[t>>>24]]^s[1][n[t>>16&255]]^s[2][n[t>>8&255]]^s[3][n[255&t]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){const e=this._tables[0],t=this._tables[1],n=e[4],s=t[4],r=[],a=[];let i,o,l,c;for(let e=0;256>e;e++)a[(r[e]=e<<1^283*(e>>7))^e]=e;for(let h=i=0;!n[h];h^=o||1,i=a[i]||1){let a=i^i<<1^i<<2^i<<3^i<<4;a=a>>8^255&a^99,n[h]=a,s[a]=h,c=r[l=r[o=r[h]]];let f=16843009*c^65537*l^257*o^16843008*h,u=257*r[a]^16843008*a;for(let n=0;4>n;n++)e[n][h]=u=u<<24^u>>>8,t[n][a]=f=f<<24^f>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}_crypt(e,t){if(4!==e.length)throw new r("invalid aes block size");const n=this._key[t],s=n.length/4-2,a=[0,0,0,0],i=this._tables[t],o=i[0],l=i[1],c=i[2],h=i[3],f=i[4];let u,p,d,g=e[0]^n[0],w=e[t?3:1]^n[1],y=e[2]^n[2],v=e[t?1:3]^n[3],b=4;for(let e=0;s>e;e++)u=o[g>>>24]^l[w>>16&255]^c[y>>8&255]^h[255&v]^n[b],p=o[w>>>24]^l[y>>16&255]^c[v>>8&255]^h[255&g]^n[b+1],d=o[y>>>24]^l[v>>16&255]^c[g>>8&255]^h[255&w]^n[b+2],v=o[v>>>24]^l[g>>16&255]^c[w>>8&255]^h[255&y]^n[b+3],b+=4,g=u,w=p,y=d;for(let e=0;4>e;e++)a[t?3&-e:e]=f[g>>>24]<<24^f[w>>16&255]<<16^f[y>>8&255]<<8^f[255&v]^n[b++],u=g,g=w,w=y,y=v,v=u;return a}},Y=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,s=255&e;255===t?(t=0,255===n?(n=0,255===s?s=0:++s):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=s}return e}incCounter(e){0===(e[0]=this.incWord(e[0]))&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let s;if(!(s=t.length))return[];const r=x.bitLength(t);for(let r=0;s>r;r+=4){this.incCounter(n);const s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return x.clamp(t,r)}},Z=q.hmacSha1;let $=j&&X&&typeof G.importKey==S,ee=j&&X&&typeof G.deriveBits==S;class te extends g{constructor({password:e,rawPassword:n,signed:s,encryptionStrength:i,checkPasswordOnly:o}){super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:ae(e,n),signed:s,strength:i-1,pending:new a})},async transform(e,t){const n=this,{password:s,strength:i,resolveReady:l,ready:c}=n;s?(await(async(e,t,n,s)=>{const a=await re(e,t,n,oe(s,0,N[t])),i=oe(s,N[t]);if(a[0]!=i[0]||a[1]!=i[1])throw new r(H)})(n,i,s,oe(e,0,N[i]+2)),e=oe(e,N[i]+2),o?t.error(new r(B)):l()):await c;const h=new a(e.length-F-(e.length-F)%V);t.enqueue(se(n,e,h,0,F,!0))},async flush(e){const{signed:t,ctr:n,hmac:s,pending:i,ready:o}=this;if(s&&n){await o;const l=oe(i,0,i.length-F),c=oe(i,i.length-F);let h=new a;if(l.length){const e=ce(J,l);s.update(e);const t=n.update(e);h=le(J,t)}if(t){const e=oe(le(J,s.digest()),0,F);for(let t=0;F>t;t++)if(e[t]!=c[t])throw new r(P)}e.enqueue(h)}}})}}class ne extends g{constructor({password:e,rawPassword:n,encryptionStrength:s}){let r;super({start(){t.assign(this,{ready:new f((e=>this.resolveReady=e)),password:ae(e,n),strength:s-1,pending:new a})},async transform(e,t){const n=this,{password:s,strength:r,resolveReady:i,ready:o}=n;let l=new a;s?(l=await(async(e,t,n)=>{const s=K(new a(N[t]));return ie(s,await re(e,t,n,s))})(n,r,s),i()):await o;const c=new a(l.length+e.length-e.length%V);c.set(l,0),t.enqueue(se(n,e,c,l.length,0))},async flush(e){const{ctr:t,hmac:n,pending:s,ready:i}=this;if(n&&t){await i;let o=new a;if(s.length){const e=t.update(ce(J,s));n.update(e),o=le(J,e)}r.signature=le(J,n.digest()).slice(0,F),e.enqueue(ie(o,r.signature))}}}),r=this}}function se(e,t,n,s,r,i){const{ctr:o,hmac:l,pending:c}=e,h=t.length-r;let f;for(c.length&&(t=ie(c,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new a(t)).set(n,0)}return e})(n,h-h%V)),f=0;h-V>=f;f+=V){const e=ce(J,oe(t,f,f+V));i&&l.update(e);const r=o.update(e);i||l.update(r),n.set(le(J,r),f+s)}return e.pending=oe(t,f),n}async function re(n,s,r,i){n.password=null;const o=await(async(e,t,n,s,r)=>{if(!$)return q.importKey(t);try{return await G.importKey("raw",t,n,!1,r)}catch(e){return $=!1,q.importKey(t)}})(0,r,U,0,M),l=await(async(e,t,n)=>{if(!ee)return q.pbkdf2(t,e.salt,W.iterations,n);try{return await G.deriveBits(e,t,n)}catch(s){return ee=!1,q.pbkdf2(t,e.salt,W.iterations,n)}})(t.assign({salt:i},W),o,8*(2*O[s]+2)),c=new a(l),h=ce(J,oe(c,0,O[s])),f=ce(J,oe(c,O[s],2*O[s])),u=oe(c,2*O[s]);return t.assign(n,{keys:{key:h,authentication:f,passwordVerification:u},ctr:new Y(new Q(h),e.from(L)),hmac:new Z(f)}),u}function ae(e,t){return t===m?(e=>{if(typeof u==_){const t=new a((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new u).encode(e)})(e):t}function ie(e,t){let n=e;return e.length+t.length&&(n=new a(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function oe(e,t,n){return e.subarray(t,n)}function le(e,t){return e.fromBits(t)}function ce(e,t){return e.toBits(t)}class he extends g{constructor({password:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;if(n.password){const t=ue(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new r(H);e=e.subarray(12)}s?t.error(new r(B)):t.enqueue(ue(n,e))}})}}class fe extends g{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;let s,r;if(n.password){n.password=null;const t=K(new a(12));t[11]=n.passwordVerification,s=new a(e.length+t.length),s.set(pe(n,t),0),r=12}else s=new a(e.length),r=0;s.set(pe(n,e),r),t.enqueue(s)}})}}function ue(e,t){const n=new a(t.length);for(let s=0;s<t.length;s++)n[s]=we(e)^t[s],ge(e,n[s]);return n}function pe(e,t){const n=new a(t.length);for(let s=0;s<t.length;s++)n[s]=we(e)^t[s],ge(e,t[s]);return n}function de(e,n){const s=[305419896,591751049,878082192];t.assign(e,{keys:s,crcKey0:new D(s[0]),crcKey2:new D(s[2])});for(let t=0;t<n.length;t++)ge(e,n.charCodeAt(t))}function ge(e,t){let[n,r,a]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),r=ve(s.imul(ve(r+ye(n)),134775813)+1),e.crcKey2.append([r>>>24]),a=~e.crcKey2.get(),e.keys=[n,r,a]}function we(e){const t=2|e.keys[2];return ye(s.imul(t,1^t)>>>8)}function ye(e){return 255&e}function ve(e){return 4294967295&e}const be="deflate-raw";class me extends g{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:s}){super({});const{compressed:r,encrypted:a,useCompressionStream:i,zipCrypto:o,signed:l,level:c}=e,f=this;let u,p,d=Se(super.readable);a&&!o||!l||(u=new C,d=De(d,u)),r&&(d=ze(d,i,{level:c,chunkSize:t},s,n)),a&&(o?d=De(d,new fe(e)):(p=new ne(e),d=De(d,p))),ke(f,d,(()=>{let e;a&&!o&&(e=p.signature),a&&!o||!l||(e=new h(u.value.buffer).getUint32(0)),f.signature=e}))}}class _e extends g{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:s}){super({});const{zipCrypto:a,encrypted:i,signed:o,signature:l,compressed:c,useCompressionStream:f}=e;let u,p,d=Se(super.readable);i&&(a?d=De(d,new he(e)):(p=new te(e),d=De(d,p))),c&&(d=ze(d,f,{chunkSize:t},s,n)),i&&!a||!o||(u=new C,d=De(d,u)),ke(this,d,(()=>{if((!i||a)&&o){const e=new h(u.value.buffer);if(l!=e.getUint32(0,!1))throw new r(P)}}))}}function Se(e){return De(e,new g({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ke(e,n,s){n=De(n,new g({flush:s})),t.defineProperty(e,"readable",{get:()=>n})}function ze(e,t,n,s,r){try{e=De(e,new(t&&s?s:r)(be,n))}catch(s){if(!t)return e;try{e=De(e,new r(be,n))}catch(t){return e}}return e}function De(e,t){return e.pipeThrough(t)}const Ce="data",xe="close";class Ie extends g{constructor(e,n){super({});const s=this,{codecType:r}=e;let a;r.startsWith("deflate")?a=me:r.startsWith("inflate")&&(a=_e);let i=0,o=0;const l=new a(e,n),c=super.readable,h=new g({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){t.assign(s,{inputSize:o})}}),f=new g({transform(e,t){e&&e.length&&(i+=e.length,t.enqueue(e))},flush(){const{signature:e}=l;t.assign(s,{signature:e,outputSize:i,inputSize:o})}});t.defineProperty(s,"readable",{get:()=>c.pipeThrough(h).pipeThrough(l).pipeThrough(f)})}}class Te extends g{constructor(e){let t;super({transform:function n(s,r){if(t){const e=new a(t.length+s.length);e.set(t),e.set(s,t.length),s=e,t=null}s.length>e?(r.enqueue(s.slice(0,e)),n(s.slice(e),r)):t=s},flush(e){t&&t.length&&e.enqueue(t)}})}}const Ae=new c,qe=new c;let Re,He=0,Pe=!0;async function Be(e){try{const{options:t,scripts:s,config:r}=e;if(s&&s.length)try{Pe?importScripts.apply(m,s):await Ke(s)}catch(e){Pe=!1,await Ke(s)}self.initCodec&&self.initCodec(),r.CompressionStreamNative=self.CompressionStream,r.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(r.CompressionStream=new k(self.Deflate)),self.Inflate&&(r.DecompressionStream=new k(self.Inflate));const a={highWaterMark:1},i=e.readable||new w({async pull(e){const t=new f((e=>Ae.set(He,e)));Ve({type:"pull",messageId:He}),He=(He+1)%n.MAX_SAFE_INTEGER;const{value:s,done:r}=await t;e.enqueue(s),r&&e.close()}},a),o=e.writable||new y({async write(e){let t;const s=new f((e=>t=e));qe.set(He,t),Ve({type:Ce,value:e,messageId:He}),He=(He+1)%n.MAX_SAFE_INTEGER,await s}},a),l=new Ie(t,r);Re=new AbortController;const{signal:c}=Re;await i.pipeThrough(l).pipeThrough(new Te(r.chunkSize)).pipeTo(o,{signal:c,preventClose:!0,preventAbort:!0}),await o.getWriter().close();const{signature:h,inputSize:u,outputSize:p}=l;Ve({type:xe,result:{signature:h,inputSize:u,outputSize:p}})}catch(e){Ee(e)}}async function Ke(e){for(const t of e)await import(t)}function Ve(e){let{value:t}=e;if(t)if(t.length)try{t=new a(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ee(e=new r("Unknown error")){const{message:t,stack:n,code:s,name:a}=e;d({error:{message:t,stack:n,code:s,name:a}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:s,done:r}=e;try{if("start"==t&&Be(e),t==Ce){const e=Ae.get(n);Ae.delete(n),e({value:new a(s),done:r})}if("ack"==t){const e=qe.get(n);qe.delete(n),e()}t==xe&&Re.abort()}catch(e){Ee(e)}}));var Ue=a,We=i,Me=l,Ne=new Ue([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,0,0,0]),Oe=new Ue([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,0,0]),Fe=new Ue([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Le=(e,t)=>{for(var n=new We(31),s=0;31>s;++s)n[s]=t+=1<<e[s-1];var r=new Me(n[30]);for(s=1;30>s;++s)for(var a=n[s];a<n[s+1];++a)r[a]=a-n[s]<<5|s;return{b:n,r:r}},je=Le(Ne,2),Ge=je.b,Xe=je.r;Ge[28]=258,Xe[258]=28;for(var Je=Le(Oe,0),Qe=Je.b,Ye=Je.r,Ze=new We(32768),$e=0;32768>$e;++$e){var et=(43690&$e)>>1|(21845&$e)<<1;et=(61680&(et=(52428&et)>>2|(13107&et)<<2))>>4|(3855&et)<<4,Ze[$e]=((65280&et)>>8|(255&et)<<8)>>1}var tt=(e,t,n)=>{for(var s=e.length,r=0,a=new We(t);s>r;++r)e[r]&&++a[e[r]-1];var i,o=new We(t);for(r=1;t>r;++r)o[r]=o[r-1]+a[r-1]<<1;if(n){i=new We(1<<t);var l=15-t;for(r=0;s>r;++r)if(e[r])for(var c=r<<4|e[r],h=t-e[r],f=o[e[r]-1]++<<h,u=f|(1<<h)-1;u>=f;++f)i[Ze[f]>>l]=c}else for(i=new We(s),r=0;s>r;++r)e[r]&&(i[r]=Ze[o[e[r]-1]++]>>15-e[r]);return i},nt=new Ue(288);for($e=0;144>$e;++$e)nt[$e]=8;for($e=144;256>$e;++$e)nt[$e]=9;for($e=256;280>$e;++$e)nt[$e]=7;for($e=280;288>$e;++$e)nt[$e]=8;var st=new Ue(32);for($e=0;32>$e;++$e)st[$e]=5;var rt=tt(nt,9,0),at=tt(nt,9,1),it=tt(st,5,0),ot=tt(st,5,1),lt=e=>{for(var t=e[0],n=1;n<e.length;++n)e[n]>t&&(t=e[n]);return t},ct=(e,t,n)=>{var s=t/8|0;return(e[s]|e[s+1]<<8)>>(7&t)&n},ht=(e,t)=>{var n=t/8|0;return(e[n]|e[n+1]<<8|e[n+2]<<16)>>(7&t)},ft=e=>(e+7)/8|0,ut=(e,t,n)=>((null==t||0>t)&&(t=0),(null==n||n>e.length)&&(n=e.length),new Ue(e.subarray(t,n))),pt=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],dt=(e,t,n)=>{var s=new r(t||pt[e]);if(s.code=e,r.captureStackTrace&&r.captureStackTrace(s,dt),!n)throw s;return s},gt=(e,t,n)=>{n<<=7&t;var s=t/8|0;e[s]|=n,e[s+1]|=n>>8},wt=(e,t,n)=>{n<<=7&t;var s=t/8|0;e[s]|=n,e[s+1]|=n>>8,e[s+2]|=n>>16},yt=(e,t)=>{for(var n=[],s=0;s<e.length;++s)e[s]&&n.push({s:s,f:e[s]});var r=n.length,a=n.slice();if(!r)return{t:zt,l:0};if(1==r){var i=new Ue(n[0].s+1);return i[n[0].s]=1,{t:i,l:1}}n.sort(((e,t)=>e.f-t.f)),n.push({s:-1,f:25001});var o=n[0],l=n[1],c=0,h=1,f=2;for(n[0]={s:-1,f:o.f+l.f,l:o,r:l};h!=r-1;)o=n[n[c].f<n[f].f?c++:f++],l=n[c!=h&&n[c].f<n[f].f?c++:f++],n[h++]={s:-1,f:o.f+l.f,l:o,r:l};var u=a[0].s;for(s=1;r>s;++s)a[s].s>u&&(u=a[s].s);var p=new We(u+1),d=vt(n[h-1],p,0);if(d>t){s=0;var g=0,w=d-t,y=1<<w;for(a.sort(((e,t)=>p[t.s]-p[e.s]||e.f-t.f));r>s;++s){var v=a[s].s;if(p[v]<=t)break;g+=y-(1<<d-p[v]),p[v]=t}for(g>>=w;g>0;){var b=a[s].s;p[b]<t?g-=1<<t-p[b]++-1:++s}for(;s>=0&&g;--s){var m=a[s].s;p[m]==t&&(--p[m],++g)}d=t}return{t:new Ue(p),l:d}},vt=(e,t,n)=>-1==e.s?s.max(vt(e.l,t,n+1),vt(e.r,t,n+1)):t[e.s]=n,bt=e=>{for(var t=e.length;t&&!e[--t];);for(var n=new We(++t),s=0,r=e[0],a=1,i=e=>{n[s++]=e},o=1;t>=o;++o)if(e[o]==r&&o!=t)++a;else{if(!r&&a>2){for(;a>138;a-=138)i(32754);a>2&&(i(a>10?a-11<<5|28690:a-3<<5|12305),a=0)}else if(a>3){for(i(r),--a;a>6;a-=6)i(8304);a>2&&(i(a-3<<5|8208),a=0)}for(;a--;)i(r);a=1,r=e[o]}return{c:n.subarray(0,s),n:t}},mt=(e,t)=>{for(var n=0,s=0;s<t.length;++s)n+=e[s]*t[s];return n},_t=(e,t,n)=>{var s=n.length,r=ft(t+2);e[r]=255&s,e[r+1]=s>>8,e[r+2]=255^e[r],e[r+3]=255^e[r+1];for(var a=0;s>a;++a)e[r+a+4]=n[a];return 8*(r+4+s)},St=(e,t,n,s,r,a,i,o,l,c,h)=>{gt(t,h++,n),++r[256];for(var f=yt(r,15),u=f.t,p=f.l,d=yt(a,15),g=d.t,w=d.l,y=bt(u),v=y.c,b=y.n,m=bt(g),_=m.c,S=m.n,k=new We(19),z=0;z<v.length;++z)++k[31&v[z]];for(z=0;z<_.length;++z)++k[31&_[z]];for(var D=yt(k,7),C=D.t,x=D.l,I=19;I>4&&!C[Fe[I-1]];--I);var T,A,q,R,H=c+5<<3,P=mt(r,nt)+mt(a,st)+i,B=mt(r,u)+mt(a,g)+i+14+3*I+mt(k,C)+2*k[16]+3*k[17]+7*k[18];if(l>=0&&P>=H&&B>=H)return _t(t,h,e.subarray(l,l+c));if(gt(t,h,1+(P>B)),h+=2,P>B){T=tt(u,p,0),A=u,q=tt(g,w,0),R=g;var K=tt(C,x,0);for(gt(t,h,b-257),gt(t,h+5,S-1),gt(t,h+10,I-4),h+=14,z=0;I>z;++z)gt(t,h+3*z,C[Fe[z]]);h+=3*I;for(var V=[v,_],E=0;2>E;++E){var U=V[E];for(z=0;z<U.length;++z){var W=31&U[z];gt(t,h,K[W]),h+=C[W],W>15&&(gt(t,h,U[z]>>5&127),h+=U[z]>>12)}}}else T=rt,A=nt,q=it,R=st;for(z=0;o>z;++z){var M=s[z];if(M>255){wt(t,h,T[257+(W=M>>18&31)]),h+=A[W+257],W>7&&(gt(t,h,M>>23&31),h+=Ne[W]);var N=31&M;wt(t,h,q[N]),h+=R[N],N>3&&(wt(t,h,M>>5&8191),h+=Oe[N])}else wt(t,h,T[M]),h+=A[M]}return wt(t,h,T[256]),h+A[256]},kt=new Me([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),zt=new Ue(0),Dt=function(){function e(e,t){if("function"==typeof e&&(t=e,e={}),this.ondata=t,this.o=e||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new Ue(98304),this.o.dictionary){var n=this.o.dictionary.subarray(-32768);this.b.set(n,32768-n.length),this.s.i=32768-n.length}}return e.prototype.p=function(e,t){this.ondata(((e,t,n,r,a)=>{if(!a&&(a={l:1},t.dictionary)){var i=t.dictionary.subarray(-32768),o=new Ue(i.length+e.length);o.set(i),o.set(e,i.length),e=o,a.w=i.length}return((e,t,n,r,a,i)=>{var o=i.z||e.length,l=new Ue(0+o+5*(1+s.ceil(o/7e3))+0),c=l.subarray(0,l.length-0),h=i.l,f=7&(i.r||0);if(t){f&&(c[0]=i.r>>3);for(var u=kt[t-1],p=u>>13,d=8191&u,g=(1<<n)-1,w=i.p||new We(32768),y=i.h||new We(g+1),v=s.ceil(n/3),b=2*v,m=t=>(e[t]^e[t+1]<<v^e[t+2]<<b)&g,_=new Me(25e3),S=new We(288),k=new We(32),z=0,D=0,C=i.i||0,x=0,I=i.w||0,T=0;o>C+2;++C){var A=m(C),q=32767&C,R=y[A];if(w[q]=R,y[A]=q,C>=I){var H=o-C;if((z>7e3||x>24576)&&(H>423||!h)){f=St(e,c,0,_,S,k,D,x,T,C-T,f),x=z=D=0,T=C;for(var P=0;286>P;++P)S[P]=0;for(P=0;30>P;++P)k[P]=0}var B=2,K=0,V=d,E=q-R&32767;if(H>2&&A==m(C-E))for(var U=s.min(p,H)-1,W=s.min(32767,C),M=s.min(258,H);W>=E&&--V&&q!=R;){if(e[C+B]==e[C+B-E]){for(var N=0;M>N&&e[C+N]==e[C+N-E];++N);if(N>B){if(B=N,K=E,N>U)break;var O=s.min(E,N-2),F=0;for(P=0;O>P;++P){var L=C-E+P&32767,j=L-w[L]&32767;j>F&&(F=j,R=L)}}}E+=(q=R)-(R=w[q])&32767}if(K){_[x++]=268435456|Xe[B]<<18|Ye[K];var G=31&Xe[B],X=31&Ye[K];D+=Ne[G]+Oe[X],++S[257+G],++k[X],I=C+B,++z}else _[x++]=e[C],++S[e[C]]}}for(C=s.max(C,I);o>C;++C)_[x++]=e[C],++S[e[C]];f=St(e,c,h,_,S,k,D,x,T,C-T,f),h||(i.r=7&f|c[f/8|0]<<3,f-=7,i.h=y,i.p=w,i.i=C,i.w=I)}else{for(C=i.w||0;o+h>C;C+=65535){var J=C+65535;o>J||(c[f/8|0]=h,J=o),f=_t(c,f+1,e.subarray(C,J))}i.i=o}return ut(l,0,0+ft(f)+0)})(e,null==t.level?6:t.level,null==t.mem?a.l?s.ceil(1.5*s.max(8,s.min(13,s.log(e.length)))):20:12+t.mem,0,0,a)})(e,this.o,0,0,this.s),t)},e.prototype.push=function(e,t){this.ondata||dt(5),this.s.l&&dt(4);var n=e.length+this.s.z;if(n>this.b.length){if(n>2*this.b.length-32768){var s=new Ue(-32768&n);s.set(this.b.subarray(0,this.s.z)),this.b=s}var r=this.b.length-this.s.z;this.b.set(e.subarray(0,r),this.s.z),this.s.z=this.b.length,this.p(this.b,!1),this.b.set(this.b.subarray(-32768)),this.b.set(e.subarray(r),32768),this.s.z=e.length-r+32768,this.s.i=32766,this.s.w=32768}else this.b.set(e,this.s.z),this.s.z+=e.length;this.s.l=1&t,(this.s.z>this.s.w+8191||t)&&(this.p(this.b,t||!1),this.s.w=this.s.i,this.s.i-=2)},e.prototype.flush=function(){this.ondata||dt(5),this.s.l&&dt(4),this.p(this.b,!1),this.s.w=this.s.i,this.s.i-=2},e}(),Ct=function(){function e(e,t){"function"==typeof e&&(t=e,e={}),this.ondata=t;var n=e&&e.dictionary&&e.dictionary.subarray(-32768);this.s={i:0,b:n?n.length:0},this.o=new Ue(32768),this.p=new Ue(0),n&&this.o.set(n)}return e.prototype.e=function(e){if(this.ondata||dt(5),this.d&&dt(4),this.p.length){if(e.length){var t=new Ue(this.p.length+e.length);t.set(this.p),t.set(e,this.p.length),this.p=t}}else this.p=e},e.prototype.c=function(e){this.s.i=+(this.d=e||!1);var t=this.s.b,n=((e,t,n)=>{var r=e.length;if(!r||t.f&&!t.l)return n||new Ue(0);var a=!n,i=a||2!=t.i,o=t.i;a&&(n=new Ue(3*r));var l=e=>{var t=n.length;if(e>t){var r=new Ue(s.max(2*t,e));r.set(n),n=r}},c=t.f||0,h=t.p||0,f=t.b||0,u=t.l,p=t.d,d=t.m,g=t.n,w=8*r;do{if(!u){c=ct(e,h,1);var y=ct(e,h+1,3);if(h+=3,!y){var v=e[(T=ft(h)+4)-4]|e[T-3]<<8,b=T+v;if(b>r){o&&dt(0);break}i&&l(f+v),n.set(e.subarray(T,b),f),t.b=f+=v,t.p=h=8*b,t.f=c;continue}if(1==y)u=at,p=ot,d=9,g=5;else if(2==y){var m=ct(e,h,31)+257,_=ct(e,h+10,15)+4,S=m+ct(e,h+5,31)+1;h+=14;for(var k=new Ue(S),z=new Ue(19),D=0;_>D;++D)z[Fe[D]]=ct(e,h+3*D,7);h+=3*_;var C=lt(z),x=(1<<C)-1,I=tt(z,C,1);for(D=0;S>D;){var T,A=I[ct(e,h,x)];if(h+=15&A,16>(T=A>>4))k[D++]=T;else{var q=0,R=0;for(16==T?(R=3+ct(e,h,3),h+=2,q=k[D-1]):17==T?(R=3+ct(e,h,7),h+=3):18==T&&(R=11+ct(e,h,127),h+=7);R--;)k[D++]=q}}var H=k.subarray(0,m),P=k.subarray(m);d=lt(H),g=lt(P),u=tt(H,d,1),p=tt(P,g,1)}else dt(1);if(h>w){o&&dt(0);break}}i&&l(f+131072);for(var B=(1<<d)-1,K=(1<<g)-1,V=h;;V=h){var E=(q=u[ht(e,h)&B])>>4;if((h+=15&q)>w){o&&dt(0);break}if(q||dt(2),256>E)n[f++]=E;else{if(256==E){V=h,u=null;break}var U=E-254;if(E>264){var W=Ne[D=E-257];U=ct(e,h,(1<<W)-1)+Ge[D],h+=W}var M=p[ht(e,h)&K],N=M>>4;if(M||dt(3),h+=15&M,P=Qe[N],N>3&&(W=Oe[N],P+=ht(e,h)&(1<<W)-1,h+=W),h>w){o&&dt(0);break}i&&l(f+131072);var O=f+U;if(P>f){var F=0-P,L=s.min(P,O);for(0>F+f&&dt(3);L>f;++f)n[f]=(void 0)[F+f]}for(;O>f;++f)n[f]=n[f-P]}}t.l=u,t.p=V,t.b=f,t.f=c,u&&(c=1,t.m=d,t.d=p,t.n=g)}while(!c);return f!=n.length&&a?ut(n,0,f):n.subarray(0,f)})(this.p,this.s,this.o);this.ondata(ut(n,t,this.s.b),this.d),this.o=ut(n,this.s.b-32768),this.s.b=this.o.length,this.p=ut(this.p,this.s.p/8|0),this.s.p&=7},e.prototype.push=function(e,t){this.e(e),this.c(t)},e}(),xt="undefined"!=typeof TextDecoder&&new TextDecoder;try{xt.decode(zt,{stream:!0})}catch(e){}function It(e,n,s){return class{constructor(r){const i=this;var o,l;o=r,l="level",(typeof t.hasOwn===S?t.hasOwn(o,l):o.hasOwnProperty(l))&&r.level===m&&delete r.level,i.codec=new e(t.assign({},n,r)),s(i.codec,(e=>{if(i.pendingData){const t=i.pendingData;i.pendingData=new a(t.length+e.length);const{pendingData:n}=i;n.set(t,0),n.set(e,t.length)}else i.pendingData=new a(e)}))}append(e){return this.codec.push(e),r(this)}flush(){return this.codec.push(new a,!0),r(this)}};function r(e){if(e.pendingData){const t=e.pendingData;return e.pendingData=null,t}return new a}}const{Deflate:Tt,Inflate:At}=((e,t={},n)=>({Deflate:It(e.Deflate,t.deflate,n),Inflate:It(e.Inflate,t.inflate,n)}))({Deflate:Dt,Inflate:Ct},m,((e,t)=>e.ondata=t));self.initCodec=()=>{self.Deflate=Tt,self.Inflate=At};\n'],{type:"text/javascript"}));n({workerScripts:{inflate:[e],deflate:[e]}})}(an);var Oa=Object.freeze({__proto__:null,BlobReader:Ke,BlobWriter:Je,Data64URIReader:class extends Ge{constructor(n){super();let e=n.length;for(;"="==n.charAt(e-1);)e--;const t=n.indexOf(",")+1;a.assign(this,{dataURI:n,dataStart:t,size:s.floor(.75*(e-t))})}readUint8Array(n,e){const{dataStart:t,dataURI:a}=this,o=new u(e),i=4*s.floor(n/3),r=atob(a.substring(i+t,4*s.ceil((n+e)/3)+t)),l=n-3*s.floor(i/4);for(let n=l;n<l+e;n++)o[n-l]=r.charCodeAt(n);return o}},Data64URIWriter:class extends Ve{constructor(n){super(),a.assign(this,{data:"data:"+(n||"")+";base64,",pending:[]})}writeUint8Array(n){const e=this;let t=0,a=e.pending;const i=e.pending.length;for(e.pending="",t=0;t<3*s.floor((i+n.length)/3)-i;t++)a+=o.fromCharCode(n[t]);for(;t<n.length;t++)e.pending+=o.fromCharCode(n[t]);a.length>2?e.data+=j(a):e.pending=a}getData(){return this.data+j(this.pending)}},ERR_BAD_FORMAT:qt,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Gt,ERR_DUPLICATED_NAME:ga,ERR_ENCRYPTED:Jt,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Wt,ERR_EOCDR_NOT_FOUND:Ht,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Kt,ERR_HTTP_RANGE:_e,ERR_INVALID_COMMENT:wa,ERR_INVALID_ENCRYPTION_STRENGTH:ka,ERR_INVALID_ENTRY_COMMENT:ba,ERR_INVALID_ENTRY_NAME:fa,ERR_INVALID_EXTRAFIELD_DATA:Sa,ERR_INVALID_EXTRAFIELD_TYPE:va,ERR_INVALID_PASSWORD:yn,ERR_INVALID_SIGNATURE:kn,ERR_INVALID_VERSION:ya,ERR_ITERATOR_COMPLETED_TOO_SOON:Be,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Vt,ERR_SPLIT_ZIP_FILE:$t,ERR_UNSUPPORTED_COMPRESSION:Zt,ERR_UNSUPPORTED_ENCRYPTION:Yt,ERR_UNSUPPORTED_FORMAT:ja,HttpRangeReader:class extends ct{constructor(n,e={}){e.useRangeHeader=!0,super(n,e)}},HttpReader:ct,Reader:Ge,SplitDataReader:mt,SplitDataWriter:ht,SplitZipReader:bt,SplitZipWriter:ft,TextReader:Ye,TextWriter:class extends Je{constructor(n){super(n),a.assign(this,{encoding:n,utf8:!n||"utf-8"==n.toLowerCase()})}async getData(){const{encoding:n,utf8:e}=this,t=await super.getData();if(t.text&&e)return t.text();{const e=new FileReader;return new y((o,i)=>{a.assign(e,{onload:({target:n})=>o(n.result),onerror:()=>i(e.error)}),e.readAsText(t,n)})}}},Uint8ArrayReader:class extends Ge{constructor(n){super(),a.assign(this,{array:n,size:n.length})}readUint8Array(n,e){return this.array.slice(n,n+e)}},Uint8ArrayWriter:dt,Writer:Ve,ZipReader:ta,ZipReaderStream:class{constructor(n={}){const{readable:e,writable:t}=new x,a=new ta(e,n).getEntriesGenerator();this.readable=new C({async pull(n){const{done:e,value:t}=await a.next();if(e)return n.close();const o={...t,readable:function(){const{readable:n,writable:e}=new x;if(t.getData)return t.getData(e),n}()};delete o.getData,n.enqueue(o)}}),this.writable=t}},ZipWriter:La,ZipWriterStream:class{constructor(n={}){const{readable:e,writable:t}=new x;this.readable=e,this.zipWriter=new La(t,n)}transform(n){const{readable:e,writable:t}=new x({flush:()=>{this.zipWriter.close()}});return this.zipWriter.add(n,e),{readable:this.readable,writable:t}}writable(n){const{readable:e,writable:t}=new x;return this.zipWriter.add(n,e),t}close(n=void 0,e={}){return this.zipWriter.close(n,e)}},configure:an,getMimeType:function(){return"application/octet-stream"},initReader:ut,initShimAsyncCodec:function(n,e={},t){return{Deflate:rn(n.Deflate,e.deflate,t),Inflate:rn(n.Inflate,e.inflate,t)}},initStream:pt,initWriter:gt,readUint8Array:wt,terminateWorkers:async function(){await y.allSettled(Re.map(n=>(Pe(n),n.terminate())))}});async function Fa(n,{password:e,prompt:t=()=>{},zipOptions:a={useWebWorkers:!1},noBlobURL:o}={}){const i={gif:"image/gif",jpg:"image/jpeg",png:"image/png",tif:"image/tiff",tiff:"image/tiff",bmp:"image/bmp",ico:"image/vnd.microsoft.icon",webp:"image/webp",svg:"image/svg+xml",avi:"video/x-msvideo",ogv:"video/ogg",mp4:"video/mp4",mpeg:"video/mpeg",ts:"video/mp2t",webm:"video/webm","3gp":"video/3gpp","3g2":"video/3gpp",mp3:"audio/mpeg",oga:"audio/ogg",mid:"audio/midi",midi:"audio/midi",opus:"audio/opus",wav:"audio/wav",weba:"audio/webm",heif:"image/heif",heic:"image/heic",avif:"image/avif",apng:"image/apng",mov:"video/quicktime",otf:"font/otf",ttf:"font/ttf",woff:"font/woff",woff2:"font/woff2",eot:"application/vnd.ms-fontobject",pdf:"application/pdf"},r=/stylesheet_[0-9]+\.css/,s=/scripts\/[0-9]+\.js/,l=/^([0-9_]+\/)?index\.html$/,c=/index\.html$/,d=/frames\//,m=/^frames\/\d+\/index.html/,h=/manifest\.json$/,p=";charset=utf-8",u=/([{}()^$&.*?/+|[\\\\]|\]|-)/g;Array.isArray(n)&&(n=new Blob([new Uint8Array(n)])),zip.configure(a);const g=new zip.BlobReader(n),w=new zip.ZipReader(g),b=await w.getEntries(),f={password:e};let y,k,v,S=[],j=[],x=[];await Promise.all(b.map(async n=>{const{filename:e}=n;let a,l,m,h;const u={};if(!f.password&&n.encrypted&&(f.password=t("Please enter the password to view the page")),e.match(c)||e.match(r)||e.match(s))e.match(c)?j.push(u):x.push(u),a=new zip.TextWriter,m=await n.getData(a,f),e.match(c)?h="text/html"+p:e.match(r)?h="text/css"+p:e.match(s)&&(h="text/javascript"+p);else{S.push(u);const t=e.match(/\.([^.]+)/);if(h=t&&t[1]&&i[t[1]]?i[t[1]]:"application/octet-stream",e.match(d)||o)l=await n.getData(new zip.Data64URIWriter(h),f);else{const e=await n.getData(new zip.BlobWriter(h),f);l=URL.createObjectURL(e)}}const g=n.filename.match(/^([0-9_]+\/)?(.*)$/)[2];let w="";const b=e.match(/(.*\/)[^/]+$/);b&&b[1]&&(w=b[1]),Object.assign(u,{prefixPath:w,filename:n.filename,name:g,url:n.comment,content:l,mimeType:h,textContent:m,parentResources:[]})})),await w.close(),j.sort(L),x.sort(function(n,e){const t=n.filename.length-e.filename.length;return t||n.filename.localeCompare(e.filename)}),S=S.sort(L).concat(...x).concat(...j);for(const n of S){const{filename:e,prefixPath:t}=n;let{textContent:a}=n;void 0!==a&&(e.match(l)&&(k=a),e.match(s)||(S.forEach(e=>{const{filename:o,parentResources:i,content:r}=e;if(o.startsWith(t)&&o!=n.filename){const s=o.substring(t.length);s.match(h)||a.includes(s)&&(i.push(n.filename),void 0===e.textContent&&(a=A(a,s,r)))}}),n.textContent=a))}for(const n of S){let{textContent:e,prefixPath:t,filename:a}=n;if(void 0!==e){if(!a.match(s)){const o=a;for(const n of S){const{filename:a}=n;if(a.startsWith(t)&&a!=o){const o=a.substring(t.length);if(!o.match(h)){-1!=e.indexOf(o)&&(n.content=await C(n),e=A(e,o,n.content))}}}n.textContent=e,n.content=await C(n)}a.match(l)&&(y=e,v=n.url)}}return{docContent:y,origDocContent:k,resources:S,url:v};async function C(n){return n.filename.match(d)&&!n.filename.match(m)||o?await async function(n,e){const t=new FileReader;return t.readAsDataURL(new Blob([n],{type:e})),new Promise((n,e)=>{t.onload=()=>n(t.result.replace(p,"")),t.onerror=e})}(n.textContent,n.mimeType):URL.createObjectURL(new Blob([n.textContent],{type:n.mimeType}))}function A(n,e,t){if("function"==typeof n.replaceAll)return n.replaceAll(e,t);{const a=new RegExp(e.replace(u,"\\$1"),"g");return n.replace(a,t)}}function L(n,e){const t=e.filename.length-n.filename.length;return t||e.filename.localeCompare(n.filename)}}async function Ua(n,e,{disableFramePointerEvents:t}={}){e=(e=e.replace(/<noscript/gi,"<template disabled-noscript")).replaceAll(/<\/noscript/gi,"</template");const a=(new DOMParser).parseFromString(e,"text/html");t&&a.querySelectorAll("iframe").forEach(n=>{const e="pointer-events";n.style.setProperty("-sf-"+e,n.style.getPropertyValue(e),n.style.getPropertyPriority(e)),n.style.setProperty(e,"none","important")}),n.open(),n.write(function(n){const e=n.doctype;let t="";e&&(t="<!DOCTYPE "+e.nodeName,e.publicId?(t+=' PUBLIC "'+e.publicId+'"',e.systemId&&(t+=' "'+e.systemId+'"')):e.systemId&&(t+=' SYSTEM "'+e.systemId+'"'),e.internalSubset&&(t+=" ["+e.internalSubset+"]"),t+="> ");return t}(a)),n.write(a.documentElement.outerHTML),n.close(),n.querySelectorAll("template[disabled-noscript]").forEach(e=>{const t=n.createElement("noscript");e.removeAttribute("disabled-noscript"),Array.from(e.attributes).forEach(n=>t.setAttribute(n.name,n.value)),t.textContent=e.innerHTML,e.parentElement.replaceChild(t,e)}),n.documentElement.setAttribute("data-sfz",""),n.querySelectorAll("link[rel*=icon]").forEach(n=>n.replaceWith(n.cloneNode(!0)))}const{Blob:qa,fetch:Ha,TextEncoder:Wa,DOMParser:Ga}=globalThis,Va=[".jpg",".jpeg",".png",".avi",".apng",".pdf",".woff2",".mp4",".mp3",".ogg",".webp",".webm",".avi",".mpeg",".ts",".ogv",".heif",".heic"],Ka=[["<noscript>","</noscript>"],["<noframes>","</noframes>"],["<noembed>","</noembed>"],["<script type=sfz-data>","<\/script>"],["<style type=sfz-data>","</style>"],["<iframe>","</iframe>"],["<xmp>","</xmp>"],["<plaintext>","</plaintext>"]],Ja=[["\x3c!--","--\x3e"],...Ka],Ya=[[/<noscript/i,/<\/noscript>/i],[/<noframes/i,/<\/noframes>/i],[/<noembed/i,/<\/noembed>/i],[/<script/i,/<\/script>/i],[/<style/i,/<\/style>/i],[/<iframe/i,/<\/iframe>/i],[/<xmp/i,/<\/xmp>/i],[/<plaintext/i,/<\/plaintext>/i]],Za=[[/<!--/i,/-->/i],...Ya],$a=new Uint32Array(256).map((n,e)=>{let t=e;for(let n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;return t}),Xa=globalThis.browser;async function Qa(n,e,t=new Date){let a;e.zipScript?a=e.zipScript:Xa&&Xa.runtime&&Xa.runtime.getURL&&(an({workerScripts:{deflate:["/lib/single-file-z-worker.js"]}}),a=await(await Ha(Xa.runtime.getURL("/lib/single-file-zip.min.js"))).text());const o=new dt;let i,r,s,l;if(o.init(),o.writable.size=0,e.embeddedImage){e.embeddedImage=Array.from(e.embeddedImage);const t=e.embeddedImage.slice(33,e.embeddedImage.length-12);if(await ro(o.writable,e.embeddedImage.slice(0,33)),e.selfExtractingArchive){const a=t.reduce((n,e)=>n+String.fromCharCode(e),""),i=Za.findIndex(n=>!a.match(n[1]));let r;[r,l]=-1==i?["",""]:Ja[i];const s=ao(n,e,r),c=new Uint8Array([...eo(s.length+4),116,69,88,116,80,78,71,0,...s]);await ro(o.writable,c),await ro(o.writable,no(c,4))}else if(e.embeddedPdf){const n=new Uint8Array([...eo(e.embeddedPdf.length+4),116,69,88,116,80,68,70,0,...new Uint8Array(e.embeddedPdf)]);await ro(o.writable,n),await ro(o.writable,no(n,4))}await ro(o.writable,t),await ro(o.writable,new Uint8Array(4)),s=o.offset,await ro(o.writable,new Uint8Array([116,69,88,116,90,73,80,0])),e.selfExtractingArchive&&await ro(o.writable,(new Wa).encode(l))}e.selfExtractingArchive?i=await async function(n,e,t,a){let o="";a.embeddedImage||await ro(e.writable,ao(n,a));o+="<div id=sfz-wait-message>Please wait...</div>",a.extractDataFromPage||(o+="<div id=sfz-error-message><strong>Error</strong>: Cannot open the page from the filesystem.",o+="<ul style='line-height:20px;'>",o+="<li style='margin-bottom:10px'><strong>Chrome</strong>: Install <a href='https://chrome.google.com/webstore/detail/singlefile/mpiodijhokgodhhofbcjdecpffjipkle'>SingleFile</a> and enable the option \"Allow access to file URLs\" in the details page of the extension (chrome://extensions/?id=mpiodijhokgodhhofbcjdecpffjipkle).</li>",o+="<li style='margin-bottom:10px'><strong>Microsoft Edge</strong>: Install <a href='https://microsoftedge.microsoft.com/addons/detail/singlefile/efnbkdcfmcmnhlkaijjjmhjjgladedno'>SingleFile</a> and enable the option \"Allow access to file URLs\" in the details page of the extension (edge://extensions/?id=efnbkdcfmcmnhlkaijjjmhjjgladedno).</li>",o+='<li><strong>Safari</strong>: Select "Security > Disable Local File Restrictions" in the "Develop > Developer settings" menu.</li></ul></div>');if(a.insertTextBody){const e=(new Ga).parseFromString(n.content,"text/html");e.body.querySelectorAll("style, script, noscript").forEach(n=>n.remove());let t="";a.extractDataFromPage&&(t+=oo(n)+"\n\n"),t+=e.body.innerText,e.body.querySelectorAll("single-file-note").forEach(n=>{const e=n.querySelector("template");if(e){const n=(new Ga).parseFromString(e.innerHTML,"text/html");t+="\n"+n.body.querySelector("textarea").value}}),t=t.replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n +/g,"\n").replace(/\n\n\n+/g,"\n\n").trim(),o+="\n<main hidden>\n"+t+"\n</main>\n"}const i={insertEmbeddedImage:Boolean(a.embeddedImage),insertEmbeddedScreenshotImage:Boolean(a.embeddedScreenshotImage)};t="<script>"+t+"document.currentScript.remove();globalThis.addEventListener('load', () => {globalThis.bootstrap=(()=>{let bootstrapStarted;return async content=>{if (bootstrapStarted) return bootstrapStarted; bootstrapStarted = ("+Fa.toString().replace(/\n|\t/g,"")+")(content,{prompt}).then(({docContent}) => "+Ua.toString().replace(/\n|\t/g,"")+"(document,docContent,"+JSON.stringify(i)+"));return bootstrapStarted;}})();("+co.toString().replace(/\n|\t/g,"")+')().then(globalThis.bootstrap).then(() => document.dispatchEvent(new CustomEvent("single-file-display-infobar"))).catch(()=>{});});<\/script>',o+=t;let r="";if(a.extractDataFromPage&&a.extraDataSize){const n="<sfz-extra-data></sfz-extra-data>";r+=n+new Array(a.extraDataSize-n.length).fill(" ").join("")}o+=r;const s=a.extractDataFromPageTags?a.extractDataFromPageTags[0]:"\x3c!--";o+=s;const l=s.length+r.length;return await ro(e.writable,(new Wa).encode(o)),l}(n,o,a,e):!e.embeddedImage&&e.embeddedPdf&&await ro(o.writable,new Uint8Array(e.embeddedPdf));const c=new La(o,{bufferedWrite:!0,keepOrder:!1,lastModDate:t}),d=o.offset;n.url=e.url,n.archiveTime=(new Date).toISOString(),await so(c,n,{password:e.password},e.createRootDirectory?String(Date.now())+"_"+(e.tabId||0)+"/":"",e.url);const m=await c.close(null,{preventClose:!0});if(e.selfExtractingArchive){const a=[],i=[];if(e.extractDataFromPage){if(!e.extractDataFromPageTags){let a="";m.slice(d).forEach(n=>a+=String.fromCharCode(n));if(a.match(/<!--/i)||a.match(/-->/i))return io(a,n,e,t)}for(let n=d;n<m.length;n++)13==m[n]&&(10==m[n+1]?a.push(n-d):i.push(n-d))}let s="";e.preventAppendedData||(e.extractDataFromPageTags?s+=e.extractDataFromPageTags[1]:s+="--\x3e");const l=e.preventAppendedData||e.embeddedImage?"":"</body></html>";if(e.extractDataFromPage){const o=new Uint32Array(a.length+i.length+2);if(o.set(new Uint32Array([a.length]),0),o.set(new Uint32Array(a),1),o.set(new Uint32Array([i.length]),a.length+1),o.set(new Uint32Array(i),a.length+2),r="<sfz-extra-data>"+function(n){const e=new Uint8Array(n),t=e.length,a=[],o=[],i=65535,r=130,s=64,l=new Map;let c=0;for(;c<t;){let n=0,s=0;if(c+2<t){const a=e[c]<<16|e[c+1]<<8|e[c+2],o=l.get(a)||[];for(let a=o.length-1;a>=0;a--){const l=o[a],d=c-l;if(d<=0||d>i)continue;let m=0;for(;m<r&&c+m<t&&e[l+m]===e[c+m];)m++;if(m>n&&m>=3&&(n=m,s=d,n===r))break}}if(n>=3){o.length&&d();let e=n,t=0;for(;e>0;){const n=Math.min(e,r);a.push(128|n-3&127),a.push(s>>8&255),a.push(255&s),e-=n,t+=n}const i=c;for(let n=i;n<i+t;n++)m(n);c+=t}else o.push(e[c]),m(c),c++,127===o.length&&d()}o.length&&d();return function(n){let e="";const t=n.length;let a=0;for(;a+2<t;a+=3){const t=n[a]<<16|n[a+1]<<8|n[a+2];e+=mo[t>>18&63]+mo[t>>12&63]+mo[t>>6&63]+mo[63&t]}const o=t-a;if(1===o){const t=n[a]<<16;e+=mo[t>>18&63]+mo[t>>12&63]+"=="}else if(2===o){const t=n[a]<<16|n[a+1]<<8;e+=mo[t>>18&63]+mo[t>>12&63]+mo[t>>6&63]+"="}return e}(new Uint8Array(a));function d(){for(;o.length;){const n=Math.min(127,o.length);a.push(n);for(let e=0;e<n;e++)a.push(o.shift())}}function m(n){if(n+2<t){const t=e[n]<<16|e[n+1]<<8|e[n+2],a=l.get(t)||[];a.push(n),a.length>s&&a.shift(),l.set(t,a)}}}(o.buffer)+"</sfz-extra-data>",e.preventAppendedData||r.length>65535-l.length-(e.embeddedImage?12:0)){if(!e.extraDataSize)return e.extraDataSize=Math.floor(1.001*r.length),Qa(n,e,t)}else{if(e.extraDataSize)return e.extraDataSize=void 0,Qa(n,e,t);s+=r}}s+=l,await ro(o.writable,(new Wa).encode(s))}await o.writable.close();const h=await o.getData();if(e.extractDataFromPage&&void 0!==e.extraDataSize){if(!(e.extraDataSize>=r.length))return e.extraData=r,e.extraDataSize=Math.floor(1.001*r.length),Qa(n,e,t);h.set(Array.from(r).map(n=>n.charCodeAt(0)),d-i)}return e.embeddedImage?(h.set(eo(o.offset-s-4),s-4),new qa([h,no(h,s),new Uint8Array(e.embeddedImage.slice(e.embeddedImage.length-12))],{type:"application/octet-stream"})):new qa([h],{type:"application/octet-stream"})}function no(n,e=0){const t=new Uint8Array(4);let a=-1;for(;e<n.length;e++)a=a>>>8^$a[255&(a^n[e])];return a^=-1,to(t,a),t}function eo(n){const e=new Uint8Array(4);return to(e,n),e}function to(n,e){n[0]=e>>24,n[1]=e>>16,n[2]=e>>8,n[3]=e}function ao(n,e,t=""){let a="";!e.includeBOM||e.extractDataFromPage||e.embeddedImage||(a+="\ufeff"),a+=e.embeddedImage?"":n.doctype,a+="<html data-sfz>",a+=n.comment&&!e.embeddedImage?"\x3c!--"+n.comment+"--\x3e":"";a+="<meta charset="+(e.extractDataFromPage?"windows-1252":"utf-8")+">";const o=function(n,e){let t="";const a=e.extractDataFromPage?"":oo(n);t+="<title>"+a+"</title>",e.insertCanonicalLink&&(t+='<link rel=canonical href="'+e.url+'">');e.insertMetaNoIndex&&(t+="<meta name=robots content=noindex>");n.viewport&&(t+="<meta name=viewport content="+JSON.stringify(n.viewport)+">");if(e.insertMetaCSP){const n="default-src 'none';connect-src 'self' data: blob:;font-src 'self' data: blob:;img-src 'self' data: blob:;style-src 'self' 'unsafe-inline' data: blob:;frame-src 'self' data: blob:;media-src 'self' data: blob:;script-src 'self' 'unsafe-inline' data: blob:;object-src 'self' data: blob:";t+=`<meta http-equiv=content-security-policy content=${JSON.stringify(n)}>`}return t+="<style>@keyframes display-wait-message{0%{opacity:0}100%{opacity:1}};body{color:transparent};div{color:initial}</style>",t+="<body hidden>",t}(n,e);let i;if(e.embeddedPdf){const n=e.embeddedPdf.reduce((n,e)=>n+String.fromCharCode(e),""),r=Za.findIndex(e=>!n.match(e[1])),[s,l]=-1==r?["",""]:Ja[r],c=(new Wa).encode(a+s),d=(new Wa).encode(l+o+t);i=new Uint8Array(c.length+d.length+e.embeddedPdf.length),i.set(c),i.set(e.embeddedPdf,c.length),i.set(d,c.length+e.embeddedPdf.length)}else i=(new Wa).encode(a+o+t);return i}function oo(n){return n.title.replace(/</g,"&lt;").replace(/>/g,"&gt;")||""}function io(n,e,t,a,o=0){const i=Ya[o];return n.match(i[0])||n.match(i[1])?o<Ka.length-1?io(n,e,t,a,o+1):(t.extractDataFromPage=!1,Qa(e,t,a)):(t.extractDataFromPageTags=Ka[o],Qa(e,t,a))}async function ro(n,e){const t=n.getWriter();await t.ready,n.size+=e.length,await t.write(e),t.releaseLock()}async function so(n,e,t,a,o){const i={};for(const n of Object.keys(e.resources))for(const a of e.resources[n])a.password=t.password,a.url&&!a.url.startsWith("data:")&&(i[a.name]=a.url);const r=JSON.stringify({originalUrl:e.url,title:e.title,archiveTime:e.archiveTime,indexFilename:"index.html",resources:i},null,2);await Promise.all([Promise.all([lo(n,a,{name:"index.html",extension:".html",content:e.content,url:o,password:t.password}),lo(n,a,{name:"manifest.json",extension:".json",content:r,password:t.password})]),Promise.all(Object.keys(e.resources).map(async o=>Promise.all(e.resources[o].map(e=>"frames"==o?so(n,e,t,a+e.name,e.url):lo(n,a,e)))))])}async function lo(n,e,t){const a="string"==typeof t.content?new Ye(t.content):new Ke(new qa([new Uint8Array(t.content)])),o={comment:t.url&&t.url.startsWith("data:")?"data:":t.url,password:t.password,bufferedWrite:!0};Va.includes(t.extension)&&(o.level=0),await n.add(e+t.name,a,o)}async function co(){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",{Blob:e,XMLHttpRequest:t,document:a,stop:o}=globalThis,i=new Map([[65533,0],[8364,128],[8218,130],[402,131],[8222,132],[8230,133],[8224,134],[8225,135],[710,136],[8240,137],[352,138],[8249,139],[338,140],[381,142],[8216,145],[8217,146],[8220,147],[8221,148],[8226,149],[8211,150],[8212,151],[732,152],[8482,153],[353,154],[8250,155],[339,156],[382,158],[376,159]]),r=new t;return a.body.querySelectorAll("meta, style").forEach(n=>a.head.appendChild(n)),r.responseType="blob",r.open("GET",""),new Promise((t,l)=>{r.onerror=()=>{(async function(){const t=a.querySelector("sfz-extra-data");if(t){let a=t.nextSibling;a=a&&a.nodeType==Node.TEXT_NODE&&a.nextSibling?a.nextSibling:t.previousSibling;const o=[];let{textContent:r}=a;s("sfz-wait-message",2);for(let n=0;n<r.length;n++){const e=r.charCodeAt(n);o.push(e>255?i.get(e):e)}const l=new Uint32Array(function(e){e=function(e){const t=(e=String(e).replace(/[^A-Za-z0-9+/=]/g,"")).length,a=[];for(let o=0;o<t;o+=4){const t=n.indexOf(e[o])<<18|n.indexOf(e[o+1])<<12|(63&n.indexOf(e[o+2]))<<6|63&n.indexOf(e[o+3]);a.push(t>>16&255),"="!==e[o+2]&&a.push(t>>8&255),"="!==e[o+3]&&a.push(255&t)}return new Uint8Array(a)}(e);let t=new Uint8Array(1024),a=0;for(let n=0;n<e.length;){const i=e[n++];if(128&i){const r=3+(127&i),s=e[n++]<<8|e[n++],l=a-s;o(a+r);for(let n=0;n<r;n++)t[a++]=t[l+n]}else{const r=i;o(a+r);for(let o=0;o<r&&n<e.length;o++)t[a++]=e[n++]}}return new Uint8Array(t.buffer.slice(0,a));function o(n){if(t.length<n){let e=2*t.length;for(;e<n;)e*=2;const o=new Uint8Array(e);o.set(t.subarray(0,a)),t=o}}}(t.textContent).buffer),c=l[0],d=l.slice(1,1+c),m=l[1+c],h=l.slice(2+c,2+c+m);return d.forEach(n=>o.splice(n,1,13,10)),h.forEach(n=>o[n]=13),new e([new Uint8Array(o)],{type:"application/octet-stream"})}throw new Error("Extra zip data data not found")})().then(t).catch(()=>{s("sfz-error-message",2),l()})},r.send(),r.onload=()=>{o(),s("sfz-wait-message",2),t(r.response)}});function s(n,e=0){const t=a.getElementById(n);t&&(Array.from(a.body.childNodes).forEach(e=>{e.id!=n&&e.remove()}),a.body.hidden=!1,t.style="opacity: 0; animation: 0s linear "+e+"s display-wait-message 1 normal forwards")}}const mo="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var ho=Object.freeze({__proto__:null,process:Qa});const po="single-file-load-image",uo="single-file-image-loaded",go="_singleFile_fontFaces",wo="_singleFile_worklets",bo=globalThis.CustomEvent,fo=globalThis.document,yo=globalThis.Document,ko=globalThis.JSON,vo=globalThis.MutationObserver;let So,jo;function xo(){fo instanceof yo&&(fo.addEventListener("single-file-new-font-face",n=>{const e=n.detail,t=Object.assign({},e);delete t.src,So.set(ko.stringify(t),e)}),fo.addEventListener("single-file-delete-font",n=>{const e=n.detail,t=Object.assign({},e);delete t.src,So.delete(ko.stringify(t))}),fo.addEventListener("single-file-clear-fonts",()=>So=new Map),fo.addEventListener("single-file-new-worklet",n=>{const e=n.detail;jo.set(e.moduleURL,e)}))}function Co(){return Array.from(So.values())}function Ao(){return Array.from(jo.values())}function Lo(n){n.loadDeferredImagesBlockCookies&&fo.dispatchEvent(new bo("single-file-block-cookies-start")),n.loadDeferredImagesBlockStorage&&fo.dispatchEvent(new bo("single-file-block-storage-start")),n.loadDeferredImagesDispatchScrollEvent&&fo.dispatchEvent(new bo("single-file-dispatch-scroll-event-start")),n.loadDeferredImagesKeepZoomLevel?fo.dispatchEvent(new bo("single-file-load-deferred-images-keep-zoom-level-start")):fo.dispatchEvent(new bo("single-file-load-deferred-images-start"))}function zo(n){n.loadDeferredImagesBlockCookies&&fo.dispatchEvent(new bo("single-file-block-cookies-end")),n.loadDeferredImagesBlockStorage&&fo.dispatchEvent(new bo("single-file-block-storage-end")),n.loadDeferredImagesDispatchScrollEvent&&fo.dispatchEvent(new bo("single-file-dispatch-scroll-event-end")),n.loadDeferredImagesKeepZoomLevel?fo.dispatchEvent(new bo("single-file-load-deferred-images-keep-zoom-level-end")):fo.dispatchEvent(new bo("single-file-load-deferred-images-end"))}function To(n){n.loadDeferredImagesKeepZoomLevel?fo.dispatchEvent(new bo("single-file-load-deferred-images-keep-zoom-level-reset")):fo.dispatchEvent(new bo("single-file-load-deferred-images-reset"))}So=globalThis.window[go]?globalThis.window[go]:globalThis.window[go]=new Map,jo=globalThis.window[wo]?globalThis.window[wo]:globalThis.window[wo]=new Map,xo(),new vo(xo).observe(fo,{childList:!0});var Eo=Object.freeze({__proto__:null,IMAGE_LOADED_EVENT:uo,LOAD_IMAGE_EVENT:po,getFontsData:Co,getWorkletsData:Ao,loadDeferredImagesEnd:zo,loadDeferredImagesResetZoomLevel:To,loadDeferredImagesStart:Lo});const Ro="[\\x20\\t\\r\\n\\f]",Io=new RegExp("\\\\([\\da-f]{1,6}"+Ro+"?|("+Ro+")|.)","ig");function Do(n){return n.replace(Io,(n,e,t)=>{const a="0x"+e-65536;return a!=a||t?e:a<0?String.fromCharCode(a+65536):String.fromCharCode(a>>10|55296,1023&a|56320)})}var Mo=Object.freeze({__proto__:null,process:Do});const Po="single-file-",No="Page saved with SingleFile",_o="SingleFile",Bo="_singleFile_waitForUserScript",Oo="__frameTree__::",Fo="singleFileDisabledNoscript",Uo="single-file-infobar";function qo(n,e,t){if(!n.querySelector(Uo)){let a;e.infobarContent?a=e.infobarContent.replace(/\\n/g,"\n").replace(/\\t/g,"\t"):e.saveDate&&(a=e.saveDate),a=a||"No info";const o="BODY"==n.body.tagName?n.body:n.documentElement,i=function(n,e,t){const a=n.createElement(e);return t.appendChild(a),Array.from(getComputedStyle(a)).forEach(n=>a.style.setProperty(n,"initial","important")),a}(n,Uo,o);let r;if(t)r=i.attachShadow({mode:"open"});else{const e=n.createElement("template");e.setAttribute("shadowrootmode","open"),i.appendChild(e),r=e}const s=n.createElement("div"),l=n.createElement("style");if(l.textContent="\n.infobar,\n.infobar .infobar-icon,\n.infobar .infobar-link-icon {\n min-inline-size: 28px;\n min-block-size: 28px;\n box-sizing: border-box;\n}\n\n.infobar,\n.infobar .infobar-close-icon,\n.infobar .infobar-link-icon {\n opacity: 0.7;\n transition: opacity 250ms;\n}\n\n.infobar:hover,\n.infobar .infobar-close-icon:hover,\n.infobar .infobar-link-icon:hover {\n opacity: 1;\n}\n\n.infobar,\n.infobar-content {\n display: flex;\n}\n\n.infobar {\n position: fixed;\n max-height: calc(100% - 32px);\n top: 16px;\n right: 16px;\n margin-inline-start: 16px;\n margin-block-end: 16px;\n color: #2d2d2d;\n background-color: #737373;\n border: 2px solid;\n border-color: #eee;\n border-radius: 16px;\n z-index: 2147483647;\n animation-name: flash;\n animation-duration: .5s;\n animation-timing-function: cubic-bezier(0.39, 0.58, 0.57, 1);\n animation-delay: 1s;\n animation-iteration-count: 2;\n}\n\n.infobar:valid, .infobar:not(:focus-within):not(.infobar-focus) .infobar-content {\n display: none;\n}\n\n.infobar:focus-within, .infobar.infobar-focus {\n background-color: #f9f9f9;\n border-color: #878787;\n border-radius: 8px;\n opacity: 1;\n transition-property: opacity, background-color, border-color, border-radius, color;\n}\n\n.infobar-content {\n border: 2px solid;\n border-color: #f9f9f9;\n border-radius: 6px;\n background-color: #f9f9f9;\n overflow: auto;\n}\n\n.infobar-content span {\n font-family: Arial, Helvetica, sans-serif;\n font-size: 14px;\n line-height: 18px;\n word-break: break-word;\n white-space: pre-wrap;\n margin-inline: 4px;\n margin-block: 4px;\n}\n\n.infobar .infobar-icon,\n.infobar .infobar-close-icon,\n.infobar .infobar-link-icon {\n cursor: pointer;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.infobar .infobar-close-icon,\n.infobar .infobar-link-icon {\n align-self: flex-start;\n}\n\n.infobar .infobar-icon {\n position: absolute;\n min-inline-size: 24px;\n min-block-size: 24px;\n}\n\n@keyframes flash {\n 0%, 100% {\n\tbackground-color: #737373;\n }\n 50% {\n\tbackground-color: #dd6a00;\n }\n}\n\n.infobar:focus-within .infobar-icon, .infobar.infobar-focus .infobar-icon {\n z-index: -1;\n background-image: none;\n margin: 4px;\n}\n\n.infobar .infobar-close-icon {\n min-inline-size: 22px;\n min-block-size: 22px;\n}\n\n.infobar .infobar-icon {\n background-color: transparent;\n background-size: 70%;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABABAMAAABYR2ztAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUrDnYQcchQnSyIijqWKhbBQmkrtOpgcukfNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEydFJ0UVK/C4ptIjx4LiH9+59+e67A4RGhalm1wSgapaRisfEbG5VDLyiDwEAvZiVmKkn0osZeI6ve/j4ehfhWd7n/hz9St5kgE8kjjLdsIg3iGc2LZ3zPnGIlSSF+Jx43KACiR+5Lrv8xrnosMAzQ0YmNU8cIhaLHSx3MCsZKvE0cVhRNcoXsi4rnLc4q5Uaa9XJbxjMaytprtMcQRxLSCAJETJqKKMCCxFaNVJMpGg/5uEfdvxJcsnkKoORYwFVqJAcP/gb/O6tWZiadJOCMaD7xbY/RoHALtCs2/b3sW03TwD/M3Cltf3VBjD3SXq9rYWPgIFt4OK6rcl7wOUOMPSkS4bkSH6aQqEAvJ/RM+WAwVv6EGtu31r7OH0AMtSr5Rvg4BAYK1L2use9ezr79u+ZVv9+AFlNcp0UUpiqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AsHADIRLMaOHwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAPUExURQAAAIqKioyNjY2OjvDw8L2y1DEAAAABdFJOUwBA5thmAAAAAWJLR0QB/wIt3gAAAGNJREFUSMdjYCAJsLi4OBCQx6/CBQwIGIDPCBcXAkYQUsACU+AwlBVQHg6Eg5pgZBGOboIJZugDFwRwoJECJCUOhJI1wZwzqmBUwagCuipgIqTABG9h7YIKaKGAURAFEF/6AQAO4HqSoDP8bgAAAABJRU5ErkJggg==);\n}\n\n.infobar .infobar-link-icon {\n right: 4px;\n background-size: 60%;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAgMAAADXB5lNAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUrDnYQcchQnSyIijqWKhbBQmkrtOpgcukfNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEydFJ0UVK/C4ptIjx4LiH9+59+e67A4RGhalm1wSgapaRisfEbG5VDLyiDwEAvZiVmKkn0osZeI6ve/j4ehfhWd7n/hz9St5kgE8kjjLdsIg3iGc2LZ3zPnGIlSSF+Jx43KACiR+5Lrv8xrnosMAzQ0YmNU8cIhaLHSx3MCsZKvE0cVhRNcoXsi4rnLc4q5Uaa9XJbxjMaytprtMcQRxLSCAJETJqKKMCCxFaNVJMpGg/5uEfdvxJcsnkKoORYwFVqJAcP/gb/O6tWZiadJOCMaD7xbY/RoHALtCs2/b3sW03TwD/M3Cltf3VBjD3SXq9rYWPgIFt4OK6rcl7wOUOMPSkS4bkSH6aQqEAvJ/RM+WAwVv6EGtu31r7OH0AMtSr5Rvg4BAYK1L2use9ezr79u+ZVv9+AFlNcp0UUpiqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AsHAB8H+DhhoQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAJUExURQAAAICHi4qKioTuJAkAAAABdFJOUwBA5thmAAAAAWJLR0QCZgt8ZAAAAJJJREFUOI3t070NRCEMA2CnYAOyDyPwpHj/Va7hJ3FzV7zy3ET5JIwoAF6Jk4wzAJAkzxAYG9YRTgB+24wBgKmfrGAKTcEfAY4KRlRoIeBTgKOCERVaCPgU4Khge2GqKOBTgKOCERVaAEC/4PNcnyoSWHpjqkhwKxbcig0Q6AorXYF/+A6eIYD1lVbwG/jdA6/kA2THRAURVubcAAAAAElFTkSuQmCC);\n}\n\n.infobar .infobar-close-icon {\n appearance: none;\n background-size: 80%;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAgMAAADXB5lNAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUrDnYQcchQnSyIijqWKhbBQmkrtOpgcukfNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEydFJ0UVK/C4ptIjx4LiH9+59+e67A4RGhalm1wSgapaRisfEbG5VDLyiDwEAvZiVmKkn0osZeI6ve/j4ehfhWd7n/hz9St5kgE8kjjLdsIg3iGc2LZ3zPnGIlSSF+Jx43KACiR+5Lrv8xrnosMAzQ0YmNU8cIhaLHSx3MCsZKvE0cVhRNcoXsi4rnLc4q5Uaa9XJbxjMaytprtMcQRxLSCAJETJqKKMCCxFaNVJMpGg/5uEfdvxJcsnkKoORYwFVqJAcP/gb/O6tWZiadJOCMaD7xbY/RoHALtCs2/b3sW03TwD/M3Cltf3VBjD3SXq9rYWPgIFt4OK6rcl7wOUOMPSkS4bkSH6aQqEAvJ/RM+WAwVv6EGtu31r7OH0AMtSr5Rvg4BAYK1L2use9ezr79u+ZVv9+AFlNcp0UUpiqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AsHAB8VC4EQ6QAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAJUExURQAAAICHi4qKioTuJAkAAAABdFJOUwBA5thmAAAAAWJLR0QCZgt8ZAAAAJtJREFUOI3NkrsBgCAMRLFwBPdxBArcfxXFkO8rbKWAAJfHJ9faf9vuYX/749T5NmShm3bEwbe2SxeuM4+2oxDL1cDoKtVUjRy+tH78Cv2CS+wIiQNC1AEhk4AQeUTMWUJMfUJMSEJMSEY8kIx4IONroaYAimNxsXp1PA7PxwfVL8QnowwoVC0lig07wDDVUjAdbAnjwtow/z/bDW7eI4M2KruJAAAAAElFTkSuQmCC);\n}\n",e.infobarPositionAbsolute){l.textContent+=".infobar { position: absolute; }";"static"==getComputedStyle(o).position&&o.style.setProperty("position","relative","important")}e.infobarPositionTop?l.textContent+=`.infobar { top: ${e.infobarPositionTop}; bottom: auto; }`:e.infobarPositionBottom&&(l.textContent+=`.infobar { bottom: ${e.infobarPositionBottom}; top: auto; }`),e.infobarPositionRight?l.textContent+=`.infobar { right: ${e.infobarPositionRight}; left: auto; }`:e.infobarPositionLeft&&(l.textContent+=`.infobar { left: ${e.infobarPositionLeft}; right: auto; }`),l.textContent=l.textContent.replace(/ {2}/g,"").replace(/\n/g,"").replace(/: /g,":").replace(/, /g,","),s.appendChild(l);const c=n.createElement("form");c.classList.add("infobar"),e.openInfobar&&c.classList.add("infobar-focus"),s.appendChild(c);const d=n.createElement("span");d.tabIndex=-1,d.classList.add("infobar-icon"),c.appendChild(d);const m=n.createElement("span");m.tabIndex=-1,m.classList.add("infobar-content");const h=n.createElement("input");h.type="checkbox",h.required=!0,h.classList.add("infobar-close-icon"),h.title="Close",m.appendChild(h);const p=n.createElement("span");p.textContent=a,m.appendChild(p);const u=n.createElement("a");if(u.classList.add("infobar-link-icon"),u.target="_blank",u.rel="noopener noreferrer",u.title="Open source URL: "+e.saveUrl,u.href=e.saveUrl,m.appendChild(u),c.appendChild(m),t)r.appendChild(s);else{const e=n.createElement("script");let t=Wo.toString()+";";t+=Ho.toString()+";",t+="("+Go.toString()+")(document, "+JSON.stringify(_o)+");",e.textContent=t,s.appendChild(e),r.innerHTML=s.outerHTML}}}function Ho(n,e=_o){const t=n.evaluate("//comment()",n,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);let a=t&&t.singleNodeValue;if(a&&a.nodeType==Node.COMMENT_NODE&&a.textContent.includes(e)){const n=a.textContent.split("\n"),[,,e,...t]=n,o=e.match(/^ url: (.*) ?$/),i=o&&o[1];if(i){let n,e;if(t.length&&(e=t[0].split("saved date: ")[1],e&&t.shift(),t.length>1)){let e=t[0].split("info: ")[1].trim();for(let n=1;n<t.length-1;n++)e+="\n"+t[n].trim();n=e.trim()}return{saveUrl:i,infobarContent:n,saveDate:e}}}}function Wo(n,{saveUrl:e,infobarContent:t,saveDate:a}){if(e){const o=n.querySelector("single-file-infobar").shadowRoot;o.querySelector(".infobar-content span").textContent=t||a;const i=o.querySelector(".infobar-content .infobar-link-icon");i.href=e,i.title="Open source URL: "+e}}function Go(n,e){const t=Ho(n,e);t&&t.saveUrl&&Wo(n,t)}const Vo=Po+"on-before-capture",Ko=Po+"on-after-capture",Jo=Po+"request-get-adopted-stylesheets",Yo=Po+"response-get-adopted-stylesheets",Zo=Po+"unregister-request-get-adopted-stylesheets",$o=Po+"user-script-init",Xo="data-"+Po+"removed-content",Qo="data-"+Po+"hidden-content",ni="data-"+Po+"kept-content",ei="data-"+Po+"hidden-frame",ti="data-"+Po+"preserved-space-element",ai="data-"+Po+"shadow-root-element",oi="data-"+Po+"win-id",ii="data-"+Po+"image",ri="data-"+Po+"poster",si="data-"+Po+"video",li="data-"+Po+"canvas",ci="data-"+Po+"movable-style",di="data-"+Po+"input-value",mi="data-"+Po+"input-checked",hi="data-"+Po+"lazy-loaded-src",pi="data-"+Po+"stylesheet",ui="data-"+Po+"disabled-noscript",gi="data-"+Po+"selected-content",wi="data-"+Po+"invalid-element",bi="data-"+Po+"async-script",fi="*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)",yi=["NOSCRIPT","DISABLED-NOSCRIPT","META","LINK","STYLE","TITLE","TEMPLATE","SOURCE","OBJECT","SCRIPT","HEAD","BODY"],ki=["SCRIPT","NOSCRIPT","META","LINK","TEMPLATE"],vi=/^'(.*?)'$/,Si=/^"(.*?)"$/,ji={regular:"400",normal:"400",bold:"700",bolder:"700",lighter:"100"},xi="Archive processed by SingleFile",Ci="single-file-ui-element",Ai=Uo,Li="data:,",zi=["~","+","?","%","*",":","|",'"',"<",">","\\\\","\0-",""],Ti=["~","+","?","%","*",":","|",""","<",">","\"],Ei="data-sf-nesting-track-id",Ri=(n,e,t)=>globalThis.addEventListener(n,e,t),Ii=globalThis.JSON,Di=globalThis.crypto,Mi=globalThis.TextEncoder,Pi=globalThis.Blob,Ni=globalThis.CustomEvent,_i=globalThis.MutationObserver,Bi=globalThis.URL,Oi=globalThis.DOMParser;function Fi(){Ri($o,({detail:n})=>globalThis[Bo]=async(e,t)=>{const a=Object.assign({},t);let o;delete a.win,delete a.doc,delete a.onprogress,delete a.frames,delete a.taskId,delete a._migratedTemplateFormat,delete a.woleetKey;try{o="jsonDetail"==n?Ii.stringify({options:a}):{options:a}}catch(n){}const i=new Ni(e+"-request",{cancelable:!0,detail:o});let r;const s=new Promise(n=>{r=n,Ri(e+"-response",e=>{if(e.detail)try{const n="string"==typeof e.detail?Ii.parse(e.detail):e.detail;n.options&&Object.assign(t,n.options)}catch(n){}n()})});(n=>{try{globalThis.dispatchEvent(n)}catch(n){}})(i),i.defaultPrevented?await s:r()}),new _i(Fi).observe(globalThis.document,{childList:!0})}function Ui(n){n.querySelectorAll("meta[http-equiv=refresh]").forEach(n=>{n.removeAttribute("http-equiv"),n.setAttribute("disabled-http-equiv","refresh")})}function qi(n,e,t){n.querySelectorAll("noscript:not(["+ui+"])").forEach(n=>{n.setAttribute(ui,n.textContent),n.textContent=""}),Ui(n),n.head&&n.head.querySelectorAll(fi).forEach(n=>n.hidden=!0),n.querySelectorAll("svg foreignObject").forEach(n=>{const e=n.querySelectorAll("html > head > "+fi+", html > body > "+fi);e.length&&(Array.from(n.childNodes).forEach(n=>n.remove()),e.forEach(e=>n.appendChild(e)))});const a=new Map;let o;e&&n.documentElement?(Hi(n),o=Gi(e,n,n.documentElement,t),t.moveStylesInHead&&n.querySelectorAll("body style, body ~ style").forEach(n=>{const t=sr(e,n);t&&$i(n,t)&&(n.setAttribute(ci,""),o.markedElements.push(n))})):o={canvases:[],images:[],posters:[],videos:[],usedFonts:[],shadowRoots:[],markedElements:[]};let i="";if(n.referrer)try{i=new Bi("/",new Bi(n.referrer).origin).href}catch(n){}return{canvases:o.canvases,fonts:Co(),worklets:Ao(),stylesheets:Qi(n),images:o.images,posters:o.posters,videos:o.videos,usedFonts:Array.from(o.usedFonts.values()),shadowRoots:o.shadowRoots,referrer:i,markedElements:o.markedElements,invalidElements:a,scrollPosition:{x:e.scrollX,y:e.scrollY},adoptedStyleSheets:Vi(n.adoptedStyleSheets)}}function Hi(n){!function n(e,t=0,a=""){const o=a?`${a}.${t+1}`:`${t+1}`;e.setAttribute(Ei,o),Array.from(e.children).forEach((e,t)=>n(e,t,o))}(n.body);const e=cr(er(n)),t=i(n.body),a=i(e.body),o=new Set;function i(n){const e={};return function n(t){if(t.getAttribute){const a=t.getAttribute(Ei);a&&(e[a]=t),Array.from(t.children).forEach(n)}}(n),e}Object.keys(t).forEach(e=>{if(e in a){if((t[e].parentElement?.getAttribute(Ei)||null)!==(a[e]?.parentElement?.getAttribute(Ei)||null)){let a=t[e];for(;a&&a!==n.body;){const n=a.getAttribute(Ei);n&&o.add(n),a=a.parentElement}}}}),function n(e,t){const a=e.getAttribute(Ei);a&&!t.has(a)&&e.removeAttribute(Ei);Array.from(e.children).forEach(e=>n(e,t))}(n.body,o)}function Wi(n,e,t=!1){const a={};n.currentScript&&n.currentScript.remove(),function n(t){const o=t.getAttribute(e);o&&(a[o]=t);Array.from(t.children).forEach(n)}(n.body),Object.keys(a).forEach(n=>{const e=a[n],t=n.split(".");if(t.length>1){const n=t.slice(0,-1).join("."),o=a[n];o&&e.parentElement!==o&&o.appendChild(e)}}),t||n.querySelectorAll("["+e+"]").forEach(n=>n.removeAttribute(e))}function Gi(n,e,t,a,o={usedFonts:new Map,canvases:[],images:[],posters:[],videos:[],shadowRoots:[],markedElements:[]},i=new Map,r){if(t.childNodes){Array.from(t.childNodes).filter(e=>e instanceof n.HTMLElement||e instanceof n.SVGElement||e instanceof globalThis.HTMLElement||e instanceof globalThis.SVGElement).forEach(t=>{let s,l,c;if(!a.autoSaveExternalSave&&(a.removeHiddenElements||a.removeUnusedFonts||a.compressHTML)&&(c=sr(n,t),(t instanceof n.HTMLElement||t instanceof globalThis.HTMLElement)&&a.removeHiddenElements&&(l=(r||t.closest("html > head"))&&yi.includes(t.tagName.toUpperCase())||t.closest("details"),l||(s=r||$i(t,c),s&&!ki.includes(t.tagName.toUpperCase())&&(t.setAttribute(Qo,""),o.markedElements.push(t)))),!s)){if(a.compressHTML&&c){const n=c.getPropertyValue("white-space");n&&n.startsWith("pre")&&(t.setAttribute(ti,""),o.markedElements.push(t))}a.removeUnusedFonts&&(Ki(c,a,o.usedFonts),Ki(sr(n,t,":first-letter"),a,o.usedFonts),Ki(sr(n,t,":before"),a,o.usedFonts),Ki(sr(n,t,":after"),a,o.usedFonts))}!function(n,e,t,a,o,i,r){const s=t.tagName&&t.tagName.toUpperCase();if("CANVAS"==s)try{o.canvases.push({dataURI:t.toDataURL("image/png"),backgroundColor:r.getPropertyValue("background-color")}),t.setAttribute(li,o.canvases.length-1),o.markedElements.push(t)}catch(n){}if("IMG"==s){const e={currentSrc:i?Li:a.loadDeferredImages&&t.getAttribute(hi)||t.currentSrc};if(o.images.push(e),t.setAttribute(ii,o.images.length-1),o.markedElements.push(t),t.removeAttribute(hi),r=r||sr(n,t)){e.size=function(n,e,t){let a=e.naturalWidth,o=e.naturalHeight;if(!a&&!o){const i=null==e.getAttribute("style");if(t=t||sr(n,e)){let n,r,s,l,c,d,m,h,p=!1;if("content-box"==t.getPropertyValue("box-sizing")){const n=e.style.getPropertyValue("box-sizing"),t=e.style.getPropertyPriority("box-sizing"),a=e.clientWidth;e.style.setProperty("box-sizing","border-box","important"),p=e.clientWidth!=a,n?e.style.setProperty("box-sizing",n,t):e.style.removeProperty("box-sizing")}n=nr("padding-left",t),r=nr("padding-right",t),s=nr("padding-top",t),l=nr("padding-bottom",t),p?(c=nr("border-left-width",t),d=nr("border-right-width",t),m=nr("border-top-width",t),h=nr("border-bottom-width",t)):c=d=m=h=0,a=Math.max(0,e.clientWidth-n-r-c-d),o=Math.max(0,e.clientHeight-s-l-m-h),i&&e.removeAttribute("style")}}return{pxWidth:a,pxHeight:o}}(n,t,r);const a=r.getPropertyValue("box-shadow"),o=r.getPropertyValue("background-image");a&&"none"!=a||o&&"none"!=o||!(e.size.pxWidth>1||e.size.pxHeight>1)||(e.replaceable=!0,e.backgroundColor=r.getPropertyValue("background-color"),e.objectFit=r.getPropertyValue("object-fit"),e.boxSizing=r.getPropertyValue("box-sizing"),e.objectPosition=r.getPropertyValue("object-position"))}}if("VIDEO"==s){const a=t.currentSrc;if(a&&!a.startsWith("blob:")&&!a.startsWith("data:")){const e=sr(n,t.parentNode);o.videos.push({positionParent:e&&e.getPropertyValue("position"),src:a,size:{pxWidth:t.clientWidth,pxHeight:t.clientHeight,videoWidth:t.videoWidth,videoHeight:t.videoHeight},currentTime:t.currentTime}),t.setAttribute(si,o.videos.length-1)}if(!t.getAttribute("poster")){const n=e.createElement("canvas"),a=n.getContext("2d");n.width=t.videoWidth,n.height=t.videoHeight;try{a.drawImage(t,0,0,n.width,n.height),o.posters.push(n.toDataURL("image/png")),t.setAttribute(ri,o.posters.length-1),o.markedElements.push(t)}catch(n){}}}"IFRAME"==s&&i&&a.removeHiddenElements&&(t.setAttribute(ei,""),o.markedElements.push(t));"INPUT"==s&&("password"!=t.type&&(t.setAttribute(di,t.value),o.markedElements.push(t)),"radio"!=t.type&&"checkbox"!=t.type||(t.setAttribute(mi,t.checked),o.markedElements.push(t)));"TEXTAREA"==s&&(t.setAttribute(di,t.value),o.markedElements.push(t));"SELECT"==s&&t.querySelectorAll("option").forEach(n=>{n.selected&&(n.setAttribute(di,""),o.markedElements.push(n))});"SCRIPT"==s&&(t.async&&""!=t.getAttribute("async")&&"async"!=t.getAttribute("async")&&(t.setAttribute(bi,""),o.markedElements.push(t)),t.textContent=t.textContent.replace(/<\/script>/gi,"<\\/script>"))}(n,e,t,a,o,s,c);const d=!(t instanceof n.SVGElement||t instanceof globalThis.SVGElement)&&Ji(t);if(d&&!t.classList.contains(Ci)&&t.tagName.toLowerCase()!=Ai){const r={};t.setAttribute(ai,o.shadowRoots.length),o.markedElements.push(t),o.shadowRoots.push(r);try{if(d.adoptedStyleSheets){const n=n=>r.adoptedStyleSheets=n.detail.adoptedStyleSheets;d.addEventListener(Yo,n),d.dispatchEvent(new Ni(Jo,{bubbles:!0})),r.adoptedStyleSheets||t.dispatchEvent(new Ni(Jo,{bubbles:!0})),d.removeEventListener(Yo,n)}}catch(n){}Gi(n,e,d,a,o,i,s),r.content=d.innerHTML,r.mode=d.mode,r.delegateFocus=d.delegatesFocus,r.clonable=d.clonable,r.serializable=d.serializable;try{d.adoptedStyleSheets&&void 0===d.adoptedStyleSheets.length&&d.dispatchEvent(new Ni(Zo,{bubbles:!0}))}catch(n){}}Gi(n,e,t,a,o,i,s),!a.autoSaveExternalSave&&a.removeHiddenElements&&r&&(l||""==t.getAttribute(ni)?t.parentElement&&(t.parentElement.setAttribute(ni,""),o.markedElements.push(t.parentElement)):s&&(t.setAttribute(Xo,""),o.markedElements.push(t)))})}return o}function Vi(n,e=new Map){if(n){const t=[];for(const a of Array.from(n))if(e.has(a))t.push(e.get(a));else{let n="";if(a&&a.cssRules)for(const e of a.cssRules)n+=e.cssText+"\n";e.set(a,n),t.push(n)}return t}return[]}function Ki(n,e,t){if(n){const a=n.getPropertyValue("font-style")||"normal";n.getPropertyValue("font-family").split(",").forEach(o=>{if(o=Zi(o),!e.loadedFonts||e.loadedFonts.find(n=>Zi(n.family)==o&&n.style==a)){const e=ar(n.getPropertyValue("font-weight")),i=n.getPropertyValue("font-variant")||"normal",r=[o,e,a,i];t.set(Ii.stringify(r),[o,e,a,i])}})}}function Ji(n){const e=globalThis.chrome;if(n.openOrClosedShadowRoot)return n.openOrClosedShadowRoot;if(!(e&&e.dom&&e.dom.openOrClosedShadowRoot))return n.shadowRoot;try{return e.dom.openOrClosedShadowRoot(n)}catch(e){return n.shadowRoot}}function Yi(n,e,t){return qo(n,e,t)}function Zi(n=""){return tr(Do(n.trim())).toLowerCase()}function $i(n,e){let t=!1;if(e){const a=e.getPropertyValue("display"),o=e.getPropertyValue("opacity"),i=e.getPropertyValue("visibility");if(t="none"==a,!t&&("0"==o||"hidden"==i)&&n.getBoundingClientRect){const e=n.getBoundingClientRect();t=!e.width&&!e.height}}return Boolean(t)}function Xi(n,e,t){if(n.querySelectorAll("["+ui+"]").forEach(n=>{n.textContent=n.getAttribute(ui),n.removeAttribute(ui)}),n.querySelectorAll("meta[disabled-http-equiv]").forEach(n=>{n.setAttribute("http-equiv",n.getAttribute("disabled-http-equiv")),n.removeAttribute("disabled-http-equiv")}),n.head&&n.head.querySelectorAll("*:not(base):not(link):not(meta):not(noscript):not(script):not(style):not(template):not(title)").forEach(n=>n.removeAttribute("hidden")),!e){const t=[Xo,ei,Qo,ti,ii,ri,si,li,di,mi,ai,pi,bi];e=n.querySelectorAll(t.map(n=>"["+n+"]").join(","))}e.forEach(n=>{n.removeAttribute(Xo),n.removeAttribute(Qo),n.removeAttribute(ni),n.removeAttribute(ei),n.removeAttribute(ti),n.removeAttribute(ii),n.removeAttribute(ri),n.removeAttribute(si),n.removeAttribute(li),n.removeAttribute(di),n.removeAttribute(mi),n.removeAttribute(ai),n.removeAttribute(pi),n.removeAttribute(bi),n.removeAttribute(ci)}),t&&t.forEach((n,e)=>n.replaceWith(e))}function Qi(n){if(n){const e=[];return n.querySelectorAll("style").forEach((t,a)=>{try{if(!t.sheet.disabled){const o=n.createElement("style");o.textContent=t.textContent,n.body.appendChild(o);const i=o.sheet;o.remove();const r=Array.from(i.cssRules).map(n=>n.cssText).join("\n"),s=Array.from(t.sheet.cssRules).map(n=>n.cssText).join("\n");i&&r==s||(t.setAttribute(pi,a),e[a]=Array.from(t.sheet.cssRules).map(n=>n.cssText).join("\n"))}}catch(n){}}),e}}function nr(n,e){if(e.getPropertyValue(n).endsWith("px"))return parseFloat(e.getPropertyValue(n))}function er(n){const e=n.doctype;let t="";return e&&(t="<!DOCTYPE "+e.nodeName,e.publicId?(t+=' PUBLIC "'+e.publicId+'"',e.systemId&&(t+=' "'+e.systemId+'"')):e.systemId&&(t+=' SYSTEM "'+e.systemId+'"'),e.internalSubset&&(t+=" ["+e.internalSubset+"]"),t+="> "),t+n.documentElement.outerHTML}function tr(n){return(n=n.match(vi)?n.replace(vi,"$1"):n.replace(Si,"$1")).trim()}function ar(n){return ji[n.toLowerCase().trim()]||n}function or(n){return new Pi([n]).size}async function ir(n,e){try{return function(n){const e=[],t=new DataView(n);for(let n=0;n<t.byteLength;n+=4){const a="00000000",o=(a+t.getUint32(n).toString(16)).slice(-a.length);e.push(o)}return e.join("")}(await Di.subtle.digest(n,new Mi("utf-8").encode(e)))}catch(n){return""}}function rr(n){return n.flat?n.flat():n.reduce((n,e)=>n.concat(Array.isArray(e)?rr(e):e),[])}function sr(n,e,t){try{return n.getComputedStyle(e,t)}catch(n){}}function lr(n,e=zi,t="_",a=Ti){return a.forEach((t,o)=>n=n.replace(new RegExp("["+e[o]+"]+","g"),a[o])),e.forEach(e=>n=n.replace(new RegExp("["+e+"]+","g"),t)),n=n.replace(/\.\.\//g,"").replace(/^\/+/,"").replace(/\/+/g,"/").replace(/\/$/,"").replace(/\.$/,"").replace(/\.\//g,"."+t).replace(/\/\./g,"/"+t)}function cr(n,e){const t=(new Oi).parseFromString(n,"text/html");t.head||t.documentElement.insertBefore(t.createElement("HEAD"),t.body);let a=t.querySelector("base");return a&&a.getAttribute("href")||(a&&a.remove(),a=t.createElement("base"),a.setAttribute("href",e),t.head.insertBefore(a,t.head.firstChild)),t}var dr=Object.freeze({__proto__:null,ASYNC_SCRIPT_ATTRIBUTE_NAME:bi,CANVAS_ATTRIBUTE_NAME:li,COMMENT_HEADER:No,COMMENT_HEADER_LEGACY:xi,EMPTY_RESOURCE:Li,HIDDEN_CONTENT_ATTRIBUTE_NAME:Qo,HIDDEN_FRAME_ATTRIBUTE_NAME:ei,IMAGE_ATTRIBUTE_NAME:ii,INFOBAR_TAGNAME:Ai,INPUT_CHECKED_ATTRIBUTE_NAME:mi,INPUT_VALUE_ATTRIBUTE_NAME:di,INVALID_ELEMENT_ATTRIBUTE_NAME:wi,LAZY_SRC_ATTRIBUTE_NAME:hi,MESSAGE_PREFIX:Oo,NESTING_TRACK_ID_ATTRIBUTE_NAME:Ei,NO_SCRIPT_PROPERTY_NAME:Fo,ON_AFTER_CAPTURE_EVENT_NAME:Ko,ON_BEFORE_CAPTURE_EVENT_NAME:Vo,POSTER_ATTRIBUTE_NAME:ri,PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME:ti,REMOVED_CONTENT_ATTRIBUTE_NAME:Xo,SELECTED_CONTENT_ATTRIBUTE_NAME:gi,SHADOW_ROOT_ATTRIBUTE_NAME:ai,SINGLE_FILE_UI_ELEMENT_CLASS:Ci,STYLESHEET_ATTRIBUTE_NAME:pi,STYLE_ATTRIBUTE_NAME:ci,VIDEO_ATTRIBUTE_NAME:si,WAIT_FOR_USERSCRIPT_PROPERTY_NAME:Bo,WIN_ID_ATTRIBUTE_NAME:oi,appendInfobar:Yi,digest:ir,fixInvalidNesting:Wi,flatten:rr,getContentSize:or,getFontWeight:ar,getShadowRoot:Ji,getValidFilename:lr,initDoc:Ui,initUserScriptHandler:Fi,markInvalidNesting:Hi,normalizeFontFamily:Zi,parseDocContent:cr,postProcessDoc:Xi,preProcessDoc:qi,removeQuotes:tr,serialize:er});const mr={LAZY_SRC_ATTRIBUTE_NAME:hi,SINGLE_FILE_UI_ELEMENT_CLASS:Ci},hr="attributes",pr=globalThis.browser,ur=globalThis.document,gr=globalThis.MutationObserver,wr=new Map;let br;async function fr(n){if(ur.documentElement){wr.clear();const e=ur.body?Math.max(ur.body.scrollHeight,ur.documentElement.scrollHeight):ur.documentElement.scrollHeight,t=ur.body?Math.max(ur.body.scrollWidth,ur.documentElement.scrollWidth):ur.documentElement.scrollWidth;if(e>globalThis.innerHeight||t>globalThis.innerWidth){const a=Math.max(e-1.5*globalThis.innerHeight,0),o=Math.max(t-1.5*globalThis.innerWidth,0);if(globalThis.scrollY<a||globalThis.scrollX<o)return function(n){return br=0,new Promise(async e=>{let t;const a=new Set,o=new gr(async e=>{if((e=e.filter(n=>n.type==hr)).length){e.filter(n=>{if("src"==n.attributeName&&(n.target.setAttribute(mr.LAZY_SRC_ATTRIBUTE_NAME,n.target.src),n.target.addEventListener("load",r)),"src"==n.attributeName||"srcset"==n.attributeName||n.target.tagName&&"SOURCE"==n.target.tagName.toUpperCase())return!n.target.classList||!n.target.classList.contains(mr.SINGLE_FILE_UI_ELEMENT_CLASS)}).length&&(t=!0,await vr(o,n,c),a.size||await kr(o,n,c))}});async function i(e){await jr("idleTimeout",async()=>{t?br<10&&(br++,Cr("idleTimeout"),await i(Math.max(500,e/2))):(Cr("loadTimeout"),Cr("maxTimeout"),Sr(o,n,c))},e,n.loadDeferredImagesNativeTimeout)}function r(n){const e=n.target;e.removeAttribute(mr.LAZY_SRC_ATTRIBUTE_NAME),e.removeEventListener("load",r)}async function s(e){t=!0,await vr(o,n,c),await kr(o,n,c),e.detail&&a.add(e.detail)}async function l(e){await vr(o,n,c),await kr(o,n,c),a.delete(e.detail),a.size||await kr(o,n,c)}function c(n){o.disconnect(),ur.removeEventListener(po,s),ur.removeEventListener(uo,l),e(n)}await i(2*n.loadDeferredImagesMaxIdleTime),await vr(o,n,c),o.observe(ur,{subtree:!0,childList:!0,attributes:!0}),ur.addEventListener(po,s),ur.addEventListener(uo,l),Lo(n)})}(n)}}}function yr(n){To(n)}async function kr(n,e,t){await jr("loadTimeout",()=>Sr(n,e,t),e.loadDeferredImagesMaxIdleTime,e.loadDeferredImagesNativeTimeout)}async function vr(n,e,t){await jr("maxTimeout",async()=>{await Cr("loadTimeout"),await Sr(n,e,t)},10*e.loadDeferredImagesMaxIdleTime,e.loadDeferredImagesNativeTimeout)}async function Sr(n,e,t){await Cr("idleTimeout"),zo(e),await jr("endTimeout",async()=>{await Cr("maxTimeout"),t()},e.loadDeferredImagesMaxIdleTime/2,e.loadDeferredImagesNativeTimeout),n.disconnect()}async function jr(n,e,t,a){if(pr&&pr.runtime&&pr.runtime.sendMessage&&!a){if(!wr.get(n)||!wr.get(n).pending){const a={callback:e,pending:!0};wr.set(n,a);try{await pr.runtime.sendMessage({method:"singlefile.lazyTimeout.setTimeout",type:n,delay:t})}catch(a){xr(n,e,t)}a.pending=!1}}else xr(n,e,t)}function xr(n,e,t){const a=wr.get(n);a&&globalThis.clearTimeout(a),wr.set(n,e),globalThis.setTimeout(e,t)}async function Cr(n){if(pr&&pr.runtime&&pr.runtime.sendMessage)try{await pr.runtime.sendMessage({method:"singlefile.lazyTimeout.clearTimeout",type:n})}catch(e){Ar(n)}else Ar(n)}function Ar(n){const e=wr.get(n);wr.delete(n),e&&globalThis.clearTimeout(e)}pr&&pr.runtime&&pr.runtime.onMessage&&pr.runtime.onMessage.addListener&&pr.runtime.onMessage.addListener(n=>{if("singlefile.lazyTimeout.onTimeout"==n.method){const e=wr.get(n.type);if(e){wr.delete(n.type);try{e.callback()}catch(e){Ar(n.type)}}}});var Lr=Object.freeze({__proto__:null,process:fr,resetZoomLevel:yr});const zr={ON_BEFORE_CAPTURE_EVENT_NAME:Vo,ON_AFTER_CAPTURE_EVENT_NAME:Ko,WIN_ID_ATTRIBUTE_NAME:oi,WAIT_FOR_USERSCRIPT_PROPERTY_NAME:Bo,preProcessDoc:qi,serialize:er,postProcessDoc:Xi,getShadowRoot:Ji},Tr="singlefile.frameTree.initRequest",Er="singlefile.frameTree.ackInitRequest",Rr="singlefile.frameTree.cleanupRequest",Ir="singlefile.frameTree.initResponse",Dr=5e3,Mr=".",Pr=globalThis.window==globalThis.top,Nr=globalThis.browser,_r=globalThis.top,Br=globalThis.MessageChannel,Or=globalThis.document,Fr=globalThis.JSON,Ur=globalThis.MutationObserver,qr=globalThis.DOMParser;let Hr,Wr=globalThis.sessions;function Gr(){globalThis.addEventListener("message",async n=>{if("string"==typeof n.data&&n.data.startsWith(Oo)){n.preventDefault(),n.stopPropagation();const e=Fr.parse(n.data.substring(15));if(e.method==Tr)n.source&&es(n.source,{method:Er,windowId:e.windowId,sessionId:e.sessionId}),Pr||(globalThis.stop(),e.options.loadDeferredImages&&fr(e.options),await Kr(e));else if(e.method==Er)$r("requestTimeouts",e.sessionId,e.windowId),Xr(e.sessionId,e.windowId);else if(e.method==Rr)Jr(e);else if(e.method==Ir&&Wr.get(e.sessionId)){n.ports[0].onmessage=n=>Yr(n.data)}}},!0)}function Vr(){return globalThis.crypto.getRandomValues(new Uint32Array(32)).join("")}async function Kr(n){const e=n.sessionId;delete globalThis._singleFile_cleaningUp,Pr||(Hr=globalThis.frameId=n.windowId),Zr(Or,n.options,Hr,e),Pr||(ns({frames:[ts(Or,globalThis,Hr,n.options,n.scrolling)],sessionId:e,requestedFrameId:Or.documentElement.dataset.requestedFrameId&&Hr}),delete Or.documentElement.dataset.requestedFrameId)}function Jr(n){if(!globalThis._singleFile_cleaningUp){globalThis._singleFile_cleaningUp=!0;const e=n.sessionId;Qr(as(Or),n.windowId,e)}}function Yr(n){n.frames.forEach(e=>$r("responseTimeouts",n.sessionId,e.windowId));const e=Wr.get(n.sessionId);if(e){n.requestedFrameId&&(e.requestedFrameId=n.requestedFrameId),n.frames.forEach(n=>{let t=e.frames.find(e=>n.windowId==e.windowId);t||(t={windowId:n.windowId},e.frames.push(t)),t.processed||(t.content=n.content,t.baseURI=n.baseURI,t.title=n.title,t.url=n.url,t.canvases=n.canvases,t.fonts=n.fonts,t.worklets=n.worklets,t.stylesheets=n.stylesheets,t.images=n.images,t.posters=n.posters,t.videos=n.videos,t.usedFonts=n.usedFonts,t.shadowRoots=n.shadowRoots,t.processed=n.processed,t.scrollPosition=n.scrollPosition,t.scrolling=n.scrolling,t.adoptedStyleSheets=n.adoptedStyleSheets)});e.frames.filter(n=>!n.processed).length||(e.frames=e.frames.sort((n,e)=>e.windowId.split(Mr).length-n.windowId.split(Mr).length),e.resolve&&(e.requestedFrameId&&e.frames.forEach(n=>{n.windowId==e.requestedFrameId&&(n.requestedFrame=!0)}),e.resolve(e.frames)))}}function Zr(n,e,t,a){const o=as(n);!function(n,e,t,a,o){const i=[];let r;Wr.get(o)?r=Wr.get(o).requestTimeouts:(r={},Wr.set(o,{requestTimeouts:r}));e.forEach((n,e)=>{const t=a+Mr+e;n.setAttribute(zr.WIN_ID_ATTRIBUTE_NAME,t),i.push({windowId:t})}),ns({frames:i,sessionId:o,requestedFrameId:n.documentElement.dataset.requestedFrameId&&a}),e.forEach((n,e)=>{const i=a+Mr+e;try{es(n.contentWindow,{method:Tr,windowId:i,sessionId:o,options:t,scrolling:n.scrolling})}catch(n){}r[i]=globalThis.setTimeout(()=>ns({frames:[{windowId:i,processed:!0}],sessionId:o}),Dr)}),delete n.documentElement.dataset.requestedFrameId}(n,o,e,t,a),o.length&&function(n,e,t,a,o){const i=[];e.forEach((n,e)=>{const r=a+Mr+e;let s,l;try{s=n.contentDocument,l=n.contentWindow,l.stop()}catch(n){}const c=n.getAttribute("srcdoc");if(!s&&c){s=(new qr).parseFromString(c,"text/html"),l=globalThis}if(s)try{$r("requestTimeouts",o,r),Zr(s,t,r,o),i.push(ts(s,l,r,t,n.scrolling))}catch(n){i.push({windowId:r,processed:!0})}}),ns({frames:i,sessionId:o,requestedFrameId:n.documentElement.dataset.requestedFrameId&&a}),delete n.documentElement.dataset.requestedFrameId}(n,o,e,t,a)}function $r(n,e,t){const a=Wr.get(e);if(a&&a[n]){const e=a[n][t];e&&(globalThis.clearTimeout(e),delete a[n][t])}}function Xr(n,e){const t=Wr.get(n);t&&t.responseTimeouts&&(t.responseTimeouts[e]=globalThis.setTimeout(()=>ns({frames:[{windowId:e,processed:!0}],sessionId:n}),1e4))}function Qr(n,e,t){n.forEach((n,a)=>{const o=e+Mr+a;n.removeAttribute(zr.WIN_ID_ATTRIBUTE_NAME);try{es(n.contentWindow,{method:Rr,windowId:o,sessionId:t})}catch(n){}}),n.forEach((n,a)=>{const o=e+Mr+a;let i;try{i=n.contentDocument}catch(n){}if(i)try{Qr(as(i),o,t)}catch(n){}})}function ns(n){n.method=Ir;try{_r.singlefile.processors.frameTree.initResponse(n)}catch(e){es(_r,n,!0)}}function es(n,e,t){if(n==_r&&Nr&&Nr.runtime&&Nr.runtime.sendMessage)Nr.runtime.sendMessage(e);else if(t){const t=new Br;n.postMessage(Oo+Fr.stringify({method:e.method,sessionId:e.sessionId}),"*",[t.port2]),t.port1.postMessage(e)}else n.postMessage(Oo+Fr.stringify(e),"*")}function ts(n,e,t,a,o){const i=zr.preProcessDoc(n,e,a),r=zr.serialize(n);zr.postProcessDoc(n,i.markedElements,i.invalidElements);return{windowId:t,content:r,baseURI:n.baseURI.split("#")[0],url:n.documentURI,title:n.title,canvases:i.canvases,fonts:i.fonts,worklets:i.worklets,stylesheets:i.stylesheets,images:i.images,posters:i.posters,videos:i.videos,usedFonts:i.usedFonts,shadowRoots:i.shadowRoots,scrollPosition:i.scrollPosition,scrolling:o,adoptedStyleSheets:i.adoptedStyleSheets,processed:!0}}function as(n){let e=Array.from(n.querySelectorAll('iframe, frame, object[type="text/html"][data]'));return n.querySelectorAll("*").forEach(n=>{const t=zr.getShadowRoot(n);t&&(e=e.concat(...as(t)))}),e}Wr||(Wr=globalThis.sessions=new Map),Pr&&(Hr="0",Nr&&Nr.runtime&&Nr.runtime.onMessage&&Nr.runtime.onMessage.addListener&&Nr.runtime.onMessage.addListener(n=>n.method==Ir?(Yr(n),Promise.resolve({})):n.method==Er?($r("requestTimeouts",n.sessionId,n.windowId),Xr(n.sessionId,n.windowId),Promise.resolve({})):void 0)),Gr(),Fi(),new Ur(Gr).observe(Or,{childList:!0});var os=Object.freeze({__proto__:null,TIMEOUT_INIT_REQUEST_MESSAGE:Dr,cleanup:function(n){Wr.delete(n),Jr({windowId:Hr,sessionId:n})},getAsync:function(n){const e=Vr();return n=Fr.parse(Fr.stringify(n)),new Promise(t=>{Wr.set(e,{frames:[],requestTimeouts:{},responseTimeouts:{},resolve:n=>{n.sessionId=e,t(n)}}),Kr({windowId:Hr,sessionId:e,options:n})})},getSync:function(n){const e=Vr();n=Fr.parse(Fr.stringify(n)),Wr.set(e,{frames:[],requestTimeouts:{},responseTimeouts:{}}),function(n){const e=n.sessionId;delete globalThis._singleFile_cleaningUp,Pr||(Hr=globalThis.frameId=n.windowId);Zr(Or,n.options,Hr,e),Pr||(ns({frames:[ts(Or,globalThis,Hr,n.options,n.scrolling)],sessionId:e,requestedFrameId:Or.documentElement.dataset.requestedFrameId&&Hr}),delete Or.documentElement.dataset.requestedFrameId)}({windowId:Hr,sessionId:e,options:n});const t=Wr.get(e).frames;return t.sessionId=e,t},initResponse:Yr}),is=Object.freeze({__proto__:null,compression:ho,frameTree:os,hooksFrames:Eo,lazy:Lr}),rs=Object.create,ss=Object.defineProperty,ls=Object.getOwnPropertyDescriptor,cs=Object.getOwnPropertyNames,ds=Object.getPrototypeOf,ms=Object.prototype.hasOwnProperty,hs=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports),ps=(n,e)=>{for(var t in e)ss(n,t,{get:e[t],enumerable:!0})},us=hs(n=>{var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(n){if(0<=n&&n<e.length)return e[n];throw new TypeError("Must be between 0 and 63: "+n)},n.decode=function(n){return 65<=n&&n<=90?n-65:97<=n&&n<=122?n-97+26:48<=n&&n<=57?n-48+52:43==n?62:47==n?63:-1}}),gs=hs(n=>{var e=us();n.encode=function(n){var t,a="",o=function(n){return n<0?1+(-n<<1):0+(n<<1)}(n);do{t=31&o,(o>>>=5)>0&&(t|=32),a+=e.encode(t)}while(o>0);return a},n.decode=function(n,t,a){var o,i,r=n.length,s=0,l=0;do{if(t>=r)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(i=e.decode(n.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+n.charAt(t-1));o=!!(32&i),s+=(i&=31)<<l,l+=5}while(o);a.value=function(n){var e=n>>1;return 1&~n?e:-e}(s),a.rest=t}}),ws=hs(n=>{n.getArg=function(n,e,t){if(e in n)return n[e];if(3===arguments.length)return t;throw new Error('"'+e+'" is a required argument.')};var e=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,t=/^data:.+\,.+$/;function a(n){var t=n.match(e);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(n){var e="";return n.scheme&&(e+=n.scheme+":"),e+="//",n.auth&&(e+=n.auth+"@"),n.host&&(e+=n.host),n.port&&(e+=":"+n.port),n.path&&(e+=n.path),e}n.urlParse=a,n.urlGenerate=o;var i=function(n){var e=[];return function(t){for(var a=0;a<e.length;a++)if(e[a].input===t){var o=e[0];return e[0]=e[a],e[a]=o,e[0].result}var i=n(t);return e.unshift({input:t,result:i}),e.length>32&&e.pop(),i}}(function(e){var t=e,i=a(e);if(i){if(!i.path)return e;t=i.path}for(var r=n.isAbsolute(t),s=[],l=0,c=0;;){if(l=c,-1===(c=t.indexOf("/",l))){s.push(t.slice(l));break}for(s.push(t.slice(l,c));c<t.length&&"/"===t[c];)c++}var d,m=0;for(c=s.length-1;c>=0;c--)"."===(d=s[c])?s.splice(c,1):".."===d?m++:m>0&&(""===d?(s.splice(c+1,m),m=0):(s.splice(c,2),m--));return""===(t=s.join("/"))&&(t=r?"/":"."),i?(i.path=t,o(i)):t});function r(n,e){""===n&&(n="."),""===e&&(e=".");var r=a(e),s=a(n);if(s&&(n=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),o(r);if(r||e.match(t))return e;if(s&&!s.host&&!s.path)return s.host=e,o(s);var l="/"===e.charAt(0)?e:i(n.replace(/\/+$/,"")+"/"+e);return s?(s.path=l,o(s)):l}n.normalize=i,n.join=r,n.isAbsolute=function(n){return"/"===n.charAt(0)||e.test(n)},n.relative=function(n,e){""===n&&(n="."),n=n.replace(/\/$/,"");for(var t=0;0!==e.indexOf(n+"/");){var a=n.lastIndexOf("/");if(a<0||(n=n.slice(0,a)).match(/^([^\/]+:\/)?\/*$/))return e;++t}return Array(t+1).join("../")+e.substr(n.length+1)};var s=!("__proto__"in Object.create(null));function l(n){return n}function c(n){if(!n)return!1;var e=n.length;if(e<9||95!==n.charCodeAt(e-1)||95!==n.charCodeAt(e-2)||111!==n.charCodeAt(e-3)||116!==n.charCodeAt(e-4)||111!==n.charCodeAt(e-5)||114!==n.charCodeAt(e-6)||112!==n.charCodeAt(e-7)||95!==n.charCodeAt(e-8)||95!==n.charCodeAt(e-9))return!1;for(var t=e-10;t>=0;t--)if(36!==n.charCodeAt(t))return!1;return!0}function d(n,e){return n===e?0:null===n?1:null===e?-1:n>e?1:-1}n.toSetString=s?l:function(n){return c(n)?"$"+n:n},n.fromSetString=s?l:function(n){return c(n)?n.slice(1):n},n.compareByOriginalPositions=function(n,e,t){var a=d(n.source,e.source);return 0!==a||0!==(a=n.originalLine-e.originalLine)||(0!==(a=n.originalColumn-e.originalColumn)||t)||0!==(a=n.generatedColumn-e.generatedColumn)||0!==(a=n.generatedLine-e.generatedLine)?a:d(n.name,e.name)},n.compareByOriginalPositionsNoSource=function(n,e,t){var a;return 0!==(a=n.originalLine-e.originalLine)||(0!==(a=n.originalColumn-e.originalColumn)||t)||0!==(a=n.generatedColumn-e.generatedColumn)||0!==(a=n.generatedLine-e.generatedLine)?a:d(n.name,e.name)},n.compareByGeneratedPositionsDeflated=function(n,e,t){var a=n.generatedLine-e.generatedLine;return 0!==a||(0!==(a=n.generatedColumn-e.generatedColumn)||t)||0!==(a=d(n.source,e.source))||0!==(a=n.originalLine-e.originalLine)||0!==(a=n.originalColumn-e.originalColumn)?a:d(n.name,e.name)},n.compareByGeneratedPositionsDeflatedNoLine=function(n,e,t){var a=n.generatedColumn-e.generatedColumn;return 0!==a||t||0!==(a=d(n.source,e.source))||0!==(a=n.originalLine-e.originalLine)||0!==(a=n.originalColumn-e.originalColumn)?a:d(n.name,e.name)},n.compareByGeneratedPositionsInflated=function(n,e){var t=n.generatedLine-e.generatedLine;return 0!==t||0!==(t=n.generatedColumn-e.generatedColumn)||0!==(t=d(n.source,e.source))||0!==(t=n.originalLine-e.originalLine)||0!==(t=n.originalColumn-e.originalColumn)?t:d(n.name,e.name)},n.parseSourceMapInput=function(n){return JSON.parse(n.replace(/^\)]}'[^\n]*\n/,""))},n.computeSourceURL=function(n,e,t){if(e=e||"",n&&("/"!==n[n.length-1]&&"/"!==e[0]&&(n+="/"),e=n+e),t){var s=a(t);if(!s)throw new Error("sourceMapURL could not be parsed");if(s.path){var l=s.path.lastIndexOf("/");l>=0&&(s.path=s.path.substring(0,l+1))}e=r(o(s),e)}return i(e)}}),bs=hs(n=>{var e=ws(),t=Object.prototype.hasOwnProperty,a=typeof Map<"u";function o(){this._array=[],this._set=a?new Map:Object.create(null)}o.fromArray=function(n,e){for(var t=new o,a=0,i=n.length;a<i;a++)t.add(n[a],e);return t},o.prototype.size=function(){return a?this._set.size:Object.getOwnPropertyNames(this._set).length},o.prototype.add=function(n,o){var i=a?n:e.toSetString(n),r=a?this.has(n):t.call(this._set,i),s=this._array.length;(!r||o)&&this._array.push(n),r||(a?this._set.set(n,s):this._set[i]=s)},o.prototype.has=function(n){if(a)return this._set.has(n);var o=e.toSetString(n);return t.call(this._set,o)},o.prototype.indexOf=function(n){if(a){var o=this._set.get(n);if(o>=0)return o}else{var i=e.toSetString(n);if(t.call(this._set,i))return this._set[i]}throw new Error('"'+n+'" is not in the set.')},o.prototype.at=function(n){if(n>=0&&n<this._array.length)return this._array[n];throw new Error("No element indexed by "+n)},o.prototype.toArray=function(){return this._array.slice()},n.ArraySet=o}),fs=hs(n=>{var e=ws();function t(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}t.prototype.unsortedForEach=function(n,e){this._array.forEach(n,e)},t.prototype.add=function(n){!function(n,t){var a=n.generatedLine,o=t.generatedLine,i=n.generatedColumn,r=t.generatedColumn;return o>a||o==a&&r>=i||e.compareByGeneratedPositionsInflated(n,t)<=0}(this._last,n)?(this._sorted=!1,this._array.push(n)):(this._last=n,this._array.push(n))},t.prototype.toArray=function(){return this._sorted||(this._array.sort(e.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=t}),ys=hs(n=>{var e=gs(),t=ws(),a=bs().ArraySet,o=fs().MappingList;function i(n){n||(n={}),this._file=t.getArg(n,"file",null),this._sourceRoot=t.getArg(n,"sourceRoot",null),this._skipValidation=t.getArg(n,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}i.prototype._version=3,i.fromSourceMap=function(n){var e=n.sourceRoot,a=new i({file:n.file,sourceRoot:e});return n.eachMapping(function(n){var o={generated:{line:n.generatedLine,column:n.generatedColumn}};null!=n.source&&(o.source=n.source,null!=e&&(o.source=t.relative(e,o.source)),o.original={line:n.originalLine,column:n.originalColumn},null!=n.name&&(o.name=n.name)),a.addMapping(o)}),n.sources.forEach(function(o){var i=o;null!==e&&(i=t.relative(e,o)),a._sources.has(i)||a._sources.add(i);var r=n.sourceContentFor(o);null!=r&&a.setSourceContent(o,r)}),a},i.prototype.addMapping=function(n){var e=t.getArg(n,"generated"),a=t.getArg(n,"original",null),o=t.getArg(n,"source",null),i=t.getArg(n,"name",null);this._skipValidation||this._validateMapping(e,a,o,i),null!=o&&(o=String(o),this._sources.has(o)||this._sources.add(o)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:e.line,generatedColumn:e.column,originalLine:null!=a&&a.line,originalColumn:null!=a&&a.column,source:o,name:i})},i.prototype.setSourceContent=function(n,e){var a=n;null!=this._sourceRoot&&(a=t.relative(this._sourceRoot,a)),null!=e?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[t.toSetString(a)]=e):this._sourcesContents&&(delete this._sourcesContents[t.toSetString(a)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},i.prototype.applySourceMap=function(n,e,o){var i=e;if(null==e){if(null==n.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');i=n.file}var r=this._sourceRoot;null!=r&&(i=t.relative(r,i));var s=new a,l=new a;this._mappings.unsortedForEach(function(e){if(e.source===i&&null!=e.originalLine){var a=n.originalPositionFor({line:e.originalLine,column:e.originalColumn});null!=a.source&&(e.source=a.source,null!=o&&(e.source=t.join(o,e.source)),null!=r&&(e.source=t.relative(r,e.source)),e.originalLine=a.line,e.originalColumn=a.column,null!=a.name&&(e.name=a.name))}var c=e.source;null!=c&&!s.has(c)&&s.add(c);var d=e.name;null!=d&&!l.has(d)&&l.add(d)},this),this._sources=s,this._names=l,n.sources.forEach(function(e){var a=n.sourceContentFor(e);null!=a&&(null!=o&&(e=t.join(o,e)),null!=r&&(e=t.relative(r,e)),this.setSourceContent(e,a))},this)},i.prototype._validateMapping=function(n,e,t,a){if(e&&"number"!=typeof e.line&&"number"!=typeof e.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if(!(n&&"line"in n&&"column"in n&&n.line>0&&n.column>=0)||e||t||a){if(n&&"line"in n&&"column"in n&&e&&"line"in e&&"column"in e&&n.line>0&&n.column>=0&&e.line>0&&e.column>=0&&t)return;throw new Error("Invalid mapping: "+JSON.stringify({generated:n,source:t,original:e,name:a}))}},i.prototype._serializeMappings=function(){for(var n,a,o,i,r=0,s=1,l=0,c=0,d=0,m=0,h="",p=this._mappings.toArray(),u=0,g=p.length;u<g;u++){if(n="",(a=p[u]).generatedLine!==s)for(r=0;a.generatedLine!==s;)n+=";",s++;else if(u>0){if(!t.compareByGeneratedPositionsInflated(a,p[u-1]))continue;n+=","}n+=e.encode(a.generatedColumn-r),r=a.generatedColumn,null!=a.source&&(i=this._sources.indexOf(a.source),n+=e.encode(i-m),m=i,n+=e.encode(a.originalLine-1-c),c=a.originalLine-1,n+=e.encode(a.originalColumn-l),l=a.originalColumn,null!=a.name&&(o=this._names.indexOf(a.name),n+=e.encode(o-d),d=o)),h+=n}return h},i.prototype._generateSourcesContent=function(n,e){return n.map(function(n){if(!this._sourcesContents)return null;null!=e&&(n=t.relative(e,n));var a=t.toSetString(n);return Object.prototype.hasOwnProperty.call(this._sourcesContents,a)?this._sourcesContents[a]:null},this)},i.prototype.toJSON=function(){var n={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(n.file=this._file),null!=this._sourceRoot&&(n.sourceRoot=this._sourceRoot),this._sourcesContents&&(n.sourcesContent=this._generateSourcesContent(n.sources,n.sourceRoot)),n},i.prototype.toString=function(){return JSON.stringify(this.toJSON())},n.SourceMapGenerator=i}),ks={};ps(ks,{AtKeyword:()=>xs,BadString:()=>Ls,BadUrl:()=>Ts,CDC:()=>Ns,CDO:()=>Ps,Colon:()=>_s,Comma:()=>Os,Comment:()=>Vs,Delim:()=>Es,Dimension:()=>Ds,EOF:()=>vs,Function:()=>js,Hash:()=>Cs,Ident:()=>Ss,LeftCurlyBracket:()=>Ws,LeftParenthesis:()=>qs,LeftSquareBracket:()=>Fs,Number:()=>Rs,Percentage:()=>Is,RightCurlyBracket:()=>Gs,RightParenthesis:()=>Hs,RightSquareBracket:()=>Us,Semicolon:()=>Bs,String:()=>As,Url:()=>zs,WhiteSpace:()=>Ms});var vs=0,Ss=1,js=2,xs=3,Cs=4,As=5,Ls=6,zs=7,Ts=8,Es=9,Rs=10,Is=11,Ds=12,Ms=13,Ps=14,Ns=15,_s=16,Bs=17,Os=18,Fs=19,Us=20,qs=21,Hs=22,Ws=23,Gs=24,Vs=25;function Ks(n){return n>=48&&n<=57}function Js(n){return Ks(n)||n>=65&&n<=70||n>=97&&n<=102}function Ys(n){return n>=65&&n<=90}function Zs(n){return function(n){return Ys(n)||function(n){return n>=97&&n<=122}(n)}(n)||function(n){return n>=128}(n)||95===n}function $s(n){return Zs(n)||Ks(n)||45===n}function Xs(n){return n>=0&&n<=8||11===n||n>=14&&n<=31||127===n}function Qs(n){return 10===n||13===n||12===n}function nl(n){return Qs(n)||32===n||9===n}function el(n,e){return!(92!==n||Qs(e)||0===e)}function tl(n,e,t){return 45===n?Zs(e)||45===e||el(e,t):!!Zs(n)||92===n&&el(n,e)}function al(n,e,t){return 43===n||45===n?Ks(e)?2:46===e&&Ks(t)?3:0:46===n?Ks(e)?2:0:Ks(n)?1:0}function ol(n){return 65279===n||65534===n?1:0}var il=new Array(128),rl=130;for(let n=0;n<il.length;n++)il[n]=(nl(n)?rl:Ks(n)&&131)||Zs(n)&&132||Xs(n)&&133||n||128;function sl(n){return n<128?il[n]:132}function ll(n,e){return e<n.length?n.charCodeAt(e):0}function cl(n,e,t){return 13===t&&10===ll(n,e+1)?2:1}function dl(n,e,t){let a=n.charCodeAt(e);return Ys(a)&&(a|=32),a===t}function ml(n,e,t,a){if(t-e!==a.length||e<0||t>n.length)return!1;for(let o=e;o<t;o++){let t=a.charCodeAt(o-e),i=n.charCodeAt(o);if(Ys(i)&&(i|=32),i!==t)return!1}return!0}function hl(n,e){for(;e<n.length&&nl(n.charCodeAt(e));e++);return e}function pl(n,e){for(;e<n.length&&Ks(n.charCodeAt(e));e++);return e}function ul(n,e){if(Js(ll(n,(e+=2)-1))){for(let t=Math.min(n.length,e+5);e<t&&Js(ll(n,e));e++);let t=ll(n,e);nl(t)&&(e+=cl(n,e,t))}return e}function gl(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(!$s(t)){if(el(t,ll(n,e+1))){e=ul(n,e)-1;continue}break}}return e}function wl(n,e){let t=n.charCodeAt(e);if((43===t||45===t)&&(t=n.charCodeAt(e+=1)),Ks(t)&&(e=pl(n,e+1),t=n.charCodeAt(e)),46===t&&Ks(n.charCodeAt(e+1))&&(e=pl(n,e+=2)),dl(n,e,101)){let a=0;t=n.charCodeAt(e+1),(45===t||43===t)&&(a=1,t=n.charCodeAt(e+2)),Ks(t)&&(e=pl(n,e+1+a+1))}return e}function bl(n,e){for(;e<n.length;e++){let t=n.charCodeAt(e);if(41===t){e++;break}el(t,ll(n,e+1))&&(e=ul(n,e))}return e}function fl(n){if(1===n.length&&!Js(n.charCodeAt(0)))return n[0];let e=parseInt(n,16);return(0===e||e>=55296&&e<=57343||e>1114111)&&(e=65533),String.fromCodePoint(e)}var yl=["EOF-token","ident-token","function-token","at-keyword-token","hash-token","string-token","bad-string-token","url-token","bad-url-token","delim-token","number-token","percentage-token","dimension-token","whitespace-token","CDO-token","CDC-token","colon-token","semicolon-token","comma-token","[-token","]-token","(-token",")-token","{-token","}-token","comment-token"];function kl(n=null,e){return null===n||n.length<e?new Uint32Array(Math.max(e+1024,16384)):n}function vl(n){let e=n.source,t=e.length,a=e.length>0?ol(e.charCodeAt(0)):0,o=kl(n.lines,t),i=kl(n.columns,t),r=n.startLine,s=n.startColumn;for(let n=a;n<t;n++){let a=e.charCodeAt(n);o[n]=r,i[n]=s++,(10===a||13===a||12===a)&&(13===a&&n+1<t&&10===e.charCodeAt(n+1)&&(n++,o[n]=r,i[n]=s),r++,s=1)}o[t]=r,i[t]=s,n.lines=o,n.columns=i,n.computed=!0}var Sl=class{constructor(n,e,t,a){this.setSource(n,e,t,a),this.lines=null,this.columns=null}setSource(n="",e=0,t=1,a=1){this.source=n,this.startOffset=e,this.startLine=t,this.startColumn=a,this.computed=!1}getLocation(n,e){return this.computed||vl(this),{source:e,offset:this.startOffset+n,line:this.lines[n],column:this.columns[n]}}getLocationRange(n,e,t){return this.computed||vl(this),{source:t,start:{offset:this.startOffset+n,line:this.lines[n],column:this.columns[n]},end:{offset:this.startOffset+e,line:this.lines[e],column:this.columns[e]}}}},jl=16777215,xl=24,Cl=new Uint8Array(32);Cl[2]=22,Cl[21]=22,Cl[19]=20,Cl[23]=24;var Al=new Uint8Array(32);function Ll(n,e,t){return n<e?e:n>t?t:n}Al[2]=1,Al[21]=1,Al[19]=1,Al[23]=1,Al[22]=2,Al[20]=2,Al[24]=2;var zl=class{constructor(n,e){this.setSource(n,e)}reset(){this.eof=!1,this.tokenIndex=-1,this.tokenType=0,this.tokenStart=this.firstCharOffset,this.tokenEnd=this.firstCharOffset}setSource(n="",e=()=>{}){let t=(n=String(n||"")).length,a=kl(this.offsetAndType,n.length+1),o=kl(this.balance,n.length+1),i=0,r=-1,s=0,l=n.length;this.offsetAndType=null,this.balance=null,o.fill(0),e(n,(n,e,t)=>{let c=i++;if(a[c]=n<<xl|t,-1===r&&(r=e),o[c]=l,n===s){let n=o[l];o[l]=c,l=n,s=Cl[a[n]>>xl]}else this.isBlockOpenerTokenType(n)&&(l=c,s=Cl[n])}),a[i]=0|t,o[i]=i;for(let n=0;n<i;n++){let e=o[n];if(e<=n){let t=o[e];t!==n&&(o[n]=t)}else e>i&&(o[n]=i)}this.source=n,this.firstCharOffset=-1===r?0:r,this.tokenCount=i,this.offsetAndType=a,this.balance=o,this.reset(),this.next()}lookupType(n){return(n+=this.tokenIndex)<this.tokenCount?this.offsetAndType[n]>>xl:0}lookupTypeNonSC(n){for(let e=this.tokenIndex;e<this.tokenCount;e++){let t=this.offsetAndType[e]>>xl;if(13!==t&&25!==t&&0===n--)return t}return 0}lookupOffset(n){return(n+=this.tokenIndex)<this.tokenCount?this.offsetAndType[n-1]&jl:this.source.length}lookupOffsetNonSC(n){for(let e=this.tokenIndex;e<this.tokenCount;e++){let t=this.offsetAndType[e]>>xl;if(13!==t&&25!==t&&0===n--)return e-this.tokenIndex}return 0}lookupValue(n,e){return(n+=this.tokenIndex)<this.tokenCount&&ml(this.source,this.offsetAndType[n-1]&jl,this.offsetAndType[n]&jl,e)}getTokenStart(n){return n===this.tokenIndex?this.tokenStart:n>0?n<this.tokenCount?this.offsetAndType[n-1]&jl:this.offsetAndType[this.tokenCount]&jl:this.firstCharOffset}getTokenEnd(n){return n===this.tokenIndex?this.tokenEnd:this.offsetAndType[Ll(n,0,this.tokenCount)]&jl}getTokenType(n){return n===this.tokenIndex?this.tokenType:this.offsetAndType[Ll(n,0,this.tokenCount)]>>xl}substrToCursor(n){return this.source.substring(n,this.tokenStart)}isBlockOpenerTokenType(n){return 1===Al[n]}isBlockCloserTokenType(n){return 2===Al[n]}getBlockTokenPairIndex(n){let e=this.getTokenType(n);if(1===Al[e]){let t=this.balance[n],a=this.getTokenType(t);return Cl[e]===a?t:-1}if(2===Al[e]){let t=this.balance[n],a=this.getTokenType(t);return Cl[a]===e?t:-1}return-1}isBalanceEdge(n){return this.balance[this.tokenIndex]<n}isDelim(n,e){return e?9===this.lookupType(e)&&this.source.charCodeAt(this.lookupOffset(e))===n:9===this.tokenType&&this.source.charCodeAt(this.tokenStart)===n}skip(n){let e=this.tokenIndex+n;e<this.tokenCount?(this.tokenIndex=e,this.tokenStart=this.offsetAndType[e-1]&jl,e=this.offsetAndType[e],this.tokenType=e>>xl,this.tokenEnd=e&jl):(this.tokenIndex=this.tokenCount,this.next())}next(){let n=this.tokenIndex+1;n<this.tokenCount?(this.tokenIndex=n,this.tokenStart=this.tokenEnd,n=this.offsetAndType[n],this.tokenType=n>>xl,this.tokenEnd=n&jl):(this.eof=!0,this.tokenIndex=this.tokenCount,this.tokenType=0,this.tokenStart=this.tokenEnd=this.source.length)}skipSC(){for(;13===this.tokenType||25===this.tokenType;)this.next()}skipUntilBalanced(n,e){let t=n,a=0,o=0;n:for(;t<this.tokenCount&&(a=this.balance[t],!(a<n));t++)switch(o=t>0?this.offsetAndType[t-1]&jl:this.firstCharOffset,e(this.source.charCodeAt(o))){case 1:break n;case 2:t++;break n;default:this.isBlockOpenerTokenType(this.offsetAndType[t]>>xl)&&(t=a)}this.skip(t-this.tokenIndex)}forEachToken(n){for(let e=0,t=this.firstCharOffset;e<this.tokenCount;e++){let a=t,o=this.offsetAndType[e],i=o&jl;t=i,n(o>>xl,a,i,e)}}dump(){let n=new Array(this.tokenCount);return this.forEachToken((e,t,a,o)=>{n[o]={idx:o,type:yl[e],chunk:this.source.substring(t,a),balance:this.balance[o]}}),n}};function Tl(n,e){function t(e){return e<s?n.charCodeAt(e):0}function a(){return c=wl(n,c),tl(t(c),t(c+1),t(c+2))?(r=12,void(c=gl(n,c))):37===t(c)?(r=11,void c++):void(r=10)}function o(){let e=c;return c=gl(n,c),ml(n,e,c,"url")&&40===t(c)?(c=hl(n,c+1),34===t(c)||39===t(c)?(r=2,void(c=e+4)):void function(){for(r=7,c=hl(n,c);c<n.length;c++){let e=n.charCodeAt(c);switch(sl(e)){case 41:return void c++;case rl:return c=hl(n,c),41===t(c)||c>=n.length?void(c<n.length&&c++):(c=bl(n,c),void(r=8));case 34:case 39:case 40:case 133:return c=bl(n,c),void(r=8);case 92:if(el(e,t(c+1))){c=ul(n,c)-1;break}return c=bl(n,c),void(r=8)}}}()):40===t(c)?(r=2,void c++):void(r=1)}function i(e){for(e||(e=t(c++)),r=5;c<n.length;c++){let a=n.charCodeAt(c);switch(sl(a)){case e:return void c++;case rl:if(Qs(a))return c+=cl(n,c,a),void(r=6);break;case 92:if(c===n.length-1)break;let o=t(c+1);Qs(o)?c+=cl(n,c+1,o):el(a,o)&&(c=ul(n,c)-1)}}}let r,s=(n=String(n||"")).length,l=ol(t(0)),c=l;for(;c<s;){let s=n.charCodeAt(c);switch(sl(s)){case rl:r=13,c=hl(n,c+1);break;case 34:i();break;case 35:$s(t(c+1))||el(t(c+1),t(c+2))?(r=4,c=gl(n,c+1)):(r=9,c++);break;case 39:i();break;case 40:r=21,c++;break;case 41:r=22,c++;break;case 43:al(s,t(c+1),t(c+2))?a():(r=9,c++);break;case 44:r=18,c++;break;case 45:al(s,t(c+1),t(c+2))?a():45===t(c+1)&&62===t(c+2)?(r=15,c+=3):tl(s,t(c+1),t(c+2))?o():(r=9,c++);break;case 46:al(s,t(c+1),t(c+2))?a():(r=9,c++);break;case 47:42===t(c+1)?(r=25,c=n.indexOf("*/",c+2),c=-1===c?n.length:c+2):(r=9,c++);break;case 58:r=16,c++;break;case 59:r=17,c++;break;case 60:33===t(c+1)&&45===t(c+2)&&45===t(c+3)?(r=14,c+=4):(r=9,c++);break;case 64:tl(t(c+1),t(c+2),t(c+3))?(r=3,c=gl(n,c+1)):(r=9,c++);break;case 91:r=19,c++;break;case 92:el(s,t(c+1))?o():(r=9,c++);break;case 93:r=20,c++;break;case 123:r=23,c++;break;case 125:r=24,c++;break;case 131:a();break;case 132:o();break;default:r=9,c++}e(r,l,l=c)}}var El=null,Rl=class n{static createItem(n){return{prev:null,next:null,data:n}}constructor(){this.head=null,this.tail=null,this.cursor=null}createItem(e){return n.createItem(e)}allocateCursor(n,e){let t;return null!==El?(t=El,El=El.cursor,t.prev=n,t.next=e,t.cursor=this.cursor):t={prev:n,next:e,cursor:this.cursor},this.cursor=t,t}releaseCursor(){let{cursor:n}=this;this.cursor=n.cursor,n.prev=null,n.next=null,n.cursor=El,El=n}updateCursors(n,e,t,a){let{cursor:o}=this;for(;null!==o;)o.prev===n&&(o.prev=e),o.next===t&&(o.next=a),o=o.cursor}*[Symbol.iterator](){for(let n=this.head;null!==n;n=n.next)yield n.data}get size(){let n=0;for(let e=this.head;null!==e;e=e.next)n++;return n}get isEmpty(){return null===this.head}get first(){return this.head&&this.head.data}get last(){return this.tail&&this.tail.data}fromArray(e){let t=null;this.head=null;for(let a of e){let e=n.createItem(a);null!==t?t.next=e:this.head=e,e.prev=t,t=e}return this.tail=t,this}toArray(){return[...this]}toJSON(){return[...this]}forEach(n,e=this){let t=this.allocateCursor(null,this.head);for(;null!==t.next;){let a=t.next;t.next=a.next,n.call(e,a.data,a,this)}this.releaseCursor()}forEachRight(n,e=this){let t=this.allocateCursor(this.tail,null);for(;null!==t.prev;){let a=t.prev;t.prev=a.prev,n.call(e,a.data,a,this)}this.releaseCursor()}reduce(n,e,t=this){let a,o=this.allocateCursor(null,this.head),i=e;for(;null!==o.next;)a=o.next,o.next=a.next,i=n.call(t,i,a.data,a,this);return this.releaseCursor(),i}reduceRight(n,e,t=this){let a,o=this.allocateCursor(this.tail,null),i=e;for(;null!==o.prev;)a=o.prev,o.prev=a.prev,i=n.call(t,i,a.data,a,this);return this.releaseCursor(),i}some(n,e=this){for(let t=this.head;null!==t;t=t.next)if(n.call(e,t.data,t,this))return!0;return!1}map(e,t=this){let a=new n;for(let n=this.head;null!==n;n=n.next)a.appendData(e.call(t,n.data,n,this));return a}filter(e,t=this){let a=new n;for(let n=this.head;null!==n;n=n.next)e.call(t,n.data,n,this)&&a.appendData(n.data);return a}nextUntil(n,e,t=this){if(null===n)return;let a=this.allocateCursor(null,n);for(;null!==a.next;){let n=a.next;if(a.next=n.next,e.call(t,n.data,n,this))break}this.releaseCursor()}prevUntil(n,e,t=this){if(null===n)return;let a=this.allocateCursor(n,null);for(;null!==a.prev;){let n=a.prev;if(a.prev=n.prev,e.call(t,n.data,n,this))break}this.releaseCursor()}clear(){this.head=null,this.tail=null}copy(){let e=new n;for(let n of this)e.appendData(n);return e}prepend(n){return this.updateCursors(null,n,this.head,n),null!==this.head?(this.head.prev=n,n.next=this.head):this.tail=n,this.head=n,this}prependData(e){return this.prepend(n.createItem(e))}append(n){return this.insert(n)}appendData(e){return this.insert(n.createItem(e))}insert(n,e=null){if(null!==e)if(this.updateCursors(e.prev,n,e,n),null===e.prev){if(this.head!==e)throw new Error("before doesn't belong to list");this.head=n,e.prev=n,n.next=e,this.updateCursors(null,n)}else e.prev.next=n,n.prev=e.prev,e.prev=n,n.next=e;else this.updateCursors(this.tail,n,null,n),null!==this.tail?(this.tail.next=n,n.prev=this.tail):this.head=n,this.tail=n;return this}insertData(e,t){return this.insert(n.createItem(e),t)}remove(n){if(this.updateCursors(n,n.prev,n,n.next),null!==n.prev)n.prev.next=n.next;else{if(this.head!==n)throw new Error("item doesn't belong to list");this.head=n.next}if(null!==n.next)n.next.prev=n.prev;else{if(this.tail!==n)throw new Error("item doesn't belong to list");this.tail=n.prev}return n.prev=null,n.next=null,n}push(e){this.insert(n.createItem(e))}pop(){return null!==this.tail?this.remove(this.tail):null}unshift(e){this.prepend(n.createItem(e))}shift(){return null!==this.head?this.remove(this.head):null}prependList(n){return this.insertList(n,this.head)}appendList(n){return this.insertList(n)}insertList(n,e){return null===n.head||(null!=e?(this.updateCursors(e.prev,n.tail,e,n.head),null!==e.prev?(e.prev.next=n.head,n.head.prev=e.prev):this.head=n.head,e.prev=n.tail,n.tail.next=e):(this.updateCursors(this.tail,n.tail,null,n.head),null!==this.tail?(this.tail.next=n.head,n.head.prev=this.tail):this.head=n.head,this.tail=n.tail),n.head=null,n.tail=null),this}replace(n,e){"head"in e?this.insertList(e,n):this.insert(e,n),this.remove(n)}};function Il(n,e){let t=Object.create(SyntaxError.prototype),a=new Error;return Object.assign(t,{name:n,message:e,get stack(){return(a.stack||"").replace(/^(.+\n){1,3}/,`${n}: ${e}\n`)}})}var Dl=" ";function Ml({source:n,line:e,column:t,baseLine:a,baseColumn:o},i){function r(n,e){return s.slice(n,e).map((e,t)=>String(n+t+1).padStart(d)+" |"+e).join("\n")}let s=("\n".repeat(Math.max(a-1,0))+" ".repeat(Math.max(o-1,0))+n).split(/\r\n?|\n|\f/),l=Math.max(1,e-i)-1,c=Math.min(e+i,s.length+1),d=Math.max(4,String(c).length)+1,m=0;(t+=3*(s[e-1].substr(0,t-1).match(/\t/g)||[]).length)>100&&(m=t-60+3,t=58);for(let n=l;n<=c;n++)n>=0&&n<s.length&&(s[n]=s[n].replace(/\t/g,Dl),s[n]=(m>0&&s[n].length>m?"…":"")+s[n].substr(m,98)+(s[n].length>m+100-1?"…":""));return[r(l,e),new Array(t+d+2).join("-")+"^",r(e,c)].filter(Boolean).join("\n").replace(/^(\s+\d+\s+\|\n)+/,"").replace(/\n(\s+\d+\s+\|)+$/,"")}function Pl(n,e,t,a,o,i=1,r=1){return Object.assign(Il("SyntaxError",n),{source:e,offset:t,line:a,column:o,sourceFragment:n=>Ml({source:e,line:a,column:o,baseLine:i,baseColumn:r},isNaN(n)?0:n),get formattedMessage(){return`Parse error: ${n}\n`+Ml({source:e,line:a,column:o,baseLine:i,baseColumn:r},2)}})}function Nl(n){let e=this.createList(),t=!1,a={recognizer:n};for(;!this.eof;){switch(this.tokenType){case 25:this.next();continue;case 13:t=!0,this.next();continue}let o=n.getNode.call(this,a);if(void 0===o)break;t&&(n.onWhiteSpace&&n.onWhiteSpace.call(this,o,e,a),t=!1),e.push(o)}return t&&n.onWhiteSpace&&n.onWhiteSpace.call(this,null,e,a),e}var _l=()=>{};function Bl(n){return function(){return this[n]()}}function Ol(n){let e=Object.create(null);for(let t of Object.keys(n)){let a=n[t],o=a.parse||a;o&&(e[t]=o)}return e}function Fl(n){let e="",t="<unknown>",a=!1,o=_l,i=!1,r=new Sl,s=Object.assign(new zl,function(n){let e={context:Object.create(null),features:Object.assign(Object.create(null),n.features),scope:Object.assign(Object.create(null),n.scope),atrule:Ol(n.atrule),pseudo:Ol(n.pseudo),node:Ol(n.node)};for(let[t,a]of Object.entries(n.parseContext))switch(typeof a){case"function":e.context[t]=a;break;case"string":e.context[t]=Bl(a)}return{config:e,...e,...e.node}}(n||{}),{parseAtrulePrelude:!0,parseRulePrelude:!0,parseValue:!0,parseCustomProperty:!1,readSequence:Nl,consumeUntilBalanceEnd:()=>0,consumeUntilLeftCurlyBracket:n=>123===n?1:0,consumeUntilLeftCurlyBracketOrSemicolon:n=>123===n||59===n?1:0,consumeUntilExclamationMarkOrSemicolon:n=>33===n||59===n?1:0,consumeUntilSemicolonIncluded:n=>59===n?2:0,createList:()=>new Rl,createSingleNodeList:n=>(new Rl).appendData(n),getFirstListNode:n=>n&&n.first,getLastListNode:n=>n&&n.last,parseWithFallback(n,e){let t=this.tokenIndex;try{return n.call(this)}catch(n){if(i)throw n;this.skip(t-this.tokenIndex);let a=e.call(this);return i=!0,o(n,a),i=!1,a}},lookupNonWSType(n){let e;do{if(e=this.lookupType(n++),13!==e&&25!==e)return e}while(0!==e);return 0},charCodeAt:n=>n>=0&&n<e.length?e.charCodeAt(n):0,substring:(n,t)=>e.substring(n,t),substrToCursor(n){return this.source.substring(n,this.tokenStart)},cmpChar:(n,t)=>dl(e,n,t),cmpStr:(n,t,a)=>ml(e,n,t,a),consume(n){let e=this.tokenStart;return this.eat(n),this.substrToCursor(e)},consumeFunctionName(){let n=e.substring(this.tokenStart,this.tokenEnd-1);return this.eat(2),n},consumeNumber(n){let t=e.substring(this.tokenStart,wl(e,this.tokenStart));return this.eat(n),t},eat(n){if(this.tokenType!==n){let e=yl[n].slice(0,-6).replace(/-/g," ").replace(/^./,n=>n.toUpperCase()),t=`${/[[\](){}]/.test(e)?`"${e}"`:e} is expected`,a=this.tokenStart;switch(n){case 1:2===this.tokenType||7===this.tokenType?(a=this.tokenEnd-1,t="Identifier is expected but function found"):t="Identifier is expected";break;case 4:this.isDelim(35)&&(this.next(),a++,t="Name is expected");break;case 11:10===this.tokenType&&(a=this.tokenEnd,t="Percent sign is expected")}this.error(t,a)}this.next()},eatIdent(n){(1!==this.tokenType||!1===this.lookupValue(0,n))&&this.error(`Identifier "${n}" is expected`),this.next()},eatDelim(n){this.isDelim(n)||this.error(`Delim "${String.fromCharCode(n)}" is expected`),this.next()},getLocation:(n,e)=>a?r.getLocationRange(n,e,t):null,getLocationFromList(n){if(a){let e=this.getFirstListNode(n),a=this.getLastListNode(n);return r.getLocationRange(null!==e?e.loc.start.offset-r.startOffset:this.tokenStart,null!==a?a.loc.end.offset-r.startOffset:this.tokenStart,t)}return null},error(n,t){let a=typeof t<"u"&&t<e.length?r.getLocation(t):this.eof?r.getLocation(function(n,e){for(;e>=0&&nl(n.charCodeAt(e));e--);return e+1}(e,e.length-1)):r.getLocation(this.tokenStart);throw new Pl(n||"Unexpected input",e,a.offset,a.line,a.column,r.startLine,r.startColumn)}});return Object.assign(function(n,l){e=n,l=l||{},s.setSource(e,Tl),r.setSource(e,l.offset,l.line,l.column),t=l.filename||"<unknown>",a=!!l.positions,o="function"==typeof l.onParseError?l.onParseError:_l,i=!1,s.parseAtrulePrelude=!("parseAtrulePrelude"in l)||!!l.parseAtrulePrelude,s.parseRulePrelude=!("parseRulePrelude"in l)||!!l.parseRulePrelude,s.parseValue=!("parseValue"in l)||!!l.parseValue,s.parseCustomProperty="parseCustomProperty"in l&&!!l.parseCustomProperty;let{context:c="default",onComment:d,onToken:m}=l;if(!(c in s.context))throw new Error("Unknown context `"+c+"`");Array.isArray(m)?s.forEachToken((n,e,t)=>{m.push({type:n,start:e,end:t})}):"function"==typeof m&&s.forEachToken(m.bind({filename:t,source:e,tokenCount:s.tokenCount,getTokenType:n=>s.getTokenType(n),getTokenTypeName:n=>yl[s.getTokenType(n)],getTokenStart:n=>s.getTokenStart(n),getTokenEnd:n=>s.getTokenEnd(n),getTokenValue:n=>s.source.substring(s.getTokenStart(n),s.getTokenEnd(n)),substring:(n,e)=>s.source.substring(n,e),balance:s.balance.subarray(0,s.tokenCount+1),isBlockOpenerTokenType:s.isBlockOpenerTokenType,isBlockCloserTokenType:s.isBlockCloserTokenType,getBlockTokenPairIndex:n=>s.getBlockTokenPairIndex(n),getLocation:n=>r.getLocation(n,t),getRangeLocation:(n,e)=>r.getLocationRange(n,e,t)})),"function"==typeof d&&s.forEachToken((n,t,a)=>{if(25===n){let n=s.getLocation(t,a),o=ml(e,a-2,a,"*/")?e.slice(t+2,a-2):e.slice(t+2,a);d(o,n)}});let h=s.context[c].call(s,l);return s.eof||s.error(),h},{SyntaxError:Pl,config:s.config})}var Ul=((n,e,t)=>(t=null!=n?rs(ds(n)):{},((n,e,t,a)=>{if(e&&"object"==typeof e||"function"==typeof e)for(let o of cs(e))!ms.call(n,o)&&o!==t&&ss(n,o,{get:()=>e[o],enumerable:!(a=ls(e,o))||a.enumerable});return n})(ss(t,"default",{value:n,enumerable:!0}),n)))(ys()),ql=new Set(["Atrule","Selector","Declaration"]);var Hl={};ps(Hl,{safe:()=>Yl,spec:()=>Jl});var Wl=(n,e)=>{if(9===n&&(n=e),"string"==typeof n){let e=n.charCodeAt(0);return e>127?32768:e<<8}return n},Gl=[[1,1],[1,2],[1,7],[1,8],[1,"-"],[1,10],[1,11],[1,12],[1,15],[1,21],[3,1],[3,2],[3,7],[3,8],[3,"-"],[3,10],[3,11],[3,12],[3,15],[4,1],[4,2],[4,7],[4,8],[4,"-"],[4,10],[4,11],[4,12],[4,15],[12,1],[12,2],[12,7],[12,8],[12,"-"],[12,10],[12,11],[12,12],[12,15],["#",1],["#",2],["#",7],["#",8],["#","-"],["#",10],["#",11],["#",12],["#",15],["-",1],["-",2],["-",7],["-",8],["-","-"],["-",10],["-",11],["-",12],["-",15],[10,1],[10,2],[10,7],[10,8],[10,10],[10,11],[10,12],[10,"%"],[10,15],["@",1],["@",2],["@",7],["@",8],["@","-"],["@",15],[".",10],[".",11],[".",12],["+",10],["+",11],["+",12],["/","*"]],Vl=Gl.concat([[1,4],[12,4],[4,4],[3,21],[3,5],[3,16],[11,11],[11,12],[11,2],[11,"-"],[22,1],[22,2],[22,11],[22,12],[22,4],[22,"-"]]);function Kl(n){let e=new Set(n.map(([n,e])=>Wl(n)<<16|Wl(e)));return function(n,t,a){let o=Wl(t,a),i=a.charCodeAt(0);return(45===i&&1!==t&&2!==t&&15!==t||43===i?e.has(n<<16|i<<8):e.has(n<<16|o))&&this.emit(" ",13,!0),o}}var Jl=Kl(Gl),Yl=Kl(Vl);function Zl(n,e){if("function"==typeof e){let t=null;return void n.children.forEach(n=>{null!==t&&e.call(this,t),this.node(n),t=n})}n.children.forEach(this.node,this)}function $l(n){Tl(n,(e,t,a)=>{this.token(e,n.slice(t,a))})}function Xl(n){let e=new Map;for(let[t,a]of Object.entries(n.node))"function"==typeof(a.generate||a)&&e.set(t,a.generate||a);return function(n,t){let a="",o=0,i={node(n){if(!e.has(n.type))throw new Error("Unknown node type: "+n.type);e.get(n.type).call(r,n)},tokenBefore:Yl,token(n,e){o=this.tokenBefore(o,n,e),this.emit(e,n,!1),9===n&&92===e.charCodeAt(0)&&this.emit("\n",13,!0)},emit(n){a+=n},result:()=>a};t&&("function"==typeof t.decorator&&(i=t.decorator(i)),t.sourceMap&&(i=function(n){let e=new Ul.SourceMapGenerator,t={line:1,column:0},a={line:0,column:0},o={line:1,column:0},i={generated:o},r=1,s=0,l=!1,c=n.node;n.node=function(n){if(n.loc&&n.loc.start&&ql.has(n.type)){let c=n.loc.start.line,d=n.loc.start.column-1;(a.line!==c||a.column!==d)&&(a.line=c,a.column=d,t.line=r,t.column=s,l&&(l=!1,(t.line!==o.line||t.column!==o.column)&&e.addMapping(i)),l=!0,e.addMapping({source:n.loc.source,original:a,generated:t}))}c.call(this,n),l&&ql.has(n.type)&&(o.line=r,o.column=s)};let d=n.emit;n.emit=function(n,e,t){for(let e=0;e<n.length;e++)10===n.charCodeAt(e)?(r++,s=0):s++;d(n,e,t)};let m=n.result;return n.result=function(){return l&&e.addMapping(i),{css:m(),map:e}},n}(i)),t.mode in Hl&&(i.tokenBefore=Hl[t.mode]));let r={node:n=>i.node(n),children:Zl,token:(n,e)=>i.token(n,e),tokenize:$l};return i.node(n),i.result()}}var{hasOwnProperty:Ql}=Object.prototype,nc=function(){};function ec(n){return"function"==typeof n?n:nc}function tc(n,e){return function(t,a,o){t.type===e&&n.call(this,t,a,o)}}function ac(n,e){let t=e.structure,a=[];for(let n in t){if(!1===Ql.call(t,n))continue;let e=t[n],o={name:n,type:!1,nullable:!1};Array.isArray(e)||(e=[e]);for(let n of e)null===n?o.nullable=!0:"string"==typeof n?o.type="node":Array.isArray(n)&&(o.type="list");o.type&&a.push(o)}return a.length?{context:e.walkContext,fields:a}:null}function oc(n,e){let t=n.fields.slice(),a=n.context,o="string"==typeof a;return e&&t.reverse(),function(n,i,r,s){let l;o&&(l=i[a],i[a]=n);for(let a of t){let t=n[a.name];if(!a.nullable||t)if("list"===a.type){if(e?t.reduceRight(s,!1):t.reduce(s,!1))return!0}else if(r(t))return!0}o&&(i[a]=l)}}function ic({StyleSheet:n,Atrule:e,Rule:t,Block:a,DeclarationList:o}){return{Atrule:{StyleSheet:n,Atrule:e,Rule:t,Block:a},Rule:{StyleSheet:n,Atrule:e,Rule:t,Block:a},Declaration:{StyleSheet:n,Atrule:e,Rule:t,Block:a,DeclarationList:o}}}function rc(n){let e=function(n){let e={};for(let t in n.node)if(Ql.call(n.node,t)){let a=n.node[t];if(!a.structure)throw new Error("Missed `structure` field in `"+t+"` node type definition");e[t]=ac(0,a)}return e}(n),t={},a={},o=Symbol("break-walk"),i=Symbol("skip-node");for(let n in e)Ql.call(e,n)&&null!==e[n]&&(t[n]=oc(e[n],!1),a[n]=oc(e[n],!0));let r=ic(t),s=ic(a),l=function(n,l){function c(n,e,t){let a=d.call(u,n,e,t);return a===o||a!==i&&!!(h.hasOwnProperty(n.type)&&h[n.type](n,u,c,p)||m.call(u,n,e,t)===o)}let d=nc,m=nc,h=t,p=(n,e,t,a)=>n||c(e,t,a),u={break:o,skip:i,root:n,stylesheet:null,atrule:null,atrulePrelude:null,rule:null,selector:null,block:null,declaration:null,function:null};if("function"==typeof l)d=l;else if(l&&(d=ec(l.enter),m=ec(l.leave),l.reverse&&(h=a),l.visit)){if(r.hasOwnProperty(l.visit))h=l.reverse?s[l.visit]:r[l.visit];else if(!e.hasOwnProperty(l.visit))throw new Error("Bad value `"+l.visit+"` for `visit` option (should be: "+Object.keys(e).sort().join(", ")+")");d=tc(d,l.visit),m=tc(m,l.visit)}if(d===nc&&m===nc)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");c(n)};return l.break=o,l.skip=i,l.find=function(n,e){let t=null;return l(n,function(n,a,i){if(e.call(this,n,a,i))return t=n,o}),t},l.findLast=function(n,e){let t=null;return l(n,{reverse:!0,enter(n,a,i){if(e.call(this,n,a,i))return t=n,o}}),t},l.findAll=function(n,e){let t=[];return l(n,function(n,a,o){e.call(this,n,a,o)&&t.push(n)}),t},l}function sc(n){return n}function lc(n,e,t,a){let o;switch(n.type){case"Group":o=function(n,e,t,a){let o=" "===n.combinator||a?n.combinator:" "+n.combinator+" ",i=n.terms.map(n=>lc(n,e,t,a)).join(o);return n.explicit||t?(a||","===i[0]?"[":"[ ")+i+(a?"]":" ]"):i}(n,e,t,a)+(n.disallowEmpty?"!":"");break;case"Multiplier":return lc(n.term,e,t,a)+e(function(n){let{min:e,max:t,comma:a}=n;return 0===e&&0===t?a?"#?":"*":0===e&&1===t?"?":1===e&&0===t?a?"#":"+":1===e&&1===t?"":(a?"#":"")+(e===t?"{"+e+"}":"{"+e+","+(0!==t?t:"")+"}")}(n),n);case"Boolean":o="<boolean-expr["+lc(n.term,e,t,a)+"]>";break;case"Type":o="<"+n.name+(n.opts?e(function(n){if("Range"===n.type)return" ["+(null===n.min?"-∞":n.min)+","+(null===n.max?"∞":n.max)+"]";throw new Error("Unknown node type `"+n.type+"`")}(n.opts),n.opts):"")+">";break;case"Property":o="<'"+n.name+"'>";break;case"Keyword":o=n.name;break;case"AtKeyword":o="@"+n.name;break;case"Function":o=n.name+"(";break;case"String":case"Token":o=n.value;break;case"Comma":o=",";break;default:throw new Error("Unknown node type `"+n.type+"`")}return e(o,n)}function cc(n,e){let t=sc,a=!1,o=!1;return"function"==typeof e?t=e:e&&(a=!!e.forceBraces,o=!!e.compact,"function"==typeof e.decorate&&(t=e.decorate)),lc(n,t,a,o)}var dc={offset:0,line:1,column:1};function mc(n,e){let t=n&&n.loc&&n.loc[e];return t?"line"in t?hc(t):t:null}function hc({offset:n,line:e,column:t},a){let o={offset:n,line:e,column:t};if(a){let n=a.split(/\n|\r\n?|\f/);o.offset+=a.length,o.line+=n.length-1,o.column=1===n.length?o.column+a.length:n.pop().length+1}return o}var pc=function(n,e){let t=Il("SyntaxReferenceError",n+(e?" `"+e+"`":""));return t.reference=e,t},uc=function(n,e,t,a){let o=Il("SyntaxMatchError",n),{css:i,mismatchOffset:r,mismatchLength:s,start:l,end:c}=function(n,e){let t,a,o=n.tokens,i=n.longestMatch,r=i<o.length&&o[i].node||null,s=r!==e?r:null,l=0,c=0,d=0,m="";for(let n=0;n<o.length;n++){let e=o[n].value;n===i&&(c=e.length,l=m.length),null!==s&&o[n].node===s&&(n<=i?d++:d=0),m+=e}return i===o.length||d>1?(t=mc(s||e,"end")||hc(dc,m),a=hc(t)):(t=mc(s,"start")||hc(mc(e,"start")||dc,m.slice(0,l)),a=mc(s,"end")||hc(t,m.substr(l,c))),{css:m,mismatchOffset:l,mismatchLength:c,start:t,end:a}}(a,t);return o.rawMessage=n,o.syntax=e?cc(e):"<generic>",o.css=i,o.mismatchOffset=r,o.mismatchLength=s,o.message=n+"\n syntax: "+o.syntax+"\n value: "+(i||"<empty string>")+"\n --------"+new Array(o.mismatchOffset+1).join("-")+"^",Object.assign(o,l),o.loc={source:t&&t.loc&&t.loc.source||"<unknown>",start:l,end:c},o},gc=new Map,wc=new Map,bc=function(n){if(gc.has(n))return gc.get(n);let e=n.toLowerCase(),t=gc.get(e);if(void 0===t){let n=kc(e,0),a=n?"":vc(e,0);t=Object.freeze({basename:e.substr(a.length),name:e,prefix:a,vendor:a,custom:n})}return gc.set(n,t),t},fc=function(n){if(wc.has(n))return wc.get(n);let e=n,t=n[0];"/"===t?t="/"===n[1]?"//":"/":"_"!==t&&"*"!==t&&"$"!==t&&"#"!==t&&"+"!==t&&"&"!==t&&(t="");let a=kc(e,t.length);if(!a&&(e=e.toLowerCase(),wc.has(e))){let t=wc.get(e);return wc.set(n,t),t}let o=a?"":vc(e,t.length),i=e.substr(0,t.length+o.length),r=Object.freeze({basename:e.substr(i.length),name:e.substr(t.length),hack:t,vendor:o,prefix:i,custom:a});return wc.set(n,r),r},yc=vc;function kc(n,e){return e=e||0,n.length-e>=2&&45===n.charCodeAt(e)&&45===n.charCodeAt(e+1)}function vc(n,e){if(e=e||0,n.length-e>=3&&45===n.charCodeAt(e)&&45!==n.charCodeAt(e+1)){let t=n.indexOf("-",e+2);if(-1!==t)return n.substring(e,t+1)}return""}var Sc=["initial","inherit","unset","revert","revert-layer"],jc=45,xc=!0;function Cc(n,e){return null!==n&&9===n.type&&n.value.charCodeAt(0)===e}function Ac(n,e,t){for(;null!==n&&(13===n.type||25===n.type);)n=t(++e);return e}function Lc(n,e,t,a){if(!n)return 0;let o=n.value.charCodeAt(e);if(43===o||o===jc){if(t)return 0;e++}for(;e<n.value.length;e++)if(!Ks(n.value.charCodeAt(e)))return 0;return a+1}function zc(n,e,t){let a=!1,o=Ac(n,e,t);if(null===(n=t(o)))return e;if(10!==n.type){if(!Cc(n,43)&&!Cc(n,jc))return e;if(a=!0,o=Ac(t(++o),o,t),null===(n=t(o))||10!==n.type)return 0}if(!a){let e=n.value.charCodeAt(0);if(43!==e&&e!==jc)return 0}return Lc(n,a?0:1,a,o)}function Tc(n,e){return null!==n&&9===n.type&&n.value.charCodeAt(0)===e}function Ec(n,e,t){let a=0;for(let o=e;o<n.value.length;o++){let i=n.value.charCodeAt(o);if(45===i&&t&&0!==a)return Ec(n,e+a+1,!1),6;if(!Js(i)||++a>6)return 0}return a}function Rc(n,e,t){if(!n)return 0;for(;Tc(t(e),63);){if(++n>6)return 0;e++}return e}var Ic=["calc(","-moz-calc(","-webkit-calc("],Dc=new Map([[2,22],[21,22],[19,20],[23,24]]);function Mc(n,e){return e<n.length?n.charCodeAt(e):0}function Pc(n,e){return ml(n,0,n.length,e)}function Nc(n,e){for(let t=0;t<e.length;t++)if(Pc(n,e[t]))return!0;return!1}function _c(n,e){return e===n.length-2&&(92===Mc(n,e)&&Ks(Mc(n,e+1)))}function Bc(n,e,t){if(n&&"Range"===n.type){let a=Number(void 0!==t&&t!==e.length?e.substr(0,t):e);if(isNaN(a)||null!==n.min&&a<n.min&&"string"!=typeof n.min||null!==n.max&&a>n.max&&"string"!=typeof n.max)return!0}return!1}function Oc(n){return function(e,t,a){return null===e?0:2===e.type&&Nc(e.value,Ic)?function(n,e){let t=0,a=[],o=0;n:do{switch(n.type){case 24:case 22:case 20:if(n.type!==t)break n;if(t=a.pop(),0===a.length){o++;break n}break;case 2:case 21:case 19:case 23:a.push(t),t=Dc.get(n.type)}o++}while(n=e(o));return o}(e,t):n(e,t,a)}}function Fc(n){return function(e){return null===e||e.type!==n?0:1}}function Uc(n){return null===n||1!==n.type||45!==Mc(n.value,0)||45!==Mc(n.value,1)?0:1}function qc(n){return n&&(n=new Set(n)),function(e,t,a){if(null===e||12!==e.type)return 0;let o=wl(e.value,0);if(null!==n){let t=e.value.indexOf("\\",o),a=-1!==t&&_c(e.value,t)?e.value.substring(o,t):e.value.substr(o);if(!1===n.has(a.toLowerCase()))return 0}return Bc(a,e.value,o)?0:1}}function Hc(n){return"function"!=typeof n&&(n=function(){return 0}),function(e,t,a){return null!==e&&10===e.type&&0===Number(e.value)?1:n(e,t,a)}}var Wc={"ident-token":Fc(1),"function-token":Fc(2),"at-keyword-token":Fc(3),"hash-token":Fc(4),"string-token":Fc(5),"bad-string-token":Fc(6),"url-token":Fc(7),"bad-url-token":Fc(8),"delim-token":Fc(9),"number-token":Fc(10),"percentage-token":Fc(11),"dimension-token":Fc(12),"whitespace-token":Fc(13),"CDO-token":Fc(14),"CDC-token":Fc(15),"colon-token":Fc(16),"semicolon-token":Fc(17),"comma-token":Fc(18),"[-token":Fc(19),"]-token":Fc(20),"(-token":Fc(21),")-token":Fc(22),"{-token":Fc(23),"}-token":Fc(24)},Gc={string:Fc(5),ident:Fc(1),percentage:Oc(function(n,e,t){return null===n||11!==n.type||Bc(t,n.value,n.value.length-1)?0:1}),zero:Hc(),number:Oc(function(n,e,t){if(null===n)return 0;let a=wl(n.value,0);return a!==n.value.length&&!_c(n.value,a)||Bc(t,n.value,a)?0:1}),integer:Oc(function(n,e,t){if(null===n||10!==n.type)return 0;let a=43===Mc(n.value,0)||45===Mc(n.value,0)?1:0;for(;a<n.value.length;a++)if(!Ks(Mc(n.value,a)))return 0;return Bc(t,n.value,a)?0:1}),"custom-ident":function(n){if(null===n||1!==n.type)return 0;let e=n.value.toLowerCase();return Nc(e,Sc)||Pc(e,"default")?0:1},"dashed-ident":Uc,"custom-property-name":function(n){return Uc(n)&&"--"!==n.value?1:0},"hex-color":function(n){if(null===n||4!==n.type)return 0;let e=n.value.length;if(4!==e&&5!==e&&7!==e&&9!==e)return 0;for(let t=1;t<e;t++)if(!Js(Mc(n.value,t)))return 0;return 1},"id-selector":function(n){return null!==n&&4===n.type&&tl(Mc(n.value,1),Mc(n.value,2),Mc(n.value,3))?1:0},"an-plus-b":function(n,e){let t=0;if(!n)return 0;if(10===n.type)return Lc(n,0,false,t);if(1===n.type&&n.value.charCodeAt(0)===jc){if(!dl(n.value,1,110))return 0;switch(n.value.length){case 2:return zc(e(++t),t,e);case 3:return n.value.charCodeAt(2)!==jc?0:(t=Ac(e(++t),t,e),Lc(n=e(t),0,xc,t));default:return n.value.charCodeAt(2)!==jc?0:Lc(n,3,xc,t)}}else if(1===n.type||Cc(n,43)&&1===e(t+1).type){if(1!==n.type&&(n=e(++t)),null===n||!dl(n.value,0,110))return 0;switch(n.value.length){case 1:return zc(e(++t),t,e);case 2:return n.value.charCodeAt(1)!==jc?0:(t=Ac(e(++t),t,e),Lc(n=e(t),0,xc,t));default:return n.value.charCodeAt(1)!==jc?0:Lc(n,2,xc,t)}}else if(12===n.type){let a=n.value.charCodeAt(0),o=43===a||a===jc?1:0,i=o;for(;i<n.value.length&&Ks(n.value.charCodeAt(i));i++);return i!==o&&dl(n.value,i,110)?i+1===n.value.length?zc(e(++t),t,e):n.value.charCodeAt(i+1)!==jc?0:i+2===n.value.length?(t=Ac(e(++t),t,e),Lc(n=e(t),0,xc,t)):Lc(n,i+2,xc,t):0}return 0},urange:function(n,e){let t=0;if(null===n||1!==n.type||!dl(n.value,0,117)||null===(n=e(++t)))return 0;if(Tc(n,43))return null===(n=e(++t))?0:1===n.type?Rc(Ec(n,0,!0),++t,e):Tc(n,63)?Rc(1,++t,e):0;if(10===n.type){let a=Ec(n,1,!0);return 0===a?0:null===(n=e(++t))?t:12===n.type||10===n.type?function(n,e){return n.value.charCodeAt(0)===e}(n,45)&&Ec(n,1,!1)?t+1:0:Rc(a,t,e)}return 12===n.type?Rc(Ec(n,1,!0),++t,e):0},"declaration-value":function(n,e){if(!n)return 0;let t=0,a=[],o=0;n:do{switch(n.type){case 6:case 8:break n;case 24:case 22:case 20:if(n.type!==t)break n;t=a.pop();break;case 17:if(0===t)break n;break;case 9:if(0===t&&"!"===n.value)break n;break;case 2:case 21:case 19:case 23:a.push(t),t=Dc.get(n.type)}o++}while(n=e(o));return o},"any-value":function(n,e){if(!n)return 0;let t=0,a=[],o=0;n:do{switch(n.type){case 6:case 8:break n;case 24:case 22:case 20:if(n.type!==t)break n;t=a.pop();break;case 2:case 21:case 19:case 23:a.push(t),t=Dc.get(n.type)}o++}while(n=e(o));return o}};function Vc(n){let{angle:e,decibel:t,frequency:a,flex:o,length:i,resolution:r,semitones:s,time:l}=n||{};return{dimension:Oc(qc(null)),angle:Oc(qc(e)),decibel:Oc(qc(t)),frequency:Oc(qc(a)),flex:Oc(qc(o)),length:Oc(Hc(qc(i))),resolution:Oc(qc(r)),semitones:Oc(qc(s)),time:Oc(qc(l))}}var Kc={};ps(Kc,{angle:()=>Yc,decibel:()=>nd,flex:()=>Qc,frequency:()=>$c,length:()=>Jc,resolution:()=>Xc,semitones:()=>ed,time:()=>Zc});var Jc=["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],Yc=["deg","grad","rad","turn"],Zc=["s","ms"],$c=["hz","khz"],Xc=["dpi","dpcm","dppx","x"],Qc=["fr"],nd=["db"],ed=["st"],td={};function ad(n,e,t){return Object.assign(Il("SyntaxError",n),{input:e,offset:t,rawMessage:n,message:n+"\n "+e+"\n--"+new Array((t||e.length)+1).join("-")+"^"})}ps(td,{SyntaxError:()=>ad,generate:()=>cc,parse:()=>Od,walk:()=>qd});var od=new Uint8Array(128).map((n,e)=>/[a-zA-Z0-9\-]/.test(String.fromCharCode(e))?1:0),id=class{constructor(n){this.str=n,this.pos=0}charCodeAt(n){return n<this.str.length?this.str.charCodeAt(n):0}charCode(){return this.charCodeAt(this.pos)}isNameCharCode(n=this.charCode()){return n<128&&1===od[n]}nextCharCode(){return this.charCodeAt(this.pos+1)}nextNonWsCode(n){return this.charCodeAt(this.findWsEnd(n))}skipWs(){this.pos=this.findWsEnd(this.pos)}findWsEnd(n){for(;n<this.str.length;n++){let e=this.str.charCodeAt(n);if(13!==e&&10!==e&&12!==e&&32!==e&&9!==e)break}return n}substringToPos(n){return this.str.substring(this.pos,this.pos=n)}eat(n){this.charCode()!==n&&this.error("Expect `"+String.fromCharCode(n)+"`"),this.pos++}peek(){return this.pos<this.str.length?this.str.charAt(this.pos++):""}error(n){throw new ad(n,this.str,this.pos)}scanSpaces(){return this.substringToPos(this.findWsEnd(this.pos))}scanWord(){let n=this.pos;for(;n<this.str.length;n++){let e=this.str.charCodeAt(n);if(e>=128||0===od[e])break}return this.pos===n&&this.error("Expect a keyword"),this.substringToPos(n)}scanNumber(){let n=this.pos;for(;n<this.str.length;n++){let e=this.str.charCodeAt(n);if(e<48||e>57)break}return this.pos===n&&this.error("Expect a number"),this.substringToPos(n)}scanString(){let n=this.str.indexOf("'",this.pos+1);return-1===n&&(this.pos=this.str.length,this.error("Expect an apostrophe")),this.substringToPos(n+1)}},rd=9,sd=10,ld=12,cd=13,dd=32,md=33,hd=35,pd=38,ud=39,gd=40,wd=41,bd=42,fd=43,yd=44,kd=45,vd=60,Sd=62,jd=63,xd=64,Cd=91,Ad=93,Ld=123,zd=124,Td=125,Ed=8734,Rd={" ":1,"&&":2,"||":3,"|":4};function Id(n){let e=null,t=null;return n.eat(Ld),n.skipWs(),e=n.scanNumber(n),n.skipWs(),n.charCode()===yd?(n.pos++,n.skipWs(),n.charCode()!==Td&&(t=n.scanNumber(n),n.skipWs())):t=e,n.eat(Td),{min:Number(e),max:t?Number(t):0}}function Dd(n,e){let t=function(n){let e=null,t=!1;switch(n.charCode()){case bd:n.pos++,e={min:0,max:0};break;case fd:n.pos++,e={min:1,max:0};break;case jd:n.pos++,e={min:0,max:1};break;case hd:n.pos++,t=!0,n.charCode()===Ld?e=Id(n):n.charCode()===jd?(n.pos++,e={min:0,max:0}):e={min:1,max:0};break;case Ld:e=Id(n);break;default:return null}return{type:"Multiplier",comma:t,min:e.min,max:e.max,term:null}}(n);return null!==t?(t.term=e,n.charCode()===hd&&n.charCodeAt(n.pos-1)===fd?Dd(n,t):t):e}function Md(n){let e=n.peek();return""===e?null:Dd(n,{type:"Token",value:e})}function Pd(n){let e,t=null;if(n.eat(vd),e=n.scanWord(),"boolean-expr"===e){n.eat(Cd);let e=_d(n,Ad);return n.eat(Ad),n.eat(Sd),Dd(n,{type:"Boolean",term:1===e.terms.length?e.terms[0]:e})}return n.charCode()===gd&&n.nextCharCode()===wd&&(n.pos+=2,e+="()"),n.charCodeAt(n.findWsEnd(n.pos))===Cd&&(n.skipWs(),t=function(n){let e=null,t=null,a=1;return n.eat(Cd),n.charCode()===kd&&(n.peek(),a=-1),-1==a&&n.charCode()===Ed?n.peek():(e=a*Number(n.scanNumber(n)),n.isNameCharCode()&&(e+=n.scanWord())),n.skipWs(),n.eat(yd),n.skipWs(),n.charCode()===Ed?n.peek():(a=1,n.charCode()===kd&&(n.peek(),a=-1),t=a*Number(n.scanNumber(n)),n.isNameCharCode()&&(t+=n.scanWord())),n.eat(Ad),{type:"Range",min:e,max:t}}(n)),n.eat(Sd),Dd(n,{type:"Type",name:e,opts:t})}function Nd(n,e){function t(n,e){return{type:"Group",terms:n,combinator:e,disallowEmpty:!1,explicit:!1}}let a;for(e=Object.keys(e).sort((n,e)=>Rd[n]-Rd[e]);e.length>0;){a=e.shift();let o=0,i=0;for(;o<n.length;o++){let e=n[o];"Combinator"===e.type&&(e.value===a?(-1===i&&(i=o-1),n.splice(o,1),o--):(-1!==i&&o-i>1&&(n.splice(i,o-i,t(n.slice(i,o),a)),o=i+1),i=-1))}-1!==i&&e.length&&n.splice(i,o-i,t(n.slice(i,o),a))}return a}function _d(n,e){let t,a=Object.create(null),o=[],i=null,r=n.pos;for(;n.charCode()!==e&&(t=Bd(n,e));)"Spaces"!==t.type&&("Combinator"===t.type?((null===i||"Combinator"===i.type)&&(n.pos=r,n.error("Unexpected combinator")),a[t.value]=!0):null!==i&&"Combinator"!==i.type&&(a[" "]=!0,o.push({type:"Combinator",value:" "})),o.push(t),i=t,r=n.pos);return null!==i&&"Combinator"===i.type&&(n.pos-=r,n.error("Unexpected combinator")),{type:"Group",terms:o,combinator:Nd(o,a)||" ",disallowEmpty:!1,explicit:!1}}function Bd(n,e){let t=n.charCode();switch(t){case Ad:break;case Cd:return Dd(n,function(n,e){let t;return n.eat(Cd),t=_d(n,e),n.eat(Ad),t.explicit=!0,n.charCode()===md&&(n.pos++,t.disallowEmpty=!0),t}(n,e));case vd:return n.nextCharCode()===ud?function(n){let e;return n.eat(vd),n.eat(ud),e=n.scanWord(),n.eat(ud),n.eat(Sd),Dd(n,{type:"Property",name:e})}(n):Pd(n);case zd:return{type:"Combinator",value:n.substringToPos(n.pos+(n.nextCharCode()===zd?2:1))};case pd:return n.pos++,n.eat(pd),{type:"Combinator",value:"&&"};case yd:return n.pos++,{type:"Comma"};case ud:return Dd(n,{type:"String",value:n.scanString()});case dd:case rd:case sd:case cd:case ld:return{type:"Spaces",value:n.scanSpaces()};case xd:return t=n.nextCharCode(),n.isNameCharCode(t)?(n.pos++,{type:"AtKeyword",name:n.scanWord()}):Md(n);case bd:case fd:case jd:case hd:case md:break;case Ld:if(t=n.nextCharCode(),t<48||t>57)return Md(n);break;default:return n.isNameCharCode(t)?function(n){let e=n.scanWord();return n.charCode()===gd?(n.pos++,{type:"Function",name:e}):Dd(n,{type:"Keyword",name:e})}(n):Md(n)}}function Od(n){let e=new id(n),t=_d(e);return e.pos!==n.length&&e.error("Unexpected input"),1===t.terms.length&&"Group"===t.terms[0].type?t.terms[0]:t}var Fd=function(){};function Ud(n){return"function"==typeof n?n:Fd}function qd(n,e,t){let a=Fd,o=Fd;if("function"==typeof e?a=e:e&&(a=Ud(e.enter),o=Ud(e.leave)),a===Fd&&o===Fd)throw new Error("Neither `enter` nor `leave` walker handler is set or both aren't a function");!function n(e){switch(a.call(t,e),e.type){case"Group":e.terms.forEach(n);break;case"Multiplier":case"Boolean":n(e.term);break;case"Type":case"Property":case"Keyword":case"AtKeyword":case"Function":case"String":case"Token":case"Comma":break;default:throw new Error("Unknown type: "+e.type)}o.call(t,e)}(n)}var Hd={decorator(n){let e=[],t=null;return{...n,node(e){let a=t;t=e,n.node.call(this,e),t=a},emit(n,a,o){e.push({type:a,value:n,node:o?null:t})},result:()=>e}}};function Wd(n,e){return"string"==typeof n?function(n){let e=[];return Tl(n,(t,a,o)=>e.push({type:t,value:n.slice(a,o),node:null})),e}(n):e.generate(n,Hd)}var Gd={type:"Match"},Vd={type:"Mismatch"},Kd={type:"DisallowEmpty"};function Jd(n,e,t){return e===Gd&&t===Vd||n===Gd&&e===Gd&&t===Gd?n:("If"===n.type&&n.else===Vd&&e===Gd&&(e=n.then,n=n.match),{type:"If",match:n,then:e,else:t})}function Yd(n){return n.length>2&&40===n.charCodeAt(n.length-2)&&41===n.charCodeAt(n.length-1)}function Zd(n){return"Keyword"===n.type||"AtKeyword"===n.type||"Function"===n.type||"Type"===n.type&&Yd(n.name)}function $d(n,e=" ",t=!1){return{type:"Group",terms:n,combinator:e,disallowEmpty:!1,explicit:t}}function Xd(n,e,t=new Set){if(!t.has(n))switch(t.add(n),n.type){case"If":n.match=Xd(n.match,e,t),n.then=Xd(n.then,e,t),n.else=Xd(n.else,e,t);break;case"Type":return e[n.name]||n}return n}function Qd(n,e,t){switch(n){case" ":{let n=Gd;for(let t=e.length-1;t>=0;t--){n=Jd(e[t],n,Vd)}return n}case"|":{let n=Vd,t=null;for(let a=e.length-1;a>=0;a--){let o=e[a];if(Zd(o)&&(null===t&&a>0&&Zd(e[a-1])&&(t=Object.create(null),n=Jd({type:"Enum",map:t},Gd,n)),null!==t)){let n=(Yd(o.name)?o.name.slice(0,-1):o.name).toLowerCase();if(!(n in t)){t[n]=o;continue}}t=null,n=Jd(o,Gd,n)}return n}case"&&":{if(e.length>5)return{type:"MatchOnce",terms:e,all:!0};let t=Vd;for(let a=e.length-1;a>=0;a--){let o,i=e[a];o=e.length>1?Qd(n,e.filter(function(n){return n!==i}),!1):Gd,t=Jd(i,o,t)}return t}case"||":{if(e.length>5)return{type:"MatchOnce",terms:e,all:!1};let a=t?Gd:Vd;for(let t=e.length-1;t>=0;t--){let o,i=e[t];o=e.length>1?Qd(n,e.filter(function(n){return n!==i}),!0):Gd,a=Jd(i,o,a)}return a}}}function nm(n){if("function"==typeof n)return{type:"Generic",fn:n};switch(n.type){case"Group":{let e=Qd(n.combinator,n.terms.map(nm),!1);return n.disallowEmpty&&(e=Jd(e,Kd,Vd)),e}case"Multiplier":return function(n){let e=Gd,t=nm(n.term);if(0===n.max)t=Jd(t,Kd,Vd),e=Jd(t,null,Vd),e.then=Jd(Gd,Gd,e),n.comma&&(e.then.else=Jd({type:"Comma",syntax:n},e,Vd));else for(let a=n.min||1;a<=n.max;a++)n.comma&&e!==Gd&&(e=Jd({type:"Comma",syntax:n},e,Vd)),e=Jd(t,Jd(Gd,Gd,e),Vd);if(0===n.min)e=Jd(Gd,Gd,e);else for(let a=0;a<n.min-1;a++)n.comma&&e!==Gd&&(e=Jd({type:"Comma",syntax:n},e,Vd)),e=Jd(t,e,Vd);return e}(n);case"Boolean":{let e=nm(n.term),t=nm($d([$d([{type:"Keyword",name:"not"},{type:"Type",name:"!boolean-group"}]),$d([{type:"Type",name:"!boolean-group"},$d([{type:"Multiplier",comma:!1,min:0,max:0,term:$d([{type:"Keyword",name:"and"},{type:"Type",name:"!boolean-group"}])},{type:"Multiplier",comma:!1,min:0,max:0,term:$d([{type:"Keyword",name:"or"},{type:"Type",name:"!boolean-group"}])}],"|")])],"|")),a=nm($d([{type:"Type",name:"!term"},$d([{type:"Token",value:"("},{type:"Type",name:"!self"},{type:"Token",value:")"}]),{type:"Type",name:"general-enclosed"}],"|"));return Xd(a,{"!term":e,"!self":t}),Xd(t,{"!boolean-group":a}),t}case"Type":case"Property":return{type:n.type,name:n.name,syntax:n};case"Keyword":return{type:n.type,name:n.name.toLowerCase(),syntax:n};case"AtKeyword":return{type:n.type,name:"@"+n.name.toLowerCase(),syntax:n};case"Function":return{type:n.type,name:n.name.toLowerCase()+"(",syntax:n};case"String":return 3===n.value.length?{type:"Token",value:n.value.charAt(1),syntax:n}:{type:n.type,value:n.value.substr(1,n.value.length-2).replace(/\\'/g,"'"),syntax:n};case"Token":return{type:n.type,value:n.value,syntax:n};case"Comma":return{type:n.type,syntax:n};default:throw new Error("Unknown node type:",n.type)}}function em(n,e){return"string"==typeof n&&(n=Od(n)),{type:"MatchGraph",match:nm(n),syntax:e||null,source:n}}var{hasOwnProperty:tm}=Object.prototype,am="Match";function om(n,e){if(n.length!==e.length)return!1;for(let t=0;t<n.length;t++){let a=e.charCodeAt(t),o=n.charCodeAt(t);if(o>=65&&o<=90&&(o|=32),o!==a)return!1}return!0}function im(n){return null===n||(18===n.type||2===n.type||21===n.type||19===n.type||23===n.type||function(n){return 9===n.type&&"?"!==n.value}(n))}function rm(n){return null===n||(22===n.type||20===n.type||24===n.type||9===n.type&&"/"===n.value)}function sm(n,e,t){let a=function(n,e,t){function a(){do{f++,b=f<n.length?n[f]:null}while(null!==b&&(13===b.type||25===b.type))}function o(e){let t=f+e;return t<n.length?n[t]:null}function i(n,e){return{nextState:n,matchStack:k,syntaxStack:m,thenStack:h,tokenIndex:f,prev:e}}function r(n){h={nextState:n,matchStack:k,syntaxStack:m,prev:h}}function s(n){p=i(n,p)}function l(){k={type:1,syntax:e.syntax,token:b,prev:k},a(),u=null,f>y&&(y=f)}function c(){m={syntax:e.syntax,opts:e.syntax.opts||null!==m&&m.opts||null,prev:m},k={type:2,syntax:e.syntax,token:k.token,prev:k}}function d(){k=2===k.type?k.prev:{type:3,syntax:m.syntax,token:k.token,prev:k},m=m.prev}let m=null,h=null,p=null,u=null,g=0,w=null,b=null,f=-1,y=0,k={type:0,syntax:null,token:null,prev:null};for(a();null===w&&++g<15e3;)switch(e.type){case"Match":if(null===h){if(null!==b&&(f!==n.length-1||"\\0"!==b.value&&"\\9"!==b.value)){e=Vd;break}w=am;break}if((e=h.nextState)===Kd){if(h.matchStack===k){e=Vd;break}e=Gd}for(;h.syntaxStack!==m;)d();h=h.prev;break;case"Mismatch":if(null!==u&&!1!==u)(null===p||f>p.tokenIndex)&&(p=u,u=!1);else if(null===p){w="Mismatch";break}e=p.nextState,h=p.thenStack,m=p.syntaxStack,k=p.matchStack,f=p.tokenIndex,b=f<n.length?n[f]:null,p=p.prev;break;case"MatchGraph":e=e.match;break;case"If":e.else!==Vd&&s(e.else),e.then!==Gd&&r(e.then),e=e.match;break;case"MatchOnce":e={type:"MatchOnceBuffer",syntax:e,index:0,mask:0};break;case"MatchOnceBuffer":{let n=e.syntax.terms;if(e.index===n.length){if(0===e.mask||e.syntax.all){e=Vd;break}e=Gd;break}if(e.mask===(1<<n.length)-1){e=Gd;break}for(;e.index<n.length;e.index++){let t=1<<e.index;if(!(e.mask&t)){s(e),r({type:"AddMatchOnce",syntax:e.syntax,mask:e.mask|t}),e=n[e.index++];break}}break}case"AddMatchOnce":e={type:"MatchOnceBuffer",syntax:e.syntax,index:0,mask:e.mask};break;case"Enum":if(null!==b){let n=b.value.toLowerCase();if(-1!==n.indexOf("\\")&&(n=n.replace(/\\[09].*$/,"")),tm.call(e.map,n)){e=e.map[n];break}}e=Vd;break;case"Generic":{let n=null!==m?m.opts:null,t=f+Math.floor(e.fn(b,o,n));if(!isNaN(t)&&t>f){for(;f<t;)l();e=Gd}else e=Vd;break}case"Type":case"Property":{let n="Type"===e.type?"types":"properties",a=tm.call(t,n)?t[n][e.name]:null;if(!a||!a.match)throw new Error("Bad syntax reference: "+("Type"===e.type?"<"+e.name+">":"<'"+e.name+"'>"));if(!1!==u&&null!==b&&"Type"===e.type&&("custom-ident"===e.name&&1===b.type||"length"===e.name&&"0"===b.value)){null===u&&(u=i(e,p)),e=Vd;break}c(),e=a.matchRef||a.match;break}case"Keyword":{let n=e.name;if(null!==b){let t=b.value;if(-1!==t.indexOf("\\")&&(t=t.replace(/\\[09].*$/,"")),om(t,n)){l(),e=Gd;break}}e=Vd;break}case"AtKeyword":case"Function":if(null!==b&&om(b.value,e.name)){l(),e=Gd;break}e=Vd;break;case"Token":if(null!==b&&b.value===e.value){l(),e=Gd;break}e=Vd;break;case"Comma":null!==b&&18===b.type?im(k.token)?e=Vd:(l(),e=rm(b)?Vd:Gd):e=im(k.token)||rm(b)?Gd:Vd;break;case"String":let a="",g=f;for(;g<n.length&&a.length<e.value.length;g++)a+=n[g].value;if(om(a,e.value)){for(;f<g;)l();e=Gd}else e=Vd;break;default:throw new Error("Unknown node type: "+e.type)}switch(w){case null:console.warn("[csstree-match] BREAK after 15000 iterations"),w="Maximum iteration number exceeded (please fill an issue on https://github.com/csstree/csstree/issues)",k=null;break;case am:for(;null!==m;)d();break;default:k=null}return{tokens:n,reason:w,iterations:g,match:k,longestMatch:y}}(n,e,t||{});if(null===a.match)return a;let o=a.match,i=a.match={syntax:e.syntax||null,match:[]},r=[i];for(o=function(n){let e=null,t=null,a=n;for(;null!==a;)t=a.prev,a.prev=e,e=a,a=t;return e}(o).prev;null!==o;){switch(o.type){case 2:i.match.push(i={syntax:o.syntax,match:[]}),r.push(i);break;case 3:r.pop(),i=r[r.length-1];break;default:i.match.push({syntax:o.syntax||null,token:o.token.value,node:o.token.node})}o=o.prev}return a}var lm={};function cm(n){function e(n){return null!==n&&("Type"===n.type||"Property"===n.type||"Keyword"===n.type)}let t=null;return null!==this.matched&&function a(o){if(Array.isArray(o.match)){for(let n=0;n<o.match.length;n++)if(a(o.match[n]))return e(o.syntax)&&t.unshift(o.syntax),!0}else if(o.node===n)return t=e(o.syntax)?[o.syntax]:[],!0;return!1}(this.matched),t}function dm(n,e){return pm(this,n,n=>"Type"===n.type&&n.name===e)}function mm(n,e){return pm(this,n,n=>"Property"===n.type&&n.name===e)}function hm(n){return pm(this,n,n=>"Keyword"===n.type)}function pm(n,e,t){let a=cm.call(n,e);return null!==a&&a.some(t)}function um(n){return"node"in n?n.node:um(n.match[0])}function gm(n){return"node"in n?n.node:gm(n.match[n.match.length-1])}function wm(n,e,t,a,o){let i=[];return null!==t.matched&&function t(r){if(null!==r.syntax&&r.syntax.type===a&&r.syntax.name===o){let t=um(r),a=gm(r);n.syntax.walk(e,function(n,e,o){if(n===t){let n=new Rl;do{if(n.appendData(e.data),e.data===a)break;e=e.next}while(null!==e);i.push({parent:o,nodes:n})}})}Array.isArray(r.match)&&r.match.forEach(t)}(t.matched),i}ps(lm,{getTrace:()=>cm,isKeyword:()=>hm,isProperty:()=>mm,isType:()=>dm});var{hasOwnProperty:bm}=Object.prototype;function fm(n){return"number"==typeof n&&isFinite(n)&&Math.floor(n)===n&&n>=0}function ym(n){return!!n&&fm(n.offset)&&fm(n.line)&&fm(n.column)}function km(n,e){return function(t,a){if(!t||t.constructor!==Object)return a(t,"Type of node should be an Object");for(let o in t){let i=!0;if(!1!==bm.call(t,o)){if("type"===o)t.type!==n&&a(t,"Wrong node type `"+t.type+"`, expected `"+n+"`");else if("loc"===o){if(null===t.loc)continue;if(t.loc&&t.loc.constructor===Object)if("string"!=typeof t.loc.source)o+=".source";else if(ym(t.loc.start)){if(ym(t.loc.end))continue;o+=".end"}else o+=".start";i=!1}else if(e.hasOwnProperty(o)){i=!1;for(let n=0;!i&&n<e[o].length;n++){let a=e[o][n];switch(a){case String:i="string"==typeof t[o];break;case Boolean:i="boolean"==typeof t[o];break;case null:i=null===t[o];break;default:"string"==typeof a?i=t[o]&&t[o].type===a:Array.isArray(a)&&(i=t[o]instanceof Rl)}}}else a(t,"Unknown field `"+o+"` for "+n+" node type");i||a(t,"Bad value for `"+n+"."+o+"`")}}for(let o in e)bm.call(e,o)&&!1===bm.call(t,o)&&a(t,"Field `"+n+"."+o+"` is missed")}}function vm(n,e){let t=[];for(let a=0;a<n.length;a++){let o=n[a];if(o===String||o===Boolean)t.push(o.name.toLowerCase());else if(null===o)t.push("null");else if("string"==typeof o)t.push(o);else{if(!Array.isArray(o))throw new Error("Wrong value `"+o+"` in `"+e+"` structure definition");t.push("List<"+(vm(o,e)||"any")+">")}}return t.join(" | ")}function Sm(n,e){let t=e.structure,a={type:String,loc:!0},o={type:'"'+n+'"'};for(let e in t){if(!1===bm.call(t,e))continue;let i=a[e]=Array.isArray(t[e])?t[e].slice():[t[e]];o[e]=vm(i,n+"."+e)}return{docs:o,check:km(n,a)}}function jm(n,e,t){let a={};for(let o in n)n[o].syntax&&(a[o]=t?n[o].syntax:cc(n[o].syntax,{compact:e}));return a}function xm(n,e,t){let a={};for(let[o,i]of Object.entries(n))a[o]={prelude:i.prelude&&(t?i.prelude.syntax:cc(i.prelude.syntax,{compact:e})),descriptors:i.descriptors&&jm(i.descriptors,e,t)};return a}function Cm(n,e,t){return{matched:n,iterations:t,error:e,...lm}}function Am(n,e,t,a){let o,i=Wd(t,n.syntax);return function(n){for(let e=0;e<n.length;e++)if("var("===n[e].value.toLowerCase())return!0;return!1}(i)?Cm(null,new Error("Matching for a tree with var() is not supported")):(a&&(o=sm(i,n.cssWideKeywordsSyntax,n)),a&&o.match||(o=sm(i,e.match,n),o.match)?Cm(o.match,null,o.iterations):Cm(null,new uc(o.reason,e.syntax,t,o),o.iterations))}var Lm=class{constructor(n,e,t){if(this.cssWideKeywords=Sc,this.syntax=e,this.generic=!1,this.units={...Kc},this.atrules=Object.create(null),this.properties=Object.create(null),this.types=Object.create(null),this.structure=t||function(n){let e={};if(n.node)for(let t in n.node)if(bm.call(n.node,t)){let a=n.node[t];if(!a.structure)throw new Error("Missed `structure` field in `"+t+"` node type definition");e[t]=Sm(t,a)}return e}(n),n){if(n.cssWideKeywords&&(this.cssWideKeywords=n.cssWideKeywords),n.units)for(let e of Object.keys(Kc))Array.isArray(n.units[e])&&(this.units[e]=n.units[e]);if(n.types)for(let[e,t]of Object.entries(n.types))this.addType_(e,t);if(n.generic){this.generic=!0;for(let[n,e]of Object.entries(function(n){return{...Wc,...Gc,...Vc(n)}}(this.units)))this.addType_(n,e)}if(n.atrules)for(let[e,t]of Object.entries(n.atrules))this.addAtrule_(e,t);if(n.properties)for(let[e,t]of Object.entries(n.properties))this.addProperty_(e,t)}this.cssWideKeywordsSyntax=em(this.cssWideKeywords.join(" | "))}checkStructure(n){function e(n,e){a.push({node:n,message:e})}let t=this.structure,a=[];return this.syntax.walk(n,function(n){t.hasOwnProperty(n.type)?t[n.type].check(n,e):e(n,"Unknown node type `"+n.type+"`")}),!!a.length&&a}createDescriptor(n,e,t,a=null){let o={type:e,name:t},i={type:e,name:t,parent:a,serializable:"string"==typeof n||n&&"string"==typeof n.type,syntax:null,match:null,matchRef:null};return"function"==typeof n?i.match=em(n,o):("string"==typeof n?Object.defineProperty(i,"syntax",{get:()=>(Object.defineProperty(i,"syntax",{value:Od(n)}),i.syntax)}):i.syntax=n,Object.defineProperty(i,"match",{get:()=>(Object.defineProperty(i,"match",{value:em(i.syntax,o)}),i.match)}),"Property"===e&&Object.defineProperty(i,"matchRef",{get(){let n=i.syntax,e=function(n){let e=n.terms[0];return!1===n.explicit&&1===n.terms.length&&"Multiplier"===e.type&&!0===e.comma}(n)?em({...n,terms:[n.terms[0].term]},o):null;return Object.defineProperty(i,"matchRef",{value:e}),e}})),i}addAtrule_(n,e){e&&(this.atrules[n]={type:"Atrule",name:n,prelude:e.prelude?this.createDescriptor(e.prelude,"AtrulePrelude",n):null,descriptors:e.descriptors?Object.keys(e.descriptors).reduce((t,a)=>(t[a]=this.createDescriptor(e.descriptors[a],"AtruleDescriptor",a,n),t),Object.create(null)):null})}addProperty_(n,e){e&&(this.properties[n]=this.createDescriptor(e,"Property",n))}addType_(n,e){e&&(this.types[n]=this.createDescriptor(e,"Type",n))}checkAtruleName(n){if(!this.getAtrule(n))return new pc("Unknown at-rule","@"+n)}checkAtrulePrelude(n,e){let t=this.checkAtruleName(n);if(t)return t;let a=this.getAtrule(n);return!a.prelude&&e?new SyntaxError("At-rule `@"+n+"` should not contain a prelude"):!a.prelude||e||Am(this,a.prelude,"",!1).matched?void 0:new SyntaxError("At-rule `@"+n+"` should contain a prelude")}checkAtruleDescriptorName(n,e){let t=this.checkAtruleName(n);if(t)return t;let a=this.getAtrule(n),o=bc(e);return a.descriptors?a.descriptors[o.name]||a.descriptors[o.basename]?void 0:new pc("Unknown at-rule descriptor",e):new SyntaxError("At-rule `@"+n+"` has no known descriptors")}checkPropertyName(n){if(!this.getProperty(n))return new pc("Unknown property",n)}matchAtrulePrelude(n,e){let t=this.checkAtrulePrelude(n,e);if(t)return Cm(null,t);let a=this.getAtrule(n);return a.prelude?Am(this,a.prelude,e||"",!1):Cm(null,null)}matchAtruleDescriptor(n,e,t){let a=this.checkAtruleDescriptorName(n,e);if(a)return Cm(null,a);let o=this.getAtrule(n),i=bc(e);return Am(this,o.descriptors[i.name]||o.descriptors[i.basename],t,!1)}matchDeclaration(n){return"Declaration"!==n.type?Cm(null,new Error("Not a Declaration node")):this.matchProperty(n.property,n.value)}matchProperty(n,e){if(fc(n).custom)return Cm(null,new Error("Lexer matching doesn't applicable for custom properties"));let t=this.checkPropertyName(n);return t?Cm(null,t):Am(this,this.getProperty(n),e,!0)}matchType(n,e){let t=this.getType(n);return t?Am(this,t,e,!1):Cm(null,new pc("Unknown type",n))}match(n,e){return"string"==typeof n||n&&n.type?(("string"==typeof n||!n.match)&&(n=this.createDescriptor(n,"Type","anonymous")),Am(this,n,e,!1)):Cm(null,new pc("Bad syntax"))}findValueFragments(n,e,t,a){return wm(this,e,this.matchProperty(n,e),t,a)}findDeclarationValueFragments(n,e,t){return wm(this,n.value,this.matchDeclaration(n),e,t)}findAllFragments(n,e,t){let a=[];return this.syntax.walk(n,{visit:"Declaration",enter:n=>{a.push.apply(a,this.findDeclarationValueFragments(n,e,t))}}),a}getAtrule(n,e=!0){let t=bc(n);return(t.vendor&&e?this.atrules[t.name]||this.atrules[t.basename]:this.atrules[t.name])||null}getAtrulePrelude(n,e=!0){let t=this.getAtrule(n,e);return t&&t.prelude||null}getAtruleDescriptor(n,e){return this.atrules.hasOwnProperty(n)&&this.atrules.declarators&&this.atrules[n].declarators[e]||null}getProperty(n,e=!0){let t=fc(n);return(t.vendor&&e?this.properties[t.name]||this.properties[t.basename]:this.properties[t.name])||null}getType(n){return hasOwnProperty.call(this.types,n)?this.types[n]:null}validate(){function n(n,e){return e?`<${n}>`:`<'${n}'>`}function e(i,r,s,l){if(s.has(r))return s.get(r);s.set(r,!1),null!==l.syntax&&qd(l.syntax,function(l){if("Type"!==l.type&&"Property"!==l.type)return;let c="Type"===l.type?i.types:i.properties,d="Type"===l.type?a:o;hasOwnProperty.call(c,l.name)?e(i,l.name,d,c[l.name])&&(t.push(`${n(r,s===a)} used broken syntax definition ${n(l.name,"Type"===l.type)}`),s.set(r,!0)):(t.push(`${n(r,s===a)} used missed syntax definition ${n(l.name,"Type"===l.type)}`),s.set(r,!0))},this)}let t=[],a=new Map,o=new Map;for(let n in this.types)e(this,n,a,this.types[n]);for(let n in this.properties)e(this,n,o,this.properties[n]);let i=[...a.keys()].filter(n=>a.get(n)),r=[...o.keys()].filter(n=>o.get(n));return i.length||r.length?{errors:t,types:i,properties:r}:null}dump(n,e){return{generic:this.generic,cssWideKeywords:this.cssWideKeywords,units:this.units,types:jm(this.types,!e,n),properties:jm(this.properties,!e,n),atrules:xm(this.atrules,!e,n)}}toString(){return JSON.stringify(this.dump())}};function zm(n,e){return"string"==typeof e&&/^\s*\|/.test(e)?"string"==typeof n?n+e:e.replace(/^\s*\|\s*/,""):e||null}function Tm(n,e){let t=Object.create(null);for(let a of Object.keys(n))e.includes(a)&&(t[a]=n[a]);return t}function Em(n,e,t){let a={...n};for(let[n,o]of Object.entries(e))a[n]={...a[n],...t?Tm(o,t):o};return a}function Rm(n,e){let t={...n};for(let[a,o]of Object.entries(e))switch(a){case"generic":t[a]=!!o;break;case"cssWideKeywords":t[a]=n[a]?[...n[a],...o]:o||[];break;case"units":t[a]={...n[a]};for(let[n,e]of Object.entries(o))t[a][n]=Array.isArray(e)?e:[];break;case"atrules":t[a]={...n[a]};for(let[n,e]of Object.entries(o)){let o=t[a][n]||{},i=t[a][n]={prelude:o.prelude||null,descriptors:{...o.descriptors}};if(e){i.prelude=e.prelude?zm(i.prelude,e.prelude):i.prelude||null;for(let[n,t]of Object.entries(e.descriptors||{}))i.descriptors[n]=t?zm(i.descriptors[n],t):null;Object.keys(i.descriptors).length||(i.descriptors=null)}}break;case"types":case"properties":t[a]={...n[a]};for(let[n,e]of Object.entries(o))t[a][n]=zm(t[a][n],e);break;case"parseContext":t[a]={...n[a],...o};break;case"scope":case"features":t[a]=Em(n[a],o);break;case"atrule":case"pseudo":t[a]=Em(n[a],o,["parse"]);break;case"node":t[a]=Em(n[a],o,["name","structure","parse","generate","walkContext"])}return t}function Im(n){let e=Fl(n),t=rc(n),a=Xl(n),{fromPlainObject:o,toPlainObject:i}=function(n){return{fromPlainObject:e=>(n(e,{enter(n){n.children&&!(n.children instanceof Rl)&&(n.children=(new Rl).fromArray(n.children))}}),e),toPlainObject:e=>(n(e,{leave(n){n.children&&n.children instanceof Rl&&(n.children=n.children.toArray())}}),e)}}(t),r={lexer:null,createLexer:n=>new Lm(n,r,r.lexer.structure),tokenize:Tl,parse:e,generate:a,walk:t,find:t.find,findLast:t.findLast,findAll:t.findAll,fromPlainObject:o,toPlainObject:i,fork(e){let t=Rm({},n);return Im("function"==typeof e?e(t):Rm(t,e))}};return r.lexer=new Lm({generic:n.generic,cssWideKeywords:n.cssWideKeywords,units:n.units,types:n.types,atrules:n.atrules,properties:n.properties,node:n.node},r),r}var Dm=n=>Im(Rm({},n)),Mm={};ps(Mm,{AnPlusB:()=>Pm,Atrule:()=>Ym,AtrulePrelude:()=>ah,AttributeSelector:()=>ch,Block:()=>Sh,Brackets:()=>Dh,CDC:()=>Bh,CDO:()=>Hh,ClassSelector:()=>Jh,Combinator:()=>np,Comment:()=>cp,Condition:()=>wp,Declaration:()=>xp,DeclarationList:()=>qp,Dimension:()=>Yp,Feature:()=>nu,FeatureFunction:()=>ru,FeatureRange:()=>hu,Function:()=>ju,GeneralEnclosed:()=>Tu,Hash:()=>Mu,IdSelector:()=>Gu,Identifier:()=>Fu,Layer:()=>Zu,LayerList:()=>tg,MediaQuery:()=>sg,MediaQueryList:()=>hg,NestingSelector:()=>bg,Nth:()=>jg,Number:()=>zg,Operator:()=>Dg,Parentheses:()=>Bg,Percentage:()=>Hg,PseudoClassSelector:()=>Jg,PseudoElementSelector:()=>nw,Ratio:()=>rw,Raw:()=>pw,Rule:()=>yw,Scope:()=>Lw,Selector:()=>Iw,SelectorList:()=>_w,String:()=>Hw,StyleSheet:()=>nb,SupportsDeclaration:()=>lb,TypeSelector:()=>pb,UnicodeRange:()=>vb,Url:()=>Db,Value:()=>Kb,WhiteSpace:()=>Xb});var Pm={};ps(Pm,{generate:()=>Jm,name:()=>Gm,parse:()=>Km,structure:()=>Vm});var Nm=43,_m=45,Bm=110,Om=!0,Fm=!1;function Um(n,e){let t=this.tokenStart+n,a=this.charCodeAt(t);for((a===Nm||a===_m)&&(e&&this.error("Number sign is not allowed"),t++);t<this.tokenEnd;t++)Ks(this.charCodeAt(t))||this.error("Integer is expected",t)}function qm(n){return Um.call(this,0,n)}function Hm(n,e){if(!this.cmpChar(this.tokenStart+n,e)){let t="";switch(e){case Bm:t="N is expected";break;case _m:t="HyphenMinus is expected"}this.error(t,this.tokenStart+n)}}function Wm(){let n=0,e=0,t=this.tokenType;for(;13===t||25===t;)t=this.lookupType(++n);if(10!==t){if(!this.isDelim(Nm,n)&&!this.isDelim(_m,n))return null;e=this.isDelim(Nm,n)?Nm:_m;do{t=this.lookupType(++n)}while(13===t||25===t);10!==t&&(this.skip(n),qm.call(this,Om))}return n>0&&this.skip(n),0===e&&(t=this.charCodeAt(this.tokenStart),t!==Nm&&t!==_m&&this.error("Number sign is expected")),qm.call(this,0!==e),e===_m?"-"+this.consume(10):this.consume(10)}var Gm="AnPlusB",Vm={a:[String,null],b:[String,null]};function Km(){let n=this.tokenStart,e=null,t=null;if(10===this.tokenType)qm.call(this,Fm),t=this.consume(10);else if(1===this.tokenType&&this.cmpChar(this.tokenStart,_m))switch(e="-1",Hm.call(this,1,Bm),this.tokenEnd-this.tokenStart){case 2:this.next(),t=Wm.call(this);break;case 3:Hm.call(this,2,_m),this.next(),this.skipSC(),qm.call(this,Om),t="-"+this.consume(10);break;default:Hm.call(this,2,_m),Um.call(this,3,Om),this.next(),t=this.substrToCursor(n+2)}else if(1===this.tokenType||this.isDelim(Nm)&&1===this.lookupType(1)){let a=0;switch(e="1",this.isDelim(Nm)&&(a=1,this.next()),Hm.call(this,0,Bm),this.tokenEnd-this.tokenStart){case 1:this.next(),t=Wm.call(this);break;case 2:Hm.call(this,1,_m),this.next(),this.skipSC(),qm.call(this,Om),t="-"+this.consume(10);break;default:Hm.call(this,1,_m),Um.call(this,2,Om),this.next(),t=this.substrToCursor(n+a+1)}}else if(12===this.tokenType){let a=this.charCodeAt(this.tokenStart),o=a===Nm||a===_m,i=this.tokenStart+o;for(;i<this.tokenEnd&&Ks(this.charCodeAt(i));i++);i===this.tokenStart+o&&this.error("Integer is expected",this.tokenStart+o),Hm.call(this,i-this.tokenStart,Bm),e=this.substring(n,i),i+1===this.tokenEnd?(this.next(),t=Wm.call(this)):(Hm.call(this,i-this.tokenStart+1,_m),i+2===this.tokenEnd?(this.next(),this.skipSC(),qm.call(this,Om),t="-"+this.consume(10)):(Um.call(this,i-this.tokenStart+2,Om),this.next(),t=this.substrToCursor(i+1)))}else this.error();return null!==e&&e.charCodeAt(0)===Nm&&(e=e.substr(1)),null!==t&&t.charCodeAt(0)===Nm&&(t=t.substr(1)),{type:"AnPlusB",loc:this.getLocation(n,this.tokenStart),a:e,b:t}}function Jm(n){if(n.a){let e=("+1"===n.a||"1"===n.a?"n":"-1"===n.a&&"-n")||n.a+"n";if(n.b){let t="-"===n.b[0]||"+"===n.b[0]?n.b:"+"+n.b;this.tokenize(e+t)}else this.tokenize(e)}else this.tokenize(n.b)}var Ym={};function Zm(){return this.Raw(this.consumeUntilLeftCurlyBracketOrSemicolon,!0)}function $m(){for(let n,e=1;n=this.lookupType(e);e++){if(24===n)return!0;if(23===n||3===n)return!1}return!1}ps(Ym,{generate:()=>th,name:()=>Xm,parse:()=>eh,structure:()=>nh,walkContext:()=>Qm});var Xm="Atrule",Qm="atrule",nh={name:String,prelude:["AtrulePrelude","Raw",null],block:["Block",null]};function eh(n=!1){let e,t,a=this.tokenStart,o=null,i=null;switch(this.eat(3),e=this.substrToCursor(a+1),t=e.toLowerCase(),this.skipSC(),!1===this.eof&&23!==this.tokenType&&17!==this.tokenType&&(o=this.parseAtrulePrelude?this.parseWithFallback(this.AtrulePrelude.bind(this,e,n),Zm):Zm.call(this,this.tokenIndex),this.skipSC()),this.tokenType){case 17:this.next();break;case 23:i=hasOwnProperty.call(this.atrule,t)&&"function"==typeof this.atrule[t].block?this.atrule[t].block.call(this,n):this.Block($m.call(this))}return{type:"Atrule",loc:this.getLocation(a,this.tokenStart),name:e,prelude:o,block:i}}function th(n){this.token(3,"@"+n.name),null!==n.prelude&&this.node(n.prelude),n.block?this.node(n.block):this.token(17,";")}var ah={};ps(ah,{generate:()=>lh,name:()=>oh,parse:()=>sh,structure:()=>rh,walkContext:()=>ih});var oh="AtrulePrelude",ih="atrulePrelude",rh={children:[[]]};function sh(n){let e=null;return null!==n&&(n=n.toLowerCase()),this.skipSC(),e=hasOwnProperty.call(this.atrule,n)&&"function"==typeof this.atrule[n].prelude?this.atrule[n].prelude.call(this):this.readSequence(this.scope.AtrulePrelude),this.skipSC(),!0!==this.eof&&23!==this.tokenType&&17!==this.tokenType&&this.error("Semicolon or block is expected"),{type:"AtrulePrelude",loc:this.getLocationFromList(e),children:e}}function lh(n){this.children(n)}var ch={};ps(ch,{generate:()=>vh,name:()=>fh,parse:()=>kh,structure:()=>yh});var dh=36,mh=42,hh=61,ph=94,uh=124,gh=126;function wh(){this.eof&&this.error("Unexpected end of input");let n=this.tokenStart,e=!1;return this.isDelim(mh)?(e=!0,this.next()):this.isDelim(uh)||this.eat(1),this.isDelim(uh)?this.charCodeAt(this.tokenStart+1)!==hh?(this.next(),this.eat(1)):e&&this.error("Identifier is expected",this.tokenEnd):e&&this.error("Vertical line is expected"),{type:"Identifier",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n)}}function bh(){let n=this.tokenStart,e=this.charCodeAt(n);return e!==hh&&e!==gh&&e!==ph&&e!==dh&&e!==mh&&e!==uh&&this.error("Attribute selector (=, ~=, ^=, $=, *=, |=) is expected"),this.next(),e!==hh&&(this.isDelim(hh)||this.error("Equal sign is expected"),this.next()),this.substrToCursor(n)}var fh="AttributeSelector",yh={name:"Identifier",matcher:[String,null],value:["String","Identifier",null],flags:[String,null]};function kh(){let n,e=this.tokenStart,t=null,a=null,o=null;return this.eat(19),this.skipSC(),n=wh.call(this),this.skipSC(),20!==this.tokenType&&(1!==this.tokenType&&(t=bh.call(this),this.skipSC(),a=5===this.tokenType?this.String():this.Identifier(),this.skipSC()),1===this.tokenType&&(o=this.consume(1),this.skipSC())),this.eat(20),{type:"AttributeSelector",loc:this.getLocation(e,this.tokenStart),name:n,matcher:t,value:a,flags:o}}function vh(n){this.token(9,"["),this.node(n.name),null!==n.matcher&&(this.tokenize(n.matcher),this.node(n.value)),null!==n.flags&&this.token(1,n.flags),this.token(9,"]")}var Sh={};ps(Sh,{generate:()=>Ih,name:()=>zh,parse:()=>Rh,structure:()=>Eh,walkContext:()=>Th});var jh=38;function xh(){return this.Raw(null,!0)}function Ch(){return this.parseWithFallback(this.Rule,xh)}function Ah(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}function Lh(){if(17===this.tokenType)return Ah.call(this,this.tokenIndex);let n=this.parseWithFallback(this.Declaration,Ah);return 17===this.tokenType&&this.next(),n}var zh="Block",Th="block",Eh={children:[["Atrule","Rule","Declaration"]]};function Rh(n){let e=n?Lh:Ch,t=this.tokenStart,a=this.createList();this.eat(23);n:for(;!this.eof;)switch(this.tokenType){case 24:break n;case 13:case 25:this.next();break;case 3:a.push(this.parseWithFallback(this.Atrule.bind(this,n),xh));break;default:n&&this.isDelim(jh)?a.push(Ch.call(this)):a.push(e.call(this))}return this.eof||this.eat(24),{type:"Block",loc:this.getLocation(t,this.tokenStart),children:a}}function Ih(n){this.token(23,"{"),this.children(n,n=>{"Declaration"===n.type&&this.token(17,";")}),this.token(24,"}")}var Dh={};ps(Dh,{generate:()=>_h,name:()=>Mh,parse:()=>Nh,structure:()=>Ph});var Mh="Brackets",Ph={children:[[]]};function Nh(n,e){let t=this.tokenStart,a=null;return this.eat(19),a=n.call(this,e),this.eof||this.eat(20),{type:"Brackets",loc:this.getLocation(t,this.tokenStart),children:a}}function _h(n){this.token(9,"["),this.children(n),this.token(9,"]")}var Bh={};ps(Bh,{generate:()=>qh,name:()=>Oh,parse:()=>Uh,structure:()=>Fh});var Oh="CDC",Fh=[];function Uh(){let n=this.tokenStart;return this.eat(15),{type:"CDC",loc:this.getLocation(n,this.tokenStart)}}function qh(){this.token(15,"--\x3e")}var Hh={};ps(Hh,{generate:()=>Kh,name:()=>Wh,parse:()=>Vh,structure:()=>Gh});var Wh="CDO",Gh=[];function Vh(){let n=this.tokenStart;return this.eat(14),{type:"CDO",loc:this.getLocation(n,this.tokenStart)}}function Kh(){this.token(14,"\x3c!--")}var Jh={};ps(Jh,{generate:()=>Qh,name:()=>Zh,parse:()=>Xh,structure:()=>$h});var Yh=46,Zh="ClassSelector",$h={name:String};function Xh(){return this.eatDelim(Yh),{type:"ClassSelector",loc:this.getLocation(this.tokenStart-1,this.tokenEnd),name:this.consume(1)}}function Qh(n){this.token(9,"."),this.token(1,n.name)}var np={};ps(np,{generate:()=>lp,name:()=>ip,parse:()=>sp,structure:()=>rp});var ep=43,tp=47,ap=62,op=126,ip="Combinator",rp={name:String};function sp(){let n,e=this.tokenStart;switch(this.tokenType){case 13:n=" ";break;case 9:switch(this.charCodeAt(this.tokenStart)){case ap:case ep:case op:this.next();break;case tp:this.next(),this.eatIdent("deep"),this.eatDelim(tp);break;default:this.error("Combinator is expected")}n=this.substrToCursor(e)}return{type:"Combinator",loc:this.getLocation(e,this.tokenStart),name:n}}function lp(n){this.tokenize(n.name)}var cp={};ps(cp,{generate:()=>gp,name:()=>hp,parse:()=>up,structure:()=>pp});var dp=42,mp=47,hp="Comment",pp={value:String};function up(){let n=this.tokenStart,e=this.tokenEnd;return this.eat(25),e-n+2>=2&&this.charCodeAt(e-2)===dp&&this.charCodeAt(e-1)===mp&&(e-=2),{type:"Comment",loc:this.getLocation(n,this.tokenStart),value:this.substring(n+2,e)}}function gp(n){this.token(25,"/*"+n.value+"*/")}var wp={};ps(wp,{generate:()=>jp,name:()=>fp,parse:()=>Sp,structure:()=>yp});var bp=new Set([16,22,0]),fp="Condition",yp={kind:String,children:[["Identifier","Feature","FeatureFunction","FeatureRange","SupportsDeclaration"]]};function kp(n){return 1===this.lookupTypeNonSC(1)&&bp.has(this.lookupTypeNonSC(2))?this.Feature(n):this.FeatureRange(n)}var vp={media:kp,container:kp,supports(){return this.SupportsDeclaration()}};function Sp(n="media"){let e=this.createList();n:for(;!this.eof;)switch(this.tokenType){case 25:case 13:this.next();continue;case 1:e.push(this.Identifier());break;case 21:{let t=this.parseWithFallback(()=>vp[n].call(this,n),()=>null);t||(t=this.parseWithFallback(()=>{this.eat(21);let e=this.Condition(n);return this.eat(22),e},()=>this.GeneralEnclosed(n))),e.push(t);break}case 2:{let t=this.parseWithFallback(()=>this.FeatureFunction(n),()=>null);t||(t=this.GeneralEnclosed(n)),e.push(t);break}default:break n}return e.isEmpty&&this.error("Condition is expected"),{type:"Condition",loc:this.getLocationFromList(e),kind:n,children:e}}function jp(n){n.children.forEach(n=>{"Condition"===n.type?(this.token(21,"("),this.node(n),this.token(22,")")):this.node(n)})}var xp={};ps(xp,{generate:()=>Op,name:()=>Pp,parse:()=>Bp,structure:()=>_p,walkContext:()=>Np});var Cp=33,Ap=35,Lp=36,zp=38,Tp=42,Ep=43,Rp=47;function Ip(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!0)}function Dp(){return this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1)}function Mp(){let n=this.tokenIndex,e=this.Value();return"Raw"!==e.type&&!1===this.eof&&17!==this.tokenType&&!1===this.isDelim(Cp)&&!1===this.isBalanceEdge(n)&&this.error(),e}var Pp="Declaration",Np="declaration",_p={important:[Boolean,String],property:String,value:["Value","Raw"]};function Bp(){let n,e=this.tokenStart,t=this.tokenIndex,a=Fp.call(this),o=kc(a),i=o?this.parseCustomProperty:this.parseValue,r=o?Dp:Ip,s=!1;this.skipSC(),this.eat(16);let l=this.tokenIndex;if(o||this.skipSC(),n=i?this.parseWithFallback(Mp,r):r.call(this,this.tokenIndex),o&&"Value"===n.type&&n.children.isEmpty)for(let e=l-this.tokenIndex;e<=0;e++)if(13===this.lookupType(e)){n.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}return this.isDelim(Cp)&&(s=Up.call(this),this.skipSC()),!1===this.eof&&17!==this.tokenType&&!1===this.isBalanceEdge(t)&&this.error(),{type:"Declaration",loc:this.getLocation(e,this.tokenStart),important:s,property:a,value:n}}function Op(n){this.token(1,n.property),this.token(16,":"),this.node(n.value),n.important&&(this.token(9,"!"),this.token(1,!0===n.important?"important":n.important))}function Fp(){let n=this.tokenStart;if(9===this.tokenType)switch(this.charCodeAt(this.tokenStart)){case Tp:case Lp:case Ep:case Ap:case zp:this.next();break;case Rp:this.next(),this.isDelim(Rp)&&this.next()}return 4===this.tokenType?this.eat(4):this.eat(1),this.substrToCursor(n)}function Up(){this.eat(9),this.skipSC();let n=this.consume(1);return"important"===n||n}var qp={};ps(qp,{generate:()=>Jp,name:()=>Gp,parse:()=>Kp,structure:()=>Vp});var Hp=38;function Wp(){return this.Raw(this.consumeUntilSemicolonIncluded,!0)}var Gp="DeclarationList",Vp={children:[["Declaration","Atrule","Rule"]]};function Kp(){let n=this.createList();for(;!this.eof;)switch(this.tokenType){case 13:case 25:case 17:this.next();break;case 3:n.push(this.parseWithFallback(this.Atrule.bind(this,!0),Wp));break;default:this.isDelim(Hp)?n.push(this.parseWithFallback(this.Rule,Wp)):n.push(this.parseWithFallback(this.Declaration,Wp))}return{type:"DeclarationList",loc:this.getLocationFromList(n),children:n}}function Jp(n){this.children(n,n=>{"Declaration"===n.type&&this.token(17,";")})}var Yp={};ps(Yp,{generate:()=>Qp,name:()=>Zp,parse:()=>Xp,structure:()=>$p});var Zp="Dimension",$p={value:String,unit:String};function Xp(){let n=this.tokenStart,e=this.consumeNumber(12);return{type:"Dimension",loc:this.getLocation(n,this.tokenStart),value:e,unit:this.substring(n+e.length,this.tokenStart)}}function Qp(n){this.token(12,n.value+n.unit)}var nu={};ps(nu,{generate:()=>iu,name:()=>tu,parse:()=>ou,structure:()=>au});var eu=47,tu="Feature",au={kind:String,name:String,value:["Identifier","Number","Dimension","Ratio","Function",null]};function ou(n){let e,t=this.tokenStart,a=null;if(this.eat(21),this.skipSC(),e=this.consume(1),this.skipSC(),22!==this.tokenType){switch(this.eat(16),this.skipSC(),this.tokenType){case 10:a=9===this.lookupNonWSType(1)?this.Ratio():this.Number();break;case 12:a=this.Dimension();break;case 1:a=this.Identifier();break;case 2:a=this.parseWithFallback(()=>{let n=this.Function(this.readSequence,this.scope.Value);return this.skipSC(),this.isDelim(eu)&&this.error(),n},()=>this.Ratio());break;default:this.error("Number, dimension, ratio or identifier is expected")}this.skipSC()}return this.eof||this.eat(22),{type:"Feature",loc:this.getLocation(t,this.tokenStart),kind:n,name:e,value:a}}function iu(n){this.token(21,"("),this.token(1,n.name),null!==n.value&&(this.token(16,":"),this.node(n.value)),this.token(22,")")}var ru={};ps(ru,{generate:()=>mu,name:()=>su,parse:()=>du,structure:()=>lu});var su="FeatureFunction",lu={kind:String,feature:String,value:["Declaration","Selector"]};function cu(n,e){let t=(this.features[n]||{})[e];return"function"!=typeof t&&this.error(`Unknown feature ${e}()`),t}function du(n="unknown"){let e=this.tokenStart,t=this.consumeFunctionName(),a=cu.call(this,n,t.toLowerCase());this.skipSC();let o=this.parseWithFallback(()=>{let n=this.tokenIndex,e=a.call(this);return!1===this.eof&&!1===this.isBalanceEdge(n)&&this.error(),e},()=>this.Raw(null,!1));return this.eof||this.eat(22),{type:"FeatureFunction",loc:this.getLocation(e,this.tokenStart),kind:n,feature:t,value:o}}function mu(n){this.token(2,n.feature+"("),this.node(n.value),this.token(22,")")}var hu={};ps(hu,{generate:()=>Su,name:()=>bu,parse:()=>vu,structure:()=>fu});var pu=47,uu=60,gu=61,wu=62,bu="FeatureRange",fu={kind:String,left:["Identifier","Number","Dimension","Ratio","Function"],leftComparison:String,middle:["Identifier","Number","Dimension","Ratio","Function"],rightComparison:[String,null],right:["Identifier","Number","Dimension","Ratio","Function",null]};function yu(){switch(this.skipSC(),this.tokenType){case 10:return this.isDelim(pu,this.lookupOffsetNonSC(1))?this.Ratio():this.Number();case 12:return this.Dimension();case 1:return this.Identifier();case 2:return this.parseWithFallback(()=>{let n=this.Function(this.readSequence,this.scope.Value);return this.skipSC(),this.isDelim(pu)&&this.error(),n},()=>this.Ratio());default:this.error("Number, dimension, ratio or identifier is expected")}}function ku(n){if(this.skipSC(),this.isDelim(uu)||this.isDelim(wu)){let n=this.source[this.tokenStart];return this.next(),this.isDelim(gu)?(this.next(),n+"="):n}if(this.isDelim(gu))return"=";this.error(`Expected ${n?'":", ':""}"<", ">", "=" or ")"`)}function vu(n="unknown"){let e=this.tokenStart;this.skipSC(),this.eat(21);let t=yu.call(this),a=ku.call(this,"Identifier"===t.type),o=yu.call(this),i=null,r=null;return 22!==this.lookupNonWSType(0)&&(i=ku.call(this),r=yu.call(this)),this.skipSC(),this.eat(22),{type:"FeatureRange",loc:this.getLocation(e,this.tokenStart),kind:n,left:t,leftComparison:a,middle:o,rightComparison:i,right:r}}function Su(n){this.token(21,"("),this.node(n.left),this.tokenize(n.leftComparison),this.node(n.middle),n.right&&(this.tokenize(n.rightComparison),this.node(n.right)),this.token(22,")")}var ju={};ps(ju,{generate:()=>zu,name:()=>xu,parse:()=>Lu,structure:()=>Au,walkContext:()=>Cu});var xu="Function",Cu="function",Au={name:String,children:[[]]};function Lu(n,e){let t,a=this.tokenStart,o=this.consumeFunctionName(),i=o.toLowerCase();return t=e.hasOwnProperty(i)?e[i].call(this,e):n.call(this,e),this.eof||this.eat(22),{type:"Function",loc:this.getLocation(a,this.tokenStart),name:o,children:t}}function zu(n){this.token(2,n.name+"("),this.children(n),this.token(22,")")}var Tu={};ps(Tu,{generate:()=>Du,name:()=>Eu,parse:()=>Iu,structure:()=>Ru});var Eu="GeneralEnclosed",Ru={kind:String,function:[String,null],children:[[]]};function Iu(n){let e=this.tokenStart,t=null;2===this.tokenType?t=this.consumeFunctionName():this.eat(21);let a=this.parseWithFallback(()=>{let n=this.tokenIndex,e=this.readSequence(this.scope.Value);return!1===this.eof&&!1===this.isBalanceEdge(n)&&this.error(),e},()=>this.createSingleNodeList(this.Raw(null,!1)));return this.eof||this.eat(22),{type:"GeneralEnclosed",loc:this.getLocation(e,this.tokenStart),kind:n,function:t,children:a}}function Du(n){n.function?this.token(2,n.function+"("):this.token(21,"("),this.children(n),this.token(22,")")}var Mu={};ps(Mu,{generate:()=>Ou,name:()=>Nu,parse:()=>Bu,structure:()=>_u,xxx:()=>Pu});var Pu="XXX",Nu="Hash",_u={value:String};function Bu(){let n=this.tokenStart;return this.eat(4),{type:"Hash",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n+1)}}function Ou(n){this.token(4,"#"+n.value)}var Fu={};ps(Fu,{generate:()=>Wu,name:()=>Uu,parse:()=>Hu,structure:()=>qu});var Uu="Identifier",qu={name:String};function Hu(){return{type:"Identifier",loc:this.getLocation(this.tokenStart,this.tokenEnd),name:this.consume(1)}}function Wu(n){this.token(1,n.name)}var Gu={};ps(Gu,{generate:()=>Yu,name:()=>Vu,parse:()=>Ju,structure:()=>Ku});var Vu="IdSelector",Ku={name:String};function Ju(){let n=this.tokenStart;return this.eat(4),{type:"IdSelector",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n+1)}}function Yu(n){this.token(9,"#"+n.name)}var Zu={};ps(Zu,{generate:()=>eg,name:()=>Xu,parse:()=>ng,structure:()=>Qu});var $u=46,Xu="Layer",Qu={name:String};function ng(){let n=this.tokenStart,e=this.consume(1);for(;this.isDelim($u);)this.eat(9),e+="."+this.consume(1);return{type:"Layer",loc:this.getLocation(n,this.tokenStart),name:e}}function eg(n){this.tokenize(n.name)}var tg={};ps(tg,{generate:()=>rg,name:()=>ag,parse:()=>ig,structure:()=>og});var ag="LayerList",og={children:[["Layer"]]};function ig(){let n=this.createList();for(this.skipSC();!this.eof&&(n.push(this.Layer()),18===this.lookupTypeNonSC(0));)this.skipSC(),this.next(),this.skipSC();return{type:"LayerList",loc:this.getLocationFromList(n),children:n}}function rg(n){this.children(n,()=>this.token(18,","))}var sg={};ps(sg,{generate:()=>mg,name:()=>lg,parse:()=>dg,structure:()=>cg});var lg="MediaQuery",cg={modifier:[String,null],mediaType:[String,null],condition:["Condition",null]};function dg(){let n=this.tokenStart,e=null,t=null,a=null;if(this.skipSC(),1===this.tokenType&&21!==this.lookupTypeNonSC(1)){let n=this.consume(1),o=n.toLowerCase();switch("not"===o||"only"===o?(this.skipSC(),e=o,t=this.consume(1)):t=n,this.lookupTypeNonSC(0)){case 1:this.skipSC(),this.eatIdent("and"),a=this.Condition("media");break;case 23:case 17:case 18:case 0:break;default:this.error("Identifier or parenthesis is expected")}}else switch(this.tokenType){case 1:case 21:case 2:a=this.Condition("media");break;case 23:case 17:case 0:break;default:this.error("Identifier or parenthesis is expected")}return{type:"MediaQuery",loc:this.getLocation(n,this.tokenStart),modifier:e,mediaType:t,condition:a}}function mg(n){n.mediaType?(n.modifier&&this.token(1,n.modifier),this.token(1,n.mediaType),n.condition&&(this.token(1,"and"),this.node(n.condition))):n.condition&&this.node(n.condition)}var hg={};ps(hg,{generate:()=>wg,name:()=>pg,parse:()=>gg,structure:()=>ug});var pg="MediaQueryList",ug={children:[["MediaQuery"]]};function gg(){let n=this.createList();for(this.skipSC();!this.eof&&(n.push(this.MediaQuery()),18===this.tokenType);)this.next();return{type:"MediaQueryList",loc:this.getLocationFromList(n),children:n}}function wg(n){this.children(n,()=>this.token(18,","))}var bg={};ps(bg,{generate:()=>Sg,name:()=>yg,parse:()=>vg,structure:()=>kg});var fg=38,yg="NestingSelector",kg={};function vg(){let n=this.tokenStart;return this.eatDelim(fg),{type:"NestingSelector",loc:this.getLocation(n,this.tokenStart)}}function Sg(){this.token(9,"&")}var jg={};ps(jg,{generate:()=>Lg,name:()=>xg,parse:()=>Ag,structure:()=>Cg});var xg="Nth",Cg={nth:["AnPlusB","Identifier"],selector:["SelectorList",null]};function Ag(){this.skipSC();let n,e=this.tokenStart,t=e,a=null;return n=this.lookupValue(0,"odd")||this.lookupValue(0,"even")?this.Identifier():this.AnPlusB(),t=this.tokenStart,this.skipSC(),this.lookupValue(0,"of")&&(this.next(),a=this.SelectorList(),t=this.tokenStart),{type:"Nth",loc:this.getLocation(e,t),nth:n,selector:a}}function Lg(n){this.node(n.nth),null!==n.selector&&(this.token(1,"of"),this.node(n.selector))}var zg={};ps(zg,{generate:()=>Ig,name:()=>Tg,parse:()=>Rg,structure:()=>Eg});var Tg="Number",Eg={value:String};function Rg(){return{type:"Number",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consume(10)}}function Ig(n){this.token(10,n.value)}var Dg={};ps(Dg,{generate:()=>_g,name:()=>Mg,parse:()=>Ng,structure:()=>Pg});var Mg="Operator",Pg={value:String};function Ng(){let n=this.tokenStart;return this.next(),{type:"Operator",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n)}}function _g(n){this.tokenize(n.value)}var Bg={};ps(Bg,{generate:()=>qg,name:()=>Og,parse:()=>Ug,structure:()=>Fg});var Og="Parentheses",Fg={children:[[]]};function Ug(n,e){let t=this.tokenStart,a=null;return this.eat(21),a=n.call(this,e),this.eof||this.eat(22),{type:"Parentheses",loc:this.getLocation(t,this.tokenStart),children:a}}function qg(n){this.token(21,"("),this.children(n),this.token(22,")")}var Hg={};ps(Hg,{generate:()=>Kg,name:()=>Wg,parse:()=>Vg,structure:()=>Gg});var Wg="Percentage",Gg={value:String};function Vg(){return{type:"Percentage",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:this.consumeNumber(11)}}function Kg(n){this.token(11,n.value+"%")}var Jg={};ps(Jg,{generate:()=>Qg,name:()=>Yg,parse:()=>Xg,structure:()=>$g,walkContext:()=>Zg});var Yg="PseudoClassSelector",Zg="function",$g={name:String,children:[["Raw"],null]};function Xg(){let n,e,t=this.tokenStart,a=null;return this.eat(16),2===this.tokenType?(n=this.consumeFunctionName(),e=n.toLowerCase(),22==this.lookupNonWSType(0)?a=this.createList():hasOwnProperty.call(this.pseudo,e)?(this.skipSC(),a=this.pseudo[e].call(this),this.skipSC()):(a=this.createList(),a.push(this.Raw(null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoClassSelector",loc:this.getLocation(t,this.tokenStart),name:n,children:a}}function Qg(n){this.token(16,":"),null===n.children?this.token(1,n.name):(this.token(2,n.name+"("),this.children(n),this.token(22,")"))}var nw={};ps(nw,{generate:()=>iw,name:()=>ew,parse:()=>ow,structure:()=>aw,walkContext:()=>tw});var ew="PseudoElementSelector",tw="function",aw={name:String,children:[["Raw"],null]};function ow(){let n,e,t=this.tokenStart,a=null;return this.eat(16),this.eat(16),2===this.tokenType?(n=this.consumeFunctionName(),e=n.toLowerCase(),22==this.lookupNonWSType(0)?a=this.createList():hasOwnProperty.call(this.pseudo,e)?(this.skipSC(),a=this.pseudo[e].call(this),this.skipSC()):(a=this.createList(),a.push(this.Raw(null,!1))),this.eat(22)):n=this.consume(1),{type:"PseudoElementSelector",loc:this.getLocation(t,this.tokenStart),name:n,children:a}}function iw(n){this.token(16,":"),this.token(16,":"),null===n.children?this.token(1,n.name):(this.token(2,n.name+"("),this.children(n),this.token(22,")"))}var rw={};ps(rw,{generate:()=>hw,name:()=>cw,parse:()=>mw,structure:()=>dw});var sw=47;function lw(){switch(this.skipSC(),this.tokenType){case 10:return this.Number();case 2:return this.Function(this.readSequence,this.scope.Value);default:this.error("Number of function is expected")}}var cw="Ratio",dw={left:["Number","Function"],right:["Number","Function",null]};function mw(){let n=this.tokenStart,e=lw.call(this),t=null;return this.skipSC(),this.isDelim(sw)&&(this.eatDelim(sw),t=lw.call(this)),{type:"Ratio",loc:this.getLocation(n,this.tokenStart),left:e,right:t}}function hw(n){this.node(n.left),this.token(9,"/"),n.right?this.node(n.right):this.node(10,1)}var pw={};function uw(){return this.tokenIndex>0&&13===this.lookupType(-1)?this.tokenIndex>1?this.getTokenStart(this.tokenIndex-1):this.firstCharOffset:this.tokenStart}ps(pw,{generate:()=>fw,name:()=>gw,parse:()=>bw,structure:()=>ww});var gw="Raw",ww={value:String};function bw(n,e){let t,a=this.getTokenStart(this.tokenIndex);return this.skipUntilBalanced(this.tokenIndex,n||this.consumeUntilBalanceEnd),t=e&&this.tokenStart>a?uw.call(this):this.tokenStart,{type:"Raw",loc:this.getLocation(a,t),value:this.substring(a,t)}}function fw(n){this.tokenize(n.value)}var yw={};function kw(){return this.Raw(this.consumeUntilLeftCurlyBracket,!0)}function vw(){let n=this.SelectorList();return"Raw"!==n.type&&!1===this.eof&&23!==this.tokenType&&this.error(),n}ps(yw,{generate:()=>Aw,name:()=>Sw,parse:()=>Cw,structure:()=>xw,walkContext:()=>jw});var Sw="Rule",jw="rule",xw={prelude:["SelectorList","Raw"],block:["Block"]};function Cw(){let n,e,t=this.tokenIndex,a=this.tokenStart;return n=this.parseRulePrelude?this.parseWithFallback(vw,kw):kw.call(this,t),e=this.Block(!0),{type:"Rule",loc:this.getLocation(a,this.tokenStart),prelude:n,block:e}}function Aw(n){this.node(n.prelude),this.node(n.block)}var Lw={};ps(Lw,{generate:()=>Rw,name:()=>zw,parse:()=>Ew,structure:()=>Tw});var zw="Scope",Tw={root:["SelectorList","Raw",null],limit:["SelectorList","Raw",null]};function Ew(){let n=null,e=null;this.skipSC();let t=this.tokenStart;return 21===this.tokenType&&(this.next(),this.skipSC(),n=this.parseWithFallback(this.SelectorList,()=>this.Raw(!1,!0)),this.skipSC(),this.eat(22)),1===this.lookupNonWSType(0)&&(this.skipSC(),this.eatIdent("to"),this.skipSC(),this.eat(21),this.skipSC(),e=this.parseWithFallback(this.SelectorList,()=>this.Raw(!1,!0)),this.skipSC(),this.eat(22)),{type:"Scope",loc:this.getLocation(t,this.tokenStart),root:n,limit:e}}function Rw(n){n.root&&(this.token(21,"("),this.node(n.root),this.token(22,")")),n.limit&&(this.token(1,"to"),this.token(21,"("),this.node(n.limit),this.token(22,")"))}var Iw={};ps(Iw,{generate:()=>Nw,name:()=>Dw,parse:()=>Pw,structure:()=>Mw});var Dw="Selector",Mw={children:[["TypeSelector","IdSelector","ClassSelector","AttributeSelector","PseudoClassSelector","PseudoElementSelector","Combinator"]]};function Pw(){let n=this.readSequence(this.scope.Selector);return null===this.getFirstListNode(n)&&this.error("Selector is expected"),{type:"Selector",loc:this.getLocationFromList(n),children:n}}function Nw(n){this.children(n)}var _w={};ps(_w,{generate:()=>qw,name:()=>Bw,parse:()=>Uw,structure:()=>Fw,walkContext:()=>Ow});var Bw="SelectorList",Ow="selector",Fw={children:[["Selector","Raw"]]};function Uw(){let n=this.createList();for(;!this.eof&&(n.push(this.Selector()),18===this.tokenType);)this.next();return{type:"SelectorList",loc:this.getLocationFromList(n),children:n}}function qw(n){this.children(n,()=>this.token(18,","))}var Hw={};ps(Hw,{generate:()=>Qw,name:()=>Zw,parse:()=>Xw,structure:()=>$w});var Ww={};ps(Ww,{decode:()=>Jw,encode:()=>Yw});var Gw=92,Vw=34,Kw=39;function Jw(n){let e=n.length,t=n.charCodeAt(0),a=t===Vw||t===Kw?1:0,o=1===a&&e>1&&n.charCodeAt(e-1)===t?e-2:e-1,i="";for(let t=a;t<=o;t++){let a=n.charCodeAt(t);if(a===Gw){if(t===o){t!==e-1&&(i=n.substr(t+1));break}if(a=n.charCodeAt(++t),el(Gw,a)){let e=t-1,a=ul(n,e);t=a-1,i+=fl(n.substring(e+1,a))}else 13===a&&10===n.charCodeAt(t+1)&&t++}else i+=n[t]}return i}function Yw(n,e){let t=e?"'":'"',a=e?Kw:Vw,o="",i=!1;for(let e=0;e<n.length;e++){let t=n.charCodeAt(e);0!==t?t<=31||127===t?(o+="\\"+t.toString(16),i=!0):t===a||t===Gw?(o+="\\"+n.charAt(e),i=!1):(i&&(Js(t)||nl(t))&&(o+=" "),o+=n.charAt(e),i=!1):o+="�"}return t+o+t}var Zw="String",$w={value:String};function Xw(){return{type:"String",loc:this.getLocation(this.tokenStart,this.tokenEnd),value:Jw(this.consume(5))}}function Qw(n){this.token(5,Yw(n.value))}var nb={};ps(nb,{generate:()=>sb,name:()=>ab,parse:()=>rb,structure:()=>ib,walkContext:()=>ob});var eb=33;function tb(){return this.Raw(null,!1)}var ab="StyleSheet",ob="stylesheet",ib={children:[["Comment","CDO","CDC","Atrule","Rule","Raw"]]};function rb(){let n,e=this.tokenStart,t=this.createList();for(;!this.eof;){switch(this.tokenType){case 13:this.next();continue;case 25:if(this.charCodeAt(this.tokenStart+2)!==eb){this.next();continue}n=this.Comment();break;case 14:n=this.CDO();break;case 15:n=this.CDC();break;case 3:n=this.parseWithFallback(this.Atrule,tb);break;default:n=this.parseWithFallback(this.Rule,tb)}t.push(n)}return{type:"StyleSheet",loc:this.getLocation(e,this.tokenStart),children:t}}function sb(n){this.children(n)}var lb={};ps(lb,{generate:()=>hb,name:()=>cb,parse:()=>mb,structure:()=>db});var cb="SupportsDeclaration",db={declaration:"Declaration"};function mb(){let n=this.tokenStart;this.eat(21),this.skipSC();let e=this.Declaration();return this.eof||this.eat(22),{type:"SupportsDeclaration",loc:this.getLocation(n,this.tokenStart),declaration:e}}function hb(n){this.token(21,"("),this.node(n.declaration),this.token(22,")")}var pb={};ps(pb,{generate:()=>kb,name:()=>bb,parse:()=>yb,structure:()=>fb});var ub=42,gb=124;function wb(){1!==this.tokenType&&!1===this.isDelim(ub)&&this.error("Identifier or asterisk is expected"),this.next()}var bb="TypeSelector",fb={name:String};function yb(){let n=this.tokenStart;return this.isDelim(gb)?(this.next(),wb.call(this)):(wb.call(this),this.isDelim(gb)&&(this.next(),wb.call(this))),{type:"TypeSelector",loc:this.getLocation(n,this.tokenStart),name:this.substrToCursor(n)}}function kb(n){this.tokenize(n.name)}var vb={};ps(vb,{generate:()=>Ib,name:()=>Tb,parse:()=>Rb,structure:()=>Eb});var Sb=43,jb=45,xb=63;function Cb(n,e){let t=0;for(let a=this.tokenStart+n;a<this.tokenEnd;a++){let o=this.charCodeAt(a);if(o===jb&&e&&0!==t)return Cb.call(this,n+t+1,!1),-1;Js(o)||this.error(e&&0!==t?"Hyphen minus"+(t<6?" or hex digit":"")+" is expected":t<6?"Hex digit is expected":"Unexpected input",a),++t>6&&this.error("Too many hex digits",a)}return this.next(),t}function Ab(n){let e=0;for(;this.isDelim(xb);)++e>n&&this.error("Too many question marks"),this.next()}function Lb(n){this.charCodeAt(this.tokenStart)!==n&&this.error((n===Sb?"Plus sign":"Hyphen minus")+" is expected")}function zb(){let n=0;switch(this.tokenType){case 10:if(n=Cb.call(this,1,!0),this.isDelim(xb)){Ab.call(this,6-n);break}if(12===this.tokenType||10===this.tokenType){Lb.call(this,jb),Cb.call(this,1,!1);break}break;case 12:n=Cb.call(this,1,!0),n>0&&Ab.call(this,6-n);break;default:if(this.eatDelim(Sb),1===this.tokenType){n=Cb.call(this,0,!0),n>0&&Ab.call(this,6-n);break}if(this.isDelim(xb)){this.next(),Ab.call(this,5);break}this.error("Hex digit or question mark is expected")}}var Tb="UnicodeRange",Eb={value:String};function Rb(){let n=this.tokenStart;return this.eatIdent("u"),zb.call(this),{type:"UnicodeRange",loc:this.getLocation(n,this.tokenStart),value:this.substrToCursor(n)}}function Ib(n){this.tokenize(n.value)}var Db={};ps(Db,{generate:()=>Vb,name:()=>Hb,parse:()=>Gb,structure:()=>Wb});var Mb={};ps(Mb,{decode:()=>Ub,encode:()=>qb});var Pb=32,Nb=92,_b=34,Bb=39,Ob=40,Fb=41;function Ub(n){let e=n.length,t=4,a=n.charCodeAt(e-1)===Fb?e-2:e-1,o="";for(;t<a&&nl(n.charCodeAt(t));)t++;for(;t<a&&nl(n.charCodeAt(a));)a--;for(let i=t;i<=a;i++){let t=n.charCodeAt(i);if(t===Nb){if(i===a){i!==e-1&&(o=n.substr(i+1));break}if(t=n.charCodeAt(++i),el(Nb,t)){let e=i-1,t=ul(n,e);i=t-1,o+=fl(n.substring(e+1,t))}else 13===t&&10===n.charCodeAt(i+1)&&i++}else o+=n[i]}return o}function qb(n){let e="",t=!1;for(let a=0;a<n.length;a++){let o=n.charCodeAt(a);0!==o?o<=31||127===o?(e+="\\"+o.toString(16),t=!0):o===Pb||o===Nb||o===_b||o===Bb||o===Ob||o===Fb?(e+="\\"+n.charAt(a),t=!1):(t&&Js(o)&&(e+=" "),e+=n.charAt(a),t=!1):e+="�"}return"url("+e+")"}var Hb="Url",Wb={value:String};function Gb(){let n,e=this.tokenStart;switch(this.tokenType){case 7:n=Ub(this.consume(7));break;case 2:this.cmpStr(this.tokenStart,this.tokenEnd,"url(")||this.error("Function name must be `url`"),this.eat(2),this.skipSC(),n=Jw(this.consume(5)),this.skipSC(),this.eof||this.eat(22);break;default:this.error("Url or Function is expected")}return{type:"Url",loc:this.getLocation(e,this.tokenStart),value:n}}function Vb(n){this.token(7,qb(n.value))}var Kb={};ps(Kb,{generate:()=>$b,name:()=>Jb,parse:()=>Zb,structure:()=>Yb});var Jb="Value",Yb={children:[[]]};function Zb(){let n=this.tokenStart,e=this.readSequence(this.scope.Value);return{type:"Value",loc:this.getLocation(n,this.tokenStart),children:e}}function $b(n){this.children(n)}var Xb={};ps(Xb,{generate:()=>af,name:()=>nf,parse:()=>tf,structure:()=>ef});var Qb=Object.freeze({type:"WhiteSpace",loc:null,value:" "}),nf="WhiteSpace",ef={value:String};function tf(){return this.eat(13),Qb}function af(n){this.token(13,n.value)}var of={generic:!0,cssWideKeywords:Sc,generic:!0,cssWideKeywords:["initial","inherit","unset","revert","revert-layer"],units:{angle:["deg","grad","rad","turn"],decibel:["db"],flex:["fr"],frequency:["hz","khz"],length:["cm","mm","q","in","pt","pc","px","em","rem","ex","rex","cap","rcap","ch","rch","ic","ric","lh","rlh","vw","svw","lvw","dvw","vh","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","cqw","cqh","cqi","cqb","cqmin","cqmax"],resolution:["dpi","dpcm","dppx","x"],semitones:["st"],time:["s","ms"]},types:{"abs()":"abs( <calc-sum> )","absolute-size":"xx-small|x-small|small|medium|large|x-large|xx-large|xxx-large","acos()":"acos( <calc-sum> )","alpha-value":"<number>|<percentage>","an+b":"odd|even|<integer>|<n-dimension>|'+'? † n|-n|<ndashdigit-dimension>|'+'? † <ndashdigit-ident>|<dashndashdigit-ident>|<n-dimension> <signed-integer>|'+'? † n <signed-integer>|-n <signed-integer>|<ndash-dimension> <signless-integer>|'+'? † n- <signless-integer>|-n- <signless-integer>|<n-dimension> ['+'|'-'] <signless-integer>|'+'? † n ['+'|'-'] <signless-integer>|-n ['+'|'-'] <signless-integer>","anchor()":"anchor( <anchor-name>?&&<anchor-side> , <length-percentage>? )","anchor-name":"<dashed-ident>","anchor-side":"inside|outside|top|left|right|bottom|start|end|self-start|self-end|<percentage>|center","anchor-size":"width|height|block|inline|self-block|self-inline","anchor-size()":"anchor-size( [<anchor-name>||<anchor-size>]? , <length-percentage>? )","angle-percentage":"<angle>|<percentage>","angular-color-hint":"<angle-percentage>|<zero>","angular-color-stop":"<color> <color-stop-angle>?","angular-color-stop-list":"<angular-color-stop> , [<angular-color-hint>? , <angular-color-stop>]#?","animateable-feature":"scroll-position|contents|<custom-ident>","asin()":"asin( <calc-sum> )","atan()":"atan( <calc-sum> )","atan2()":"atan2( <calc-sum> , <calc-sum> )",attachment:"scroll|fixed|local","attr()":"attr( <attr-name> <type-or-unit>? [, <attr-fallback>]? )","attr-matcher":"['~'|'|'|'^'|'$'|'*']? '='","attr-modifier":"i|s","attribute-selector":"'[' <wq-name> ']'|'[' <wq-name> <attr-matcher> [<string-token>|<ident-token>] <attr-modifier>? ']'","auto-repeat":"repeat( [auto-fill|auto-fit] , [<line-names>? <fixed-size>]+ <line-names>? )","auto-track-list":"[<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>? <auto-repeat> [<line-names>? [<fixed-size>|<fixed-repeat>]]* <line-names>?",axis:"block|inline|x|y","baseline-position":"[first|last]? baseline","basic-shape":"<inset()>|<xywh()>|<rect()>|<circle()>|<ellipse()>|<polygon()>|<path()>","basic-shape-rect":"<inset()>|<rect()>|<xywh()>","bg-clip":"<visual-box>|border-area|text","bg-image":"none|<image>","bg-layer":"<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<visual-box>||<visual-box>","bg-position":"[[left|center|right|top|bottom|<length-percentage>]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]|[center|[left|right] <length-percentage>?]&&[center|[top|bottom] <length-percentage>?]]","bg-size":"[<length-percentage>|auto]{1,2}|cover|contain","blend-mode":"normal|multiply|screen|overlay|darken|lighten|color-dodge|color-burn|hard-light|soft-light|difference|exclusion|hue|saturation|color|luminosity","blur()":"blur( <length>? )","brightness()":"brightness( [<number>|<percentage>]? )","calc()":"calc( <calc-sum> )","calc-constant":"e|pi|infinity|-infinity|NaN","calc-product":"<calc-value> ['*' <calc-value>|'/' <number>]*","calc-size()":"calc-size( <calc-size-basis> , <calc-sum> )","calc-size-basis":"<intrinsic-size-keyword>|<calc-size()>|any|<calc-sum>","calc-sum":"<calc-product> [['+'|'-'] <calc-product>]*","calc-value":"<number>|<dimension>|<percentage>|<calc-constant>|( <calc-sum> )","cf-final-image":"<image>|<color>","cf-mixing-image":"<percentage>?&&<image>","circle()":"circle( <radial-size>? [at <position>]? )","clamp()":"clamp( <calc-sum>#{3} )","class-selector":"'.' <ident-token>","clip-source":"<url>",color:"<color-base>|currentColor|<system-color>|<device-cmyk()>|<light-dark()>|<-non-standard-color>","color()":"color( <colorspace-params> [/ [<alpha-value>|none]]? )","color-base":"<hex-color>|<color-function>|<named-color>|<color-mix()>|transparent","color-function":"<rgb()>|<rgba()>|<hsl()>|<hsla()>|<hwb()>|<lab()>|<lch()>|<oklab()>|<oklch()>|<color()>","color-interpolation-method":"in [<rectangular-color-space>|<polar-color-space> <hue-interpolation-method>?|<custom-color-space>]","color-mix()":"color-mix( <color-interpolation-method> , [<color>&&<percentage [0,100]>?]#{2} )","color-stop":"<color-stop-length>|<color-stop-angle>","color-stop-angle":"[<angle-percentage>|<zero>]{1,2}","color-stop-length":"<length-percentage>{1,2}","color-stop-list":"<linear-color-stop> , [<linear-color-hint>? , <linear-color-stop>]#?","colorspace-params":"[<predefined-rgb-params>|<xyz-params>]",combinator:"'>'|'+'|'~'|['|' '|']","common-lig-values":"[common-ligatures|no-common-ligatures]","compat-auto":"searchfield|textarea|push-button|slider-horizontal|checkbox|radio|square-button|menulist|listbox|meter|progress-bar|button","complex-selector":"<complex-selector-unit> [<combinator>? <complex-selector-unit>]*","complex-selector-list":"<complex-selector>#","composite-style":"clear|copy|source-over|source-in|source-out|source-atop|destination-over|destination-in|destination-out|destination-atop|xor","compositing-operator":"add|subtract|intersect|exclude","compound-selector":"[<type-selector>? <subclass-selector>*]!","compound-selector-list":"<compound-selector>#","conic-gradient()":"conic-gradient( [<conic-gradient-syntax>] )","conic-gradient-syntax":"[[[from [<angle>|<zero>]]? [at <position>]?]||<color-interpolation-method>]? , <angular-color-stop-list>","container-condition":"not <query-in-parens>|<query-in-parens> [[and <query-in-parens>]*|[or <query-in-parens>]*]","container-name":"<custom-ident>","container-query":"not <query-in-parens>|<query-in-parens> [[and <query-in-parens>]*|[or <query-in-parens>]*]","content-distribution":"space-between|space-around|space-evenly|stretch","content-list":"[<string>|contents|<image>|<counter>|<quote>|<target>|<leader()>|<attr()>]+","content-position":"center|start|end|flex-start|flex-end","content-replacement":"<image>","contextual-alt-values":"[contextual|no-contextual]","contrast()":"contrast( [<number>|<percentage>]? )","coord-box":"content-box|padding-box|border-box|fill-box|stroke-box|view-box","cos()":"cos( <calc-sum> )",counter:"<counter()>|<counters()>","counter()":"counter( <counter-name> , <counter-style>? )","counter-name":"<custom-ident>","counter-style":"<counter-style-name>|symbols( )","counter-style-name":"<custom-ident>","counters()":"counters( <counter-name> , <string> , <counter-style>? )","cross-fade()":"cross-fade( <cf-mixing-image> , <cf-final-image>? )","cubic-bezier()":"cubic-bezier( [<number [0,1]> , <number>]#{2} )","cubic-bezier-timing-function":"ease|ease-in|ease-out|ease-in-out|<cubic-bezier()>","custom-color-space":"<dashed-ident>","custom-params":"<dashed-ident> [<number>|<percentage>|none]+",dasharray:"[[<length-percentage>|<number>]+]#","dashndashdigit-ident":"<ident-token>","deprecated-system-color":"ActiveBorder|ActiveCaption|AppWorkspace|Background|ButtonHighlight|ButtonShadow|CaptionText|InactiveBorder|InactiveCaption|InactiveCaptionText|InfoBackground|InfoText|Menu|MenuText|Scrollbar|ThreeDDarkShadow|ThreeDFace|ThreeDHighlight|ThreeDLightShadow|ThreeDShadow|Window|WindowFrame|WindowText","discretionary-lig-values":"[discretionary-ligatures|no-discretionary-ligatures]","display-box":"contents|none","display-inside":"flow|flow-root|table|flex|grid|ruby","display-internal":"table-row-group|table-header-group|table-footer-group|table-row|table-cell|table-column-group|table-column|table-caption|ruby-base|ruby-text|ruby-base-container|ruby-text-container","display-legacy":"inline-block|inline-list-item|inline-table|inline-flex|inline-grid","display-listitem":"<display-outside>?&&[flow|flow-root]?&&list-item","display-outside":"block|inline|run-in","drop-shadow()":"drop-shadow( [<color>?&&<length>{2,3}] )","easing-function":"<linear-easing-function>|<cubic-bezier-easing-function>|<step-easing-function>","east-asian-variant-values":"[jis78|jis83|jis90|jis04|simplified|traditional]","east-asian-width-values":"[full-width|proportional-width]","element()":"element( <custom-ident> , [first|start|last|first-except]? )|element( <id-selector> )","ellipse()":"ellipse( <radial-size>? [at <position>]? )","env()":"env( <custom-ident> , <declaration-value>? )","exp()":"exp( <calc-sum> )","explicit-track-list":"[<line-names>? <track-size>]+ <line-names>?","family-name":"<string>|<custom-ident>+","feature-tag-value":"<string> [<integer>|on|off]?","feature-type":"@stylistic|@historical-forms|@styleset|@character-variant|@swash|@ornaments|@annotation","feature-value-block":"<feature-type> '{' <feature-value-declaration-list> '}'","feature-value-block-list":"<feature-value-block>+","feature-value-declaration":"<custom-ident> : <integer>+ ;","feature-value-declaration-list":"<feature-value-declaration>","feature-value-name":"<custom-ident>","filter-function":"<blur()>|<brightness()>|<contrast()>|<drop-shadow()>|<grayscale()>|<hue-rotate()>|<invert()>|<opacity()>|<saturate()>|<sepia()>","filter-value-list":"[<filter-function>|<url>]+","final-bg-layer":"<'background-color'>||<bg-image>||<bg-position> [/ <bg-size>]?||<repeat-style>||<attachment>||<visual-box>||<visual-box>","fit-content()":"fit-content( <length-percentage [0,∞]> )","fixed-breadth":"<length-percentage>","fixed-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <fixed-size>]+ <line-names>? )","fixed-size":"<fixed-breadth>|minmax( <fixed-breadth> , <track-breadth> )|minmax( <inflexible-breadth> , <fixed-breadth> )","font-stretch-absolute":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded|<percentage>","font-variant-css21":"[normal|small-caps]","font-weight-absolute":"normal|bold|<number [1,1000]>","form-control-identifier":"select","frequency-percentage":"<frequency>|<percentage>","generic-complete":"serif|sans-serif|system-ui|cursive|fantasy|math|monospace","general-enclosed":"[<function-token> <any-value>? )]|[( <any-value>? )]","generic-family":"<generic-script-specific>|<generic-complete>|<generic-incomplete>|<-non-standard-generic-family>","generic-incomplete":"ui-serif|ui-sans-serif|ui-monospace|ui-rounded","geometry-box":"<shape-box>|fill-box|stroke-box|view-box",gradient:"<linear-gradient()>|<repeating-linear-gradient()>|<radial-gradient()>|<repeating-radial-gradient()>|<conic-gradient()>|<repeating-conic-gradient()>|<-legacy-gradient>","grayscale()":"grayscale( [<number>|<percentage>]? )","grid-line":"auto|<custom-ident>|[<integer>&&<custom-ident>?]|[span&&[<integer>||<custom-ident>]]","historical-lig-values":"[historical-ligatures|no-historical-ligatures]","hsl()":"hsl( <hue> , <percentage> , <percentage> , <alpha-value>? )|hsl( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","hsla()":"hsla( <hue> , <percentage> , <percentage> , <alpha-value>? )|hsla( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )",hue:"<number>|<angle>","hue-interpolation-method":"[shorter|longer|increasing|decreasing] hue","hue-rotate()":"hue-rotate( [<angle>|<zero>]? )","hwb()":"hwb( [<hue>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","hypot()":"hypot( <calc-sum># )",image:"<url>|<image()>|<image-set()>|<element()>|<paint()>|<cross-fade()>|<gradient>","image()":"image( <image-tags>? [<image-src>? , <color>?]! )","image-set()":"image-set( <image-set-option># )","image-set-option":"[<image>|<string>] [<resolution>||type( <string> )]","image-src":"<url>|<string>","image-tags":"ltr|rtl","inflexible-breadth":"<length-percentage>|min-content|max-content|auto","inset()":"inset( <length-percentage>{1,4} [round <'border-radius'>]? )","invert()":"invert( [<number>|<percentage>]? )","keyframe-block":"<keyframe-selector># { <declaration-list> }","keyframe-selector":"from|to|<percentage [0,100]>|<timeline-range-name> <percentage>","keyframes-name":"<custom-ident>|<string>","lab()":"lab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","layer()":"layer( <layer-name> )","layer-name":"<ident> ['.' <ident>]*","lch()":"lch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","leader()":"leader( <leader-type> )","leader-type":"dotted|solid|space|<string>","length-percentage":"<length>|<percentage>","light-dark()":"light-dark( <color> , <color> )","line-name-list":"[<line-names>|<name-repeat>]+","line-names":"'[' <custom-ident>* ']'","line-style":"none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset","line-width":"<length>|thin|medium|thick","linear()":"linear( [<number>&&<percentage>{0,2}]# )","linear-color-hint":"<length-percentage>","linear-color-stop":"<color> <color-stop-length>?","linear-easing-function":"linear|<linear()>","linear-gradient()":"linear-gradient( [<linear-gradient-syntax>] )","linear-gradient-syntax":"[[<angle>|<zero>|to <side-or-corner>]||<color-interpolation-method>]? , <color-stop-list>","log()":"log( <calc-sum> , <calc-sum>? )","mask-layer":"<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||<geometry-box>||[<geometry-box>|no-clip]||<compositing-operator>||<masking-mode>","mask-position":"[<length-percentage>|left|center|right] [<length-percentage>|top|center|bottom]?","mask-reference":"none|<image>|<mask-source>","mask-source":"<url>","masking-mode":"alpha|luminance|match-source","matrix()":"matrix( <number>#{6} )","matrix3d()":"matrix3d( <number>#{16} )","max()":"max( <calc-sum># )","media-and":"<media-in-parens> [and <media-in-parens>]+","media-condition":"<media-not>|<media-and>|<media-or>|<media-in-parens>","media-condition-without-or":"<media-not>|<media-and>|<media-in-parens>","media-feature":"( [<mf-plain>|<mf-boolean>|<mf-range>] )","media-in-parens":"( <media-condition> )|<media-feature>|<general-enclosed>","media-not":"not <media-in-parens>","media-or":"<media-in-parens> [or <media-in-parens>]+","media-query":"<media-condition>|[not|only]? <media-type> [and <media-condition-without-or>]?","media-query-list":"<media-query>#","media-type":"<ident>","mf-boolean":"<mf-name>","mf-name":"<ident>","mf-plain":"<mf-name> : <mf-value>","mf-range":"<mf-name> ['<'|'>']? '='? <mf-value>|<mf-value> ['<'|'>']? '='? <mf-name>|<mf-value> '<' '='? <mf-name> '<' '='? <mf-value>|<mf-value> '>' '='? <mf-name> '>' '='? <mf-value>","mf-value":"<number>|<dimension>|<ident>|<ratio>","min()":"min( <calc-sum># )","minmax()":"minmax( [<length-percentage>|min-content|max-content|auto] , [<length-percentage>|<flex>|min-content|max-content|auto] )","mod()":"mod( <calc-sum> , <calc-sum> )","n-dimension":"<dimension-token>","name-repeat":"repeat( [<integer [1,∞]>|auto-fill] , <line-names>+ )","named-color":"aliceblue|antiquewhite|aqua|aquamarine|azure|beige|bisque|black|blanchedalmond|blue|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|fuchsia|gainsboro|ghostwhite|gold|goldenrod|gray|green|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|lime|limegreen|linen|magenta|maroon|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|navy|oldlace|olive|olivedrab|orange|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|purple|rebeccapurple|red|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|silver|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|teal|thistle|tomato|turquoise|violet|wheat|white|whitesmoke|yellow|yellowgreen","namespace-prefix":"<ident>","ndash-dimension":"<dimension-token>","ndashdigit-dimension":"<dimension-token>","ndashdigit-ident":"<ident-token>","ns-prefix":"[<ident-token>|'*']? '|'","number-percentage":"<number>|<percentage>","numeric-figure-values":"[lining-nums|oldstyle-nums]","numeric-fraction-values":"[diagonal-fractions|stacked-fractions]","numeric-spacing-values":"[proportional-nums|tabular-nums]","offset-path":"<ray()>|<url>|<basic-shape>","oklab()":"oklab( [<percentage>|<number>|none] [<percentage>|<number>|none] [<percentage>|<number>|none] [/ [<alpha-value>|none]]? )","oklch()":"oklch( [<percentage>|<number>|none] [<percentage>|<number>|none] [<hue>|none] [/ [<alpha-value>|none]]? )","opacity()":"opacity( [<number>|<percentage>]? )","opacity-value":"<number>|<percentage>","outline-line-style":"none|dotted|dashed|solid|double|groove|ridge|inset|outset","outline-radius":"<length>|<percentage>","overflow-position":"unsafe|safe","page-body":"<declaration>? [; <page-body>]?|<page-margin-box> <page-body>","page-margin-box":"<page-margin-box-type> '{' <declaration-list> '}'","page-margin-box-type":"@top-left-corner|@top-left|@top-center|@top-right|@top-right-corner|@bottom-left-corner|@bottom-left|@bottom-center|@bottom-right|@bottom-right-corner|@left-top|@left-middle|@left-bottom|@right-top|@right-middle|@right-bottom","page-selector":"<pseudo-page>+|<ident> <pseudo-page>*","page-selector-list":"[<page-selector>#]?","page-size":"A5|A4|A3|B5|B4|JIS-B5|JIS-B4|letter|legal|ledger",paint:"none|<color>|<url> [none|<color>]?|context-fill|context-stroke","paint()":"paint( <ident> , <declaration-value>? )","paint-box":"<visual-box>|fill-box|stroke-box","palette-identifier":"<dashed-ident>","palette-mix()":"palette-mix( <color-interpolation-method> , [[normal|light|dark|<palette-identifier>|<palette-mix()>]&&<percentage [0,100]>?]#{2} )","path()":"path( <'fill-rule'>? , <string> )","perspective()":"perspective( [<length [0,∞]>|none] )","polar-color-space":"hsl|hwb|lch|oklch","polygon()":"polygon( <'fill-rule'>? , [<length-percentage> <length-percentage>]# )",position:"[[left|center|right]||[top|center|bottom]|[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]?|[[left|right] <length-percentage>]&&[[top|bottom] <length-percentage>]]","position-area":"[[left|center|right|span-left|span-right|x-start|x-end|span-x-start|span-x-end|x-self-start|x-self-end|span-x-self-start|span-x-self-end|span-all]||[top|center|bottom|span-top|span-bottom|y-start|y-end|span-y-start|span-y-end|y-self-start|y-self-end|span-y-self-start|span-y-self-end|span-all]|[block-start|center|block-end|span-block-start|span-block-end|span-all]||[inline-start|center|inline-end|span-inline-start|span-inline-end|span-all]|[self-block-start|center|self-block-end|span-self-block-start|span-self-block-end|span-all]||[self-inline-start|center|self-inline-end|span-self-inline-start|span-self-inline-end|span-all]|[start|center|end|span-start|span-end|span-all]{1,2}|[self-start|center|self-end|span-self-start|span-self-end|span-all]{1,2}]","pow()":"pow( <calc-sum> , <calc-sum> )","predefined-rgb":"srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020","predefined-rgb-params":"<predefined-rgb> [<number>|<percentage>|none]{3}","pseudo-class-selector":"':' <ident-token>|':' <function-token> <any-value> ')'","pseudo-element-selector":"':' <pseudo-class-selector>|<legacy-pseudo-element-selector>","pseudo-page":": [left|right|first|blank]","query-in-parens":"( <container-condition> )|( <size-feature> )|style( <style-query> )|<general-enclosed>",quote:"open-quote|close-quote|no-open-quote|no-close-quote","radial-extent":"closest-corner|closest-side|farthest-corner|farthest-side","radial-gradient()":"radial-gradient( [<radial-gradient-syntax>] )","radial-gradient-syntax":"[[[<radial-shape>||<radial-size>]? [at <position>]?]||<color-interpolation-method>]? , <color-stop-list>","radial-shape":"circle|ellipse","radial-size":"<radial-extent>|<length [0,∞]>|<length-percentage [0,∞]>{2}",ratio:"<number [0,∞]> [/ <number [0,∞]>]?","ray()":"ray( <angle>&&<ray-size>?&&contain?&&[at <position>]? )","ray-size":"closest-side|closest-corner|farthest-side|farthest-corner|sides","rect()":"rect( [<length-percentage>|auto]{4} [round <'border-radius'>]? )","rectangular-color-space":"srgb|srgb-linear|display-p3|a98-rgb|prophoto-rgb|rec2020|lab|oklab|xyz|xyz-d50|xyz-d65","relative-selector":"<combinator>? <complex-selector>","relative-selector-list":"<relative-selector>#","relative-size":"larger|smaller","rem()":"rem( <calc-sum> , <calc-sum> )","repeat-style":"repeat-x|repeat-y|[repeat|space|round|no-repeat]{1,2}","repeating-conic-gradient()":"repeating-conic-gradient( [<conic-gradient-syntax>] )","repeating-linear-gradient()":"repeating-linear-gradient( [<linear-gradient-syntax>] )","repeating-radial-gradient()":"repeating-radial-gradient( [<radial-gradient-syntax>] )","reversed-counter-name":"reversed( <counter-name> )","rgb()":"rgb( <percentage>#{3} , <alpha-value>? )|rgb( <number>#{3} , <alpha-value>? )|rgb( [<number>|<percentage>|none]{3} [/ [<alpha-value>|none]]? )","rgba()":"rgba( <percentage>#{3} , <alpha-value>? )|rgba( <number>#{3} , <alpha-value>? )|rgba( [<number>|<percentage>|none]{3} [/ [<alpha-value>|none]]? )","rotate()":"rotate( [<angle>|<zero>] )","rotate3d()":"rotate3d( <number> , <number> , <number> , [<angle>|<zero>] )","rotateX()":"rotateX( [<angle>|<zero>] )","rotateY()":"rotateY( [<angle>|<zero>] )","rotateZ()":"rotateZ( [<angle>|<zero>] )","round()":"round( <rounding-strategy>? , <calc-sum> , <calc-sum> )","rounding-strategy":"nearest|up|down|to-zero","saturate()":"saturate( [<number>|<percentage>]? )","scale()":"scale( [<number>|<percentage>]#{1,2} )","scale3d()":"scale3d( [<number>|<percentage>]#{3} )","scaleX()":"scaleX( [<number>|<percentage>] )","scaleY()":"scaleY( [<number>|<percentage>] )","scaleZ()":"scaleZ( [<number>|<percentage>] )","scope-end":"<forgiving-selector-list>","scope-start":"<forgiving-selector-list>","scroll()":"scroll( [<scroller>||<axis>]? )",scroller:"root|nearest|self","scroll-state-feature":"<media-query-list>","scroll-state-in-parens":"( <scroll-state-query> )|( <scroll-state-feature> )|<general-enclosed>","scroll-state-query":"not <scroll-state-in-parens>|<scroll-state-in-parens> [[and <scroll-state-in-parens>]*|[or <scroll-state-in-parens>]*]|<scroll-state-feature>","selector-list":"<complex-selector-list>","self-position":"center|start|end|self-start|self-end|flex-start|flex-end","sepia()":"sepia( [<number>|<percentage>]? )",shadow:"inset?&&<length>{2,4}&&<color>?","shadow-t":"[<length>{2,3}&&<color>?]",shape:"rect( <top> , <right> , <bottom> , <left> )|rect( <top> <right> <bottom> <left> )","shape-box":"<visual-box>|margin-box","side-or-corner":"[left|right]||[top|bottom]","sign()":"sign( <calc-sum> )","signed-integer":"<number-token>","signless-integer":"<number-token>","sin()":"sin( <calc-sum> )","single-animation":"<'animation-duration'>||<easing-function>||<'animation-delay'>||<single-animation-iteration-count>||<single-animation-direction>||<single-animation-fill-mode>||<single-animation-play-state>||[none|<keyframes-name>]||<single-animation-timeline>","single-animation-composition":"replace|add|accumulate","single-animation-direction":"normal|reverse|alternate|alternate-reverse","single-animation-fill-mode":"none|forwards|backwards|both","single-animation-iteration-count":"infinite|<number>","single-animation-play-state":"running|paused","single-animation-timeline":"auto|none|<dashed-ident>|<scroll()>|<view()>","single-transition":"[none|<single-transition-property>]||<time>||<easing-function>||<time>||<transition-behavior-value>","single-transition-property":"all|<custom-ident>",size:"closest-side|farthest-side|closest-corner|farthest-corner|<length>|<length-percentage>{2}","size-feature":"<mf-plain>|<mf-boolean>|<mf-range>","skew()":"skew( [<angle>|<zero>] , [<angle>|<zero>]? )","skewX()":"skewX( [<angle>|<zero>] )","skewY()":"skewY( [<angle>|<zero>] )","sqrt()":"sqrt( <calc-sum> )","step-position":"jump-start|jump-end|jump-none|jump-both|start|end","step-easing-function":"step-start|step-end|<steps()>","steps()":"steps( <integer> , <step-position>? )","style-feature":"<declaration>","style-in-parens":"( <style-condition> )|( <style-feature> )|<general-enclosed>","style-query":"<style-condition>|<style-feature>","subclass-selector":"<id-selector>|<class-selector>|<attribute-selector>|<pseudo-class-selector>","supports-condition":"not <supports-in-parens>|<supports-in-parens> [and <supports-in-parens>]*|<supports-in-parens> [or <supports-in-parens>]*","supports-decl":"( <declaration> )","supports-feature":"<supports-decl>|<supports-selector-fn>","supports-in-parens":"( <supports-condition> )|<supports-feature>|<general-enclosed>","supports-selector-fn":"selector( <complex-selector> )",symbol:"<string>|<image>|<custom-ident>","symbols()":"symbols( <symbols-type>? [<string>|<image>]+ )","symbols-type":"cyclic|numeric|alphabetic|symbolic|fixed","system-color":"AccentColor|AccentColorText|ActiveText|ButtonBorder|ButtonFace|ButtonText|Canvas|CanvasText|Field|FieldText|GrayText|Highlight|HighlightText|LinkText|Mark|MarkText|SelectedItem|SelectedItemText|VisitedText","tan()":"tan( <calc-sum> )",target:"<target-counter()>|<target-counters()>|<target-text()>","target-counter()":"target-counter( [<string>|<url>] , <custom-ident> , <counter-style>? )","target-counters()":"target-counters( [<string>|<url>] , <custom-ident> , <string> , <counter-style>? )","target-text()":"target-text( [<string>|<url>] , [content|before|after|first-letter]? )","text-edge":"[text|cap|ex|ideographic|ideographic-ink] [text|alphabetic|ideographic|ideographic-ink]?","time-percentage":"<time>|<percentage>","timeline-range-name":"cover|contain|entry|exit|entry-crossing|exit-crossing","track-breadth":"<length-percentage>|<flex>|min-content|max-content|auto","track-list":"[<line-names>? [<track-size>|<track-repeat>]]+ <line-names>?","track-repeat":"repeat( [<integer [1,∞]>] , [<line-names>? <track-size>]+ <line-names>? )","track-size":"<track-breadth>|minmax( <inflexible-breadth> , <track-breadth> )|fit-content( <length-percentage> )","transform-function":"<matrix()>|<translate()>|<translateX()>|<translateY()>|<scale()>|<scaleX()>|<scaleY()>|<rotate()>|<skew()>|<skewX()>|<skewY()>|<matrix3d()>|<translate3d()>|<translateZ()>|<scale3d()>|<scaleZ()>|<rotate3d()>|<rotateX()>|<rotateY()>|<rotateZ()>|<perspective()>","transform-list":"<transform-function>+","transition-behavior-value":"normal|allow-discrete","translate()":"translate( <length-percentage> , <length-percentage>? )","translate3d()":"translate3d( <length-percentage> , <length-percentage> , <length> )","translateX()":"translateX( <length-percentage> )","translateY()":"translateY( <length-percentage> )","translateZ()":"translateZ( <length> )","try-size":"most-width|most-height|most-block-size|most-inline-size","try-tactic":"flip-block||flip-inline||flip-start","type-or-unit":"string|color|url|integer|number|length|angle|time|frequency|cap|ch|em|ex|ic|lh|rlh|rem|vb|vi|vw|vh|vmin|vmax|mm|Q|cm|in|pt|pc|px|deg|grad|rad|turn|ms|s|Hz|kHz|%","type-selector":"<wq-name>|<ns-prefix>? '*'","var()":"var( <custom-property-name> , <declaration-value>? )","view()":"view( [<axis>||<'view-timeline-inset'>]? )","viewport-length":"auto|<length-percentage>","visual-box":"content-box|padding-box|border-box","wq-name":"<ns-prefix>? <ident-token>","xywh()":"xywh( <length-percentage>{2} <length-percentage [0,∞]>{2} [round <'border-radius'>]? )",xyz:"xyz|xyz-d50|xyz-d65","xyz-params":"<xyz-space> [<number>|<percentage>|none]{3}","-legacy-gradient":"<-webkit-gradient()>|<-legacy-linear-gradient>|<-legacy-repeating-linear-gradient>|<-legacy-radial-gradient>|<-legacy-repeating-radial-gradient>","-legacy-linear-gradient":"-moz-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-repeating-linear-gradient":"-moz-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-webkit-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )|-o-repeating-linear-gradient( <-legacy-linear-gradient-arguments> )","-legacy-linear-gradient-arguments":"[<angle>|<side-or-corner>]? , <color-stop-list>","-legacy-radial-gradient":"-moz-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-repeating-radial-gradient":"-moz-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-webkit-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )|-o-repeating-radial-gradient( <-legacy-radial-gradient-arguments> )","-legacy-radial-gradient-arguments":"[<position> ,]? [[[<-legacy-radial-gradient-shape>||<-legacy-radial-gradient-size>]|[<length>|<percentage>]{2}] ,]? <color-stop-list>","-legacy-radial-gradient-size":"closest-side|closest-corner|farthest-side|farthest-corner|contain|cover","-legacy-radial-gradient-shape":"circle|ellipse","-non-standard-font":"-apple-system-body|-apple-system-headline|-apple-system-subheadline|-apple-system-caption1|-apple-system-caption2|-apple-system-footnote|-apple-system-short-body|-apple-system-short-headline|-apple-system-short-subheadline|-apple-system-short-caption1|-apple-system-short-footnote|-apple-system-tall-body","-non-standard-color":"-moz-ButtonDefault|-moz-ButtonHoverFace|-moz-ButtonHoverText|-moz-CellHighlight|-moz-CellHighlightText|-moz-Combobox|-moz-ComboboxText|-moz-Dialog|-moz-DialogText|-moz-dragtargetzone|-moz-EvenTreeRow|-moz-Field|-moz-FieldText|-moz-html-CellHighlight|-moz-html-CellHighlightText|-moz-mac-accentdarkestshadow|-moz-mac-accentdarkshadow|-moz-mac-accentface|-moz-mac-accentlightesthighlight|-moz-mac-accentlightshadow|-moz-mac-accentregularhighlight|-moz-mac-accentregularshadow|-moz-mac-chrome-active|-moz-mac-chrome-inactive|-moz-mac-focusring|-moz-mac-menuselect|-moz-mac-menushadow|-moz-mac-menutextselect|-moz-MenuHover|-moz-MenuHoverText|-moz-MenuBarText|-moz-MenuBarHoverText|-moz-nativehyperlinktext|-moz-OddTreeRow|-moz-win-communicationstext|-moz-win-mediatext|-moz-activehyperlinktext|-moz-default-background-color|-moz-default-color|-moz-hyperlinktext|-moz-visitedhyperlinktext|-webkit-activelink|-webkit-focus-ring-color|-webkit-link|-webkit-text","-non-standard-image-rendering":"optimize-contrast|-moz-crisp-edges|-o-crisp-edges|-webkit-optimize-contrast","-non-standard-overflow":"overlay|-moz-scrollbars-none|-moz-scrollbars-horizontal|-moz-scrollbars-vertical|-moz-hidden-unscrollable","-non-standard-size":"intrinsic|min-intrinsic|-webkit-fill-available|-webkit-fit-content|-webkit-min-content|-webkit-max-content|-moz-available|-moz-fit-content|-moz-min-content|-moz-max-content","-webkit-gradient()":"-webkit-gradient( <-webkit-gradient-type> , <-webkit-gradient-point> [, <-webkit-gradient-point>|, <-webkit-gradient-radius> , <-webkit-gradient-point>] [, <-webkit-gradient-radius>]? [, <-webkit-gradient-color-stop>]* )","-webkit-gradient-color-stop":"from( <color> )|color-stop( [<number-zero-one>|<percentage>] , <color> )|to( <color> )","-webkit-gradient-point":"[left|center|right|<length-percentage>] [top|center|bottom|<length-percentage>]","-webkit-gradient-radius":"<length>|<percentage>","-webkit-gradient-type":"linear|radial","-webkit-mask-box-repeat":"repeat|stretch|round","-ms-filter-function-list":"<-ms-filter-function>+","-ms-filter-function":"<-ms-filter-function-progid>|<-ms-filter-function-legacy>","-ms-filter-function-progid":"'progid:' [<ident-token> '.']* [<ident-token>|<function-token> <any-value>? )]","-ms-filter-function-legacy":"<ident-token>|<function-token> <any-value>? )",age:"child|young|old","attr-name":"<wq-name>","attr-fallback":"<any-value>",bottom:"<length>|auto","cubic-bezier-easing-function":"ease|ease-in|ease-out|ease-in-out|cubic-bezier( <number [0,1]> , <number> , <number [0,1]> , <number> )","generic-voice":"[<age>? <gender> <integer>?]",gender:"male|female|neutral","generic-script-specific":"generic( kai )|generic( fangsong )|generic( nastaliq )","-non-standard-generic-family":"-apple-system|BlinkMacSystemFont","intrinsic-size-keyword":"min-content|max-content|fit-content",left:"<length>|auto","device-cmyk()":"<legacy-device-cmyk-syntax>|<modern-device-cmyk-syntax>","legacy-device-cmyk-syntax":"device-cmyk( <number>#{4} )","modern-device-cmyk-syntax":"device-cmyk( <cmyk-component>{4} [/ [<alpha-value>|none]]? )","cmyk-component":"<number>|<percentage>|none","color-space":"<rectangular-color-space>|<polar-color-space>|<custom-color-space>",right:"<length>|auto","forgiving-selector-list":"<complex-real-selector-list>","forgiving-relative-selector-list":"<relative-real-selector-list>","complex-real-selector-list":"<complex-real-selector>#","simple-selector-list":"<simple-selector>#","relative-real-selector-list":"<relative-real-selector>#","complex-selector-unit":"[<compound-selector>? <pseudo-compound-selector>*]!","complex-real-selector":"<compound-selector> [<combinator>? <compound-selector>]*","relative-real-selector":"<combinator>? <complex-real-selector>","pseudo-compound-selector":"<pseudo-element-selector> <pseudo-class-selector>*","simple-selector":"<type-selector>|<subclass-selector>","legacy-pseudo-element-selector":"':' [before|after|first-line|first-letter]","svg-length":"<percentage>|<length>|<number>","svg-writing-mode":"lr-tb|rl-tb|tb-rl|lr|rl|tb",top:"<length>|auto",x:"<number>",y:"<number>",declaration:"<ident-token> : <declaration-value>? ['!' important]?","declaration-list":"[<declaration>? ';']* <declaration>?",url:"url( <string> <url-modifier>* )|<url-token>","url-modifier":"<ident>|<function-token> <any-value> )","number-zero-one":"<number [0,1]>","number-one-or-greater":"<number [1,∞]>","xyz-space":"xyz|xyz-d50|xyz-d65","style-condition":"not <style-in-parens>|<style-in-parens> [[and <style-in-parens>]*|[or <style-in-parens>]*]","-non-standard-display":"-ms-inline-flexbox|-ms-grid|-ms-inline-grid|-webkit-flex|-webkit-inline-flex|-webkit-box|-webkit-inline-box|-moz-inline-stack|-moz-box|-moz-inline-box","inset-area":"[[left|center|right|span-left|span-right|x-start|x-end|span-x-start|span-x-end|x-self-start|x-self-end|span-x-self-start|span-x-self-end|span-all]||[top|center|bottom|span-top|span-bottom|y-start|y-end|span-y-start|span-y-end|y-self-start|y-self-end|span-y-self-start|span-y-self-end|span-all]|[block-start|center|block-end|span-block-start|span-block-end|span-all]||[inline-start|center|inline-end|span-inline-start|span-inline-end|span-all]|[self-block-start|self-block-end|span-self-block-start|span-self-block-end|span-all]||[self-inline-start|self-inline-end|span-self-inline-start|span-self-inline-end|span-all]|[start|center|end|span-start|span-end|span-all]{1,2}|[self-start|center|self-end|span-self-start|span-self-end|span-all]{1,2}]","font-variant-css2":"normal|small-caps","font-width-css3":"normal|ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded","system-family-name":"caption|icon|menu|message-box|small-caption|status-bar"},properties:{"--*":"<declaration-value>","-ms-accelerator":"false|true","-ms-block-progression":"tb|rl|bt|lr","-ms-content-zoom-chaining":"none|chained","-ms-content-zoom-limit":"<'-ms-content-zoom-limit-min'> <'-ms-content-zoom-limit-max'>","-ms-content-zoom-limit-max":"<percentage>","-ms-content-zoom-limit-min":"<percentage>","-ms-content-zoom-snap":"<'-ms-content-zoom-snap-type'>||<'-ms-content-zoom-snap-points'>","-ms-content-zoom-snap-points":"snapInterval( <percentage> , <percentage> )|snapList( <percentage># )","-ms-content-zoom-snap-type":"none|proximity|mandatory","-ms-content-zooming":"none|zoom","-ms-filter":"<string>","-ms-flow-from":"[none|<custom-ident>]#","-ms-flow-into":"[none|<custom-ident>]#","-ms-grid-columns":"none|<track-list>|<auto-track-list>","-ms-grid-rows":"none|<track-list>|<auto-track-list>","-ms-high-contrast-adjust":"auto|none","-ms-hyphenate-limit-chars":"auto|<integer>{1,3}","-ms-hyphenate-limit-lines":"no-limit|<integer>","-ms-hyphenate-limit-zone":"<percentage>|<length>","-ms-ime-align":"auto|after","-ms-overflow-style":"auto|none|scrollbar|-ms-autohiding-scrollbar","-ms-scroll-chaining":"chained|none","-ms-scroll-limit":"<'-ms-scroll-limit-x-min'> <'-ms-scroll-limit-y-min'> <'-ms-scroll-limit-x-max'> <'-ms-scroll-limit-y-max'>","-ms-scroll-limit-x-max":"auto|<length>","-ms-scroll-limit-x-min":"<length>","-ms-scroll-limit-y-max":"auto|<length>","-ms-scroll-limit-y-min":"<length>","-ms-scroll-rails":"none|railed","-ms-scroll-snap-points-x":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-points-y":"snapInterval( <length-percentage> , <length-percentage> )|snapList( <length-percentage># )","-ms-scroll-snap-type":"none|proximity|mandatory","-ms-scroll-snap-x":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-x'>","-ms-scroll-snap-y":"<'-ms-scroll-snap-type'> <'-ms-scroll-snap-points-y'>","-ms-scroll-translation":"none|vertical-to-horizontal","-ms-scrollbar-3dlight-color":"<color>","-ms-scrollbar-arrow-color":"<color>","-ms-scrollbar-base-color":"<color>","-ms-scrollbar-darkshadow-color":"<color>","-ms-scrollbar-face-color":"<color>","-ms-scrollbar-highlight-color":"<color>","-ms-scrollbar-shadow-color":"<color>","-ms-scrollbar-track-color":"<color>","-ms-text-autospace":"none|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space","-ms-touch-select":"grippers|none","-ms-user-select":"none|element|text","-ms-wrap-flow":"auto|both|start|end|maximum|clear","-ms-wrap-margin":"<length>","-ms-wrap-through":"wrap|none","-moz-appearance":"none|button|button-arrow-down|button-arrow-next|button-arrow-previous|button-arrow-up|button-bevel|button-focus|caret|checkbox|checkbox-container|checkbox-label|checkmenuitem|dualbutton|groupbox|listbox|listitem|menuarrow|menubar|menucheckbox|menuimage|menuitem|menuitemtext|menulist|menulist-button|menulist-text|menulist-textfield|menupopup|menuradio|menuseparator|meterbar|meterchunk|progressbar|progressbar-vertical|progresschunk|progresschunk-vertical|radio|radio-container|radio-label|radiomenuitem|range|range-thumb|resizer|resizerpanel|scale-horizontal|scalethumbend|scalethumb-horizontal|scalethumbstart|scalethumbtick|scalethumb-vertical|scale-vertical|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|separator|sheet|spinner|spinner-downbutton|spinner-textfield|spinner-upbutton|splitter|statusbar|statusbarpanel|tab|tabpanel|tabpanels|tab-scroll-arrow-back|tab-scroll-arrow-forward|textfield|textfield-multiline|toolbar|toolbarbutton|toolbarbutton-dropdown|toolbargripper|toolbox|tooltip|treeheader|treeheadercell|treeheadersortarrow|treeitem|treeline|treetwisty|treetwistyopen|treeview|-moz-mac-unified-toolbar|-moz-win-borderless-glass|-moz-win-browsertabbar-toolbox|-moz-win-communicationstext|-moz-win-communications-toolbox|-moz-win-exclude-glass|-moz-win-glass|-moz-win-mediatext|-moz-win-media-toolbox|-moz-window-button-box|-moz-window-button-box-maximized|-moz-window-button-close|-moz-window-button-maximize|-moz-window-button-minimize|-moz-window-button-restore|-moz-window-frame-bottom|-moz-window-frame-left|-moz-window-frame-right|-moz-window-titlebar|-moz-window-titlebar-maximized","-moz-binding":"<url>|none","-moz-border-bottom-colors":"<color>+|none","-moz-border-left-colors":"<color>+|none","-moz-border-right-colors":"<color>+|none","-moz-border-top-colors":"<color>+|none","-moz-context-properties":"none|[fill|fill-opacity|stroke|stroke-opacity]#","-moz-float-edge":"border-box|content-box|margin-box|padding-box","-moz-force-broken-image-icon":"0|1","-moz-image-region":"<shape>|auto","-moz-orient":"inline|block|horizontal|vertical","-moz-outline-radius":"<outline-radius>{1,4} [/ <outline-radius>{1,4}]?","-moz-outline-radius-bottomleft":"<outline-radius>","-moz-outline-radius-bottomright":"<outline-radius>","-moz-outline-radius-topleft":"<outline-radius>","-moz-outline-radius-topright":"<outline-radius>","-moz-stack-sizing":"ignore|stretch-to-fit","-moz-text-blink":"none|blink","-moz-user-focus":"ignore|normal|select-after|select-before|select-menu|select-same|select-all|none","-moz-user-input":"auto|none|enabled|disabled","-moz-user-modify":"read-only|read-write|write-only","-moz-window-dragging":"drag|no-drag","-moz-window-shadow":"default|menu|tooltip|sheet|none","-webkit-appearance":"none|button|button-bevel|caps-lock-indicator|caret|checkbox|default-button|inner-spin-button|listbox|listitem|media-controls-background|media-controls-fullscreen-background|media-current-time-display|media-enter-fullscreen-button|media-exit-fullscreen-button|media-fullscreen-button|media-mute-button|media-overlay-play-button|media-play-button|media-seek-back-button|media-seek-forward-button|media-slider|media-sliderthumb|media-time-remaining-display|media-toggle-closed-captions-button|media-volume-slider|media-volume-slider-container|media-volume-sliderthumb|menulist|menulist-button|menulist-text|menulist-textfield|meter|progress-bar|progress-bar-value|push-button|radio|scrollbarbutton-down|scrollbarbutton-left|scrollbarbutton-right|scrollbarbutton-up|scrollbargripper-horizontal|scrollbargripper-vertical|scrollbarthumb-horizontal|scrollbarthumb-vertical|scrollbartrack-horizontal|scrollbartrack-vertical|searchfield|searchfield-cancel-button|searchfield-decoration|searchfield-results-button|searchfield-results-decoration|slider-horizontal|slider-vertical|sliderthumb-horizontal|sliderthumb-vertical|square-button|textarea|textfield|-apple-pay-button","-webkit-border-before":"<'border-width'>||<'border-style'>||<color>","-webkit-border-before-color":"<color>","-webkit-border-before-style":"<'border-style'>","-webkit-border-before-width":"<'border-width'>","-webkit-box-reflect":"[above|below|right|left]? <length>? <image>?","-webkit-line-clamp":"none|<integer>","-webkit-mask":"[<mask-reference>||<position> [/ <bg-size>]?||<repeat-style>||[<visual-box>|border|padding|content|text]||[<visual-box>|border|padding|content]]#","-webkit-mask-attachment":"<attachment>#","-webkit-mask-clip":"[<coord-box>|no-clip|border|padding|content|text]#","-webkit-mask-composite":"<composite-style>#","-webkit-mask-image":"<mask-reference>#","-webkit-mask-origin":"[<coord-box>|border|padding|content]#","-webkit-mask-position":"<position>#","-webkit-mask-position-x":"[<length-percentage>|left|center|right]#","-webkit-mask-position-y":"[<length-percentage>|top|center|bottom]#","-webkit-mask-repeat":"<repeat-style>#","-webkit-mask-repeat-x":"repeat|no-repeat|space|round","-webkit-mask-repeat-y":"repeat|no-repeat|space|round","-webkit-mask-size":"<bg-size>#","-webkit-overflow-scrolling":"auto|touch","-webkit-tap-highlight-color":"<color>","-webkit-text-fill-color":"<color>","-webkit-text-stroke":"<length>||<color>","-webkit-text-stroke-color":"<color>","-webkit-text-stroke-width":"<length>","-webkit-touch-callout":"default|none","-webkit-user-modify":"read-only|read-write|read-write-plaintext-only","-webkit-user-select":"auto|none|text|all","accent-color":"auto|<color>","align-content":"normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>","align-items":"normal|stretch|<baseline-position>|[<overflow-position>? <self-position>]","align-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? <self-position>","align-tracks":"[normal|<baseline-position>|<content-distribution>|<overflow-position>? <content-position>]#","alignment-baseline":"auto|baseline|before-edge|text-before-edge|middle|central|after-edge|text-after-edge|ideographic|alphabetic|hanging|mathematical",all:"initial|inherit|unset|revert|revert-layer","anchor-name":"none|<dashed-ident>#","anchor-scope":"none|all|<dashed-ident>#",animation:"<single-animation>#","animation-composition":"<single-animation-composition>#","animation-delay":"<time>#","animation-direction":"<single-animation-direction>#","animation-duration":"<time>#","animation-fill-mode":"<single-animation-fill-mode>#","animation-iteration-count":"<single-animation-iteration-count>#","animation-name":"[none|<keyframes-name>]#","animation-play-state":"<single-animation-play-state>#","animation-range":"[<'animation-range-start'> <'animation-range-end'>?]#","animation-range-end":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","animation-range-start":"[normal|<length-percentage>|<timeline-range-name> <length-percentage>?]#","animation-timeline":"<single-animation-timeline>#","animation-timing-function":"<easing-function>#",appearance:"none|auto|textfield|menulist-button|<compat-auto>","aspect-ratio":"auto||<ratio>","backdrop-filter":"none|<filter-value-list>","backface-visibility":"visible|hidden",background:"[<bg-layer> ,]* <final-bg-layer>","background-attachment":"<attachment>#","background-blend-mode":"<blend-mode>#","background-clip":"<bg-clip>#","background-color":"<color>","background-image":"<bg-image>#","background-origin":"<visual-box>#","background-position":"<bg-position>#","background-position-x":"[center|[[left|right|x-start|x-end]? <length-percentage>?]!]#","background-position-y":"[center|[[top|bottom|y-start|y-end]? <length-percentage>?]!]#","background-repeat":"<repeat-style>#","background-size":"<bg-size>#","baseline-shift":"baseline|sub|super|<svg-length>","block-size":"<'width'>",border:"<line-width>||<line-style>||<color>","border-block":"<'border-block-start'>","border-block-color":"<'border-top-color'>{1,2}","border-block-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-end-color":"<'border-top-color'>","border-block-end-style":"<'border-top-style'>","border-block-end-width":"<'border-top-width'>","border-block-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-block-start-color":"<'border-top-color'>","border-block-start-style":"<'border-top-style'>","border-block-start-width":"<'border-top-width'>","border-block-style":"<'border-top-style'>{1,2}","border-block-width":"<'border-top-width'>{1,2}","border-bottom":"<line-width>||<line-style>||<color>","border-bottom-color":"<'border-top-color'>","border-bottom-left-radius":"<length-percentage>{1,2}","border-bottom-right-radius":"<length-percentage>{1,2}","border-bottom-style":"<line-style>","border-bottom-width":"<line-width>","border-collapse":"collapse|separate","border-color":"<color>{1,4}","border-end-end-radius":"<'border-top-left-radius'>","border-end-start-radius":"<'border-top-left-radius'>","border-image":"<'border-image-source'>||<'border-image-slice'> [/ <'border-image-width'>|/ <'border-image-width'>? / <'border-image-outset'>]?||<'border-image-repeat'>","border-image-outset":"[<length>|<number>]{1,4}","border-image-repeat":"[stretch|repeat|round|space]{1,2}","border-image-slice":"<number-percentage>{1,4}&&fill?","border-image-source":"none|<image>","border-image-width":"[<length-percentage>|<number>|auto]{1,4}","border-inline":"<'border-block-start'>","border-inline-color":"<'border-top-color'>{1,2}","border-inline-end":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-end-color":"<'border-top-color'>","border-inline-end-style":"<'border-top-style'>","border-inline-end-width":"<'border-top-width'>","border-inline-start":"<'border-top-width'>||<'border-top-style'>||<color>","border-inline-start-color":"<'border-top-color'>","border-inline-start-style":"<'border-top-style'>","border-inline-start-width":"<'border-top-width'>","border-inline-style":"<'border-top-style'>{1,2}","border-inline-width":"<'border-top-width'>{1,2}","border-left":"<line-width>||<line-style>||<color>","border-left-color":"<color>","border-left-style":"<line-style>","border-left-width":"<line-width>","border-radius":"<length-percentage>{1,4} [/ <length-percentage>{1,4}]?","border-right":"<line-width>||<line-style>||<color>","border-right-color":"<color>","border-right-style":"<line-style>","border-right-width":"<line-width>","border-spacing":"<length> <length>?","border-start-end-radius":"<'border-top-left-radius'>","border-start-start-radius":"<'border-top-left-radius'>","border-style":"<line-style>{1,4}","border-top":"<line-width>||<line-style>||<color>","border-top-color":"<color>","border-top-left-radius":"<length-percentage>{1,2}","border-top-right-radius":"<length-percentage>{1,2}","border-top-style":"<line-style>","border-top-width":"<line-width>","border-width":"<line-width>{1,4}",bottom:"<length>|<percentage>|auto","box-align":"start|center|end|baseline|stretch","box-decoration-break":"slice|clone","box-direction":"normal|reverse|inherit","box-flex":"<number>","box-flex-group":"<integer>","box-lines":"single|multiple","box-ordinal-group":"<integer>","box-orient":"horizontal|vertical|inline-axis|block-axis|inherit","box-pack":"start|center|end|justify","box-shadow":"none|<shadow>#","box-sizing":"content-box|border-box","break-after":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-before":"auto|avoid|always|all|avoid-page|page|left|right|recto|verso|avoid-column|column|avoid-region|region","break-inside":"auto|avoid|avoid-page|avoid-column|avoid-region","caption-side":"top|bottom",caret:"<'caret-color'>||<'caret-shape'>","caret-color":"auto|<color>","caret-shape":"auto|bar|block|underscore",clear:"none|left|right|both|inline-start|inline-end",clip:"<shape>|auto","clip-path":"<clip-source>|[<basic-shape>||<geometry-box>]|none","clip-rule":"nonzero|evenodd",color:"<color>","color-interpolation-filters":"auto|sRGB|linearRGB","color-scheme":"normal|[light|dark|<custom-ident>]+&&only?","column-count":"<integer>|auto","column-fill":"auto|balance","column-gap":"normal|<length-percentage>","column-rule":"<'column-rule-width'>||<'column-rule-style'>||<'column-rule-color'>","column-rule-color":"<color>","column-rule-style":"<'border-style'>","column-rule-width":"<'border-width'>","column-span":"none|all","column-width":"<length>|auto",columns:"<'column-width'>||<'column-count'>",contain:"none|strict|content|[[size||inline-size]||layout||style||paint]","contain-intrinsic-block-size":"auto? [none|<length>]","contain-intrinsic-height":"auto? [none|<length>]","contain-intrinsic-inline-size":"auto? [none|<length>]","contain-intrinsic-size":"[auto? [none|<length>]]{1,2}","contain-intrinsic-width":"auto? [none|<length>]",container:"<'container-name'> [/ <'container-type'>]?","container-name":"none|<custom-ident>+","container-type":"normal|[[size|inline-size]||scroll-state]",content:"normal|none|[<content-replacement>|<content-list>] [/ [<string>|<counter>]+]?","content-visibility":"visible|auto|hidden","counter-increment":"[<counter-name> <integer>?]+|none","counter-reset":"[<counter-name> <integer>?|<reversed-counter-name> <integer>?]+|none","counter-set":"[<counter-name> <integer>?]+|none",cursor:"[[<url> [<x> <y>]? ,]* [auto|default|none|context-menu|help|pointer|progress|wait|cell|crosshair|text|vertical-text|alias|copy|move|no-drop|not-allowed|e-resize|n-resize|ne-resize|nw-resize|s-resize|se-resize|sw-resize|w-resize|ew-resize|ns-resize|nesw-resize|nwse-resize|col-resize|row-resize|all-scroll|zoom-in|zoom-out|grab|grabbing|hand|-webkit-grab|-webkit-grabbing|-webkit-zoom-in|-webkit-zoom-out|-moz-grab|-moz-grabbing|-moz-zoom-in|-moz-zoom-out]]",cx:"<length>|<percentage>",cy:"<length>|<percentage>",d:"none|path( <string> )",direction:"ltr|rtl",display:"[<display-outside>||<display-inside>]|<display-listitem>|<display-internal>|<display-box>|<display-legacy>|<-non-standard-display>","dominant-baseline":"auto|use-script|no-change|reset-size|ideographic|alphabetic|hanging|mathematical|central|middle|text-after-edge|text-before-edge","empty-cells":"show|hide","field-sizing":"content|fixed",fill:"<paint>","fill-opacity":"<number-zero-one>","fill-rule":"nonzero|evenodd",filter:"none|<filter-value-list>|<-ms-filter-function-list>",flex:"none|[<'flex-grow'> <'flex-shrink'>?||<'flex-basis'>]","flex-basis":"content|<'width'>","flex-direction":"row|row-reverse|column|column-reverse","flex-flow":"<'flex-direction'>||<'flex-wrap'>","flex-grow":"<number>","flex-shrink":"<number>","flex-wrap":"nowrap|wrap|wrap-reverse",float:"left|right|none|inline-start|inline-end","flood-color":"<color>","flood-opacity":"<'opacity'>",font:"[[<'font-style'>||<font-variant-css2>||<'font-weight'>||<font-width-css3>]? <'font-size'> [/ <'line-height'>]? <'font-family'>#]|<system-family-name>|<-non-standard-font>","font-family":"[<family-name>|<generic-family>]#","font-feature-settings":"normal|<feature-tag-value>#","font-kerning":"auto|normal|none","font-language-override":"normal|<string>","font-optical-sizing":"auto|none","font-palette":"normal|light|dark|<palette-identifier>|<palette-mix()>","font-size":"<absolute-size>|<relative-size>|<length-percentage [0,∞]>|math","font-size-adjust":"none|[ex-height|cap-height|ch-width|ic-width|ic-height]? [from-font|<number>]","font-smooth":"auto|never|always|<absolute-size>|<length>","font-stretch":"<font-stretch-absolute>","font-style":"normal|italic|oblique <angle>?","font-synthesis":"none|[weight||style||small-caps||position]","font-synthesis-position":"auto|none","font-synthesis-small-caps":"auto|none","font-synthesis-style":"auto|none","font-synthesis-weight":"auto|none","font-variant":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>||stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )||[small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps]||<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero||<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-alternates":"normal|[stylistic( <feature-value-name> )||historical-forms||styleset( <feature-value-name># )||character-variant( <feature-value-name># )||swash( <feature-value-name> )||ornaments( <feature-value-name> )||annotation( <feature-value-name> )]","font-variant-caps":"normal|small-caps|all-small-caps|petite-caps|all-petite-caps|unicase|titling-caps","font-variant-east-asian":"normal|[<east-asian-variant-values>||<east-asian-width-values>||ruby]","font-variant-emoji":"normal|text|emoji|unicode","font-variant-ligatures":"normal|none|[<common-lig-values>||<discretionary-lig-values>||<historical-lig-values>||<contextual-alt-values>]","font-variant-numeric":"normal|[<numeric-figure-values>||<numeric-spacing-values>||<numeric-fraction-values>||ordinal||slashed-zero]","font-variant-position":"normal|sub|super","font-variation-settings":"normal|[<string> <number>]#","font-weight":"<font-weight-absolute>|bolder|lighter","forced-color-adjust":"auto|none|preserve-parent-color",gap:"<'row-gap'> <'column-gap'>?",grid:"<'grid-template'>|<'grid-template-rows'> / [auto-flow&&dense?] <'grid-auto-columns'>?|[auto-flow&&dense?] <'grid-auto-rows'>? / <'grid-template-columns'>","grid-area":"<grid-line> [/ <grid-line>]{0,3}","grid-auto-columns":"<track-size>+","grid-auto-flow":"[row|column]||dense","grid-auto-rows":"<track-size>+","grid-column":"<grid-line> [/ <grid-line>]?","grid-column-end":"<grid-line>","grid-column-gap":"<length-percentage>","grid-column-start":"<grid-line>","grid-gap":"<'grid-row-gap'> <'grid-column-gap'>?","grid-row":"<grid-line> [/ <grid-line>]?","grid-row-end":"<grid-line>","grid-row-gap":"<length-percentage>","grid-row-start":"<grid-line>","grid-template":"none|[<'grid-template-rows'> / <'grid-template-columns'>]|[<line-names>? <string> <track-size>? <line-names>?]+ [/ <explicit-track-list>]?","grid-template-areas":"none|<string>+","grid-template-columns":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","grid-template-rows":"none|<track-list>|<auto-track-list>|subgrid <line-name-list>?","hanging-punctuation":"none|[first||[force-end|allow-end]||last]",height:"auto|<length-percentage [0,∞]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,∞]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","hyphenate-character":"auto|<string>","hyphenate-limit-chars":"[auto|<integer>]{1,3}",hyphens:"none|manual|auto","image-orientation":"from-image|<angle>|[<angle>? flip]","image-rendering":"auto|crisp-edges|pixelated|smooth|optimizeSpeed|optimizeQuality|<-non-standard-image-rendering>","image-resolution":"[from-image||<resolution>]&&snap?","ime-mode":"auto|normal|active|inactive|disabled","initial-letter":"normal|[<number> <integer>?]","initial-letter-align":"[auto|alphabetic|hanging|ideographic]","inline-size":"<'width'>",inset:"<'top'>{1,4}","inset-block":"<'top'>{1,2}","inset-block-end":"<'top'>","inset-block-start":"<'top'>","inset-inline":"<'top'>{1,2}","inset-inline-end":"<'top'>","inset-inline-start":"<'top'>","interpolate-size":"numeric-only|allow-keywords",isolation:"auto|isolate","justify-content":"normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]","justify-items":"normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]|legacy|legacy&&[left|right|center]","justify-self":"auto|normal|stretch|<baseline-position>|<overflow-position>? [<self-position>|left|right]","justify-tracks":"[normal|<content-distribution>|<overflow-position>? [<content-position>|left|right]]#",left:"<length>|<percentage>|auto","letter-spacing":"normal|<length-percentage>","lighting-color":"<color>","line-break":"auto|loose|normal|strict|anywhere","line-clamp":"none|<integer>","line-height":"normal|<number>|<length>|<percentage>","line-height-step":"<length>","list-style":"<'list-style-type'>||<'list-style-position'>||<'list-style-image'>","list-style-image":"<image>|none","list-style-position":"inside|outside","list-style-type":"<counter-style>|<string>|none",margin:"<'margin-top'>{1,4}","margin-block":"<'margin-top'>{1,2}","margin-block-end":"<'margin-top'>","margin-block-start":"<'margin-top'>","margin-bottom":"<length-percentage>|auto","margin-inline":"<'margin-top'>{1,2}","margin-inline-end":"<'margin-top'>","margin-inline-start":"<'margin-top'>","margin-left":"<length-percentage>|auto","margin-right":"<length-percentage>|auto","margin-top":"<length-percentage>|auto","margin-trim":"none|in-flow|all",marker:"none|<url>","marker-end":"none|<url>","marker-mid":"none|<url>","marker-start":"none|<url>",mask:"<mask-layer>#","mask-border":"<'mask-border-source'>||<'mask-border-slice'> [/ <'mask-border-width'>? [/ <'mask-border-outset'>]?]?||<'mask-border-repeat'>||<'mask-border-mode'>","mask-border-mode":"luminance|alpha","mask-border-outset":"[<length>|<number>]{1,4}","mask-border-repeat":"[stretch|repeat|round|space]{1,2}","mask-border-slice":"<number-percentage>{1,4} fill?","mask-border-source":"none|<image>","mask-border-width":"[<length-percentage>|<number>|auto]{1,4}","mask-clip":"[<coord-box>|no-clip]#","mask-composite":"<compositing-operator>#","mask-image":"<mask-reference>#","mask-mode":"<masking-mode>#","mask-origin":"<coord-box>#","mask-position":"<position>#","mask-repeat":"<repeat-style>#","mask-size":"<bg-size>#","mask-type":"luminance|alpha","masonry-auto-flow":"[pack|next]||[definite-first|ordered]","math-depth":"auto-add|add( <integer> )|<integer>","math-shift":"normal|compact","math-style":"normal|compact","max-block-size":"<'max-width'>","max-height":"none|<length-percentage [0,∞]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,∞]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","max-inline-size":"<'max-width'>","max-lines":"none|<integer>","max-width":"none|<length-percentage [0,∞]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,∞]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","min-block-size":"<'min-width'>","min-height":"auto|<length-percentage [0,∞]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,∞]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","min-inline-size":"<'min-width'>","min-width":"auto|<length-percentage [0,∞]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,∞]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","mix-blend-mode":"<blend-mode>|plus-lighter","object-fit":"fill|contain|cover|none|scale-down","object-position":"<position>","object-view-box":"none|<basic-shape-rect>",offset:"[<'offset-position'>? [<'offset-path'> [<'offset-distance'>||<'offset-rotate'>]?]?]! [/ <'offset-anchor'>]?","offset-anchor":"auto|<position>","offset-distance":"<length-percentage>","offset-path":"none|<offset-path>||<coord-box>","offset-position":"normal|auto|<position>","offset-rotate":"[auto|reverse]||<angle>",opacity:"<opacity-value>",order:"<integer>",orphans:"<integer>",outline:"<'outline-width'>||<'outline-style'>||<'outline-color'>","outline-color":"auto|<color>","outline-offset":"<length>","outline-style":"auto|<outline-line-style>","outline-width":"<line-width>",overflow:"[visible|hidden|clip|scroll|auto]{1,2}|<-non-standard-overflow>","overflow-anchor":"auto|none","overflow-block":"visible|hidden|clip|scroll|auto","overflow-clip-box":"padding-box|content-box","overflow-clip-margin":"<visual-box>||<length [0,∞]>","overflow-inline":"visible|hidden|clip|scroll|auto","overflow-wrap":"normal|break-word|anywhere","overflow-x":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>","overflow-y":"visible|hidden|clip|scroll|auto|<-non-standard-overflow>",overlay:"none|auto","overscroll-behavior":"[contain|none|auto]{1,2}","overscroll-behavior-block":"contain|none|auto","overscroll-behavior-inline":"contain|none|auto","overscroll-behavior-x":"contain|none|auto","overscroll-behavior-y":"contain|none|auto",padding:"<'padding-top'>{1,4}","padding-block":"<'padding-top'>{1,2}","padding-block-end":"<'padding-top'>","padding-block-start":"<'padding-top'>","padding-bottom":"<length-percentage [0,∞]>","padding-inline":"<'padding-top'>{1,2}","padding-inline-end":"<'padding-top'>","padding-inline-start":"<'padding-top'>","padding-left":"<length-percentage [0,∞]>","padding-right":"<length-percentage [0,∞]>","padding-top":"<length-percentage [0,∞]>",page:"auto|<custom-ident>","page-break-after":"auto|always|avoid|left|right|recto|verso","page-break-before":"auto|always|avoid|left|right|recto|verso","page-break-inside":"auto|avoid","paint-order":"normal|[fill||stroke||markers]",perspective:"none|<length>","perspective-origin":"<position>","place-content":"<'align-content'> <'justify-content'>?","place-items":"<'align-items'> <'justify-items'>?","place-self":"<'align-self'> <'justify-self'>?","pointer-events":"auto|none|visiblePainted|visibleFill|visibleStroke|visible|painted|fill|stroke|all|inherit",position:"static|relative|absolute|sticky|fixed|-webkit-sticky","position-anchor":"auto|<anchor-name>","position-area":"none|<position-area>","position-try":"<'position-try-order'>? <'position-try-fallbacks'>","position-try-fallbacks":"none|[[<dashed-ident>||<try-tactic>]|<'position-area'>]#","position-try-order":"normal|<try-size>","position-visibility":"always|[anchors-valid||anchors-visible||no-overflow]","print-color-adjust":"economy|exact",quotes:"none|auto|[<string> <string>]+",r:"<length>|<percentage>",resize:"none|both|horizontal|vertical|block|inline",right:"<length>|<percentage>|auto",rotate:"none|<angle>|[x|y|z|<number>{3}]&&<angle>","row-gap":"normal|<length-percentage>","ruby-align":"start|center|space-between|space-around","ruby-merge":"separate|collapse|auto","ruby-position":"[alternate||[over|under]]|inter-character",rx:"<length>|<percentage>",ry:"<length>|<percentage>",scale:"none|[<number>|<percentage>]{1,3}","scroll-behavior":"auto|smooth","scroll-initial-target":"none|nearest","scroll-margin":"<length>{1,4}","scroll-margin-block":"<length>{1,2}","scroll-margin-block-end":"<length>","scroll-margin-block-start":"<length>","scroll-margin-bottom":"<length>","scroll-margin-inline":"<length>{1,2}","scroll-margin-inline-end":"<length>","scroll-margin-inline-start":"<length>","scroll-margin-left":"<length>","scroll-margin-right":"<length>","scroll-margin-top":"<length>","scroll-padding":"[auto|<length-percentage>]{1,4}","scroll-padding-block":"[auto|<length-percentage>]{1,2}","scroll-padding-block-end":"auto|<length-percentage>","scroll-padding-block-start":"auto|<length-percentage>","scroll-padding-bottom":"auto|<length-percentage>","scroll-padding-inline":"[auto|<length-percentage>]{1,2}","scroll-padding-inline-end":"auto|<length-percentage>","scroll-padding-inline-start":"auto|<length-percentage>","scroll-padding-left":"auto|<length-percentage>","scroll-padding-right":"auto|<length-percentage>","scroll-padding-top":"auto|<length-percentage>","scroll-snap-align":"[none|start|end|center]{1,2}","scroll-snap-coordinate":"none|<position>#","scroll-snap-destination":"<position>","scroll-snap-points-x":"none|repeat( <length-percentage> )","scroll-snap-points-y":"none|repeat( <length-percentage> )","scroll-snap-stop":"normal|always","scroll-snap-type":"none|[x|y|block|inline|both] [mandatory|proximity]?","scroll-snap-type-x":"none|mandatory|proximity","scroll-snap-type-y":"none|mandatory|proximity","scroll-timeline":"[<'scroll-timeline-name'> <'scroll-timeline-axis'>?]#","scroll-timeline-axis":"[block|inline|x|y]#","scroll-timeline-name":"[none|<dashed-ident>]#","scrollbar-color":"auto|<color>{2}","scrollbar-gutter":"auto|stable&&both-edges?","scrollbar-width":"auto|thin|none","shape-image-threshold":"<opacity-value>","shape-margin":"<length-percentage>","shape-outside":"none|[<shape-box>||<basic-shape>]|<image>","shape-rendering":"auto|optimizeSpeed|crispEdges|geometricPrecision","speak-as":"normal|spell-out||digits||[literal-punctuation|no-punctuation]","stop-color":"<'color'>","stop-opacity":"<'opacity'>",stroke:"<paint>","stroke-dasharray":"none|[<svg-length>+]#","stroke-dashoffset":"<svg-length>","stroke-linecap":"butt|round|square","stroke-linejoin":"miter|round|bevel","stroke-miterlimit":"<number-one-or-greater>","stroke-opacity":"<'opacity'>","stroke-width":"<svg-length>","tab-size":"<integer>|<length>","table-layout":"auto|fixed","text-align":"start|end|left|right|center|justify|match-parent","text-align-last":"auto|start|end|left|right|center|justify","text-anchor":"start|middle|end","text-box":"normal|<'text-box-trim'>||<'text-box-edge'>","text-box-edge":"auto|<text-edge>","text-box-trim":"none|trim-start|trim-end|trim-both","text-combine-upright":"none|all|[digits <integer>?]","text-decoration":"<'text-decoration-line'>||<'text-decoration-style'>||<'text-decoration-color'>||<'text-decoration-thickness'>","text-decoration-color":"<color>","text-decoration-line":"none|[underline||overline||line-through||blink]|spelling-error|grammar-error","text-decoration-skip":"none|[objects||[spaces|[leading-spaces||trailing-spaces]]||edges||box-decoration]","text-decoration-skip-ink":"auto|all|none","text-decoration-style":"solid|double|dotted|dashed|wavy","text-decoration-thickness":"auto|from-font|<length>|<percentage>","text-emphasis":"<'text-emphasis-style'>||<'text-emphasis-color'>","text-emphasis-color":"<color>","text-emphasis-position":"auto|[over|under]&&[right|left]?","text-emphasis-style":"none|[[filled|open]||[dot|circle|double-circle|triangle|sesame]]|<string>","text-indent":"<length-percentage>&&hanging?&&each-line?","text-justify":"auto|inter-character|inter-word|none","text-orientation":"mixed|upright|sideways","text-overflow":"[clip|ellipsis|<string>]{1,2}","text-rendering":"auto|optimizeSpeed|optimizeLegibility|geometricPrecision","text-shadow":"none|<shadow-t>#","text-size-adjust":"none|auto|<percentage>","text-spacing-trim":"space-all|normal|space-first|trim-start","text-transform":"none|[capitalize|uppercase|lowercase]||full-width||full-size-kana|math-auto","text-underline-offset":"auto|<length>|<percentage>","text-underline-position":"auto|from-font|[under||[left|right]]","text-wrap":"<'text-wrap-mode'>||<'text-wrap-style'>","text-wrap-mode":"wrap|nowrap","text-wrap-style":"auto|balance|stable|pretty","timeline-scope":"none|<dashed-ident>#",top:"<length>|<percentage>|auto","touch-action":"auto|none|[[pan-x|pan-left|pan-right]||[pan-y|pan-up|pan-down]||pinch-zoom]|manipulation",transform:"none|<transform-list>","transform-box":"content-box|border-box|fill-box|stroke-box|view-box","transform-origin":"[<length-percentage>|left|center|right|top|bottom]|[[<length-percentage>|left|center|right]&&[<length-percentage>|top|center|bottom]] <length>?","transform-style":"flat|preserve-3d",transition:"<single-transition>#","transition-behavior":"<transition-behavior-value>#","transition-delay":"<time>#","transition-duration":"<time>#","transition-property":"none|<single-transition-property>#","transition-timing-function":"<easing-function>#",translate:"none|<length-percentage> [<length-percentage> <length>?]?","unicode-bidi":"normal|embed|isolate|bidi-override|isolate-override|plaintext|-moz-isolate|-moz-isolate-override|-moz-plaintext|-webkit-isolate|-webkit-isolate-override|-webkit-plaintext","user-select":"auto|text|none|all","vector-effect":"none|non-scaling-stroke|non-scaling-size|non-rotation|fixed-position","vertical-align":"baseline|sub|super|text-top|text-bottom|middle|top|bottom|<percentage>|<length>","view-timeline":"[<'view-timeline-name'> [<'view-timeline-axis'>||<'view-timeline-inset'>]?]#","view-timeline-axis":"[block|inline|x|y]#","view-timeline-inset":"[[auto|<length-percentage>]{1,2}]#","view-timeline-name":"[none|<dashed-ident>]#","view-transition-class":"none|<custom-ident>+","view-transition-name":"none|<custom-ident>",visibility:"visible|hidden|collapse","white-space":"normal|pre|pre-wrap|pre-line|<'white-space-collapse'>||<'text-wrap-mode'>","white-space-collapse":"collapse|preserve|preserve-breaks|preserve-spaces|break-spaces",widows:"<integer>",width:"auto|<length-percentage [0,∞]>|min-content|max-content|fit-content|fit-content( <length-percentage [0,∞]> )|<calc-size()>|<anchor-size()>|stretch|<-non-standard-size>","will-change":"auto|<animateable-feature>#","word-break":"normal|break-all|keep-all|break-word|auto-phrase","word-spacing":"normal|<length>","word-wrap":"normal|break-word","writing-mode":"horizontal-tb|vertical-rl|vertical-lr|sideways-rl|sideways-lr|<svg-writing-mode>",x:"<length>|<percentage>",y:"<length>|<percentage>","z-index":"auto|<integer>",zoom:"normal|reset|<number [0,∞]>||<percentage [0,∞]>","-moz-background-clip":"padding|border","-moz-border-radius-bottomleft":"<'border-bottom-left-radius'>","-moz-border-radius-bottomright":"<'border-bottom-right-radius'>","-moz-border-radius-topleft":"<'border-top-left-radius'>","-moz-border-radius-topright":"<'border-bottom-right-radius'>","-moz-control-character-visibility":"visible|hidden","-moz-osx-font-smoothing":"auto|grayscale","-moz-user-select":"none|text|all|-moz-none","-ms-flex-align":"start|end|center|baseline|stretch","-ms-flex-item-align":"auto|start|end|center|baseline|stretch","-ms-flex-line-pack":"start|end|center|justify|distribute|stretch","-ms-flex-negative":"<'flex-shrink'>","-ms-flex-pack":"start|end|center|justify|distribute","-ms-flex-order":"<integer>","-ms-flex-positive":"<'flex-grow'>","-ms-flex-preferred-size":"<'flex-basis'>","-ms-interpolation-mode":"nearest-neighbor|bicubic","-ms-grid-column-align":"start|end|center|stretch","-ms-grid-row-align":"start|end|center|stretch","-ms-hyphenate-limit-last":"none|always|column|page|spread","-webkit-background-clip":"[<visual-box>|border|padding|content|text]#","-webkit-column-break-after":"always|auto|avoid","-webkit-column-break-before":"always|auto|avoid","-webkit-column-break-inside":"always|auto|avoid","-webkit-font-smoothing":"auto|none|antialiased|subpixel-antialiased","-webkit-mask-box-image":"[<url>|<gradient>|none] [<length-percentage>{4} <-webkit-mask-box-repeat>{2}]?","-webkit-print-color-adjust":"economy|exact","-webkit-text-security":"none|circle|disc|square","-webkit-user-drag":"none|element|auto",behavior:"<url>+",cue:"<'cue-before'> <'cue-after'>?","cue-after":"<url> <decibel>?|none","cue-before":"<url> <decibel>?|none","glyph-orientation-horizontal":"<angle>","glyph-orientation-vertical":"<angle>",kerning:"auto|<svg-length>",pause:"<'pause-before'> <'pause-after'>?","pause-after":"<time>|none|x-weak|weak|medium|strong|x-strong","pause-before":"<time>|none|x-weak|weak|medium|strong|x-strong","position-try-options":"<'position-try-fallbacks'>",rest:"<'rest-before'> <'rest-after'>?","rest-after":"<time>|none|x-weak|weak|medium|strong|x-strong","rest-before":"<time>|none|x-weak|weak|medium|strong|x-strong",speak:"auto|never|always","voice-balance":"<number>|left|center|right|leftwards|rightwards","voice-duration":"auto|<time>","voice-family":"[[<family-name>|<generic-voice>] ,]* [<family-name>|<generic-voice>]|preserve","voice-pitch":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-range":"<frequency>&&absolute|[[x-low|low|medium|high|x-high]||[<frequency>|<semitones>|<percentage>]]","voice-rate":"[normal|x-slow|slow|medium|fast|x-fast]||<percentage>","voice-stress":"normal|strong|moderate|none|reduced","voice-volume":"silent|[[x-soft|soft|medium|loud|x-loud]||<decibel>]","white-space-trim":"none|discard-before||discard-after||discard-inner"},atrules:{charset:{prelude:"<string>",descriptors:null},"counter-style":{prelude:"<counter-style-name>",descriptors:{"additive-symbols":"[<integer>&&<symbol>]#",fallback:"<counter-style-name>",negative:"<symbol> <symbol>?",pad:"<integer>&&<symbol>",prefix:"<symbol>",range:"[[<integer>|infinite]{2}]#|auto","speak-as":"auto|bullets|numbers|words|spell-out|<counter-style-name>",suffix:"<symbol>",symbols:"<symbol>+",system:"cyclic|numeric|alphabetic|symbolic|additive|[fixed <integer>?]|[extends <counter-style-name>]"}},container:{prelude:"[<container-name>]? <container-condition>",descriptors:null},document:{prelude:"[<url>|url-prefix( <string> )|domain( <string> )|media-document( <string> )|regexp( <string> )]#",descriptors:null},"font-face":{prelude:null,descriptors:{"ascent-override":"normal|<percentage>","descent-override":"normal|<percentage>","font-display":"auto|block|swap|fallback|optional","font-family":"<family-name>","font-feature-settings":"normal|<feature-tag-value>#","font-stretch":"<font-stretch-absolute>{1,2}","font-style":"normal|italic|oblique <angle>{0,2}","font-variation-settings":"normal|[<string> <number>]#","font-weight":"<font-weight-absolute>{1,2}","line-gap-override":"normal|<percentage>","size-adjust":"<percentage>",src:"[<url> [format( <string># )]?|local( <family-name> )]#","unicode-range":"<unicode-range-token>#"}},"font-feature-values":{prelude:"<family-name>#",descriptors:null},"font-palette-values":{prelude:"<dashed-ident>",descriptors:{"base-palette":"light|dark|<integer [0,∞]>","font-family":"<family-name>#","override-colors":"[<integer [0,∞]> <color>]#"}},import:{prelude:"[<string>|<url>] [layer|layer( <layer-name> )]? [supports( [<supports-condition>|<declaration>] )]? <media-query-list>?",descriptors:null},keyframes:{prelude:"<keyframes-name>",descriptors:null},layer:{prelude:"[<layer-name>#|<layer-name>?]",descriptors:null},media:{prelude:"<media-query-list>",descriptors:null},namespace:{prelude:"<namespace-prefix>? [<string>|<url>]",descriptors:null},page:{prelude:"<page-selector-list>",descriptors:{bleed:"auto|<length>",marks:"none|[crop||cross]","page-orientation":"upright|rotate-left|rotate-right",size:"<length>{1,2}|auto|[<page-size>||[portrait|landscape]]"}},"position-try":{prelude:"<dashed-ident>",descriptors:{top:"<'top'>",left:"<'left'>",bottom:"<'bottom'>",right:"<'right'>","inset-block-start":"<'inset-block-start'>","inset-block-end":"<'inset-block-end'>","inset-inline-start":"<'inset-inline-start'>","inset-inline-end":"<'inset-inline-end'>","inset-block":"<'inset-block'>","inset-inline":"<'inset-inline'>",inset:"<'inset'>","margin-top":"<'margin-top'>","margin-left":"<'margin-left'>","margin-bottom":"<'margin-bottom'>","margin-right":"<'margin-right'>","margin-block-start":"<'margin-block-start'>","margin-block-end":"<'margin-block-end'>","margin-inline-start":"<'margin-inline-start'>","margin-inline-end":"<'margin-inline-end'>",margin:"<'margin'>","margin-block":"<'margin-block'>","margin-inline":"<'margin-inline'>",width:"<'width'>",height:"<'height'>","min-width":"<'min-width'>","min-height":"<'min-height'>","max-width":"<'max-width'>","max-height":"<'max-height'>","block-size":"<'block-size'>","inline-size":"<'inline-size'>","min-block-size":"<'min-block-size'>","min-inline-size":"<'min-inline-size'>","max-block-size":"<'max-block-size'>","max-inline-size":"<'max-inline-size'>","align-self":"<'align-self'>|anchor-center","justify-self":"<'justify-self'>|anchor-center"}},property:{prelude:"<custom-property-name>",descriptors:{inherits:"true|false","initial-value":"<declaration-value>?",syntax:"<string>"}},scope:{prelude:"[( <scope-start> )]? [to ( <scope-end> )]?",descriptors:null},"starting-style":{prelude:null,descriptors:null},supports:{prelude:"<supports-condition>",descriptors:null},"view-transition":{prelude:null,descriptors:{navigation:"auto|none",types:"none|<custom-ident>+"}},nest:{prelude:"<complex-selector-list>",descriptors:null}},node:Mm},rf={};ps(rf,{AtrulePrelude:()=>lf,Selector:()=>cf,Value:()=>mf});function sf(n){switch(this.tokenType){case 4:return this.Hash();case 18:return this.Operator();case 21:return this.Parentheses(this.readSequence,n.recognizer);case 19:return this.Brackets(this.readSequence,n.recognizer);case 5:return this.String();case 12:return this.Dimension();case 11:return this.Percentage();case 10:return this.Number();case 2:return this.cmpStr(this.tokenStart,this.tokenEnd,"url(")?this.Url():this.Function(this.readSequence,n.recognizer);case 7:return this.Url();case 1:return this.cmpChar(this.tokenStart,117)&&this.cmpChar(this.tokenStart+1,43)?this.UnicodeRange():this.Identifier();case 9:{let n=this.charCodeAt(this.tokenStart);if(47===n||42===n||43===n||45===n)return this.Operator();35===n&&this.error("Hex or identifier is expected",this.tokenStart+1);break}}}var lf={getNode:sf};var cf={onWhiteSpace:function(n,e){null!==e.last&&"Combinator"!==e.last.type&&null!==n&&"Combinator"!==n.type&&e.push({type:"Combinator",loc:null,name:" "})},getNode:function(){switch(this.tokenType){case 19:return this.AttributeSelector();case 4:return this.IdSelector();case 16:return 16===this.lookupType(1)?this.PseudoElementSelector():this.PseudoClassSelector();case 1:return this.TypeSelector();case 10:case 11:return this.Percentage();case 12:46===this.charCodeAt(this.tokenStart)&&this.error("Identifier is expected",this.tokenStart+1);break;case 9:switch(this.charCodeAt(this.tokenStart)){case 43:case 62:case 126:case 47:return this.Combinator();case 46:return this.ClassSelector();case 42:case 124:return this.TypeSelector();case 35:return this.IdSelector();case 38:return this.NestingSelector()}}}};function df(n){return null!==n&&"Operator"===n.type&&("-"===n.value[n.value.length-1]||"+"===n.value[n.value.length-1])}var mf={getNode:sf,onWhiteSpace(n,e){df(n)&&(n.value=" "+n.value),df(e.last)&&(e.last.value+=" ")},expression:function(){return this.createSingleNodeList(this.Raw(null,!1))},var:function(){let n=this.createList();if(this.skipSC(),n.push(this.Identifier()),this.skipSC(),18===this.tokenType){n.push(this.Operator());let e=this.tokenIndex,t=this.parseCustomProperty?this.Value(null):this.Raw(this.consumeUntilExclamationMarkOrSemicolon,!1);if("Value"===t.type&&t.children.isEmpty)for(let n=e-this.tokenIndex;n<=0;n++)if(13===this.lookupType(n)){t.children.appendData({type:"WhiteSpace",loc:null,value:" "});break}n.push(t)}return n}},hf=new Set(["none","and","not","or"]),pf={parse:{prelude(){let n=this.createList();if(1===this.tokenType){let e=this.substring(this.tokenStart,this.tokenEnd);hf.has(e.toLowerCase())||n.push(this.Identifier())}return n.push(this.Condition("container")),n},block(n=!1){return this.Block(n)}}},uf={parse:{prelude:null,block(){return this.Block(!0)}}};function gf(n,e){return this.parseWithFallback(()=>{try{return n.call(this)}finally{this.skipSC(),22!==this.lookupNonWSType(0)&&this.error()}},e||(()=>this.Raw(null,!0)))}var wf={layer(){this.skipSC();let n=this.createList(),e=gf.call(this,this.Layer);return("Raw"!==e.type||""!==e.value)&&n.push(e),n},supports(){this.skipSC();let n=this.createList(),e=gf.call(this,this.Declaration,()=>gf.call(this,()=>this.Condition("supports")));return("Raw"!==e.type||""!==e.value)&&n.push(e),n}},bf={parse:{prelude(){let n=this.createList();switch(this.tokenType){case 5:n.push(this.String());break;case 7:case 2:n.push(this.Url());break;default:this.error("String or url() is expected")}return this.skipSC(),1===this.tokenType&&this.cmpStr(this.tokenStart,this.tokenEnd,"layer")?n.push(this.Identifier()):2===this.tokenType&&this.cmpStr(this.tokenStart,this.tokenEnd,"layer(")&&n.push(this.Function(null,wf)),this.skipSC(),2===this.tokenType&&this.cmpStr(this.tokenStart,this.tokenEnd,"supports(")&&n.push(this.Function(null,wf)),(1===this.lookupNonWSType(0)||21===this.lookupNonWSType(0))&&n.push(this.MediaQueryList()),n},block:null}},ff={parse:{prelude(){return this.createSingleNodeList(this.LayerList())},block(){return this.Block(!1)}}},yf={parse:{prelude(){return this.createSingleNodeList(this.MediaQueryList())},block(n=!1){return this.Block(n)}}},kf={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}},vf={parse:{prelude(){return this.createSingleNodeList(this.SelectorList())},block(){return this.Block(!0)}}},Sf={parse:{prelude(){return this.createSingleNodeList(this.Scope())},block(n=!1){return this.Block(n)}}},jf={parse:{prelude:null,block(n=!1){return this.Block(n)}}},xf={parse:{prelude(){return this.createSingleNodeList(this.Condition("supports"))},block(n=!1){return this.Block(n)}}},Cf={container:pf,"font-face":uf,import:bf,layer:ff,media:yf,nest:kf,page:vf,scope:Sf,"starting-style":jf,supports:xf};var Af={parse(){return this.createSingleNodeList(this.SelectorList())}},Lf={parse(){return this.createSingleNodeList(this.Selector())}},zf={parse(){return this.createSingleNodeList(this.Identifier())}},Tf={parse:function(){let n=this.createList();this.skipSC();n:for(;!this.eof;){switch(this.tokenType){case 1:n.push(this.Identifier());break;case 5:n.push(this.String());break;case 18:n.push(this.Operator());break;case 22:break n;default:this.error("Identifier, string or comma is expected")}this.skipSC()}return n}},Ef={parse(){return this.createSingleNodeList(this.Nth())}},Rf={dir:zf,has:Af,lang:Tf,matches:Af,is:Af,"-moz-any":Af,"-webkit-any":Af,where:Af,not:Af,"nth-child":Ef,"nth-last-child":Ef,"nth-last-of-type":Ef,"nth-of-type":Ef,slotted:Lf,host:Lf,"host-context":Lf},If={};ps(If,{AnPlusB:()=>Km,Atrule:()=>eh,AtrulePrelude:()=>sh,AttributeSelector:()=>kh,Block:()=>Rh,Brackets:()=>Nh,CDC:()=>Uh,CDO:()=>Vh,ClassSelector:()=>Xh,Combinator:()=>sp,Comment:()=>up,Condition:()=>Sp,Declaration:()=>Bp,DeclarationList:()=>Kp,Dimension:()=>Xp,Feature:()=>ou,FeatureFunction:()=>du,FeatureRange:()=>vu,Function:()=>Lu,GeneralEnclosed:()=>Iu,Hash:()=>Bu,IdSelector:()=>Ju,Identifier:()=>Hu,Layer:()=>ng,LayerList:()=>ig,MediaQuery:()=>dg,MediaQueryList:()=>gg,NestingSelector:()=>vg,Nth:()=>Ag,Number:()=>Rg,Operator:()=>Ng,Parentheses:()=>Ug,Percentage:()=>Vg,PseudoClassSelector:()=>Xg,PseudoElementSelector:()=>ow,Ratio:()=>mw,Raw:()=>bw,Rule:()=>Cw,Scope:()=>Ew,Selector:()=>Pw,SelectorList:()=>Uw,String:()=>Xw,StyleSheet:()=>rb,SupportsDeclaration:()=>mb,TypeSelector:()=>yb,UnicodeRange:()=>Rb,Url:()=>Gb,Value:()=>Zb,WhiteSpace:()=>tf});var Df={parseContext:{default:"StyleSheet",stylesheet:"StyleSheet",atrule:"Atrule",atrulePrelude(n){return this.AtrulePrelude(n.atrule?String(n.atrule):null)},mediaQueryList:"MediaQueryList",mediaQuery:"MediaQuery",condition(n){return this.Condition(n.kind)},rule:"Rule",selectorList:"SelectorList",selector:"Selector",block(){return this.Block(!0)},declarationList:"DeclarationList",declaration:"Declaration",value:"Value"},features:{supports:{selector(){return this.Selector()}},container:{style(){return this.Declaration()}}},scope:rf,atrule:Cf,pseudo:Rf,node:If},Mf=Dm({...of,...Df,...{node:Mm}});function Pf(n){let e={};for(let t of Object.keys(n)){let a=n[t];a&&(Array.isArray(a)||a instanceof Rl?a=a.map(Pf):a.constructor===Object&&(a=Pf(a))),e[t]=a}return e}var Nf={};ps(Nf,{decode:()=>Bf,encode:()=>Of});var _f=92;function Bf(n){let e=n.length-1,t="";for(let a=0;a<n.length;a++){let o=n.charCodeAt(a);if(o===_f){if(a===e)break;if(o=n.charCodeAt(++a),el(_f,o)){let e=a-1,o=ul(n,e);a=o-1,t+=fl(n.substring(e+1,o))}else 13===o&&10===n.charCodeAt(a+1)&&a++}else t+=n[a]}return t}function Of(n){let e="";if(1===n.length&&45===n.charCodeAt(0))return"\\-";for(let t=0;t<n.length;t++){let a=n.charCodeAt(t);0!==a?a<=31||127===a||a>=48&&a<=57&&(0===t||1===t&&45===n.charCodeAt(0))?e+="\\"+a.toString(16)+" ":$s(a)?e+=n.charAt(t):e+="\\"+n.charAt(t):e+="�"}return e}var{tokenize:Ff,parse:Uf,generate:qf,lexer:Hf,createLexer:Wf,walk:Gf,find:Vf,findLast:Kf,findAll:Jf,toPlainObject:Yf,fromPlainObject:Zf,fork:$f}=Mf,Xf=Object.freeze({__proto__:null,Lexer:Lm,List:Rl,OffsetToLocation:Sl,TokenStream:zl,clone:Pf,createLexer:Wf,createSyntax:Dm,definitionSyntax:td,find:Vf,findAll:Jf,findLast:Kf,fork:$f,fromPlainObject:Zf,generate:qf,ident:Nf,isCustomProperty:kc,keyword:bc,lexer:Hf,parse:Uf,property:fc,string:Ww,toPlainObject:Yf,tokenNames:yl,tokenTypes:ks,tokenize:Ff,url:Mb,vendorPrefix:yc,version:"3.1.0",walk:Gf});const Qf=new Set(["inherit","initial","unset"]),ny=new Set(["caption","icon","menu","message-box","small-caption","status-bar"]),ey=new Set(["normal","bold","bolder","lighter","100","200","300","400","500","600","700","800","900"]),ty=new Set(["normal","italic","oblique"]),ay=new Set(["normal","small-caps"]),oy=new Set(["normal","condensed","semi-condensed","extra-condensed","ultra-condensed","expanded","semi-expanded","extra-expanded","ultra-expanded"]),iy=new Set(["Dimension","Identifier","Percentage","Number","Function","UnaryExpression"]),ry=new Set(["style","variant","weight","stretch"]),sy="Operator",ly="Identifier",cy="normal";function dy(n){const e=qf(n),t=e.toLowerCase();if(ny.has(t))return{system:e};if(Qf.has(t))return{global:e};const a=n.children,o={lineHeight:cy,stretch:cy,style:cy,variant:cy,weight:cy},i={style:!1,variant:!1,weight:!1,stretch:!1};for(let n=a.head;n;n=n.next){const e=n.data.name||n.data.value||qf(n.data),t=e.toLowerCase();if(t!==cy)if(ey.has(t))i.weight||(o.weight=e,i.weight=!0);else if(ty.has(t))i.style||(o.style=e,i.style=!0);else if(ay.has(t))i.variant||(o.variant=e,i.variant=!0);else{if(!oy.has(t)){if(iy.has(n.data.type)){if(o.size=qf(n.data),n=n.next,n&&n.data.type==sy&&"/"==n.data.value&&n.next&&(o.lineHeight=qf(n.next.data),n=n.next.next),!n)throw my("Missing required font-family.");o.family=[];let e="";for(;n;){for(;n&&n.data.type==sy&&","==n.data.value;)n=n.next;if(n)if(n.data.type==ly)for(;n&&n.data.type==ly;)e+=" "+qf(n.data),n=n.next;else e=hy(qf(n.data)),n=n.next;e=e.trim(),e&&(o.family.push(e),e="")}return o}throw my("Unknown or unsupported font token: "+e)}i.stretch||(o.stretch=e,i.stretch=!0)}else ry.forEach(n=>{i[n]||(o[n]=e)})}throw my("Missing required font-size.")}function my(n){return new Error("[parse-css-font] "+n)}function hy(n){return n?(('"'===n[0]&&'"'===n[n.length-1]||"'"===n[0]&&"'"===n[n.length-1])&&(n=n.slice(1,-1)),Do(n).trim()):n}var py=Object.freeze({__proto__:null,parse:dy});function uy(n,e=0){const t=[{mode:"normal",character:null}],a=[];let o=0,i="",r=null,s=null,l=e,c=n;"("===n[0]&&")"===n[n.length-1]&&(c=n.substring(1,n.length-1),l++);for(let n=0;n<c.length;n++){const e=c[n];if("'"!==e&&'"'!==e||(!0===t[o].isCalculationEnabled?(t.push({mode:"string",isCalculationEnabled:!1,character:e}),o++):"string"===t[o].mode&&t[o].character===e&&"\\"!==c[n-1]&&(t.pop(),o--)),"{"===e?(t.push({mode:"interpolation",isCalculationEnabled:!0}),o++):"}"===e&&(t.pop(),o--),"normal"===t[o].mode&&":"===e){const e=c.substring(n+1);s={type:"value",before:/^(\s*)/.exec(e)[1],after:/(\s*)$/.exec(e)[1],value:e.trim()},s.sourceIndex=s.before.length+n+1+l,r={type:"colon",sourceIndex:n+l,after:s.before,value:":"};break}i+=e}return i={type:"media-feature",before:/^(\s*)/.exec(i)[1],after:/(\s*)$/.exec(i)[1],value:i.trim()},i.sourceIndex=i.before.length+l,a.push(i),null!==r&&(r.before=i.after,a.push(r)),null!==s&&a.push(s),a}function gy(n,e=0){const t=[];let a,o=0,i=!1;function r(){return{before:"",after:"",value:""}}a={before:"",after:"",value:""};for(let s=0;s<n.length;s++){const l=n[s];i?(a.value+=l,"{"!==l&&"("!==l||o++,")"!==l&&"}"!==l||o--):-1!==l.search(/\s/)?a.before+=l:("("===l&&(a.type="media-feature-expression",o++),a.value=l,a.sourceIndex=e+s,i=!0),!i||0!==o||")"!==l&&s!==n.length-1&&-1===n[s+1].search(/\s/)||(-1!==["not","only","and"].indexOf(a.value)&&(a.type="keyword"),"media-feature-expression"===a.type&&(a.nodes=uy(a.value,a.sourceIndex)),t.push(Array.isArray(a.nodes)?new by(a):new fy(a)),a=r(),i=!1)}for(let n=0;n<t.length;n++)if(a=t[n],n>0&&(t[n-1].after=a.before),void 0===a.type){if(n>0){if("media-feature-expression"===t[n-1].type){a.type="keyword";continue}if("not"===t[n-1].value||"only"===t[n-1].value){a.type="media-type";continue}if("and"===t[n-1].value){a.type="media-feature-expression";continue}"media-type"===t[n-1].type&&(t[n+1]?a.type="media-feature-expression"===t[n+1].type?"keyword":"media-feature-expression":a.type="media-feature-expression")}if(0===n){if(!t[n+1]){a.type="media-type";continue}if(t[n+1]&&("media-feature-expression"===t[n+1].type||"keyword"===t[n+1].type)){a.type="media-type";continue}if(t[n+2]){if("media-feature-expression"===t[n+2].type){a.type="media-type",t[n+1].type="keyword";continue}if("keyword"===t[n+2].type){a.type="keyword",t[n+1].type="media-type";continue}}if(t[n+3]&&"media-feature-expression"===t[n+3].type){a.type="keyword",t[n+1].type="media-type",t[n+2].type="keyword";continue}}}return t}function wy(n){const e=[];let t=0,a=0;const o=/^(\s*)url\s*\(/.exec(n);if(null!==o){let a=o[0].length,i=1;for(;i>0;){const e=n[a];"("===e&&i++,")"===e&&i--,a++}e.unshift(new fy({type:"url",value:n.substring(0,a).trim(),sourceIndex:o[1].length,before:o[1],after:/^(\s*)/.exec(n.substring(a))[1]})),t=a}for(let o=t;o<n.length;o++){const i=n[o];if("("===i&&a++,")"===i&&a--,0===a&&","===i){const a=n.substring(t,o),i=/^(\s*)/.exec(a)[1];e.push(new by({type:"media-query",value:a.trim(),sourceIndex:t+i.length,nodes:gy(a,t),before:i,after:/(\s*)$/.exec(a)[1]})),t=o+1}}const i=n.substring(t),r=/^(\s*)/.exec(i)[1];return e.push(new by({type:"media-query",value:i.trim(),sourceIndex:t+r.length,nodes:gy(i,t),before:r,after:/(\s*)$/.exec(i)[1]})),e}function by(n){this.constructor(n),this.nodes=n.nodes,void 0===this.after&&(this.after=this.nodes.length>0?this.nodes[this.nodes.length-1].after:""),void 0===this.before&&(this.before=this.nodes.length>0?this.nodes[0].before:""),void 0===this.sourceIndex&&(this.sourceIndex=this.before.length),this.nodes.forEach(n=>{n.parent=this})}function fy(n){this.after=n.after,this.before=n.before,this.type=n.type,this.value=n.value,this.sourceIndex=n.sourceIndex}by.prototype=Object.create(fy.prototype),by.constructor=fy,by.prototype.walk=function(n,e){const t="string"==typeof n||n instanceof RegExp,a=t?e:n,o="string"==typeof n?new RegExp(n):n;for(let i=0;i<this.nodes.length;i++){const r=this.nodes[i];if((!t||o.test(r.type))&&a&&!1===a(r,i,this.nodes))return!1;if(r.nodes&&!1===r.walk(n,e))return!1}return!0},by.prototype.each=function(n=()=>{}){for(let e=0;e<this.nodes.length;e++){if(!1===n(this.nodes[e],e,this.nodes))return!1}return!0};var yy=Object.freeze({__proto__:null,parseMediaList:wy});const ky="___PRESERVED_TOKEN_",vy={maxLineLen:0,expandVars:!1,uglyComments:!1,cuteComments:!1,debug:!1,output:""},Sy=/url\(\s*(["']?)data:/g,jy=/\s+/g,xy=/\n/g;const Cy=/(=\s*?["']?)?#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])(\}|[^0-9a-f{][^{]*?\})/gi;const Ay=/@[a-z0-9-_]*keyframes\s+[a-z0-9-_]+\s*{/gi,Ly=/(^\s|\s$)/g;const zy=/"([^\\"])*"/g,Ty=/"(\\.)*"/g,Ey=/"(\\)*"/g,Ry=/'([^\\'])*'/g,Iy=/'(\\.)*'/g,Dy=/'(\\)*'/g,My=/progid:DXImageTransform.Microsoft.Alpha\(Opacity=/gi,Py=/\r\n/g,Ny=/[\r\n]/g,_y=/@variables\s*\{\s*([^}]+)\s*\}/g,By=/\s*([a-z0-9-]+)\s*:\s*([^;}]+)\s*/gi,Oy=/var\s*\(\s*([^)]+)\s*\)/g,Fy=/calc\(([^;}]*)\)/g,Uy=/(^\s*|\s*$)/g,qy=/\( /g,Hy=/ \)/g,Wy=/\s*filter:\s*progid:DXImageTransform.Microsoft.Matrix\(([^)]+)\);/g,Gy=/(^|\})(([^{:])+:)+([^{]*{)/g,Vy=/\s+([!{;:>+()\],])/g,Ky=/([^\\])\s+([}])/g,Jy=/!important/g,Yy=/___PSEUDOCLASSCOLON___/g,Zy=/:/g,$y=/\s*(animation|animation-delay|animation-duration|transition|transition-delay|transition-duration):\s*([^;}]+)/gi,Xy=/(^|\D)0?\.?0(m?s)/gi,Qy=/\s*(flex|flex-basis):\s*([^;}]+)/gi,nk=/\s+/,ek=/(hsla?)\(([^)]+)\)/g,tk=/(^\s+|\s+$)/g,ak=/:first-(line|letter)(\{|,)/gi,ok=/^(.*)(@charset)( "[^"]*";)/gi,ik=/^((\s*)(@charset)( [^;]+;\s*))+/gi,rk=/@(font-face|import|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?keyframe|media|page|namespace)/gi,sk=/:(active|after|before|checked|disabled|empty|enabled|first-(?:child|of-type)|focus|hover|last-(?:child|of-type)|link|only-(?:child|of-type)|root|:selection|target|visited)/gi,lk=/^(.*)(@charset "[^"]*";)/g,ck=/^(\s*@charset [^;]+;\s*)+/g,dk=/:(lang|not|nth-child|nth-last-child|nth-last-of-type|nth-of-type|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?any)\(/gi,mk=/([:,( ]\s*)(attr|color-stop|from|rgba|to|url|(?:-(?:atsc|khtml|moz|ms|o|wap|webkit)-)?(?:calc|max|min|(?:repeating-)?(?:linear|radial)-gradient)|-webkit-gradient)/gi,hk=/\s*\/\*/g,pk=/\*\/\s*/g,uk=/\band\(/gi,gk=/([^:])not\(/gi,wk=/\bor\(/gi,bk=/([!{}:;>+([,])\s+/g,fk=/;+\}/g,yk=/([0-9])\.0(ex|ch|r?em|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|g?rad|turn|m?s|k?Hz|dpi|dpcm|dppx|%| |;)/gi,kk=/:0 0 0 0(;|\})/g,vk=/:0 0 0(;|\})/g,Sk=/(transform-origin|webkit-transform-origin|moz-transform-origin|o-transform-origin|ms-transform-origin|box-shadow):0(;|\})/gi,jk=/(:|\s)0+\.(\d+)/g,xk=/rgb\s*\(\s*([0-9,\s]+)\s*\)/gi,Ck=/(border|border-top|border-right|border-bottom|border-left|outline|background):none(;|\})/gi,Ak=/progid:DXImageTransform\.Microsoft\.Alpha\(Opacity=/gi,Lk=/\(([-A-Za-z]+):([0-9]+)\/([0-9]+)\)/g,zk=/___QUERY_FRACTION___/g,Tk=/;;+/g,Ek=/(:|\s)(#f00)(;|})/g,Rk=/___PRESERVED_NEWLINE___/g,Ik=/(:|\s)(#000080)(;|})/g,Dk=/(:|\s)(#808080)(;|})/g,Mk=/(:|\s)(#808000)(;|})/g,Pk=/(:|\s)(#800080)(;|})/g,Nk=/(:|\s)(#c0c0c0)(;|})/g,_k=/(:|\s)(#008080)(;|})/g,Bk=/(:|\s)(#ffa500)(;|})/g,Ok=/(:|\s)(#800000)(;|})/g;function Fk(n="",e=vy){const t=[],a=[];let o;const i=n;function r(e){n=n.replace(e,n=>{const e=n.substring(0,1);if((n=n.slice(1,-1)).indexOf("___PRESERVE_CANDIDATE_COMMENT_")>=0)for(let e=0,a=t.length;e<a;e+=1)n=n.replace("___PRESERVE_CANDIDATE_COMMENT_"+e+"___",t[e]);return n=n.replace(My,"alpha(opacity="),a.push(n),e+ky+(a.length-1)+"___"+e})}n=function(n,e){const t=Sy,a=n.length-1,o=[];let i,r=0;for(;null!==(i=t.exec(n));){const s=i.index+4;let l=i[1];0===l.length&&(l=")");let c=!1,d=t.lastIndex-1;for(;!1===c&&d+1<=a&&-1!=d;)d=n.indexOf(l,d+1),d>0&&"\\"!==n.charAt(d-1)&&(c=!0,")"!=l&&(d=n.indexOf(")",d)));if(o.push(n.substring(r,i.index)),c){let t=n.substring(s,d);const a=t.split(",");a.length>1&&";base64"==a[0].slice(-7)?t=t.replace(jy,""):(t=t.replace(xy," "),t=t.replace(jy," "),t=t.replace(tk,"")),e.push(t);const i="url("+ky+(e.length-1)+"___)";o.push(i),r=d+1}else o.push(n.substring(i.index,t.lastIndex)),r=t.lastIndex}return o.push(n.substring(r)),o.join("")}(n,a),n=function(n,e){const t=[];let a,o=0;for(;;){const i=n.indexOf("/*",o);if(!(i>-1))break;if(a=n.indexOf("*/",i+2),!(a>-1)){a=-2;break}e.push(n.slice(i+2,a)),t.push(n.slice(o,i)),t.push("/*___PRESERVE_CANDIDATE_COMMENT_"+(e.length-1)+"___*/"),o=a+2}return t.push(n.slice(a+2)),t.join("")}(n,t),r(zy),r(Ty),r(Ey),r(Ry),r(Iy),r(Dy);for(let o=0,i=t.length;o<i;o+=1){const i=t[o],r="___PRESERVE_CANDIDATE_COMMENT_"+o+"___";if("!"!==i.charAt(0))if("\\"!==i.charAt(i.length-1)){if(0===i.length){const e=n.indexOf(r);e>2&&">"===n.charAt(e-3)&&(a.push(""),n=n.replace(r,ky+(a.length-1)+"___"))}n=n.replace(`/*${r}*/`,"")}else a.push("\\"),n=n.replace(r,ky+(a.length-1)+"___"),o+=1,a.push(""),n=n.replace("___PRESERVE_CANDIDATE_COMMENT_"+o+"___",ky+(a.length-1)+"___");else e.cuteComments?a.push(i.substring(1).replace(Py,"\n")):e.uglyComments?a.push(i.substring(1).replace(Ny,"")):a.push(i),n=n.replace(r,ky+(a.length-1)+"___")}if(e.expandVars){const e={};o=_y,n=n.replace(o,(n,t)=>(o=By,t.replace(o,(n,t,a)=>(t&&a&&(e[t]=a),"")),"")),o=Oy,n=n.replace(o,(n,t)=>e[t]||"none")}n=n.replace(jy," "),o=Fy,n=n.replace(o,(n,e)=>(a.push("calc("+e.replace(Uy,"").replace(qy,"(").replace(Hy,")")+")"),ky+(a.length-1)+"___")),o=Wy,n=n.replace(o,(n,e)=>(a.push(e),"filter:progid:DXImageTransform.Microsoft.Matrix("+ky+(a.length-1)+"___);"));try{o=Gy,n=n.replace(o,n=>n.replace(Zy,"___PSEUDOCLASSCOLON___"))}catch(n){}if(n=(n=(n=(n=n.replace(Vy,"$1")).replace(Ky,"$1$2")).replace(Jy," !important")).replace(Yy,":"),o=$y,n=n.replace(o,(n,e,t)=>e+":"+(t=t.replace(Xy,(n,e,t)=>(a.push("0"+t),e+ky+(a.length-1)+"___")))),o=Qy,n=function(n,e){const t=Ay;let a,o=0;const i=(n,t)=>{"0"===(n=n.replace(Ly,"")).charAt(0)&&(e.push(n),a[t]=ky+(e.length-1)+"___")};for(;;){let e=0;a="";let r=n.slice(o).search(t);if(r<0)break;o+=r,r=o;const s=n.length,l=[];for(;o<s;++o){const t=n.charAt(o);if("{"===t)0===e?l.push(a.replace(Ly,"")):1===e&&(a=a.split(","),a.forEach(i),l.push(a.join(",").replace(Ly,""))),a="",e+=1;else if("}"===t){if(2===e)l.push("{"+a.replace(Ly,"")+"}"),a="";else if(1===e){n=n.slice(0,r)+l.shift()+"{"+l.join("")+n.slice(o);break}e-=1}if(e<0)break;"{"!==t&&"}"!==t&&(a+=t)}}return n}(n=(n=n.replace(o,(n,e,t)=>{let o=t.split(nk);return a.push(o.pop()),o.push(ky+(a.length-1)+"___"),o=o.join(" "),`${e}:${o}`})).replace(ek,(n,e,t)=>{const o=[];return t.split(",").forEach(n=>{"0%"===(n=n.replace(tk,""))?(a.push("0%"),o.push(ky+(a.length-1)+"___")):o.push(n)}),e+"("+o.join(",")+")"}),a),n=n.replace(ak,(n,e,t)=>":first-"+e.toLowerCase()+" "+t),n=e.cuteComments?(n=n.replace(hk,"___PRESERVED_NEWLINE___/*")).replace(pk,"*/___PRESERVED_NEWLINE___"):n.replace(pk,"*/"),o=ok,n=n.replace(o,(n,e,t,a)=>t.toLowerCase()+a+e),o=ik,n=n.replace(o,(n,e,t,a,o)=>t+a.toLowerCase()+o),o=rk,n=n.replace(o,(n,e)=>"@"+e.toLowerCase()),o=sk,n=(n=(n=n.replace(o,(n,e)=>":"+e.toLowerCase())).replace(lk,"$2$1")).replace(ck,"$1"),o=dk,n=n.replace(o,(n,e)=>":"+e.toLowerCase()+"("),o=mk,n=(n=(n=(n=(n=(n=(n=(n=(n=n.replace(o,(n,e,t)=>e+t.toLowerCase())).replace(uk,"and (")).replace(gk,"$1not (")).replace(wk,"or (")).replace(bk,"$1")).replace(fk,"}")).replace(yk,"$1$2")).replace(kk,":0$1")).replace(vk,":0$1"),o=Sk,n=(n=n.replace(o,(n,e,t)=>e.toLowerCase()+":0 0"+t)).replace(jk,"$1.$2"),o=xk,n=function(n){const e=Cy,t=[];let a,o=0;for(;null!==(a=e.exec(n));)t.push(n.substring(o,a.index)),a[1]?t.push(a[1]+"#"+(a[2]+a[3]+a[4]+a[5]+a[6]+a[7])):a[2].toLowerCase()==a[3].toLowerCase()&&a[4].toLowerCase()==a[5].toLowerCase()&&a[6].toLowerCase()==a[7].toLowerCase()?t.push("#"+(a[3]+a[5]+a[7]).toLowerCase()):t.push("#"+(a[2]+a[3]+a[4]+a[5]+a[6]+a[7]).toLowerCase()),o=e.lastIndex=e.lastIndex-a[8].length;return t.push(n.substring(o)),t.join("")}(n=n.replace(o,(n,e)=>{const t=e.split(",");let a="#";for(let n=0;n<t.length;n+=1){let e=parseInt(t[n],10);e<16&&(a+="0"),e>255&&(e=255),a+=e.toString(16)}return a})),n=(n=(n=(n=(n=(n=(n=(n=(n=n.replace(Ek,"$1red$3")).replace(Ik,"$1navy$3")).replace(Dk,"$1gray$3")).replace(Mk,"$1olive$3")).replace(Pk,"$1purple$3")).replace(Nk,"$1silver$3")).replace(_k,"$1teal$3")).replace(Bk,"$1orange$3")).replace(Ok,"$1maroon$3"),o=Ck,n=(n=(n=(n=n.replace(o,(n,e,t)=>e.toLowerCase()+":0"+t)).replace(Ak,"alpha(opacity=")).replace(Lk,"($1:$2___QUERY_FRACTION___$3)")).replace(zk,"/"),e.maxLineLen>0){const t=[];let a=[];for(let o=0,i=n.length;o<i;o+=1){const i=n.charAt(o);a.push(i),"}"===i&&a.length>e.maxLineLen&&(t.push(a.join("")),a=[])}a.length&&t.push(a.join("")),n=t.join("\n")}if(n=(n=n.replace(Tk,";")).replace(Uy,""),a.length>1e3)return i;for(let e=a.length-1;e>=0;e--)n=n.replace(ky+e+"___",a[e],"g");return n=n.replace(Rk,"\n")}var Uk=Object.freeze({__proto__:null,defaultOptions:vy,processString:Fk});function qk(n){function e(n){return" "===n||"\t"===n||"\n"===n||"\f"===n||"\r"===n}function t(e){let t;const a=e.exec(n.substring(g));if(a)return t=a[0],g+=t.length,t}const a=n.length,o=/^[ \t\n\r\u000c]+/,i=/^[, \t\n\r\u000c]+/,r=/^[^ \t\n\r\u000c]+/,s=/[,]+$/,l=/^\d+$/,c=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;let d,m,h,p,u,g=0;const w=[];for(;;){if(t(i),g>=a)return w;d=t(r),m=[],","===d.slice(-1)?(d=d.replace(s,""),f()):b()}function b(){for(t(o),h="",p="in descriptor";;){if(u=n.charAt(g),"in descriptor"===p)if(e(u))h&&(m.push(h),h="",p="after descriptor");else{if(","===u)return g+=1,h&&m.push(h),void f();if("("===u)h+=u,p="in parens";else{if(""===u)return h&&m.push(h),void f();h+=u}}else if("in parens"===p)if(")"===u)h+=u,p="in descriptor";else{if(""===u)return m.push(h),void f();h+=u}else if("after descriptor"===p)if(e(u));else{if(""===u)return void f();p="in descriptor",g-=1}g+=1}}function f(){let e,t,a,o,i,r,s,h,p,u=!1;const g={};for(o=0;o<m.length;o++)i=m[o],r=i[i.length-1],s=i.substring(0,i.length-1),h=parseInt(s,10),p=parseFloat(s),l.test(s)&&"w"===r?((e||t)&&(u=!0),0===h?u=!0:e=h):c.test(s)&&"x"===r?((e||t||a)&&(u=!0),p<0?u=!0:t=p):l.test(s)&&"h"===r?((a||t)&&(u=!0),0===h?u=!0:a=h):u=!0;u?console&&console.log&&console.log('Invalid srcset descriptor found in "'+n+'" at "'+i+'".'):(g.url=d,e&&(g.w=e),t&&(g.d=t),a&&(g.h=a),w.push(g))}}var Hk=Object.freeze({__proto__:null,process:qk});let Wk,Gk,Vk,Kk;Wk={},Wk.removeLeadingAndTrailingHTTPWhitespace=n=>n.replace(/^[ \t\n\r]+/,"").replace(/[ \t\n\r]+$/,""),Wk.removeTrailingHTTPWhitespace=n=>n.replace(/[ \t\n\r]+$/,""),Wk.isHTTPWhitespaceChar=n=>" "===n||"\t"===n||"\n"===n||"\r"===n,Wk.solelyContainsHTTPTokenCodePoints=n=>/^[-!#$%&'*+.^_`|~A-Za-z0-9]*$/.test(n),Wk.soleyContainsHTTPQuotedStringTokenCodePoints=n=>/^[\t\u0020-\u007E\u0080-\u00FF]*$/.test(n),Wk.asciiLowercase=n=>n.replace(/[A-Z]/g,n=>n.toLowerCase()),Wk.collectAnHTTPQuotedString=(n,e)=>{let t="";for(e++;;){for(;e<n.length&&'"'!==n[e]&&"\\"!==n[e];)t+=n[e],++e;if(e>=n.length)break;const a=n[e];if(++e,"\\"!==a)break;if(e>=n.length){t+="\\";break}t+=n[e],++e}return[t,e]};{const{solelyContainsHTTPTokenCodePoints:n}=Wk;Vk=e=>{let t=`${e.type}/${e.subtype}`;if(0===e.parameters.size)return t;for(let[a,o]of e.parameters)t+=";",t+=a,t+="=",n(o)&&0!==o.length||(o=o.replace(/(["\\])/g,"\\$1"),o=`"${o}"`),t+=o;return t}}{const{removeLeadingAndTrailingHTTPWhitespace:n,removeTrailingHTTPWhitespace:e,isHTTPWhitespaceChar:t,solelyContainsHTTPTokenCodePoints:a,soleyContainsHTTPQuotedStringTokenCodePoints:o,asciiLowercase:i,collectAnHTTPQuotedString:r}=Wk;Gk=s=>{s=n(s);let l=0,c="";for(;l<s.length&&"/"!==s[l];)c+=s[l],++l;if(0===c.length||!a(c))return null;if(l>=s.length)return null;++l;let d="";for(;l<s.length&&";"!==s[l];)d+=s[l],++l;if(d=e(d),0===d.length||!a(d))return null;const m={type:i(c),subtype:i(d),parameters:new Map};for(;l<s.length;){for(++l;t(s[l]);)++l;let n="";for(;l<s.length&&";"!==s[l]&&"="!==s[l];)n+=s[l],++l;if(n=i(n),l<s.length){if(";"===s[l])continue;++l}let c=null;if('"'===s[l])for([c,l]=r(s,l);l<s.length&&";"!==s[l];)++l;else{for(c="";l<s.length&&";"!==s[l];)c+=s[l],++l;if(c=e(c),""===c)continue}n.length>0&&a(n)&&o(c)&&!m.parameters.has(n)&&m.parameters.set(n,c)}return m}}{const n=Gk,e=Vk,{asciiLowercase:t,solelyContainsHTTPTokenCodePoints:a,soleyContainsHTTPQuotedStringTokenCodePoints:o}=Wk;Kk=class{constructor(e){e=String(e);const t=n(e);if(null===t)throw new Error(`Could not parse MIME type string "${e}"`);this._type=t.type,this._subtype=t.subtype,this._parameters=new i(t.parameters)}static parse(n){try{return new this(n)}catch(n){return null}}get essence(){return`${this.type}/${this.subtype}`}get type(){return this._type}set type(n){if(0===(n=t(String(n))).length)throw new Error("Invalid type: must be a non-empty string");if(!a(n))throw new Error(`Invalid type ${n}: must contain only HTTP token code points`);this._type=n}get subtype(){return this._subtype}set subtype(n){if(0===(n=t(String(n))).length)throw new Error("Invalid subtype: must be a non-empty string");if(!a(n))throw new Error(`Invalid subtype ${n}: must contain only HTTP token code points`);this._subtype=n}get parameters(){return this._parameters}toString(){return e(this)}isJavaScript({allowParameters:n=!1}={}){switch(this._type){case"text":switch(this._subtype){case"ecmascript":case"javascript":case"javascript1.0":case"javascript1.1":case"javascript1.2":case"javascript1.3":case"javascript1.4":case"javascript1.5":case"jscript":case"livescript":case"x-ecmascript":case"x-javascript":return n||0===this._parameters.size;default:return!1}case"application":switch(this._subtype){case"ecmascript":case"javascript":case"x-ecmascript":case"x-javascript":return n||0===this._parameters.size;default:return!1}default:return!1}}isXML(){return"xml"===this._subtype&&("text"===this._type||"application"===this._type)||this._subtype.endsWith("+xml")}isHTML(){return"html"===this._subtype&&"text"===this._type}};class i{constructor(n){this._map=n}get size(){return this._map.size}get(n){return n=t(String(n)),this._map.get(n)}has(n){return n=t(String(n)),this._map.has(n)}set(n,e){if(n=t(String(n)),e=String(e),!a(n))throw new Error(`Invalid MIME type parameter name "${n}": only HTTP token code points are valid.`);if(!o(e))throw new Error(`Invalid MIME type parameter value "${e}": only HTTP quoted-string token code points are valid.`);return this._map.set(n,e)}clear(){this._map.clear()}delete(n){return n=t(String(n)),this._map.delete(n)}forEach(n,e){this._map.forEach(n,e)}keys(){return this._map.keys()}values(){return this._map.values()}entries(){return this._map.entries()}[Symbol.iterator](){return this._map[Symbol.iterator]()}}}var Jk=Object.freeze({__proto__:null,get MIMEType(){return Kk},cssMinifier:Uk,cssUnescape:Mo,fontPropertyParser:py,mediaQueryParser:yy,srcsetParser:Hk,zip:Oa});const Yk={normalizeFontFamily:Zi,flatten:rr,getFontWeight:ar,removeQuotes:tr},Zk=/\s*,\s*/,$k=/-/,Xk=/\?/g,Qk=/^U\+/i,nv=[/^normal$/,/^italic$/,/^oblique$/,/^oblique\s+/];function ev(n,e,t,a){const o={rules:{processed:0,discarded:0},fonts:{processed:0,discarded:0}},i={declared:[],used:[]},r=n.createElement("style");let s="";n.body.appendChild(r),e.forEach(e=>{if(e.stylesheet){const t=e.stylesheet.children;t&&(o.processed+=t.size,o.discarded+=t.size,tv(t,i,a),s=pv(n,t,r,s))}}),t.forEach(n=>{const e=lv(n,a);e.length&&i.used.push(e),s=uv(n.children,r,s)}),r.remove(),s+=n.body.innerText,globalThis.getComputedStyle&&a.doc&&(i.used=i.used.map(n=>n.map(n=>{const e=n.match(/^var\((--.*)\)$/);if(e&&e[1]){const t=globalThis.getComputedStyle(a.doc.body).getPropertyValue(e[1]);return t&&t.split(",").map(n=>Yk.normalizeFontFamily(n))||n}return n})),i.used=i.used.map(n=>Yk.flatten(n)));let l,c;i.used.find(n=>n.find(n=>n.match(/^var\(--/)))?l=[]:(c=new Map,i.used.forEach(n=>n.forEach(n=>{if(i.declared.find(e=>e.fontFamily==n)){const e=a.usedFonts&&a.usedFonts.filter(e=>e[0]==n);e&&e.length&&c.set(n,e)}})),l=i.declared.filter(n=>!c.has(n.fontFamily)));const d=Array.from(new Set(s)).map(n=>n.charCodeAt(0)).sort((n,e)=>n-e);return e.forEach(n=>{if(n.stylesheet){const e=n.stylesheet.children;e&&(av(e,i.declared,l,c,d),o.rules.discarded-=e.size)}}),o}function tv(n,e,t){n.forEach(n=>{if("Atrule"==n.type&&("media"==n.name||"supports"==n.name||"layer"==n.name||"container"==n.name)&&n.block&&n.block.children)tv(n.block.children,e,t);else if("Rule"==n.type){const a=lv(n.block,t);a.length&&e.used.push(a)}else if("Atrule"==n.type&&"font-face"==n.name){const t=Yk.normalizeFontFamily(sv(n.block.children,"font-family"));if(t){const a=sv(n.block.children,"font-weight")||"400",o=sv(n.block.children,"font-style")||"normal",i=sv(n.block.children,"font-variant")||"normal";a.split(",").forEach(n=>e.declared.push({fontFamily:t,fontWeight:Yk.getFontWeight(Yk.removeQuotes(n)),fontStyle:o,fontVariant:i}))}}})}function av(n,e,t,a,o){const i=[];for(let r=n.head;r;r=r.next){const n=r.data;if("Atrule"==n.type&&"import"==n.name&&n.prelude&&n.prelude.children&&n.prelude.children.head.data.importedChildren)av(n.prelude.children.head.data.importedChildren,e,t,a,o);else if("Atrule"==n.type&&("media"==n.name||"supports"==n.name||"layer"==n.name||"container"==n.name)&&n.block&&n.block.children)av(n.block.children,e,t,a,o);else if("Atrule"==n.type&&"font-face"==n.name){const s=Yk.normalizeFontFamily(sv(n.block.children,"font-family"));if(s){const l=sv(n.block.children,"unicode-range");!t.find(n=>n.fontFamily==s)&&wv(o,l)&&ov(n,s,e,a)||i.push(r)}const l=[];for(let e=n.block.children.head;e;e=e.next)"font-display"==e.data.property&&l.push(e);l.length&&l.forEach(e=>n.block.children.remove(e))}}i.forEach(e=>n.remove(e))}function ov(n,e,t,a){let o;const i=a&&a.get(e);if(i&&i.length){let a=sv(n.block.children,"font-style")||"normal";if(nv.find(n=>a.trim().match(n))){const r=Yk.getFontWeight(sv(n.block.children,"font-weight")||"400"),s=t.filter(n=>n.fontFamily==e&&n.fontStyle==a).map(n=>n.fontWeight.split(" ")).sort((n,e)=>Number.parseInt(n[0],10)-Number.parseInt(e[0],10));let l=i.map(n=>dv(n,a,s)).filter(n=>n);o=iv(r,l),o||(l=i.map(n=>((n=Array.from(n))[2]="normal",dv(n,a,s))).filter(n=>n),o=iv(r,l),o||(l=i.map(n=>((n=Array.from(n))[2]=a="normal",dv(n,a,s))).filter(n=>n),o=iv(r,l)))}else o=!0}else o=!0;return o}function iv(n,e){let t;for(const a of n.split(",")){let{min:n,max:o}=rv(a);o||(o=900),t=t||e.find(e=>{let{min:t,max:a}=rv(e);return a||(a=t),t>=n&&a<=o})}return t}function rv(n){const e=n.split(" ");return{min:Number.parseInt(Yk.getFontWeight(e[0]),10),max:e[1]&&Number.parseInt(Yk.getFontWeight(e[1]),10)}}function sv(n,e){let t;if(n&&(t=n.filter(n=>n.property==e).tail),t)try{return Yk.removeQuotes(qf(t.data.value)).toLowerCase()}catch(n){}}function lv(n,e){let t=n.children.filter(n=>"font-family"==n.property).tail,a=[];t&&(t.data.value.children?cv(t.data.value,a):(t=qf(t.data.value),t&&a.push(Yk.normalizeFontFamily(t))));const o=n.children.filter(n=>"font"==n.property).tail;if(o&&o.data&&o.data.value)try{let n=o.data.value;const t=qf(n).match(/^var\((--.*)\)$/);t&&t[1]&&(n=Uf(globalThis.getComputedStyle(e.doc.body).getPropertyValue(t[1]),{context:"value"}));dy(n).family.forEach(n=>a.push(Yk.normalizeFontFamily(n)))}catch(n){}return a}function cv(n,e){let t=n.children.head;for(;t;)if("Identifier"==t.data.type){let n=t.data.name,a=t.next;for(;a&&"Operator"!=a.data.type&&","!=a.data.value;)n+=" "+a.data.name,a=a.next;e.push(Yk.normalizeFontFamily(n)),t=t.next}else if("Function"==t.data.type&&"var"==t.data.name&&t.data.children){const n=t.data.children.head.data.name;e.push(Yk.normalizeFontFamily("var("+n+")"));let a=t.data.children.head.next;for(;a&&"Operator"==a.data.type&&","==a.data.value;)a=a.next;const o=a;o&&(o.data.children?cv(o.data,e):e.push(Yk.normalizeFontFamily(o.data.value))),t=t.next}else"String"==t.data.type?(e.push(Yk.normalizeFontFamily(t.data.value)),t=t.next):"Number"==t.data.type?(e.push(Yk.normalizeFontFamily(String(t.data.value))),t=t.next):t=t.next}function dv(n,e,t){let a;if(t=t.map(n=>n.map(n=>String(Number.parseInt(n,10)))),n[2]==e){let e=Number(n[1]);t.length>1?(e>=400&&e<=500&&(a=t.find(n=>n[0]>=e&&n[0]<=500),a||(a=mv(e,t)),a||(a=hv(e,t))),e<400&&(a=t.slice().reverse().find(n=>n[n.length-1]<=e),a||(a=hv(e,t))),e>500&&(a=t.find(n=>n[0]>=e),a||(a=mv(e,t))),a||(a=t.find(n=>n[0]<=e&&n[n.length-1]>=e))):a=t[0]}return a?a.join(" "):void 0}function mv(n,e){return e.slice().reverse().find(e=>e[e.length-1]<n)}function hv(n,e){return e.find(e=>e[0]>n)}function pv(n,e,t,a){return e.forEach(e=>{e.block&&e.block.children&&e.prelude&&e.prelude.children&&("Atrule"!=e.type||"media"!=e.name&&"supports"!=e.name&&"layer"!=e.name&&"container"!=e.name?"Rule"==e.type&&(a=uv(e.block.children,t,a)):a=pv(n,e.block.children,t,a))}),a}function uv(n,e,t){const a=gv(n,"content",e),o=gv(n,"quotes",e);return t.includes(a)||(t+=a),t.includes(o)||(t+=o),t}function gv(n,e,t){const a=sv(n,e)||"";return a?(t.textContent='tmp { content:"'+a+'"}',t.sheet&&t.sheet.cssRules?Yk.removeQuotes(t.sheet.cssRules[0].style.getPropertyValue("content")):a):""}function wv(n,e){if(e){const t=e.split(Zk),a=t.filter(e=>{const t=e.split($k);if(2==t.length)t[0]=bv(t[0]),t[1]=bv(t[1]);else if(1==t.length)if(t[0].includes("?")){const n=t[0],e=n;t[0]=bv(n.replace(Xk,"0")),t[1]=bv(e.replace(Xk,"F"))}else t[0]&&(t[0]=t[1]=bv(t[0]));if(!t[0]||n.find(n=>n>=t[0]&&n<=t[1]))return!0});return Boolean(!t.length||a.length)}return!0}function bv(n){return n=n.replace(Qk,""),parseInt(n,16)}var fv=Object.freeze({__proto__:null,process:ev});function yv(n){if(!n||!n.nodes)return!1;for(const e of n.nodes)if(e&&"keyword"===e.type&&e.value&&"not"===e.value.toLowerCase())return!0;return!1}function kv(n,e){for(let t=e-1;t>=0;t--){const e=n.nodes[t];if(e){if("operator"===e.type&&","===e.value)break;if("keyword"===e.type&&e.value&&"not"===e.value.toLowerCase())return!0}}return!1}function vv(n,e=[]){for(let t=0;t<n.nodes.length;t++){const a=n.nodes[t];if("media-query"!=a.type){if("media-type"==a.type){const o=kv(n,t);e.push({not:o,value:a.value})}}else vv(a,e)}return e}function Sv(n){if(!n||!n.nodes)return!1;for(const e of n.nodes)if(e){if("media-feature-expression"===e.type)return!0;if("keyword"===e.type&&e.value&&"and"===e.value.toLowerCase())return!0}return!!yv(n)}const jv={flatten:rr},xv="all";function Cv(n,{keepPrintStyleSheets:e}={}){const t={processed:0,discarded:0};return n.forEach((a,o)=>{if(a.stylesheet)if(Lv(a.mediaText||xv,e)&&a.stylesheet.children){Av(a.stylesheet.children,t,e).forEach(({cssRules:n,cssRule:e})=>n.remove(e))}else n.delete(o),o.element&&o.element.remove()}),t}function Av(n,e,t,a=[]){for(let o=n.head;o;o=o.next){const i=o.data;"Atrule"==i.type&&"media"==i.name&&i.block&&i.block.children&&i.prelude&&i.prelude.children&&(e.processed++,Lv(qf(i.prelude),t)?Av(i.block.children,e,t,a):(a.push({cssRules:n,cssRule:o}),e.discarded++))}return a}function Lv(n,e){let t;try{t=function(n){return wy(n)}(n);for(const n of t)if(n&&n.nodes){if(Sv(n))return!0;if(yv(n))return!0}}catch{return!0}let a=jv.flatten(t.filter(n=>n&&n.nodes).map(n=>vv(n)));return a&&a.length||(a=[{not:!1,value:xv}]),a.some(n=>!n.not&&("screen"==n.value||n.value==xv||e&&"print"==n.value))}var zv=Object.freeze({__proto__:null,process:Cv});function Tv(n,e={a:0,b:0,c:0}){if(!n||!n.type)return e;switch(n.type){case"Selector":Rv(n.children,n=>Tv(n,e));break;case"IdSelector":e.a++;break;case"ClassSelector":case"AttributeSelector":e.b++;break;case"TypeSelector":"*"!==n.name&&e.c++;break;case"PseudoElementSelector":e.c++;break;case"PseudoClassSelector":{const t=n.name.toLowerCase();if("where"===t)break;if("is"===t||"not"===t||"has"===t){Rv(n.children,n=>{"SelectorList"===n.type&&Ev(e,Iv(n))});break}if("nth-child"===t||"nth-last-child"===t){e.b++,Rv(n.children,n=>{"Nth"===n.type&&n.selector&&Ev(e,Iv(n.selector))});break}"scope"===t?e.c++:e.b++;break}}return e}function Ev(n,e){n.a+=e.a,n.b+=e.b,n.c+=e.c}function Rv(n,e){if(!n)return;let t=n.head;for(;t;)e(t.data),t=t.next}function Iv(n){let e={a:0,b:0,c:0};return Rv(n.children,n=>{const t=Tv(n,{a:0,b:0,c:0});(t.a>e.a||t.a===e.a&&t.b>e.b||t.a===e.a&&t.b===e.b&&t.c>e.c)&&(e=t)}),e}function Dv(n,e){if(!e||!e.length){let e={a:0,b:0,c:0};const t=[];return Gf(n,{enter(n){if(t.push(n),"Selector"===n.type){if(t.some(n=>"PseudoClassSelector"===n.type&&"where"===n.name))return;const a=Tv(n);(a.a>e.a||a.a===e.a&&a.b>e.b||a.a===e.a&&a.b===e.b&&a.c>e.c)&&(e=a)}},leave(){t.pop()}}),e}const t=qf(n);let a=[""];e.forEach(n=>{if(!n||!n.children||!n.children.size)return;const e=n.children.toArray(),t=[];a.forEach(n=>e.forEach(e=>{const a=qf(e),o=n?n+" "+a:a;t.includes(o)||t.push(o)})),t.length&&(a=t)});let o={a:0,b:0,c:0};const i=new Set;return a.forEach(n=>{const e=function(n,e){return n?e?-1!==e.indexOf("&")?e.split("&").join(n):n+" "+e:n:e}(n,t);if(!i.has(e)){i.add(e);try{const n=Dv(Uf(e,{context:"selectorList"}));(n.a>o.a||n.a===o.a&&n.b>o.b||n.a===o.a&&n.b===o.b&&n.c>o.c)&&(o=n)}catch{}}}),o}const Mv=new Set(["after","before","first-letter","first-line","placeholder","selection","part","marker"]);const Pv=["active-view-transition","active-view-transition-type","blank","buffering","current","first","future","has-slotted","host-context","heading","left","muted","open","past","paused","picture-in-picture","playing","right","seeking","stalled","volume-locked","after","before","visited","link","any-link","local-link","target","scope","hover","active","focus","focus-within","focus-visible","target-current","enabled","disabled","read-only","read-write","placeholder-shown","autofill","default","checked","indeterminate","blank","valid","invalid","in-range","out-of-range","required","optional","user-valid","user-invalid"];function Nv(n,e,t){if(t.normalizedSelectorText||(t.normalizedSelectorText=new WeakMap),t.normalizedSelectorText.has(n))return t.normalizedSelectorText.get(n);const a=Uf(qf(n.data),{context:"selectorList"});_v(a,e);let o=qf(a);return o&&o.trim()||(o="*"),t.normalizedSelectorText.set(n,o),o}function _v(n,e){let t=n.children.head;for(;t;){const a=t.next,o=t.data;if("NestingSelector"===o.type){if(e&&e.length){const a=e[e.length-1];let o=a&&a.data?a.data:a;if(o&&"SelectorList"===o.type&&o.children&&o.children.tail&&(o=o.children.tail.data),o&&o.children){for(let e=o.children.head;e;e=e.next){const a=Pf(e.data);n.children.insertData(a,t)}n.children.remove(t)}}}else if("TypeSelector"===o.type&&"string"==typeof o.name&&o.name.includes("|"))o.name=o.name.substring(o.name.lastIndexOf("|")+1);else if("PseudoElementSelector"===o.type)n.children.remove(t);else if("PseudoClassSelector"===o.type){const e=(o.name||"").toLowerCase();Pv.includes(e)&&n.children.remove(t)}else"Selector"===o.type&&_v(o,e);t=a}}const Bv=new Set(["after","before","first-letter","first-line","placeholder","selection","part","marker"]),Ov=new Set(["media","supports","container"]),Fv="Rule",Uv="Atrule",qv="NestingSelector",Hv="PseudoClassSelector",Wv="Declaration",Gv="Raw",Vv="Value",Kv="layer",Jv="scope",Yv="font-face",Zv="keyframes",$v="Combinator",Xv="style",Qv="selectorList",nS="declarationList",eS=":root",tS=/\\(?![0-9a-fA-F]{1,6}\s|[^0-9a-zA-Z])/;function aS(n,e){const t={doc:n,stats:{processed:0,discarded:0},matchedElements:new Set,matchedSelectors:new Map,matchingSelectors:new Map,layerDeclarationCounter:0,layerDeclarations:[],layerOrder:new Map,selectorData:new Map,selectorTexts:new Map,preludeTexts:new Map,scopeRoots:new Map,scopeSpecificities:new Map,rulesCounter:0};return function(n,e){n.forEach((n,t)=>{n.scoped||!n.stylesheet||t.urlNode||AS(n.stylesheet)&&oS(n.stylesheet.children,{layerStack:[],conditionalStack:[]},e)})}(e,t),function(n){const e=[];for(let t=0;t<n.layerDeclarations.length;t++){const a=n.layerDeclarations[t];e.push(a.name)}for(let t=0;t<e.length;t++){const a=e[t];n.layerOrder.has(a)||n.layerOrder.set(a,n.layerOrder.size)}}(t),function(n,e){n.forEach((t,a)=>{if(!t.scoped&&t.stylesheet&&!a.urlNode&&AS(t.stylesheet)){const a=t.mediaText?[{name:"media",prelude:t.mediaText}]:[];lS(t.stylesheet.children,n,{ancestorsSelectors:[],layerStack:[],conditionalStack:a},e)}})}(e,t),function(n){const e=new Set;n.matchedElements.forEach(t=>function(n,e,t){const a=new Map,o=function(n,e){const t=e.matchingSelectors.get(n),a=[];t.forEach(t=>{const o=e.selectorData.get(t).rule;if(AS(o.block)){for(let i=o.block.children.head;i;i=i.next){const{type:o,value:r}=i.data;if(o===Wv&&r){const o=r.type===Gv,s=r.type===Vv&&AS(r)&&1==r.children.length&&r.children.head.data.name,l=s&&r.children.head.data.name.startsWith("-"),c=s&&tS.test(r.children.head.data.name);o||l||c||a.push({declaration:i,selector:t,effectiveSpecificity:xS(e.selectorData.get(t),n,e),isInline:!1})}}}});const o=function(n){const e=n.getAttribute(Xv);if(e){let n;try{n=Uf(e,{context:nS})}catch{return[]}const t=[];for(let e=n.children&&n.children.head;e;e=e.next)e.data.type===Wv&&t.push({declaration:e,effectiveSpecificity:{a:1,b:0,c:0},isInline:!0});return t}return[]}(n);for(const n of o)a.push({declaration:n.declaration,effectiveSpecificity:n.effectiveSpecificity,isInline:!0});return a}(n,t),i=new Map;o.forEach(n=>{const{selector:e}=n,a=pS(uS(e,t));i.has(a)||i.set(a,[]),i.get(a).push(n)}),i.forEach(n=>{n.sort((n,e)=>function(n,e,t){const a=n.declaration.data.important?1:0,o=e.declaration.data.important?1:0;if(a!==o)return a-o;if(n.isInline&&!e.isInline)return 1;if(!n.isInline&&e.isInline)return-1;const i=n.selector?t.selectorData.get(n.selector):null,r=e.selector?t.selectorData.get(e.selector):null;if(i&&r){const o=function(n,e,t){const a=0===n.length,o=0===e.length;if(a&&o)return 0;if(a)return 1;if(o)return-1;const i=TS(n),r=TS(e);if(i===r)return 0;const s=Math.min(n.length,e.length),l=t.layerOrder;for(let t=0;t<s;t++)if(n[t]!==e[t]){const a=TS(n.slice(0,t+1)),o=TS(e.slice(0,t+1)),i=l.get(a),r=l.get(o);return void 0!==i&&void 0!==r?i-r:void 0!==i?-1:void 0!==r?1:0}return n.length-e.length}(i.layerStack,r.layerStack,t);if(0!==o)return a?-o:o;const s=n.effectiveSpecificity,l=e.effectiveSpecificity;return s.a!==l.a?s.a-l.a:s.b!==l.b?s.b-l.b:s.c!==l.c?s.c-l.c:i.rule.order!==r.rule.order?i.rule.order-r.rule.order:0}{const t=n.effectiveSpecificity,a=e.effectiveSpecificity;return t.a!==a.a?t.a-a.a:t.b!==a.b?t.b-a.b:t.c!==a.c?t.c-a.c:0}}(n,e,t)),n.forEach(n=>{const{selector:e,declaration:o}=n,i=uS(e,t);a.set(o.data.property+":"+pS(i),{selector:e,declaration:o})})}),a.forEach(({declaration:n})=>e.add(n))}(t,e,n)),function(n,e){const t=new Map,a=new Set;e.matchedElements.forEach(n=>{const o=e.matchingSelectors.get(n);o&&o.forEach(n=>{const o=e.selectorData.get(n).rule;if(AS(o.block)){const n=o.block.children;for(let e=n.head;e;e=e.next)if(e.data.type===Wv){t.set(e,n);const{property:o,value:i}=e.data;(o&&o.startsWith("--")||i&&i.type===Gv)&&a.add(e)}}})}),t.forEach((e,t)=>{n.has(t)||a.has(t)||e.remove(t)})}(e,n)}(t),function(n,e){n.forEach((n,t)=>{n.scoped||!n.stylesheet||t.urlNode||AS(n.stylesheet)&&vS(n.stylesheet.children,e)})}(e,t),t.stats}function oS(n,e,t){const{layerStack:a,conditionalStack:o}=e;for(let i=n.head;i;i=i.next){const n=i.data;if(n.type===Uv&&n.name===Kv)iS(n,a,o,t);else if(n.type===Uv&&AS(n.block)){const e=rS(o,n,t);oS(n.block.children,{layerStack:a,conditionalStack:e},t)}else n.type===Fv&&AS(n.block)&&oS(n.block.children,e,t)}}function iS(n,e,t,a){if(n.block){const o=zS(n.prelude,a);sS(e,o,t,a),oS(n.block.children,{layerStack:[...e,o],conditionalStack:t},a)}else if(n.prelude){zS(n.prelude,a).split(",").forEach(n=>sS(e,n,t,a))}}function rS(n,e,t){return Ov.has(e.name)?[...n,{name:e.name,prelude:zS(e.prelude,t)}]:n}function sS(n,e,t,a){const o=TS([...n,e]);a.layerDeclarations.push({name:o,order:a.layerDeclarationCounter++,conditionalStack:t.slice()})}function lS(n,e,t,a){const o=new Set;for(let i=n.head;i;i=i.next)a.stats.processed++,cS(i.data,i,e,t,o,a);o.forEach(e=>n.remove(e))}function cS(n,e,t,a,o,i){n.type===Uv&&"import"===n.name&&AS(n.prelude)&&n.prelude.children.head.data.importedChildren?function(n,e,t,a,o,i){const r=n.prelude.children.head.data,s=r.importedMediaText?[{name:"media",prelude:r.importedMediaText}]:[];void 0!==r.importedLayerName&&s.push({name:"layer",prelude:r.importedLayerName});void 0!==r.importedSupportsCondition&&s.push({name:"supports",prelude:r.importedSupportsCondition});lS(r.importedChildren,t,{...a,conditionalStack:s},i)}(n,0,t,a,0,i):n.type===Uv&&n.name===Kv&&AS(n.block)?function(n,e,t,a,o,i){const r=zS(n.prelude,i),s={...a,layerStack:[...a.layerStack,r]};SS(n),lS(n.block.children,t,s,i),AS(n.block)||(i.stats.discarded++,o.add(e))}(n,e,t,a,o,i):n.type===Uv&&n.name===Jv&&AS(n.block)?function(n,e,t,a,o,i){const r=function(n){if(!n)return{include:[],exclude:[]};const e=qf(n).trim();if(!e)return{include:[],exclude:[]};const t=e.split(/\s+to\s+/i),a=t[0].trim(),o=t.length>1?t.slice(1).join(" to ").trim():"";function i(n){if(!n)return[];const e=function(n){let e=n.trim();for(;e.length>=2&&"("===e[0]&&")"===e[e.length-1];){let n=0,t=!0;for(let a=0;a<e.length;a++)if("("===e[a]?n++:")"===e[a]&&n--,0===n&&a<e.length-1){t=!1;break}if(!t)break;e=e.substring(1,e.length-1).trim()}return e}(n),t=Uf(e,{context:"selectorList"}),a=[];if(t&&t.children)for(let n=t.children.head;n;n=n.next){const e=n.data;a.push({ast:e,text:qf(e)})}return a}const r=i(a),s=i(o);function l(n){let e=!1;return Gf(n,{visit:"PseudoElementSelector",enter(){e=!0}}),e||Gf(n,{visit:"PseudoClassSelector",enter(n){const t=(n.name||"").toLowerCase();Mv.has(t)&&(e=!0)}}),e}for(const n of r)if(l(n.ast))throw new Error("Pseudo-elements are not allowed in @scope prelude (scope-start)");for(const n of s)if(l(n.ast))throw new Error("Pseudo-elements are not allowed in @scope prelude (scope-end)");return{include:r,exclude:s}}(n.prelude),s=r.include.map(n=>n.text),l=r.exclude.map(n=>n.text),c=rS(a.conditionalStack,n,i),d={...a,conditionalStack:c,scopeIncludeLists:[...a.scopeIncludeLists||[],s],scopeExclusionLists:[...a.scopeExclusionLists||[],l],scopeNestingLevel:(a.scopeNestingLevel||0)+1};SS(n),lS(n.block.children,t,d,i),AS(n.block)||(i.stats.discarded++,o.add(e))}(n,e,t,a,o,i):n.type===Uv&&n.name!==Yv&&n.name!==Zv&&!n.name.startsWith("-")&&AS(n.block)?function(n,e,t,a,o,i){const r=rS(a.conditionalStack,n,i),s={...a,conditionalStack:r};SS(n),lS(n.block.children,t,s,i),AS(n.block)||(i.stats.discarded++,o.add(e))}(n,e,t,a,o,i):n.type===Fv&&AS(n.prelude)&&function(n,e,t,a,o,i){n.order=i.rulesCounter++;const r=function(n,e,t){const a=[],{ancestorsSelectors:o}=e;for(let i=n.prelude.children.head,r=0;i;i=i.next,r++){const{startsWithCombinator:r,hasCanonicalPseudoElement:s,hasDynamicStatePseudoClass:l,scopeRelative:c}=dS(i.data);if(hS(i,n,c,e,t),!r||!o||!o.length){const n=gS(i,o,t);!n.length||s||l?n.length||a.push(i):mS(n,i,t)}}return a}(n,a,i),s=function(n,e,t,a,o){e&&e.length&&e.forEach(e=>n.prelude.children.remove(e));if(!AS(n.prelude))return o.stats.discarded++,t.add(a),!0;return!1}(n,r,o,e,i);!s&&AS(n.block)&&function(n,e,t,a){SS(n);const o={...t,ancestorsSelectors:[...t.ancestorsSelectors,n.prelude]};lS(n.block.children,e,o,a)}(n,t,a,i)}(n,e,t,a,o,i)}function dS(n){let e=!1,t=!1,a=!1,o=!1;Gf(n,{enter(n){"PseudoElementSelector"===n.type?e=!0:n.type===Hv?Bv.has(n.name)?e=!0:Pv.includes(n.name)?t=!0:n.name===Jv&&(a=!0):n.type===qv&&(a=!0)}});const i=n.children.head.data;o=i&&i.type===$v;return{hasCanonicalPseudoElement:e,hasDynamicStatePseudoClass:t,startsWithCombinator:o,scopeRelative:!o&&!a}}function mS(n,e,t){n.forEach(n=>{t.matchedElements.add(n);let a=t.matchingSelectors.get(n);a||(a=[],t.matchingSelectors.set(n,a),n.matchingSelectors=a),a.push(e)})}function hS(n,e,t,a,o){const{ancestorsSelectors:i,layerStack:r,conditionalStack:s,scopeIncludeLists:l,scopeExclusionLists:c,scopeNestingLevel:d}=a;o.selectorData.set(n,{specificity:Dv(n.data,i),rule:e,layerStack:r,conditionalStack:s,scopeIncludeLists:l,scopeExclusionLists:c,scopeNestingLevel:d,scopeRelative:t})}function pS(n){return n.map(n=>`${n.name}:${n.prelude}`).join("|")}function uS(n,e){let t=[];if(n){const a=e.selectorData.get(n);a&&a.conditionalStack&&(t=a.conditionalStack)}return t}function gS(n,e,t){const a=function(n,e,t){let a;if(e&&e.length){a=function(n,e,t){const a=LS(n,t);if(e&&e.length){let n=[""];e.forEach(e=>{if(AS(e)){const a=e.children.toArray(),o=[];n.forEach(n=>a.forEach(e=>{const a=LS(e,t),i=n?jS(n,a):a;o.includes(i)||o.push(i)})),o.length&&(n=o)}});const o=new Set;return n.forEach(n=>{const e=n?jS(n,a):a;o.add(e)}),Array.from(o).join(",")}return a}(n.data,e,t);a=Nv({data:ES(a,Qv)},e,t)}a||(a=Nv(n,e,t));return a}(n,e,t),o=t.selectorData.get(n),i=o&&(o.scopeIncludeLists&&o.scopeIncludeLists.length||o.scopeNestingLevel>0),r=function(n,e,t){if(n){const n=e.scopeIncludeLists||[],a=e.scopeExclusionLists||[],o=e.scopeRelative?1:0,i=e.scopeNestingLevel||0;return[t,JSON.stringify(n),JSON.stringify(a),String(o),String(i)].join("|")}return t}(i,o,a),s=t.matchedSelectors.get(r);if(s)return s;if(i)return function(n,e,t){const a=t.selectorData.get(e),o=a.scopeIncludeLists&&a.scopeIncludeLists.length?a.scopeIncludeLists[a.scopeIncludeLists.length-1]:[],i=a.scopeExclusionLists&&a.scopeExclusionLists.length?a.scopeExclusionLists[a.scopeExclusionLists.length-1]:[],r=new Set,s=o.length?o:[eS];for(const n of s)wS(n,e,i,t,r);const l=Array.from(r);return t.matchedSelectors.set(n,l),l}(r,n,t);{const n=RS(t.doc,a,t.scopeRoots);return t.matchedSelectors.set(r,n),n}}function wS(n,e,t,a,o){const i=yS(n,a);for(const n of i){const i=bS(n,fS(e),a.scopeRoots);if(i.length)if(t&&t.length){kS(i,t,a).forEach(n=>o.add(n))}else i.forEach(n=>o.add(n))}}function bS(n,e,t){const a=RS(n,e,t);return n.matches&&n.matches(e)&&-1===a.indexOf(n)&&a.unshift(n),a}function fS(n){const e=Pf(n.data);Gf(e,{visit:qv,enter(n,e,t){const a={type:Hv,name:Jv};t.insertData(a,e),t.remove(e)}});for(let n=e.children.head;n;n=n.next){const e=n.data;if(AS(e)){const n=e.children.head,t=n.data;if(t&&t.type===$v){const t={type:Hv,name:Jv};e.children.insertData(t,n)}}}return qf(e)}function yS(n,e){let t=e.scopeRoots.get(n);return t||(t=RS(e.doc,n,e.scopeRoots)),t}function kS(n,e,t){const a=new Set;for(const n of e){yS(n,t).forEach(n=>a.add(n))}return n.filter(n=>!Array.from(a).some(e=>e.contains(n)))}function vS(n,e){const t=new Set;for(let a=n.head;a;a=a.next){const n=a.data;n.type===Fv?AS(n.block)?vS(n.block.children,e):(e.stats.discarded++,t.add(a)):n.type===Uv&&n.block&&n.name!==Yv&&n.name!==Zv&&(vS(n.block.children,e),AS(n.block)||(e.stats.discarded++,t.add(a)))}t.forEach(e=>n.remove(e))}function SS(n){const e=[];if(AS(n.block))for(let t=n.block.children.head;t;t=t.next)if(t.data.type===Gv)if(-1!==t.data.value.indexOf("{")&&t.data.value.indexOf("{")<t.data.value.indexOf("}"))try{for(let n=ES(t.data.value,"stylesheet").children.head;n;n=n.next)e.push(n)}catch(n){}else e.push(t);else e.push(t);n.block.children.clear(),e.forEach(e=>n.block.children.appendData(e.data))}function jS(n,e){const t=ES(e||"&"),a=n?ES(n):null;let o=!1;if(Gf(t,{visit:qv,enter(n,e,t){if(o=!0,!a)return void t.remove(e);a.children.toArray().map(n=>Pf(n)).forEach(n=>t.insertData(n,e)),t.remove(e)}}),o)return qf(t);if(!a)return qf(t);const i=ES(`${n} ${e}`);return qf(i)}function xS(n,e,t){const a=n.specificity;let o={a:a.a,b:a.b,c:a.c};const i=n&&n.scopeIncludeLists&&n.scopeIncludeLists.length?n.scopeIncludeLists[n.scopeIncludeLists.length-1]:[];if(i&&i.length)for(const n of i){if(yS(n,t).some(n=>n.contains(e))){const e=CS(n,t);o={a:o.a+e.a,b:o.b+e.b,c:o.c+e.c}}}return o}function CS(n,e){let t=e.scopeSpecificities.get(n);if(!t){t=Dv(ES(n),[]),e.scopeSpecificities.set(n,t)}return t}function AS(n){return Boolean(n&&n.children&&n.children.head)}function LS(n,e){return e.selectorTexts.has(n)||e.selectorTexts.set(n,qf(n)),e.selectorTexts.get(n)}function zS(n,e){return n?(e.preludeTexts.has(n)||e.preludeTexts.set(n,qf(n)),e.preludeTexts.get(n)):""}function TS(n){return n.map(n=>""===n?"\0":n).join(".")}function ES(n,e="selector"){return Uf(n,{context:e})}function RS(n,e,t){if(t&&t!==n){let a=t.get(n);if(a||(a=new Map,t.set(n,a)),a.has(e))return a.get(e);try{const t=Array.from(n.querySelectorAll(e));return a.set(e,t),t}catch{return a.set(e,[]),[]}}else try{return Array.from(n.querySelectorAll(e))}catch{return[]}}var IS=Object.freeze({__proto__:null,process:aS});const DS="data:,";function MS(n){n.querySelectorAll("picture").forEach(n=>{const e=n.querySelector("img");if(e){let{src:t,srcset:a}=PS(e);if(!t){const e=function(n){let e=n.find(n=>n.src),t=e&&e.src,a=e&&e.srcset;t||(e=n.find(n=>_S(n.src)),t=e&&e.src,t==DS&&(t=null));a||(e=n.find(n=>_S(n.srcset)),a=e&&e.srcset,a==DS&&(a=null));return{src:t,srcset:a}}(Array.from(n.querySelectorAll("source")).reverse());t=e.src,a||(a=e.srcset)}NS({src:t,srcset:a},e,n)}}),n.querySelectorAll(":not(picture) > img[srcset]").forEach(n=>NS(PS(n),n))}function PS(n){let e=n.getAttribute("src");e==DS&&(e=null);let t=_S(n.getAttribute("srcset"));return t==DS&&(t=null),{src:e,srcset:t}}function NS(n,e,t){n.src?(e.setAttribute("src",n.src),e.setAttribute("srcset",""),e.setAttribute("sizes","")):(e.setAttribute("src",DS),n.srcset?e.setAttribute("srcset",n.srcset):(e.setAttribute("srcset",""),e.setAttribute("sizes",""))),t&&t.querySelectorAll("source").forEach(n=>n.remove())}function _S(n){if(n)try{const e=qk(n);if(e.length)return e.find(n=>n.url).url}catch(n){}}var BS=Object.freeze({__proto__:null,process:MS});const OS=["allowfullscreen","async","autofocus","autoplay","checked","compact","controls","declare","default","defaultchecked","defaultmuted","defaultselected","defer","disabled","enabled","formnovalidate","hidden","indeterminate","inert","ismap","itemscope","loop","multiple","muted","nohref","noresize","noshade","novalidate","nowrap","open","pauseonexit","readonly","required","reversed","scoped","seamless","selected","sortable","truespeed","typemustmatch","visible"],FS=["SCRIPT","STYLE","PRE","TEXTAREA"],US=["id","class","style","lang","dir","onclick","ondblclick","onmousedown","onmouseup","onmouseover","onmousemove","onmouseout","onkeypress","onkeydown","onkeyup"],qS={FORM:{method:"get"},SCRIPT:{language:"javascript",type:"text/javascript",charset:n=>!n.getAttribute("src")},STYLE:{media:"all",type:"text/css"},LINK:{media:"all"}},HS=/[ \t\f\r]+/g,WS=/[\n]+/g,GS=/^\s+$/,VS=[function(n){1==n.nodeType&&Array.from(n.attributes).forEach(e=>{OS.includes(e.name)&&n.setAttribute(e.name,"")})},function(n){3==n.nodeType&&n.previousSibling&&3==n.previousSibling.nodeType&&(n.textContent=n.previousSibling.textContent+n.textContent,n.previousSibling.remove())},function(n,e){if(3==n.nodeType){let t=n.parentElement;if(!(""==t.getAttribute(e.PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME))){const e=n.textContent;let a=JS(t);for(;a;)t=t.parentElement,a=t&&JS(t);(!t||a)&&e.length>1&&(n.textContent=e.replace(HS,function(n){return n.parentElement&&"HEAD"==YS(n.parentElement)?"\n":" "}(n)).replace(WS,"\n"))}}},function(n){if(8==n.nodeType&&"HTML"!=YS(n.parentElement))return!n.textContent.toLowerCase().trim().startsWith("[if")},function(n){1==n.nodeType&&Array.from(n.attributes).forEach(e=>{if(US.includes(e.name.toLowerCase())){const t=n.getAttribute(e.name);(""==t||(t||"").match(GS))&&n.removeAttribute(e.name)}})},function(n){if(1==n.nodeType){const e=qS[YS(n)];e&&Object.keys(e).forEach(t=>{const a=e[t];("function"==typeof a?a(n):n.getAttribute(t)==a)&&n.removeAttribute(t)})}},function(n){if(1==n.nodeType&&"SCRIPT"==YS(n)&&"application/ld+json"==n.type&&n.textContent.trim())try{n.textContent=JSON.stringify(JSON.parse(n.textContent))}catch(n){}}];function KS(n,e){!function(n){n.querySelectorAll("style, script:not([src])").forEach(n=>{n.textContent.trim()||n.remove()})}(n);const t=n.createTreeWalker(n.documentElement,4294967295,null,!1);let a=t.nextNode();for(;a;){const n=VS.find(n=>n(a,e)),o=a;a=t.nextNode(),n&&o.remove()}}function JS(n){return n&&!FS.includes(YS(n))}function YS(n){return n.tagName&&n.tagName.toUpperCase()}var ZS=Object.freeze({__proto__:null,process:KS});const $S=["AREA","BASE","BASEFONT","BGSOUND","BR","COL","COMMAND","EMBED","FRAME","HR","IMG","INPUT","KEYGEN","LINK","META","PARAM","SOURCE","TRACK","WBR"],XS=[{tagName:"HEAD",accept:n=>!n.childNodes.length||1==n.childNodes[0].nodeType},{tagName:"BODY",accept:n=>!n.childNodes.length}],QS=[{tagName:"HTML",accept:n=>!n||8!=n.nodeType},{tagName:"HEAD",accept:n=>!n||8!=n.nodeType&&(3!=n.nodeType||!aj(n.textContent))},{tagName:"BODY",accept:n=>!n||8!=n.nodeType},{tagName:"LI",accept:(n,e)=>!n&&e.parentElement&&("UL"==oj(e.parentElement)||"OL"==oj(e.parentElement))||n&&["LI"].includes(oj(n))},{tagName:"DT",accept:n=>!n||["DT","DD"].includes(oj(n))},{tagName:"P",accept:n=>n&&["ADDRESS","ARTICLE","ASIDE","BLOCKQUOTE","DETAILS","DIV","DL","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","H1","H2","H3","H4","H5","H6","HEADER","HR","MAIN","NAV","OL","P","PRE","SECTION","TABLE","UL"].includes(oj(n))},{tagName:"DD",accept:n=>!n||["DT","DD"].includes(oj(n))},{tagName:"RT",accept:n=>!n||["RT","RP"].includes(oj(n))},{tagName:"RP",accept:n=>!n||["RT","RP"].includes(oj(n))},{tagName:"OPTGROUP",accept:n=>!n||["OPTGROUP"].includes(oj(n))},{tagName:"OPTION",accept:n=>!n||["OPTION","OPTGROUP"].includes(oj(n))},{tagName:"COLGROUP",accept:n=>!n||8!=n.nodeType&&(3!=n.nodeType||!aj(n.textContent))},{tagName:"CAPTION",accept:n=>!n||8!=n.nodeType&&(3!=n.nodeType||!aj(n.textContent))},{tagName:"THEAD",accept:n=>!n||["TBODY","TFOOT"].includes(oj(n))},{tagName:"TBODY",accept:n=>!n||["TBODY","TFOOT"].includes(oj(n))},{tagName:"TFOOT",accept:n=>!n},{tagName:"TR",accept:n=>!n||["TR"].includes(oj(n))},{tagName:"TD",accept:n=>!n||["TD","TH"].includes(oj(n))},{tagName:"TH",accept:n=>!n||["TD","TH"].includes(oj(n))}],nj=["STYLE","SCRIPT","XMP","IFRAME","NOEMBED","NOFRAMES","PLAINTEXT","NOSCRIPT"];function ej(n,e){const t=n.doctype;let a="";return t&&(a="<!DOCTYPE "+t.nodeName,t.publicId?(a+=' PUBLIC "'+t.publicId+'"',t.systemId&&(a+=' "'+t.systemId+'"')):t.systemId&&(a+=' SYSTEM "'+t.systemId+'"'),t.internalSubset&&(a+=" ["+t.internalSubset+"]"),a+="> "),a+tj(n.documentElement,e)}function tj(n,e,t){return 3==n.nodeType?function(n){const e=n.parentNode;let t;e&&1==e.nodeType&&(t=oj(e));return!t||nj.includes(t)?("SCRIPT"!=t||e.type&&"text/javascript"!=e.type)&&"STYLE"!=t?n.textContent:n.textContent.replace(/<\//gi,"<\\/").replace(/\/>/gi,"\\/>"):n.textContent.replace(/&/g,"&amp;").replace(/\u00a0/g,"&nbsp;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}(n):8==n.nodeType?"\x3c!--"+n.textContent+"--\x3e":1==n.nodeType?function(n,e,t){const a=oj(n),o=e&&XS.find(e=>a==oj(e)&&e.accept(n));let i="";o&&!n.attributes.length||(i="<"+a.toLowerCase(),Array.from(n.attributes).forEach(t=>i+=function(n,e,t){const a=n.name;let o="";if(!a.match(/["'>/=]/)){let i,r=n.value;t&&"class"==a&&(r=Array.from(e.classList).map(n=>n.trim()).join(" ")),r=r.replace(/&/g,"&amp;").replace(/\u00a0/g,"&nbsp;"),r.includes('"')&&(r.includes("'")||!t?r=r.replace(/"/g,"&quot;"):i=!0);const s=!t||r.match(/[ \t\n\f\r'"`=<>]/);o+=" ";const l=n.namespaceURI,c=n.localName||a;l?"http://www.w3.org/XML/1998/namespace"==l?o+="xml:"+c:"http://www.w3.org/2000/xmlns/"==l?o+="xmlns"===c?"xmlns":"xmlns:"+c:"http://www.w3.org/1999/xlink"==l?o+="xlink:"+c:n.prefix?o+=n.prefix+":"+c:o+=a:o+=a,""!=r&&(o+="=",s&&(o+=i?"'":'"'),o+=r,s&&(o+=i?"'":'"'))}return o}(t,n,e)),i+=">");"TEMPLATE"!=a||n.childNodes.length?Array.from(n.childNodes).forEach(n=>i+=tj(n,e,t||"svg"==a)):i+=n.innerHTML;const r=e&&QS.find(e=>a==oj(e)&&e.accept(n.nextSibling,n));(t||!r&&!$S.includes(a))&&(i+="</"+a.toLowerCase()+">");return i}(n,e,t):void 0}function aj(n){return Boolean(n.match(/^[ \t\n\f\r]/))}function oj(n){return n.tagName&&n.tagName.toUpperCase()}var ij=Object.freeze({__proto__:null,process:ej});function rj(n,e,t,a){this.message=n,this.expected=e,this.found=t,this.location=a,this.name="SyntaxError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(this,rj)}async function sj(n,e){e=void 0!==e?e:{};var t,a={},o={start:tn},i=tn,r=function(n){return n.join("")},s="|",l=$("|",!1),c=function(n){return n},d="%",m=$("%",!1),h="<",p=$("<",!1),u=">",g=$(">",!1),w=function(n,t,a){return e.callFunction(n,t,a)},b="{",f=$("{",!1),y="}",k=$("}",!1),v=function(n,t){return e.getVariableValue(n,t)},S="[",j=$("[",!1),x="]",C=$("]",!1),A=function(n,e){return{length:n,unit:e}},L="ch",z=$("ch",!1),T=/^[a-z0-9-]/,E=X([["a","z"],["0","9"],"-"],!1,!1),R=function(){return Z()},I=/^[0-9]/,D=X([["0","9"]],!1,!1),M=function(){return Number(Z())},P="\\\\%",N=$("\\\\%",!1),_="\\\\{",B=$("\\\\{",!1),O="\\\\|",F=$("\\\\|",!1),U="\\\\>",q=$("\\\\>",!1),H={type:"any"},W=0,G=0,V=[{line:1,column:1}],K=0,J=[],Y=0;if("startRule"in e){if(!(e.startRule in o))throw new Error("Can't start parsing from rule \""+e.startRule+'".');i=o[e.startRule]}function Z(){return n.substring(G,W)}function $(n,e){return{type:"literal",text:n,ignoreCase:e}}function X(n,e,t){return{type:"class",parts:n,inverted:e,ignoreCase:t}}function Q(e){var t,a=V[e];if(a)return a;for(t=e-1;!V[t];)t--;for(a={line:(a=V[t]).line,column:a.column};t<e;)10===n.charCodeAt(t)?(a.line++,a.column=1):a.column++,t++;return V[e]=a,a}function nn(n,e){var t=Q(n),a=Q(e);return{start:{offset:n,line:t.line,column:t.column},end:{offset:e,line:a.line,column:a.column}}}function en(n){W<K||(W>K&&(K=W,J=[]),J.push(n))}async function tn(){return await an()}async function an(){var n,e,t;for(n=W,e=[],t=await on();t!==a;)e.push(t),t=await on();return e!==a&&(G=n,e=r(e)),n=e}async function on(){var e;return(e=await async function(){var e,t,o,i,r,s,l;e=W,37===n.charCodeAt(W)?(t=d,W++):(t=a,0===Y&&en(m));t!==a&&(o=ln())!==a?(60===n.charCodeAt(W)?(i=h,W++):(i=a,0===Y&&en(p)),i!==a?(r=await async function(){var n,e,t;n=W,e=await an(),e!==a?(t=await async function(){var n,e;if(n=[],e=await rn(),e!==a)for(;e!==a;)n.push(e),e=await rn();else n=a;return n}(),t===a&&(t=null),t!==a?n=e=[e,t]:(W=n,n=a)):(W=n,n=a);return n}(),r!==a?(62===n.charCodeAt(W)?(s=u,W++):(s=a,0===Y&&en(g)),s!==a?((l=sn())===a&&(l=null),l!==a?(G=e,e=t=await w(o,r,l)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a);return e}())===a&&(e=await async function(){var e,t,o,i,r;e=W,123===n.charCodeAt(W)?(t=b,W++):(t=a,0===Y&&en(f));t!==a&&(o=ln())!==a?(125===n.charCodeAt(W)?(i=y,W++):(i=a,0===Y&&en(k)),i!==a?((r=sn())===a&&(r=null),r!==a?(G=e,e=t=await v(o,r)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a);return e}())===a&&(e=function(){var n,e,t;if(n=W,e=[],(t=cn())!==a)for(;t!==a;)e.push(t),t=cn();else e=a;e!==a&&(G=n,e=R());return n=e,n}()),e}async function rn(){var e,t,o;return e=W,124===n.charCodeAt(W)?(t=s,W++):(t=a,0===Y&&en(l)),t!==a&&(o=await an())!==a?(G=e,e=t=c(o)):(W=e,e=a),e}function sn(){var e,t,o,i,r;return e=W,91===n.charCodeAt(W)?(t=S,W++):(t=a,0===Y&&en(j)),t!==a?(o=function(){var e,t,o;e=W,t=[],I.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Y&&en(D));if(o!==a)for(;o!==a;)t.push(o),I.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Y&&en(D));else t=a;t!==a&&(G=e,t=M());return e=t,e}(),o!==a?(i=function(){var e;n.substr(W,2)===L?(e=L,W+=2):(e=a,0===Y&&en(z));e===a&&(e=null);return e}(),i!==a?(93===n.charCodeAt(W)?(r=x,W++):(r=a,0===Y&&en(C)),r!==a?(G=e,e=t=A(o,i)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a),e}function ln(){var e,t,o;if(e=W,t=[],T.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Y&&en(E)),o!==a)for(;o!==a;)t.push(o),T.test(n.charAt(W))?(o=n.charAt(W),W++):(o=a,0===Y&&en(E));else t=a;return t!==a&&(G=e,t=R()),e=t}function cn(){var e,t,o,i,r,c;return e=W,t=W,Y++,37===n.charCodeAt(W)?(o=d,W++):(o=a,0===Y&&en(m)),Y--,o===a?t=void 0:(W=t,t=a),t!==a?(o=W,Y++,123===n.charCodeAt(W)?(i=b,W++):(i=a,0===Y&&en(f)),Y--,i===a?o=void 0:(W=o,o=a),o!==a?(i=W,Y++,124===n.charCodeAt(W)?(r=s,W++):(r=a,0===Y&&en(l)),Y--,r===a?i=void 0:(W=i,i=a),i!==a?(r=W,Y++,62===n.charCodeAt(W)?(c=u,W++):(c=a,0===Y&&en(g)),Y--,c===a?r=void 0:(W=r,r=a),r!==a?(c=function(){var e;n.substr(W,3)===P?(e=P,W+=3):(e=a,0===Y&&en(N));e===a&&(n.substr(W,3)===_?(e=_,W+=3):(e=a,0===Y&&en(B)),e===a&&(n.substr(W,3)===O?(e=O,W+=3):(e=a,0===Y&&en(F)),e===a&&(n.substr(W,3)===U?(e=U,W+=3):(e=a,0===Y&&en(q)),e===a&&(n.length>W?(e=n.charAt(W),W++):(e=a,0===Y&&en(H))))));return e}(),c!==a?e=t=[t,o,i,r,c]:(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a)):(W=e,e=a),e}if((t=await i())!==a&&W===n.length)return t;throw t!==a&&W<n.length&&en({type:"end"}),function(n,e,t){return new rj(rj.buildMessage(n,e),n,e,t)}(J,K<n.length?n.charAt(K):null,K<n.length?nn(K,K+1):nn(K,K))}!function(n,e){function t(){this.constructor=n}t.prototype=e.prototype,n.prototype=new t}(rj,Error),rj.buildMessage=function(n,e){var t={literal:function(n){return'"'+o(n.text)+'"'},class:function(n){var e,t="";for(e=0;e<n.parts.length;e++)t+=n.parts[e]instanceof Array?i(n.parts[e][0])+"-"+i(n.parts[e][1]):i(n.parts[e]);return"["+(n.inverted?"^":"")+t+"]"},any:function(){return"any character"},end:function(){return"end of input"},other:function(n){return n.description}};function a(n){return n.charCodeAt(0).toString(16).toUpperCase()}function o(n){return n.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(n){return"\\x0"+a(n)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(n){return"\\x"+a(n)})}function i(n){return n.replace(/\\/g,"\\\\").replace(/\]/g,"\\]").replace(/\^/g,"\\^").replace(/-/g,"\\-").replace(/\0/g,"\\0").replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\x00-\x0F]/g,function(n){return"\\x0"+a(n)}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(n){return"\\x"+a(n)})}function r(n){return t[n.type](n)}return"Expected "+function(n){var e,t,a=new Array(n.length);for(e=0;e<n.length;e++)a[e]=r(n[e]);if(a.sort(),a.length>0){for(e=1,t=1;e<a.length;e++)a[e-1]!==a[e]&&(a[t]=a[e],t++);a.length=t}switch(a.length){case 1:return a[0];case 2:return a[0]+" or "+a[1];default:return a.slice(0,-1).join(", ")+", or "+a[a.length-1]}}(n)+" but "+function(n){return n?'"'+o(n)+'"':"end of input"}(e)+" found."};const lj=globalThis.Blob,cj=globalThis.FileReader,dj=globalThis.URL,mj=globalThis.Intl,hj=globalThis.URLSearchParams,pj=globalThis.navigator,uj=/([{}()^$&.*?/+|[\\\\]|\]|-)/g,gj={"😀":"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","🫨":"⊛-shaking-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","😡":"enraged-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","💌":"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","🩷":"⊛-pink-heart","🧡":"orange-heart","💛":"yellow-heart","💚":"green-heart","💙":"blue-heart","🩵":"⊛-light-blue-heart","💜":"purple-heart","🤎":"brown-heart","🖤":"black-heart","🩶":"⊛-grey-heart","🤍":"white-heart","💋":"kiss-mark","💯":"hundred-points","💢":"anger-symbol","💥":"collision","💫":"dizzy","💦":"sweat-droplets","💨":"dashing-away","🕳":"hole","💬":"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","🫷":"⊛-leftwards-pushing-hand","🫸":"⊛-rightwards-pushing-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","🫎":"⊛-moose","🫏":"⊛-donkey","🐎":"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","🪽":"⊛-wing","🐦‍⬛":"⊛-black-bird","🪿":"⊛-goose","🐸":"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","🪼":"⊛-jellyfish","🐌":"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","🪻":"⊛-hyacinth","🌱":"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","🍄":"mushroom","🍇":"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","🥜":"peanuts","🫘":"beans","🌰":"chestnut","🫚":"⊛-ginger-root","🫛":"⊛-pea-pod","🍞":"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","🔫":"water-pistol","🎱":"pool-8-ball","🔮":"crystal-ball","🪄":"magic-wand","🎮":"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","🪭":"⊛-folding-hand-fan","👛":"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","🪮":"⊛-hair-pick","👑":"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","🪇":"maracas","🪈":"flute","📱":"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","💣":"bomb","🪃":"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","🧿":"nazar-amulet","🪬":"hamsa","🗿":"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","🪯":"⊛-khanda","♈":"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","🛜":"⊛-wireless","📳":"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-and-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-and-herzegovina","🇧🇧":"flag-barbados","🇧🇩":"flag-bangladesh","🇧🇪":"flag-belgium","🇧🇫":"flag-burkina-faso","🇧🇬":"flag-bulgaria","🇧🇭":"flag-bahrain","🇧🇮":"flag-burundi","🇧🇯":"flag-benin","🇧🇱":"flag-st-barthelemy","🇧🇲":"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-and-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-and-south-sandwich-islands","🇬🇹":"flag-guatemala","🇬🇺":"flag-guam","🇬🇼":"flag-guinea-bissau","🇬🇾":"flag-guyana","🇭🇰":"flag-hong-kong-sar-china","🇭🇲":"flag-heard-and-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-and-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-and-miquelon","🇵🇳":"flag-pitcairn-islands","🇵🇷":"flag-puerto-rico","🇵🇸":"flag-palestinian-territories","🇵🇹":"flag-portugal","🇵🇼":"flag-palau","🇵🇾":"flag-paraguay","🇶🇦":"flag-qatar","🇷🇪":"flag-reunion","🇷🇴":"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-and-jan-mayen","🇸🇰":"flag-slovakia","🇸🇱":"flag-sierra-leone","🇸🇲":"flag-san-marino","🇸🇳":"flag-senegal","🇸🇴":"flag-somalia","🇸🇷":"flag-suriname","🇸🇸":"flag-south-sudan","🇸🇹":"flag-são-tome-and-príncipe","🇸🇻":"flag-el-salvador","🇸🇽":"flag-sint-maarten","🇸🇾":"flag-syria","🇸🇿":"flag-eswatini","🇹🇦":"flag-tristan-da-cunha","🇹🇨":"flag-turks-and-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-and-tobago","🇹🇻":"flag-tuvalu","🇹🇼":"flag-taiwan","🇹🇿":"flag-tanzania","🇺🇦":"flag-ukraine","🇺🇬":"flag-uganda","🇺🇲":"flag-us-outlying-islands","🇺🇳":"flag-united-nations","🇺🇸":"flag-united-states","🇺🇾":"flag-uruguay","🇺🇿":"flag-uzbekistan","🇻🇦":"flag-vatican-city","🇻🇨":"flag-st-vincent-and-grenadines","🇻🇪":"flag-venezuela","🇻🇬":"flag-british-virgin-islands","🇻🇮":"flag-us-virgin-islands","🇻🇳":"flag-vietnam","🇻🇺":"flag-vanuatu","🇼🇫":"flag-wallis-and-futuna","🇼🇸":"flag-samoa","🇽🇰":"flag-kosovo","🇾🇪":"flag-yemen","🇾🇹":"flag-mayotte","🇿🇦":"flag-south-africa","🇿🇲":"flag-zambia","🇿🇼":"flag-zimbabwe","🏴󠁧󠁢󠁥󠁮󠁧󠁿":"flag-england","🏴󠁧󠁢󠁳󠁣󠁴󠁿":"flag-scotland","🏴󠁧󠁢󠁷󠁬󠁳󠁿":"flag-wales"},wj=Object.keys(gj),bj='\n// This Source Code Form is subject to the terms of the Mozilla Public\n// License, v. 2.0. If a copy of the MPL was not distributed with this\n// file, You can obtain one at https://mozilla.org/MPL/2.0/.\n\n// Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat,\n// rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported.\n\n// Instructions on pulling and using this list can be found at https://publicsuffix.org/list/.\n\n// ===BEGIN ICANN DOMAINS===\n\n// ac : http://nic.ac/rules.htm\nac\ncom.ac\nedu.ac\ngov.ac\nnet.ac\nmil.ac\norg.ac\n\n// ad : https://en.wikipedia.org/wiki/.ad\nad\nnom.ad\n\n// ae : https://tdra.gov.ae/en/aeda/ae-policies\nae\nco.ae\nnet.ae\norg.ae\nsch.ae\nac.ae\ngov.ae\nmil.ae\n\n// aero : see https://www.information.aero/index.php?id=66\naero\naccident-investigation.aero\naccident-prevention.aero\naerobatic.aero\naeroclub.aero\naerodrome.aero\nagents.aero\naircraft.aero\nairline.aero\nairport.aero\nair-surveillance.aero\nairtraffic.aero\nair-traffic-control.aero\nambulance.aero\namusement.aero\nassociation.aero\nauthor.aero\nballooning.aero\nbroker.aero\ncaa.aero\ncargo.aero\ncatering.aero\ncertification.aero\nchampionship.aero\ncharter.aero\ncivilaviation.aero\nclub.aero\nconference.aero\nconsultant.aero\nconsulting.aero\ncontrol.aero\ncouncil.aero\ncrew.aero\ndesign.aero\ndgca.aero\neducator.aero\nemergency.aero\nengine.aero\nengineer.aero\nentertainment.aero\nequipment.aero\nexchange.aero\nexpress.aero\nfederation.aero\nflight.aero\nfuel.aero\ngliding.aero\ngovernment.aero\ngroundhandling.aero\ngroup.aero\nhanggliding.aero\nhomebuilt.aero\ninsurance.aero\njournal.aero\njournalist.aero\nleasing.aero\nlogistics.aero\nmagazine.aero\nmaintenance.aero\nmedia.aero\nmicrolight.aero\nmodelling.aero\nnavigation.aero\nparachuting.aero\nparagliding.aero\npassenger-association.aero\npilot.aero\npress.aero\nproduction.aero\nrecreation.aero\nrepbody.aero\nres.aero\nresearch.aero\nrotorcraft.aero\nsafety.aero\nscientist.aero\nservices.aero\nshow.aero\nskydiving.aero\nsoftware.aero\nstudent.aero\ntrader.aero\ntrading.aero\ntrainer.aero\nunion.aero\nworkinggroup.aero\nworks.aero\n\n// af : http://www.nic.af/help.jsp\naf\ngov.af\ncom.af\norg.af\nnet.af\nedu.af\n\n// ag : http://www.nic.ag/prices.htm\nag\ncom.ag\norg.ag\nnet.ag\nco.ag\nnom.ag\n\n// ai : http://nic.com.ai/\nai\noff.ai\ncom.ai\nnet.ai\norg.ai\n\n// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31\nal\ncom.al\nedu.al\ngov.al\nmil.al\nnet.al\norg.al\n\n// am : https://www.amnic.net/policy/en/Policy_EN.pdf\nam\nco.am\ncom.am\ncommune.am\nnet.am\norg.am\n\n// ao : https://en.wikipedia.org/wiki/.ao\n// http://www.dns.ao/REGISTR.DOC\nao\ned.ao\ngv.ao\nog.ao\nco.ao\npb.ao\nit.ao\n\n// aq : https://en.wikipedia.org/wiki/.aq\naq\n\n// ar : https://nic.ar/es/nic-argentina/normativa\nar\nbet.ar\ncom.ar\ncoop.ar\nedu.ar\ngob.ar\ngov.ar\nint.ar\nmil.ar\nmusica.ar\nmutual.ar\nnet.ar\norg.ar\nsenasa.ar\ntur.ar\n\n// arpa : https://en.wikipedia.org/wiki/.arpa\n// Confirmed by registry <iana-questions@icann.org> 2008-06-18\narpa\ne164.arpa\nin-addr.arpa\nip6.arpa\niris.arpa\nuri.arpa\nurn.arpa\n\n// as : https://en.wikipedia.org/wiki/.as\nas\ngov.as\n\n// asia : https://en.wikipedia.org/wiki/.asia\nasia\n\n// at : https://en.wikipedia.org/wiki/.at\n// Confirmed by registry <it@nic.at> 2008-06-17\nat\nac.at\nco.at\ngv.at\nor.at\nsth.ac.at\n\n// au : https://en.wikipedia.org/wiki/.au\n// http://www.auda.org.au/\nau\n// 2LDs\ncom.au\nnet.au\norg.au\nedu.au\ngov.au\nasn.au\nid.au\n// Historic 2LDs (closed to new registration, but sites still exist)\ninfo.au\nconf.au\noz.au\n// CGDNs - http://www.cgdn.org.au/\nact.au\nnsw.au\nnt.au\nqld.au\nsa.au\ntas.au\nvic.au\nwa.au\n// 3LDs\nact.edu.au\ncatholic.edu.au\n// eq.edu.au - Removed at the request of the Queensland Department of Education\nnsw.edu.au\nnt.edu.au\nqld.edu.au\nsa.edu.au\ntas.edu.au\nvic.edu.au\nwa.edu.au\n// act.gov.au Bug 984824 - Removed at request of Greg Tankard\n// nsw.gov.au Bug 547985 - Removed at request of <Shae.Donelan@services.nsw.gov.au>\n// nt.gov.au Bug 940478 - Removed at request of Greg Connors <Greg.Connors@nt.gov.au>\nqld.gov.au\nsa.gov.au\ntas.gov.au\nvic.gov.au\nwa.gov.au\n// 4LDs\n// education.tas.edu.au - Removed at the request of the Department of Education Tasmania\nschools.nsw.edu.au\n\n// aw : https://en.wikipedia.org/wiki/.aw\naw\ncom.aw\n\n// ax : https://en.wikipedia.org/wiki/.ax\nax\n\n// az : https://en.wikipedia.org/wiki/.az\naz\ncom.az\nnet.az\nint.az\ngov.az\norg.az\nedu.az\ninfo.az\npp.az\nmil.az\nname.az\npro.az\nbiz.az\n\n// ba : http://nic.ba/users_data/files/pravilnik_o_registraciji.pdf\nba\ncom.ba\nedu.ba\ngov.ba\nmil.ba\nnet.ba\norg.ba\n\n// bb : https://en.wikipedia.org/wiki/.bb\nbb\nbiz.bb\nco.bb\ncom.bb\nedu.bb\ngov.bb\ninfo.bb\nnet.bb\norg.bb\nstore.bb\ntv.bb\n\n// bd : https://en.wikipedia.org/wiki/.bd\n*.bd\n\n// be : https://en.wikipedia.org/wiki/.be\n// Confirmed by registry <tech@dns.be> 2008-06-08\nbe\nac.be\n\n// bf : https://en.wikipedia.org/wiki/.bf\nbf\ngov.bf\n\n// bg : https://en.wikipedia.org/wiki/.bg\n// https://www.register.bg/user/static/rules/en/index.html\nbg\na.bg\nb.bg\nc.bg\nd.bg\ne.bg\nf.bg\ng.bg\nh.bg\ni.bg\nj.bg\nk.bg\nl.bg\nm.bg\nn.bg\no.bg\np.bg\nq.bg\nr.bg\ns.bg\nt.bg\nu.bg\nv.bg\nw.bg\nx.bg\ny.bg\nz.bg\n0.bg\n1.bg\n2.bg\n3.bg\n4.bg\n5.bg\n6.bg\n7.bg\n8.bg\n9.bg\n\n// bh : https://en.wikipedia.org/wiki/.bh\nbh\ncom.bh\nedu.bh\nnet.bh\norg.bh\ngov.bh\n\n// bi : https://en.wikipedia.org/wiki/.bi\n// http://whois.nic.bi/\nbi\nco.bi\ncom.bi\nedu.bi\nor.bi\norg.bi\n\n// biz : https://en.wikipedia.org/wiki/.biz\nbiz\n\n// bj : https://nic.bj/bj-suffixes.txt\n// submitted by registry <contact@nic.bj>\nbj\nafrica.bj\nagro.bj\narchitectes.bj\nassur.bj\navocats.bj\nco.bj\ncom.bj\neco.bj\necono.bj\nedu.bj\ninfo.bj\nloisirs.bj\nmoney.bj\nnet.bj\norg.bj\note.bj\nresto.bj\nrestaurant.bj\ntourism.bj\nuniv.bj\n\n// bm : http://www.bermudanic.bm/dnr-text.txt\nbm\ncom.bm\nedu.bm\ngov.bm\nnet.bm\norg.bm\n\n// bn : http://www.bnnic.bn/faqs\nbn\ncom.bn\nedu.bn\ngov.bn\nnet.bn\norg.bn\n\n// bo : https://nic.bo/delegacion2015.php#h-1.10\nbo\ncom.bo\nedu.bo\ngob.bo\nint.bo\norg.bo\nnet.bo\nmil.bo\ntv.bo\nweb.bo\n// Social Domains\nacademia.bo\nagro.bo\narte.bo\nblog.bo\nbolivia.bo\nciencia.bo\ncooperativa.bo\ndemocracia.bo\ndeporte.bo\necologia.bo\neconomia.bo\nempresa.bo\nindigena.bo\nindustria.bo\ninfo.bo\nmedicina.bo\nmovimiento.bo\nmusica.bo\nnatural.bo\nnombre.bo\nnoticias.bo\npatria.bo\npolitica.bo\nprofesional.bo\nplurinacional.bo\npueblo.bo\nrevista.bo\nsalud.bo\ntecnologia.bo\ntksat.bo\ntransporte.bo\nwiki.bo\n\n// br : http://registro.br/dominio/categoria.html\n// Submitted by registry <fneves@registro.br>\nbr\n9guacu.br\nabc.br\nadm.br\nadv.br\nagr.br\naju.br\nam.br\nanani.br\naparecida.br\napp.br\narq.br\nart.br\nato.br\nb.br\nbarueri.br\nbelem.br\nbhz.br\nbib.br\nbio.br\nblog.br\nbmd.br\nboavista.br\nbsb.br\ncampinagrande.br\ncampinas.br\ncaxias.br\ncim.br\ncng.br\ncnt.br\ncom.br\ncontagem.br\ncoop.br\ncoz.br\ncri.br\ncuiaba.br\ncuritiba.br\ndef.br\ndes.br\ndet.br\ndev.br\necn.br\neco.br\nedu.br\nemp.br\nenf.br\neng.br\nesp.br\netc.br\neti.br\nfar.br\nfeira.br\nflog.br\nfloripa.br\nfm.br\nfnd.br\nfortal.br\nfot.br\nfoz.br\nfst.br\ng12.br\ngeo.br\nggf.br\ngoiania.br\ngov.br\n// gov.br 26 states + df https://en.wikipedia.org/wiki/States_of_Brazil\nac.gov.br\nal.gov.br\nam.gov.br\nap.gov.br\nba.gov.br\nce.gov.br\ndf.gov.br\nes.gov.br\ngo.gov.br\nma.gov.br\nmg.gov.br\nms.gov.br\nmt.gov.br\npa.gov.br\npb.gov.br\npe.gov.br\npi.gov.br\npr.gov.br\nrj.gov.br\nrn.gov.br\nro.gov.br\nrr.gov.br\nrs.gov.br\nsc.gov.br\nse.gov.br\nsp.gov.br\nto.gov.br\ngru.br\nimb.br\nind.br\ninf.br\njab.br\njampa.br\njdf.br\njoinville.br\njor.br\njus.br\nleg.br\nlel.br\nlog.br\nlondrina.br\nmacapa.br\nmaceio.br\nmanaus.br\nmaringa.br\nmat.br\nmed.br\nmil.br\nmorena.br\nmp.br\nmus.br\nnatal.br\nnet.br\nniteroi.br\n*.nom.br\nnot.br\nntr.br\nodo.br\nong.br\norg.br\nosasco.br\npalmas.br\npoa.br\nppg.br\npro.br\npsc.br\npsi.br\npvh.br\nqsl.br\nradio.br\nrec.br\nrecife.br\nrep.br\nribeirao.br\nrio.br\nriobranco.br\nriopreto.br\nsalvador.br\nsampa.br\nsantamaria.br\nsantoandre.br\nsaobernardo.br\nsaogonca.br\nseg.br\nsjc.br\nslg.br\nslz.br\nsorocaba.br\nsrv.br\ntaxi.br\ntc.br\ntec.br\nteo.br\nthe.br\ntmp.br\ntrd.br\ntur.br\ntv.br\nudi.br\nvet.br\nvix.br\nvlog.br\nwiki.br\nzlg.br\n\n// bs : http://www.nic.bs/rules.html\nbs\ncom.bs\nnet.bs\norg.bs\nedu.bs\ngov.bs\n\n// bt : https://en.wikipedia.org/wiki/.bt\nbt\ncom.bt\nedu.bt\ngov.bt\nnet.bt\norg.bt\n\n// bv : No registrations at this time.\n// Submitted by registry <jarle@uninett.no>\nbv\n\n// bw : https://en.wikipedia.org/wiki/.bw\n// http://www.gobin.info/domainname/bw.doc\n// list of other 2nd level tlds ?\nbw\nco.bw\norg.bw\n\n// by : https://en.wikipedia.org/wiki/.by\n// http://tld.by/rules_2006_en.html\n// list of other 2nd level tlds ?\nby\ngov.by\nmil.by\n// Official information does not indicate that com.by is a reserved\n// second-level domain, but it\'s being used as one (see www.google.com.by and\n// www.yahoo.com.by, for example), so we list it here for safety\'s sake.\ncom.by\n\n// http://hoster.by/\nof.by\n\n// bz : https://en.wikipedia.org/wiki/.bz\n// http://www.belizenic.bz/\nbz\ncom.bz\nnet.bz\norg.bz\nedu.bz\ngov.bz\n\n// ca : https://en.wikipedia.org/wiki/.ca\nca\n// ca geographical names\nab.ca\nbc.ca\nmb.ca\nnb.ca\nnf.ca\nnl.ca\nns.ca\nnt.ca\nnu.ca\non.ca\npe.ca\nqc.ca\nsk.ca\nyk.ca\n// gc.ca: https://en.wikipedia.org/wiki/.gc.ca\n// see also: http://registry.gc.ca/en/SubdomainFAQ\ngc.ca\n\n// cat : https://en.wikipedia.org/wiki/.cat\ncat\n\n// cc : https://en.wikipedia.org/wiki/.cc\ncc\n\n// cd : https://en.wikipedia.org/wiki/.cd\n// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1\ncd\ngov.cd\n\n// cf : https://en.wikipedia.org/wiki/.cf\ncf\n\n// cg : https://en.wikipedia.org/wiki/.cg\ncg\n\n// ch : https://en.wikipedia.org/wiki/.ch\nch\n\n// ci : https://en.wikipedia.org/wiki/.ci\n// http://www.nic.ci/index.php?page=charte\nci\norg.ci\nor.ci\ncom.ci\nco.ci\nedu.ci\ned.ci\nac.ci\nnet.ci\ngo.ci\nasso.ci\naéroport.ci\nint.ci\npresse.ci\nmd.ci\ngouv.ci\n\n// ck : https://en.wikipedia.org/wiki/.ck\n*.ck\n!www.ck\n\n// cl : https://www.nic.cl\n// Confirmed by .CL registry <hsalgado@nic.cl>\ncl\nco.cl\ngob.cl\ngov.cl\nmil.cl\n\n// cm : https://en.wikipedia.org/wiki/.cm plus bug 981927\ncm\nco.cm\ncom.cm\ngov.cm\nnet.cm\n\n// cn : https://en.wikipedia.org/wiki/.cn\n// Submitted by registry <tanyaling@cnnic.cn>\ncn\nac.cn\ncom.cn\nedu.cn\ngov.cn\nnet.cn\norg.cn\nmil.cn\n公司.cn\n网络.cn\n網絡.cn\n// cn geographic names\nah.cn\nbj.cn\ncq.cn\nfj.cn\ngd.cn\ngs.cn\ngz.cn\ngx.cn\nha.cn\nhb.cn\nhe.cn\nhi.cn\nhl.cn\nhn.cn\njl.cn\njs.cn\njx.cn\nln.cn\nnm.cn\nnx.cn\nqh.cn\nsc.cn\nsd.cn\nsh.cn\nsn.cn\nsx.cn\ntj.cn\nxj.cn\nxz.cn\nyn.cn\nzj.cn\nhk.cn\nmo.cn\ntw.cn\n\n// co : https://en.wikipedia.org/wiki/.co\n// Submitted by registry <tecnico@uniandes.edu.co>\nco\narts.co\ncom.co\nedu.co\nfirm.co\ngov.co\ninfo.co\nint.co\nmil.co\nnet.co\nnom.co\norg.co\nrec.co\nweb.co\n\n// com : https://en.wikipedia.org/wiki/.com\ncom\n\n// coop : https://en.wikipedia.org/wiki/.coop\ncoop\n\n// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do\ncr\nac.cr\nco.cr\ned.cr\nfi.cr\ngo.cr\nor.cr\nsa.cr\n\n// cu : https://en.wikipedia.org/wiki/.cu\ncu\ncom.cu\nedu.cu\norg.cu\nnet.cu\ngov.cu\ninf.cu\n\n// cv : https://en.wikipedia.org/wiki/.cv\n// cv : http://www.dns.cv/tldcv_portal/do?com=DS;5446457100;111;+PAGE(4000018)+K-CAT-CODIGO(RDOM)+RCNT(100); <- registration rules\ncv\ncom.cv\nedu.cv\nint.cv\nnome.cv\norg.cv\n\n// cw : http://www.una.cw/cw_registry/\n// Confirmed by registry <registry@una.net> 2013-03-26\ncw\ncom.cw\nedu.cw\nnet.cw\norg.cw\n\n// cx : https://en.wikipedia.org/wiki/.cx\n// list of other 2nd level tlds ?\ncx\ngov.cx\n\n// cy : http://www.nic.cy/\n// Submitted by registry Panayiotou Fotia <cydns@ucy.ac.cy>\n// namespace policies URL https://www.nic.cy/portal//sites/default/files/symfonia_gia_eggrafi.pdf\ncy\nac.cy\nbiz.cy\ncom.cy\nekloges.cy\ngov.cy\nltd.cy\nmil.cy\nnet.cy\norg.cy\npress.cy\npro.cy\ntm.cy\n\n// cz : https://en.wikipedia.org/wiki/.cz\ncz\n\n// de : https://en.wikipedia.org/wiki/.de\n// Confirmed by registry <ops@denic.de> (with technical\n// reservations) 2008-07-01\nde\n\n// dj : https://en.wikipedia.org/wiki/.dj\ndj\n\n// dk : https://en.wikipedia.org/wiki/.dk\n// Confirmed by registry <robert@dk-hostmaster.dk> 2008-06-17\ndk\n\n// dm : https://en.wikipedia.org/wiki/.dm\ndm\ncom.dm\nnet.dm\norg.dm\nedu.dm\ngov.dm\n\n// do : https://en.wikipedia.org/wiki/.do\ndo\nart.do\ncom.do\nedu.do\ngob.do\ngov.do\nmil.do\nnet.do\norg.do\nsld.do\nweb.do\n\n// dz : http://www.nic.dz/images/pdf_nic/charte.pdf\ndz\nart.dz\nasso.dz\ncom.dz\nedu.dz\ngov.dz\norg.dz\nnet.dz\npol.dz\nsoc.dz\ntm.dz\n\n// ec : http://www.nic.ec/reg/paso1.asp\n// Submitted by registry <vabboud@nic.ec>\nec\ncom.ec\ninfo.ec\nnet.ec\nfin.ec\nk12.ec\nmed.ec\npro.ec\norg.ec\nedu.ec\ngov.ec\ngob.ec\nmil.ec\n\n// edu : https://en.wikipedia.org/wiki/.edu\nedu\n\n// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B\nee\nedu.ee\ngov.ee\nriik.ee\nlib.ee\nmed.ee\ncom.ee\npri.ee\naip.ee\norg.ee\nfie.ee\n\n// eg : https://en.wikipedia.org/wiki/.eg\neg\ncom.eg\nedu.eg\neun.eg\ngov.eg\nmil.eg\nname.eg\nnet.eg\norg.eg\nsci.eg\n\n// er : https://en.wikipedia.org/wiki/.er\n*.er\n\n// es : https://www.nic.es/site_ingles/ingles/dominios/index.html\nes\ncom.es\nnom.es\norg.es\ngob.es\nedu.es\n\n// et : https://en.wikipedia.org/wiki/.et\net\ncom.et\ngov.et\norg.et\nedu.et\nbiz.et\nname.et\ninfo.et\nnet.et\n\n// eu : https://en.wikipedia.org/wiki/.eu\neu\n\n// fi : https://en.wikipedia.org/wiki/.fi\nfi\n// aland.fi : https://en.wikipedia.org/wiki/.ax\n// This domain is being phased out in favor of .ax. As there are still many\n// domains under aland.fi, we still keep it on the list until aland.fi is\n// completely removed.\n// TODO: Check for updates (expected to be phased out around Q1/2009)\naland.fi\n\n// fj : http://domains.fj/\n// Submitted by registry <garth.miller@cocca.org.nz> 2020-02-11\nfj\nac.fj\nbiz.fj\ncom.fj\ngov.fj\ninfo.fj\nmil.fj\nname.fj\nnet.fj\norg.fj\npro.fj\n\n// fk : https://en.wikipedia.org/wiki/.fk\n*.fk\n\n// fm : https://en.wikipedia.org/wiki/.fm\ncom.fm\nedu.fm\nnet.fm\norg.fm\nfm\n\n// fo : https://en.wikipedia.org/wiki/.fo\nfo\n\n// fr : https://www.afnic.fr/ https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nfr\nasso.fr\ncom.fr\ngouv.fr\nnom.fr\nprd.fr\ntm.fr\n// Other SLDs now selfmanaged out of AFNIC range. Former "domaines sectoriels", still registration suffixes\navoues.fr\ncci.fr\ngreta.fr\nhuissier-justice.fr\n\n// ga : https://en.wikipedia.org/wiki/.ga\nga\n\n// gb : This registry is effectively dormant\n// Submitted by registry <Damien.Shaw@ja.net>\ngb\n\n// gd : https://en.wikipedia.org/wiki/.gd\nedu.gd\ngov.gd\ngd\n\n// ge : http://www.nic.net.ge/policy_en.pdf\nge\ncom.ge\nedu.ge\ngov.ge\norg.ge\nmil.ge\nnet.ge\npvt.ge\n\n// gf : https://en.wikipedia.org/wiki/.gf\ngf\n\n// gg : http://www.channelisles.net/register-domains/\n// Confirmed by registry <nigel@channelisles.net> 2013-11-28\ngg\nco.gg\nnet.gg\norg.gg\n\n// gh : https://en.wikipedia.org/wiki/.gh\n// see also: http://www.nic.gh/reg_now.php\n// Although domains directly at second level are not possible at the moment,\n// they have been possible for some time and may come back.\ngh\ncom.gh\nedu.gh\ngov.gh\norg.gh\nmil.gh\n\n// gi : http://www.nic.gi/rules.html\ngi\ncom.gi\nltd.gi\ngov.gi\nmod.gi\nedu.gi\norg.gi\n\n// gl : https://en.wikipedia.org/wiki/.gl\n// http://nic.gl\ngl\nco.gl\ncom.gl\nedu.gl\nnet.gl\norg.gl\n\n// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm\ngm\n\n// gn : http://psg.com/dns/gn/gn.txt\n// Submitted by registry <randy@psg.com>\ngn\nac.gn\ncom.gn\nedu.gn\ngov.gn\norg.gn\nnet.gn\n\n// gov : https://en.wikipedia.org/wiki/.gov\ngov\n\n// gp : http://www.nic.gp/index.php?lang=en\ngp\ncom.gp\nnet.gp\nmobi.gp\nedu.gp\norg.gp\nasso.gp\n\n// gq : https://en.wikipedia.org/wiki/.gq\ngq\n\n// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html\n// Submitted by registry <segred@ics.forth.gr>\ngr\ncom.gr\nedu.gr\nnet.gr\norg.gr\ngov.gr\n\n// gs : https://en.wikipedia.org/wiki/.gs\ngs\n\n// gt : https://www.gt/sitio/registration_policy.php?lang=en\ngt\ncom.gt\nedu.gt\ngob.gt\nind.gt\nmil.gt\nnet.gt\norg.gt\n\n// gu : http://gadao.gov.gu/register.html\n// University of Guam : https://www.uog.edu\n// Submitted by uognoc@triton.uog.edu\ngu\ncom.gu\nedu.gu\ngov.gu\nguam.gu\ninfo.gu\nnet.gu\norg.gu\nweb.gu\n\n// gw : https://en.wikipedia.org/wiki/.gw\n// gw : https://nic.gw/regras/\ngw\n\n// gy : https://en.wikipedia.org/wiki/.gy\n// http://registry.gy/\ngy\nco.gy\ncom.gy\nedu.gy\ngov.gy\nnet.gy\norg.gy\n\n// hk : https://www.hkirc.hk\n// Submitted by registry <hk.tech@hkirc.hk>\nhk\ncom.hk\nedu.hk\ngov.hk\nidv.hk\nnet.hk\norg.hk\n公司.hk\n教育.hk\n敎育.hk\n政府.hk\n個人.hk\n个人.hk\n箇人.hk\n網络.hk\n网络.hk\n组織.hk\n網絡.hk\n网絡.hk\n组织.hk\n組織.hk\n組织.hk\n\n// hm : https://en.wikipedia.org/wiki/.hm\nhm\n\n// hn : http://www.nic.hn/politicas/ps02,,05.html\nhn\ncom.hn\nedu.hn\norg.hn\nnet.hn\nmil.hn\ngob.hn\n\n// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf\nhr\niz.hr\nfrom.hr\nname.hr\ncom.hr\n\n// ht : http://www.nic.ht/info/charte.cfm\nht\ncom.ht\nshop.ht\nfirm.ht\ninfo.ht\nadult.ht\nnet.ht\npro.ht\norg.ht\nmed.ht\nart.ht\ncoop.ht\npol.ht\nasso.ht\nedu.ht\nrel.ht\ngouv.ht\nperso.ht\n\n// hu : http://www.domain.hu/domain/English/sld.html\n// Confirmed by registry <pasztor@iszt.hu> 2008-06-12\nhu\nco.hu\ninfo.hu\norg.hu\npriv.hu\nsport.hu\ntm.hu\n2000.hu\nagrar.hu\nbolt.hu\ncasino.hu\ncity.hu\nerotica.hu\nerotika.hu\nfilm.hu\nforum.hu\ngames.hu\nhotel.hu\ningatlan.hu\njogasz.hu\nkonyvelo.hu\nlakas.hu\nmedia.hu\nnews.hu\nreklam.hu\nsex.hu\nshop.hu\nsuli.hu\nszex.hu\ntozsde.hu\nutazas.hu\nvideo.hu\n\n// id : https://pandi.id/en/domain/registration-requirements/\nid\nac.id\nbiz.id\nco.id\ndesa.id\ngo.id\nmil.id\nmy.id\nnet.id\nor.id\nponpes.id\nsch.id\nweb.id\n\n// ie : https://en.wikipedia.org/wiki/.ie\nie\ngov.ie\n\n// il : http://www.isoc.org.il/domains/\n// see also: https://en.isoc.org.il/il-cctld/registration-rules\n// ISOC-IL (operated by .il Registry)\nil\nac.il\nco.il\ngov.il\nidf.il\nk12.il\nmuni.il\nnet.il\norg.il\n// xn--4dbrk0ce ("Israel", Hebrew) : IL\nישראל\n// xn--4dbgdty6c.xn--4dbrk0ce.\nאקדמיה.ישראל\n// xn--5dbhl8d.xn--4dbrk0ce.\nישוב.ישראל\n// xn--8dbq2a.xn--4dbrk0ce.\nצהל.ישראל\n// xn--hebda8b.xn--4dbrk0ce.\nממשל.ישראל\n\n// im : https://www.nic.im/\n// Submitted by registry <info@nic.im>\nim\nac.im\nco.im\ncom.im\nltd.co.im\nnet.im\norg.im\nplc.co.im\ntt.im\ntv.im\n\n// in : https://en.wikipedia.org/wiki/.in\n// see also: https://registry.in/policies\n// Please note, that nic.in is not an official eTLD, but used by most\n// government institutions.\nin\n5g.in\n6g.in\nac.in\nai.in\nam.in\nbihar.in\nbiz.in\nbusiness.in\nca.in\ncn.in\nco.in\ncom.in\ncoop.in\ncs.in\ndelhi.in\ndr.in\nedu.in\ner.in\nfirm.in\ngen.in\ngov.in\ngujarat.in\nind.in\ninfo.in\nint.in\ninternet.in\nio.in\nme.in\nmil.in\nnet.in\nnic.in\norg.in\npg.in\npost.in\npro.in\nres.in\ntravel.in\ntv.in\nuk.in\nup.in\nus.in\n\n// info : https://en.wikipedia.org/wiki/.info\ninfo\n\n// int : https://en.wikipedia.org/wiki/.int\n// Confirmed by registry <iana-questions@icann.org> 2008-06-18\nint\neu.int\n\n// io : http://www.nic.io/rules.htm\n// list of other 2nd level tlds ?\nio\ncom.io\n\n// iq : http://www.cmc.iq/english/iq/iqregister1.htm\niq\ngov.iq\nedu.iq\nmil.iq\ncom.iq\norg.iq\nnet.iq\n\n// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules\n// Also see http://www.nic.ir/Internationalized_Domain_Names\n// Two <iran>.ir entries added at request of <tech-team@nic.ir>, 2010-04-16\nir\nac.ir\nco.ir\ngov.ir\nid.ir\nnet.ir\norg.ir\nsch.ir\n// xn--mgba3a4f16a.ir (<iran>.ir, Persian YEH)\nایران.ir\n// xn--mgba3a4fra.ir (<iran>.ir, Arabic YEH)\nايران.ir\n\n// is : http://www.isnic.is/domain/rules.php\n// Confirmed by registry <marius@isgate.is> 2008-12-06\nis\nnet.is\ncom.is\nedu.is\ngov.is\norg.is\nint.is\n\n// it : https://en.wikipedia.org/wiki/.it\nit\ngov.it\nedu.it\n// Reserved geo-names (regions and provinces):\n// https://www.nic.it/sites/default/files/archivio/docs/Regulation_assignation_v7.1.pdf\n// Regions\nabr.it\nabruzzo.it\naosta-valley.it\naostavalley.it\nbas.it\nbasilicata.it\ncal.it\ncalabria.it\ncam.it\ncampania.it\nemilia-romagna.it\nemiliaromagna.it\nemr.it\nfriuli-v-giulia.it\nfriuli-ve-giulia.it\nfriuli-vegiulia.it\nfriuli-venezia-giulia.it\nfriuli-veneziagiulia.it\nfriuli-vgiulia.it\nfriuliv-giulia.it\nfriulive-giulia.it\nfriulivegiulia.it\nfriulivenezia-giulia.it\nfriuliveneziagiulia.it\nfriulivgiulia.it\nfvg.it\nlaz.it\nlazio.it\nlig.it\nliguria.it\nlom.it\nlombardia.it\nlombardy.it\nlucania.it\nmar.it\nmarche.it\nmol.it\nmolise.it\npiedmont.it\npiemonte.it\npmn.it\npug.it\npuglia.it\nsar.it\nsardegna.it\nsardinia.it\nsic.it\nsicilia.it\nsicily.it\ntaa.it\ntos.it\ntoscana.it\ntrentin-sud-tirol.it\ntrentin-süd-tirol.it\ntrentin-sudtirol.it\ntrentin-südtirol.it\ntrentin-sued-tirol.it\ntrentin-suedtirol.it\ntrentino-a-adige.it\ntrentino-aadige.it\ntrentino-alto-adige.it\ntrentino-altoadige.it\ntrentino-s-tirol.it\ntrentino-stirol.it\ntrentino-sud-tirol.it\ntrentino-süd-tirol.it\ntrentino-sudtirol.it\ntrentino-südtirol.it\ntrentino-sued-tirol.it\ntrentino-suedtirol.it\ntrentino.it\ntrentinoa-adige.it\ntrentinoaadige.it\ntrentinoalto-adige.it\ntrentinoaltoadige.it\ntrentinos-tirol.it\ntrentinostirol.it\ntrentinosud-tirol.it\ntrentinosüd-tirol.it\ntrentinosudtirol.it\ntrentinosüdtirol.it\ntrentinosued-tirol.it\ntrentinosuedtirol.it\ntrentinsud-tirol.it\ntrentinsüd-tirol.it\ntrentinsudtirol.it\ntrentinsüdtirol.it\ntrentinsued-tirol.it\ntrentinsuedtirol.it\ntuscany.it\numb.it\numbria.it\nval-d-aosta.it\nval-daosta.it\nvald-aosta.it\nvaldaosta.it\nvalle-aosta.it\nvalle-d-aosta.it\nvalle-daosta.it\nvalleaosta.it\nvalled-aosta.it\nvalledaosta.it\nvallee-aoste.it\nvallée-aoste.it\nvallee-d-aoste.it\nvallée-d-aoste.it\nvalleeaoste.it\nvalléeaoste.it\nvalleedaoste.it\nvalléedaoste.it\nvao.it\nvda.it\nven.it\nveneto.it\n// Provinces\nag.it\nagrigento.it\nal.it\nalessandria.it\nalto-adige.it\naltoadige.it\nan.it\nancona.it\nandria-barletta-trani.it\nandria-trani-barletta.it\nandriabarlettatrani.it\nandriatranibarletta.it\nao.it\naosta.it\naoste.it\nap.it\naq.it\naquila.it\nar.it\narezzo.it\nascoli-piceno.it\nascolipiceno.it\nasti.it\nat.it\nav.it\navellino.it\nba.it\nbalsan-sudtirol.it\nbalsan-südtirol.it\nbalsan-suedtirol.it\nbalsan.it\nbari.it\nbarletta-trani-andria.it\nbarlettatraniandria.it\nbelluno.it\nbenevento.it\nbergamo.it\nbg.it\nbi.it\nbiella.it\nbl.it\nbn.it\nbo.it\nbologna.it\nbolzano-altoadige.it\nbolzano.it\nbozen-sudtirol.it\nbozen-südtirol.it\nbozen-suedtirol.it\nbozen.it\nbr.it\nbrescia.it\nbrindisi.it\nbs.it\nbt.it\nbulsan-sudtirol.it\nbulsan-südtirol.it\nbulsan-suedtirol.it\nbulsan.it\nbz.it\nca.it\ncagliari.it\ncaltanissetta.it\ncampidano-medio.it\ncampidanomedio.it\ncampobasso.it\ncarbonia-iglesias.it\ncarboniaiglesias.it\ncarrara-massa.it\ncarraramassa.it\ncaserta.it\ncatania.it\ncatanzaro.it\ncb.it\nce.it\ncesena-forli.it\ncesena-forlì.it\ncesenaforli.it\ncesenaforlì.it\nch.it\nchieti.it\nci.it\ncl.it\ncn.it\nco.it\ncomo.it\ncosenza.it\ncr.it\ncremona.it\ncrotone.it\ncs.it\nct.it\ncuneo.it\ncz.it\ndell-ogliastra.it\ndellogliastra.it\nen.it\nenna.it\nfc.it\nfe.it\nfermo.it\nferrara.it\nfg.it\nfi.it\nfirenze.it\nflorence.it\nfm.it\nfoggia.it\nforli-cesena.it\nforlì-cesena.it\nforlicesena.it\nforlìcesena.it\nfr.it\nfrosinone.it\nge.it\ngenoa.it\ngenova.it\ngo.it\ngorizia.it\ngr.it\ngrosseto.it\niglesias-carbonia.it\niglesiascarbonia.it\nim.it\nimperia.it\nis.it\nisernia.it\nkr.it\nla-spezia.it\nlaquila.it\nlaspezia.it\nlatina.it\nlc.it\nle.it\nlecce.it\nlecco.it\nli.it\nlivorno.it\nlo.it\nlodi.it\nlt.it\nlu.it\nlucca.it\nmacerata.it\nmantova.it\nmassa-carrara.it\nmassacarrara.it\nmatera.it\nmb.it\nmc.it\nme.it\nmedio-campidano.it\nmediocampidano.it\nmessina.it\nmi.it\nmilan.it\nmilano.it\nmn.it\nmo.it\nmodena.it\nmonza-brianza.it\nmonza-e-della-brianza.it\nmonza.it\nmonzabrianza.it\nmonzaebrianza.it\nmonzaedellabrianza.it\nms.it\nmt.it\nna.it\nnaples.it\nnapoli.it\nno.it\nnovara.it\nnu.it\nnuoro.it\nog.it\nogliastra.it\nolbia-tempio.it\nolbiatempio.it\nor.it\noristano.it\not.it\npa.it\npadova.it\npadua.it\npalermo.it\nparma.it\npavia.it\npc.it\npd.it\npe.it\nperugia.it\npesaro-urbino.it\npesarourbino.it\npescara.it\npg.it\npi.it\npiacenza.it\npisa.it\npistoia.it\npn.it\npo.it\npordenone.it\npotenza.it\npr.it\nprato.it\npt.it\npu.it\npv.it\npz.it\nra.it\nragusa.it\nravenna.it\nrc.it\nre.it\nreggio-calabria.it\nreggio-emilia.it\nreggiocalabria.it\nreggioemilia.it\nrg.it\nri.it\nrieti.it\nrimini.it\nrm.it\nrn.it\nro.it\nroma.it\nrome.it\nrovigo.it\nsa.it\nsalerno.it\nsassari.it\nsavona.it\nsi.it\nsiena.it\nsiracusa.it\nso.it\nsondrio.it\nsp.it\nsr.it\nss.it\nsuedtirol.it\nsüdtirol.it\nsv.it\nta.it\ntaranto.it\nte.it\ntempio-olbia.it\ntempioolbia.it\nteramo.it\nterni.it\ntn.it\nto.it\ntorino.it\ntp.it\ntr.it\ntrani-andria-barletta.it\ntrani-barletta-andria.it\ntraniandriabarletta.it\ntranibarlettaandria.it\ntrapani.it\ntrento.it\ntreviso.it\ntrieste.it\nts.it\nturin.it\ntv.it\nud.it\nudine.it\nurbino-pesaro.it\nurbinopesaro.it\nva.it\nvarese.it\nvb.it\nvc.it\nve.it\nvenezia.it\nvenice.it\nverbania.it\nvercelli.it\nverona.it\nvi.it\nvibo-valentia.it\nvibovalentia.it\nvicenza.it\nviterbo.it\nvr.it\nvs.it\nvt.it\nvv.it\n\n// je : http://www.channelisles.net/register-domains/\n// Confirmed by registry <nigel@channelisles.net> 2013-11-28\nje\nco.je\nnet.je\norg.je\n\n// jm : http://www.com.jm/register.html\n*.jm\n\n// jo : http://www.dns.jo/Registration_policy.aspx\njo\ncom.jo\norg.jo\nnet.jo\nedu.jo\nsch.jo\ngov.jo\nmil.jo\nname.jo\n\n// jobs : https://en.wikipedia.org/wiki/.jobs\njobs\n\n// jp : https://en.wikipedia.org/wiki/.jp\n// http://jprs.co.jp/en/jpdomain.html\n// Submitted by registry <info@jprs.jp>\njp\n// jp organizational type names\nac.jp\nad.jp\nco.jp\ned.jp\ngo.jp\ngr.jp\nlg.jp\nne.jp\nor.jp\n// jp prefecture type names\naichi.jp\nakita.jp\naomori.jp\nchiba.jp\nehime.jp\nfukui.jp\nfukuoka.jp\nfukushima.jp\ngifu.jp\ngunma.jp\nhiroshima.jp\nhokkaido.jp\nhyogo.jp\nibaraki.jp\nishikawa.jp\niwate.jp\nkagawa.jp\nkagoshima.jp\nkanagawa.jp\nkochi.jp\nkumamoto.jp\nkyoto.jp\nmie.jp\nmiyagi.jp\nmiyazaki.jp\nnagano.jp\nnagasaki.jp\nnara.jp\nniigata.jp\noita.jp\nokayama.jp\nokinawa.jp\nosaka.jp\nsaga.jp\nsaitama.jp\nshiga.jp\nshimane.jp\nshizuoka.jp\ntochigi.jp\ntokushima.jp\ntokyo.jp\ntottori.jp\ntoyama.jp\nwakayama.jp\nyamagata.jp\nyamaguchi.jp\nyamanashi.jp\n栃木.jp\n愛知.jp\n愛媛.jp\n兵庫.jp\n熊本.jp\n茨城.jp\n北海道.jp\n千葉.jp\n和歌山.jp\n長崎.jp\n長野.jp\n新潟.jp\n青森.jp\n静岡.jp\n東京.jp\n石川.jp\n埼玉.jp\n三重.jp\n京都.jp\n佐賀.jp\n大分.jp\n大阪.jp\n奈良.jp\n宮城.jp\n宮崎.jp\n富山.jp\n山口.jp\n山形.jp\n山梨.jp\n岩手.jp\n岐阜.jp\n岡山.jp\n島根.jp\n広島.jp\n徳島.jp\n沖縄.jp\n滋賀.jp\n神奈川.jp\n福井.jp\n福岡.jp\n福島.jp\n秋田.jp\n群馬.jp\n香川.jp\n高知.jp\n鳥取.jp\n鹿児島.jp\n// jp geographic type names\n// http://jprs.jp/doc/rule/saisoku-1.html\n*.kawasaki.jp\n*.kitakyushu.jp\n*.kobe.jp\n*.nagoya.jp\n*.sapporo.jp\n*.sendai.jp\n*.yokohama.jp\n!city.kawasaki.jp\n!city.kitakyushu.jp\n!city.kobe.jp\n!city.nagoya.jp\n!city.sapporo.jp\n!city.sendai.jp\n!city.yokohama.jp\n// 4th level registration\naisai.aichi.jp\nama.aichi.jp\nanjo.aichi.jp\nasuke.aichi.jp\nchiryu.aichi.jp\nchita.aichi.jp\nfuso.aichi.jp\ngamagori.aichi.jp\nhanda.aichi.jp\nhazu.aichi.jp\nhekinan.aichi.jp\nhigashiura.aichi.jp\nichinomiya.aichi.jp\ninazawa.aichi.jp\ninuyama.aichi.jp\nisshiki.aichi.jp\niwakura.aichi.jp\nkanie.aichi.jp\nkariya.aichi.jp\nkasugai.aichi.jp\nkira.aichi.jp\nkiyosu.aichi.jp\nkomaki.aichi.jp\nkonan.aichi.jp\nkota.aichi.jp\nmihama.aichi.jp\nmiyoshi.aichi.jp\nnishio.aichi.jp\nnisshin.aichi.jp\nobu.aichi.jp\noguchi.aichi.jp\noharu.aichi.jp\nokazaki.aichi.jp\nowariasahi.aichi.jp\nseto.aichi.jp\nshikatsu.aichi.jp\nshinshiro.aichi.jp\nshitara.aichi.jp\ntahara.aichi.jp\ntakahama.aichi.jp\ntobishima.aichi.jp\ntoei.aichi.jp\ntogo.aichi.jp\ntokai.aichi.jp\ntokoname.aichi.jp\ntoyoake.aichi.jp\ntoyohashi.aichi.jp\ntoyokawa.aichi.jp\ntoyone.aichi.jp\ntoyota.aichi.jp\ntsushima.aichi.jp\nyatomi.aichi.jp\nakita.akita.jp\ndaisen.akita.jp\nfujisato.akita.jp\ngojome.akita.jp\nhachirogata.akita.jp\nhappou.akita.jp\nhigashinaruse.akita.jp\nhonjo.akita.jp\nhonjyo.akita.jp\nikawa.akita.jp\nkamikoani.akita.jp\nkamioka.akita.jp\nkatagami.akita.jp\nkazuno.akita.jp\nkitaakita.akita.jp\nkosaka.akita.jp\nkyowa.akita.jp\nmisato.akita.jp\nmitane.akita.jp\nmoriyoshi.akita.jp\nnikaho.akita.jp\nnoshiro.akita.jp\nodate.akita.jp\noga.akita.jp\nogata.akita.jp\nsemboku.akita.jp\nyokote.akita.jp\nyurihonjo.akita.jp\naomori.aomori.jp\ngonohe.aomori.jp\nhachinohe.aomori.jp\nhashikami.aomori.jp\nhiranai.aomori.jp\nhirosaki.aomori.jp\nitayanagi.aomori.jp\nkuroishi.aomori.jp\nmisawa.aomori.jp\nmutsu.aomori.jp\nnakadomari.aomori.jp\nnoheji.aomori.jp\noirase.aomori.jp\nowani.aomori.jp\nrokunohe.aomori.jp\nsannohe.aomori.jp\nshichinohe.aomori.jp\nshingo.aomori.jp\ntakko.aomori.jp\ntowada.aomori.jp\ntsugaru.aomori.jp\ntsuruta.aomori.jp\nabiko.chiba.jp\nasahi.chiba.jp\nchonan.chiba.jp\nchosei.chiba.jp\nchoshi.chiba.jp\nchuo.chiba.jp\nfunabashi.chiba.jp\nfuttsu.chiba.jp\nhanamigawa.chiba.jp\nichihara.chiba.jp\nichikawa.chiba.jp\nichinomiya.chiba.jp\ninzai.chiba.jp\nisumi.chiba.jp\nkamagaya.chiba.jp\nkamogawa.chiba.jp\nkashiwa.chiba.jp\nkatori.chiba.jp\nkatsuura.chiba.jp\nkimitsu.chiba.jp\nkisarazu.chiba.jp\nkozaki.chiba.jp\nkujukuri.chiba.jp\nkyonan.chiba.jp\nmatsudo.chiba.jp\nmidori.chiba.jp\nmihama.chiba.jp\nminamiboso.chiba.jp\nmobara.chiba.jp\nmutsuzawa.chiba.jp\nnagara.chiba.jp\nnagareyama.chiba.jp\nnarashino.chiba.jp\nnarita.chiba.jp\nnoda.chiba.jp\noamishirasato.chiba.jp\nomigawa.chiba.jp\nonjuku.chiba.jp\notaki.chiba.jp\nsakae.chiba.jp\nsakura.chiba.jp\nshimofusa.chiba.jp\nshirako.chiba.jp\nshiroi.chiba.jp\nshisui.chiba.jp\nsodegaura.chiba.jp\nsosa.chiba.jp\ntako.chiba.jp\ntateyama.chiba.jp\ntogane.chiba.jp\ntohnosho.chiba.jp\ntomisato.chiba.jp\nurayasu.chiba.jp\nyachimata.chiba.jp\nyachiyo.chiba.jp\nyokaichiba.chiba.jp\nyokoshibahikari.chiba.jp\nyotsukaido.chiba.jp\nainan.ehime.jp\nhonai.ehime.jp\nikata.ehime.jp\nimabari.ehime.jp\niyo.ehime.jp\nkamijima.ehime.jp\nkihoku.ehime.jp\nkumakogen.ehime.jp\nmasaki.ehime.jp\nmatsuno.ehime.jp\nmatsuyama.ehime.jp\nnamikata.ehime.jp\nniihama.ehime.jp\nozu.ehime.jp\nsaijo.ehime.jp\nseiyo.ehime.jp\nshikokuchuo.ehime.jp\ntobe.ehime.jp\ntoon.ehime.jp\nuchiko.ehime.jp\nuwajima.ehime.jp\nyawatahama.ehime.jp\nechizen.fukui.jp\neiheiji.fukui.jp\nfukui.fukui.jp\nikeda.fukui.jp\nkatsuyama.fukui.jp\nmihama.fukui.jp\nminamiechizen.fukui.jp\nobama.fukui.jp\nohi.fukui.jp\nono.fukui.jp\nsabae.fukui.jp\nsakai.fukui.jp\ntakahama.fukui.jp\ntsuruga.fukui.jp\nwakasa.fukui.jp\nashiya.fukuoka.jp\nbuzen.fukuoka.jp\nchikugo.fukuoka.jp\nchikuho.fukuoka.jp\nchikujo.fukuoka.jp\nchikushino.fukuoka.jp\nchikuzen.fukuoka.jp\nchuo.fukuoka.jp\ndazaifu.fukuoka.jp\nfukuchi.fukuoka.jp\nhakata.fukuoka.jp\nhigashi.fukuoka.jp\nhirokawa.fukuoka.jp\nhisayama.fukuoka.jp\niizuka.fukuoka.jp\ninatsuki.fukuoka.jp\nkaho.fukuoka.jp\nkasuga.fukuoka.jp\nkasuya.fukuoka.jp\nkawara.fukuoka.jp\nkeisen.fukuoka.jp\nkoga.fukuoka.jp\nkurate.fukuoka.jp\nkurogi.fukuoka.jp\nkurume.fukuoka.jp\nminami.fukuoka.jp\nmiyako.fukuoka.jp\nmiyama.fukuoka.jp\nmiyawaka.fukuoka.jp\nmizumaki.fukuoka.jp\nmunakata.fukuoka.jp\nnakagawa.fukuoka.jp\nnakama.fukuoka.jp\nnishi.fukuoka.jp\nnogata.fukuoka.jp\nogori.fukuoka.jp\nokagaki.fukuoka.jp\nokawa.fukuoka.jp\noki.fukuoka.jp\nomuta.fukuoka.jp\nonga.fukuoka.jp\nonojo.fukuoka.jp\noto.fukuoka.jp\nsaigawa.fukuoka.jp\nsasaguri.fukuoka.jp\nshingu.fukuoka.jp\nshinyoshitomi.fukuoka.jp\nshonai.fukuoka.jp\nsoeda.fukuoka.jp\nsue.fukuoka.jp\ntachiarai.fukuoka.jp\ntagawa.fukuoka.jp\ntakata.fukuoka.jp\ntoho.fukuoka.jp\ntoyotsu.fukuoka.jp\ntsuiki.fukuoka.jp\nukiha.fukuoka.jp\numi.fukuoka.jp\nusui.fukuoka.jp\nyamada.fukuoka.jp\nyame.fukuoka.jp\nyanagawa.fukuoka.jp\nyukuhashi.fukuoka.jp\naizubange.fukushima.jp\naizumisato.fukushima.jp\naizuwakamatsu.fukushima.jp\nasakawa.fukushima.jp\nbandai.fukushima.jp\ndate.fukushima.jp\nfukushima.fukushima.jp\nfurudono.fukushima.jp\nfutaba.fukushima.jp\nhanawa.fukushima.jp\nhigashi.fukushima.jp\nhirata.fukushima.jp\nhirono.fukushima.jp\niitate.fukushima.jp\ninawashiro.fukushima.jp\nishikawa.fukushima.jp\niwaki.fukushima.jp\nizumizaki.fukushima.jp\nkagamiishi.fukushima.jp\nkaneyama.fukushima.jp\nkawamata.fukushima.jp\nkitakata.fukushima.jp\nkitashiobara.fukushima.jp\nkoori.fukushima.jp\nkoriyama.fukushima.jp\nkunimi.fukushima.jp\nmiharu.fukushima.jp\nmishima.fukushima.jp\nnamie.fukushima.jp\nnango.fukushima.jp\nnishiaizu.fukushima.jp\nnishigo.fukushima.jp\nokuma.fukushima.jp\nomotego.fukushima.jp\nono.fukushima.jp\notama.fukushima.jp\nsamegawa.fukushima.jp\nshimogo.fukushima.jp\nshirakawa.fukushima.jp\nshowa.fukushima.jp\nsoma.fukushima.jp\nsukagawa.fukushima.jp\ntaishin.fukushima.jp\ntamakawa.fukushima.jp\ntanagura.fukushima.jp\ntenei.fukushima.jp\nyabuki.fukushima.jp\nyamato.fukushima.jp\nyamatsuri.fukushima.jp\nyanaizu.fukushima.jp\nyugawa.fukushima.jp\nanpachi.gifu.jp\nena.gifu.jp\ngifu.gifu.jp\nginan.gifu.jp\ngodo.gifu.jp\ngujo.gifu.jp\nhashima.gifu.jp\nhichiso.gifu.jp\nhida.gifu.jp\nhigashishirakawa.gifu.jp\nibigawa.gifu.jp\nikeda.gifu.jp\nkakamigahara.gifu.jp\nkani.gifu.jp\nkasahara.gifu.jp\nkasamatsu.gifu.jp\nkawaue.gifu.jp\nkitagata.gifu.jp\nmino.gifu.jp\nminokamo.gifu.jp\nmitake.gifu.jp\nmizunami.gifu.jp\nmotosu.gifu.jp\nnakatsugawa.gifu.jp\nogaki.gifu.jp\nsakahogi.gifu.jp\nseki.gifu.jp\nsekigahara.gifu.jp\nshirakawa.gifu.jp\ntajimi.gifu.jp\ntakayama.gifu.jp\ntarui.gifu.jp\ntoki.gifu.jp\ntomika.gifu.jp\nwanouchi.gifu.jp\nyamagata.gifu.jp\nyaotsu.gifu.jp\nyoro.gifu.jp\nannaka.gunma.jp\nchiyoda.gunma.jp\nfujioka.gunma.jp\nhigashiagatsuma.gunma.jp\nisesaki.gunma.jp\nitakura.gunma.jp\nkanna.gunma.jp\nkanra.gunma.jp\nkatashina.gunma.jp\nkawaba.gunma.jp\nkiryu.gunma.jp\nkusatsu.gunma.jp\nmaebashi.gunma.jp\nmeiwa.gunma.jp\nmidori.gunma.jp\nminakami.gunma.jp\nnaganohara.gunma.jp\nnakanojo.gunma.jp\nnanmoku.gunma.jp\nnumata.gunma.jp\noizumi.gunma.jp\nora.gunma.jp\nota.gunma.jp\nshibukawa.gunma.jp\nshimonita.gunma.jp\nshinto.gunma.jp\nshowa.gunma.jp\ntakasaki.gunma.jp\ntakayama.gunma.jp\ntamamura.gunma.jp\ntatebayashi.gunma.jp\ntomioka.gunma.jp\ntsukiyono.gunma.jp\ntsumagoi.gunma.jp\nueno.gunma.jp\nyoshioka.gunma.jp\nasaminami.hiroshima.jp\ndaiwa.hiroshima.jp\netajima.hiroshima.jp\nfuchu.hiroshima.jp\nfukuyama.hiroshima.jp\nhatsukaichi.hiroshima.jp\nhigashihiroshima.hiroshima.jp\nhongo.hiroshima.jp\njinsekikogen.hiroshima.jp\nkaita.hiroshima.jp\nkui.hiroshima.jp\nkumano.hiroshima.jp\nkure.hiroshima.jp\nmihara.hiroshima.jp\nmiyoshi.hiroshima.jp\nnaka.hiroshima.jp\nonomichi.hiroshima.jp\nosakikamijima.hiroshima.jp\notake.hiroshima.jp\nsaka.hiroshima.jp\nsera.hiroshima.jp\nseranishi.hiroshima.jp\nshinichi.hiroshima.jp\nshobara.hiroshima.jp\ntakehara.hiroshima.jp\nabashiri.hokkaido.jp\nabira.hokkaido.jp\naibetsu.hokkaido.jp\nakabira.hokkaido.jp\nakkeshi.hokkaido.jp\nasahikawa.hokkaido.jp\nashibetsu.hokkaido.jp\nashoro.hokkaido.jp\nassabu.hokkaido.jp\natsuma.hokkaido.jp\nbibai.hokkaido.jp\nbiei.hokkaido.jp\nbifuka.hokkaido.jp\nbihoro.hokkaido.jp\nbiratori.hokkaido.jp\nchippubetsu.hokkaido.jp\nchitose.hokkaido.jp\ndate.hokkaido.jp\nebetsu.hokkaido.jp\nembetsu.hokkaido.jp\neniwa.hokkaido.jp\nerimo.hokkaido.jp\nesan.hokkaido.jp\nesashi.hokkaido.jp\nfukagawa.hokkaido.jp\nfukushima.hokkaido.jp\nfurano.hokkaido.jp\nfurubira.hokkaido.jp\nhaboro.hokkaido.jp\nhakodate.hokkaido.jp\nhamatonbetsu.hokkaido.jp\nhidaka.hokkaido.jp\nhigashikagura.hokkaido.jp\nhigashikawa.hokkaido.jp\nhiroo.hokkaido.jp\nhokuryu.hokkaido.jp\nhokuto.hokkaido.jp\nhonbetsu.hokkaido.jp\nhorokanai.hokkaido.jp\nhoronobe.hokkaido.jp\nikeda.hokkaido.jp\nimakane.hokkaido.jp\nishikari.hokkaido.jp\niwamizawa.hokkaido.jp\niwanai.hokkaido.jp\nkamifurano.hokkaido.jp\nkamikawa.hokkaido.jp\nkamishihoro.hokkaido.jp\nkamisunagawa.hokkaido.jp\nkamoenai.hokkaido.jp\nkayabe.hokkaido.jp\nkembuchi.hokkaido.jp\nkikonai.hokkaido.jp\nkimobetsu.hokkaido.jp\nkitahiroshima.hokkaido.jp\nkitami.hokkaido.jp\nkiyosato.hokkaido.jp\nkoshimizu.hokkaido.jp\nkunneppu.hokkaido.jp\nkuriyama.hokkaido.jp\nkuromatsunai.hokkaido.jp\nkushiro.hokkaido.jp\nkutchan.hokkaido.jp\nkyowa.hokkaido.jp\nmashike.hokkaido.jp\nmatsumae.hokkaido.jp\nmikasa.hokkaido.jp\nminamifurano.hokkaido.jp\nmombetsu.hokkaido.jp\nmoseushi.hokkaido.jp\nmukawa.hokkaido.jp\nmuroran.hokkaido.jp\nnaie.hokkaido.jp\nnakagawa.hokkaido.jp\nnakasatsunai.hokkaido.jp\nnakatombetsu.hokkaido.jp\nnanae.hokkaido.jp\nnanporo.hokkaido.jp\nnayoro.hokkaido.jp\nnemuro.hokkaido.jp\nniikappu.hokkaido.jp\nniki.hokkaido.jp\nnishiokoppe.hokkaido.jp\nnoboribetsu.hokkaido.jp\nnumata.hokkaido.jp\nobihiro.hokkaido.jp\nobira.hokkaido.jp\noketo.hokkaido.jp\nokoppe.hokkaido.jp\notaru.hokkaido.jp\notobe.hokkaido.jp\notofuke.hokkaido.jp\notoineppu.hokkaido.jp\noumu.hokkaido.jp\nozora.hokkaido.jp\npippu.hokkaido.jp\nrankoshi.hokkaido.jp\nrebun.hokkaido.jp\nrikubetsu.hokkaido.jp\nrishiri.hokkaido.jp\nrishirifuji.hokkaido.jp\nsaroma.hokkaido.jp\nsarufutsu.hokkaido.jp\nshakotan.hokkaido.jp\nshari.hokkaido.jp\nshibecha.hokkaido.jp\nshibetsu.hokkaido.jp\nshikabe.hokkaido.jp\nshikaoi.hokkaido.jp\nshimamaki.hokkaido.jp\nshimizu.hokkaido.jp\nshimokawa.hokkaido.jp\nshinshinotsu.hokkaido.jp\nshintoku.hokkaido.jp\nshiranuka.hokkaido.jp\nshiraoi.hokkaido.jp\nshiriuchi.hokkaido.jp\nsobetsu.hokkaido.jp\nsunagawa.hokkaido.jp\ntaiki.hokkaido.jp\ntakasu.hokkaido.jp\ntakikawa.hokkaido.jp\ntakinoue.hokkaido.jp\nteshikaga.hokkaido.jp\ntobetsu.hokkaido.jp\ntohma.hokkaido.jp\ntomakomai.hokkaido.jp\ntomari.hokkaido.jp\ntoya.hokkaido.jp\ntoyako.hokkaido.jp\ntoyotomi.hokkaido.jp\ntoyoura.hokkaido.jp\ntsubetsu.hokkaido.jp\ntsukigata.hokkaido.jp\nurakawa.hokkaido.jp\nurausu.hokkaido.jp\nuryu.hokkaido.jp\nutashinai.hokkaido.jp\nwakkanai.hokkaido.jp\nwassamu.hokkaido.jp\nyakumo.hokkaido.jp\nyoichi.hokkaido.jp\naioi.hyogo.jp\nakashi.hyogo.jp\nako.hyogo.jp\namagasaki.hyogo.jp\naogaki.hyogo.jp\nasago.hyogo.jp\nashiya.hyogo.jp\nawaji.hyogo.jp\nfukusaki.hyogo.jp\ngoshiki.hyogo.jp\nharima.hyogo.jp\nhimeji.hyogo.jp\nichikawa.hyogo.jp\ninagawa.hyogo.jp\nitami.hyogo.jp\nkakogawa.hyogo.jp\nkamigori.hyogo.jp\nkamikawa.hyogo.jp\nkasai.hyogo.jp\nkasuga.hyogo.jp\nkawanishi.hyogo.jp\nmiki.hyogo.jp\nminamiawaji.hyogo.jp\nnishinomiya.hyogo.jp\nnishiwaki.hyogo.jp\nono.hyogo.jp\nsanda.hyogo.jp\nsannan.hyogo.jp\nsasayama.hyogo.jp\nsayo.hyogo.jp\nshingu.hyogo.jp\nshinonsen.hyogo.jp\nshiso.hyogo.jp\nsumoto.hyogo.jp\ntaishi.hyogo.jp\ntaka.hyogo.jp\ntakarazuka.hyogo.jp\ntakasago.hyogo.jp\ntakino.hyogo.jp\ntamba.hyogo.jp\ntatsuno.hyogo.jp\ntoyooka.hyogo.jp\nyabu.hyogo.jp\nyashiro.hyogo.jp\nyoka.hyogo.jp\nyokawa.hyogo.jp\nami.ibaraki.jp\nasahi.ibaraki.jp\nbando.ibaraki.jp\nchikusei.ibaraki.jp\ndaigo.ibaraki.jp\nfujishiro.ibaraki.jp\nhitachi.ibaraki.jp\nhitachinaka.ibaraki.jp\nhitachiomiya.ibaraki.jp\nhitachiota.ibaraki.jp\nibaraki.ibaraki.jp\nina.ibaraki.jp\ninashiki.ibaraki.jp\nitako.ibaraki.jp\niwama.ibaraki.jp\njoso.ibaraki.jp\nkamisu.ibaraki.jp\nkasama.ibaraki.jp\nkashima.ibaraki.jp\nkasumigaura.ibaraki.jp\nkoga.ibaraki.jp\nmiho.ibaraki.jp\nmito.ibaraki.jp\nmoriya.ibaraki.jp\nnaka.ibaraki.jp\nnamegata.ibaraki.jp\noarai.ibaraki.jp\nogawa.ibaraki.jp\nomitama.ibaraki.jp\nryugasaki.ibaraki.jp\nsakai.ibaraki.jp\nsakuragawa.ibaraki.jp\nshimodate.ibaraki.jp\nshimotsuma.ibaraki.jp\nshirosato.ibaraki.jp\nsowa.ibaraki.jp\nsuifu.ibaraki.jp\ntakahagi.ibaraki.jp\ntamatsukuri.ibaraki.jp\ntokai.ibaraki.jp\ntomobe.ibaraki.jp\ntone.ibaraki.jp\ntoride.ibaraki.jp\ntsuchiura.ibaraki.jp\ntsukuba.ibaraki.jp\nuchihara.ibaraki.jp\nushiku.ibaraki.jp\nyachiyo.ibaraki.jp\nyamagata.ibaraki.jp\nyawara.ibaraki.jp\nyuki.ibaraki.jp\nanamizu.ishikawa.jp\nhakui.ishikawa.jp\nhakusan.ishikawa.jp\nkaga.ishikawa.jp\nkahoku.ishikawa.jp\nkanazawa.ishikawa.jp\nkawakita.ishikawa.jp\nkomatsu.ishikawa.jp\nnakanoto.ishikawa.jp\nnanao.ishikawa.jp\nnomi.ishikawa.jp\nnonoichi.ishikawa.jp\nnoto.ishikawa.jp\nshika.ishikawa.jp\nsuzu.ishikawa.jp\ntsubata.ishikawa.jp\ntsurugi.ishikawa.jp\nuchinada.ishikawa.jp\nwajima.ishikawa.jp\nfudai.iwate.jp\nfujisawa.iwate.jp\nhanamaki.iwate.jp\nhiraizumi.iwate.jp\nhirono.iwate.jp\nichinohe.iwate.jp\nichinoseki.iwate.jp\niwaizumi.iwate.jp\niwate.iwate.jp\njoboji.iwate.jp\nkamaishi.iwate.jp\nkanegasaki.iwate.jp\nkarumai.iwate.jp\nkawai.iwate.jp\nkitakami.iwate.jp\nkuji.iwate.jp\nkunohe.iwate.jp\nkuzumaki.iwate.jp\nmiyako.iwate.jp\nmizusawa.iwate.jp\nmorioka.iwate.jp\nninohe.iwate.jp\nnoda.iwate.jp\nofunato.iwate.jp\noshu.iwate.jp\notsuchi.iwate.jp\nrikuzentakata.iwate.jp\nshiwa.iwate.jp\nshizukuishi.iwate.jp\nsumita.iwate.jp\ntanohata.iwate.jp\ntono.iwate.jp\nyahaba.iwate.jp\nyamada.iwate.jp\nayagawa.kagawa.jp\nhigashikagawa.kagawa.jp\nkanonji.kagawa.jp\nkotohira.kagawa.jp\nmanno.kagawa.jp\nmarugame.kagawa.jp\nmitoyo.kagawa.jp\nnaoshima.kagawa.jp\nsanuki.kagawa.jp\ntadotsu.kagawa.jp\ntakamatsu.kagawa.jp\ntonosho.kagawa.jp\nuchinomi.kagawa.jp\nutazu.kagawa.jp\nzentsuji.kagawa.jp\nakune.kagoshima.jp\namami.kagoshima.jp\nhioki.kagoshima.jp\nisa.kagoshima.jp\nisen.kagoshima.jp\nizumi.kagoshima.jp\nkagoshima.kagoshima.jp\nkanoya.kagoshima.jp\nkawanabe.kagoshima.jp\nkinko.kagoshima.jp\nkouyama.kagoshima.jp\nmakurazaki.kagoshima.jp\nmatsumoto.kagoshima.jp\nminamitane.kagoshima.jp\nnakatane.kagoshima.jp\nnishinoomote.kagoshima.jp\nsatsumasendai.kagoshima.jp\nsoo.kagoshima.jp\ntarumizu.kagoshima.jp\nyusui.kagoshima.jp\naikawa.kanagawa.jp\natsugi.kanagawa.jp\nayase.kanagawa.jp\nchigasaki.kanagawa.jp\nebina.kanagawa.jp\nfujisawa.kanagawa.jp\nhadano.kanagawa.jp\nhakone.kanagawa.jp\nhiratsuka.kanagawa.jp\nisehara.kanagawa.jp\nkaisei.kanagawa.jp\nkamakura.kanagawa.jp\nkiyokawa.kanagawa.jp\nmatsuda.kanagawa.jp\nminamiashigara.kanagawa.jp\nmiura.kanagawa.jp\nnakai.kanagawa.jp\nninomiya.kanagawa.jp\nodawara.kanagawa.jp\noi.kanagawa.jp\noiso.kanagawa.jp\nsagamihara.kanagawa.jp\nsamukawa.kanagawa.jp\ntsukui.kanagawa.jp\nyamakita.kanagawa.jp\nyamato.kanagawa.jp\nyokosuka.kanagawa.jp\nyugawara.kanagawa.jp\nzama.kanagawa.jp\nzushi.kanagawa.jp\naki.kochi.jp\ngeisei.kochi.jp\nhidaka.kochi.jp\nhigashitsuno.kochi.jp\nino.kochi.jp\nkagami.kochi.jp\nkami.kochi.jp\nkitagawa.kochi.jp\nkochi.kochi.jp\nmihara.kochi.jp\nmotoyama.kochi.jp\nmuroto.kochi.jp\nnahari.kochi.jp\nnakamura.kochi.jp\nnankoku.kochi.jp\nnishitosa.kochi.jp\nniyodogawa.kochi.jp\nochi.kochi.jp\nokawa.kochi.jp\notoyo.kochi.jp\notsuki.kochi.jp\nsakawa.kochi.jp\nsukumo.kochi.jp\nsusaki.kochi.jp\ntosa.kochi.jp\ntosashimizu.kochi.jp\ntoyo.kochi.jp\ntsuno.kochi.jp\numaji.kochi.jp\nyasuda.kochi.jp\nyusuhara.kochi.jp\namakusa.kumamoto.jp\narao.kumamoto.jp\naso.kumamoto.jp\nchoyo.kumamoto.jp\ngyokuto.kumamoto.jp\nkamiamakusa.kumamoto.jp\nkikuchi.kumamoto.jp\nkumamoto.kumamoto.jp\nmashiki.kumamoto.jp\nmifune.kumamoto.jp\nminamata.kumamoto.jp\nminamioguni.kumamoto.jp\nnagasu.kumamoto.jp\nnishihara.kumamoto.jp\noguni.kumamoto.jp\nozu.kumamoto.jp\nsumoto.kumamoto.jp\ntakamori.kumamoto.jp\nuki.kumamoto.jp\nuto.kumamoto.jp\nyamaga.kumamoto.jp\nyamato.kumamoto.jp\nyatsushiro.kumamoto.jp\nayabe.kyoto.jp\nfukuchiyama.kyoto.jp\nhigashiyama.kyoto.jp\nide.kyoto.jp\nine.kyoto.jp\njoyo.kyoto.jp\nkameoka.kyoto.jp\nkamo.kyoto.jp\nkita.kyoto.jp\nkizu.kyoto.jp\nkumiyama.kyoto.jp\nkyotamba.kyoto.jp\nkyotanabe.kyoto.jp\nkyotango.kyoto.jp\nmaizuru.kyoto.jp\nminami.kyoto.jp\nminamiyamashiro.kyoto.jp\nmiyazu.kyoto.jp\nmuko.kyoto.jp\nnagaokakyo.kyoto.jp\nnakagyo.kyoto.jp\nnantan.kyoto.jp\noyamazaki.kyoto.jp\nsakyo.kyoto.jp\nseika.kyoto.jp\ntanabe.kyoto.jp\nuji.kyoto.jp\nujitawara.kyoto.jp\nwazuka.kyoto.jp\nyamashina.kyoto.jp\nyawata.kyoto.jp\nasahi.mie.jp\ninabe.mie.jp\nise.mie.jp\nkameyama.mie.jp\nkawagoe.mie.jp\nkiho.mie.jp\nkisosaki.mie.jp\nkiwa.mie.jp\nkomono.mie.jp\nkumano.mie.jp\nkuwana.mie.jp\nmatsusaka.mie.jp\nmeiwa.mie.jp\nmihama.mie.jp\nminamiise.mie.jp\nmisugi.mie.jp\nmiyama.mie.jp\nnabari.mie.jp\nshima.mie.jp\nsuzuka.mie.jp\ntado.mie.jp\ntaiki.mie.jp\ntaki.mie.jp\ntamaki.mie.jp\ntoba.mie.jp\ntsu.mie.jp\nudono.mie.jp\nureshino.mie.jp\nwatarai.mie.jp\nyokkaichi.mie.jp\nfurukawa.miyagi.jp\nhigashimatsushima.miyagi.jp\nishinomaki.miyagi.jp\niwanuma.miyagi.jp\nkakuda.miyagi.jp\nkami.miyagi.jp\nkawasaki.miyagi.jp\nmarumori.miyagi.jp\nmatsushima.miyagi.jp\nminamisanriku.miyagi.jp\nmisato.miyagi.jp\nmurata.miyagi.jp\nnatori.miyagi.jp\nogawara.miyagi.jp\nohira.miyagi.jp\nonagawa.miyagi.jp\nosaki.miyagi.jp\nrifu.miyagi.jp\nsemine.miyagi.jp\nshibata.miyagi.jp\nshichikashuku.miyagi.jp\nshikama.miyagi.jp\nshiogama.miyagi.jp\nshiroishi.miyagi.jp\ntagajo.miyagi.jp\ntaiwa.miyagi.jp\ntome.miyagi.jp\ntomiya.miyagi.jp\nwakuya.miyagi.jp\nwatari.miyagi.jp\nyamamoto.miyagi.jp\nzao.miyagi.jp\naya.miyazaki.jp\nebino.miyazaki.jp\ngokase.miyazaki.jp\nhyuga.miyazaki.jp\nkadogawa.miyazaki.jp\nkawaminami.miyazaki.jp\nkijo.miyazaki.jp\nkitagawa.miyazaki.jp\nkitakata.miyazaki.jp\nkitaura.miyazaki.jp\nkobayashi.miyazaki.jp\nkunitomi.miyazaki.jp\nkushima.miyazaki.jp\nmimata.miyazaki.jp\nmiyakonojo.miyazaki.jp\nmiyazaki.miyazaki.jp\nmorotsuka.miyazaki.jp\nnichinan.miyazaki.jp\nnishimera.miyazaki.jp\nnobeoka.miyazaki.jp\nsaito.miyazaki.jp\nshiiba.miyazaki.jp\nshintomi.miyazaki.jp\ntakaharu.miyazaki.jp\ntakanabe.miyazaki.jp\ntakazaki.miyazaki.jp\ntsuno.miyazaki.jp\nachi.nagano.jp\nagematsu.nagano.jp\nanan.nagano.jp\naoki.nagano.jp\nasahi.nagano.jp\nazumino.nagano.jp\nchikuhoku.nagano.jp\nchikuma.nagano.jp\nchino.nagano.jp\nfujimi.nagano.jp\nhakuba.nagano.jp\nhara.nagano.jp\nhiraya.nagano.jp\niida.nagano.jp\niijima.nagano.jp\niiyama.nagano.jp\niizuna.nagano.jp\nikeda.nagano.jp\nikusaka.nagano.jp\nina.nagano.jp\nkaruizawa.nagano.jp\nkawakami.nagano.jp\nkiso.nagano.jp\nkisofukushima.nagano.jp\nkitaaiki.nagano.jp\nkomagane.nagano.jp\nkomoro.nagano.jp\nmatsukawa.nagano.jp\nmatsumoto.nagano.jp\nmiasa.nagano.jp\nminamiaiki.nagano.jp\nminamimaki.nagano.jp\nminamiminowa.nagano.jp\nminowa.nagano.jp\nmiyada.nagano.jp\nmiyota.nagano.jp\nmochizuki.nagano.jp\nnagano.nagano.jp\nnagawa.nagano.jp\nnagiso.nagano.jp\nnakagawa.nagano.jp\nnakano.nagano.jp\nnozawaonsen.nagano.jp\nobuse.nagano.jp\nogawa.nagano.jp\nokaya.nagano.jp\nomachi.nagano.jp\nomi.nagano.jp\nookuwa.nagano.jp\nooshika.nagano.jp\notaki.nagano.jp\notari.nagano.jp\nsakae.nagano.jp\nsakaki.nagano.jp\nsaku.nagano.jp\nsakuho.nagano.jp\nshimosuwa.nagano.jp\nshinanomachi.nagano.jp\nshiojiri.nagano.jp\nsuwa.nagano.jp\nsuzaka.nagano.jp\ntakagi.nagano.jp\ntakamori.nagano.jp\ntakayama.nagano.jp\ntateshina.nagano.jp\ntatsuno.nagano.jp\ntogakushi.nagano.jp\ntogura.nagano.jp\ntomi.nagano.jp\nueda.nagano.jp\nwada.nagano.jp\nyamagata.nagano.jp\nyamanouchi.nagano.jp\nyasaka.nagano.jp\nyasuoka.nagano.jp\nchijiwa.nagasaki.jp\nfutsu.nagasaki.jp\ngoto.nagasaki.jp\nhasami.nagasaki.jp\nhirado.nagasaki.jp\niki.nagasaki.jp\nisahaya.nagasaki.jp\nkawatana.nagasaki.jp\nkuchinotsu.nagasaki.jp\nmatsuura.nagasaki.jp\nnagasaki.nagasaki.jp\nobama.nagasaki.jp\nomura.nagasaki.jp\noseto.nagasaki.jp\nsaikai.nagasaki.jp\nsasebo.nagasaki.jp\nseihi.nagasaki.jp\nshimabara.nagasaki.jp\nshinkamigoto.nagasaki.jp\ntogitsu.nagasaki.jp\ntsushima.nagasaki.jp\nunzen.nagasaki.jp\nando.nara.jp\ngose.nara.jp\nheguri.nara.jp\nhigashiyoshino.nara.jp\nikaruga.nara.jp\nikoma.nara.jp\nkamikitayama.nara.jp\nkanmaki.nara.jp\nkashiba.nara.jp\nkashihara.nara.jp\nkatsuragi.nara.jp\nkawai.nara.jp\nkawakami.nara.jp\nkawanishi.nara.jp\nkoryo.nara.jp\nkurotaki.nara.jp\nmitsue.nara.jp\nmiyake.nara.jp\nnara.nara.jp\nnosegawa.nara.jp\noji.nara.jp\nouda.nara.jp\noyodo.nara.jp\nsakurai.nara.jp\nsango.nara.jp\nshimoichi.nara.jp\nshimokitayama.nara.jp\nshinjo.nara.jp\nsoni.nara.jp\ntakatori.nara.jp\ntawaramoto.nara.jp\ntenkawa.nara.jp\ntenri.nara.jp\nuda.nara.jp\nyamatokoriyama.nara.jp\nyamatotakada.nara.jp\nyamazoe.nara.jp\nyoshino.nara.jp\naga.niigata.jp\nagano.niigata.jp\ngosen.niigata.jp\nitoigawa.niigata.jp\nizumozaki.niigata.jp\njoetsu.niigata.jp\nkamo.niigata.jp\nkariwa.niigata.jp\nkashiwazaki.niigata.jp\nminamiuonuma.niigata.jp\nmitsuke.niigata.jp\nmuika.niigata.jp\nmurakami.niigata.jp\nmyoko.niigata.jp\nnagaoka.niigata.jp\nniigata.niigata.jp\nojiya.niigata.jp\nomi.niigata.jp\nsado.niigata.jp\nsanjo.niigata.jp\nseiro.niigata.jp\nseirou.niigata.jp\nsekikawa.niigata.jp\nshibata.niigata.jp\ntagami.niigata.jp\ntainai.niigata.jp\ntochio.niigata.jp\ntokamachi.niigata.jp\ntsubame.niigata.jp\ntsunan.niigata.jp\nuonuma.niigata.jp\nyahiko.niigata.jp\nyoita.niigata.jp\nyuzawa.niigata.jp\nbeppu.oita.jp\nbungoono.oita.jp\nbungotakada.oita.jp\nhasama.oita.jp\nhiji.oita.jp\nhimeshima.oita.jp\nhita.oita.jp\nkamitsue.oita.jp\nkokonoe.oita.jp\nkuju.oita.jp\nkunisaki.oita.jp\nkusu.oita.jp\noita.oita.jp\nsaiki.oita.jp\ntaketa.oita.jp\ntsukumi.oita.jp\nusa.oita.jp\nusuki.oita.jp\nyufu.oita.jp\nakaiwa.okayama.jp\nasakuchi.okayama.jp\nbizen.okayama.jp\nhayashima.okayama.jp\nibara.okayama.jp\nkagamino.okayama.jp\nkasaoka.okayama.jp\nkibichuo.okayama.jp\nkumenan.okayama.jp\nkurashiki.okayama.jp\nmaniwa.okayama.jp\nmisaki.okayama.jp\nnagi.okayama.jp\nniimi.okayama.jp\nnishiawakura.okayama.jp\nokayama.okayama.jp\nsatosho.okayama.jp\nsetouchi.okayama.jp\nshinjo.okayama.jp\nshoo.okayama.jp\nsoja.okayama.jp\ntakahashi.okayama.jp\ntamano.okayama.jp\ntsuyama.okayama.jp\nwake.okayama.jp\nyakage.okayama.jp\naguni.okinawa.jp\nginowan.okinawa.jp\nginoza.okinawa.jp\ngushikami.okinawa.jp\nhaebaru.okinawa.jp\nhigashi.okinawa.jp\nhirara.okinawa.jp\niheya.okinawa.jp\nishigaki.okinawa.jp\nishikawa.okinawa.jp\nitoman.okinawa.jp\nizena.okinawa.jp\nkadena.okinawa.jp\nkin.okinawa.jp\nkitadaito.okinawa.jp\nkitanakagusuku.okinawa.jp\nkumejima.okinawa.jp\nkunigami.okinawa.jp\nminamidaito.okinawa.jp\nmotobu.okinawa.jp\nnago.okinawa.jp\nnaha.okinawa.jp\nnakagusuku.okinawa.jp\nnakijin.okinawa.jp\nnanjo.okinawa.jp\nnishihara.okinawa.jp\nogimi.okinawa.jp\nokinawa.okinawa.jp\nonna.okinawa.jp\nshimoji.okinawa.jp\ntaketomi.okinawa.jp\ntarama.okinawa.jp\ntokashiki.okinawa.jp\ntomigusuku.okinawa.jp\ntonaki.okinawa.jp\nurasoe.okinawa.jp\nuruma.okinawa.jp\nyaese.okinawa.jp\nyomitan.okinawa.jp\nyonabaru.okinawa.jp\nyonaguni.okinawa.jp\nzamami.okinawa.jp\nabeno.osaka.jp\nchihayaakasaka.osaka.jp\nchuo.osaka.jp\ndaito.osaka.jp\nfujiidera.osaka.jp\nhabikino.osaka.jp\nhannan.osaka.jp\nhigashiosaka.osaka.jp\nhigashisumiyoshi.osaka.jp\nhigashiyodogawa.osaka.jp\nhirakata.osaka.jp\nibaraki.osaka.jp\nikeda.osaka.jp\nizumi.osaka.jp\nizumiotsu.osaka.jp\nizumisano.osaka.jp\nkadoma.osaka.jp\nkaizuka.osaka.jp\nkanan.osaka.jp\nkashiwara.osaka.jp\nkatano.osaka.jp\nkawachinagano.osaka.jp\nkishiwada.osaka.jp\nkita.osaka.jp\nkumatori.osaka.jp\nmatsubara.osaka.jp\nminato.osaka.jp\nminoh.osaka.jp\nmisaki.osaka.jp\nmoriguchi.osaka.jp\nneyagawa.osaka.jp\nnishi.osaka.jp\nnose.osaka.jp\nosakasayama.osaka.jp\nsakai.osaka.jp\nsayama.osaka.jp\nsennan.osaka.jp\nsettsu.osaka.jp\nshijonawate.osaka.jp\nshimamoto.osaka.jp\nsuita.osaka.jp\ntadaoka.osaka.jp\ntaishi.osaka.jp\ntajiri.osaka.jp\ntakaishi.osaka.jp\ntakatsuki.osaka.jp\ntondabayashi.osaka.jp\ntoyonaka.osaka.jp\ntoyono.osaka.jp\nyao.osaka.jp\nariake.saga.jp\narita.saga.jp\nfukudomi.saga.jp\ngenkai.saga.jp\nhamatama.saga.jp\nhizen.saga.jp\nimari.saga.jp\nkamimine.saga.jp\nkanzaki.saga.jp\nkaratsu.saga.jp\nkashima.saga.jp\nkitagata.saga.jp\nkitahata.saga.jp\nkiyama.saga.jp\nkouhoku.saga.jp\nkyuragi.saga.jp\nnishiarita.saga.jp\nogi.saga.jp\nomachi.saga.jp\nouchi.saga.jp\nsaga.saga.jp\nshiroishi.saga.jp\ntaku.saga.jp\ntara.saga.jp\ntosu.saga.jp\nyoshinogari.saga.jp\narakawa.saitama.jp\nasaka.saitama.jp\nchichibu.saitama.jp\nfujimi.saitama.jp\nfujimino.saitama.jp\nfukaya.saitama.jp\nhanno.saitama.jp\nhanyu.saitama.jp\nhasuda.saitama.jp\nhatogaya.saitama.jp\nhatoyama.saitama.jp\nhidaka.saitama.jp\nhigashichichibu.saitama.jp\nhigashimatsuyama.saitama.jp\nhonjo.saitama.jp\nina.saitama.jp\niruma.saitama.jp\niwatsuki.saitama.jp\nkamiizumi.saitama.jp\nkamikawa.saitama.jp\nkamisato.saitama.jp\nkasukabe.saitama.jp\nkawagoe.saitama.jp\nkawaguchi.saitama.jp\nkawajima.saitama.jp\nkazo.saitama.jp\nkitamoto.saitama.jp\nkoshigaya.saitama.jp\nkounosu.saitama.jp\nkuki.saitama.jp\nkumagaya.saitama.jp\nmatsubushi.saitama.jp\nminano.saitama.jp\nmisato.saitama.jp\nmiyashiro.saitama.jp\nmiyoshi.saitama.jp\nmoroyama.saitama.jp\nnagatoro.saitama.jp\nnamegawa.saitama.jp\nniiza.saitama.jp\nogano.saitama.jp\nogawa.saitama.jp\nogose.saitama.jp\nokegawa.saitama.jp\nomiya.saitama.jp\notaki.saitama.jp\nranzan.saitama.jp\nryokami.saitama.jp\nsaitama.saitama.jp\nsakado.saitama.jp\nsatte.saitama.jp\nsayama.saitama.jp\nshiki.saitama.jp\nshiraoka.saitama.jp\nsoka.saitama.jp\nsugito.saitama.jp\ntoda.saitama.jp\ntokigawa.saitama.jp\ntokorozawa.saitama.jp\ntsurugashima.saitama.jp\nurawa.saitama.jp\nwarabi.saitama.jp\nyashio.saitama.jp\nyokoze.saitama.jp\nyono.saitama.jp\nyorii.saitama.jp\nyoshida.saitama.jp\nyoshikawa.saitama.jp\nyoshimi.saitama.jp\naisho.shiga.jp\ngamo.shiga.jp\nhigashiomi.shiga.jp\nhikone.shiga.jp\nkoka.shiga.jp\nkonan.shiga.jp\nkosei.shiga.jp\nkoto.shiga.jp\nkusatsu.shiga.jp\nmaibara.shiga.jp\nmoriyama.shiga.jp\nnagahama.shiga.jp\nnishiazai.shiga.jp\nnotogawa.shiga.jp\nomihachiman.shiga.jp\notsu.shiga.jp\nritto.shiga.jp\nryuoh.shiga.jp\ntakashima.shiga.jp\ntakatsuki.shiga.jp\ntorahime.shiga.jp\ntoyosato.shiga.jp\nyasu.shiga.jp\nakagi.shimane.jp\nama.shimane.jp\ngotsu.shimane.jp\nhamada.shimane.jp\nhigashiizumo.shimane.jp\nhikawa.shimane.jp\nhikimi.shimane.jp\nizumo.shimane.jp\nkakinoki.shimane.jp\nmasuda.shimane.jp\nmatsue.shimane.jp\nmisato.shimane.jp\nnishinoshima.shimane.jp\nohda.shimane.jp\nokinoshima.shimane.jp\nokuizumo.shimane.jp\nshimane.shimane.jp\ntamayu.shimane.jp\ntsuwano.shimane.jp\nunnan.shimane.jp\nyakumo.shimane.jp\nyasugi.shimane.jp\nyatsuka.shimane.jp\narai.shizuoka.jp\natami.shizuoka.jp\nfuji.shizuoka.jp\nfujieda.shizuoka.jp\nfujikawa.shizuoka.jp\nfujinomiya.shizuoka.jp\nfukuroi.shizuoka.jp\ngotemba.shizuoka.jp\nhaibara.shizuoka.jp\nhamamatsu.shizuoka.jp\nhigashiizu.shizuoka.jp\nito.shizuoka.jp\niwata.shizuoka.jp\nizu.shizuoka.jp\nizunokuni.shizuoka.jp\nkakegawa.shizuoka.jp\nkannami.shizuoka.jp\nkawanehon.shizuoka.jp\nkawazu.shizuoka.jp\nkikugawa.shizuoka.jp\nkosai.shizuoka.jp\nmakinohara.shizuoka.jp\nmatsuzaki.shizuoka.jp\nminamiizu.shizuoka.jp\nmishima.shizuoka.jp\nmorimachi.shizuoka.jp\nnishiizu.shizuoka.jp\nnumazu.shizuoka.jp\nomaezaki.shizuoka.jp\nshimada.shizuoka.jp\nshimizu.shizuoka.jp\nshimoda.shizuoka.jp\nshizuoka.shizuoka.jp\nsusono.shizuoka.jp\nyaizu.shizuoka.jp\nyoshida.shizuoka.jp\nashikaga.tochigi.jp\nbato.tochigi.jp\nhaga.tochigi.jp\nichikai.tochigi.jp\niwafune.tochigi.jp\nkaminokawa.tochigi.jp\nkanuma.tochigi.jp\nkarasuyama.tochigi.jp\nkuroiso.tochigi.jp\nmashiko.tochigi.jp\nmibu.tochigi.jp\nmoka.tochigi.jp\nmotegi.tochigi.jp\nnasu.tochigi.jp\nnasushiobara.tochigi.jp\nnikko.tochigi.jp\nnishikata.tochigi.jp\nnogi.tochigi.jp\nohira.tochigi.jp\nohtawara.tochigi.jp\noyama.tochigi.jp\nsakura.tochigi.jp\nsano.tochigi.jp\nshimotsuke.tochigi.jp\nshioya.tochigi.jp\ntakanezawa.tochigi.jp\ntochigi.tochigi.jp\ntsuga.tochigi.jp\nujiie.tochigi.jp\nutsunomiya.tochigi.jp\nyaita.tochigi.jp\naizumi.tokushima.jp\nanan.tokushima.jp\nichiba.tokushima.jp\nitano.tokushima.jp\nkainan.tokushima.jp\nkomatsushima.tokushima.jp\nmatsushige.tokushima.jp\nmima.tokushima.jp\nminami.tokushima.jp\nmiyoshi.tokushima.jp\nmugi.tokushima.jp\nnakagawa.tokushima.jp\nnaruto.tokushima.jp\nsanagochi.tokushima.jp\nshishikui.tokushima.jp\ntokushima.tokushima.jp\nwajiki.tokushima.jp\nadachi.tokyo.jp\nakiruno.tokyo.jp\nakishima.tokyo.jp\naogashima.tokyo.jp\narakawa.tokyo.jp\nbunkyo.tokyo.jp\nchiyoda.tokyo.jp\nchofu.tokyo.jp\nchuo.tokyo.jp\nedogawa.tokyo.jp\nfuchu.tokyo.jp\nfussa.tokyo.jp\nhachijo.tokyo.jp\nhachioji.tokyo.jp\nhamura.tokyo.jp\nhigashikurume.tokyo.jp\nhigashimurayama.tokyo.jp\nhigashiyamato.tokyo.jp\nhino.tokyo.jp\nhinode.tokyo.jp\nhinohara.tokyo.jp\ninagi.tokyo.jp\nitabashi.tokyo.jp\nkatsushika.tokyo.jp\nkita.tokyo.jp\nkiyose.tokyo.jp\nkodaira.tokyo.jp\nkoganei.tokyo.jp\nkokubunji.tokyo.jp\nkomae.tokyo.jp\nkoto.tokyo.jp\nkouzushima.tokyo.jp\nkunitachi.tokyo.jp\nmachida.tokyo.jp\nmeguro.tokyo.jp\nminato.tokyo.jp\nmitaka.tokyo.jp\nmizuho.tokyo.jp\nmusashimurayama.tokyo.jp\nmusashino.tokyo.jp\nnakano.tokyo.jp\nnerima.tokyo.jp\nogasawara.tokyo.jp\nokutama.tokyo.jp\nome.tokyo.jp\noshima.tokyo.jp\nota.tokyo.jp\nsetagaya.tokyo.jp\nshibuya.tokyo.jp\nshinagawa.tokyo.jp\nshinjuku.tokyo.jp\nsuginami.tokyo.jp\nsumida.tokyo.jp\ntachikawa.tokyo.jp\ntaito.tokyo.jp\ntama.tokyo.jp\ntoshima.tokyo.jp\nchizu.tottori.jp\nhino.tottori.jp\nkawahara.tottori.jp\nkoge.tottori.jp\nkotoura.tottori.jp\nmisasa.tottori.jp\nnanbu.tottori.jp\nnichinan.tottori.jp\nsakaiminato.tottori.jp\ntottori.tottori.jp\nwakasa.tottori.jp\nyazu.tottori.jp\nyonago.tottori.jp\nasahi.toyama.jp\nfuchu.toyama.jp\nfukumitsu.toyama.jp\nfunahashi.toyama.jp\nhimi.toyama.jp\nimizu.toyama.jp\ninami.toyama.jp\njohana.toyama.jp\nkamiichi.toyama.jp\nkurobe.toyama.jp\nnakaniikawa.toyama.jp\nnamerikawa.toyama.jp\nnanto.toyama.jp\nnyuzen.toyama.jp\noyabe.toyama.jp\ntaira.toyama.jp\ntakaoka.toyama.jp\ntateyama.toyama.jp\ntoga.toyama.jp\ntonami.toyama.jp\ntoyama.toyama.jp\nunazuki.toyama.jp\nuozu.toyama.jp\nyamada.toyama.jp\narida.wakayama.jp\naridagawa.wakayama.jp\ngobo.wakayama.jp\nhashimoto.wakayama.jp\nhidaka.wakayama.jp\nhirogawa.wakayama.jp\ninami.wakayama.jp\niwade.wakayama.jp\nkainan.wakayama.jp\nkamitonda.wakayama.jp\nkatsuragi.wakayama.jp\nkimino.wakayama.jp\nkinokawa.wakayama.jp\nkitayama.wakayama.jp\nkoya.wakayama.jp\nkoza.wakayama.jp\nkozagawa.wakayama.jp\nkudoyama.wakayama.jp\nkushimoto.wakayama.jp\nmihama.wakayama.jp\nmisato.wakayama.jp\nnachikatsuura.wakayama.jp\nshingu.wakayama.jp\nshirahama.wakayama.jp\ntaiji.wakayama.jp\ntanabe.wakayama.jp\nwakayama.wakayama.jp\nyuasa.wakayama.jp\nyura.wakayama.jp\nasahi.yamagata.jp\nfunagata.yamagata.jp\nhigashine.yamagata.jp\niide.yamagata.jp\nkahoku.yamagata.jp\nkaminoyama.yamagata.jp\nkaneyama.yamagata.jp\nkawanishi.yamagata.jp\nmamurogawa.yamagata.jp\nmikawa.yamagata.jp\nmurayama.yamagata.jp\nnagai.yamagata.jp\nnakayama.yamagata.jp\nnanyo.yamagata.jp\nnishikawa.yamagata.jp\nobanazawa.yamagata.jp\noe.yamagata.jp\noguni.yamagata.jp\nohkura.yamagata.jp\noishida.yamagata.jp\nsagae.yamagata.jp\nsakata.yamagata.jp\nsakegawa.yamagata.jp\nshinjo.yamagata.jp\nshirataka.yamagata.jp\nshonai.yamagata.jp\ntakahata.yamagata.jp\ntendo.yamagata.jp\ntozawa.yamagata.jp\ntsuruoka.yamagata.jp\nyamagata.yamagata.jp\nyamanobe.yamagata.jp\nyonezawa.yamagata.jp\nyuza.yamagata.jp\nabu.yamaguchi.jp\nhagi.yamaguchi.jp\nhikari.yamaguchi.jp\nhofu.yamaguchi.jp\niwakuni.yamaguchi.jp\nkudamatsu.yamaguchi.jp\nmitou.yamaguchi.jp\nnagato.yamaguchi.jp\noshima.yamaguchi.jp\nshimonoseki.yamaguchi.jp\nshunan.yamaguchi.jp\ntabuse.yamaguchi.jp\ntokuyama.yamaguchi.jp\ntoyota.yamaguchi.jp\nube.yamaguchi.jp\nyuu.yamaguchi.jp\nchuo.yamanashi.jp\ndoshi.yamanashi.jp\nfuefuki.yamanashi.jp\nfujikawa.yamanashi.jp\nfujikawaguchiko.yamanashi.jp\nfujiyoshida.yamanashi.jp\nhayakawa.yamanashi.jp\nhokuto.yamanashi.jp\nichikawamisato.yamanashi.jp\nkai.yamanashi.jp\nkofu.yamanashi.jp\nkoshu.yamanashi.jp\nkosuge.yamanashi.jp\nminami-alps.yamanashi.jp\nminobu.yamanashi.jp\nnakamichi.yamanashi.jp\nnanbu.yamanashi.jp\nnarusawa.yamanashi.jp\nnirasaki.yamanashi.jp\nnishikatsura.yamanashi.jp\noshino.yamanashi.jp\notsuki.yamanashi.jp\nshowa.yamanashi.jp\ntabayama.yamanashi.jp\ntsuru.yamanashi.jp\nuenohara.yamanashi.jp\nyamanakako.yamanashi.jp\nyamanashi.yamanashi.jp\n\n// ke : http://www.kenic.or.ke/index.php/en/ke-domains/ke-domains\nke\nac.ke\nco.ke\ngo.ke\ninfo.ke\nme.ke\nmobi.ke\nne.ke\nor.ke\nsc.ke\n\n// kg : http://www.domain.kg/dmn_n.html\nkg\norg.kg\nnet.kg\ncom.kg\nedu.kg\ngov.kg\nmil.kg\n\n// kh : http://www.mptc.gov.kh/dns_registration.htm\n*.kh\n\n// ki : http://www.ki/dns/index.html\nki\nedu.ki\nbiz.ki\nnet.ki\norg.ki\ngov.ki\ninfo.ki\ncom.ki\n\n// km : https://en.wikipedia.org/wiki/.km\n// http://www.domaine.km/documents/charte.doc\nkm\norg.km\nnom.km\ngov.km\nprd.km\ntm.km\nedu.km\nmil.km\nass.km\ncom.km\n// These are only mentioned as proposed suggestions at domaine.km, but\n// https://en.wikipedia.org/wiki/.km says they\'re available for registration:\ncoop.km\nasso.km\npresse.km\nmedecin.km\nnotaires.km\npharmaciens.km\nveterinaire.km\ngouv.km\n\n// kn : https://en.wikipedia.org/wiki/.kn\n// http://www.dot.kn/domainRules.html\nkn\nnet.kn\norg.kn\nedu.kn\ngov.kn\n\n// kp : http://www.kcce.kp/en_index.php\nkp\ncom.kp\nedu.kp\ngov.kp\norg.kp\nrep.kp\ntra.kp\n\n// kr : https://en.wikipedia.org/wiki/.kr\n// see also: http://domain.nida.or.kr/eng/registration.jsp\nkr\nac.kr\nco.kr\nes.kr\ngo.kr\nhs.kr\nkg.kr\nmil.kr\nms.kr\nne.kr\nor.kr\npe.kr\nre.kr\nsc.kr\n// kr geographical names\nbusan.kr\nchungbuk.kr\nchungnam.kr\ndaegu.kr\ndaejeon.kr\ngangwon.kr\ngwangju.kr\ngyeongbuk.kr\ngyeonggi.kr\ngyeongnam.kr\nincheon.kr\njeju.kr\njeonbuk.kr\njeonnam.kr\nseoul.kr\nulsan.kr\n\n// kw : https://www.nic.kw/policies/\n// Confirmed by registry <nic.tech@citra.gov.kw>\nkw\ncom.kw\nedu.kw\nemb.kw\ngov.kw\nind.kw\nnet.kw\norg.kw\n\n// ky : http://www.icta.ky/da_ky_reg_dom.php\n// Confirmed by registry <kysupport@perimeterusa.com> 2008-06-17\nky\ncom.ky\nedu.ky\nnet.ky\norg.ky\n\n// kz : https://en.wikipedia.org/wiki/.kz\n// see also: http://www.nic.kz/rules/index.jsp\nkz\norg.kz\nedu.kz\nnet.kz\ngov.kz\nmil.kz\ncom.kz\n\n// la : https://en.wikipedia.org/wiki/.la\n// Submitted by registry <gavin.brown@nic.la>\nla\nint.la\nnet.la\ninfo.la\nedu.la\ngov.la\nper.la\ncom.la\norg.la\n\n// lb : https://en.wikipedia.org/wiki/.lb\n// Submitted by registry <randy@psg.com>\nlb\ncom.lb\nedu.lb\ngov.lb\nnet.lb\norg.lb\n\n// lc : https://en.wikipedia.org/wiki/.lc\n// see also: http://www.nic.lc/rules.htm\nlc\ncom.lc\nnet.lc\nco.lc\norg.lc\nedu.lc\ngov.lc\n\n// li : https://en.wikipedia.org/wiki/.li\nli\n\n// lk : https://www.nic.lk/index.php/domain-registration/lk-domain-naming-structure\nlk\ngov.lk\nsch.lk\nnet.lk\nint.lk\ncom.lk\norg.lk\nedu.lk\nngo.lk\nsoc.lk\nweb.lk\nltd.lk\nassn.lk\ngrp.lk\nhotel.lk\nac.lk\n\n// lr : http://psg.com/dns/lr/lr.txt\n// Submitted by registry <randy@psg.com>\nlr\ncom.lr\nedu.lr\ngov.lr\norg.lr\nnet.lr\n\n// ls : http://www.nic.ls/\n// Confirmed by registry <lsadmin@nic.ls>\nls\nac.ls\nbiz.ls\nco.ls\nedu.ls\ngov.ls\ninfo.ls\nnet.ls\norg.ls\nsc.ls\n\n// lt : https://en.wikipedia.org/wiki/.lt\nlt\n// gov.lt : http://www.gov.lt/index_en.php\ngov.lt\n\n// lu : http://www.dns.lu/en/\nlu\n\n// lv : http://www.nic.lv/DNS/En/generic.php\nlv\ncom.lv\nedu.lv\ngov.lv\norg.lv\nmil.lv\nid.lv\nnet.lv\nasn.lv\nconf.lv\n\n// ly : http://www.nic.ly/regulations.php\nly\ncom.ly\nnet.ly\ngov.ly\nplc.ly\nedu.ly\nsch.ly\nmed.ly\norg.ly\nid.ly\n\n// ma : https://en.wikipedia.org/wiki/.ma\n// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf\nma\nco.ma\nnet.ma\ngov.ma\norg.ma\nac.ma\npress.ma\n\n// mc : http://www.nic.mc/\nmc\ntm.mc\nasso.mc\n\n// md : https://en.wikipedia.org/wiki/.md\nmd\n\n// me : https://en.wikipedia.org/wiki/.me\nme\nco.me\nnet.me\norg.me\nedu.me\nac.me\ngov.me\nits.me\npriv.me\n\n// mg : http://nic.mg/nicmg/?page_id=39\nmg\norg.mg\nnom.mg\ngov.mg\nprd.mg\ntm.mg\nedu.mg\nmil.mg\ncom.mg\nco.mg\n\n// mh : https://en.wikipedia.org/wiki/.mh\nmh\n\n// mil : https://en.wikipedia.org/wiki/.mil\nmil\n\n// mk : https://en.wikipedia.org/wiki/.mk\n// see also: http://dns.marnet.net.mk/postapka.php\nmk\ncom.mk\norg.mk\nnet.mk\nedu.mk\ngov.mk\ninf.mk\nname.mk\n\n// ml : http://www.gobin.info/domainname/ml-template.doc\n// see also: https://en.wikipedia.org/wiki/.ml\nml\ncom.ml\nedu.ml\ngouv.ml\ngov.ml\nnet.ml\norg.ml\npresse.ml\n\n// mm : https://en.wikipedia.org/wiki/.mm\n*.mm\n\n// mn : https://en.wikipedia.org/wiki/.mn\nmn\ngov.mn\nedu.mn\norg.mn\n\n// mo : http://www.monic.net.mo/\nmo\ncom.mo\nnet.mo\norg.mo\nedu.mo\ngov.mo\n\n// mobi : https://en.wikipedia.org/wiki/.mobi\nmobi\n\n// mp : http://www.dot.mp/\n// Confirmed by registry <dcamacho@saipan.com> 2008-06-17\nmp\n\n// mq : https://en.wikipedia.org/wiki/.mq\nmq\n\n// mr : https://en.wikipedia.org/wiki/.mr\nmr\ngov.mr\n\n// ms : http://www.nic.ms/pdf/MS_Domain_Name_Rules.pdf\nms\ncom.ms\nedu.ms\ngov.ms\nnet.ms\norg.ms\n\n// mt : https://www.nic.org.mt/go/policy\n// Submitted by registry <help@nic.org.mt>\nmt\ncom.mt\nedu.mt\nnet.mt\norg.mt\n\n// mu : https://en.wikipedia.org/wiki/.mu\nmu\ncom.mu\nnet.mu\norg.mu\ngov.mu\nac.mu\nco.mu\nor.mu\n\n// museum : https://welcome.museum/wp-content/uploads/2018/05/20180525-Registration-Policy-MUSEUM-EN_VF-2.pdf https://welcome.museum/buy-your-dot-museum-2/\nmuseum\n\n// mv : https://en.wikipedia.org/wiki/.mv\n// "mv" included because, contra Wikipedia, google.mv exists.\nmv\naero.mv\nbiz.mv\ncom.mv\ncoop.mv\nedu.mv\ngov.mv\ninfo.mv\nint.mv\nmil.mv\nmuseum.mv\nname.mv\nnet.mv\norg.mv\npro.mv\n\n// mw : http://www.registrar.mw/\nmw\nac.mw\nbiz.mw\nco.mw\ncom.mw\ncoop.mw\nedu.mw\ngov.mw\nint.mw\nmuseum.mw\nnet.mw\norg.mw\n\n// mx : http://www.nic.mx/\n// Submitted by registry <farias@nic.mx>\nmx\ncom.mx\norg.mx\ngob.mx\nedu.mx\nnet.mx\n\n// my : http://www.mynic.my/\n// Available strings: https://mynic.my/resources/domains/buying-a-domain/\nmy\nbiz.my\ncom.my\nedu.my\ngov.my\nmil.my\nname.my\nnet.my\norg.my\n\n// mz : http://www.uem.mz/\n// Submitted by registry <antonio@uem.mz>\nmz\nac.mz\nadv.mz\nco.mz\nedu.mz\ngov.mz\nmil.mz\nnet.mz\norg.mz\n\n// na : http://www.na-nic.com.na/\n// http://www.info.na/domain/\nna\ninfo.na\npro.na\nname.na\nschool.na\nor.na\ndr.na\nus.na\nmx.na\nca.na\nin.na\ncc.na\ntv.na\nws.na\nmobi.na\nco.na\ncom.na\norg.na\n\n// name : has 2nd-level tlds, but there\'s no list of them\nname\n\n// nc : http://www.cctld.nc/\nnc\nasso.nc\nnom.nc\n\n// ne : https://en.wikipedia.org/wiki/.ne\nne\n\n// net : https://en.wikipedia.org/wiki/.net\nnet\n\n// nf : https://en.wikipedia.org/wiki/.nf\nnf\ncom.nf\nnet.nf\nper.nf\nrec.nf\nweb.nf\narts.nf\nfirm.nf\ninfo.nf\nother.nf\nstore.nf\n\n// ng : http://www.nira.org.ng/index.php/join-us/register-ng-domain/189-nira-slds\nng\ncom.ng\nedu.ng\ngov.ng\ni.ng\nmil.ng\nmobi.ng\nname.ng\nnet.ng\norg.ng\nsch.ng\n\n// ni : http://www.nic.ni/\nni\nac.ni\nbiz.ni\nco.ni\ncom.ni\nedu.ni\ngob.ni\nin.ni\ninfo.ni\nint.ni\nmil.ni\nnet.ni\nnom.ni\norg.ni\nweb.ni\n\n// nl : https://en.wikipedia.org/wiki/.nl\n// https://www.sidn.nl/\n// ccTLD for the Netherlands\nnl\n\n// no : https://www.norid.no/en/om-domenenavn/regelverk-for-no/\n// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/\n// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/\n// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/\n// RSS feed: https://teknisk.norid.no/en/feed/\nno\n// Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/\nfhs.no\nvgs.no\nfylkesbibl.no\nfolkebibl.no\nmuseum.no\nidrett.no\npriv.no\n// Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/\nmil.no\nstat.no\ndep.no\nkommune.no\nherad.no\n// Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/\n// counties\naa.no\nah.no\nbu.no\nfm.no\nhl.no\nhm.no\njan-mayen.no\nmr.no\nnl.no\nnt.no\nof.no\nol.no\noslo.no\nrl.no\nsf.no\nst.no\nsvalbard.no\ntm.no\ntr.no\nva.no\nvf.no\n// primary and lower secondary schools per county\ngs.aa.no\ngs.ah.no\ngs.bu.no\ngs.fm.no\ngs.hl.no\ngs.hm.no\ngs.jan-mayen.no\ngs.mr.no\ngs.nl.no\ngs.nt.no\ngs.of.no\ngs.ol.no\ngs.oslo.no\ngs.rl.no\ngs.sf.no\ngs.st.no\ngs.svalbard.no\ngs.tm.no\ngs.tr.no\ngs.va.no\ngs.vf.no\n// cities\nakrehamn.no\nåkrehamn.no\nalgard.no\nålgård.no\narna.no\nbrumunddal.no\nbryne.no\nbronnoysund.no\nbrønnøysund.no\ndrobak.no\ndrøbak.no\negersund.no\nfetsund.no\nfloro.no\nflorø.no\nfredrikstad.no\nhokksund.no\nhonefoss.no\nhønefoss.no\njessheim.no\njorpeland.no\njørpeland.no\nkirkenes.no\nkopervik.no\nkrokstadelva.no\nlangevag.no\nlangevåg.no\nleirvik.no\nmjondalen.no\nmjøndalen.no\nmo-i-rana.no\nmosjoen.no\nmosjøen.no\nnesoddtangen.no\norkanger.no\nosoyro.no\nosøyro.no\nraholt.no\nråholt.no\nsandnessjoen.no\nsandnessjøen.no\nskedsmokorset.no\nslattum.no\nspjelkavik.no\nstathelle.no\nstavern.no\nstjordalshalsen.no\nstjørdalshalsen.no\ntananger.no\ntranby.no\nvossevangen.no\n// communities\nafjord.no\nåfjord.no\nagdenes.no\nal.no\nål.no\nalesund.no\nålesund.no\nalstahaug.no\nalta.no\náltá.no\nalaheadju.no\nálaheadju.no\nalvdal.no\namli.no\nåmli.no\namot.no\nåmot.no\nandebu.no\nandoy.no\nandøy.no\nandasuolo.no\nardal.no\nårdal.no\naremark.no\narendal.no\nås.no\naseral.no\nåseral.no\nasker.no\naskim.no\naskvoll.no\naskoy.no\naskøy.no\nasnes.no\nåsnes.no\naudnedaln.no\naukra.no\naure.no\naurland.no\naurskog-holand.no\naurskog-høland.no\naustevoll.no\naustrheim.no\naveroy.no\naverøy.no\nbalestrand.no\nballangen.no\nbalat.no\nbálát.no\nbalsfjord.no\nbahccavuotna.no\nbáhccavuotna.no\nbamble.no\nbardu.no\nbeardu.no\nbeiarn.no\nbajddar.no\nbájddar.no\nbaidar.no\nbáidár.no\nberg.no\nbergen.no\nberlevag.no\nberlevåg.no\nbearalvahki.no\nbearalváhki.no\nbindal.no\nbirkenes.no\nbjarkoy.no\nbjarkøy.no\nbjerkreim.no\nbjugn.no\nbodo.no\nbodø.no\nbadaddja.no\nbådåddjå.no\nbudejju.no\nbokn.no\nbremanger.no\nbronnoy.no\nbrønnøy.no\nbygland.no\nbykle.no\nbarum.no\nbærum.no\nbo.telemark.no\nbø.telemark.no\nbo.nordland.no\nbø.nordland.no\nbievat.no\nbievát.no\nbomlo.no\nbømlo.no\nbatsfjord.no\nbåtsfjord.no\nbahcavuotna.no\nbáhcavuotna.no\ndovre.no\ndrammen.no\ndrangedal.no\ndyroy.no\ndyrøy.no\ndonna.no\ndønna.no\neid.no\neidfjord.no\neidsberg.no\neidskog.no\neidsvoll.no\neigersund.no\nelverum.no\nenebakk.no\nengerdal.no\netne.no\netnedal.no\nevenes.no\nevenassi.no\nevenášši.no\nevje-og-hornnes.no\nfarsund.no\nfauske.no\nfuossko.no\nfuoisku.no\nfedje.no\nfet.no\nfinnoy.no\nfinnøy.no\nfitjar.no\nfjaler.no\nfjell.no\nflakstad.no\nflatanger.no\nflekkefjord.no\nflesberg.no\nflora.no\nfla.no\nflå.no\nfolldal.no\nforsand.no\nfosnes.no\nfrei.no\nfrogn.no\nfroland.no\nfrosta.no\nfrana.no\nfræna.no\nfroya.no\nfrøya.no\nfusa.no\nfyresdal.no\nforde.no\nførde.no\ngamvik.no\ngangaviika.no\ngáŋgaviika.no\ngaular.no\ngausdal.no\ngildeskal.no\ngildeskål.no\ngiske.no\ngjemnes.no\ngjerdrum.no\ngjerstad.no\ngjesdal.no\ngjovik.no\ngjøvik.no\ngloppen.no\ngol.no\ngran.no\ngrane.no\ngranvin.no\ngratangen.no\ngrimstad.no\ngrong.no\nkraanghke.no\nkråanghke.no\ngrue.no\ngulen.no\nhadsel.no\nhalden.no\nhalsa.no\nhamar.no\nhamaroy.no\nhabmer.no\nhábmer.no\nhapmir.no\nhápmir.no\nhammerfest.no\nhammarfeasta.no\nhámmárfeasta.no\nharam.no\nhareid.no\nharstad.no\nhasvik.no\naknoluokta.no\nákŋoluokta.no\nhattfjelldal.no\naarborte.no\nhaugesund.no\nhemne.no\nhemnes.no\nhemsedal.no\nheroy.more-og-romsdal.no\nherøy.møre-og-romsdal.no\nheroy.nordland.no\nherøy.nordland.no\nhitra.no\nhjartdal.no\nhjelmeland.no\nhobol.no\nhobøl.no\nhof.no\nhol.no\nhole.no\nholmestrand.no\nholtalen.no\nholtålen.no\nhornindal.no\nhorten.no\nhurdal.no\nhurum.no\nhvaler.no\nhyllestad.no\nhagebostad.no\nhægebostad.no\nhoyanger.no\nhøyanger.no\nhoylandet.no\nhøylandet.no\nha.no\nhå.no\nibestad.no\ninderoy.no\ninderøy.no\niveland.no\njevnaker.no\njondal.no\njolster.no\njølster.no\nkarasjok.no\nkarasjohka.no\nkárášjohka.no\nkarlsoy.no\ngalsa.no\ngálsá.no\nkarmoy.no\nkarmøy.no\nkautokeino.no\nguovdageaidnu.no\nklepp.no\nklabu.no\nklæbu.no\nkongsberg.no\nkongsvinger.no\nkragero.no\nkragerø.no\nkristiansand.no\nkristiansund.no\nkrodsherad.no\nkrødsherad.no\nkvalsund.no\nrahkkeravju.no\nráhkkerávju.no\nkvam.no\nkvinesdal.no\nkvinnherad.no\nkviteseid.no\nkvitsoy.no\nkvitsøy.no\nkvafjord.no\nkvæfjord.no\ngiehtavuoatna.no\nkvanangen.no\nkvænangen.no\nnavuotna.no\nnávuotna.no\nkafjord.no\nkåfjord.no\ngaivuotna.no\ngáivuotna.no\nlarvik.no\nlavangen.no\nlavagis.no\nloabat.no\nloabát.no\nlebesby.no\ndavvesiida.no\nleikanger.no\nleirfjord.no\nleka.no\nleksvik.no\nlenvik.no\nleangaviika.no\nleaŋgaviika.no\nlesja.no\nlevanger.no\nlier.no\nlierne.no\nlillehammer.no\nlillesand.no\nlindesnes.no\nlindas.no\nlindås.no\nlom.no\nloppa.no\nlahppi.no\nláhppi.no\nlund.no\nlunner.no\nluroy.no\nlurøy.no\nluster.no\nlyngdal.no\nlyngen.no\nivgu.no\nlardal.no\nlerdal.no\nlærdal.no\nlodingen.no\nlødingen.no\nlorenskog.no\nlørenskog.no\nloten.no\nløten.no\nmalvik.no\nmasoy.no\nmåsøy.no\nmuosat.no\nmuosát.no\nmandal.no\nmarker.no\nmarnardal.no\nmasfjorden.no\nmeland.no\nmeldal.no\nmelhus.no\nmeloy.no\nmeløy.no\nmeraker.no\nmeråker.no\nmoareke.no\nmoåreke.no\nmidsund.no\nmidtre-gauldal.no\nmodalen.no\nmodum.no\nmolde.no\nmoskenes.no\nmoss.no\nmosvik.no\nmalselv.no\nmålselv.no\nmalatvuopmi.no\nmálatvuopmi.no\nnamdalseid.no\naejrie.no\nnamsos.no\nnamsskogan.no\nnaamesjevuemie.no\nnååmesjevuemie.no\nlaakesvuemie.no\nnannestad.no\nnarvik.no\nnarviika.no\nnaustdal.no\nnedre-eiker.no\nnes.akershus.no\nnes.buskerud.no\nnesna.no\nnesodden.no\nnesseby.no\nunjarga.no\nunjárga.no\nnesset.no\nnissedal.no\nnittedal.no\nnord-aurdal.no\nnord-fron.no\nnord-odal.no\nnorddal.no\nnordkapp.no\ndavvenjarga.no\ndavvenjárga.no\nnordre-land.no\nnordreisa.no\nraisa.no\nráisa.no\nnore-og-uvdal.no\nnotodden.no\nnaroy.no\nnærøy.no\nnotteroy.no\nnøtterøy.no\nodda.no\noksnes.no\nøksnes.no\noppdal.no\noppegard.no\noppegård.no\norkdal.no\norland.no\nørland.no\norskog.no\nørskog.no\norsta.no\nørsta.no\nos.hedmark.no\nos.hordaland.no\nosen.no\nosteroy.no\nosterøy.no\nostre-toten.no\nøstre-toten.no\noverhalla.no\novre-eiker.no\nøvre-eiker.no\noyer.no\nøyer.no\noygarden.no\nøygarden.no\noystre-slidre.no\nøystre-slidre.no\nporsanger.no\nporsangu.no\nporsáŋgu.no\nporsgrunn.no\nradoy.no\nradøy.no\nrakkestad.no\nrana.no\nruovat.no\nrandaberg.no\nrauma.no\nrendalen.no\nrennebu.no\nrennesoy.no\nrennesøy.no\nrindal.no\nringebu.no\nringerike.no\nringsaker.no\nrissa.no\nrisor.no\nrisør.no\nroan.no\nrollag.no\nrygge.no\nralingen.no\nrælingen.no\nrodoy.no\nrødøy.no\nromskog.no\nrømskog.no\nroros.no\nrøros.no\nrost.no\nrøst.no\nroyken.no\nrøyken.no\nroyrvik.no\nrøyrvik.no\nrade.no\nråde.no\nsalangen.no\nsiellak.no\nsaltdal.no\nsalat.no\nsálát.no\nsálat.no\nsamnanger.no\nsande.more-og-romsdal.no\nsande.møre-og-romsdal.no\nsande.vestfold.no\nsandefjord.no\nsandnes.no\nsandoy.no\nsandøy.no\nsarpsborg.no\nsauda.no\nsauherad.no\nsel.no\nselbu.no\nselje.no\nseljord.no\nsigdal.no\nsiljan.no\nsirdal.no\nskaun.no\nskedsmo.no\nski.no\nskien.no\nskiptvet.no\nskjervoy.no\nskjervøy.no\nskierva.no\nskiervá.no\nskjak.no\nskjåk.no\nskodje.no\nskanland.no\nskånland.no\nskanit.no\nskánit.no\nsmola.no\nsmøla.no\nsnillfjord.no\nsnasa.no\nsnåsa.no\nsnoasa.no\nsnaase.no\nsnåase.no\nsogndal.no\nsokndal.no\nsola.no\nsolund.no\nsongdalen.no\nsortland.no\nspydeberg.no\nstange.no\nstavanger.no\nsteigen.no\nsteinkjer.no\nstjordal.no\nstjørdal.no\nstokke.no\nstor-elvdal.no\nstord.no\nstordal.no\nstorfjord.no\nomasvuotna.no\nstrand.no\nstranda.no\nstryn.no\nsula.no\nsuldal.no\nsund.no\nsunndal.no\nsurnadal.no\nsveio.no\nsvelvik.no\nsykkylven.no\nsogne.no\nsøgne.no\nsomna.no\nsømna.no\nsondre-land.no\nsøndre-land.no\nsor-aurdal.no\nsør-aurdal.no\nsor-fron.no\nsør-fron.no\nsor-odal.no\nsør-odal.no\nsor-varanger.no\nsør-varanger.no\nmatta-varjjat.no\nmátta-várjjat.no\nsorfold.no\nsørfold.no\nsorreisa.no\nsørreisa.no\nsorum.no\nsørum.no\ntana.no\ndeatnu.no\ntime.no\ntingvoll.no\ntinn.no\ntjeldsund.no\ndielddanuorri.no\ntjome.no\ntjøme.no\ntokke.no\ntolga.no\ntorsken.no\ntranoy.no\ntranøy.no\ntromso.no\ntromsø.no\ntromsa.no\nromsa.no\ntrondheim.no\ntroandin.no\ntrysil.no\ntrana.no\ntræna.no\ntrogstad.no\ntrøgstad.no\ntvedestrand.no\ntydal.no\ntynset.no\ntysfjord.no\ndivtasvuodna.no\ndivttasvuotna.no\ntysnes.no\ntysvar.no\ntysvær.no\ntonsberg.no\ntønsberg.no\nullensaker.no\nullensvang.no\nulvik.no\nutsira.no\nvadso.no\nvadsø.no\ncahcesuolo.no\nčáhcesuolo.no\nvaksdal.no\nvalle.no\nvang.no\nvanylven.no\nvardo.no\nvardø.no\nvarggat.no\nvárggát.no\nvefsn.no\nvaapste.no\nvega.no\nvegarshei.no\nvegårshei.no\nvennesla.no\nverdal.no\nverran.no\nvestby.no\nvestnes.no\nvestre-slidre.no\nvestre-toten.no\nvestvagoy.no\nvestvågøy.no\nvevelstad.no\nvik.no\nvikna.no\nvindafjord.no\nvolda.no\nvoss.no\nvaroy.no\nværøy.no\nvagan.no\nvågan.no\nvoagat.no\nvagsoy.no\nvågsøy.no\nvaga.no\nvågå.no\nvaler.ostfold.no\nvåler.østfold.no\nvaler.hedmark.no\nvåler.hedmark.no\n\n// np : http://www.mos.com.np/register.html\n*.np\n\n// nr : http://cenpac.net.nr/dns/index.html\n// Submitted by registry <technician@cenpac.net.nr>\nnr\nbiz.nr\ninfo.nr\ngov.nr\nedu.nr\norg.nr\nnet.nr\ncom.nr\n\n// nu : https://en.wikipedia.org/wiki/.nu\nnu\n\n// nz : https://en.wikipedia.org/wiki/.nz\n// Submitted by registry <jay@nzrs.net.nz>\nnz\nac.nz\nco.nz\ncri.nz\ngeek.nz\ngen.nz\ngovt.nz\nhealth.nz\niwi.nz\nkiwi.nz\nmaori.nz\nmil.nz\nmāori.nz\nnet.nz\norg.nz\nparliament.nz\nschool.nz\n\n// om : https://en.wikipedia.org/wiki/.om\nom\nco.om\ncom.om\nedu.om\ngov.om\nmed.om\nmuseum.om\nnet.om\norg.om\npro.om\n\n// onion : https://tools.ietf.org/html/rfc7686\nonion\n\n// org : https://en.wikipedia.org/wiki/.org\norg\n\n// pa : http://www.nic.pa/\n// Some additional second level "domains" resolve directly as hostnames, such as\n// pannet.pa, so we add a rule for "pa".\npa\nac.pa\ngob.pa\ncom.pa\norg.pa\nsld.pa\nedu.pa\nnet.pa\ning.pa\nabo.pa\nmed.pa\nnom.pa\n\n// pe : https://www.nic.pe/InformeFinalComision.pdf\npe\nedu.pe\ngob.pe\nnom.pe\nmil.pe\norg.pe\ncom.pe\nnet.pe\n\n// pf : http://www.gobin.info/domainname/formulaire-pf.pdf\npf\ncom.pf\norg.pf\nedu.pf\n\n// pg : https://en.wikipedia.org/wiki/.pg\n*.pg\n\n// ph : http://www.domains.ph/FAQ2.asp\n// Submitted by registry <jed@email.com.ph>\nph\ncom.ph\nnet.ph\norg.ph\ngov.ph\nedu.ph\nngo.ph\nmil.ph\ni.ph\n\n// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK\npk\ncom.pk\nnet.pk\nedu.pk\norg.pk\nfam.pk\nbiz.pk\nweb.pk\ngov.pk\ngob.pk\ngok.pk\ngon.pk\ngop.pk\ngos.pk\ninfo.pk\n\n// pl http://www.dns.pl/english/index.html\n// Submitted by registry\npl\ncom.pl\nnet.pl\norg.pl\n// pl functional domains (http://www.dns.pl/english/index.html)\naid.pl\nagro.pl\natm.pl\nauto.pl\nbiz.pl\nedu.pl\ngmina.pl\ngsm.pl\ninfo.pl\nmail.pl\nmiasta.pl\nmedia.pl\nmil.pl\nnieruchomosci.pl\nnom.pl\npc.pl\npowiat.pl\npriv.pl\nrealestate.pl\nrel.pl\nsex.pl\nshop.pl\nsklep.pl\nsos.pl\nszkola.pl\ntargi.pl\ntm.pl\ntourism.pl\ntravel.pl\nturystyka.pl\n// Government domains\ngov.pl\nap.gov.pl\ngriw.gov.pl\nic.gov.pl\nis.gov.pl\nkmpsp.gov.pl\nkonsulat.gov.pl\nkppsp.gov.pl\nkwp.gov.pl\nkwpsp.gov.pl\nmup.gov.pl\nmw.gov.pl\noia.gov.pl\noirm.gov.pl\noke.gov.pl\noow.gov.pl\noschr.gov.pl\noum.gov.pl\npa.gov.pl\npinb.gov.pl\npiw.gov.pl\npo.gov.pl\npr.gov.pl\npsp.gov.pl\npsse.gov.pl\npup.gov.pl\nrzgw.gov.pl\nsa.gov.pl\nsdn.gov.pl\nsko.gov.pl\nso.gov.pl\nsr.gov.pl\nstarostwo.gov.pl\nug.gov.pl\nugim.gov.pl\num.gov.pl\numig.gov.pl\nupow.gov.pl\nuppo.gov.pl\nus.gov.pl\nuw.gov.pl\nuzs.gov.pl\nwif.gov.pl\nwiih.gov.pl\nwinb.gov.pl\nwios.gov.pl\nwitd.gov.pl\nwiw.gov.pl\nwkz.gov.pl\nwsa.gov.pl\nwskr.gov.pl\nwsse.gov.pl\nwuoz.gov.pl\nwzmiuw.gov.pl\nzp.gov.pl\nzpisdn.gov.pl\n// pl regional domains (http://www.dns.pl/english/index.html)\naugustow.pl\nbabia-gora.pl\nbedzin.pl\nbeskidy.pl\nbialowieza.pl\nbialystok.pl\nbielawa.pl\nbieszczady.pl\nboleslawiec.pl\nbydgoszcz.pl\nbytom.pl\ncieszyn.pl\nczeladz.pl\nczest.pl\ndlugoleka.pl\nelblag.pl\nelk.pl\nglogow.pl\ngniezno.pl\ngorlice.pl\ngrajewo.pl\nilawa.pl\njaworzno.pl\njelenia-gora.pl\njgora.pl\nkalisz.pl\nkazimierz-dolny.pl\nkarpacz.pl\nkartuzy.pl\nkaszuby.pl\nkatowice.pl\nkepno.pl\nketrzyn.pl\nklodzko.pl\nkobierzyce.pl\nkolobrzeg.pl\nkonin.pl\nkonskowola.pl\nkutno.pl\nlapy.pl\nlebork.pl\nlegnica.pl\nlezajsk.pl\nlimanowa.pl\nlomza.pl\nlowicz.pl\nlubin.pl\nlukow.pl\nmalbork.pl\nmalopolska.pl\nmazowsze.pl\nmazury.pl\nmielec.pl\nmielno.pl\nmragowo.pl\nnaklo.pl\nnowaruda.pl\nnysa.pl\nolawa.pl\nolecko.pl\nolkusz.pl\nolsztyn.pl\nopoczno.pl\nopole.pl\nostroda.pl\nostroleka.pl\nostrowiec.pl\nostrowwlkp.pl\npila.pl\npisz.pl\npodhale.pl\npodlasie.pl\npolkowice.pl\npomorze.pl\npomorskie.pl\nprochowice.pl\npruszkow.pl\nprzeworsk.pl\npulawy.pl\nradom.pl\nrawa-maz.pl\nrybnik.pl\nrzeszow.pl\nsanok.pl\nsejny.pl\nslask.pl\nslupsk.pl\nsosnowiec.pl\nstalowa-wola.pl\nskoczow.pl\nstarachowice.pl\nstargard.pl\nsuwalki.pl\nswidnica.pl\nswiebodzin.pl\nswinoujscie.pl\nszczecin.pl\nszczytno.pl\ntarnobrzeg.pl\ntgory.pl\nturek.pl\ntychy.pl\nustka.pl\nwalbrzych.pl\nwarmia.pl\nwarszawa.pl\nwaw.pl\nwegrow.pl\nwielun.pl\nwlocl.pl\nwloclawek.pl\nwodzislaw.pl\nwolomin.pl\nwroclaw.pl\nzachpomor.pl\nzagan.pl\nzarow.pl\nzgora.pl\nzgorzelec.pl\n\n// pm : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\npm\n\n// pn : http://www.government.pn/PnRegistry/policies.htm\npn\ngov.pn\nco.pn\norg.pn\nedu.pn\nnet.pn\n\n// post : https://en.wikipedia.org/wiki/.post\npost\n\n// pr : http://www.nic.pr/index.asp?f=1\npr\ncom.pr\nnet.pr\norg.pr\ngov.pr\nedu.pr\nisla.pr\npro.pr\nbiz.pr\ninfo.pr\nname.pr\n// these aren\'t mentioned on nic.pr, but on https://en.wikipedia.org/wiki/.pr\nest.pr\nprof.pr\nac.pr\n\n// pro : http://registry.pro/get-pro\npro\naaa.pro\naca.pro\nacct.pro\navocat.pro\nbar.pro\ncpa.pro\neng.pro\njur.pro\nlaw.pro\nmed.pro\nrecht.pro\n\n// ps : https://en.wikipedia.org/wiki/.ps\n// http://www.nic.ps/registration/policy.html#reg\nps\nedu.ps\ngov.ps\nsec.ps\nplo.ps\ncom.ps\norg.ps\nnet.ps\n\n// pt : https://www.dns.pt/en/domain/pt-terms-and-conditions-registration-rules/\npt\nnet.pt\ngov.pt\norg.pt\nedu.pt\nint.pt\npubl.pt\ncom.pt\nnome.pt\n\n// pw : https://en.wikipedia.org/wiki/.pw\npw\nco.pw\nne.pw\nor.pw\ned.pw\ngo.pw\nbelau.pw\n\n// py : http://www.nic.py/pautas.html#seccion_9\n// Submitted by registry\npy\ncom.py\ncoop.py\nedu.py\ngov.py\nmil.py\nnet.py\norg.py\n\n// qa : http://domains.qa/en/\nqa\ncom.qa\nedu.qa\ngov.qa\nmil.qa\nname.qa\nnet.qa\norg.qa\nsch.qa\n\n// re : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nre\nasso.re\ncom.re\nnom.re\n\n// ro : http://www.rotld.ro/\nro\narts.ro\ncom.ro\nfirm.ro\ninfo.ro\nnom.ro\nnt.ro\norg.ro\nrec.ro\nstore.ro\ntm.ro\nwww.ro\n\n// rs : https://www.rnids.rs/en/domains/national-domains\nrs\nac.rs\nco.rs\nedu.rs\ngov.rs\nin.rs\norg.rs\n\n// ru : https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf\n// Submitted by George Georgievsky <gug@cctld.ru>\nru\n\n// rw : https://www.ricta.org.rw/sites/default/files/resources/registry_registrar_contract_0.pdf\nrw\nac.rw\nco.rw\ncoop.rw\ngov.rw\nmil.rw\nnet.rw\norg.rw\n\n// sa : http://www.nic.net.sa/\nsa\ncom.sa\nnet.sa\norg.sa\ngov.sa\nmed.sa\npub.sa\nedu.sa\nsch.sa\n\n// sb : http://www.sbnic.net.sb/\n// Submitted by registry <lee.humphries@telekom.com.sb>\nsb\ncom.sb\nedu.sb\ngov.sb\nnet.sb\norg.sb\n\n// sc : http://www.nic.sc/\nsc\ncom.sc\ngov.sc\nnet.sc\norg.sc\nedu.sc\n\n// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm\n// Submitted by registry <admin@isoc.sd>\nsd\ncom.sd\nnet.sd\norg.sd\nedu.sd\nmed.sd\ntv.sd\ngov.sd\ninfo.sd\n\n// se : https://en.wikipedia.org/wiki/.se\n// Submitted by registry <patrik.wallstrom@iis.se>\nse\na.se\nac.se\nb.se\nbd.se\nbrand.se\nc.se\nd.se\ne.se\nf.se\nfh.se\nfhsk.se\nfhv.se\ng.se\nh.se\ni.se\nk.se\nkomforb.se\nkommunalforbund.se\nkomvux.se\nl.se\nlanbib.se\nm.se\nn.se\nnaturbruksgymn.se\no.se\norg.se\np.se\nparti.se\npp.se\npress.se\nr.se\ns.se\nt.se\ntm.se\nu.se\nw.se\nx.se\ny.se\nz.se\n\n// sg : http://www.nic.net.sg/page/registration-policies-procedures-and-guidelines\nsg\ncom.sg\nnet.sg\norg.sg\ngov.sg\nedu.sg\nper.sg\n\n// sh : http://nic.sh/rules.htm\nsh\ncom.sh\nnet.sh\ngov.sh\norg.sh\nmil.sh\n\n// si : https://en.wikipedia.org/wiki/.si\nsi\n\n// sj : No registrations at this time.\n// Submitted by registry <jarle@uninett.no>\nsj\n\n// sk : https://en.wikipedia.org/wiki/.sk\n// list of 2nd level domains ?\nsk\n\n// sl : http://www.nic.sl\n// Submitted by registry <adam@neoip.com>\nsl\ncom.sl\nnet.sl\nedu.sl\ngov.sl\norg.sl\n\n// sm : https://en.wikipedia.org/wiki/.sm\nsm\n\n// sn : https://en.wikipedia.org/wiki/.sn\nsn\nart.sn\ncom.sn\nedu.sn\ngouv.sn\norg.sn\nperso.sn\nuniv.sn\n\n// so : http://sonic.so/policies/\nso\ncom.so\nedu.so\ngov.so\nme.so\nnet.so\norg.so\n\n// sr : https://en.wikipedia.org/wiki/.sr\nsr\n\n// ss : https://registry.nic.ss/\n// Submitted by registry <technical@nic.ss>\nss\nbiz.ss\ncom.ss\nedu.ss\ngov.ss\nme.ss\nnet.ss\norg.ss\nsch.ss\n\n// st : http://www.nic.st/html/policyrules/\nst\nco.st\ncom.st\nconsulado.st\nedu.st\nembaixada.st\nmil.st\nnet.st\norg.st\nprincipe.st\nsaotome.st\nstore.st\n\n// su : https://en.wikipedia.org/wiki/.su\nsu\n\n// sv : http://www.svnet.org.sv/niveldos.pdf\nsv\ncom.sv\nedu.sv\ngob.sv\norg.sv\nred.sv\n\n// sx : https://en.wikipedia.org/wiki/.sx\n// Submitted by registry <jcvignes@openregistry.com>\nsx\ngov.sx\n\n// sy : https://en.wikipedia.org/wiki/.sy\n// see also: http://www.gobin.info/domainname/sy.doc\nsy\nedu.sy\ngov.sy\nnet.sy\nmil.sy\ncom.sy\norg.sy\n\n// sz : https://en.wikipedia.org/wiki/.sz\n// http://www.sispa.org.sz/\nsz\nco.sz\nac.sz\norg.sz\n\n// tc : https://en.wikipedia.org/wiki/.tc\ntc\n\n// td : https://en.wikipedia.org/wiki/.td\ntd\n\n// tel: https://en.wikipedia.org/wiki/.tel\n// http://www.telnic.org/\ntel\n\n// tf : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\ntf\n\n// tg : https://en.wikipedia.org/wiki/.tg\n// http://www.nic.tg/\ntg\n\n// th : https://en.wikipedia.org/wiki/.th\n// Submitted by registry <krit@thains.co.th>\nth\nac.th\nco.th\ngo.th\nin.th\nmi.th\nnet.th\nor.th\n\n// tj : http://www.nic.tj/policy.html\ntj\nac.tj\nbiz.tj\nco.tj\ncom.tj\nedu.tj\ngo.tj\ngov.tj\nint.tj\nmil.tj\nname.tj\nnet.tj\nnic.tj\norg.tj\ntest.tj\nweb.tj\n\n// tk : https://en.wikipedia.org/wiki/.tk\ntk\n\n// tl : https://en.wikipedia.org/wiki/.tl\ntl\ngov.tl\n\n// tm : http://www.nic.tm/local.html\ntm\ncom.tm\nco.tm\norg.tm\nnet.tm\nnom.tm\ngov.tm\nmil.tm\nedu.tm\n\n// tn : http://www.registre.tn/fr/\n// https://whois.ati.tn/\ntn\ncom.tn\nens.tn\nfin.tn\ngov.tn\nind.tn\ninfo.tn\nintl.tn\nmincom.tn\nnat.tn\nnet.tn\norg.tn\nperso.tn\ntourism.tn\n\n// to : https://en.wikipedia.org/wiki/.to\n// Submitted by registry <egullich@colo.to>\nto\ncom.to\ngov.to\nnet.to\norg.to\nedu.to\nmil.to\n\n// tr : https://nic.tr/\n// https://nic.tr/forms/eng/policies.pdf\n// https://nic.tr/index.php?USRACTN=PRICELST\ntr\nav.tr\nbbs.tr\nbel.tr\nbiz.tr\ncom.tr\ndr.tr\nedu.tr\ngen.tr\ngov.tr\ninfo.tr\nmil.tr\nk12.tr\nkep.tr\nname.tr\nnet.tr\norg.tr\npol.tr\ntel.tr\ntsk.tr\ntv.tr\nweb.tr\n// Used by Northern Cyprus\nnc.tr\n// Used by government agencies of Northern Cyprus\ngov.nc.tr\n\n// tt : http://www.nic.tt/\ntt\nco.tt\ncom.tt\norg.tt\nnet.tt\nbiz.tt\ninfo.tt\npro.tt\nint.tt\ncoop.tt\njobs.tt\nmobi.tt\ntravel.tt\nmuseum.tt\naero.tt\nname.tt\ngov.tt\nedu.tt\n\n// tv : https://en.wikipedia.org/wiki/.tv\n// Not listing any 2LDs as reserved since none seem to exist in practice,\n// Wikipedia notwithstanding.\ntv\n\n// tw : https://en.wikipedia.org/wiki/.tw\ntw\nedu.tw\ngov.tw\nmil.tw\ncom.tw\nnet.tw\norg.tw\nidv.tw\ngame.tw\nebiz.tw\nclub.tw\n網路.tw\n組織.tw\n商業.tw\n\n// tz : http://www.tznic.or.tz/index.php/domains\n// Submitted by registry <manager@tznic.or.tz>\ntz\nac.tz\nco.tz\ngo.tz\nhotel.tz\ninfo.tz\nme.tz\nmil.tz\nmobi.tz\nne.tz\nor.tz\nsc.tz\ntv.tz\n\n// ua : https://hostmaster.ua/policy/?ua\n// Submitted by registry <dk@cctld.ua>\nua\n// ua 2LD\ncom.ua\nedu.ua\ngov.ua\nin.ua\nnet.ua\norg.ua\n// ua geographic names\n// https://hostmaster.ua/2ld/\ncherkassy.ua\ncherkasy.ua\nchernigov.ua\nchernihiv.ua\nchernivtsi.ua\nchernovtsy.ua\nck.ua\ncn.ua\ncr.ua\ncrimea.ua\ncv.ua\ndn.ua\ndnepropetrovsk.ua\ndnipropetrovsk.ua\ndonetsk.ua\ndp.ua\nif.ua\nivano-frankivsk.ua\nkh.ua\nkharkiv.ua\nkharkov.ua\nkherson.ua\nkhmelnitskiy.ua\nkhmelnytskyi.ua\nkiev.ua\nkirovograd.ua\nkm.ua\nkr.ua\nkropyvnytskyi.ua\nkrym.ua\nks.ua\nkv.ua\nkyiv.ua\nlg.ua\nlt.ua\nlugansk.ua\nluhansk.ua\nlutsk.ua\nlv.ua\nlviv.ua\nmk.ua\nmykolaiv.ua\nnikolaev.ua\nod.ua\nodesa.ua\nodessa.ua\npl.ua\npoltava.ua\nrivne.ua\nrovno.ua\nrv.ua\nsb.ua\nsebastopol.ua\nsevastopol.ua\nsm.ua\nsumy.ua\nte.ua\nternopil.ua\nuz.ua\nuzhgorod.ua\nuzhhorod.ua\nvinnica.ua\nvinnytsia.ua\nvn.ua\nvolyn.ua\nyalta.ua\nzakarpattia.ua\nzaporizhzhe.ua\nzaporizhzhia.ua\nzhitomir.ua\nzhytomyr.ua\nzp.ua\nzt.ua\n\n// ug : https://www.registry.co.ug/\nug\nco.ug\nor.ug\nac.ug\nsc.ug\ngo.ug\nne.ug\ncom.ug\norg.ug\n\n// uk : https://en.wikipedia.org/wiki/.uk\n// Submitted by registry <Michael.Daly@nominet.org.uk>\nuk\nac.uk\nco.uk\ngov.uk\nltd.uk\nme.uk\nnet.uk\nnhs.uk\norg.uk\nplc.uk\npolice.uk\n*.sch.uk\n\n// us : https://en.wikipedia.org/wiki/.us\nus\ndni.us\nfed.us\nisa.us\nkids.us\nnsn.us\n// us geographic names\nak.us\nal.us\nar.us\nas.us\naz.us\nca.us\nco.us\nct.us\ndc.us\nde.us\nfl.us\nga.us\ngu.us\nhi.us\nia.us\nid.us\nil.us\nin.us\nks.us\nky.us\nla.us\nma.us\nmd.us\nme.us\nmi.us\nmn.us\nmo.us\nms.us\nmt.us\nnc.us\nnd.us\nne.us\nnh.us\nnj.us\nnm.us\nnv.us\nny.us\noh.us\nok.us\nor.us\npa.us\npr.us\nri.us\nsc.us\nsd.us\ntn.us\ntx.us\nut.us\nvi.us\nvt.us\nva.us\nwa.us\nwi.us\nwv.us\nwy.us\n// The registrar notes several more specific domains available in each state,\n// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat\n// haphazard; in some states these domains resolve as addresses, while in others\n// only subdomains are available, or even nothing at all. We include the\n// most common ones where it\'s clear that different sites are different\n// entities.\nk12.ak.us\nk12.al.us\nk12.ar.us\nk12.as.us\nk12.az.us\nk12.ca.us\nk12.co.us\nk12.ct.us\nk12.dc.us\nk12.fl.us\nk12.ga.us\nk12.gu.us\n// k12.hi.us Bug 614565 - Hawaii has a state-wide DOE login\nk12.ia.us\nk12.id.us\nk12.il.us\nk12.in.us\nk12.ks.us\nk12.ky.us\nk12.la.us\nk12.ma.us\nk12.md.us\nk12.me.us\nk12.mi.us\nk12.mn.us\nk12.mo.us\nk12.ms.us\nk12.mt.us\nk12.nc.us\n// k12.nd.us Bug 1028347 - Removed at request of Travis Rosso <trossow@nd.gov>\nk12.ne.us\nk12.nh.us\nk12.nj.us\nk12.nm.us\nk12.nv.us\nk12.ny.us\nk12.oh.us\nk12.ok.us\nk12.or.us\nk12.pa.us\nk12.pr.us\n// k12.ri.us Removed at request of Kim Cournoyer <netsupport@staff.ri.net>\nk12.sc.us\n// k12.sd.us Bug 934131 - Removed at request of James Booze <James.Booze@k12.sd.us>\nk12.tn.us\nk12.tx.us\nk12.ut.us\nk12.vi.us\nk12.vt.us\nk12.va.us\nk12.wa.us\nk12.wi.us\n// k12.wv.us Bug 947705 - Removed at request of Verne Britton <verne@wvnet.edu>\nk12.wy.us\ncc.ak.us\ncc.al.us\ncc.ar.us\ncc.as.us\ncc.az.us\ncc.ca.us\ncc.co.us\ncc.ct.us\ncc.dc.us\ncc.de.us\ncc.fl.us\ncc.ga.us\ncc.gu.us\ncc.hi.us\ncc.ia.us\ncc.id.us\ncc.il.us\ncc.in.us\ncc.ks.us\ncc.ky.us\ncc.la.us\ncc.ma.us\ncc.md.us\ncc.me.us\ncc.mi.us\ncc.mn.us\ncc.mo.us\ncc.ms.us\ncc.mt.us\ncc.nc.us\ncc.nd.us\ncc.ne.us\ncc.nh.us\ncc.nj.us\ncc.nm.us\ncc.nv.us\ncc.ny.us\ncc.oh.us\ncc.ok.us\ncc.or.us\ncc.pa.us\ncc.pr.us\ncc.ri.us\ncc.sc.us\ncc.sd.us\ncc.tn.us\ncc.tx.us\ncc.ut.us\ncc.vi.us\ncc.vt.us\ncc.va.us\ncc.wa.us\ncc.wi.us\ncc.wv.us\ncc.wy.us\nlib.ak.us\nlib.al.us\nlib.ar.us\nlib.as.us\nlib.az.us\nlib.ca.us\nlib.co.us\nlib.ct.us\nlib.dc.us\n// lib.de.us Issue #243 - Moved to Private section at request of Ed Moore <Ed.Moore@lib.de.us>\nlib.fl.us\nlib.ga.us\nlib.gu.us\nlib.hi.us\nlib.ia.us\nlib.id.us\nlib.il.us\nlib.in.us\nlib.ks.us\nlib.ky.us\nlib.la.us\nlib.ma.us\nlib.md.us\nlib.me.us\nlib.mi.us\nlib.mn.us\nlib.mo.us\nlib.ms.us\nlib.mt.us\nlib.nc.us\nlib.nd.us\nlib.ne.us\nlib.nh.us\nlib.nj.us\nlib.nm.us\nlib.nv.us\nlib.ny.us\nlib.oh.us\nlib.ok.us\nlib.or.us\nlib.pa.us\nlib.pr.us\nlib.ri.us\nlib.sc.us\nlib.sd.us\nlib.tn.us\nlib.tx.us\nlib.ut.us\nlib.vi.us\nlib.vt.us\nlib.va.us\nlib.wa.us\nlib.wi.us\n// lib.wv.us Bug 941670 - Removed at request of Larry W Arnold <arnold@wvlc.lib.wv.us>\nlib.wy.us\n// k12.ma.us contains school districts in Massachusetts. The 4LDs are\n// managed independently except for private (PVT), charter (CHTR) and\n// parochial (PAROCH) schools. Those are delegated directly to the\n// 5LD operators. <k12-ma-hostmaster _ at _ rsuc.gweep.net>\npvt.k12.ma.us\nchtr.k12.ma.us\nparoch.k12.ma.us\n// Merit Network, Inc. maintains the registry for =~ /(k12|cc|lib).mi.us/ and the following\n// see also: http://domreg.merit.edu\n// see also: whois -h whois.domreg.merit.edu help\nann-arbor.mi.us\ncog.mi.us\ndst.mi.us\neaton.mi.us\ngen.mi.us\nmus.mi.us\ntec.mi.us\nwashtenaw.mi.us\n\n// uy : http://www.nic.org.uy/\nuy\ncom.uy\nedu.uy\ngub.uy\nmil.uy\nnet.uy\norg.uy\n\n// uz : http://www.reg.uz/\nuz\nco.uz\ncom.uz\nnet.uz\norg.uz\n\n// va : https://en.wikipedia.org/wiki/.va\nva\n\n// vc : https://en.wikipedia.org/wiki/.vc\n// Submitted by registry <kshah@ca.afilias.info>\nvc\ncom.vc\nnet.vc\norg.vc\ngov.vc\nmil.vc\nedu.vc\n\n// ve : https://registro.nic.ve/\n// Submitted by registry nic@nic.ve and nicve@conatel.gob.ve\nve\narts.ve\nbib.ve\nco.ve\ncom.ve\ne12.ve\nedu.ve\nfirm.ve\ngob.ve\ngov.ve\ninfo.ve\nint.ve\nmil.ve\nnet.ve\nnom.ve\norg.ve\nrar.ve\nrec.ve\nstore.ve\ntec.ve\nweb.ve\n\n// vg : https://en.wikipedia.org/wiki/.vg\nvg\n\n// vi : http://www.nic.vi/newdomainform.htm\n// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other\n// TLDs are "reserved", such as edu.vi and gov.vi, but doesn\'t actually say they\n// are available for registration (which they do not seem to be).\nvi\nco.vi\ncom.vi\nk12.vi\nnet.vi\norg.vi\n\n// vn : https://www.vnnic.vn/en/domain/cctld-vn\n// https://vnnic.vn/sites/default/files/tailieu/vn.cctld.domains.txt\nvn\nac.vn\nai.vn\nbiz.vn\ncom.vn\nedu.vn\ngov.vn\nhealth.vn\nid.vn\ninfo.vn\nint.vn\nio.vn\nname.vn\nnet.vn\norg.vn\npro.vn\n\n// vn geographical names\nangiang.vn\nbacgiang.vn\nbackan.vn\nbaclieu.vn\nbacninh.vn\nbaria-vungtau.vn\nbentre.vn\nbinhdinh.vn\nbinhduong.vn\nbinhphuoc.vn\nbinhthuan.vn\ncamau.vn\ncantho.vn\ncaobang.vn\ndaklak.vn\ndaknong.vn\ndanang.vn\ndienbien.vn\ndongnai.vn\ndongthap.vn\ngialai.vn\nhagiang.vn\nhaiduong.vn\nhaiphong.vn\nhanam.vn\nhanoi.vn\nhatinh.vn\nhaugiang.vn\nhoabinh.vn\nhungyen.vn\nkhanhhoa.vn\nkiengiang.vn\nkontum.vn\nlaichau.vn\nlamdong.vn\nlangson.vn\nlaocai.vn\nlongan.vn\nnamdinh.vn\nnghean.vn\nninhbinh.vn\nninhthuan.vn\nphutho.vn\nphuyen.vn\nquangbinh.vn\nquangnam.vn\nquangngai.vn\nquangninh.vn\nquangtri.vn\nsoctrang.vn\nsonla.vn\ntayninh.vn\nthaibinh.vn\nthainguyen.vn\nthanhhoa.vn\nthanhphohochiminh.vn\nthuathienhue.vn\ntiengiang.vn\ntravinh.vn\ntuyenquang.vn\nvinhlong.vn\nvinhphuc.vn\nyenbai.vn\n\n// vu : https://en.wikipedia.org/wiki/.vu\n// http://www.vunic.vu/\nvu\ncom.vu\nedu.vu\nnet.vu\norg.vu\n\n// wf : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nwf\n\n// ws : https://en.wikipedia.org/wiki/.ws\n// http://samoanic.ws/index.dhtml\nws\ncom.ws\nnet.ws\norg.ws\ngov.ws\nedu.ws\n\n// yt : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf\nyt\n\n// IDN ccTLDs\n// When submitting patches, please maintain a sort by ISO 3166 ccTLD, then\n// U-label, and follow this format:\n// // A-Label ("<Latin renderings>", <language name>[, variant info]) : <ISO 3166 ccTLD>\n// // [sponsoring org]\n// U-Label\n\n// xn--mgbaam7a8h ("Emerat", Arabic) : AE\n// http://nic.ae/english/arabicdomain/rules.jsp\nامارات\n\n// xn--y9a3aq ("hye", Armenian) : AM\n// ISOC AM (operated by .am Registry)\nհայ\n\n// xn--54b7fta0cc ("Bangla", Bangla) : BD\nবাংলা\n\n// xn--90ae ("bg", Bulgarian) : BG\nбг\n\n// xn--mgbcpq6gpa1a ("albahrain", Arabic) : BH\nالبحرين\n\n// xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY\n// Operated by .by registry\nбел\n\n// xn--fiqs8s ("Zhongguo/China", Chinese, Simplified) : CN\n// CNNIC\n// http://cnnic.cn/html/Dir/2005/10/11/3218.htm\n中国\n\n// xn--fiqz9s ("Zhongguo/China", Chinese, Traditional) : CN\n// CNNIC\n// http://cnnic.cn/html/Dir/2005/10/11/3218.htm\n中國\n\n// xn--lgbbat1ad8j ("Algeria/Al Jazair", Arabic) : DZ\nالجزائر\n\n// xn--wgbh1c ("Egypt/Masr", Arabic) : EG\n// http://www.dotmasr.eg/\nمصر\n\n// xn--e1a4c ("eu", Cyrillic) : EU\n// https://eurid.eu\nею\n\n// xn--qxa6a ("eu", Greek) : EU\n// https://eurid.eu\nευ\n\n// xn--mgbah1a3hjkrd ("Mauritania", Arabic) : MR\nموريتانيا\n\n// xn--node ("ge", Georgian Mkhedruli) : GE\nგე\n\n// xn--qxam ("el", Greek) : GR\n// Hellenic Ministry of Infrastructure, Transport, and Networks\nελ\n\n// xn--j6w193g ("Hong Kong", Chinese) : HK\n// https://www.hkirc.hk\n// Submitted by registry <hk.tech@hkirc.hk>\n// https://www.hkirc.hk/content.jsp?id=30#!/34\n香港\n公司.香港\n教育.香港\n政府.香港\n個人.香港\n網絡.香港\n組織.香港\n\n// xn--2scrj9c ("Bharat", Kannada) : IN\n// India\nಭಾರತ\n\n// xn--3hcrj9c ("Bharat", Oriya) : IN\n// India\nଭାରତ\n\n// xn--45br5cyl ("Bharatam", Assamese) : IN\n// India\nভাৰত\n\n// xn--h2breg3eve ("Bharatam", Sanskrit) : IN\n// India\nभारतम्\n\n// xn--h2brj9c8c ("Bharot", Santali) : IN\n// India\nभारोत\n\n// xn--mgbgu82a ("Bharat", Sindhi) : IN\n// India\nڀارت\n\n// xn--rvc1e0am3e ("Bharatam", Malayalam) : IN\n// India\nഭാരതം\n\n// xn--h2brj9c ("Bharat", Devanagari) : IN\n// India\nभारत\n\n// xn--mgbbh1a ("Bharat", Kashmiri) : IN\n// India\nبارت\n\n// xn--mgbbh1a71e ("Bharat", Arabic) : IN\n// India\nبھارت\n\n// xn--fpcrj9c3d ("Bharat", Telugu) : IN\n// India\nభారత్\n\n// xn--gecrj9c ("Bharat", Gujarati) : IN\n// India\nભારત\n\n// xn--s9brj9c ("Bharat", Gurmukhi) : IN\n// India\nਭਾਰਤ\n\n// xn--45brj9c ("Bharat", Bengali) : IN\n// India\nভারত\n\n// xn--xkc2dl3a5ee0h ("India", Tamil) : IN\n// India\nஇந்தியா\n\n// xn--mgba3a4f16a ("Iran", Persian) : IR\nایران\n\n// xn--mgba3a4fra ("Iran", Arabic) : IR\nايران\n\n// xn--mgbtx2b ("Iraq", Arabic) : IQ\n// Communications and Media Commission\nعراق\n\n// xn--mgbayh7gpa ("al-Ordon", Arabic) : JO\n// National Information Technology Center (NITC)\n// Royal Scientific Society, Al-Jubeiha\nالاردن\n\n// xn--3e0b707e ("Republic of Korea", Hangul) : KR\n한국\n\n// xn--80ao21a ("Kaz", Kazakh) : KZ\nқаз\n\n// xn--q7ce6a ("Lao", Lao) : LA\nລາວ\n\n// xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK\n// https://nic.lk\nලංකා\n\n// xn--xkc2al3hye2a ("Ilangai", Tamil) : LK\n// https://nic.lk\nஇலங்கை\n\n// xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA\nالمغرب\n\n// xn--d1alf ("mkd", Macedonian) : MK\n// MARnet\nмкд\n\n// xn--l1acc ("mon", Mongolian) : MN\nмон\n\n// xn--mix891f ("Macao", Chinese, Traditional) : MO\n// MONIC / HNET Asia (Registry Operator for .mo)\n澳門\n\n// xn--mix082f ("Macao", Chinese, Simplified) : MO\n澳门\n\n// xn--mgbx4cd0ab ("Malaysia", Malay) : MY\nمليسيا\n\n// xn--mgb9awbf ("Oman", Arabic) : OM\nعمان\n\n// xn--mgbai9azgqp6j ("Pakistan", Urdu/Arabic) : PK\nپاکستان\n\n// xn--mgbai9a5eva00b ("Pakistan", Urdu/Arabic, variant) : PK\nپاكستان\n\n// xn--ygbi2ammx ("Falasteen", Arabic) : PS\n// The Palestinian National Internet Naming Authority (PNINA)\n// http://www.pnina.ps\nفلسطين\n\n// xn--90a3ac ("srb", Cyrillic) : RS\n// https://www.rnids.rs/en/domains/national-domains\nсрб\nпр.срб\nорг.срб\nобр.срб\nод.срб\nупр.срб\nак.срб\n\n// xn--p1ai ("rf", Russian-Cyrillic) : RU\n// https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf\n// Submitted by George Georgievsky <gug@cctld.ru>\nрф\n\n// xn--wgbl6a ("Qatar", Arabic) : QA\n// http://www.ict.gov.qa/\nقطر\n\n// xn--mgberp4a5d4ar ("AlSaudiah", Arabic) : SA\n// http://www.nic.net.sa/\nالسعودية\n\n// xn--mgberp4a5d4a87g ("AlSaudiah", Arabic, variant) : SA\nالسعودیة\n\n// xn--mgbqly7c0a67fbc ("AlSaudiah", Arabic, variant) : SA\nالسعودیۃ\n\n// xn--mgbqly7cvafr ("AlSaudiah", Arabic, variant) : SA\nالسعوديه\n\n// xn--mgbpl2fh ("sudan", Arabic) : SD\n// Operated by .sd registry\nسودان\n\n// xn--yfro4i67o Singapore ("Singapore", Chinese) : SG\n新加坡\n\n// xn--clchc0ea0b2g2a9gcd ("Singapore", Tamil) : SG\nசிங்கப்பூர்\n\n// xn--ogbpf8fl ("Syria", Arabic) : SY\nسورية\n\n// xn--mgbtf8fl ("Syria", Arabic, variant) : SY\nسوريا\n\n// xn--o3cw4h ("Thai", Thai) : TH\n// http://www.thnic.co.th\nไทย\nศึกษา.ไทย\nธุรกิจ.ไทย\nรัฐบาล.ไทย\nทหาร.ไทย\nเน็ต.ไทย\nองค์กร.ไทย\n\n// xn--pgbs0dh ("Tunisia", Arabic) : TN\n// http://nic.tn\nتونس\n\n// xn--kpry57d ("Taiwan", Chinese, Traditional) : TW\n// http://www.twnic.net/english/dn/dn_07a.htm\n台灣\n\n// xn--kprw13d ("Taiwan", Chinese, Simplified) : TW\n// http://www.twnic.net/english/dn/dn_07a.htm\n台湾\n\n// xn--nnx388a ("Taiwan", Chinese, variant) : TW\n臺灣\n\n// xn--j1amh ("ukr", Cyrillic) : UA\nукр\n\n// xn--mgb2ddes ("AlYemen", Arabic) : YE\nاليمن\n\n// xxx : http://icmregistry.com\nxxx\n\n// ye : http://www.y.net.ye/services/domain_name.htm\nye\ncom.ye\nedu.ye\ngov.ye\nnet.ye\nmil.ye\norg.ye\n\n// za : https://www.zadna.org.za/content/page/domain-information/\nac.za\nagric.za\nalt.za\nco.za\nedu.za\ngov.za\ngrondar.za\nlaw.za\nmil.za\nnet.za\nngo.za\nnic.za\nnis.za\nnom.za\norg.za\nschool.za\ntm.za\nweb.za\n\n// zm : https://zicta.zm/\n// Submitted by registry <info@zicta.zm>\nzm\nac.zm\nbiz.zm\nco.zm\ncom.zm\nedu.zm\ngov.zm\ninfo.zm\nmil.zm\nnet.zm\norg.zm\nsch.zm\n\n// zw : https://www.potraz.gov.zw/\n// Confirmed by registry <bmtengwa@potraz.gov.zw> 2017-01-25\nzw\nac.zw\nco.zw\ngov.zw\nmil.zw\norg.zw\n\n\n// newGTLDs\n\n// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2023-10-20T15:11:50Z\n// This list is auto-generated, don\'t edit it manually.\n// aaa : American Automobile Association, Inc.\n// https://www.iana.org/domains/root/db/aaa.html\naaa\n\n// aarp : AARP\n// https://www.iana.org/domains/root/db/aarp.html\naarp\n\n// abb : ABB Ltd\n// https://www.iana.org/domains/root/db/abb.html\nabb\n\n// abbott : Abbott Laboratories, Inc.\n// https://www.iana.org/domains/root/db/abbott.html\nabbott\n\n// abbvie : AbbVie Inc.\n// https://www.iana.org/domains/root/db/abbvie.html\nabbvie\n\n// abc : Disney Enterprises, Inc.\n// https://www.iana.org/domains/root/db/abc.html\nabc\n\n// able : Able Inc.\n// https://www.iana.org/domains/root/db/able.html\nable\n\n// abogado : Registry Services, LLC\n// https://www.iana.org/domains/root/db/abogado.html\nabogado\n\n// abudhabi : Abu Dhabi Systems and Information Centre\n// https://www.iana.org/domains/root/db/abudhabi.html\nabudhabi\n\n// academy : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/academy.html\nacademy\n\n// accenture : Accenture plc\n// https://www.iana.org/domains/root/db/accenture.html\naccenture\n\n// accountant : dot Accountant Limited\n// https://www.iana.org/domains/root/db/accountant.html\naccountant\n\n// accountants : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/accountants.html\naccountants\n\n// aco : ACO Severin Ahlmann GmbH & Co. KG\n// https://www.iana.org/domains/root/db/aco.html\naco\n\n// actor : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/actor.html\nactor\n\n// ads : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/ads.html\nads\n\n// adult : ICM Registry AD LLC\n// https://www.iana.org/domains/root/db/adult.html\nadult\n\n// aeg : Aktiebolaget Electrolux\n// https://www.iana.org/domains/root/db/aeg.html\naeg\n\n// aetna : Aetna Life Insurance Company\n// https://www.iana.org/domains/root/db/aetna.html\naetna\n\n// afl : Australian Football League\n// https://www.iana.org/domains/root/db/afl.html\nafl\n\n// africa : ZA Central Registry NPC trading as Registry.Africa\n// https://www.iana.org/domains/root/db/africa.html\nafrica\n\n// agakhan : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/agakhan.html\nagakhan\n\n// agency : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/agency.html\nagency\n\n// aig : American International Group, Inc.\n// https://www.iana.org/domains/root/db/aig.html\naig\n\n// airbus : Airbus S.A.S.\n// https://www.iana.org/domains/root/db/airbus.html\nairbus\n\n// airforce : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/airforce.html\nairforce\n\n// airtel : Bharti Airtel Limited\n// https://www.iana.org/domains/root/db/airtel.html\nairtel\n\n// akdn : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/akdn.html\nakdn\n\n// alibaba : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/alibaba.html\nalibaba\n\n// alipay : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/alipay.html\nalipay\n\n// allfinanz : Allfinanz Deutsche Vermögensberatung Aktiengesellschaft\n// https://www.iana.org/domains/root/db/allfinanz.html\nallfinanz\n\n// allstate : Allstate Fire and Casualty Insurance Company\n// https://www.iana.org/domains/root/db/allstate.html\nallstate\n\n// ally : Ally Financial Inc.\n// https://www.iana.org/domains/root/db/ally.html\nally\n\n// alsace : Region Grand Est\n// https://www.iana.org/domains/root/db/alsace.html\nalsace\n\n// alstom : ALSTOM\n// https://www.iana.org/domains/root/db/alstom.html\nalstom\n\n// amazon : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/amazon.html\namazon\n\n// americanexpress : American Express Travel Related Services Company, Inc.\n// https://www.iana.org/domains/root/db/americanexpress.html\namericanexpress\n\n// americanfamily : AmFam, Inc.\n// https://www.iana.org/domains/root/db/americanfamily.html\namericanfamily\n\n// amex : American Express Travel Related Services Company, Inc.\n// https://www.iana.org/domains/root/db/amex.html\namex\n\n// amfam : AmFam, Inc.\n// https://www.iana.org/domains/root/db/amfam.html\namfam\n\n// amica : Amica Mutual Insurance Company\n// https://www.iana.org/domains/root/db/amica.html\namica\n\n// amsterdam : Gemeente Amsterdam\n// https://www.iana.org/domains/root/db/amsterdam.html\namsterdam\n\n// analytics : Campus IP LLC\n// https://www.iana.org/domains/root/db/analytics.html\nanalytics\n\n// android : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/android.html\nandroid\n\n// anquan : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/anquan.html\nanquan\n\n// anz : Australia and New Zealand Banking Group Limited\n// https://www.iana.org/domains/root/db/anz.html\nanz\n\n// aol : Oath Inc.\n// https://www.iana.org/domains/root/db/aol.html\naol\n\n// apartments : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/apartments.html\napartments\n\n// app : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/app.html\napp\n\n// apple : Apple Inc.\n// https://www.iana.org/domains/root/db/apple.html\napple\n\n// aquarelle : Aquarelle.com\n// https://www.iana.org/domains/root/db/aquarelle.html\naquarelle\n\n// arab : League of Arab States\n// https://www.iana.org/domains/root/db/arab.html\narab\n\n// aramco : Aramco Services Company\n// https://www.iana.org/domains/root/db/aramco.html\naramco\n\n// archi : Identity Digital Limited\n// https://www.iana.org/domains/root/db/archi.html\narchi\n\n// army : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/army.html\narmy\n\n// art : UK Creative Ideas Limited\n// https://www.iana.org/domains/root/db/art.html\nart\n\n// arte : Association Relative à la Télévision Européenne G.E.I.E.\n// https://www.iana.org/domains/root/db/arte.html\narte\n\n// asda : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/asda.html\nasda\n\n// associates : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/associates.html\nassociates\n\n// athleta : The Gap, Inc.\n// https://www.iana.org/domains/root/db/athleta.html\nathleta\n\n// attorney : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/attorney.html\nattorney\n\n// auction : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/auction.html\nauction\n\n// audi : AUDI Aktiengesellschaft\n// https://www.iana.org/domains/root/db/audi.html\naudi\n\n// audible : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/audible.html\naudible\n\n// audio : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/audio.html\naudio\n\n// auspost : Australian Postal Corporation\n// https://www.iana.org/domains/root/db/auspost.html\nauspost\n\n// author : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/author.html\nauthor\n\n// auto : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/auto.html\nauto\n\n// autos : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/autos.html\nautos\n\n// avianca : Avianca Inc.\n// https://www.iana.org/domains/root/db/avianca.html\navianca\n\n// aws : AWS Registry LLC\n// https://www.iana.org/domains/root/db/aws.html\naws\n\n// axa : AXA Group Operations SAS\n// https://www.iana.org/domains/root/db/axa.html\naxa\n\n// azure : Microsoft Corporation\n// https://www.iana.org/domains/root/db/azure.html\nazure\n\n// baby : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/baby.html\nbaby\n\n// baidu : Baidu, Inc.\n// https://www.iana.org/domains/root/db/baidu.html\nbaidu\n\n// banamex : Citigroup Inc.\n// https://www.iana.org/domains/root/db/banamex.html\nbanamex\n\n// bananarepublic : The Gap, Inc.\n// https://www.iana.org/domains/root/db/bananarepublic.html\nbananarepublic\n\n// band : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/band.html\nband\n\n// bank : fTLD Registry Services LLC\n// https://www.iana.org/domains/root/db/bank.html\nbank\n\n// bar : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable\n// https://www.iana.org/domains/root/db/bar.html\nbar\n\n// barcelona : Municipi de Barcelona\n// https://www.iana.org/domains/root/db/barcelona.html\nbarcelona\n\n// barclaycard : Barclays Bank PLC\n// https://www.iana.org/domains/root/db/barclaycard.html\nbarclaycard\n\n// barclays : Barclays Bank PLC\n// https://www.iana.org/domains/root/db/barclays.html\nbarclays\n\n// barefoot : Gallo Vineyards, Inc.\n// https://www.iana.org/domains/root/db/barefoot.html\nbarefoot\n\n// bargains : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/bargains.html\nbargains\n\n// baseball : MLB Advanced Media DH, LLC\n// https://www.iana.org/domains/root/db/baseball.html\nbaseball\n\n// basketball : Fédération Internationale de Basketball (FIBA)\n// https://www.iana.org/domains/root/db/basketball.html\nbasketball\n\n// bauhaus : Werkhaus GmbH\n// https://www.iana.org/domains/root/db/bauhaus.html\nbauhaus\n\n// bayern : Bayern Connect GmbH\n// https://www.iana.org/domains/root/db/bayern.html\nbayern\n\n// bbc : British Broadcasting Corporation\n// https://www.iana.org/domains/root/db/bbc.html\nbbc\n\n// bbt : BB&T Corporation\n// https://www.iana.org/domains/root/db/bbt.html\nbbt\n\n// bbva : BANCO BILBAO VIZCAYA ARGENTARIA, S.A.\n// https://www.iana.org/domains/root/db/bbva.html\nbbva\n\n// bcg : The Boston Consulting Group, Inc.\n// https://www.iana.org/domains/root/db/bcg.html\nbcg\n\n// bcn : Municipi de Barcelona\n// https://www.iana.org/domains/root/db/bcn.html\nbcn\n\n// beats : Beats Electronics, LLC\n// https://www.iana.org/domains/root/db/beats.html\nbeats\n\n// beauty : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/beauty.html\nbeauty\n\n// beer : Registry Services, LLC\n// https://www.iana.org/domains/root/db/beer.html\nbeer\n\n// bentley : Bentley Motors Limited\n// https://www.iana.org/domains/root/db/bentley.html\nbentley\n\n// berlin : dotBERLIN GmbH & Co. KG\n// https://www.iana.org/domains/root/db/berlin.html\nberlin\n\n// best : BestTLD Pty Ltd\n// https://www.iana.org/domains/root/db/best.html\nbest\n\n// bestbuy : BBY Solutions, Inc.\n// https://www.iana.org/domains/root/db/bestbuy.html\nbestbuy\n\n// bet : Identity Digital Limited\n// https://www.iana.org/domains/root/db/bet.html\nbet\n\n// bharti : Bharti Enterprises (Holding) Private Limited\n// https://www.iana.org/domains/root/db/bharti.html\nbharti\n\n// bible : American Bible Society\n// https://www.iana.org/domains/root/db/bible.html\nbible\n\n// bid : dot Bid Limited\n// https://www.iana.org/domains/root/db/bid.html\nbid\n\n// bike : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/bike.html\nbike\n\n// bing : Microsoft Corporation\n// https://www.iana.org/domains/root/db/bing.html\nbing\n\n// bingo : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/bingo.html\nbingo\n\n// bio : Identity Digital Limited\n// https://www.iana.org/domains/root/db/bio.html\nbio\n\n// black : Identity Digital Limited\n// https://www.iana.org/domains/root/db/black.html\nblack\n\n// blackfriday : Registry Services, LLC\n// https://www.iana.org/domains/root/db/blackfriday.html\nblackfriday\n\n// blockbuster : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/blockbuster.html\nblockbuster\n\n// blog : Knock Knock WHOIS There, LLC\n// https://www.iana.org/domains/root/db/blog.html\nblog\n\n// bloomberg : Bloomberg IP Holdings LLC\n// https://www.iana.org/domains/root/db/bloomberg.html\nbloomberg\n\n// blue : Identity Digital Limited\n// https://www.iana.org/domains/root/db/blue.html\nblue\n\n// bms : Bristol-Myers Squibb Company\n// https://www.iana.org/domains/root/db/bms.html\nbms\n\n// bmw : Bayerische Motoren Werke Aktiengesellschaft\n// https://www.iana.org/domains/root/db/bmw.html\nbmw\n\n// bnpparibas : BNP Paribas\n// https://www.iana.org/domains/root/db/bnpparibas.html\nbnpparibas\n\n// boats : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/boats.html\nboats\n\n// boehringer : Boehringer Ingelheim International GmbH\n// https://www.iana.org/domains/root/db/boehringer.html\nboehringer\n\n// bofa : Bank of America Corporation\n// https://www.iana.org/domains/root/db/bofa.html\nbofa\n\n// bom : Núcleo de Informação e Coordenação do Ponto BR - NIC.br\n// https://www.iana.org/domains/root/db/bom.html\nbom\n\n// bond : ShortDot SA\n// https://www.iana.org/domains/root/db/bond.html\nbond\n\n// boo : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/boo.html\nboo\n\n// book : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/book.html\nbook\n\n// booking : Booking.com B.V.\n// https://www.iana.org/domains/root/db/booking.html\nbooking\n\n// bosch : Robert Bosch GMBH\n// https://www.iana.org/domains/root/db/bosch.html\nbosch\n\n// bostik : Bostik SA\n// https://www.iana.org/domains/root/db/bostik.html\nbostik\n\n// boston : Registry Services, LLC\n// https://www.iana.org/domains/root/db/boston.html\nboston\n\n// bot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/bot.html\nbot\n\n// boutique : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/boutique.html\nboutique\n\n// box : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/box.html\nbox\n\n// bradesco : Banco Bradesco S.A.\n// https://www.iana.org/domains/root/db/bradesco.html\nbradesco\n\n// bridgestone : Bridgestone Corporation\n// https://www.iana.org/domains/root/db/bridgestone.html\nbridgestone\n\n// broadway : Celebrate Broadway, Inc.\n// https://www.iana.org/domains/root/db/broadway.html\nbroadway\n\n// broker : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/broker.html\nbroker\n\n// brother : Brother Industries, Ltd.\n// https://www.iana.org/domains/root/db/brother.html\nbrother\n\n// brussels : DNS.be vzw\n// https://www.iana.org/domains/root/db/brussels.html\nbrussels\n\n// build : Plan Bee LLC\n// https://www.iana.org/domains/root/db/build.html\nbuild\n\n// builders : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/builders.html\nbuilders\n\n// business : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/business.html\nbusiness\n\n// buy : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/buy.html\nbuy\n\n// buzz : DOTSTRATEGY CO.\n// https://www.iana.org/domains/root/db/buzz.html\nbuzz\n\n// bzh : Association www.bzh\n// https://www.iana.org/domains/root/db/bzh.html\nbzh\n\n// cab : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cab.html\ncab\n\n// cafe : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cafe.html\ncafe\n\n// cal : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/cal.html\ncal\n\n// call : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/call.html\ncall\n\n// calvinklein : PVH gTLD Holdings LLC\n// https://www.iana.org/domains/root/db/calvinklein.html\ncalvinklein\n\n// cam : Cam Connecting SARL\n// https://www.iana.org/domains/root/db/cam.html\ncam\n\n// camera : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/camera.html\ncamera\n\n// camp : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/camp.html\ncamp\n\n// canon : Canon Inc.\n// https://www.iana.org/domains/root/db/canon.html\ncanon\n\n// capetown : ZA Central Registry NPC trading as ZA Central Registry\n// https://www.iana.org/domains/root/db/capetown.html\ncapetown\n\n// capital : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/capital.html\ncapital\n\n// capitalone : Capital One Financial Corporation\n// https://www.iana.org/domains/root/db/capitalone.html\ncapitalone\n\n// car : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/car.html\ncar\n\n// caravan : Caravan International, Inc.\n// https://www.iana.org/domains/root/db/caravan.html\ncaravan\n\n// cards : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cards.html\ncards\n\n// care : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/care.html\ncare\n\n// career : dotCareer LLC\n// https://www.iana.org/domains/root/db/career.html\ncareer\n\n// careers : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/careers.html\ncareers\n\n// cars : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/cars.html\ncars\n\n// casa : Registry Services, LLC\n// https://www.iana.org/domains/root/db/casa.html\ncasa\n\n// case : Digity, LLC\n// https://www.iana.org/domains/root/db/case.html\ncase\n\n// cash : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cash.html\ncash\n\n// casino : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/casino.html\ncasino\n\n// catering : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/catering.html\ncatering\n\n// catholic : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/catholic.html\ncatholic\n\n// cba : COMMONWEALTH BANK OF AUSTRALIA\n// https://www.iana.org/domains/root/db/cba.html\ncba\n\n// cbn : The Christian Broadcasting Network, Inc.\n// https://www.iana.org/domains/root/db/cbn.html\ncbn\n\n// cbre : CBRE, Inc.\n// https://www.iana.org/domains/root/db/cbre.html\ncbre\n\n// cbs : CBS Domains Inc.\n// https://www.iana.org/domains/root/db/cbs.html\ncbs\n\n// center : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/center.html\ncenter\n\n// ceo : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/ceo.html\nceo\n\n// cern : European Organization for Nuclear Research ("CERN")\n// https://www.iana.org/domains/root/db/cern.html\ncern\n\n// cfa : CFA Institute\n// https://www.iana.org/domains/root/db/cfa.html\ncfa\n\n// cfd : ShortDot SA\n// https://www.iana.org/domains/root/db/cfd.html\ncfd\n\n// chanel : Chanel International B.V.\n// https://www.iana.org/domains/root/db/chanel.html\nchanel\n\n// channel : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/channel.html\nchannel\n\n// charity : Public Interest Registry\n// https://www.iana.org/domains/root/db/charity.html\ncharity\n\n// chase : JPMorgan Chase Bank, National Association\n// https://www.iana.org/domains/root/db/chase.html\nchase\n\n// chat : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/chat.html\nchat\n\n// cheap : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cheap.html\ncheap\n\n// chintai : CHINTAI Corporation\n// https://www.iana.org/domains/root/db/chintai.html\nchintai\n\n// christmas : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/christmas.html\nchristmas\n\n// chrome : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/chrome.html\nchrome\n\n// church : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/church.html\nchurch\n\n// cipriani : Hotel Cipriani Srl\n// https://www.iana.org/domains/root/db/cipriani.html\ncipriani\n\n// circle : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/circle.html\ncircle\n\n// cisco : Cisco Technology, Inc.\n// https://www.iana.org/domains/root/db/cisco.html\ncisco\n\n// citadel : Citadel Domain LLC\n// https://www.iana.org/domains/root/db/citadel.html\ncitadel\n\n// citi : Citigroup Inc.\n// https://www.iana.org/domains/root/db/citi.html\nciti\n\n// citic : CITIC Group Corporation\n// https://www.iana.org/domains/root/db/citic.html\ncitic\n\n// city : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/city.html\ncity\n\n// claims : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/claims.html\nclaims\n\n// cleaning : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cleaning.html\ncleaning\n\n// click : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/click.html\nclick\n\n// clinic : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/clinic.html\nclinic\n\n// clinique : The Estée Lauder Companies Inc.\n// https://www.iana.org/domains/root/db/clinique.html\nclinique\n\n// clothing : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/clothing.html\nclothing\n\n// cloud : Aruba PEC S.p.A.\n// https://www.iana.org/domains/root/db/cloud.html\ncloud\n\n// club : Registry Services, LLC\n// https://www.iana.org/domains/root/db/club.html\nclub\n\n// clubmed : Club Méditerranée S.A.\n// https://www.iana.org/domains/root/db/clubmed.html\nclubmed\n\n// coach : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/coach.html\ncoach\n\n// codes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/codes.html\ncodes\n\n// coffee : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/coffee.html\ncoffee\n\n// college : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/college.html\ncollege\n\n// cologne : dotKoeln GmbH\n// https://www.iana.org/domains/root/db/cologne.html\ncologne\n\n// comcast : Comcast IP Holdings I, LLC\n// https://www.iana.org/domains/root/db/comcast.html\ncomcast\n\n// commbank : COMMONWEALTH BANK OF AUSTRALIA\n// https://www.iana.org/domains/root/db/commbank.html\ncommbank\n\n// community : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/community.html\ncommunity\n\n// company : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/company.html\ncompany\n\n// compare : Registry Services, LLC\n// https://www.iana.org/domains/root/db/compare.html\ncompare\n\n// computer : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/computer.html\ncomputer\n\n// comsec : VeriSign, Inc.\n// https://www.iana.org/domains/root/db/comsec.html\ncomsec\n\n// condos : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/condos.html\ncondos\n\n// construction : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/construction.html\nconstruction\n\n// consulting : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/consulting.html\nconsulting\n\n// contact : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/contact.html\ncontact\n\n// contractors : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/contractors.html\ncontractors\n\n// cooking : Registry Services, LLC\n// https://www.iana.org/domains/root/db/cooking.html\ncooking\n\n// cool : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cool.html\ncool\n\n// corsica : Collectivité de Corse\n// https://www.iana.org/domains/root/db/corsica.html\ncorsica\n\n// country : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/country.html\ncountry\n\n// coupon : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/coupon.html\ncoupon\n\n// coupons : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/coupons.html\ncoupons\n\n// courses : Registry Services, LLC\n// https://www.iana.org/domains/root/db/courses.html\ncourses\n\n// cpa : American Institute of Certified Public Accountants\n// https://www.iana.org/domains/root/db/cpa.html\ncpa\n\n// credit : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/credit.html\ncredit\n\n// creditcard : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/creditcard.html\ncreditcard\n\n// creditunion : DotCooperation LLC\n// https://www.iana.org/domains/root/db/creditunion.html\ncreditunion\n\n// cricket : dot Cricket Limited\n// https://www.iana.org/domains/root/db/cricket.html\ncricket\n\n// crown : Crown Equipment Corporation\n// https://www.iana.org/domains/root/db/crown.html\ncrown\n\n// crs : Federated Co-operatives Limited\n// https://www.iana.org/domains/root/db/crs.html\ncrs\n\n// cruise : Viking River Cruises (Bermuda) Ltd.\n// https://www.iana.org/domains/root/db/cruise.html\ncruise\n\n// cruises : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/cruises.html\ncruises\n\n// cuisinella : SCHMIDT GROUPE S.A.S.\n// https://www.iana.org/domains/root/db/cuisinella.html\ncuisinella\n\n// cymru : Nominet UK\n// https://www.iana.org/domains/root/db/cymru.html\ncymru\n\n// cyou : ShortDot SA\n// https://www.iana.org/domains/root/db/cyou.html\ncyou\n\n// dabur : Dabur India Limited\n// https://www.iana.org/domains/root/db/dabur.html\ndabur\n\n// dad : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/dad.html\ndad\n\n// dance : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/dance.html\ndance\n\n// data : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/data.html\ndata\n\n// date : dot Date Limited\n// https://www.iana.org/domains/root/db/date.html\ndate\n\n// dating : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/dating.html\ndating\n\n// datsun : NISSAN MOTOR CO., LTD.\n// https://www.iana.org/domains/root/db/datsun.html\ndatsun\n\n// day : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/day.html\nday\n\n// dclk : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/dclk.html\ndclk\n\n// dds : Registry Services, LLC\n// https://www.iana.org/domains/root/db/dds.html\ndds\n\n// deal : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/deal.html\ndeal\n\n// dealer : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/dealer.html\ndealer\n\n// deals : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/deals.html\ndeals\n\n// degree : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/degree.html\ndegree\n\n// delivery : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/delivery.html\ndelivery\n\n// dell : Dell Inc.\n// https://www.iana.org/domains/root/db/dell.html\ndell\n\n// deloitte : Deloitte Touche Tohmatsu\n// https://www.iana.org/domains/root/db/deloitte.html\ndeloitte\n\n// delta : Delta Air Lines, Inc.\n// https://www.iana.org/domains/root/db/delta.html\ndelta\n\n// democrat : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/democrat.html\ndemocrat\n\n// dental : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/dental.html\ndental\n\n// dentist : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/dentist.html\ndentist\n\n// desi : Desi Networks LLC\n// https://www.iana.org/domains/root/db/desi.html\ndesi\n\n// design : Registry Services, LLC\n// https://www.iana.org/domains/root/db/design.html\ndesign\n\n// dev : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/dev.html\ndev\n\n// dhl : Deutsche Post AG\n// https://www.iana.org/domains/root/db/dhl.html\ndhl\n\n// diamonds : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/diamonds.html\ndiamonds\n\n// diet : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/diet.html\ndiet\n\n// digital : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/digital.html\ndigital\n\n// direct : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/direct.html\ndirect\n\n// directory : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/directory.html\ndirectory\n\n// discount : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/discount.html\ndiscount\n\n// discover : Discover Financial Services\n// https://www.iana.org/domains/root/db/discover.html\ndiscover\n\n// dish : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/dish.html\ndish\n\n// diy : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/diy.html\ndiy\n\n// dnp : Dai Nippon Printing Co., Ltd.\n// https://www.iana.org/domains/root/db/dnp.html\ndnp\n\n// docs : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/docs.html\ndocs\n\n// doctor : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/doctor.html\ndoctor\n\n// dog : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/dog.html\ndog\n\n// domains : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/domains.html\ndomains\n\n// dot : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/dot.html\ndot\n\n// download : dot Support Limited\n// https://www.iana.org/domains/root/db/download.html\ndownload\n\n// drive : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/drive.html\ndrive\n\n// dtv : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/dtv.html\ndtv\n\n// dubai : Dubai Smart Government Department\n// https://www.iana.org/domains/root/db/dubai.html\ndubai\n\n// dunlop : The Goodyear Tire & Rubber Company\n// https://www.iana.org/domains/root/db/dunlop.html\ndunlop\n\n// dupont : DuPont Specialty Products USA, LLC\n// https://www.iana.org/domains/root/db/dupont.html\ndupont\n\n// durban : ZA Central Registry NPC trading as ZA Central Registry\n// https://www.iana.org/domains/root/db/durban.html\ndurban\n\n// dvag : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/dvag.html\ndvag\n\n// dvr : DISH Technologies L.L.C.\n// https://www.iana.org/domains/root/db/dvr.html\ndvr\n\n// earth : Interlink Systems Innovation Institute K.K.\n// https://www.iana.org/domains/root/db/earth.html\nearth\n\n// eat : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/eat.html\neat\n\n// eco : Big Room Inc.\n// https://www.iana.org/domains/root/db/eco.html\neco\n\n// edeka : EDEKA Verband kaufmännischer Genossenschaften e.V.\n// https://www.iana.org/domains/root/db/edeka.html\nedeka\n\n// education : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/education.html\neducation\n\n// email : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/email.html\nemail\n\n// emerck : Merck KGaA\n// https://www.iana.org/domains/root/db/emerck.html\nemerck\n\n// energy : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/energy.html\nenergy\n\n// engineer : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/engineer.html\nengineer\n\n// engineering : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/engineering.html\nengineering\n\n// enterprises : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/enterprises.html\nenterprises\n\n// epson : Seiko Epson Corporation\n// https://www.iana.org/domains/root/db/epson.html\nepson\n\n// equipment : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/equipment.html\nequipment\n\n// ericsson : Telefonaktiebolaget L M Ericsson\n// https://www.iana.org/domains/root/db/ericsson.html\nericsson\n\n// erni : ERNI Group Holding AG\n// https://www.iana.org/domains/root/db/erni.html\nerni\n\n// esq : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/esq.html\nesq\n\n// estate : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/estate.html\nestate\n\n// etisalat : Emirates Telecommunications Corporation (trading as Etisalat)\n// https://www.iana.org/domains/root/db/etisalat.html\netisalat\n\n// eurovision : European Broadcasting Union (EBU)\n// https://www.iana.org/domains/root/db/eurovision.html\neurovision\n\n// eus : Puntueus Fundazioa\n// https://www.iana.org/domains/root/db/eus.html\neus\n\n// events : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/events.html\nevents\n\n// exchange : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/exchange.html\nexchange\n\n// expert : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/expert.html\nexpert\n\n// exposed : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/exposed.html\nexposed\n\n// express : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/express.html\nexpress\n\n// extraspace : Extra Space Storage LLC\n// https://www.iana.org/domains/root/db/extraspace.html\nextraspace\n\n// fage : Fage International S.A.\n// https://www.iana.org/domains/root/db/fage.html\nfage\n\n// fail : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fail.html\nfail\n\n// fairwinds : FairWinds Partners, LLC\n// https://www.iana.org/domains/root/db/fairwinds.html\nfairwinds\n\n// faith : dot Faith Limited\n// https://www.iana.org/domains/root/db/faith.html\nfaith\n\n// family : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/family.html\nfamily\n\n// fan : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/fan.html\nfan\n\n// fans : ZDNS International Limited\n// https://www.iana.org/domains/root/db/fans.html\nfans\n\n// farm : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/farm.html\nfarm\n\n// farmers : Farmers Insurance Exchange\n// https://www.iana.org/domains/root/db/farmers.html\nfarmers\n\n// fashion : Registry Services, LLC\n// https://www.iana.org/domains/root/db/fashion.html\nfashion\n\n// fast : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/fast.html\nfast\n\n// fedex : Federal Express Corporation\n// https://www.iana.org/domains/root/db/fedex.html\nfedex\n\n// feedback : Top Level Spectrum, Inc.\n// https://www.iana.org/domains/root/db/feedback.html\nfeedback\n\n// ferrari : Fiat Chrysler Automobiles N.V.\n// https://www.iana.org/domains/root/db/ferrari.html\nferrari\n\n// ferrero : Ferrero Trading Lux S.A.\n// https://www.iana.org/domains/root/db/ferrero.html\nferrero\n\n// fidelity : Fidelity Brokerage Services LLC\n// https://www.iana.org/domains/root/db/fidelity.html\nfidelity\n\n// fido : Rogers Communications Canada Inc.\n// https://www.iana.org/domains/root/db/fido.html\nfido\n\n// film : Motion Picture Domain Registry Pty Ltd\n// https://www.iana.org/domains/root/db/film.html\nfilm\n\n// final : Núcleo de Informação e Coordenação do Ponto BR - NIC.br\n// https://www.iana.org/domains/root/db/final.html\nfinal\n\n// finance : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/finance.html\nfinance\n\n// financial : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/financial.html\nfinancial\n\n// fire : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/fire.html\nfire\n\n// firestone : Bridgestone Licensing Services, Inc\n// https://www.iana.org/domains/root/db/firestone.html\nfirestone\n\n// firmdale : Firmdale Holdings Limited\n// https://www.iana.org/domains/root/db/firmdale.html\nfirmdale\n\n// fish : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fish.html\nfish\n\n// fishing : Registry Services, LLC\n// https://www.iana.org/domains/root/db/fishing.html\nfishing\n\n// fit : Registry Services, LLC\n// https://www.iana.org/domains/root/db/fit.html\nfit\n\n// fitness : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fitness.html\nfitness\n\n// flickr : Flickr, Inc.\n// https://www.iana.org/domains/root/db/flickr.html\nflickr\n\n// flights : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/flights.html\nflights\n\n// flir : FLIR Systems, Inc.\n// https://www.iana.org/domains/root/db/flir.html\nflir\n\n// florist : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/florist.html\nflorist\n\n// flowers : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/flowers.html\nflowers\n\n// fly : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/fly.html\nfly\n\n// foo : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/foo.html\nfoo\n\n// food : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/food.html\nfood\n\n// football : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/football.html\nfootball\n\n// ford : Ford Motor Company\n// https://www.iana.org/domains/root/db/ford.html\nford\n\n// forex : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/forex.html\nforex\n\n// forsale : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/forsale.html\nforsale\n\n// forum : Fegistry, LLC\n// https://www.iana.org/domains/root/db/forum.html\nforum\n\n// foundation : Public Interest Registry\n// https://www.iana.org/domains/root/db/foundation.html\nfoundation\n\n// fox : FOX Registry, LLC\n// https://www.iana.org/domains/root/db/fox.html\nfox\n\n// free : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/free.html\nfree\n\n// fresenius : Fresenius Immobilien-Verwaltungs-GmbH\n// https://www.iana.org/domains/root/db/fresenius.html\nfresenius\n\n// frl : FRLregistry B.V.\n// https://www.iana.org/domains/root/db/frl.html\nfrl\n\n// frogans : OP3FT\n// https://www.iana.org/domains/root/db/frogans.html\nfrogans\n\n// frontier : Frontier Communications Corporation\n// https://www.iana.org/domains/root/db/frontier.html\nfrontier\n\n// ftr : Frontier Communications Corporation\n// https://www.iana.org/domains/root/db/ftr.html\nftr\n\n// fujitsu : Fujitsu Limited\n// https://www.iana.org/domains/root/db/fujitsu.html\nfujitsu\n\n// fun : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/fun.html\nfun\n\n// fund : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fund.html\nfund\n\n// furniture : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/furniture.html\nfurniture\n\n// futbol : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/futbol.html\nfutbol\n\n// fyi : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/fyi.html\nfyi\n\n// gal : Asociación puntoGAL\n// https://www.iana.org/domains/root/db/gal.html\ngal\n\n// gallery : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gallery.html\ngallery\n\n// gallo : Gallo Vineyards, Inc.\n// https://www.iana.org/domains/root/db/gallo.html\ngallo\n\n// gallup : Gallup, Inc.\n// https://www.iana.org/domains/root/db/gallup.html\ngallup\n\n// game : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/game.html\ngame\n\n// games : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/games.html\ngames\n\n// gap : The Gap, Inc.\n// https://www.iana.org/domains/root/db/gap.html\ngap\n\n// garden : Registry Services, LLC\n// https://www.iana.org/domains/root/db/garden.html\ngarden\n\n// gay : Registry Services, LLC\n// https://www.iana.org/domains/root/db/gay.html\ngay\n\n// gbiz : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/gbiz.html\ngbiz\n\n// gdn : Joint Stock Company "Navigation-information systems"\n// https://www.iana.org/domains/root/db/gdn.html\ngdn\n\n// gea : GEA Group Aktiengesellschaft\n// https://www.iana.org/domains/root/db/gea.html\ngea\n\n// gent : Easyhost BV\n// https://www.iana.org/domains/root/db/gent.html\ngent\n\n// genting : Resorts World Inc Pte. Ltd.\n// https://www.iana.org/domains/root/db/genting.html\ngenting\n\n// george : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/george.html\ngeorge\n\n// ggee : GMO Internet, Inc.\n// https://www.iana.org/domains/root/db/ggee.html\nggee\n\n// gift : DotGift, LLC\n// https://www.iana.org/domains/root/db/gift.html\ngift\n\n// gifts : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gifts.html\ngifts\n\n// gives : Public Interest Registry\n// https://www.iana.org/domains/root/db/gives.html\ngives\n\n// giving : Public Interest Registry\n// https://www.iana.org/domains/root/db/giving.html\ngiving\n\n// glass : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/glass.html\nglass\n\n// gle : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/gle.html\ngle\n\n// global : Identity Digital Limited\n// https://www.iana.org/domains/root/db/global.html\nglobal\n\n// globo : Globo Comunicação e Participações S.A\n// https://www.iana.org/domains/root/db/globo.html\nglobo\n\n// gmail : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/gmail.html\ngmail\n\n// gmbh : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gmbh.html\ngmbh\n\n// gmo : GMO Internet, Inc.\n// https://www.iana.org/domains/root/db/gmo.html\ngmo\n\n// gmx : 1&1 Mail & Media GmbH\n// https://www.iana.org/domains/root/db/gmx.html\ngmx\n\n// godaddy : Go Daddy East, LLC\n// https://www.iana.org/domains/root/db/godaddy.html\ngodaddy\n\n// gold : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gold.html\ngold\n\n// goldpoint : YODOBASHI CAMERA CO.,LTD.\n// https://www.iana.org/domains/root/db/goldpoint.html\ngoldpoint\n\n// golf : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/golf.html\ngolf\n\n// goo : NTT Resonant Inc.\n// https://www.iana.org/domains/root/db/goo.html\ngoo\n\n// goodyear : The Goodyear Tire & Rubber Company\n// https://www.iana.org/domains/root/db/goodyear.html\ngoodyear\n\n// goog : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/goog.html\ngoog\n\n// google : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/google.html\ngoogle\n\n// gop : Republican State Leadership Committee, Inc.\n// https://www.iana.org/domains/root/db/gop.html\ngop\n\n// got : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/got.html\ngot\n\n// grainger : Grainger Registry Services, LLC\n// https://www.iana.org/domains/root/db/grainger.html\ngrainger\n\n// graphics : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/graphics.html\ngraphics\n\n// gratis : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gratis.html\ngratis\n\n// green : Identity Digital Limited\n// https://www.iana.org/domains/root/db/green.html\ngreen\n\n// gripe : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/gripe.html\ngripe\n\n// grocery : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/grocery.html\ngrocery\n\n// group : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/group.html\ngroup\n\n// guardian : The Guardian Life Insurance Company of America\n// https://www.iana.org/domains/root/db/guardian.html\nguardian\n\n// gucci : Guccio Gucci S.p.a.\n// https://www.iana.org/domains/root/db/gucci.html\ngucci\n\n// guge : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/guge.html\nguge\n\n// guide : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/guide.html\nguide\n\n// guitars : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/guitars.html\nguitars\n\n// guru : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/guru.html\nguru\n\n// hair : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/hair.html\nhair\n\n// hamburg : Hamburg Top-Level-Domain GmbH\n// https://www.iana.org/domains/root/db/hamburg.html\nhamburg\n\n// hangout : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/hangout.html\nhangout\n\n// haus : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/haus.html\nhaus\n\n// hbo : HBO Registry Services, Inc.\n// https://www.iana.org/domains/root/db/hbo.html\nhbo\n\n// hdfc : HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED\n// https://www.iana.org/domains/root/db/hdfc.html\nhdfc\n\n// hdfcbank : HDFC Bank Limited\n// https://www.iana.org/domains/root/db/hdfcbank.html\nhdfcbank\n\n// health : Registry Services, LLC\n// https://www.iana.org/domains/root/db/health.html\nhealth\n\n// healthcare : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/healthcare.html\nhealthcare\n\n// help : Innovation service Limited\n// https://www.iana.org/domains/root/db/help.html\nhelp\n\n// helsinki : City of Helsinki\n// https://www.iana.org/domains/root/db/helsinki.html\nhelsinki\n\n// here : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/here.html\nhere\n\n// hermes : HERMES INTERNATIONAL\n// https://www.iana.org/domains/root/db/hermes.html\nhermes\n\n// hiphop : Dot Hip Hop, LLC\n// https://www.iana.org/domains/root/db/hiphop.html\nhiphop\n\n// hisamitsu : Hisamitsu Pharmaceutical Co.,Inc.\n// https://www.iana.org/domains/root/db/hisamitsu.html\nhisamitsu\n\n// hitachi : Hitachi, Ltd.\n// https://www.iana.org/domains/root/db/hitachi.html\nhitachi\n\n// hiv : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/hiv.html\nhiv\n\n// hkt : PCCW-HKT DataCom Services Limited\n// https://www.iana.org/domains/root/db/hkt.html\nhkt\n\n// hockey : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/hockey.html\nhockey\n\n// holdings : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/holdings.html\nholdings\n\n// holiday : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/holiday.html\nholiday\n\n// homedepot : Home Depot Product Authority, LLC\n// https://www.iana.org/domains/root/db/homedepot.html\nhomedepot\n\n// homegoods : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/homegoods.html\nhomegoods\n\n// homes : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/homes.html\nhomes\n\n// homesense : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/homesense.html\nhomesense\n\n// honda : Honda Motor Co., Ltd.\n// https://www.iana.org/domains/root/db/honda.html\nhonda\n\n// horse : Registry Services, LLC\n// https://www.iana.org/domains/root/db/horse.html\nhorse\n\n// hospital : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/hospital.html\nhospital\n\n// host : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/host.html\nhost\n\n// hosting : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/hosting.html\nhosting\n\n// hot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/hot.html\nhot\n\n// hotels : Booking.com B.V.\n// https://www.iana.org/domains/root/db/hotels.html\nhotels\n\n// hotmail : Microsoft Corporation\n// https://www.iana.org/domains/root/db/hotmail.html\nhotmail\n\n// house : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/house.html\nhouse\n\n// how : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/how.html\nhow\n\n// hsbc : HSBC Global Services (UK) Limited\n// https://www.iana.org/domains/root/db/hsbc.html\nhsbc\n\n// hughes : Hughes Satellite Systems Corporation\n// https://www.iana.org/domains/root/db/hughes.html\nhughes\n\n// hyatt : Hyatt GTLD, L.L.C.\n// https://www.iana.org/domains/root/db/hyatt.html\nhyatt\n\n// hyundai : Hyundai Motor Company\n// https://www.iana.org/domains/root/db/hyundai.html\nhyundai\n\n// ibm : International Business Machines Corporation\n// https://www.iana.org/domains/root/db/ibm.html\nibm\n\n// icbc : Industrial and Commercial Bank of China Limited\n// https://www.iana.org/domains/root/db/icbc.html\nicbc\n\n// ice : IntercontinentalExchange, Inc.\n// https://www.iana.org/domains/root/db/ice.html\nice\n\n// icu : ShortDot SA\n// https://www.iana.org/domains/root/db/icu.html\nicu\n\n// ieee : IEEE Global LLC\n// https://www.iana.org/domains/root/db/ieee.html\nieee\n\n// ifm : ifm electronic gmbh\n// https://www.iana.org/domains/root/db/ifm.html\nifm\n\n// ikano : Ikano S.A.\n// https://www.iana.org/domains/root/db/ikano.html\nikano\n\n// imamat : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/imamat.html\nimamat\n\n// imdb : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/imdb.html\nimdb\n\n// immo : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/immo.html\nimmo\n\n// immobilien : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/immobilien.html\nimmobilien\n\n// inc : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/inc.html\ninc\n\n// industries : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/industries.html\nindustries\n\n// infiniti : NISSAN MOTOR CO., LTD.\n// https://www.iana.org/domains/root/db/infiniti.html\ninfiniti\n\n// ing : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/ing.html\ning\n\n// ink : Registry Services, LLC\n// https://www.iana.org/domains/root/db/ink.html\nink\n\n// institute : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/institute.html\ninstitute\n\n// insurance : fTLD Registry Services LLC\n// https://www.iana.org/domains/root/db/insurance.html\ninsurance\n\n// insure : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/insure.html\ninsure\n\n// international : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/international.html\ninternational\n\n// intuit : Intuit Administrative Services, Inc.\n// https://www.iana.org/domains/root/db/intuit.html\nintuit\n\n// investments : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/investments.html\ninvestments\n\n// ipiranga : Ipiranga Produtos de Petroleo S.A.\n// https://www.iana.org/domains/root/db/ipiranga.html\nipiranga\n\n// irish : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/irish.html\nirish\n\n// ismaili : Fondation Aga Khan (Aga Khan Foundation)\n// https://www.iana.org/domains/root/db/ismaili.html\nismaili\n\n// ist : Istanbul Metropolitan Municipality\n// https://www.iana.org/domains/root/db/ist.html\nist\n\n// istanbul : Istanbul Metropolitan Municipality\n// https://www.iana.org/domains/root/db/istanbul.html\nistanbul\n\n// itau : Itau Unibanco Holding S.A.\n// https://www.iana.org/domains/root/db/itau.html\nitau\n\n// itv : ITV Services Limited\n// https://www.iana.org/domains/root/db/itv.html\nitv\n\n// jaguar : Jaguar Land Rover Ltd\n// https://www.iana.org/domains/root/db/jaguar.html\njaguar\n\n// java : Oracle Corporation\n// https://www.iana.org/domains/root/db/java.html\njava\n\n// jcb : JCB Co., Ltd.\n// https://www.iana.org/domains/root/db/jcb.html\njcb\n\n// jeep : FCA US LLC.\n// https://www.iana.org/domains/root/db/jeep.html\njeep\n\n// jetzt : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/jetzt.html\njetzt\n\n// jewelry : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/jewelry.html\njewelry\n\n// jio : Reliance Industries Limited\n// https://www.iana.org/domains/root/db/jio.html\njio\n\n// jll : Jones Lang LaSalle Incorporated\n// https://www.iana.org/domains/root/db/jll.html\njll\n\n// jmp : Matrix IP LLC\n// https://www.iana.org/domains/root/db/jmp.html\njmp\n\n// jnj : Johnson & Johnson Services, Inc.\n// https://www.iana.org/domains/root/db/jnj.html\njnj\n\n// joburg : ZA Central Registry NPC trading as ZA Central Registry\n// https://www.iana.org/domains/root/db/joburg.html\njoburg\n\n// jot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/jot.html\njot\n\n// joy : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/joy.html\njoy\n\n// jpmorgan : JPMorgan Chase Bank, National Association\n// https://www.iana.org/domains/root/db/jpmorgan.html\njpmorgan\n\n// jprs : Japan Registry Services Co., Ltd.\n// https://www.iana.org/domains/root/db/jprs.html\njprs\n\n// juegos : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/juegos.html\njuegos\n\n// juniper : JUNIPER NETWORKS, INC.\n// https://www.iana.org/domains/root/db/juniper.html\njuniper\n\n// kaufen : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/kaufen.html\nkaufen\n\n// kddi : KDDI CORPORATION\n// https://www.iana.org/domains/root/db/kddi.html\nkddi\n\n// kerryhotels : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kerryhotels.html\nkerryhotels\n\n// kerrylogistics : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kerrylogistics.html\nkerrylogistics\n\n// kerryproperties : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kerryproperties.html\nkerryproperties\n\n// kfh : Kuwait Finance House\n// https://www.iana.org/domains/root/db/kfh.html\nkfh\n\n// kia : KIA MOTORS CORPORATION\n// https://www.iana.org/domains/root/db/kia.html\nkia\n\n// kids : DotKids Foundation Limited\n// https://www.iana.org/domains/root/db/kids.html\nkids\n\n// kim : Identity Digital Limited\n// https://www.iana.org/domains/root/db/kim.html\nkim\n\n// kinder : Ferrero Trading Lux S.A.\n// https://www.iana.org/domains/root/db/kinder.html\nkinder\n\n// kindle : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/kindle.html\nkindle\n\n// kitchen : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/kitchen.html\nkitchen\n\n// kiwi : DOT KIWI LIMITED\n// https://www.iana.org/domains/root/db/kiwi.html\nkiwi\n\n// koeln : dotKoeln GmbH\n// https://www.iana.org/domains/root/db/koeln.html\nkoeln\n\n// komatsu : Komatsu Ltd.\n// https://www.iana.org/domains/root/db/komatsu.html\nkomatsu\n\n// kosher : Kosher Marketing Assets LLC\n// https://www.iana.org/domains/root/db/kosher.html\nkosher\n\n// kpmg : KPMG International Cooperative (KPMG International Genossenschaft)\n// https://www.iana.org/domains/root/db/kpmg.html\nkpmg\n\n// kpn : Koninklijke KPN N.V.\n// https://www.iana.org/domains/root/db/kpn.html\nkpn\n\n// krd : KRG Department of Information Technology\n// https://www.iana.org/domains/root/db/krd.html\nkrd\n\n// kred : KredTLD Pty Ltd\n// https://www.iana.org/domains/root/db/kred.html\nkred\n\n// kuokgroup : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/kuokgroup.html\nkuokgroup\n\n// kyoto : Academic Institution: Kyoto Jyoho Gakuen\n// https://www.iana.org/domains/root/db/kyoto.html\nkyoto\n\n// lacaixa : Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa”\n// https://www.iana.org/domains/root/db/lacaixa.html\nlacaixa\n\n// lamborghini : Automobili Lamborghini S.p.A.\n// https://www.iana.org/domains/root/db/lamborghini.html\nlamborghini\n\n// lamer : The Estée Lauder Companies Inc.\n// https://www.iana.org/domains/root/db/lamer.html\nlamer\n\n// lancaster : LANCASTER\n// https://www.iana.org/domains/root/db/lancaster.html\nlancaster\n\n// land : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/land.html\nland\n\n// landrover : Jaguar Land Rover Ltd\n// https://www.iana.org/domains/root/db/landrover.html\nlandrover\n\n// lanxess : LANXESS Corporation\n// https://www.iana.org/domains/root/db/lanxess.html\nlanxess\n\n// lasalle : Jones Lang LaSalle Incorporated\n// https://www.iana.org/domains/root/db/lasalle.html\nlasalle\n\n// lat : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/lat.html\nlat\n\n// latino : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/latino.html\nlatino\n\n// latrobe : La Trobe University\n// https://www.iana.org/domains/root/db/latrobe.html\nlatrobe\n\n// law : Registry Services, LLC\n// https://www.iana.org/domains/root/db/law.html\nlaw\n\n// lawyer : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/lawyer.html\nlawyer\n\n// lds : IRI Domain Management, LLC\n// https://www.iana.org/domains/root/db/lds.html\nlds\n\n// lease : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/lease.html\nlease\n\n// leclerc : A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc\n// https://www.iana.org/domains/root/db/leclerc.html\nleclerc\n\n// lefrak : LeFrak Organization, Inc.\n// https://www.iana.org/domains/root/db/lefrak.html\nlefrak\n\n// legal : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/legal.html\nlegal\n\n// lego : LEGO Juris A/S\n// https://www.iana.org/domains/root/db/lego.html\nlego\n\n// lexus : TOYOTA MOTOR CORPORATION\n// https://www.iana.org/domains/root/db/lexus.html\nlexus\n\n// lgbt : Identity Digital Limited\n// https://www.iana.org/domains/root/db/lgbt.html\nlgbt\n\n// lidl : Schwarz Domains und Services GmbH & Co. KG\n// https://www.iana.org/domains/root/db/lidl.html\nlidl\n\n// life : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/life.html\nlife\n\n// lifeinsurance : American Council of Life Insurers\n// https://www.iana.org/domains/root/db/lifeinsurance.html\nlifeinsurance\n\n// lifestyle : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/lifestyle.html\nlifestyle\n\n// lighting : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/lighting.html\nlighting\n\n// like : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/like.html\nlike\n\n// lilly : Eli Lilly and Company\n// https://www.iana.org/domains/root/db/lilly.html\nlilly\n\n// limited : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/limited.html\nlimited\n\n// limo : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/limo.html\nlimo\n\n// lincoln : Ford Motor Company\n// https://www.iana.org/domains/root/db/lincoln.html\nlincoln\n\n// link : Nova Registry Ltd\n// https://www.iana.org/domains/root/db/link.html\nlink\n\n// lipsy : Lipsy Ltd\n// https://www.iana.org/domains/root/db/lipsy.html\nlipsy\n\n// live : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/live.html\nlive\n\n// living : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/living.html\nliving\n\n// llc : Identity Digital Limited\n// https://www.iana.org/domains/root/db/llc.html\nllc\n\n// llp : Intercap Registry Inc.\n// https://www.iana.org/domains/root/db/llp.html\nllp\n\n// loan : dot Loan Limited\n// https://www.iana.org/domains/root/db/loan.html\nloan\n\n// loans : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/loans.html\nloans\n\n// locker : Orange Domains LLC\n// https://www.iana.org/domains/root/db/locker.html\nlocker\n\n// locus : Locus Analytics LLC\n// https://www.iana.org/domains/root/db/locus.html\nlocus\n\n// lol : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/lol.html\nlol\n\n// london : Dot London Domains Limited\n// https://www.iana.org/domains/root/db/london.html\nlondon\n\n// lotte : Lotte Holdings Co., Ltd.\n// https://www.iana.org/domains/root/db/lotte.html\nlotte\n\n// lotto : Identity Digital Limited\n// https://www.iana.org/domains/root/db/lotto.html\nlotto\n\n// love : Merchant Law Group LLP\n// https://www.iana.org/domains/root/db/love.html\nlove\n\n// lpl : LPL Holdings, Inc.\n// https://www.iana.org/domains/root/db/lpl.html\nlpl\n\n// lplfinancial : LPL Holdings, Inc.\n// https://www.iana.org/domains/root/db/lplfinancial.html\nlplfinancial\n\n// ltd : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/ltd.html\nltd\n\n// ltda : InterNetX, Corp\n// https://www.iana.org/domains/root/db/ltda.html\nltda\n\n// lundbeck : H. Lundbeck A/S\n// https://www.iana.org/domains/root/db/lundbeck.html\nlundbeck\n\n// luxe : Registry Services, LLC\n// https://www.iana.org/domains/root/db/luxe.html\nluxe\n\n// luxury : Luxury Partners, LLC\n// https://www.iana.org/domains/root/db/luxury.html\nluxury\n\n// madrid : Comunidad de Madrid\n// https://www.iana.org/domains/root/db/madrid.html\nmadrid\n\n// maif : Mutuelle Assurance Instituteur France (MAIF)\n// https://www.iana.org/domains/root/db/maif.html\nmaif\n\n// maison : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/maison.html\nmaison\n\n// makeup : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/makeup.html\nmakeup\n\n// man : MAN SE\n// https://www.iana.org/domains/root/db/man.html\nman\n\n// management : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/management.html\nmanagement\n\n// mango : PUNTO FA S.L.\n// https://www.iana.org/domains/root/db/mango.html\nmango\n\n// map : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/map.html\nmap\n\n// market : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/market.html\nmarket\n\n// marketing : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/marketing.html\nmarketing\n\n// markets : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/markets.html\nmarkets\n\n// marriott : Marriott Worldwide Corporation\n// https://www.iana.org/domains/root/db/marriott.html\nmarriott\n\n// marshalls : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/marshalls.html\nmarshalls\n\n// mattel : Mattel Sites, Inc.\n// https://www.iana.org/domains/root/db/mattel.html\nmattel\n\n// mba : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/mba.html\nmba\n\n// mckinsey : McKinsey Holdings, Inc.\n// https://www.iana.org/domains/root/db/mckinsey.html\nmckinsey\n\n// med : Medistry LLC\n// https://www.iana.org/domains/root/db/med.html\nmed\n\n// media : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/media.html\nmedia\n\n// meet : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/meet.html\nmeet\n\n// melbourne : The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation\n// https://www.iana.org/domains/root/db/melbourne.html\nmelbourne\n\n// meme : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/meme.html\nmeme\n\n// memorial : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/memorial.html\nmemorial\n\n// men : Exclusive Registry Limited\n// https://www.iana.org/domains/root/db/men.html\nmen\n\n// menu : Dot Menu Registry, LLC\n// https://www.iana.org/domains/root/db/menu.html\nmenu\n\n// merckmsd : MSD Registry Holdings, Inc.\n// https://www.iana.org/domains/root/db/merckmsd.html\nmerckmsd\n\n// miami : Registry Services, LLC\n// https://www.iana.org/domains/root/db/miami.html\nmiami\n\n// microsoft : Microsoft Corporation\n// https://www.iana.org/domains/root/db/microsoft.html\nmicrosoft\n\n// mini : Bayerische Motoren Werke Aktiengesellschaft\n// https://www.iana.org/domains/root/db/mini.html\nmini\n\n// mint : Intuit Administrative Services, Inc.\n// https://www.iana.org/domains/root/db/mint.html\nmint\n\n// mit : Massachusetts Institute of Technology\n// https://www.iana.org/domains/root/db/mit.html\nmit\n\n// mitsubishi : Mitsubishi Corporation\n// https://www.iana.org/domains/root/db/mitsubishi.html\nmitsubishi\n\n// mlb : MLB Advanced Media DH, LLC\n// https://www.iana.org/domains/root/db/mlb.html\nmlb\n\n// mls : The Canadian Real Estate Association\n// https://www.iana.org/domains/root/db/mls.html\nmls\n\n// mma : MMA IARD\n// https://www.iana.org/domains/root/db/mma.html\nmma\n\n// mobile : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/mobile.html\nmobile\n\n// moda : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/moda.html\nmoda\n\n// moe : Interlink Systems Innovation Institute K.K.\n// https://www.iana.org/domains/root/db/moe.html\nmoe\n\n// moi : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/moi.html\nmoi\n\n// mom : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/mom.html\nmom\n\n// monash : Monash University\n// https://www.iana.org/domains/root/db/monash.html\nmonash\n\n// money : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/money.html\nmoney\n\n// monster : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/monster.html\nmonster\n\n// mormon : IRI Domain Management, LLC\n// https://www.iana.org/domains/root/db/mormon.html\nmormon\n\n// mortgage : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/mortgage.html\nmortgage\n\n// moscow : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)\n// https://www.iana.org/domains/root/db/moscow.html\nmoscow\n\n// moto : Motorola Trademark Holdings, LLC\n// https://www.iana.org/domains/root/db/moto.html\nmoto\n\n// motorcycles : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/motorcycles.html\nmotorcycles\n\n// mov : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/mov.html\nmov\n\n// movie : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/movie.html\nmovie\n\n// msd : MSD Registry Holdings, Inc.\n// https://www.iana.org/domains/root/db/msd.html\nmsd\n\n// mtn : MTN Dubai Limited\n// https://www.iana.org/domains/root/db/mtn.html\nmtn\n\n// mtr : MTR Corporation Limited\n// https://www.iana.org/domains/root/db/mtr.html\nmtr\n\n// music : DotMusic Limited\n// https://www.iana.org/domains/root/db/music.html\nmusic\n\n// nab : National Australia Bank Limited\n// https://www.iana.org/domains/root/db/nab.html\nnab\n\n// nagoya : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/nagoya.html\nnagoya\n\n// natura : NATURA COSMÉTICOS S.A.\n// https://www.iana.org/domains/root/db/natura.html\nnatura\n\n// navy : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/navy.html\nnavy\n\n// nba : NBA REGISTRY, LLC\n// https://www.iana.org/domains/root/db/nba.html\nnba\n\n// nec : NEC Corporation\n// https://www.iana.org/domains/root/db/nec.html\nnec\n\n// netbank : COMMONWEALTH BANK OF AUSTRALIA\n// https://www.iana.org/domains/root/db/netbank.html\nnetbank\n\n// netflix : Netflix, Inc.\n// https://www.iana.org/domains/root/db/netflix.html\nnetflix\n\n// network : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/network.html\nnetwork\n\n// neustar : NeuStar, Inc.\n// https://www.iana.org/domains/root/db/neustar.html\nneustar\n\n// new : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/new.html\nnew\n\n// news : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/news.html\nnews\n\n// next : Next plc\n// https://www.iana.org/domains/root/db/next.html\nnext\n\n// nextdirect : Next plc\n// https://www.iana.org/domains/root/db/nextdirect.html\nnextdirect\n\n// nexus : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/nexus.html\nnexus\n\n// nfl : NFL Reg Ops LLC\n// https://www.iana.org/domains/root/db/nfl.html\nnfl\n\n// ngo : Public Interest Registry\n// https://www.iana.org/domains/root/db/ngo.html\nngo\n\n// nhk : Japan Broadcasting Corporation (NHK)\n// https://www.iana.org/domains/root/db/nhk.html\nnhk\n\n// nico : DWANGO Co., Ltd.\n// https://www.iana.org/domains/root/db/nico.html\nnico\n\n// nike : NIKE, Inc.\n// https://www.iana.org/domains/root/db/nike.html\nnike\n\n// nikon : NIKON CORPORATION\n// https://www.iana.org/domains/root/db/nikon.html\nnikon\n\n// ninja : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/ninja.html\nninja\n\n// nissan : NISSAN MOTOR CO., LTD.\n// https://www.iana.org/domains/root/db/nissan.html\nnissan\n\n// nissay : Nippon Life Insurance Company\n// https://www.iana.org/domains/root/db/nissay.html\nnissay\n\n// nokia : Nokia Corporation\n// https://www.iana.org/domains/root/db/nokia.html\nnokia\n\n// norton : NortonLifeLock Inc.\n// https://www.iana.org/domains/root/db/norton.html\nnorton\n\n// now : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/now.html\nnow\n\n// nowruz : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/nowruz.html\nnowruz\n\n// nowtv : Starbucks (HK) Limited\n// https://www.iana.org/domains/root/db/nowtv.html\nnowtv\n\n// nra : NRA Holdings Company, INC.\n// https://www.iana.org/domains/root/db/nra.html\nnra\n\n// nrw : Minds + Machines GmbH\n// https://www.iana.org/domains/root/db/nrw.html\nnrw\n\n// ntt : NIPPON TELEGRAPH AND TELEPHONE CORPORATION\n// https://www.iana.org/domains/root/db/ntt.html\nntt\n\n// nyc : The City of New York by and through the New York City Department of Information Technology & Telecommunications\n// https://www.iana.org/domains/root/db/nyc.html\nnyc\n\n// obi : OBI Group Holding SE & Co. KGaA\n// https://www.iana.org/domains/root/db/obi.html\nobi\n\n// observer : Fegistry, LLC\n// https://www.iana.org/domains/root/db/observer.html\nobserver\n\n// office : Microsoft Corporation\n// https://www.iana.org/domains/root/db/office.html\noffice\n\n// okinawa : BRregistry, Inc.\n// https://www.iana.org/domains/root/db/okinawa.html\nokinawa\n\n// olayan : Competrol (Luxembourg) Sarl\n// https://www.iana.org/domains/root/db/olayan.html\nolayan\n\n// olayangroup : Competrol (Luxembourg) Sarl\n// https://www.iana.org/domains/root/db/olayangroup.html\nolayangroup\n\n// oldnavy : The Gap, Inc.\n// https://www.iana.org/domains/root/db/oldnavy.html\noldnavy\n\n// ollo : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/ollo.html\nollo\n\n// omega : The Swatch Group Ltd\n// https://www.iana.org/domains/root/db/omega.html\nomega\n\n// one : One.com A/S\n// https://www.iana.org/domains/root/db/one.html\none\n\n// ong : Public Interest Registry\n// https://www.iana.org/domains/root/db/ong.html\nong\n\n// onl : iRegistry GmbH\n// https://www.iana.org/domains/root/db/onl.html\nonl\n\n// online : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/online.html\nonline\n\n// ooo : INFIBEAM AVENUES LIMITED\n// https://www.iana.org/domains/root/db/ooo.html\nooo\n\n// open : American Express Travel Related Services Company, Inc.\n// https://www.iana.org/domains/root/db/open.html\nopen\n\n// oracle : Oracle Corporation\n// https://www.iana.org/domains/root/db/oracle.html\noracle\n\n// orange : Orange Brand Services Limited\n// https://www.iana.org/domains/root/db/orange.html\norange\n\n// organic : Identity Digital Limited\n// https://www.iana.org/domains/root/db/organic.html\norganic\n\n// origins : The Estée Lauder Companies Inc.\n// https://www.iana.org/domains/root/db/origins.html\norigins\n\n// osaka : Osaka Registry Co., Ltd.\n// https://www.iana.org/domains/root/db/osaka.html\nosaka\n\n// otsuka : Otsuka Holdings Co., Ltd.\n// https://www.iana.org/domains/root/db/otsuka.html\notsuka\n\n// ott : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/ott.html\nott\n\n// ovh : MédiaBC\n// https://www.iana.org/domains/root/db/ovh.html\novh\n\n// page : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/page.html\npage\n\n// panasonic : Panasonic Holdings Corporation\n// https://www.iana.org/domains/root/db/panasonic.html\npanasonic\n\n// paris : City of Paris\n// https://www.iana.org/domains/root/db/paris.html\nparis\n\n// pars : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/pars.html\npars\n\n// partners : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/partners.html\npartners\n\n// parts : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/parts.html\nparts\n\n// party : Blue Sky Registry Limited\n// https://www.iana.org/domains/root/db/party.html\nparty\n\n// pay : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/pay.html\npay\n\n// pccw : PCCW Enterprises Limited\n// https://www.iana.org/domains/root/db/pccw.html\npccw\n\n// pet : Identity Digital Limited\n// https://www.iana.org/domains/root/db/pet.html\npet\n\n// pfizer : Pfizer Inc.\n// https://www.iana.org/domains/root/db/pfizer.html\npfizer\n\n// pharmacy : National Association of Boards of Pharmacy\n// https://www.iana.org/domains/root/db/pharmacy.html\npharmacy\n\n// phd : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/phd.html\nphd\n\n// philips : Koninklijke Philips N.V.\n// https://www.iana.org/domains/root/db/philips.html\nphilips\n\n// phone : Dish DBS Corporation\n// https://www.iana.org/domains/root/db/phone.html\nphone\n\n// photo : Registry Services, LLC\n// https://www.iana.org/domains/root/db/photo.html\nphoto\n\n// photography : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/photography.html\nphotography\n\n// photos : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/photos.html\nphotos\n\n// physio : PhysBiz Pty Ltd\n// https://www.iana.org/domains/root/db/physio.html\nphysio\n\n// pics : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/pics.html\npics\n\n// pictet : Pictet Europe S.A.\n// https://www.iana.org/domains/root/db/pictet.html\npictet\n\n// pictures : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/pictures.html\npictures\n\n// pid : Top Level Spectrum, Inc.\n// https://www.iana.org/domains/root/db/pid.html\npid\n\n// pin : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/pin.html\npin\n\n// ping : Ping Registry Provider, Inc.\n// https://www.iana.org/domains/root/db/ping.html\nping\n\n// pink : Identity Digital Limited\n// https://www.iana.org/domains/root/db/pink.html\npink\n\n// pioneer : Pioneer Corporation\n// https://www.iana.org/domains/root/db/pioneer.html\npioneer\n\n// pizza : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/pizza.html\npizza\n\n// place : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/place.html\nplace\n\n// play : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/play.html\nplay\n\n// playstation : Sony Interactive Entertainment Inc.\n// https://www.iana.org/domains/root/db/playstation.html\nplaystation\n\n// plumbing : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/plumbing.html\nplumbing\n\n// plus : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/plus.html\nplus\n\n// pnc : PNC Domain Co., LLC\n// https://www.iana.org/domains/root/db/pnc.html\npnc\n\n// pohl : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/pohl.html\npohl\n\n// poker : Identity Digital Limited\n// https://www.iana.org/domains/root/db/poker.html\npoker\n\n// politie : Politie Nederland\n// https://www.iana.org/domains/root/db/politie.html\npolitie\n\n// porn : ICM Registry PN LLC\n// https://www.iana.org/domains/root/db/porn.html\nporn\n\n// pramerica : Prudential Financial, Inc.\n// https://www.iana.org/domains/root/db/pramerica.html\npramerica\n\n// praxi : Praxi S.p.A.\n// https://www.iana.org/domains/root/db/praxi.html\npraxi\n\n// press : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/press.html\npress\n\n// prime : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/prime.html\nprime\n\n// prod : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/prod.html\nprod\n\n// productions : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/productions.html\nproductions\n\n// prof : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/prof.html\nprof\n\n// progressive : Progressive Casualty Insurance Company\n// https://www.iana.org/domains/root/db/progressive.html\nprogressive\n\n// promo : Identity Digital Limited\n// https://www.iana.org/domains/root/db/promo.html\npromo\n\n// properties : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/properties.html\nproperties\n\n// property : Digital Property Infrastructure Limited\n// https://www.iana.org/domains/root/db/property.html\nproperty\n\n// protection : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/protection.html\nprotection\n\n// pru : Prudential Financial, Inc.\n// https://www.iana.org/domains/root/db/pru.html\npru\n\n// prudential : Prudential Financial, Inc.\n// https://www.iana.org/domains/root/db/prudential.html\nprudential\n\n// pub : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/pub.html\npub\n\n// pwc : PricewaterhouseCoopers LLP\n// https://www.iana.org/domains/root/db/pwc.html\npwc\n\n// qpon : dotQPON LLC\n// https://www.iana.org/domains/root/db/qpon.html\nqpon\n\n// quebec : PointQuébec Inc\n// https://www.iana.org/domains/root/db/quebec.html\nquebec\n\n// quest : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/quest.html\nquest\n\n// racing : Premier Registry Limited\n// https://www.iana.org/domains/root/db/racing.html\nracing\n\n// radio : European Broadcasting Union (EBU)\n// https://www.iana.org/domains/root/db/radio.html\nradio\n\n// read : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/read.html\nread\n\n// realestate : dotRealEstate LLC\n// https://www.iana.org/domains/root/db/realestate.html\nrealestate\n\n// realtor : Real Estate Domains LLC\n// https://www.iana.org/domains/root/db/realtor.html\nrealtor\n\n// realty : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/realty.html\nrealty\n\n// recipes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/recipes.html\nrecipes\n\n// red : Identity Digital Limited\n// https://www.iana.org/domains/root/db/red.html\nred\n\n// redstone : Redstone Haute Couture Co., Ltd.\n// https://www.iana.org/domains/root/db/redstone.html\nredstone\n\n// redumbrella : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/redumbrella.html\nredumbrella\n\n// rehab : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/rehab.html\nrehab\n\n// reise : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/reise.html\nreise\n\n// reisen : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/reisen.html\nreisen\n\n// reit : National Association of Real Estate Investment Trusts, Inc.\n// https://www.iana.org/domains/root/db/reit.html\nreit\n\n// reliance : Reliance Industries Limited\n// https://www.iana.org/domains/root/db/reliance.html\nreliance\n\n// ren : ZDNS International Limited\n// https://www.iana.org/domains/root/db/ren.html\nren\n\n// rent : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/rent.html\nrent\n\n// rentals : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/rentals.html\nrentals\n\n// repair : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/repair.html\nrepair\n\n// report : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/report.html\nreport\n\n// republican : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/republican.html\nrepublican\n\n// rest : Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable\n// https://www.iana.org/domains/root/db/rest.html\nrest\n\n// restaurant : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/restaurant.html\nrestaurant\n\n// review : dot Review Limited\n// https://www.iana.org/domains/root/db/review.html\nreview\n\n// reviews : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/reviews.html\nreviews\n\n// rexroth : Robert Bosch GMBH\n// https://www.iana.org/domains/root/db/rexroth.html\nrexroth\n\n// rich : iRegistry GmbH\n// https://www.iana.org/domains/root/db/rich.html\nrich\n\n// richardli : Pacific Century Asset Management (HK) Limited\n// https://www.iana.org/domains/root/db/richardli.html\nrichardli\n\n// ricoh : Ricoh Company, Ltd.\n// https://www.iana.org/domains/root/db/ricoh.html\nricoh\n\n// ril : Reliance Industries Limited\n// https://www.iana.org/domains/root/db/ril.html\nril\n\n// rio : Empresa Municipal de Informática SA - IPLANRIO\n// https://www.iana.org/domains/root/db/rio.html\nrio\n\n// rip : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/rip.html\nrip\n\n// rocher : Ferrero Trading Lux S.A.\n// https://www.iana.org/domains/root/db/rocher.html\nrocher\n\n// rocks : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/rocks.html\nrocks\n\n// rodeo : Registry Services, LLC\n// https://www.iana.org/domains/root/db/rodeo.html\nrodeo\n\n// rogers : Rogers Communications Canada Inc.\n// https://www.iana.org/domains/root/db/rogers.html\nrogers\n\n// room : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/room.html\nroom\n\n// rsvp : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/rsvp.html\nrsvp\n\n// rugby : World Rugby Strategic Developments Limited\n// https://www.iana.org/domains/root/db/rugby.html\nrugby\n\n// ruhr : dotSaarland GmbH\n// https://www.iana.org/domains/root/db/ruhr.html\nruhr\n\n// run : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/run.html\nrun\n\n// rwe : RWE AG\n// https://www.iana.org/domains/root/db/rwe.html\nrwe\n\n// ryukyu : BRregistry, Inc.\n// https://www.iana.org/domains/root/db/ryukyu.html\nryukyu\n\n// saarland : dotSaarland GmbH\n// https://www.iana.org/domains/root/db/saarland.html\nsaarland\n\n// safe : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/safe.html\nsafe\n\n// safety : Safety Registry Services, LLC.\n// https://www.iana.org/domains/root/db/safety.html\nsafety\n\n// sakura : SAKURA Internet Inc.\n// https://www.iana.org/domains/root/db/sakura.html\nsakura\n\n// sale : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/sale.html\nsale\n\n// salon : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/salon.html\nsalon\n\n// samsclub : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/samsclub.html\nsamsclub\n\n// samsung : SAMSUNG SDS CO., LTD\n// https://www.iana.org/domains/root/db/samsung.html\nsamsung\n\n// sandvik : Sandvik AB\n// https://www.iana.org/domains/root/db/sandvik.html\nsandvik\n\n// sandvikcoromant : Sandvik AB\n// https://www.iana.org/domains/root/db/sandvikcoromant.html\nsandvikcoromant\n\n// sanofi : Sanofi\n// https://www.iana.org/domains/root/db/sanofi.html\nsanofi\n\n// sap : SAP AG\n// https://www.iana.org/domains/root/db/sap.html\nsap\n\n// sarl : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/sarl.html\nsarl\n\n// sas : Research IP LLC\n// https://www.iana.org/domains/root/db/sas.html\nsas\n\n// save : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/save.html\nsave\n\n// saxo : Saxo Bank A/S\n// https://www.iana.org/domains/root/db/saxo.html\nsaxo\n\n// sbi : STATE BANK OF INDIA\n// https://www.iana.org/domains/root/db/sbi.html\nsbi\n\n// sbs : ShortDot SA\n// https://www.iana.org/domains/root/db/sbs.html\nsbs\n\n// sca : SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ)\n// https://www.iana.org/domains/root/db/sca.html\nsca\n\n// scb : The Siam Commercial Bank Public Company Limited ("SCB")\n// https://www.iana.org/domains/root/db/scb.html\nscb\n\n// schaeffler : Schaeffler Technologies AG & Co. KG\n// https://www.iana.org/domains/root/db/schaeffler.html\nschaeffler\n\n// schmidt : SCHMIDT GROUPE S.A.S.\n// https://www.iana.org/domains/root/db/schmidt.html\nschmidt\n\n// scholarships : Scholarships.com, LLC\n// https://www.iana.org/domains/root/db/scholarships.html\nscholarships\n\n// school : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/school.html\nschool\n\n// schule : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/schule.html\nschule\n\n// schwarz : Schwarz Domains und Services GmbH & Co. KG\n// https://www.iana.org/domains/root/db/schwarz.html\nschwarz\n\n// science : dot Science Limited\n// https://www.iana.org/domains/root/db/science.html\nscience\n\n// scot : Dot Scot Registry Limited\n// https://www.iana.org/domains/root/db/scot.html\nscot\n\n// search : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/search.html\nsearch\n\n// seat : SEAT, S.A. (Sociedad Unipersonal)\n// https://www.iana.org/domains/root/db/seat.html\nseat\n\n// secure : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/secure.html\nsecure\n\n// security : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/security.html\nsecurity\n\n// seek : Seek Limited\n// https://www.iana.org/domains/root/db/seek.html\nseek\n\n// select : Registry Services, LLC\n// https://www.iana.org/domains/root/db/select.html\nselect\n\n// sener : Sener Ingeniería y Sistemas, S.A.\n// https://www.iana.org/domains/root/db/sener.html\nsener\n\n// services : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/services.html\nservices\n\n// seven : Seven West Media Ltd\n// https://www.iana.org/domains/root/db/seven.html\nseven\n\n// sew : SEW-EURODRIVE GmbH & Co KG\n// https://www.iana.org/domains/root/db/sew.html\nsew\n\n// sex : ICM Registry SX LLC\n// https://www.iana.org/domains/root/db/sex.html\nsex\n\n// sexy : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/sexy.html\nsexy\n\n// sfr : Societe Francaise du Radiotelephone - SFR\n// https://www.iana.org/domains/root/db/sfr.html\nsfr\n\n// shangrila : Shangri‐La International Hotel Management Limited\n// https://www.iana.org/domains/root/db/shangrila.html\nshangrila\n\n// sharp : Sharp Corporation\n// https://www.iana.org/domains/root/db/sharp.html\nsharp\n\n// shaw : Shaw Cablesystems G.P.\n// https://www.iana.org/domains/root/db/shaw.html\nshaw\n\n// shell : Shell Information Technology International Inc\n// https://www.iana.org/domains/root/db/shell.html\nshell\n\n// shia : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/shia.html\nshia\n\n// shiksha : Identity Digital Limited\n// https://www.iana.org/domains/root/db/shiksha.html\nshiksha\n\n// shoes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/shoes.html\nshoes\n\n// shop : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/shop.html\nshop\n\n// shopping : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/shopping.html\nshopping\n\n// shouji : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/shouji.html\nshouji\n\n// show : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/show.html\nshow\n\n// showtime : CBS Domains Inc.\n// https://www.iana.org/domains/root/db/showtime.html\nshowtime\n\n// silk : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/silk.html\nsilk\n\n// sina : Sina Corporation\n// https://www.iana.org/domains/root/db/sina.html\nsina\n\n// singles : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/singles.html\nsingles\n\n// site : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/site.html\nsite\n\n// ski : Identity Digital Limited\n// https://www.iana.org/domains/root/db/ski.html\nski\n\n// skin : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/skin.html\nskin\n\n// sky : Sky International AG\n// https://www.iana.org/domains/root/db/sky.html\nsky\n\n// skype : Microsoft Corporation\n// https://www.iana.org/domains/root/db/skype.html\nskype\n\n// sling : DISH Technologies L.L.C.\n// https://www.iana.org/domains/root/db/sling.html\nsling\n\n// smart : Smart Communications, Inc. (SMART)\n// https://www.iana.org/domains/root/db/smart.html\nsmart\n\n// smile : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/smile.html\nsmile\n\n// sncf : Société Nationale SNCF\n// https://www.iana.org/domains/root/db/sncf.html\nsncf\n\n// soccer : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/soccer.html\nsoccer\n\n// social : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/social.html\nsocial\n\n// softbank : SoftBank Group Corp.\n// https://www.iana.org/domains/root/db/softbank.html\nsoftbank\n\n// software : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/software.html\nsoftware\n\n// sohu : Sohu.com Limited\n// https://www.iana.org/domains/root/db/sohu.html\nsohu\n\n// solar : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/solar.html\nsolar\n\n// solutions : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/solutions.html\nsolutions\n\n// song : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/song.html\nsong\n\n// sony : Sony Corporation\n// https://www.iana.org/domains/root/db/sony.html\nsony\n\n// soy : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/soy.html\nsoy\n\n// spa : Asia Spa and Wellness Promotion Council Limited\n// https://www.iana.org/domains/root/db/spa.html\nspa\n\n// space : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/space.html\nspace\n\n// sport : SportAccord\n// https://www.iana.org/domains/root/db/sport.html\nsport\n\n// spot : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/spot.html\nspot\n\n// srl : InterNetX, Corp\n// https://www.iana.org/domains/root/db/srl.html\nsrl\n\n// stada : STADA Arzneimittel AG\n// https://www.iana.org/domains/root/db/stada.html\nstada\n\n// staples : Staples, Inc.\n// https://www.iana.org/domains/root/db/staples.html\nstaples\n\n// star : Star India Private Limited\n// https://www.iana.org/domains/root/db/star.html\nstar\n\n// statebank : STATE BANK OF INDIA\n// https://www.iana.org/domains/root/db/statebank.html\nstatebank\n\n// statefarm : State Farm Mutual Automobile Insurance Company\n// https://www.iana.org/domains/root/db/statefarm.html\nstatefarm\n\n// stc : Saudi Telecom Company\n// https://www.iana.org/domains/root/db/stc.html\nstc\n\n// stcgroup : Saudi Telecom Company\n// https://www.iana.org/domains/root/db/stcgroup.html\nstcgroup\n\n// stockholm : Stockholms kommun\n// https://www.iana.org/domains/root/db/stockholm.html\nstockholm\n\n// storage : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/storage.html\nstorage\n\n// store : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/store.html\nstore\n\n// stream : dot Stream Limited\n// https://www.iana.org/domains/root/db/stream.html\nstream\n\n// studio : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/studio.html\nstudio\n\n// study : Registry Services, LLC\n// https://www.iana.org/domains/root/db/study.html\nstudy\n\n// style : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/style.html\nstyle\n\n// sucks : Vox Populi Registry Ltd.\n// https://www.iana.org/domains/root/db/sucks.html\nsucks\n\n// supplies : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/supplies.html\nsupplies\n\n// supply : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/supply.html\nsupply\n\n// support : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/support.html\nsupport\n\n// surf : Registry Services, LLC\n// https://www.iana.org/domains/root/db/surf.html\nsurf\n\n// surgery : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/surgery.html\nsurgery\n\n// suzuki : SUZUKI MOTOR CORPORATION\n// https://www.iana.org/domains/root/db/suzuki.html\nsuzuki\n\n// swatch : The Swatch Group Ltd\n// https://www.iana.org/domains/root/db/swatch.html\nswatch\n\n// swiss : Swiss Confederation\n// https://www.iana.org/domains/root/db/swiss.html\nswiss\n\n// sydney : State of New South Wales, Department of Premier and Cabinet\n// https://www.iana.org/domains/root/db/sydney.html\nsydney\n\n// systems : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/systems.html\nsystems\n\n// tab : Tabcorp Holdings Limited\n// https://www.iana.org/domains/root/db/tab.html\ntab\n\n// taipei : Taipei City Government\n// https://www.iana.org/domains/root/db/taipei.html\ntaipei\n\n// talk : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/talk.html\ntalk\n\n// taobao : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/taobao.html\ntaobao\n\n// target : Target Domain Holdings, LLC\n// https://www.iana.org/domains/root/db/target.html\ntarget\n\n// tatamotors : Tata Motors Ltd\n// https://www.iana.org/domains/root/db/tatamotors.html\ntatamotors\n\n// tatar : Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic"\n// https://www.iana.org/domains/root/db/tatar.html\ntatar\n\n// tattoo : Registry Services, LLC\n// https://www.iana.org/domains/root/db/tattoo.html\ntattoo\n\n// tax : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tax.html\ntax\n\n// taxi : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/taxi.html\ntaxi\n\n// tci : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/tci.html\ntci\n\n// tdk : TDK Corporation\n// https://www.iana.org/domains/root/db/tdk.html\ntdk\n\n// team : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/team.html\nteam\n\n// tech : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/tech.html\ntech\n\n// technology : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/technology.html\ntechnology\n\n// temasek : Temasek Holdings (Private) Limited\n// https://www.iana.org/domains/root/db/temasek.html\ntemasek\n\n// tennis : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tennis.html\ntennis\n\n// teva : Teva Pharmaceutical Industries Limited\n// https://www.iana.org/domains/root/db/teva.html\nteva\n\n// thd : Home Depot Product Authority, LLC\n// https://www.iana.org/domains/root/db/thd.html\nthd\n\n// theater : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/theater.html\ntheater\n\n// theatre : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/theatre.html\ntheatre\n\n// tiaa : Teachers Insurance and Annuity Association of America\n// https://www.iana.org/domains/root/db/tiaa.html\ntiaa\n\n// tickets : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/tickets.html\ntickets\n\n// tienda : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tienda.html\ntienda\n\n// tips : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tips.html\ntips\n\n// tires : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tires.html\ntires\n\n// tirol : punkt Tirol GmbH\n// https://www.iana.org/domains/root/db/tirol.html\ntirol\n\n// tjmaxx : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/tjmaxx.html\ntjmaxx\n\n// tjx : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/tjx.html\ntjx\n\n// tkmaxx : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/tkmaxx.html\ntkmaxx\n\n// tmall : Alibaba Group Holding Limited\n// https://www.iana.org/domains/root/db/tmall.html\ntmall\n\n// today : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/today.html\ntoday\n\n// tokyo : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/tokyo.html\ntokyo\n\n// tools : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tools.html\ntools\n\n// top : .TOP Registry\n// https://www.iana.org/domains/root/db/top.html\ntop\n\n// toray : Toray Industries, Inc.\n// https://www.iana.org/domains/root/db/toray.html\ntoray\n\n// toshiba : TOSHIBA Corporation\n// https://www.iana.org/domains/root/db/toshiba.html\ntoshiba\n\n// total : TotalEnergies SE\n// https://www.iana.org/domains/root/db/total.html\ntotal\n\n// tours : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/tours.html\ntours\n\n// town : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/town.html\ntown\n\n// toyota : TOYOTA MOTOR CORPORATION\n// https://www.iana.org/domains/root/db/toyota.html\ntoyota\n\n// toys : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/toys.html\ntoys\n\n// trade : Elite Registry Limited\n// https://www.iana.org/domains/root/db/trade.html\ntrade\n\n// trading : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/trading.html\ntrading\n\n// training : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/training.html\ntraining\n\n// travel : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/travel.html\ntravel\n\n// travelers : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/travelers.html\ntravelers\n\n// travelersinsurance : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/travelersinsurance.html\ntravelersinsurance\n\n// trust : Internet Naming Company LLC\n// https://www.iana.org/domains/root/db/trust.html\ntrust\n\n// trv : Travelers TLD, LLC\n// https://www.iana.org/domains/root/db/trv.html\ntrv\n\n// tube : Latin American Telecom LLC\n// https://www.iana.org/domains/root/db/tube.html\ntube\n\n// tui : TUI AG\n// https://www.iana.org/domains/root/db/tui.html\ntui\n\n// tunes : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/tunes.html\ntunes\n\n// tushu : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/tushu.html\ntushu\n\n// tvs : T V SUNDRAM IYENGAR & SONS LIMITED\n// https://www.iana.org/domains/root/db/tvs.html\ntvs\n\n// ubank : National Australia Bank Limited\n// https://www.iana.org/domains/root/db/ubank.html\nubank\n\n// ubs : UBS AG\n// https://www.iana.org/domains/root/db/ubs.html\nubs\n\n// unicom : China United Network Communications Corporation Limited\n// https://www.iana.org/domains/root/db/unicom.html\nunicom\n\n// university : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/university.html\nuniversity\n\n// uno : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/uno.html\nuno\n\n// uol : UBN INTERNET LTDA.\n// https://www.iana.org/domains/root/db/uol.html\nuol\n\n// ups : UPS Market Driver, Inc.\n// https://www.iana.org/domains/root/db/ups.html\nups\n\n// vacations : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/vacations.html\nvacations\n\n// vana : Lifestyle Domain Holdings, Inc.\n// https://www.iana.org/domains/root/db/vana.html\nvana\n\n// vanguard : The Vanguard Group, Inc.\n// https://www.iana.org/domains/root/db/vanguard.html\nvanguard\n\n// vegas : Dot Vegas, Inc.\n// https://www.iana.org/domains/root/db/vegas.html\nvegas\n\n// ventures : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/ventures.html\nventures\n\n// verisign : VeriSign, Inc.\n// https://www.iana.org/domains/root/db/verisign.html\nverisign\n\n// versicherung : tldbox GmbH\n// https://www.iana.org/domains/root/db/versicherung.html\nversicherung\n\n// vet : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/vet.html\nvet\n\n// viajes : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/viajes.html\nviajes\n\n// video : Dog Beach, LLC\n// https://www.iana.org/domains/root/db/video.html\nvideo\n\n// vig : VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe\n// https://www.iana.org/domains/root/db/vig.html\nvig\n\n// viking : Viking River Cruises (Bermuda) Ltd.\n// https://www.iana.org/domains/root/db/viking.html\nviking\n\n// villas : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/villas.html\nvillas\n\n// vin : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/vin.html\nvin\n\n// vip : Registry Services, LLC\n// https://www.iana.org/domains/root/db/vip.html\nvip\n\n// virgin : Virgin Enterprises Limited\n// https://www.iana.org/domains/root/db/virgin.html\nvirgin\n\n// visa : Visa Worldwide Pte. Limited\n// https://www.iana.org/domains/root/db/visa.html\nvisa\n\n// vision : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/vision.html\nvision\n\n// viva : Saudi Telecom Company\n// https://www.iana.org/domains/root/db/viva.html\nviva\n\n// vivo : Telefonica Brasil S.A.\n// https://www.iana.org/domains/root/db/vivo.html\nvivo\n\n// vlaanderen : DNS.be vzw\n// https://www.iana.org/domains/root/db/vlaanderen.html\nvlaanderen\n\n// vodka : Registry Services, LLC\n// https://www.iana.org/domains/root/db/vodka.html\nvodka\n\n// volkswagen : Volkswagen Group of America Inc.\n// https://www.iana.org/domains/root/db/volkswagen.html\nvolkswagen\n\n// volvo : Volvo Holding Sverige Aktiebolag\n// https://www.iana.org/domains/root/db/volvo.html\nvolvo\n\n// vote : Monolith Registry LLC\n// https://www.iana.org/domains/root/db/vote.html\nvote\n\n// voting : Valuetainment Corp.\n// https://www.iana.org/domains/root/db/voting.html\nvoting\n\n// voto : Monolith Registry LLC\n// https://www.iana.org/domains/root/db/voto.html\nvoto\n\n// voyage : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/voyage.html\nvoyage\n\n// wales : Nominet UK\n// https://www.iana.org/domains/root/db/wales.html\nwales\n\n// walmart : Wal-Mart Stores, Inc.\n// https://www.iana.org/domains/root/db/walmart.html\nwalmart\n\n// walter : Sandvik AB\n// https://www.iana.org/domains/root/db/walter.html\nwalter\n\n// wang : Zodiac Wang Limited\n// https://www.iana.org/domains/root/db/wang.html\nwang\n\n// wanggou : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/wanggou.html\nwanggou\n\n// watch : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/watch.html\nwatch\n\n// watches : Identity Digital Limited\n// https://www.iana.org/domains/root/db/watches.html\nwatches\n\n// weather : International Business Machines Corporation\n// https://www.iana.org/domains/root/db/weather.html\nweather\n\n// weatherchannel : International Business Machines Corporation\n// https://www.iana.org/domains/root/db/weatherchannel.html\nweatherchannel\n\n// webcam : dot Webcam Limited\n// https://www.iana.org/domains/root/db/webcam.html\nwebcam\n\n// weber : Saint-Gobain Weber SA\n// https://www.iana.org/domains/root/db/weber.html\nweber\n\n// website : Radix FZC DMCC\n// https://www.iana.org/domains/root/db/website.html\nwebsite\n\n// wedding : Registry Services, LLC\n// https://www.iana.org/domains/root/db/wedding.html\nwedding\n\n// weibo : Sina Corporation\n// https://www.iana.org/domains/root/db/weibo.html\nweibo\n\n// weir : Weir Group IP Limited\n// https://www.iana.org/domains/root/db/weir.html\nweir\n\n// whoswho : Who\'s Who Registry\n// https://www.iana.org/domains/root/db/whoswho.html\nwhoswho\n\n// wien : punkt.wien GmbH\n// https://www.iana.org/domains/root/db/wien.html\nwien\n\n// wiki : Registry Services, LLC\n// https://www.iana.org/domains/root/db/wiki.html\nwiki\n\n// williamhill : William Hill Organization Limited\n// https://www.iana.org/domains/root/db/williamhill.html\nwilliamhill\n\n// win : First Registry Limited\n// https://www.iana.org/domains/root/db/win.html\nwin\n\n// windows : Microsoft Corporation\n// https://www.iana.org/domains/root/db/windows.html\nwindows\n\n// wine : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/wine.html\nwine\n\n// winners : The TJX Companies, Inc.\n// https://www.iana.org/domains/root/db/winners.html\nwinners\n\n// wme : William Morris Endeavor Entertainment, LLC\n// https://www.iana.org/domains/root/db/wme.html\nwme\n\n// wolterskluwer : Wolters Kluwer N.V.\n// https://www.iana.org/domains/root/db/wolterskluwer.html\nwolterskluwer\n\n// woodside : Woodside Petroleum Limited\n// https://www.iana.org/domains/root/db/woodside.html\nwoodside\n\n// work : Registry Services, LLC\n// https://www.iana.org/domains/root/db/work.html\nwork\n\n// works : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/works.html\nworks\n\n// world : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/world.html\nworld\n\n// wow : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/wow.html\nwow\n\n// wtc : World Trade Centers Association, Inc.\n// https://www.iana.org/domains/root/db/wtc.html\nwtc\n\n// wtf : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/wtf.html\nwtf\n\n// xbox : Microsoft Corporation\n// https://www.iana.org/domains/root/db/xbox.html\nxbox\n\n// xerox : Xerox DNHC LLC\n// https://www.iana.org/domains/root/db/xerox.html\nxerox\n\n// xfinity : Comcast IP Holdings I, LLC\n// https://www.iana.org/domains/root/db/xfinity.html\nxfinity\n\n// xihuan : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/xihuan.html\nxihuan\n\n// xin : Elegant Leader Limited\n// https://www.iana.org/domains/root/db/xin.html\nxin\n\n// xn--11b4c3d : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--11b4c3d.html\nकॉम\n\n// xn--1ck2e1b : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--1ck2e1b.html\nセール\n\n// xn--1qqw23a : Guangzhou YU Wei Information Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--1qqw23a.html\n佛山\n\n// xn--30rr7y : Excellent First Limited\n// https://www.iana.org/domains/root/db/xn--30rr7y.html\n慈善\n\n// xn--3bst00m : Eagle Horizon Limited\n// https://www.iana.org/domains/root/db/xn--3bst00m.html\n集团\n\n// xn--3ds443g : TLD REGISTRY LIMITED OY\n// https://www.iana.org/domains/root/db/xn--3ds443g.html\n在线\n\n// xn--3pxu8k : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--3pxu8k.html\n点看\n\n// xn--42c2d9a : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--42c2d9a.html\nคอม\n\n// xn--45q11c : Zodiac Gemini Ltd\n// https://www.iana.org/domains/root/db/xn--45q11c.html\n八卦\n\n// xn--4gbrim : Helium TLDs Ltd\n// https://www.iana.org/domains/root/db/xn--4gbrim.html\nموقع\n\n// xn--55qw42g : China Organizational Name Administration Center\n// https://www.iana.org/domains/root/db/xn--55qw42g.html\n公益\n\n// xn--55qx5d : China Internet Network Information Center (CNNIC)\n// https://www.iana.org/domains/root/db/xn--55qx5d.html\n公司\n\n// xn--5su34j936bgsg : Shangri‐La International Hotel Management Limited\n// https://www.iana.org/domains/root/db/xn--5su34j936bgsg.html\n香格里拉\n\n// xn--5tzm5g : Global Website TLD Asia Limited\n// https://www.iana.org/domains/root/db/xn--5tzm5g.html\n网站\n\n// xn--6frz82g : Identity Digital Limited\n// https://www.iana.org/domains/root/db/xn--6frz82g.html\n移动\n\n// xn--6qq986b3xl : Tycoon Treasure Limited\n// https://www.iana.org/domains/root/db/xn--6qq986b3xl.html\n我爱你\n\n// xn--80adxhks : Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)\n// https://www.iana.org/domains/root/db/xn--80adxhks.html\nмосква\n\n// xn--80aqecdr1a : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/xn--80aqecdr1a.html\nкатолик\n\n// xn--80asehdb : CORE Association\n// https://www.iana.org/domains/root/db/xn--80asehdb.html\nонлайн\n\n// xn--80aswg : CORE Association\n// https://www.iana.org/domains/root/db/xn--80aswg.html\nсайт\n\n// xn--8y0a063a : China United Network Communications Corporation Limited\n// https://www.iana.org/domains/root/db/xn--8y0a063a.html\n联通\n\n// xn--9dbq2a : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--9dbq2a.html\nקום\n\n// xn--9et52u : RISE VICTORY LIMITED\n// https://www.iana.org/domains/root/db/xn--9et52u.html\n时尚\n\n// xn--9krt00a : Sina Corporation\n// https://www.iana.org/domains/root/db/xn--9krt00a.html\n微博\n\n// xn--b4w605ferd : Temasek Holdings (Private) Limited\n// https://www.iana.org/domains/root/db/xn--b4w605ferd.html\n淡马锡\n\n// xn--bck1b9a5dre4c : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--bck1b9a5dre4c.html\nファッション\n\n// xn--c1avg : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--c1avg.html\nорг\n\n// xn--c2br7g : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--c2br7g.html\nनेट\n\n// xn--cck2b3b : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--cck2b3b.html\nストア\n\n// xn--cckwcxetd : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--cckwcxetd.html\nアマゾン\n\n// xn--cg4bki : SAMSUNG SDS CO., LTD\n// https://www.iana.org/domains/root/db/xn--cg4bki.html\n삼성\n\n// xn--czr694b : Internet DotTrademark Organisation Limited\n// https://www.iana.org/domains/root/db/xn--czr694b.html\n商标\n\n// xn--czrs0t : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--czrs0t.html\n商店\n\n// xn--czru2d : Zodiac Aquarius Limited\n// https://www.iana.org/domains/root/db/xn--czru2d.html\n商城\n\n// xn--d1acj3b : The Foundation for Network Initiatives “The Smart Internet”\n// https://www.iana.org/domains/root/db/xn--d1acj3b.html\nдети\n\n// xn--eckvdtc9d : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--eckvdtc9d.html\nポイント\n\n// xn--efvy88h : Guangzhou YU Wei Information Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--efvy88h.html\n新闻\n\n// xn--fct429k : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--fct429k.html\n家電\n\n// xn--fhbei : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--fhbei.html\nكوم\n\n// xn--fiq228c5hs : TLD REGISTRY LIMITED OY\n// https://www.iana.org/domains/root/db/xn--fiq228c5hs.html\n中文网\n\n// xn--fiq64b : CITIC Group Corporation\n// https://www.iana.org/domains/root/db/xn--fiq64b.html\n中信\n\n// xn--fjq720a : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--fjq720a.html\n娱乐\n\n// xn--flw351e : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/xn--flw351e.html\n谷歌\n\n// xn--fzys8d69uvgm : PCCW Enterprises Limited\n// https://www.iana.org/domains/root/db/xn--fzys8d69uvgm.html\n電訊盈科\n\n// xn--g2xx48c : Nawang Heli(Xiamen) Network Service Co., LTD.\n// https://www.iana.org/domains/root/db/xn--g2xx48c.html\n购物\n\n// xn--gckr3f0f : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--gckr3f0f.html\nクラウド\n\n// xn--gk3at1e : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--gk3at1e.html\n通販\n\n// xn--hxt814e : Zodiac Taurus Limited\n// https://www.iana.org/domains/root/db/xn--hxt814e.html\n网店\n\n// xn--i1b6b1a6a2e : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--i1b6b1a6a2e.html\nसंगठन\n\n// xn--imr513n : Internet DotTrademark Organisation Limited\n// https://www.iana.org/domains/root/db/xn--imr513n.html\n餐厅\n\n// xn--io0a7i : China Internet Network Information Center (CNNIC)\n// https://www.iana.org/domains/root/db/xn--io0a7i.html\n网络\n\n// xn--j1aef : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--j1aef.html\nком\n\n// xn--jlq480n2rg : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--jlq480n2rg.html\n亚马逊\n\n// xn--jvr189m : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--jvr189m.html\n食品\n\n// xn--kcrx77d1x4a : Koninklijke Philips N.V.\n// https://www.iana.org/domains/root/db/xn--kcrx77d1x4a.html\n飞利浦\n\n// xn--kput3i : Beijing RITT-Net Technology Development Co., Ltd\n// https://www.iana.org/domains/root/db/xn--kput3i.html\n手机\n\n// xn--mgba3a3ejt : Aramco Services Company\n// https://www.iana.org/domains/root/db/xn--mgba3a3ejt.html\nارامكو\n\n// xn--mgba7c0bbn0a : Competrol (Luxembourg) Sarl\n// https://www.iana.org/domains/root/db/xn--mgba7c0bbn0a.html\nالعليان\n\n// xn--mgbaakc7dvf : Emirates Telecommunications Corporation (trading as Etisalat)\n// https://www.iana.org/domains/root/db/xn--mgbaakc7dvf.html\nاتصالات\n\n// xn--mgbab2bd : CORE Association\n// https://www.iana.org/domains/root/db/xn--mgbab2bd.html\nبازار\n\n// xn--mgbca7dzdo : Abu Dhabi Systems and Information Centre\n// https://www.iana.org/domains/root/db/xn--mgbca7dzdo.html\nابوظبي\n\n// xn--mgbi4ecexp : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/xn--mgbi4ecexp.html\nكاثوليك\n\n// xn--mgbt3dhd : Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.\n// https://www.iana.org/domains/root/db/xn--mgbt3dhd.html\nهمراه\n\n// xn--mk1bu44c : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--mk1bu44c.html\n닷컴\n\n// xn--mxtq1m : Net-Chinese Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--mxtq1m.html\n政府\n\n// xn--ngbc5azd : International Domain Registry Pty. Ltd.\n// https://www.iana.org/domains/root/db/xn--ngbc5azd.html\nشبكة\n\n// xn--ngbe9e0a : Kuwait Finance House\n// https://www.iana.org/domains/root/db/xn--ngbe9e0a.html\nبيتك\n\n// xn--ngbrx : League of Arab States\n// https://www.iana.org/domains/root/db/xn--ngbrx.html\nعرب\n\n// xn--nqv7f : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--nqv7f.html\n机构\n\n// xn--nqv7fs00ema : Public Interest Registry\n// https://www.iana.org/domains/root/db/xn--nqv7fs00ema.html\n组织机构\n\n// xn--nyqy26a : Stable Tone Limited\n// https://www.iana.org/domains/root/db/xn--nyqy26a.html\n健康\n\n// xn--otu796d : Jiang Yu Liang Cai Technology Company Limited\n// https://www.iana.org/domains/root/db/xn--otu796d.html\n招聘\n\n// xn--p1acf : Rusnames Limited\n// https://www.iana.org/domains/root/db/xn--p1acf.html\nрус\n\n// xn--pssy2u : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--pssy2u.html\n大拿\n\n// xn--q9jyb4c : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/xn--q9jyb4c.html\nみんな\n\n// xn--qcka1pmc : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/xn--qcka1pmc.html\nグーグル\n\n// xn--rhqv96g : Stable Tone Limited\n// https://www.iana.org/domains/root/db/xn--rhqv96g.html\n世界\n\n// xn--rovu88b : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/xn--rovu88b.html\n書籍\n\n// xn--ses554g : KNET Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--ses554g.html\n网址\n\n// xn--t60b56a : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--t60b56a.html\n닷넷\n\n// xn--tckwe : VeriSign Sarl\n// https://www.iana.org/domains/root/db/xn--tckwe.html\nコム\n\n// xn--tiq49xqyj : Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication)\n// https://www.iana.org/domains/root/db/xn--tiq49xqyj.html\n天主教\n\n// xn--unup4y : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--unup4y.html\n游戏\n\n// xn--vermgensberater-ctb : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/xn--vermgensberater-ctb.html\nvermögensberater\n\n// xn--vermgensberatung-pwb : Deutsche Vermögensberatung Aktiengesellschaft DVAG\n// https://www.iana.org/domains/root/db/xn--vermgensberatung-pwb.html\nvermögensberatung\n\n// xn--vhquv : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/xn--vhquv.html\n企业\n\n// xn--vuq861b : Beijing Tele-info Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--vuq861b.html\n信息\n\n// xn--w4r85el8fhu5dnra : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/xn--w4r85el8fhu5dnra.html\n嘉里大酒店\n\n// xn--w4rs40l : Kerry Trading Co. Limited\n// https://www.iana.org/domains/root/db/xn--w4rs40l.html\n嘉里\n\n// xn--xhq521b : Guangzhou YU Wei Information Technology Co., Ltd.\n// https://www.iana.org/domains/root/db/xn--xhq521b.html\n广东\n\n// xn--zfr164b : China Organizational Name Administration Center\n// https://www.iana.org/domains/root/db/xn--zfr164b.html\n政务\n\n// xyz : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/xyz.html\nxyz\n\n// yachts : XYZ.COM LLC\n// https://www.iana.org/domains/root/db/yachts.html\nyachts\n\n// yahoo : Oath Inc.\n// https://www.iana.org/domains/root/db/yahoo.html\nyahoo\n\n// yamaxun : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/yamaxun.html\nyamaxun\n\n// yandex : Yandex Europe B.V.\n// https://www.iana.org/domains/root/db/yandex.html\nyandex\n\n// yodobashi : YODOBASHI CAMERA CO.,LTD.\n// https://www.iana.org/domains/root/db/yodobashi.html\nyodobashi\n\n// yoga : Registry Services, LLC\n// https://www.iana.org/domains/root/db/yoga.html\nyoga\n\n// yokohama : GMO Registry, Inc.\n// https://www.iana.org/domains/root/db/yokohama.html\nyokohama\n\n// you : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/you.html\nyou\n\n// youtube : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/youtube.html\nyoutube\n\n// yun : Beijing Qihu Keji Co., Ltd.\n// https://www.iana.org/domains/root/db/yun.html\nyun\n\n// zappos : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/zappos.html\nzappos\n\n// zara : Industria de Diseño Textil, S.A. (INDITEX, S.A.)\n// https://www.iana.org/domains/root/db/zara.html\nzara\n\n// zero : Amazon Registry Services, Inc.\n// https://www.iana.org/domains/root/db/zero.html\nzero\n\n// zip : Charleston Road Registry Inc.\n// https://www.iana.org/domains/root/db/zip.html\nzip\n\n// zone : Binky Moon, LLC\n// https://www.iana.org/domains/root/db/zone.html\nzone\n\n// zuerich : Kanton Zürich (Canton of Zurich)\n// https://www.iana.org/domains/root/db/zuerich.html\nzuerich\n\n\n// ===END ICANN DOMAINS===\n// ===BEGIN PRIVATE DOMAINS===\n// (Note: these are in alphabetical order by company name)\n\n// 1GB LLC : https://www.1gb.ua/\n// Submitted by 1GB LLC <noc@1gb.com.ua>\ncc.ua\ninf.ua\nltd.ua\n\n// 611coin : https://611project.org/\n611.to\n\n// Aaron Marais\' Gitlab pages: https://lab.aaronleem.co.za\n// Submitted by Aaron Marais <its_me@aaronleem.co.za>\ngraphox.us\n\n// accesso Technology Group, plc. : https://accesso.com/\n// Submitted by accesso Team <accessoecommerce@accesso.com>\n*.devcdnaccesso.com\n\n// Acorn Labs : https://acorn.io\n// Submitted by Craig Jellick <domains@acorn.io>\n*.on-acorn.io\n\n// ActiveTrail: https://www.activetrail.biz/\n// Submitted by Ofer Kalaora <postmaster@activetrail.com>\nactivetrail.biz\n\n// Adobe : https://www.adobe.com/\n// Submitted by Ian Boston <boston@adobe.com> and Lars Trieloff <trieloff@adobe.com>\nadobeaemcloud.com\n*.dev.adobeaemcloud.com\nhlx.live\nadobeaemcloud.net\nhlx.page\nhlx3.page\n\n// Adobe Developer Platform : https://developer.adobe.com\n// Submitted by Jesse MacFadyen<jessem@adobe.com>\nadobeio-static.net\nadobeioruntime.net\n\n// Agnat sp. z o.o. : https://domena.pl\n// Submitted by Przemyslaw Plewa <it-admin@domena.pl>\nbeep.pl\n\n// Airkit : https://www.airkit.com/\n// Submitted by Grant Cooksey <security@airkit.com>\nairkitapps.com\nairkitapps-au.com\nairkitapps.eu\n\n// Aiven: https://aiven.io/\n// Submitted by Etienne Stalmans <security@aiven.io>\naivencloud.com\n\n// Akamai : https://www.akamai.com/\n// Submitted by Akamai Team <publicsuffixlist@akamai.com>\nakadns.net\nakamai.net\nakamai-staging.net\nakamaiedge.net\nakamaiedge-staging.net\nakamaihd.net\nakamaihd-staging.net\nakamaiorigin.net\nakamaiorigin-staging.net\nakamaized.net\nakamaized-staging.net\nedgekey.net\nedgekey-staging.net\nedgesuite.net\nedgesuite-staging.net\n\n// alboto.ca : http://alboto.ca\n// Submitted by Anton Avramov <avramov@alboto.ca>\nbarsy.ca\n\n// Alces Software Ltd : http://alces-software.com\n// Submitted by Mark J. Titorenko <mark.titorenko@alces-software.com>\n*.compute.estate\n*.alces.network\n\n// all-inkl.com : https://all-inkl.com\n// Submitted by Werner Kaltofen <wk@all-inkl.com>\nkasserver.com\n\n// Altervista: https://www.altervista.org\n// Submitted by Carlo Cannas <tech_staff@altervista.it>\naltervista.org\n\n// alwaysdata : https://www.alwaysdata.com\n// Submitted by Cyril <admin@alwaysdata.com>\nalwaysdata.net\n\n// Amaze Software : https://amaze.co\n// Submitted by Domain Admin <domainadmin@amaze.co>\nmyamaze.net\n\n// Amazon : https://www.amazon.com/\n// Submitted by AWS Security <psl-maintainers@amazon.com>\n// Subsections of Amazon/subsidiaries will appear until "concludes" tag\n\n// Amazon CloudFront\n// Submitted by Donavan Miller <donavanm@amazon.com>\n// Reference: 54144616-fd49-4435-8535-19c6a601bdb3\ncloudfront.net\n\n// Amazon EC2\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: 4c38fa71-58ac-4768-99e5-689c1767e537\n*.compute.amazonaws.com\n*.compute-1.amazonaws.com\n*.compute.amazonaws.com.cn\nus-east-1.amazonaws.com\n\n// Amazon S3\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: d068bd97-f0a9-4838-a6d8-954b622ef4ae\ns3.cn-north-1.amazonaws.com.cn\ns3.dualstack.ap-northeast-1.amazonaws.com\ns3.dualstack.ap-northeast-2.amazonaws.com\ns3.ap-northeast-2.amazonaws.com\ns3-website.ap-northeast-2.amazonaws.com\ns3.dualstack.ap-south-1.amazonaws.com\ns3.ap-south-1.amazonaws.com\ns3-website.ap-south-1.amazonaws.com\ns3.dualstack.ap-southeast-1.amazonaws.com\ns3.dualstack.ap-southeast-2.amazonaws.com\ns3.dualstack.ca-central-1.amazonaws.com\ns3.ca-central-1.amazonaws.com\ns3-website.ca-central-1.amazonaws.com\ns3.dualstack.eu-central-1.amazonaws.com\ns3.eu-central-1.amazonaws.com\ns3-website.eu-central-1.amazonaws.com\ns3.dualstack.eu-west-1.amazonaws.com\ns3.dualstack.eu-west-2.amazonaws.com\ns3.eu-west-2.amazonaws.com\ns3-website.eu-west-2.amazonaws.com\ns3.dualstack.eu-west-3.amazonaws.com\ns3.eu-west-3.amazonaws.com\ns3-website.eu-west-3.amazonaws.com\ns3.amazonaws.com\ns3-ap-northeast-1.amazonaws.com\ns3-ap-northeast-2.amazonaws.com\ns3-ap-south-1.amazonaws.com\ns3-ap-southeast-1.amazonaws.com\ns3-ap-southeast-2.amazonaws.com\ns3-ca-central-1.amazonaws.com\ns3-eu-central-1.amazonaws.com\ns3-eu-west-1.amazonaws.com\ns3-eu-west-2.amazonaws.com\ns3-eu-west-3.amazonaws.com\ns3-external-1.amazonaws.com\ns3-fips-us-gov-west-1.amazonaws.com\ns3-sa-east-1.amazonaws.com\ns3-us-east-2.amazonaws.com\ns3-us-gov-west-1.amazonaws.com\ns3-us-west-1.amazonaws.com\ns3-us-west-2.amazonaws.com\ns3-website-ap-northeast-1.amazonaws.com\ns3-website-ap-southeast-1.amazonaws.com\ns3-website-ap-southeast-2.amazonaws.com\ns3-website-eu-west-1.amazonaws.com\ns3-website-sa-east-1.amazonaws.com\ns3-website-us-east-1.amazonaws.com\ns3-website-us-west-1.amazonaws.com\ns3-website-us-west-2.amazonaws.com\ns3.dualstack.sa-east-1.amazonaws.com\ns3.dualstack.us-east-1.amazonaws.com\ns3.dualstack.us-east-2.amazonaws.com\ns3.us-east-2.amazonaws.com\ns3-website.us-east-2.amazonaws.com\n\n// Analytics on AWS\n// Submitted by AWS Security <psl-maintainers@amazon.com>\n// Reference: c02c3a80-f8a0-4fd2-b719-48ea8b7c28de\nanalytics-gateway.ap-northeast-1.amazonaws.com\nanalytics-gateway.eu-west-1.amazonaws.com\nanalytics-gateway.us-east-1.amazonaws.com\nanalytics-gateway.us-east-2.amazonaws.com\nanalytics-gateway.us-west-2.amazonaws.com\n\n// AWS Cloud9\n// Submitted by: AWS Security <psl-maintainers@amazon.com>\n// Reference: 05c44955-977c-4b57-938a-f2af92733f9f\nwebview-assets.aws-cloud9.af-south-1.amazonaws.com\nvfs.cloud9.af-south-1.amazonaws.com\nwebview-assets.cloud9.af-south-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-east-1.amazonaws.com\nvfs.cloud9.ap-east-1.amazonaws.com\nwebview-assets.cloud9.ap-east-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-northeast-1.amazonaws.com\nvfs.cloud9.ap-northeast-1.amazonaws.com\nwebview-assets.cloud9.ap-northeast-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-northeast-2.amazonaws.com\nvfs.cloud9.ap-northeast-2.amazonaws.com\nwebview-assets.cloud9.ap-northeast-2.amazonaws.com\nwebview-assets.aws-cloud9.ap-northeast-3.amazonaws.com\nvfs.cloud9.ap-northeast-3.amazonaws.com\nwebview-assets.cloud9.ap-northeast-3.amazonaws.com\nwebview-assets.aws-cloud9.ap-south-1.amazonaws.com\nvfs.cloud9.ap-south-1.amazonaws.com\nwebview-assets.cloud9.ap-south-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-southeast-1.amazonaws.com\nvfs.cloud9.ap-southeast-1.amazonaws.com\nwebview-assets.cloud9.ap-southeast-1.amazonaws.com\nwebview-assets.aws-cloud9.ap-southeast-2.amazonaws.com\nvfs.cloud9.ap-southeast-2.amazonaws.com\nwebview-assets.cloud9.ap-southeast-2.amazonaws.com\nwebview-assets.aws-cloud9.ca-central-1.amazonaws.com\nvfs.cloud9.ca-central-1.amazonaws.com\nwebview-assets.cloud9.ca-central-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-central-1.amazonaws.com\nvfs.cloud9.eu-central-1.amazonaws.com\nwebview-assets.cloud9.eu-central-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-north-1.amazonaws.com\nvfs.cloud9.eu-north-1.amazonaws.com\nwebview-assets.cloud9.eu-north-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-south-1.amazonaws.com\nvfs.cloud9.eu-south-1.amazonaws.com\nwebview-assets.cloud9.eu-south-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-west-1.amazonaws.com\nvfs.cloud9.eu-west-1.amazonaws.com\nwebview-assets.cloud9.eu-west-1.amazonaws.com\nwebview-assets.aws-cloud9.eu-west-2.amazonaws.com\nvfs.cloud9.eu-west-2.amazonaws.com\nwebview-assets.cloud9.eu-west-2.amazonaws.com\nwebview-assets.aws-cloud9.eu-west-3.amazonaws.com\nvfs.cloud9.eu-west-3.amazonaws.com\nwebview-assets.cloud9.eu-west-3.amazonaws.com\nwebview-assets.aws-cloud9.me-south-1.amazonaws.com\nvfs.cloud9.me-south-1.amazonaws.com\nwebview-assets.cloud9.me-south-1.amazonaws.com\nwebview-assets.aws-cloud9.sa-east-1.amazonaws.com\nvfs.cloud9.sa-east-1.amazonaws.com\nwebview-assets.cloud9.sa-east-1.amazonaws.com\nwebview-assets.aws-cloud9.us-east-1.amazonaws.com\nvfs.cloud9.us-east-1.amazonaws.com\nwebview-assets.cloud9.us-east-1.amazonaws.com\nwebview-assets.aws-cloud9.us-east-2.amazonaws.com\nvfs.cloud9.us-east-2.amazonaws.com\nwebview-assets.cloud9.us-east-2.amazonaws.com\nwebview-assets.aws-cloud9.us-west-1.amazonaws.com\nvfs.cloud9.us-west-1.amazonaws.com\nwebview-assets.cloud9.us-west-1.amazonaws.com\nwebview-assets.aws-cloud9.us-west-2.amazonaws.com\nvfs.cloud9.us-west-2.amazonaws.com\nwebview-assets.cloud9.us-west-2.amazonaws.com\n\n// AWS Elastic Beanstalk\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: aa202394-43a0-4857-b245-8db04549137e\ncn-north-1.eb.amazonaws.com.cn\ncn-northwest-1.eb.amazonaws.com.cn\nelasticbeanstalk.com\nap-northeast-1.elasticbeanstalk.com\nap-northeast-2.elasticbeanstalk.com\nap-northeast-3.elasticbeanstalk.com\nap-south-1.elasticbeanstalk.com\nap-southeast-1.elasticbeanstalk.com\nap-southeast-2.elasticbeanstalk.com\nca-central-1.elasticbeanstalk.com\neu-central-1.elasticbeanstalk.com\neu-west-1.elasticbeanstalk.com\neu-west-2.elasticbeanstalk.com\neu-west-3.elasticbeanstalk.com\nsa-east-1.elasticbeanstalk.com\nus-east-1.elasticbeanstalk.com\nus-east-2.elasticbeanstalk.com\nus-gov-west-1.elasticbeanstalk.com\nus-west-1.elasticbeanstalk.com\nus-west-2.elasticbeanstalk.com\n\n// (AWS) Elastic Load Balancing\n// Submitted by Luke Wells <psl-maintainers@amazon.com>\n// Reference: 12a3d528-1bac-4433-a359-a395867ffed2\n*.elb.amazonaws.com.cn\n*.elb.amazonaws.com\n\n// AWS Global Accelerator\n// Submitted by Daniel Massaguer <psl-maintainers@amazon.com>\n// Reference: d916759d-a08b-4241-b536-4db887383a6a\nawsglobalaccelerator.com\n\n// eero\n// Submitted by Yue Kang <eero-dynamic-dns@amazon.com>\n// Reference: 264afe70-f62c-4c02-8ab9-b5281ed24461\neero.online\neero-stage.online\n\n// concludes Amazon\n\n// Amune : https://amune.org/\n// Submitted by Team Amune <cert@amune.org>\nt3l3p0rt.net\ntele.amune.org\n\n// Apigee : https://apigee.com/\n// Submitted by Apigee Security Team <security@apigee.com>\napigee.io\n\n// Apphud : https://apphud.com\n// Submitted by Alexander Selivanov <alex@apphud.com>\nsiiites.com\n\n// Appspace : https://www.appspace.com\n// Submitted by Appspace Security Team <security@appspace.com>\nappspacehosted.com\nappspaceusercontent.com\n\n// Appudo UG (haftungsbeschränkt) : https://www.appudo.com\n// Submitted by Alexander Hochbaum <admin@appudo.com>\nappudo.net\n\n// Aptible : https://www.aptible.com/\n// Submitted by Thomas Orozco <thomas@aptible.com>\non-aptible.com\n\n// ASEINet : https://www.aseinet.com/\n// Submitted by Asei SEKIGUCHI <mail@aseinet.com>\nuser.aseinet.ne.jp\ngv.vc\nd.gv.vc\n\n// Asociación Amigos de la Informática "Euskalamiga" : http://encounter.eus/\n// Submitted by Hector Martin <marcan@euskalencounter.org>\nuser.party.eus\n\n// Association potager.org : https://potager.org/\n// Submitted by Lunar <jardiniers@potager.org>\npimienta.org\npoivron.org\npotager.org\nsweetpepper.org\n\n// ASUSTOR Inc. : http://www.asustor.com\n// Submitted by Vincent Tseng <vincenttseng@asustor.com>\nmyasustor.com\n\n// Atlassian : https://atlassian.com\n// Submitted by Sam Smyth <devloop@atlassian.com>\ncdn.prod.atlassian-dev.net\n\n// Authentick UG (haftungsbeschränkt) : https://authentick.net\n// Submitted by Lukas Reschke <lukas@authentick.net>\ntranslated.page\n\n// Autocode : https://autocode.com\n// Submitted by Jacob Lee <jacob@autocode.com>\nautocode.dev\n\n// AVM : https://avm.de\n// Submitted by Andreas Weise <a.weise@avm.de>\nmyfritz.net\n\n// AVStack Pte. Ltd. : https://avstack.io\n// Submitted by Jasper Hugo <jasper@avstack.io>\nonavstack.net\n\n// AW AdvisorWebsites.com Software Inc : https://advisorwebsites.com\n// Submitted by James Kennedy <domains@advisorwebsites.com>\n*.awdev.ca\n*.advisor.ws\n\n// AZ.pl sp. z.o.o: https://az.pl\n// Submitted by Krzysztof Wolski <krzysztof.wolski@home.eu>\necommerce-shop.pl\n\n// b-data GmbH : https://www.b-data.io\n// Submitted by Olivier Benz <olivier.benz@b-data.ch>\nb-data.io\n\n// backplane : https://www.backplane.io\n// Submitted by Anthony Voutas <anthony@backplane.io>\nbackplaneapp.io\n\n// Balena : https://www.balena.io\n// Submitted by Petros Angelatos <petrosagg@balena.io>\nbalena-devices.com\n\n// University of Banja Luka : https://unibl.org\n// Domains for Republic of Srpska administrative entity.\n// Submitted by Marko Ivanovic <kormang@hotmail.rs>\nrs.ba\n\n// Banzai Cloud\n// Submitted by Janos Matyas <info@banzaicloud.com>\n*.banzai.cloud\napp.banzaicloud.io\n*.backyards.banzaicloud.io\n\n// BASE, Inc. : https://binc.jp\n// Submitted by Yuya NAGASAWA <public-suffix-list@binc.jp>\nbase.ec\nofficial.ec\nbuyshop.jp\nfashionstore.jp\nhandcrafted.jp\nkawaiishop.jp\nsupersale.jp\ntheshop.jp\nshopselect.net\nbase.shop\n\n// BeagleBoard.org Foundation : https://beagleboard.org\n// Submitted by Jason Kridner <jkridner@beagleboard.org>\nbeagleboard.io\n\n// Beget Ltd\n// Submitted by Lev Nekrasov <lnekrasov@beget.com>\n*.beget.app\n\n// BetaInABox\n// Submitted by Adrian <adrian@betainabox.com>\nbetainabox.com\n\n// BinaryLane : http://www.binarylane.com\n// Submitted by Nathan O\'Sullivan <nathan@mammoth.com.au>\nbnr.la\n\n// Bitbucket : http://bitbucket.org\n// Submitted by Andy Ortlieb <aortlieb@atlassian.com>\nbitbucket.io\n\n// Blackbaud, Inc. : https://www.blackbaud.com\n// Submitted by Paul Crowder <paul.crowder@blackbaud.com>\nblackbaudcdn.net\n\n// Blatech : http://www.blatech.net\n// Submitted by Luke Bratch <luke@bratch.co.uk>\nof.je\n\n// Blue Bite, LLC : https://bluebite.com\n// Submitted by Joshua Weiss <admin.engineering@bluebite.com>\nbluebite.io\n\n// Boomla : https://boomla.com\n// Submitted by Tibor Halter <thalter@boomla.com>\nboomla.net\n\n// Boutir : https://www.boutir.com\n// Submitted by Eric Ng Ka Ka <ngkaka@boutir.com>\nboutir.com\n\n// Boxfuse : https://boxfuse.com\n// Submitted by Axel Fontaine <axel@boxfuse.com>\nboxfuse.io\n\n// bplaced : https://www.bplaced.net/\n// Submitted by Miroslav Bozic <security@bplaced.net>\nsquare7.ch\nbplaced.com\nbplaced.de\nsquare7.de\nbplaced.net\nsquare7.net\n\n// Brendly : https://brendly.rs\n// Submitted by Dusan Radovanovic <dusan.radovanovic@brendly.rs>\nshop.brendly.rs\n\n// BrowserSafetyMark\n// Submitted by Dave Tharp <browsersafetymark.io@quicinc.com>\nbrowsersafetymark.io\n\n// Bytemark Hosting : https://www.bytemark.co.uk\n// Submitted by Paul Cammish <paul.cammish@bytemark.co.uk>\nuk0.bigv.io\ndh.bytemark.co.uk\nvm.bytemark.co.uk\n\n// Caf.js Labs LLC : https://www.cafjs.com\n// Submitted by Antonio Lain <antlai@cafjs.com>\ncafjs.com\n\n// callidomus : https://www.callidomus.com/\n// Submitted by Marcus Popp <admin@callidomus.com>\nmycd.eu\n\n// Canva Pty Ltd : https://canva.com/\n// Submitted by Joel Aquilina <publicsuffixlist@canva.com>\ncanva-apps.cn\ncanva-apps.com\n\n// Carrd : https://carrd.co\n// Submitted by AJ <aj@carrd.co>\ndrr.ac\nuwu.ai\ncarrd.co\ncrd.co\nju.mp\n\n// CentralNic : http://www.centralnic.com/names/domains\n// Submitted by registry <gavin.brown@centralnic.com>\nae.org\nbr.com\ncn.com\ncom.de\ncom.se\nde.com\neu.com\ngb.net\nhu.net\njp.net\njpn.com\nmex.com\nru.com\nsa.com\nse.net\nuk.com\nuk.net\nus.com\nza.bz\nza.com\n\n// No longer operated by CentralNic, these entries should be adopted and/or removed by current operators\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nar.com\nhu.com\nkr.com\nno.com\nqc.com\nuy.com\n\n// Africa.com Web Solutions Ltd : https://registry.africa.com\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nafrica.com\n\n// iDOT Services Limited : http://www.domain.gr.com\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\ngr.com\n\n// Radix FZC : http://domains.in.net\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nin.net\nweb.in\n\n// US REGISTRY LLC : http://us.org\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nus.org\n\n// co.com Registry, LLC : https://registry.co.com\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nco.com\n\n// Roar Domains LLC : https://roar.basketball/\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\naus.basketball\nnz.basketball\n\n// BRS Media : https://brsmedia.com/\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nradio.am\nradio.fm\n\n// c.la : http://www.c.la/\nc.la\n\n// certmgr.org : https://certmgr.org\n// Submitted by B. Blechschmidt <hostmaster@certmgr.org>\ncertmgr.org\n\n// Cityhost LLC : https://cityhost.ua\n// Submitted by Maksym Rivtin <support@cityhost.net.ua>\ncx.ua\n\n// Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/\n// Submitted by Rishabh Nambiar & Michael Brown <team@discourse.org>\ndiscourse.group\ndiscourse.team\n\n// Clever Cloud : https://www.clever-cloud.com/\n// Submitted by Quentin Adam <noc@clever-cloud.com>\ncleverapps.io\n\n// Clerk : https://www.clerk.dev\n// Submitted by Colin Sidoti <systems@clerk.dev>\nclerk.app\nclerkstage.app\n*.lcl.dev\n*.lclstage.dev\n*.stg.dev\n*.stgstage.dev\n\n// ClickRising : https://clickrising.com/\n// Submitted by Umut Gumeli <infrastructure-publicsuffixlist@clickrising.com>\nclickrising.net\n\n// Cloud66 : https://www.cloud66.com/\n// Submitted by Khash Sajadi <khash@cloud66.com>\nc66.me\ncloud66.ws\ncloud66.zone\n\n// CloudAccess.net : https://www.cloudaccess.net/\n// Submitted by Pawel Panek <noc@cloudaccess.net>\njdevcloud.com\nwpdevcloud.com\ncloudaccess.host\nfreesite.host\ncloudaccess.net\n\n// cloudControl : https://www.cloudcontrol.com/\n// Submitted by Tobias Wilken <tw@cloudcontrol.com>\ncloudcontrolled.com\ncloudcontrolapp.com\n\n// Cloudera, Inc. : https://www.cloudera.com/\n// Submitted by Kedarnath Waikar <security@cloudera.com>\n*.cloudera.site\n\n// Cloudflare, Inc. : https://www.cloudflare.com/\n// Submitted by Cloudflare Team <publicsuffixlist@cloudflare.com>\ncf-ipfs.com\ncloudflare-ipfs.com\ntrycloudflare.com\npages.dev\nr2.dev\nworkers.dev\n\n// Clovyr : https://clovyr.io\n// Submitted by Patrick Nielsen <patrick@clovyr.io>\nwnext.app\n\n// co.ca : http://registry.co.ca/\nco.ca\n\n// Co & Co : https://co-co.nl/\n// Submitted by Govert Versluis <govert@co-co.nl>\n*.otap.co\n\n// i-registry s.r.o. : http://www.i-registry.cz/\n// Submitted by Martin Semrad <semrad@i-registry.cz>\nco.cz\n\n// CDN77.com : http://www.cdn77.com\n// Submitted by Jan Krpes <jan.krpes@cdn77.com>\nc.cdn77.org\ncdn77-ssl.net\nr.cdn77.net\nrsc.cdn77.org\nssl.origin.cdn77-secure.org\n\n// Cloud DNS Ltd : http://www.cloudns.net\n// Submitted by Aleksander Hristov <noc@cloudns.net>\ncloudns.asia\ncloudns.biz\ncloudns.club\ncloudns.cc\ncloudns.eu\ncloudns.in\ncloudns.info\ncloudns.org\ncloudns.pro\ncloudns.pw\ncloudns.us\n\n// CNPY : https://cnpy.gdn\n// Submitted by Angelo Gladding <angelo@lahacker.net>\ncnpy.gdn\n\n// Codeberg e. V. : https://codeberg.org\n// Submitted by Moritz Marquardt <git@momar.de>\ncodeberg.page\n\n// CoDNS B.V.\nco.nl\nco.no\n\n// Combell.com : https://www.combell.com\n// Submitted by Thomas Wouters <thomas.wouters@combellgroup.com>\nwebhosting.be\nhosting-cluster.nl\n\n// Coordination Center for TLD RU and XN--P1AI : https://cctld.ru/en/domains/domens_ru/reserved/\n// Submitted by George Georgievsky <gug@cctld.ru>\nac.ru\nedu.ru\ngov.ru\nint.ru\nmil.ru\ntest.ru\n\n// COSIMO GmbH : http://www.cosimo.de\n// Submitted by Rene Marticke <rmarticke@cosimo.de>\ndyn.cosidns.de\ndynamisches-dns.de\ndnsupdater.de\ninternet-dns.de\nl-o-g-i-n.de\ndynamic-dns.info\nfeste-ip.net\nknx-server.net\nstatic-access.net\n\n// Craynic, s.r.o. : http://www.craynic.com/\n// Submitted by Ales Krajnik <ales.krajnik@craynic.com>\nrealm.cz\n\n// Cryptonomic : https://cryptonomic.net/\n// Submitted by Andrew Cady <public-suffix-list@cryptonomic.net>\n*.cryptonomic.net\n\n// Cupcake : https://cupcake.io/\n// Submitted by Jonathan Rudenberg <jonathan@cupcake.io>\ncupcake.is\n\n// Curv UG : https://curv-labs.de/\n// Submitted by Marvin Wiesner <Marvin@curv-labs.de>\ncurv.dev\n\n// Customer OCI - Oracle Dyn https://cloud.oracle.com/home https://dyn.com/dns/\n// Submitted by Gregory Drake <support@dyn.com>\n// Note: This is intended to also include customer-oci.com due to wildcards implicitly including the current label\n*.customer-oci.com\n*.oci.customer-oci.com\n*.ocp.customer-oci.com\n*.ocs.customer-oci.com\n\n// cyon GmbH : https://www.cyon.ch/\n// Submitted by Dominic Luechinger <dol@cyon.ch>\ncyon.link\ncyon.site\n\n// Danger Science Group: https://dangerscience.com/\n// Submitted by Skylar MacDonald <skylar@dangerscience.com>\nfnwk.site\nfolionetwork.site\nplatform0.app\n\n// Daplie, Inc : https://daplie.com\n// Submitted by AJ ONeal <aj@daplie.com>\ndaplie.me\nlocalhost.daplie.me\n\n// Datto, Inc. : https://www.datto.com/\n// Submitted by Philipp Heckel <ph@datto.com>\ndattolocal.com\ndattorelay.com\ndattoweb.com\nmydatto.com\ndattolocal.net\nmydatto.net\n\n// Dansk.net : http://www.dansk.net/\n// Submitted by Anani Voule <digital@digital.co.dk>\nbiz.dk\nco.dk\nfirm.dk\nreg.dk\nstore.dk\n\n// dappnode.io : https://dappnode.io/\n// Submitted by Abel Boldu / DAppNode Team <community@dappnode.io>\ndyndns.dappnode.io\n\n// dapps.earth : https://dapps.earth/\n// Submitted by Daniil Burdakov <icqkill@gmail.com>\n*.dapps.earth\n*.bzz.dapps.earth\n\n// Dark, Inc. : https://darklang.com\n// Submitted by Paul Biggar <ops@darklang.com>\nbuiltwithdark.com\n\n// DataDetect, LLC. : https://datadetect.com\n// Submitted by Andrew Banchich <abanchich@sceven.com>\ndemo.datadetect.com\ninstance.datadetect.com\n\n// Datawire, Inc : https://www.datawire.io\n// Submitted by Richard Li <secalert@datawire.io>\nedgestack.me\n\n// DDNS5 : https://ddns5.com\n// Submitted by Cameron Elliott <cameron@cameronelliott.com>\nddns5.com\n\n// Debian : https://www.debian.org/\n// Submitted by Peter Palfrader / Debian Sysadmin Team <dsa-publicsuffixlist@debian.org>\ndebian.net\n\n// Deno Land Inc : https://deno.com/\n// Submitted by Luca Casonato <hostmaster@deno.com>\ndeno.dev\ndeno-staging.dev\n\n// deSEC : https://desec.io/\n// Submitted by Peter Thomassen <peter@desec.io>\ndedyn.io\n\n// Deta: https://www.deta.sh/\n// Submitted by Aavash Shrestha <aavash@deta.sh>\ndeta.app\ndeta.dev\n\n// Diher Solutions : https://diher.solutions\n// Submitted by Didi Hermawan <mail@diher.solutions>\n*.rss.my.id\n*.diher.solutions\n\n// Discord Inc : https://discord.com\n// Submitted by Sahn Lam <slam@discordapp.com>\ndiscordsays.com\ndiscordsez.com\n\n// DNS Africa Ltd https://dns.business\n// Submitted by Calvin Browne <calvin@dns.business>\njozi.biz\n\n// DNShome : https://www.dnshome.de/\n// Submitted by Norbert Auler <mail@dnshome.de>\ndnshome.de\n\n// DotArai : https://www.dotarai.com/\n// Submitted by Atsadawat Netcharadsang <atsadawat@dotarai.co.th>\nonline.th\nshop.th\n\n// DrayTek Corp. : https://www.draytek.com/\n// Submitted by Paul Fang <mis@draytek.com>\ndrayddns.com\n\n// DreamCommerce : https://shoper.pl/\n// Submitted by Konrad Kotarba <konrad.kotarba@dreamcommerce.com>\nshoparena.pl\n\n// DreamHost : http://www.dreamhost.com/\n// Submitted by Andrew Farmer <andrew.farmer@dreamhost.com>\ndreamhosters.com\n\n// Drobo : http://www.drobo.com/\n// Submitted by Ricardo Padilha <rpadilha@drobo.com>\nmydrobo.com\n\n// Drud Holdings, LLC. : https://www.drud.com/\n// Submitted by Kevin Bridges <kevin@drud.com>\ndrud.io\ndrud.us\n\n// DuckDNS : http://www.duckdns.org/\n// Submitted by Richard Harper <richard@duckdns.org>\nduckdns.org\n\n// Bip : https://bip.sh\n// Submitted by Joel Kennedy <joel@bip.sh>\nbip.sh\n\n// bitbridge.net : Submitted by Craig Welch, abeliidev@gmail.com\nbitbridge.net\n\n// dy.fi : http://dy.fi/\n// Submitted by Heikki Hannikainen <hessu@hes.iki.fi>\ndy.fi\ntunk.org\n\n// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/\ndyndns-at-home.com\ndyndns-at-work.com\ndyndns-blog.com\ndyndns-free.com\ndyndns-home.com\ndyndns-ip.com\ndyndns-mail.com\ndyndns-office.com\ndyndns-pics.com\ndyndns-remote.com\ndyndns-server.com\ndyndns-web.com\ndyndns-wiki.com\ndyndns-work.com\ndyndns.biz\ndyndns.info\ndyndns.org\ndyndns.tv\nat-band-camp.net\nath.cx\nbarrel-of-knowledge.info\nbarrell-of-knowledge.info\nbetter-than.tv\nblogdns.com\nblogdns.net\nblogdns.org\nblogsite.org\nboldlygoingnowhere.org\nbroke-it.net\nbuyshouses.net\ncechire.com\ndnsalias.com\ndnsalias.net\ndnsalias.org\ndnsdojo.com\ndnsdojo.net\ndnsdojo.org\ndoes-it.net\ndoesntexist.com\ndoesntexist.org\ndontexist.com\ndontexist.net\ndontexist.org\ndoomdns.com\ndoomdns.org\ndvrdns.org\ndyn-o-saur.com\ndynalias.com\ndynalias.net\ndynalias.org\ndynathome.net\ndyndns.ws\nendofinternet.net\nendofinternet.org\nendoftheinternet.org\nest-a-la-maison.com\nest-a-la-masion.com\nest-le-patron.com\nest-mon-blogueur.com\nfor-better.biz\nfor-more.biz\nfor-our.info\nfor-some.biz\nfor-the.biz\nforgot.her.name\nforgot.his.name\nfrom-ak.com\nfrom-al.com\nfrom-ar.com\nfrom-az.net\nfrom-ca.com\nfrom-co.net\nfrom-ct.com\nfrom-dc.com\nfrom-de.com\nfrom-fl.com\nfrom-ga.com\nfrom-hi.com\nfrom-ia.com\nfrom-id.com\nfrom-il.com\nfrom-in.com\nfrom-ks.com\nfrom-ky.com\nfrom-la.net\nfrom-ma.com\nfrom-md.com\nfrom-me.org\nfrom-mi.com\nfrom-mn.com\nfrom-mo.com\nfrom-ms.com\nfrom-mt.com\nfrom-nc.com\nfrom-nd.com\nfrom-ne.com\nfrom-nh.com\nfrom-nj.com\nfrom-nm.com\nfrom-nv.com\nfrom-ny.net\nfrom-oh.com\nfrom-ok.com\nfrom-or.com\nfrom-pa.com\nfrom-pr.com\nfrom-ri.com\nfrom-sc.com\nfrom-sd.com\nfrom-tn.com\nfrom-tx.com\nfrom-ut.com\nfrom-va.com\nfrom-vt.com\nfrom-wa.com\nfrom-wi.com\nfrom-wv.com\nfrom-wy.com\nftpaccess.cc\nfuettertdasnetz.de\ngame-host.org\ngame-server.cc\ngetmyip.com\ngets-it.net\ngo.dyndns.org\ngotdns.com\ngotdns.org\ngroks-the.info\ngroks-this.info\nham-radio-op.net\nhere-for-more.info\nhobby-site.com\nhobby-site.org\nhome.dyndns.org\nhomedns.org\nhomeftp.net\nhomeftp.org\nhomeip.net\nhomelinux.com\nhomelinux.net\nhomelinux.org\nhomeunix.com\nhomeunix.net\nhomeunix.org\niamallama.com\nin-the-band.net\nis-a-anarchist.com\nis-a-blogger.com\nis-a-bookkeeper.com\nis-a-bruinsfan.org\nis-a-bulls-fan.com\nis-a-candidate.org\nis-a-caterer.com\nis-a-celticsfan.org\nis-a-chef.com\nis-a-chef.net\nis-a-chef.org\nis-a-conservative.com\nis-a-cpa.com\nis-a-cubicle-slave.com\nis-a-democrat.com\nis-a-designer.com\nis-a-doctor.com\nis-a-financialadvisor.com\nis-a-geek.com\nis-a-geek.net\nis-a-geek.org\nis-a-green.com\nis-a-guru.com\nis-a-hard-worker.com\nis-a-hunter.com\nis-a-knight.org\nis-a-landscaper.com\nis-a-lawyer.com\nis-a-liberal.com\nis-a-libertarian.com\nis-a-linux-user.org\nis-a-llama.com\nis-a-musician.com\nis-a-nascarfan.com\nis-a-nurse.com\nis-a-painter.com\nis-a-patsfan.org\nis-a-personaltrainer.com\nis-a-photographer.com\nis-a-player.com\nis-a-republican.com\nis-a-rockstar.com\nis-a-socialist.com\nis-a-soxfan.org\nis-a-student.com\nis-a-teacher.com\nis-a-techie.com\nis-a-therapist.com\nis-an-accountant.com\nis-an-actor.com\nis-an-actress.com\nis-an-anarchist.com\nis-an-artist.com\nis-an-engineer.com\nis-an-entertainer.com\nis-by.us\nis-certified.com\nis-found.org\nis-gone.com\nis-into-anime.com\nis-into-cars.com\nis-into-cartoons.com\nis-into-games.com\nis-leet.com\nis-lost.org\nis-not-certified.com\nis-saved.org\nis-slick.com\nis-uberleet.com\nis-very-bad.org\nis-very-evil.org\nis-very-good.org\nis-very-nice.org\nis-very-sweet.org\nis-with-theband.com\nisa-geek.com\nisa-geek.net\nisa-geek.org\nisa-hockeynut.com\nissmarterthanyou.com\nisteingeek.de\nistmein.de\nkicks-ass.net\nkicks-ass.org\nknowsitall.info\nland-4-sale.us\nlebtimnetz.de\nleitungsen.de\nlikes-pie.com\nlikescandy.com\nmerseine.nu\nmine.nu\nmisconfused.org\nmypets.ws\nmyphotos.cc\nneat-url.com\noffice-on-the.net\non-the-web.tv\npodzone.net\npodzone.org\nreadmyblog.org\nsaves-the-whales.com\nscrapper-site.net\nscrapping.cc\nselfip.biz\nselfip.com\nselfip.info\nselfip.net\nselfip.org\nsells-for-less.com\nsells-for-u.com\nsells-it.net\nsellsyourhome.org\nservebbs.com\nservebbs.net\nservebbs.org\nserveftp.net\nserveftp.org\nservegame.org\nshacknet.nu\nsimple-url.com\nspace-to-rent.com\nstuff-4-sale.org\nstuff-4-sale.us\nteaches-yoga.com\nthruhere.net\ntraeumtgerade.de\nwebhop.biz\nwebhop.info\nwebhop.net\nwebhop.org\nworse-than.tv\nwritesthisblog.com\n\n// ddnss.de : https://www.ddnss.de/\n// Submitted by Robert Niedziela <webmaster@ddnss.de>\nddnss.de\ndyn.ddnss.de\ndyndns.ddnss.de\ndyndns1.de\ndyn-ip24.de\nhome-webserver.de\ndyn.home-webserver.de\nmyhome-server.de\nddnss.org\n\n// Definima : http://www.definima.com/\n// Submitted by Maxence Bitterli <maxence@definima.com>\ndefinima.net\ndefinima.io\n\n// DigitalOcean App Platform : https://www.digitalocean.com/products/app-platform/\n// Submitted by Braxton Huggins <psl-maintainers@digitalocean.com>\nondigitalocean.app\n\n// DigitalOcean Spaces : https://www.digitalocean.com/products/spaces/\n// Submitted by Robin H. Johnson <psl-maintainers@digitalocean.com>\n*.digitaloceanspaces.com\n\n// dnstrace.pro : https://dnstrace.pro/\n// Submitted by Chris Partridge <chris@partridge.tech>\nbci.dnstrace.pro\n\n// Dynu.com : https://www.dynu.com/\n// Submitted by Sue Ye <sue@dynu.com>\nddnsfree.com\nddnsgeek.com\ngiize.com\ngleeze.com\nkozow.com\nloseyourip.com\nooguy.com\ntheworkpc.com\ncasacam.net\ndynu.net\naccesscam.org\ncamdvr.org\nfreeddns.org\nmywire.org\nwebredirect.org\nmyddns.rocks\nblogsite.xyz\n\n// dynv6 : https://dynv6.com\n// Submitted by Dominik Menke <dom@digineo.de>\ndynv6.net\n\n// E4YOU spol. s.r.o. : https://e4you.cz/\n// Submitted by Vladimir Dudr <info@e4you.cz>\ne4.cz\n\n// Easypanel : https://easypanel.io\n// Submitted by Andrei Canta <andrei@easypanel.io>\neasypanel.app\neasypanel.host\n\n// Elementor : Elementor Ltd.\n// Submitted by Anton Barkan <antonb@elementor.com>\nelementor.cloud\nelementor.cool\n\n// En root‽ : https://en-root.org\n// Submitted by Emmanuel Raviart <emmanuel@raviart.com>\nen-root.fr\n\n// Enalean SAS: https://www.enalean.com\n// Submitted by Thomas Cottier <thomas.cottier@enalean.com>\nmytuleap.com\ntuleap-partners.com\n\n// Encoretivity AB: https://encore.dev\n// Submitted by André Eriksson <andre@encore.dev>\nencr.app\nencoreapi.com\n\n// ECG Robotics, Inc: https://ecgrobotics.org\n// Submitted by <frc1533@ecgrobotics.org>\nonred.one\nstaging.onred.one\n\n// encoway GmbH : https://www.encoway.de\n// Submitted by Marcel Daus <cloudops@encoway.de>\neu.encoway.cloud\n\n// EU.org https://eu.org/\n// Submitted by Pierre Beyssac <hostmaster@eu.org>\neu.org\nal.eu.org\nasso.eu.org\nat.eu.org\nau.eu.org\nbe.eu.org\nbg.eu.org\nca.eu.org\ncd.eu.org\nch.eu.org\ncn.eu.org\ncy.eu.org\ncz.eu.org\nde.eu.org\ndk.eu.org\nedu.eu.org\nee.eu.org\nes.eu.org\nfi.eu.org\nfr.eu.org\ngr.eu.org\nhr.eu.org\nhu.eu.org\nie.eu.org\nil.eu.org\nin.eu.org\nint.eu.org\nis.eu.org\nit.eu.org\njp.eu.org\nkr.eu.org\nlt.eu.org\nlu.eu.org\nlv.eu.org\nmc.eu.org\nme.eu.org\nmk.eu.org\nmt.eu.org\nmy.eu.org\nnet.eu.org\nng.eu.org\nnl.eu.org\nno.eu.org\nnz.eu.org\nparis.eu.org\npl.eu.org\npt.eu.org\nq-a.eu.org\nro.eu.org\nru.eu.org\nse.eu.org\nsi.eu.org\nsk.eu.org\ntr.eu.org\nuk.eu.org\nus.eu.org\n\n// Eurobyte : https://eurobyte.ru\n// Submitted by Evgeniy Subbotin <e.subbotin@eurobyte.ru>\neurodir.ru\n\n// Evennode : http://www.evennode.com/\n// Submitted by Michal Kralik <support@evennode.com>\neu-1.evennode.com\neu-2.evennode.com\neu-3.evennode.com\neu-4.evennode.com\nus-1.evennode.com\nus-2.evennode.com\nus-3.evennode.com\nus-4.evennode.com\n\n// eDirect Corp. : https://hosting.url.com.tw/\n// Submitted by C.S. chang <cschang@corp.url.com.tw>\ntwmail.cc\ntwmail.net\ntwmail.org\nmymailer.com.tw\nurl.tw\n\n// Fabrica Technologies, Inc. : https://www.fabrica.dev/\n// Submitted by Eric Jiang <eric@fabrica.dev>\nonfabrica.com\n\n// Facebook, Inc.\n// Submitted by Peter Ruibal <public-suffix@fb.com>\napps.fbsbx.com\n\n// FAITID : https://faitid.org/\n// Submitted by Maxim Alzoba <tech.contact@faitid.org>\n// https://www.flexireg.net/stat_info\nru.net\nadygeya.ru\nbashkiria.ru\nbir.ru\ncbg.ru\ncom.ru\ndagestan.ru\ngrozny.ru\nkalmykia.ru\nkustanai.ru\nmarine.ru\nmordovia.ru\nmsk.ru\nmytis.ru\nnalchik.ru\nnov.ru\npyatigorsk.ru\nspb.ru\nvladikavkaz.ru\nvladimir.ru\nabkhazia.su\nadygeya.su\naktyubinsk.su\narkhangelsk.su\narmenia.su\nashgabad.su\nazerbaijan.su\nbalashov.su\nbashkiria.su\nbryansk.su\nbukhara.su\nchimkent.su\ndagestan.su\neast-kazakhstan.su\nexnet.su\ngeorgia.su\ngrozny.su\nivanovo.su\njambyl.su\nkalmykia.su\nkaluga.su\nkaracol.su\nkaraganda.su\nkarelia.su\nkhakassia.su\nkrasnodar.su\nkurgan.su\nkustanai.su\nlenug.su\nmangyshlak.su\nmordovia.su\nmsk.su\nmurmansk.su\nnalchik.su\nnavoi.su\nnorth-kazakhstan.su\nnov.su\nobninsk.su\npenza.su\npokrovsk.su\nsochi.su\nspb.su\ntashkent.su\ntermez.su\ntogliatti.su\ntroitsk.su\ntselinograd.su\ntula.su\ntuva.su\nvladikavkaz.su\nvladimir.su\nvologda.su\n\n// Fancy Bits, LLC : http://getchannels.com\n// Submitted by Aman Gupta <aman@getchannels.com>\nchannelsdvr.net\nu.channelsdvr.net\n\n// Fastly Inc. : http://www.fastly.com/\n// Submitted by Fastly Security <security@fastly.com>\nedgecompute.app\nfastly-edge.com\nfastly-terrarium.com\nfastlylb.net\nmap.fastlylb.net\nfreetls.fastly.net\nmap.fastly.net\na.prod.fastly.net\nglobal.prod.fastly.net\na.ssl.fastly.net\nb.ssl.fastly.net\nglobal.ssl.fastly.net\n\n// Fastmail : https://www.fastmail.com/\n// Submitted by Marc Bradshaw <marc@fastmailteam.com>\n*.user.fm\n\n// FASTVPS EESTI OU : https://fastvps.ru/\n// Submitted by Likhachev Vasiliy <lihachev@fastvps.ru>\nfastvps-server.com\nfastvps.host\nmyfast.host\nfastvps.site\nmyfast.space\n\n// Fedora : https://fedoraproject.org/\n// submitted by Patrick Uiterwijk <puiterwijk@fedoraproject.org>\nfedorainfracloud.org\nfedorapeople.org\ncloud.fedoraproject.org\napp.os.fedoraproject.org\napp.os.stg.fedoraproject.org\n\n// FearWorks Media Ltd. : https://fearworksmedia.co.uk\n// submitted by Keith Fairley <domains@fearworksmedia.co.uk>\nconn.uk\ncopro.uk\nhosp.uk\n\n// Fermax : https://fermax.com/\n// submitted by Koen Van Isterdael <k.vanisterdael@fermax.be>\nmydobiss.com\n\n// FH Muenster : https://www.fh-muenster.de\n// Submitted by Robin Naundorf <r.naundorf@fh-muenster.de>\nfh-muenster.io\n\n// Filegear Inc. : https://www.filegear.com\n// Submitted by Jason Zhu <jason@owtware.com>\nfilegear.me\nfilegear-au.me\nfilegear-de.me\nfilegear-gb.me\nfilegear-ie.me\nfilegear-jp.me\nfilegear-sg.me\n\n// Firebase, Inc.\n// Submitted by Chris Raynor <chris@firebase.com>\nfirebaseapp.com\n\n// Firewebkit : https://www.firewebkit.com\n// Submitted by Majid Qureshi <mqureshi@amrayn.com>\nfireweb.app\n\n// FLAP : https://www.flap.cloud\n// Submitted by Louis Chemineau <louis@chmn.me>\nflap.id\n\n// FlashDrive : https://flashdrive.io\n// Submitted by Eric Chan <support@flashdrive.io>\nonflashdrive.app\nfldrv.com\n\n// fly.io: https://fly.io\n// Submitted by Kurt Mackey <kurt@fly.io>\nfly.dev\nedgeapp.net\nshw.io\n\n// Flynn : https://flynn.io\n// Submitted by Jonathan Rudenberg <jonathan@flynn.io>\nflynnhosting.net\n\n// Forgerock : https://www.forgerock.com\n// Submitted by Roderick Parr <roderick.parr@forgerock.com>\nforgeblocks.com\nid.forgerock.io\n\n// Framer : https://www.framer.com\n// Submitted by Koen Rouwhorst <koenrh@framer.com>\nframer.app\nframercanvas.com\nframer.media\nframer.photos\nframer.website\nframer.wiki\n\n// Frusky MEDIA&PR : https://www.frusky.de\n// Submitted by Victor Pupynin <hallo@frusky.de>\n*.frusky.de\n\n// RavPage : https://www.ravpage.co.il\n// Submitted by Roni Horowitz <roni@responder.co.il>\nravpage.co.il\n\n// Frederik Braun https://frederik-braun.com\n// Submitted by Frederik Braun <fb@frederik-braun.com>\n0e.vc\n\n// Freebox : http://www.freebox.fr\n// Submitted by Romain Fliedel <rfliedel@freebox.fr>\nfreebox-os.com\nfreeboxos.com\nfbx-os.fr\nfbxos.fr\nfreebox-os.fr\nfreeboxos.fr\n\n// freedesktop.org : https://www.freedesktop.org\n// Submitted by Daniel Stone <daniel@fooishbar.org>\nfreedesktop.org\n\n// freemyip.com : https://freemyip.com\n// Submitted by Cadence <contact@freemyip.com>\nfreemyip.com\n\n// FunkFeuer - Verein zur Förderung freier Netze : https://www.funkfeuer.at\n// Submitted by Daniel A. Maierhofer <vorstand@funkfeuer.at>\nwien.funkfeuer.at\n\n// Futureweb OG : http://www.futureweb.at\n// Submitted by Andreas Schnederle-Wagner <schnederle@futureweb.at>\n*.futurecms.at\n*.ex.futurecms.at\n*.in.futurecms.at\nfuturehosting.at\nfuturemailing.at\n*.ex.ortsinfo.at\n*.kunden.ortsinfo.at\n*.statics.cloud\n\n// GDS : https://www.gov.uk/service-manual/technology/managing-domain-names\n// Submitted by Stephen Ford <hostmaster@digital.cabinet-office.gov.uk>\nindependent-commission.uk\nindependent-inquest.uk\nindependent-inquiry.uk\nindependent-panel.uk\nindependent-review.uk\npublic-inquiry.uk\nroyal-commission.uk\ncampaign.gov.uk\nservice.gov.uk\n\n// CDDO : https://www.gov.uk/guidance/get-an-api-domain-on-govuk\n// Submitted by Jamie Tanna <jamie.tanna@digital.cabinet-office.gov.uk>\napi.gov.uk\n\n// Gehirn Inc. : https://www.gehirn.co.jp/\n// Submitted by Kohei YOSHIDA <tech@gehirn.co.jp>\ngehirn.ne.jp\nusercontent.jp\n\n// Gentlent, Inc. : https://www.gentlent.com\n// Submitted by Tom Klein <tom@gentlent.com>\ngentapps.com\ngentlentapis.com\nlab.ms\ncdn-edges.net\n\n// Ghost Foundation : https://ghost.org\n// Submitted by Matt Hanley <security@ghost.org>\nghost.io\n\n// GignoSystemJapan: http://gsj.bz\n// Submitted by GignoSystemJapan <kakutou-ec@gsj.bz>\ngsj.bz\n\n// GitHub, Inc.\n// Submitted by Patrick Toomey <security@github.com>\ngithubusercontent.com\ngithubpreview.dev\ngithub.io\n\n// GitLab, Inc.\n// Submitted by Alex Hanselka <alex@gitlab.com>\ngitlab.io\n\n// Gitplac.si - https://gitplac.si\n// Submitted by Aljaž Starc <me@aljaxus.eu>\ngitapp.si\ngitpage.si\n\n// Glitch, Inc : https://glitch.com\n// Submitted by Mads Hartmann <mads@glitch.com>\nglitch.me\n\n// Global NOG Alliance : https://nogalliance.org/\n// Submitted by Sander Steffann <sander@nogalliance.org>\nnog.community\n\n// Globe Hosting SRL : https://www.globehosting.com/\n// Submitted by Gavin Brown <gavin.brown@centralnic.com>\nco.ro\nshop.ro\n\n// GMO Pepabo, Inc. : https://pepabo.com/\n// Submitted by Hosting Div <admin@pepabo.com>\nlolipop.io\nangry.jp\nbabyblue.jp\nbabymilk.jp\nbackdrop.jp\nbambina.jp\nbitter.jp\nblush.jp\nboo.jp\nboy.jp\nboyfriend.jp\nbut.jp\ncandypop.jp\ncapoo.jp\ncatfood.jp\ncheap.jp\nchicappa.jp\nchillout.jp\nchips.jp\nchowder.jp\nchu.jp\nciao.jp\ncocotte.jp\ncoolblog.jp\ncranky.jp\ncutegirl.jp\ndaa.jp\ndeca.jp\ndeci.jp\ndigick.jp\negoism.jp\nfakefur.jp\nfem.jp\nflier.jp\nfloppy.jp\nfool.jp\nfrenchkiss.jp\ngirlfriend.jp\ngirly.jp\ngloomy.jp\ngonna.jp\ngreater.jp\nhacca.jp\nheavy.jp\nher.jp\nhiho.jp\nhippy.jp\nholy.jp\nhungry.jp\nicurus.jp\nitigo.jp\njellybean.jp\nkikirara.jp\nkill.jp\nkilo.jp\nkuron.jp\nlittlestar.jp\nlolipopmc.jp\nlolitapunk.jp\nlomo.jp\nlovepop.jp\nlovesick.jp\nmain.jp\nmods.jp\nmond.jp\nmongolian.jp\nmoo.jp\nnamaste.jp\nnikita.jp\nnobushi.jp\nnoor.jp\noops.jp\nparallel.jp\nparasite.jp\npecori.jp\npeewee.jp\npenne.jp\npepper.jp\nperma.jp\npigboat.jp\npinoko.jp\npunyu.jp\npupu.jp\npussycat.jp\npya.jp\nraindrop.jp\nreadymade.jp\nsadist.jp\nschoolbus.jp\nsecret.jp\nstaba.jp\nstripper.jp\nsub.jp\nsunnyday.jp\nthick.jp\ntonkotsu.jp\nunder.jp\nupper.jp\nvelvet.jp\nverse.jp\nversus.jp\nvivian.jp\nwatson.jp\nweblike.jp\nwhitesnow.jp\nzombie.jp\nheteml.net\n\n// GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/\n// Submitted by Tom Whitwell <gov-uk-paas-support@digital.cabinet-office.gov.uk>\ncloudapps.digital\nlondon.cloudapps.digital\n\n// GOV.UK Pay : https://www.payments.service.gov.uk/\n// Submitted by Richard Baker <richard.baker@digital.cabinet-office.gov.uk>\npymnt.uk\n\n// UKHomeOffice : https://www.gov.uk/government/organisations/home-office\n// Submitted by Jon Shanks <jon.shanks@digital.homeoffice.gov.uk>\nhomeoffice.gov.uk\n\n// GlobeHosting, Inc.\n// Submitted by Zoltan Egresi <egresi@globehosting.com>\nro.im\n\n// GoIP DNS Services : http://www.goip.de\n// Submitted by Christian Poulter <milchstrasse@goip.de>\ngoip.de\n\n// Google, Inc.\n// Submitted by Eduardo Vela <evn@google.com>\nrun.app\na.run.app\nweb.app\n*.0emm.com\nappspot.com\n*.r.appspot.com\ncodespot.com\ngoogleapis.com\ngooglecode.com\npagespeedmobilizer.com\npublishproxy.com\nwithgoogle.com\nwithyoutube.com\n*.gateway.dev\ncloud.goog\ntranslate.goog\n*.usercontent.goog\ncloudfunctions.net\nblogspot.ae\nblogspot.al\nblogspot.am\nblogspot.ba\nblogspot.be\nblogspot.bg\nblogspot.bj\nblogspot.ca\nblogspot.cf\nblogspot.ch\nblogspot.cl\nblogspot.co.at\nblogspot.co.id\nblogspot.co.il\nblogspot.co.ke\nblogspot.co.nz\nblogspot.co.uk\nblogspot.co.za\nblogspot.com\nblogspot.com.ar\nblogspot.com.au\nblogspot.com.br\nblogspot.com.by\nblogspot.com.co\nblogspot.com.cy\nblogspot.com.ee\nblogspot.com.eg\nblogspot.com.es\nblogspot.com.mt\nblogspot.com.ng\nblogspot.com.tr\nblogspot.com.uy\nblogspot.cv\nblogspot.cz\nblogspot.de\nblogspot.dk\nblogspot.fi\nblogspot.fr\nblogspot.gr\nblogspot.hk\nblogspot.hr\nblogspot.hu\nblogspot.ie\nblogspot.in\nblogspot.is\nblogspot.it\nblogspot.jp\nblogspot.kr\nblogspot.li\nblogspot.lt\nblogspot.lu\nblogspot.md\nblogspot.mk\nblogspot.mr\nblogspot.mx\nblogspot.my\nblogspot.nl\nblogspot.no\nblogspot.pe\nblogspot.pt\nblogspot.qa\nblogspot.re\nblogspot.ro\nblogspot.rs\nblogspot.ru\nblogspot.se\nblogspot.sg\nblogspot.si\nblogspot.sk\nblogspot.sn\nblogspot.td\nblogspot.tw\nblogspot.ug\nblogspot.vn\n\n// Goupile : https://goupile.fr\n// Submitted by Niels Martignene <hello@goupile.fr>\ngoupile.fr\n\n// Government of the Netherlands: https://www.government.nl\n// Submitted by <domeinnaam@minaz.nl>\ngov.nl\n\n// Group 53, LLC : https://www.group53.com\n// Submitted by Tyler Todd <noc@nova53.net>\nawsmppl.com\n\n// GünstigBestellen : https://günstigbestellen.de\n// Submitted by Furkan Akkoc <info@hendelzon.de>\ngünstigbestellen.de\ngünstigliefern.de\n\n// Hakaran group: http://hakaran.cz\n// Submitted by Arseniy Sokolov <security@hakaran.cz>\nfin.ci\nfree.hr\ncaa.li\nua.rs\nconf.se\n\n// Handshake : https://handshake.org\n// Submitted by Mike Damm <md@md.vc>\nhs.zone\nhs.run\n\n// Hashbang : https://hashbang.sh\nhashbang.sh\n\n// Hasura : https://hasura.io\n// Submitted by Shahidh K Muhammed <shahidh@hasura.io>\nhasura.app\nhasura-app.io\n\n// Heilbronn University of Applied Sciences - Faculty Informatics (GitLab Pages): https://www.hs-heilbronn.de\n// Submitted by Richard Zowalla <mi-admin@hs-heilbronn.de>\npages.it.hs-heilbronn.de\n\n// Hepforge : https://www.hepforge.org\n// Submitted by David Grellscheid <admin@hepforge.org>\nhepforge.org\n\n// Heroku : https://www.heroku.com/\n// Submitted by Tom Maher <tmaher@heroku.com>\nherokuapp.com\nherokussl.com\n\n// Hibernating Rhinos\n// Submitted by Oren Eini <oren@ravendb.net>\nravendb.cloud\nravendb.community\nravendb.me\ndevelopment.run\nravendb.run\n\n// home.pl S.A.: https://home.pl\n// Submitted by Krzysztof Wolski <krzysztof.wolski@home.eu>\nhomesklep.pl\n\n// Hong Kong Productivity Council: https://www.hkpc.org/\n// Submitted by SECaaS Team <summchan@hkpc.org>\nsecaas.hk\n\n// Hoplix : https://www.hoplix.com\n// Submitted by Danilo De Franco<info@hoplix.shop>\nhoplix.shop\n\n\n// HOSTBIP REGISTRY : https://www.hostbip.com/\n// Submitted by Atanunu Igbunuroghene <publicsuffixlist@hostbip.com>\norx.biz\nbiz.gl\ncol.ng\nfirm.ng\ngen.ng\nltd.ng\nngo.ng\nedu.scot\nsch.so\n\n// HostFly : https://www.ie.ua\n// Submitted by Bohdan Dub <support@hostfly.com.ua>\nie.ua\n\n// HostyHosting (hostyhosting.com)\nhostyhosting.io\n\n// Häkkinen.fi\n// Submitted by Eero Häkkinen <Eero+psl@Häkkinen.fi>\nhäkkinen.fi\n\n// Ici la Lune : http://www.icilalune.com/\n// Submitted by Simon Morvan <simon@icilalune.com>\n*.moonscale.io\nmoonscale.net\n\n// iki.fi\n// Submitted by Hannu Aronsson <haa@iki.fi>\niki.fi\n\n// iliad italia: https://www.iliad.it\n// Submitted by Marios Makassikis <mmakassikis@freebox.fr>\nibxos.it\niliadboxos.it\n\n// Impertrix Solutions : <https://impertrixcdn.com>\n// Submitted by Zhixiang Zhao <csuite@impertrix.com>\nimpertrixcdn.com\nimpertrix.com\n\n// Incsub, LLC: https://incsub.com/\n// Submitted by Aaron Edwards <sysadmins@incsub.com>\nsmushcdn.com\nwphostedmail.com\nwpmucdn.com\ntempurl.host\nwpmudev.host\n\n// Individual Network Berlin e.V. : https://www.in-berlin.de/\n// Submitted by Christian Seitz <chris@in-berlin.de>\ndyn-berlin.de\nin-berlin.de\nin-brb.de\nin-butter.de\nin-dsl.de\nin-dsl.net\nin-dsl.org\nin-vpn.de\nin-vpn.net\nin-vpn.org\n\n// info.at : http://www.info.at/\nbiz.at\ninfo.at\n\n// info.cx : http://info.cx\n// Submitted by Jacob Slater <whois@igloo.to>\ninfo.cx\n\n// Interlegis : http://www.interlegis.leg.br\n// Submitted by Gabriel Ferreira <registrobr@interlegis.leg.br>\nac.leg.br\nal.leg.br\nam.leg.br\nap.leg.br\nba.leg.br\nce.leg.br\ndf.leg.br\nes.leg.br\ngo.leg.br\nma.leg.br\nmg.leg.br\nms.leg.br\nmt.leg.br\npa.leg.br\npb.leg.br\npe.leg.br\npi.leg.br\npr.leg.br\nrj.leg.br\nrn.leg.br\nro.leg.br\nrr.leg.br\nrs.leg.br\nsc.leg.br\nse.leg.br\nsp.leg.br\nto.leg.br\n\n// intermetrics GmbH : https://pixolino.com/\n// Submitted by Wolfgang Schwarz <admin@intermetrics.de>\npixolino.com\n\n// Internet-Pro, LLP: https://netangels.ru/\n// Submitted by Vasiliy Sheredeko <piphon@gmail.com>\nna4u.ru\n\n// iopsys software solutions AB : https://iopsys.eu/\n// Submitted by Roman Azarenko <roman.azarenko@iopsys.eu>\niopsys.se\n\n// IPiFony Systems, Inc. : https://www.ipifony.com/\n// Submitted by Matthew Hardeman <mhardeman@ipifony.com>\nipifony.net\n\n// IServ GmbH : https://iserv.de\n// Submitted by Mario Hoberg <info@iserv.de>\niservschule.de\nmein-iserv.de\nschulplattform.de\nschulserver.de\ntest-iserv.de\niserv.dev\n\n// I-O DATA DEVICE, INC. : http://www.iodata.com/\n// Submitted by Yuji Minagawa <domains-admin@iodata.jp>\niobb.net\n\n// Jelastic, Inc. : https://jelastic.com/\n// Submitted by Ihor Kolodyuk <ik@jelastic.com>\nmel.cloudlets.com.au\ncloud.interhostsolutions.be\nmycloud.by\nalp1.ae.flow.ch\nappengine.flow.ch\nes-1.axarnet.cloud\ndiadem.cloud\nvip.jelastic.cloud\njele.cloud\nit1.eur.aruba.jenv-aruba.cloud\nit1.jenv-aruba.cloud\nkeliweb.cloud\ncs.keliweb.cloud\noxa.cloud\ntn.oxa.cloud\nuk.oxa.cloud\nprimetel.cloud\nuk.primetel.cloud\nca.reclaim.cloud\nuk.reclaim.cloud\nus.reclaim.cloud\nch.trendhosting.cloud\nde.trendhosting.cloud\njele.club\namscompute.com\ndopaas.com\npaas.hosted-by-previder.com\nrag-cloud.hosteur.com\nrag-cloud-ch.hosteur.com\njcloud.ik-server.com\njcloud-ver-jpc.ik-server.com\ndemo.jelastic.com\nkilatiron.com\npaas.massivegrid.com\njed.wafaicloud.com\nlon.wafaicloud.com\nryd.wafaicloud.com\nj.scaleforce.com.cy\njelastic.dogado.eu\nfi.cloudplatform.fi\ndemo.datacenter.fi\npaas.datacenter.fi\njele.host\nmircloud.host\npaas.beebyte.io\nsekd1.beebyteapp.io\njele.io\ncloud-fr1.unispace.io\njc.neen.it\ncloud.jelastic.open.tim.it\njcloud.kz\nupaas.kazteleport.kz\ncloudjiffy.net\nfra1-de.cloudjiffy.net\nwest1-us.cloudjiffy.net\njls-sto1.elastx.net\njls-sto2.elastx.net\njls-sto3.elastx.net\nfaststacks.net\nfr-1.paas.massivegrid.net\nlon-1.paas.massivegrid.net\nlon-2.paas.massivegrid.net\nny-1.paas.massivegrid.net\nny-2.paas.massivegrid.net\nsg-1.paas.massivegrid.net\njelastic.saveincloud.net\nnordeste-idc.saveincloud.net\nj.scaleforce.net\njelastic.tsukaeru.net\nsdscloud.pl\nunicloud.pl\nmircloud.ru\njelastic.regruhosting.ru\nenscaled.sg\njele.site\njelastic.team\norangecloud.tn\nj.layershift.co.uk\nphx.enscaled.us\nmircloud.us\n\n// Jino : https://www.jino.ru\n// Submitted by Sergey Ulyashin <ulyashin@jino.ru>\nmyjino.ru\n*.hosting.myjino.ru\n*.landing.myjino.ru\n*.spectrum.myjino.ru\n*.vps.myjino.ru\n\n// Jotelulu S.L. : https://jotelulu.com\n// Submitted by Daniel Fariña <ingenieria@jotelulu.com>\njotelulu.cloud\n\n// Joyent : https://www.joyent.com/\n// Submitted by Brian Bennett <brian.bennett@joyent.com>\n*.triton.zone\n*.cns.joyent.com\n\n// JS.ORG : http://dns.js.org\n// Submitted by Stefan Keim <admin@js.org>\njs.org\n\n// KaasHosting : http://www.kaashosting.nl/\n// Submitted by Wouter Bakker <hostmaster@kaashosting.nl>\nkaas.gg\nkhplay.nl\n\n// Kakao : https://www.kakaocorp.com/\n// Submitted by JaeYoong Lee <cec@kakaocorp.com>\nktistory.com\n\n// Kapsi : https://kapsi.fi\n// Submitted by Tomi Juntunen <erani@kapsi.fi>\nkapsi.fi\n\n// Keyweb AG : https://www.keyweb.de\n// Submitted by Martin Dannehl <postmaster@keymachine.de>\nkeymachine.de\n\n// KingHost : https://king.host\n// Submitted by Felipe Keller Braz <felipebraz@kinghost.com.br>\nkinghost.net\nuni5.net\n\n// KnightPoint Systems, LLC : http://www.knightpoint.com/\n// Submitted by Roy Keene <rkeene@knightpoint.com>\nknightpoint.systems\n\n// KoobinEvent, SL: https://www.koobin.com\n// Submitted by Iván Oliva <ivan.oliva@koobin.com>\nkoobin.events\n\n// KUROKU LTD : https://kuroku.ltd/\n// Submitted by DisposaBoy <security@oya.to>\noya.to\n\n// Katholieke Universiteit Leuven: https://www.kuleuven.be\n// Submitted by Abuse KU Leuven <abuse@kuleuven.be>\nkuleuven.cloud\nezproxy.kuleuven.be\n\n// .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf\nco.krd\nedu.krd\n\n// Krellian Ltd. : https://krellian.com\n// Submitted by Ben Francis <ben@krellian.com>\nkrellian.net\nwebthings.io\n\n// LCube - Professional hosting e.K. : https://www.lcube-webhosting.de\n// Submitted by Lars Laehn <info@lcube.de>\ngit-repos.de\nlcube-server.de\nsvn-repos.de\n\n// Leadpages : https://www.leadpages.net\n// Submitted by Greg Dallavalle <domains@leadpages.net>\nleadpages.co\nlpages.co\nlpusercontent.com\n\n// Lelux.fi : https://lelux.fi/\n// Submitted by Lelux Admin <publisuffix@lelux.site>\nlelux.site\n\n// Lifetime Hosting : https://Lifetime.Hosting/\n// Submitted by Mike Fillator <support@lifetime.hosting>\nco.business\nco.education\nco.events\nco.financial\nco.network\nco.place\nco.technology\n\n// Lightmaker Property Manager, Inc. : https://app.lmpm.com/\n// Submitted by Greg Holland <greg.holland@lmpm.com>\napp.lmpm.com\n\n// linkyard ldt: https://www.linkyard.ch/\n// Submitted by Mario Siegenthaler <mario.siegenthaler@linkyard.ch>\nlinkyard.cloud\nlinkyard-cloud.ch\n\n// Linode : https://linode.com\n// Submitted by <security@linode.com>\nmembers.linode.com\n*.nodebalancer.linode.com\n*.linodeobjects.com\nip.linodeusercontent.com\n\n// LiquidNet Ltd : http://www.liquidnetlimited.com/\n// Submitted by Victor Velchev <admin@liquidnetlimited.com>\nwe.bs\n\n// Localcert : https://localcert.dev\n// Submitted by Lann Martin <security@localcert.dev>\n*.user.localcert.dev\n\n// localzone.xyz\n// Submitted by Kenny Niehage <hello@yahe.sh>\nlocalzone.xyz\n\n// Log\'in Line : https://www.loginline.com/\n// Submitted by Rémi Mach <remi.mach@loginline.com>\nloginline.app\nloginline.dev\nloginline.io\nloginline.services\nloginline.site\n\n// Lokalized : https://lokalized.nl\n// Submitted by Noah Taheij <noah@lokalized.nl>\nservers.run\n\n// Lõhmus Family, The\n// Submitted by Heiki Lõhmus <hostmaster at lohmus dot me>\nlohmus.me\n\n// LubMAN UMCS Sp. z o.o : https://lubman.pl/\n// Submitted by Ireneusz Maliszewski <ireneusz.maliszewski@lubman.pl>\nkrasnik.pl\nleczna.pl\nlubartow.pl\nlublin.pl\nponiatowa.pl\nswidnik.pl\n\n// Lug.org.uk : https://lug.org.uk\n// Submitted by Jon Spriggs <admin@lug.org.uk>\nglug.org.uk\nlug.org.uk\nlugs.org.uk\n\n// Lukanet Ltd : https://lukanet.com\n// Submitted by Anton Avramov <register@lukanet.com>\nbarsy.bg\nbarsy.co.uk\nbarsyonline.co.uk\nbarsycenter.com\nbarsyonline.com\nbarsy.club\nbarsy.de\nbarsy.eu\nbarsy.in\nbarsy.info\nbarsy.io\nbarsy.me\nbarsy.menu\nbarsy.mobi\nbarsy.net\nbarsy.online\nbarsy.org\nbarsy.pro\nbarsy.pub\nbarsy.ro\nbarsy.shop\nbarsy.site\nbarsy.support\nbarsy.uk\n\n// Magento Commerce\n// Submitted by Damien Tournoud <dtournoud@magento.cloud>\n*.magentosite.cloud\n\n// May First - People Link : https://mayfirst.org/\n// Submitted by Jamie McClelland <info@mayfirst.org>\nmayfirst.info\nmayfirst.org\n\n// Mail.Ru Group : https://hb.cldmail.ru\n// Submitted by Ilya Zaretskiy <zaretskiy@corp.mail.ru>\nhb.cldmail.ru\n\n// Mail Transfer Platform : https://www.neupeer.com\n// Submitted by Li Hui <lihui@neupeer.com>\ncn.vu\n\n// Maze Play: https://www.mazeplay.com\n// Submitted by Adam Humpherys <adam@mws.dev>\nmazeplay.com\n\n// mcpe.me : https://mcpe.me\n// Submitted by Noa Heyl <hi@noa.dev>\nmcpe.me\n\n// McHost : https://mchost.ru\n// Submitted by Evgeniy Subbotin <e.subbotin@mchost.ru>\nmcdir.me\nmcdir.ru\nmcpre.ru\nvps.mcdir.ru\n\n// Mediatech : https://mediatech.by\n// Submitted by Evgeniy Kozhuhovskiy <ugenk@mediatech.by>\nmediatech.by\nmediatech.dev\n\n// Medicom Health : https://medicomhealth.com\n// Submitted by Michael Olson <molson@medicomhealth.com>\nhra.health\n\n// Memset hosting : https://www.memset.com\n// Submitted by Tom Whitwell <domains@memset.com>\nminiserver.com\nmemset.net\n\n// Messerli Informatik AG : https://www.messerli.ch/\n// Submitted by Ruben Schmidmeister <psl-maintainers@messerli.ch>\nmesserli.app\n\n// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/\n// Submitted by Zdeněk Šustr <zdenek.sustr@cesnet.cz>\n*.cloud.metacentrum.cz\ncustom.metacentrum.cz\n\n// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/\n// Submitted by Radim Janča <janca@cesnet.cz>\nflt.cloud.muni.cz\nusr.cloud.muni.cz\n\n// Meteor Development Group : https://www.meteor.com/hosting\n// Submitted by Pierre Carrier <pierre@meteor.com>\nmeteorapp.com\neu.meteorapp.com\n\n// Michau Enterprises Limited : http://www.co.pl/\nco.pl\n\n// Microsoft Corporation : http://microsoft.com\n// Submitted by Public Suffix List Admin <msftpsladmin@microsoft.com>\n*.azurecontainer.io\nazurewebsites.net\nazure-mobile.net\ncloudapp.net\nazurestaticapps.net\n1.azurestaticapps.net\n2.azurestaticapps.net\n3.azurestaticapps.net\ncentralus.azurestaticapps.net\neastasia.azurestaticapps.net\neastus2.azurestaticapps.net\nwesteurope.azurestaticapps.net\nwestus2.azurestaticapps.net\n\n// minion.systems : http://minion.systems\n// Submitted by Robert Böttinger <r@minion.systems>\ncsx.cc\n\n// Mintere : https://mintere.com/\n// Submitted by Ben Aubin <security@mintere.com>\nmintere.site\n\n// MobileEducation, LLC : https://joinforte.com\n// Submitted by Grayson Martin <grayson.martin@mobileeducation.us>\nforte.id\n\n// Mozilla Corporation : https://mozilla.com\n// Submitted by Ben Francis <bfrancis@mozilla.com>\nmozilla-iot.org\n\n// Mozilla Foundation : https://mozilla.org/\n// Submitted by glob <glob@mozilla.com>\nbmoattachments.org\n\n// MSK-IX : https://www.msk-ix.ru/\n// Submitted by Khannanov Roman <r.khannanov@msk-ix.ru>\nnet.ru\norg.ru\npp.ru\n\n// Mythic Beasts : https://www.mythic-beasts.com\n// Submitted by Paul Cammish <kelduum@mythic-beasts.com>\nhostedpi.com\ncustomer.mythic-beasts.com\ncaracal.mythic-beasts.com\nfentiger.mythic-beasts.com\nlynx.mythic-beasts.com\nocelot.mythic-beasts.com\noncilla.mythic-beasts.com\nonza.mythic-beasts.com\nsphinx.mythic-beasts.com\nvs.mythic-beasts.com\nx.mythic-beasts.com\nyali.mythic-beasts.com\ncust.retrosnub.co.uk\n\n// Nabu Casa : https://www.nabucasa.com\n// Submitted by Paulus Schoutsen <infra@nabucasa.com>\nui.nabu.casa\n\n// Net at Work Gmbh : https://www.netatwork.de\n// Submitted by Jan Jaeschke <jan.jaeschke@netatwork.de>\ncloud.nospamproxy.com\n\n// Netlify : https://www.netlify.com\n// Submitted by Jessica Parsons <jessica@netlify.com>\nnetlify.app\n\n// Neustar Inc.\n// Submitted by Trung Tran <Trung.Tran@neustar.biz>\n4u.com\n\n// ngrok : https://ngrok.com/\n// Submitted by Alan Shreve <alan@ngrok.com>\nngrok.app\nngrok-free.app\nngrok.dev\nngrok-free.dev\nngrok.io\nap.ngrok.io\nau.ngrok.io\neu.ngrok.io\nin.ngrok.io\njp.ngrok.io\nsa.ngrok.io\nus.ngrok.io\nngrok.pizza\n\n// Nimbus Hosting Ltd. : https://www.nimbushosting.co.uk/\n// Submitted by Nicholas Ford <nick@nimbushosting.co.uk>\nnh-serv.co.uk\n\n// NFSN, Inc. : https://www.NearlyFreeSpeech.NET/\n// Submitted by Jeff Wheelhouse <support@nearlyfreespeech.net>\nnfshost.com\n\n// Noop : https://noop.app\n// Submitted by Nathaniel Schweinberg <noop@rearc.io>\n*.developer.app\nnoop.app\n\n// Northflank Ltd. : https://northflank.com/\n// Submitted by Marco Suter <marco@northflank.com>\n*.northflank.app\n*.build.run\n*.code.run\n*.database.run\n*.migration.run\n\n// Noticeable : https://noticeable.io\n// Submitted by Laurent Pellegrino <security@noticeable.io>\nnoticeable.news\n\n// Now-DNS : https://now-dns.com\n// Submitted by Steve Russell <steve@now-dns.com>\ndnsking.ch\nmypi.co\nn4t.co\n001www.com\nddnslive.com\nmyiphost.com\nforumz.info\n16-b.it\n32-b.it\n64-b.it\nsoundcast.me\ntcp4.me\ndnsup.net\nhicam.net\nnow-dns.net\nownip.net\nvpndns.net\ndynserv.org\nnow-dns.org\nx443.pw\nnow-dns.top\nntdll.top\nfreeddns.us\ncrafting.xyz\nzapto.xyz\n\n// nsupdate.info : https://www.nsupdate.info/\n// Submitted by Thomas Waldmann <info@nsupdate.info>\nnsupdate.info\nnerdpol.ovh\n\n// No-IP.com : https://noip.com/\n// Submitted by Deven Reza <publicsuffixlist@noip.com>\nblogsyte.com\nbrasilia.me\ncable-modem.org\nciscofreak.com\ncollegefan.org\ncouchpotatofries.org\ndamnserver.com\nddns.me\nditchyourip.com\ndnsfor.me\ndnsiskinky.com\ndvrcam.info\ndynns.com\neating-organic.net\nfantasyleague.cc\ngeekgalaxy.com\ngolffan.us\nhealth-carereform.com\nhomesecuritymac.com\nhomesecuritypc.com\nhopto.me\nilovecollege.info\nloginto.me\nmlbfan.org\nmmafan.biz\nmyactivedirectory.com\nmydissent.net\nmyeffect.net\nmymediapc.net\nmypsx.net\nmysecuritycamera.com\nmysecuritycamera.net\nmysecuritycamera.org\nnet-freaks.com\nnflfan.org\nnhlfan.net\nno-ip.ca\nno-ip.co.uk\nno-ip.net\nnoip.us\nonthewifi.com\npgafan.net\npoint2this.com\npointto.us\nprivatizehealthinsurance.net\nquicksytes.com\nread-books.org\nsecuritytactics.com\nserveexchange.com\nservehumour.com\nservep2p.com\nservesarcasm.com\nstufftoread.com\nufcfan.org\nunusualperson.com\nworkisboring.com\n3utilities.com\nbounceme.net\nddns.net\nddnsking.com\ngotdns.ch\nhopto.org\nmyftp.biz\nmyftp.org\nmyvnc.com\nno-ip.biz\nno-ip.info\nno-ip.org\nnoip.me\nredirectme.net\nservebeer.com\nserveblog.net\nservecounterstrike.com\nserveftp.com\nservegame.com\nservehalflife.com\nservehttp.com\nserveirc.com\nserveminecraft.net\nservemp3.com\nservepics.com\nservequake.com\nsytes.net\nwebhop.me\nzapto.org\n\n// NodeArt : https://nodeart.io\n// Submitted by Konstantin Nosov <Nosov@nodeart.io>\nstage.nodeart.io\n\n// Nucleos Inc. : https://nucleos.com\n// Submitted by Piotr Zduniak <piotr@nucleos.com>\npcloud.host\n\n// NYC.mn : http://www.information.nyc.mn\n// Submitted by Matthew Brown <mattbrown@nyc.mn>\nnyc.mn\n\n// Observable, Inc. : https://observablehq.com\n// Submitted by Mike Bostock <dns@observablehq.com>\nstatic.observableusercontent.com\n\n// Octopodal Solutions, LLC. : https://ulterius.io/\n// Submitted by Andrew Sampson <andrew@ulterius.io>\ncya.gg\n\n// OMG.LOL : <https://omg.lol>\n// Submitted by Adam Newbold <adam@omg.lol>\nomg.lol\n\n// Omnibond Systems, LLC. : https://www.omnibond.com\n// Submitted by Cole Estep <cole@omnibond.com>\ncloudycluster.net\n\n// OmniWe Limited: https://omniwe.com\n// Submitted by Vicary Archangel <vicary@omniwe.com>\nomniwe.site\n\n// One.com: https://www.one.com/\n// Submitted by Jacob Bunk Nielsen <jbn@one.com>\n123hjemmeside.dk\n123hjemmeside.no\n123homepage.it\n123kotisivu.fi\n123minsida.se\n123miweb.es\n123paginaweb.pt\n123sait.ru\n123siteweb.fr\n123webseite.at\n123webseite.de\n123website.be\n123website.ch\n123website.lu\n123website.nl\nservice.one\nsimplesite.com\nsimplesite.com.br\nsimplesite.gr\nsimplesite.pl\n\n// One Fold Media : http://www.onefoldmedia.com/\n// Submitted by Eddie Jones <eddie@onefoldmedia.com>\nnid.io\n\n// Open Social : https://www.getopensocial.com/\n// Submitted by Alexander Varwijk <security@getopensocial.com>\nopensocial.site\n\n// OpenCraft GmbH : http://opencraft.com/\n// Submitted by Sven Marnach <sven@opencraft.com>\nopencraft.hosting\n\n// OpenResearch GmbH: https://openresearch.com/\n// Submitted by Philipp Schmid <ops@openresearch.com>\norsites.com\n\n// Opera Software, A.S.A.\n// Submitted by Yngve Pettersen <yngve@opera.com>\noperaunite.com\n\n// Orange : https://www.orange.com\n// Submitted by Alexandre Linte <alexandre.linte@orange.com>\ntech.orange\n\n// Oursky Limited : https://authgear.com/, https://skygear.io/\n// Submitted by Authgear Team <hello@authgear.com>, Skygear Developer <hello@skygear.io>\nauthgear-staging.com\nauthgearapps.com\nskygearapp.com\n\n// OutSystems\n// Submitted by Duarte Santos <domain-admin@outsystemscloud.com>\noutsystemscloud.com\n\n// OVHcloud: https://ovhcloud.com\n// Submitted by Vincent Cassé <vincent.casse@ovhcloud.com>\n*.webpaas.ovh.net\n*.hosting.ovh.net\n\n// OwnProvider GmbH: http://www.ownprovider.com\n// Submitted by Jan Moennich <jan.moennich@ownprovider.com>\nownprovider.com\nown.pm\n\n// OwO : https://whats-th.is/\n// Submitted by Dean Sheather <dean@deansheather.com>\n*.owo.codes\n\n// OX : http://www.ox.rs\n// Submitted by Adam Grand <webmaster@mail.ox.rs>\nox.rs\n\n// oy.lc\n// Submitted by Charly Coste <changaco@changaco.oy.lc>\noy.lc\n\n// Pagefog : https://pagefog.com/\n// Submitted by Derek Myers <derek@pagefog.com>\npgfog.com\n\n// Pagefront : https://www.pagefronthq.com/\n// Submitted by Jason Kriss <jason@pagefronthq.com>\npagefrontapp.com\n\n// PageXL : https://pagexl.com\n// Submitted by Yann Guichard <yann@pagexl.com>\npagexl.com\n\n// Paywhirl, Inc : https://paywhirl.com/\n// Submitted by Daniel Netzer <dan@paywhirl.com>\n*.paywhirl.com\n\n// pcarrier.ca Software Inc: https://pcarrier.ca/\n// Submitted by Pierre Carrier <pc@rrier.ca>\nbar0.net\nbar1.net\nbar2.net\nrdv.to\n\n// .pl domains (grandfathered)\nart.pl\ngliwice.pl\nkrakow.pl\npoznan.pl\nwroc.pl\nzakopane.pl\n\n// Pantheon Systems, Inc. : https://pantheon.io/\n// Submitted by Gary Dylina <gary@pantheon.io>\npantheonsite.io\ngotpantheon.com\n\n// Peplink | Pepwave : http://peplink.com/\n// Submitted by Steve Leung <steveleung@peplink.com>\nmypep.link\n\n// Perspecta : https://perspecta.com/\n// Submitted by Kenneth Van Alstyne <kvanalstyne@perspecta.com>\nperspecta.cloud\n\n// PE Ulyanov Kirill Sergeevich : https://airy.host\n// Submitted by Kirill Ulyanov <k.ulyanov@airy.host>\nlk3.ru\n\n// Planet-Work : https://www.planet-work.com/\n// Submitted by Frédéric VANNIÈRE <f.vanniere@planet-work.com>\non-web.fr\n\n// Platform.sh : https://platform.sh\n// Submitted by Nikola Kotur <nikola@platform.sh>\nbc.platform.sh\nent.platform.sh\neu.platform.sh\nus.platform.sh\n*.platformsh.site\n*.tst.site\n\n// Platter: https://platter.dev\n// Submitted by Patrick Flor <patrick@platter.dev>\nplatter-app.com\nplatter-app.dev\nplatterp.us\n\n// Plesk : https://www.plesk.com/\n// Submitted by Anton Akhtyamov <program-managers@plesk.com>\npdns.page\nplesk.page\npleskns.com\n\n// Port53 : https://port53.io/\n// Submitted by Maximilian Schieder <maxi@zeug.co>\ndyn53.io\n\n// Porter : https://porter.run/\n// Submitted by Rudraksh MK <rudi@porter.run>\nonporter.run\n\n// Positive Codes Technology Company : http://co.bn/faq.html\n// Submitted by Zulfais <pc@co.bn>\nco.bn\n\n// Postman, Inc : https://postman.com\n// Submitted by Rahul Dhawan <security@postman.com>\npostman-echo.com\npstmn.io\nmock.pstmn.io\nhttpbin.org\n\n//prequalifyme.today : https://prequalifyme.today\n//Submitted by DeepakTiwari deepak@ivylead.io\nprequalifyme.today\n\n// prgmr.com : https://prgmr.com/\n// Submitted by Sarah Newman <owner@prgmr.com>\nxen.prgmr.com\n\n// priv.at : http://www.nic.priv.at/\n// Submitted by registry <lendl@nic.at>\npriv.at\n\n// privacytools.io : https://www.privacytools.io/\n// Submitted by Jonah Aragon <jonah@privacytools.io>\nprvcy.page\n\n// Protocol Labs : https://protocol.ai/\n// Submitted by Michael Burns <noc@protocol.ai>\n*.dweb.link\n\n// Protonet GmbH : http://protonet.io\n// Submitted by Martin Meier <admin@protonet.io>\nprotonet.io\n\n// Publication Presse Communication SARL : https://ppcom.fr\n// Submitted by Yaacov Akiba Slama <admin@chirurgiens-dentistes-en-france.fr>\nchirurgiens-dentistes-en-france.fr\nbyen.site\n\n// pubtls.org: https://www.pubtls.org\n// Submitted by Kor Nielsen <kor@pubtls.org>\npubtls.org\n\n// PythonAnywhere LLP: https://www.pythonanywhere.com\n// Submitted by Giles Thomas <giles@pythonanywhere.com>\npythonanywhere.com\neu.pythonanywhere.com\n\n// QOTO, Org.\n// Submitted by Jeffrey Phillips Freeman <jeffrey.freeman@qoto.org>\nqoto.io\n\n// Qualifio : https://qualifio.com/\n// Submitted by Xavier De Cock <xdecock@gmail.com>\nqualifioapp.com\n\n// Quality Unit: https://qualityunit.com\n// Submitted by Vasyl Tsalko <vtsalko@qualityunit.com>\nladesk.com\n\n// QuickBackend: https://www.quickbackend.com\n// Submitted by Dani Biro <dani@pymet.com>\nqbuser.com\n\n// Rad Web Hosting: https://radwebhosting.com\n// Submitted by Scott Claeys <s.claeys@radwebhosting.com>\ncloudsite.builders\n\n// Redgate Software: https://red-gate.com\n// Submitted by Andrew Farries <andrew.farries@red-gate.com>\ninstances.spawn.cc\n\n// Redstar Consultants : https://www.redstarconsultants.com/\n// Submitted by Jons Slemmer <jons@redstarconsultants.com>\ninstantcloud.cn\n\n// Russian Academy of Sciences\n// Submitted by Tech Support <support@rasnet.ru>\nras.ru\n\n// QA2\n// Submitted by Daniel Dent (https://www.danieldent.com/)\nqa2.com\n\n// QCX\n// Submitted by Cassandra Beelen <cassandra@beelen.one>\nqcx.io\n*.sys.qcx.io\n\n// QNAP System Inc : https://www.qnap.com\n// Submitted by Nick Chang <nickchang@qnap.com>\ndev-myqnapcloud.com\nalpha-myqnapcloud.com\nmyqnapcloud.com\n\n// Quip : https://quip.com\n// Submitted by Patrick Linehan <plinehan@quip.com>\n*.quipelements.com\n\n// Qutheory LLC : http://qutheory.io\n// Submitted by Jonas Schwartz <jonas@qutheory.io>\nvapor.cloud\nvaporcloud.io\n\n// Rackmaze LLC : https://www.rackmaze.com\n// Submitted by Kirill Pertsev <kika@rackmaze.com>\nrackmaze.com\nrackmaze.net\n\n// Rakuten Games, Inc : https://dev.viberplay.io\n// Submitted by Joshua Zhang <public-suffix@rgames.jp>\ng.vbrplsbx.io\n\n// Rancher Labs, Inc : https://rancher.com\n// Submitted by Vincent Fiduccia <domains@rancher.com>\n*.on-k3s.io\n*.on-rancher.cloud\n*.on-rio.io\n\n// Read The Docs, Inc : https://www.readthedocs.org\n// Submitted by David Fischer <team@readthedocs.org>\nreadthedocs.io\n\n// Red Hat, Inc. OpenShift : https://openshift.redhat.com/\n// Submitted by Tim Kramer <tkramer@rhcloud.com>\nrhcloud.com\n\n// Render : https://render.com\n// Submitted by Anurag Goel <dev@render.com>\napp.render.com\nonrender.com\n\n// Repl.it : https://repl.it\n// Submitted by Lincoln Bergeson <lincoln@replit.com>\nfirewalledreplit.co\nid.firewalledreplit.co\nrepl.co\nid.repl.co\nrepl.run\n\n// Resin.io : https://resin.io\n// Submitted by Tim Perry <tim@resin.io>\nresindevice.io\ndevices.resinstaging.io\n\n// RethinkDB : https://www.rethinkdb.com/\n// Submitted by Chris Kastorff <info@rethinkdb.com>\nhzc.io\n\n// Revitalised Limited : http://www.revitalised.co.uk\n// Submitted by Jack Price <jack@revitalised.co.uk>\nwellbeingzone.eu\nwellbeingzone.co.uk\n\n// Rico Developments Limited : https://adimo.co\n// Submitted by Colin Brown <hello@adimo.co>\nadimo.co.uk\n\n// Riseup Networks : https://riseup.net\n// Submitted by Micah Anderson <micah@riseup.net>\nitcouldbewor.se\n\n// Rochester Institute of Technology : http://www.rit.edu/\n// Submitted by Jennifer Herting <jchits@rit.edu>\ngit-pages.rit.edu\n\n// Rocky Enterprise Software Foundation : https://resf.org\n// Submitted by Neil Hanlon <neil@resf.org>\nrocky.page\n\n// Rusnames Limited: http://rusnames.ru/\n// Submitted by Sergey Zotov <admin@rusnames.ru>\nбиз.рус\nком.рус\nкрым.рус\nмир.рус\nмск.рус\nорг.рус\nсамара.рус\nсочи.рус\nспб.рус\nя.рус\n\n// SAKURA Internet Inc. : https://www.sakura.ad.jp/\n// Submitted by Internet Service Department <rs-vendor-ml@sakura.ad.jp>\n180r.com\ndojin.com\nsakuratan.com\nsakuraweb.com\nx0.com\n2-d.jp\nbona.jp\ncrap.jp\ndaynight.jp\neek.jp\nflop.jp\nhalfmoon.jp\njeez.jp\nmatrix.jp\nmimoza.jp\nivory.ne.jp\nmail-box.ne.jp\nmints.ne.jp\nmokuren.ne.jp\nopal.ne.jp\nsakura.ne.jp\nsumomo.ne.jp\ntopaz.ne.jp\nnetgamers.jp\nnyanta.jp\no0o0.jp\nrdy.jp\nrgr.jp\nrulez.jp\ns3.isk01.sakurastorage.jp\ns3.isk02.sakurastorage.jp\nsaloon.jp\nsblo.jp\nskr.jp\ntank.jp\nuh-oh.jp\nundo.jp\nrs.webaccel.jp\nuser.webaccel.jp\nwebsozai.jp\nxii.jp\nsquares.net\njpn.org\nkirara.st\nx0.to\nfrom.tv\nsakura.tv\n\n// Salesforce.com, Inc. https://salesforce.com/\n// Submitted by Michael Biven <mbiven@salesforce.com>\n*.builder.code.com\n*.dev-builder.code.com\n*.stg-builder.code.com\n\n// Sandstorm Development Group, Inc. : https://sandcats.io/\n// Submitted by Asheesh Laroia <asheesh@sandstorm.io>\nsandcats.io\n\n// SBE network solutions GmbH : https://www.sbe.de/\n// Submitted by Norman Meilick <nm@sbe.de>\nlogoip.de\nlogoip.com\n\n// Scaleway : https://www.scaleway.com/\n// Submitted by Rémy Léone <rleone@scaleway.com>\nfr-par-1.baremetal.scw.cloud\nfr-par-2.baremetal.scw.cloud\nnl-ams-1.baremetal.scw.cloud\nfnc.fr-par.scw.cloud\nfunctions.fnc.fr-par.scw.cloud\nk8s.fr-par.scw.cloud\nnodes.k8s.fr-par.scw.cloud\ns3.fr-par.scw.cloud\ns3-website.fr-par.scw.cloud\nwhm.fr-par.scw.cloud\npriv.instances.scw.cloud\npub.instances.scw.cloud\nk8s.scw.cloud\nk8s.nl-ams.scw.cloud\nnodes.k8s.nl-ams.scw.cloud\ns3.nl-ams.scw.cloud\ns3-website.nl-ams.scw.cloud\nwhm.nl-ams.scw.cloud\nk8s.pl-waw.scw.cloud\nnodes.k8s.pl-waw.scw.cloud\ns3.pl-waw.scw.cloud\ns3-website.pl-waw.scw.cloud\nscalebook.scw.cloud\nsmartlabeling.scw.cloud\ndedibox.fr\n\n// schokokeks.org GbR : https://schokokeks.org/\n// Submitted by Hanno Böck <hanno@schokokeks.org>\nschokokeks.net\n\n// Scottish Government: https://www.gov.scot\n// Submitted by Martin Ellis <martin.ellis@gov.scot>\ngov.scot\nservice.gov.scot\n\n// Scry Security : http://www.scrysec.com\n// Submitted by Shante Adam <shante@skyhat.io>\nscrysec.com\n\n// Securepoint GmbH : https://www.securepoint.de\n// Submitted by Erik Anders <erik.anders@securepoint.de>\nfirewall-gateway.com\nfirewall-gateway.de\nmy-gateway.de\nmy-router.de\nspdns.de\nspdns.eu\nfirewall-gateway.net\nmy-firewall.org\nmyfirewall.org\nspdns.org\n\n// Seidat : https://www.seidat.com\n// Submitted by Artem Kondratev <accounts@seidat.com>\nseidat.net\n\n// Sellfy : https://sellfy.com\n// Submitted by Yuriy Romadin <contact@sellfy.com>\nsellfy.store\n\n// Senseering GmbH : https://www.senseering.de\n// Submitted by Felix Mönckemeyer <f.moenckemeyer@senseering.de>\nsenseering.net\n\n// Sendmsg: https://www.sendmsg.co.il\n// Submitted by Assaf Stern <domains@comstar.co.il>\nminisite.ms\n\n// Service Magnet : https://myservicemagnet.com\n// Submitted by Dave Sanders <dave@myservicemagnet.com>\nmagnet.page\n\n// Service Online LLC : http://drs.ua/\n// Submitted by Serhii Bulakh <support@drs.ua>\nbiz.ua\nco.ua\npp.ua\n\n// Shift Crypto AG : https://shiftcrypto.ch\n// Submitted by alex <alex@shiftcrypto.ch>\nshiftcrypto.dev\nshiftcrypto.io\n\n// ShiftEdit : https://shiftedit.net/\n// Submitted by Adam Jimenez <adam@shiftcreate.com>\nshiftedit.io\n\n// Shopblocks : http://www.shopblocks.com/\n// Submitted by Alex Bowers <alex@shopblocks.com>\nmyshopblocks.com\n\n// Shopify : https://www.shopify.com\n// Submitted by Alex Richter <alex.richter@shopify.com>\nmyshopify.com\n\n// Shopit : https://www.shopitcommerce.com/\n// Submitted by Craig McMahon <craig@shopitcommerce.com>\nshopitsite.com\n\n// shopware AG : https://shopware.com\n// Submitted by Jens Küper <cloud@shopware.com>\nshopware.store\n\n// Siemens Mobility GmbH\n// Submitted by Oliver Graebner <security@mo-siemens.io>\nmo-siemens.io\n\n// SinaAppEngine : http://sae.sina.com.cn/\n// Submitted by SinaAppEngine <saesupport@sinacloud.com>\n1kapp.com\nappchizi.com\napplinzi.com\nsinaapp.com\nvipsinaapp.com\n\n// Siteleaf : https://www.siteleaf.com/\n// Submitted by Skylar Challand <support@siteleaf.com>\nsiteleaf.net\n\n// Skyhat : http://www.skyhat.io\n// Submitted by Shante Adam <shante@skyhat.io>\nbounty-full.com\nalpha.bounty-full.com\nbeta.bounty-full.com\n\n// Smallregistry by Promopixel SARL: https://www.smallregistry.net\n// Former AFNIC\'s SLDs \n// Submitted by Jérôme Lipowicz <support@promopixel.com>\naeroport.fr\navocat.fr\nchambagri.fr\nchirurgiens-dentistes.fr\nexperts-comptables.fr\nmedecin.fr\nnotaires.fr\npharmacien.fr\nport.fr\nveterinaire.fr\n\n// Small Technology Foundation : https://small-tech.org\n// Submitted by Aral Balkan <aral@small-tech.org>\nsmall-web.org\n\n// Smoove.io : https://www.smoove.io/\n// Submitted by Dan Kozak <dan@smoove.io>\nvp4.me\n\n// Snowflake Inc : https://www.snowflake.com/\n// Submitted by Faith Olapade <faith.olapade@snowflake.com>\nsnowflake.app\nprivatelink.snowflake.app\nstreamlit.app\nstreamlitapp.com\n\n// Snowplow Analytics : https://snowplowanalytics.com/\n// Submitted by Ian Streeter <ian@snowplowanalytics.com>\ntry-snowplow.com\n\n// SourceHut : https://sourcehut.org\n// Submitted by Drew DeVault <sir@cmpwn.com>\nsrht.site\n\n// Stackhero : https://www.stackhero.io\n// Submitted by Adrien Gillon <adrien+public-suffix-list@stackhero.io>\nstackhero-network.com\n\n// Staclar : https://staclar.com\n// Submitted by Q Misell <q@staclar.com>\nmusician.io\n// Submitted by Matthias Merkel <matthias.merkel@staclar.com>\nnovecore.site\n\n// staticland : https://static.land\n// Submitted by Seth Vincent <sethvincent@gmail.com>\nstatic.land\ndev.static.land\nsites.static.land\n\n// Storebase : https://www.storebase.io\n// Submitted by Tony Schirmer <tony@storebase.io>\nstorebase.store\n\n// Strategic System Consulting (eApps Hosting): https://www.eapps.com/\n// Submitted by Alex Oancea <aoancea@cloudscale365.com>\nvps-host.net\natl.jelastic.vps-host.net\nnjs.jelastic.vps-host.net\nric.jelastic.vps-host.net\n\n// Sony Interactive Entertainment LLC : https://sie.com/\n// Submitted by David Coles <david.coles@sony.com>\nplaystation-cloud.com\n\n// SourceLair PC : https://www.sourcelair.com\n// Submitted by Antonis Kalipetis <akalipetis@sourcelair.com>\napps.lair.io\n*.stolos.io\n\n// SpaceKit : https://www.spacekit.io/\n// Submitted by Reza Akhavan <spacekit.io@gmail.com>\nspacekit.io\n\n// SpeedPartner GmbH: https://www.speedpartner.de/\n// Submitted by Stefan Neufeind <info@speedpartner.de>\ncustomer.speedpartner.de\n\n// Spreadshop (sprd.net AG) : https://www.spreadshop.com/\n// Submitted by Martin Breest <security@spreadshop.com>\nmyspreadshop.at\nmyspreadshop.com.au\nmyspreadshop.be\nmyspreadshop.ca\nmyspreadshop.ch\nmyspreadshop.com\nmyspreadshop.de\nmyspreadshop.dk\nmyspreadshop.es\nmyspreadshop.fi\nmyspreadshop.fr\nmyspreadshop.ie\nmyspreadshop.it\nmyspreadshop.net\nmyspreadshop.nl\nmyspreadshop.no\nmyspreadshop.pl\nmyspreadshop.se\nmyspreadshop.co.uk\n\n// Standard Library : https://stdlib.com\n// Submitted by Jacob Lee <jacob@stdlib.com>\napi.stdlib.com\n\n// Storipress : https://storipress.com\n// Submitted by Benno Liu <benno@storipress.com>\nstoripress.app\n\n// Storj Labs Inc. : https://storj.io/\n// Submitted by Philip Hutchins <hostmaster@storj.io>\nstorj.farm\n\n// Studenten Net Twente : http://www.snt.utwente.nl/\n// Submitted by Silke Hofstra <syscom@snt.utwente.nl>\nutwente.io\n\n// Student-Run Computing Facility : https://www.srcf.net/\n// Submitted by Edwin Balani <sysadmins@srcf.net>\nsoc.srcf.net\nuser.srcf.net\n\n// Sub 6 Limited: http://www.sub6.com\n// Submitted by Dan Miller <dm@sub6.com>\ntemp-dns.com\n\n// Supabase : https://supabase.io\n// Submitted by Inian Parameshwaran <security@supabase.io>\nsupabase.co\nsupabase.in\nsupabase.net\nsu.paba.se\n\n// Symfony, SAS : https://symfony.com/\n// Submitted by Fabien Potencier <fabien@symfony.com>\n*.s5y.io\n*.sensiosite.cloud\n\n// Syncloud : https://syncloud.org\n// Submitted by Boris Rybalkin <syncloud@syncloud.it>\nsyncloud.it\n\n// Synology, Inc. : https://www.synology.com/\n// Submitted by Rony Weng <ronyweng@synology.com>\ndscloud.biz\ndirect.quickconnect.cn\ndsmynas.com\nfamilyds.com\ndiskstation.me\ndscloud.me\ni234.me\nmyds.me\nsynology.me\ndscloud.mobi\ndsmynas.net\nfamilyds.net\ndsmynas.org\nfamilyds.org\nvpnplus.to\ndirect.quickconnect.to\n\n// Tabit Technologies Ltd. : https://tabit.cloud/\n// Submitted by Oren Agiv <oren@tabit.cloud>\ntabitorder.co.il\nmytabit.co.il\nmytabit.com\n\n// TAIFUN Software AG : http://taifun-software.de\n// Submitted by Bjoern Henke <dev-server@taifun-software.de>\ntaifun-dns.de\n\n// Tailscale Inc. : https://www.tailscale.com\n// Submitted by David Anderson <danderson@tailscale.com>\nbeta.tailscale.net\nts.net\n\n// TASK geographical domains (www.task.gda.pl/uslugi/dns)\ngda.pl\ngdansk.pl\ngdynia.pl\nmed.pl\nsopot.pl\n\n// team.blue https://team.blue\n// Submitted by Cedric Dubois <cedric.dubois@team.blue>\nsite.tb-hosting.com\n\n// Teckids e.V. : https://www.teckids.org\n// Submitted by Dominik George <dominik.george@teckids.org>\nedugit.io\ns3.teckids.org\n\n// Telebit : https://telebit.cloud\n// Submitted by AJ ONeal <aj@telebit.cloud>\ntelebit.app\ntelebit.io\n*.telebit.xyz\n\n// Thingdust AG : https://thingdust.com/\n// Submitted by Adrian Imboden <adi@thingdust.com>\n*.firenet.ch\n*.svc.firenet.ch\nreservd.com\nthingdustdata.com\ncust.dev.thingdust.io\ncust.disrec.thingdust.io\ncust.prod.thingdust.io\ncust.testing.thingdust.io\nreservd.dev.thingdust.io\nreservd.disrec.thingdust.io\nreservd.testing.thingdust.io\n\n// ticket i/O GmbH : https://ticket.io\n// Submitted by Christian Franke <it@ticket.io>\ntickets.io\n\n// Tlon.io : https://tlon.io\n// Submitted by Mark Staarink <mark@tlon.io>\narvo.network\nazimuth.network\ntlon.network\n\n// Tor Project, Inc. : https://torproject.org\n// Submitted by Antoine Beaupré <anarcat@torproject.org\ntorproject.net\npages.torproject.net\n\n// TownNews.com : http://www.townnews.com\n// Submitted by Dustin Ward <dward@townnews.com>\nbloxcms.com\ntownnews-staging.com\n\n// TrafficPlex GmbH : https://www.trafficplex.de/\n// Submitted by Phillipp Röll <phillipp.roell@trafficplex.de>\n12hp.at\n2ix.at\n4lima.at\nlima-city.at\n12hp.ch\n2ix.ch\n4lima.ch\nlima-city.ch\ntrafficplex.cloud\nde.cool\n12hp.de\n2ix.de\n4lima.de\nlima-city.de\n1337.pictures\nclan.rip\nlima-city.rocks\nwebspace.rocks\nlima.zone\n\n// TransIP : https://www.transip.nl\n// Submitted by Rory Breuk <rbreuk@transip.nl>\n*.transurl.be\n*.transurl.eu\n*.transurl.nl\n\n// TransIP: https://www.transip.nl\n// Submitted by Cedric Dubois <cedric.dubois@team.blue>\nsite.transip.me\n\n// TuxFamily : http://tuxfamily.org\n// Submitted by TuxFamily administrators <adm@staff.tuxfamily.org>\ntuxfamily.org\n\n// TwoDNS : https://www.twodns.de/\n// Submitted by TwoDNS-Support <support@two-dns.de>\ndd-dns.de\ndiskstation.eu\ndiskstation.org\ndray-dns.de\ndraydns.de\ndyn-vpn.de\ndynvpn.de\nmein-vigor.de\nmy-vigor.de\nmy-wan.de\nsyno-ds.de\nsynology-diskstation.de\nsynology-ds.de\n\n// Typedream : https://typedream.com\n// Submitted by Putri Karunia <putri@typedream.com>\ntypedream.app\n\n// Typeform : https://www.typeform.com\n// Submitted by Sergi Ferriz <sergi.ferriz@typeform.com>\npro.typeform.com\n\n// Uberspace : https://uberspace.de\n// Submitted by Moritz Werner <mwerner@jonaspasche.com>\nuber.space\n*.uberspace.de\n\n// UDR Limited : http://www.udr.hk.com\n// Submitted by registry <hostmaster@udr.hk.com>\nhk.com\nhk.org\nltd.hk\ninc.hk\n\n// UK Intis Telecom LTD : https://it.com\n// Submitted by ITComdomains <to@it.com>\nit.com\n\n// UNIVERSAL DOMAIN REGISTRY : https://www.udr.org.yt/\n// see also: whois -h whois.udr.org.yt help\n// Submitted by Atanunu Igbunuroghene <publicsuffixlist@udr.org.yt>\nname.pm\nsch.tf\nbiz.wf\nsch.wf\norg.yt\n\n// United Gameserver GmbH : https://united-gameserver.de\n// Submitted by Stefan Schwarz <sysadm@united-gameserver.de>\nvirtualuser.de\nvirtual-user.de\n\n// Upli : https://upli.io\n// Submitted by Lenny Bakkalian <lenny.bakkalian@gmail.com>\nupli.io\n\n// urown.net : https://urown.net\n// Submitted by Hostmaster <hostmaster@urown.net>\nurown.cloud\ndnsupdate.info\n\n// .US\n// Submitted by Ed Moore <Ed.Moore@lib.de.us>\nlib.de.us\n\n// VeryPositive SIA : http://very.lv\n// Submitted by Danko Aleksejevs <danko@very.lv>\n2038.io\n\n// Vercel, Inc : https://vercel.com/\n// Submitted by Connor Davis <security@vercel.com>\nvercel.app\nvercel.dev\nnow.sh\n\n// Viprinet Europe GmbH : http://www.viprinet.com\n// Submitted by Simon Kissel <hostmaster@viprinet.com>\nrouter.management\n\n// Virtual-Info : https://www.virtual-info.info/\n// Submitted by Adnan RIHAN <hostmaster@v-info.info>\nv-info.info\n\n// Voorloper.com: https://voorloper.com\n// Submitted by Nathan van Bakel <info@voorloper.com>\nvoorloper.cloud\n\n// Voxel.sh DNS : https://voxel.sh/dns/\n// Submitted by Mia Rehlinger <dns@voxel.sh>\nneko.am\nnyaa.am\nbe.ax\ncat.ax\nes.ax\neu.ax\ngg.ax\nmc.ax\nus.ax\nxy.ax\nnl.ci\nxx.gl\napp.gp\nblog.gt\nde.gt\nto.gt\nbe.gy\ncc.hn\nblog.kg\nio.kg\njp.kg\ntv.kg\nuk.kg\nus.kg\nde.ls\nat.md\nde.md\njp.md\nto.md\nindie.porn\nvxl.sh\nch.tc\nme.tc\nwe.tc\nnyan.to\nat.vg\nblog.vu\ndev.vu\nme.vu\n\n// V.UA Domain Administrator : https://domain.v.ua/\n// Submitted by Serhii Rostilo <sergey@rostilo.kiev.ua>\nv.ua\n\n// Vultr Objects : https://www.vultr.com/products/object-storage/\n// Submitted by Niels Maumenee <storage@vultr.com>\n*.vultrobjects.com\n\n// Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com\n// Submitted by Masayuki Note <masa@blade.wafflecell.com>\nwafflecell.com\n\n// WebHare bv: https://www.webhare.com/\n// Submitted by Arnold Hendriks <info@webhare.com>\n*.webhare.dev\n\n// WebHotelier Technologies Ltd: https://www.webhotelier.net/\n// Submitted by Apostolos Tsakpinis <apostolos.tsakpinis@gmail.com>\nreserve-online.net\nreserve-online.com\nbookonline.app\nhotelwithflight.com\n\n// WeDeploy by Liferay, Inc. : https://www.wedeploy.com\n// Submitted by Henrique Vicente <security@wedeploy.com>\nwedeploy.io\nwedeploy.me\nwedeploy.sh\n\n// Western Digital Technologies, Inc : https://www.wdc.com\n// Submitted by Jung Jin <jungseok.jin@wdc.com>\nremotewd.com\n\n// WIARD Enterprises : https://wiardweb.com\n// Submitted by Kidd Hustle <kiddhustle@wiardweb.com>\npages.wiardweb.com\n\n// Wikimedia Labs : https://wikitech.wikimedia.org\n// Submitted by Arturo Borrero Gonzalez <aborrero@wikimedia.org>\nwmflabs.org\ntoolforge.org\nwmcloud.org\n\n// WISP : https://wisp.gg\n// Submitted by Stepan Fedotov <stepan@wisp.gg>\npanel.gg\ndaemon.panel.gg\n\n// Wizard Zines : https://wizardzines.com\n// Submitted by Julia Evans <julia@wizardzines.com>\nmesswithdns.com\n\n// WoltLab GmbH : https://www.woltlab.com\n// Submitted by Tim Düsterhus <security@woltlab.cloud>\nwoltlab-demo.com\nmyforum.community\ncommunity-pro.de\ndiskussionsbereich.de\ncommunity-pro.net\nmeinforum.net\n\n// Woods Valldata : https://www.woodsvalldata.co.uk/\n// Submitted by Chris Whittle <chris.whittle@woodsvalldata.co.uk>\naffinitylottery.org.uk\nraffleentry.org.uk\nweeklylottery.org.uk\n\n// WP Engine : https://wpengine.com/\n// Submitted by Michael Smith <michael.smith@wpengine.com>\n// Submitted by Brandon DuRette <brandon.durette@wpengine.com>\nwpenginepowered.com\njs.wpenginepowered.com\n\n// Wix.com, Inc. : https://www.wix.com\n// Submitted by Shahar Talmi <shahar@wix.com>\nwixsite.com\neditorx.io\nwixstudio.io\nwix.run\n\n// XenonCloud GbR: https://xenoncloud.net\n// Submitted by Julian Uphoff <publicsuffixlist@xenoncloud.net>\nhalf.host\n\n// XnBay Technology : http://www.xnbay.com/\n// Submitted by XnBay Developer <developer.xncloud@gmail.com>\nxnbay.com\nu2.xnbay.com\nu2-local.xnbay.com\n\n// XS4ALL Internet bv : https://www.xs4all.nl/\n// Submitted by Daniel Mostertman <unixbeheer+publicsuffix@xs4all.net>\ncistron.nl\ndemon.nl\nxs4all.space\n\n// Yandex.Cloud LLC: https://cloud.yandex.com\n// Submitted by Alexander Lodin <security+psl@yandex-team.ru>\nyandexcloud.net\nstorage.yandexcloud.net\nwebsite.yandexcloud.net\n\n// YesCourse Pty Ltd : https://yescourse.com\n// Submitted by Atul Bhouraskar <atul@yescourse.com>\nofficial.academy\n\n// Yola : https://www.yola.com/\n// Submitted by Stefano Rivera <stefano@yola.com>\nyolasite.com\n\n// Yombo : https://yombo.net\n// Submitted by Mitch Schwenk <mitch@yombo.net>\nybo.faith\nyombo.me\nhomelink.one\nybo.party\nybo.review\nybo.science\nybo.trade\n\n// Yunohost : https://yunohost.org\n// Submitted by Valentin Grimaud <security@yunohost.org>\nynh.fr\nnohost.me\nnoho.st\n\n// ZaNiC : http://www.za.net/\n// Submitted by registry <hostmaster@nic.za.net>\nza.net\nza.org\n\n// Zine EOOD : https://zine.bg/\n// Submitted by Martin Angelov <martin@zine.bg>\nbss.design\n\n// Zitcom A/S : https://www.zitcom.dk\n// Submitted by Emil Stahl <esp@zitcom.dk>\nbasicserver.io\nvirtualserver.io\nenterprisecloud.nu\n\n// ===END PRIVATE DOMAINS===\n'.split("\n").filter(n=>!n.startsWith("//")&&n.trim().length>0).sort((n,e)=>e.length-n.length);async function fj(n,e,t){let a=await yj(t.filenameTemplate,t,n,e)||"";a=a.trim(),t.replaceEmojisInFilename&&wj.forEach(n=>a=kj(a,n," _"+gj[n]+"_ "));const{filenameReplacementCharacter:o,filenameReplacedCharacters:i,filenameReplacementCharacters:r}=t;if(a=lr(a,i,o,r),t.backgroundSave||(a=a.replace(/\//g,o)),!t.keepFilename&&("bytes"==t.filenameMaxLengthUnit&&or(a)>t.filenameMaxLength||a.length>t.filenameMaxLength)){const n=a.match(/(\.[^.]{3,4})$/),e=n&&n[0]&&n[0].length>1?n[0]:"";a="bytes"==t.filenameMaxLengthUnit?await xj(a,t.filenameMaxLength-e.length):a.substring(0,t.filenameMaxLength-e.length),a=a+"…"+e}return a||(a="Unnamed page"),a.startsWith(".")&&(a="Unnamed page"+a),a.trim()}async function yj(n="",e,t,a,o={}){const{dontReplaceSlash:i}=o;o.currentDate=new Date;const r=new dj(e.saveUrl||e.url),s=Sj(r.href),l=Array.from(new hj(r.search)),c=e.bookmarkFolders&&e.bookmarkFolders.join("/")||"",d=void 0===i||i,m=bj.find(n=>r.hostname.endsWith("."+n)&&n),h=m?r.hostname.substring(0,r.hostname.length-m.length-1):r.hostname,p=h.lastIndexOf(".");let u=h.substring(0,-1==p?0:p);const g=h.substring(u.length?u.length+1:0),w=g+"."+m;u.startsWith("www.")?u=u.substring(4):"www"==u&&(u="");const b={"navigator-language":{getter:()=>pj.language},"page-title":{getter:()=>e.title},"page-heading":{getter:()=>e.info.heading},"page-language":{getter:()=>e.info.lang},"page-description":{getter:()=>e.info.description},"page-author":{getter:()=>e.info.author},"page-creator":{getter:()=>e.info.creator},"page-publisher":{getter:()=>e.info.publisher},"url-hash":{getter:()=>r.hash.substring(1)},"url-host":{getter:()=>r.host.replace(/\/$/,"")},"url-hostname":{getter:()=>r.hostname.replace(/\/$/,"")},"url-hostname-suffix":{getter:()=>m},"url-hostname-domain":{getter:()=>g},"url-hostname-root":{getter:()=>w},"url-hostname-subdomains":{getter:()=>u},"url-href":{getter:()=>s,dontReplaceSlash:d},"url-href-digest-sha-1":{getter:s?async()=>ir("SHA-1",s):""},"url-href-flat":{getter:()=>Sj(r.href),dontReplaceSlash:!1},"url-referrer":{getter:()=>Sj(e.referrer),dontReplaceSlash:d},"url-referrer-flat":{getter:()=>Sj(e.referrer),dontReplaceSlash:!1},"url-password":{getter:()=>r.password},"url-pathname":{getter:()=>Sj(r.pathname).replace(/^\//,"").replace(/\/$/,""),dontReplaceSlash:d},"url-pathname-flat":{getter:()=>Sj(r.pathname),dontReplaceSlash:!1},"url-port":{getter:()=>r.port},"url-protocol":{getter:()=>r.protocol},"url-search":{getter:()=>r.search.substring(1)},"url-username":{getter:()=>r.username},"url-original":{getter:()=>e.originalUrl},"tab-id":{getter:()=>String(e.tabId)},"tab-index":{getter:()=>String(e.tabIndex)},"url-last-segment":{getter:()=>Sj(jj(r,e.filenameReplacementCharacter))},"url-filename":{getter:()=>{const n=r.pathname,e=n.split("/");if(n.endsWith("/"))return"";return Sj(e[e.length-1])},dontReplaceSlash:d},"bookmark-pathname":{getter:()=>c,dontReplaceSlash:d},"bookmark-pathname-flat":{getter:()=>c,dontReplaceSlash:!1},"profile-name":{getter:()=>e.profileName},"filename-extension":{getter:()=>function(n){return n.compressContent?n.selfExtractingArchive?n.extractDataFromPage?"u.zip.html":"zip.html":"zip":"html"}(e)},"save-action":{getter:()=>e.selected?"selection":"page"},"options-json":{getter:()=>JSON.stringify(Cj(e))},"options-text":{getter:()=>function(n){const e=[];for(const t in n){const a=n[t];"function"!=typeof a&&null!=a&&""!==a&&e.push(t+": "+JSON.stringify(a))}return e.join("\n")}(Cj(e))}};t&&(b["digest-sha-256"]={getter:async()=>ir("SHA-256",t)},b["digest-sha-384"]={getter:async()=>ir("SHA-384",t)},b["digest-sha-512"]={getter:async()=>ir("SHA-512",t)}),e.saveDate&&k(e.saveDate),e.visitDate&&k(e.visitDate,"visit-");const f={"if-empty":(...n)=>{const e=n.pop(),t=n.find(n=>n);return t||e},"if-not-empty":(...n)=>{const e=n.pop(),t=n.find(n=>n);return t?e:t},"if-equals":(n,e,t,a)=>n==e?t:a,"if-not-equals":(n,e,t,a)=>n!=e?t:a,"if-contains":(n,e,t,a)=>e&&n.includes(e)?t:a,"if-not-contains":(n,e,t,a)=>e&&!n.includes(e)?t:a,substring:(n,e,t)=>n.substring(e,t),lowercase:n=>n.toLowerCase(),uppercase:n=>n.toUpperCase(),capitalize:n=>n.charAt(0).toUpperCase()+n.slice(1),replace:(n,e,t)=>e&&t?kj(n,e,t):n,trim:n=>n.trim(),"trim-left":n=>n.trimLeft(),"trim-right":n=>n.trimRight(),"pad-left":(n,e,t)=>e>0?n.padStart(e,t):n,"pad-right":(n,e,t)=>e>0?n.padEnd(e,t):n,repeat:(n,e)=>e>0?n.repeat(e):"","index-of":(n,e,t)=>n.indexOf(e,t),"last-index-of":(n,e,t)=>n.lastIndexOf(e,t),length:n=>n.length,"url-search-name":(n=0)=>l[n]&&l[n][0],"url-search-value":(n=0)=>l[n]&&l[n][1],"url-search-named-value":n=>{const e=l.find(e=>e[0]==n);return e&&e[1]},"url-search":n=>{const e=l.find(e=>e[0]==n);return e&&e[1]},"url-segment":(n=0)=>{const t=Sj(r.pathname).split("/");return t.pop(),t.push(jj(r,e.filenameReplacementCharacter)),t[n]},"url-hostname-subdomain":(n=0)=>{const e=u.split(".");return e[e.length-n-1]},stringify:n=>{try{return JSON.stringify(n)}catch(e){return n}},"encode-base64":n=>function(n){const e=Array.from(n,n=>String.fromCodePoint(n)).join("");return btoa(e)}((new TextEncoder).encode(n)),"decode-base64":n=>{try{const e=function(n){const e=atob(n);return Uint8Array.from(e,n=>n.codePointAt(0))}(n);return new TextDecoder("utf-8").decode(e)}catch(e){return n}},"encode-uri":n=>{try{return encodeURI(n)}catch(e){return n}},"decode-uri":n=>{try{return decodeURI(n)}catch(e){return n}},"encode-uri-component":n=>{try{return encodeURIComponent(n)}catch(e){return n}},"decode-uri-component":n=>{try{return decodeURIComponent(n)}catch(e){return n}},"date-locale":n=>o.currentDate.toLocaleDateString(n),"time-locale":n=>o.currentDate.toLocaleTimeString(n),"datetime-locale":n=>o.currentDate.toLocaleString(n),"datetime-custom":(n,e,t,a,i,r,s,l,c,d,m,h,p,u,g)=>{const w=o.currentDate,b={};return f(b,"year",e),f(b,"month",t),f(b,"day",a),f(b,"weekday",i),f(b,"hour",r),f(b,"minute",s),f(b,"second",l),f(b,"hour12",c),b.hour12="true"==c,f(b,"timeZone",d),f(b,"fractionalSecondDigits",m),f(b,"timeZoneName",h),f(b,"dayPeriod",p),f(b,"era",u),f(b,"localeMatcher",g),new mj.DateTimeFormat(n,b).format(w);function f(n,e,t){" "==t?n[e]=void 0:t&&(n[e]=t)}},"option-value":n=>{const t=Cj(e)[n];return null==t?"":JSON.stringify(t)}};f["date-locale"].dontReplaceSlash=!0,f["time-locale"].dontReplaceSlash=!0,f["datetime-locale"].dontReplaceSlash=!0,f["datetime-custom"].dontReplaceSlash=!0,a&&(f["page-element-text"]=n=>{const e=a.querySelector(n);return e&&e.textContent},f["page-element-attribute"]=(n,e)=>{const t=a.querySelector(n);return t&&t.getAttribute(e)}),n=kj(n,"\\%","\\\\%"),n=kj(n,"\\{","\\\\{"),n=kj(n,"\\|","\\\\|"),n=kj(n,"\\>","\\\\>");let y=await sj(n,{async callFunction(n,[t,a],o){const i=f[n];if(!i)return"";if(t=t.replace(/\\\\(.)/g,"$1"),a||(a=[]),a=a.map(n=>n.replace(/\\\\(.)/g,"$1")).filter(n=>null!=n&&null!=n).map(n=>""==n?void 0:n),!(null!=t&&null!=t&&""!=t||a.length>0))return"";try{const n=void 0===i.dontReplaceSlash||i.dontReplaceSlash;return await vj(()=>i(t,...a),n,e.filenameReplacementCharacter,o)}catch(n){return""}},getVariableValue(n,t){const a=b[n];return a?vj(a.getter,a.dontReplaceSlash,e.filenameReplacementCharacter,t):""}});return y=kj(y,"\\\\%","%"),y=kj(y,"\\\\{","{"),y=kj(y,"\\\\|","|"),y=kj(y,"\\\\>",">"),y;function k(n,e=""){b[e+"datetime-iso"]={getter:()=>n.toISOString()},b[e+"date-iso"]={getter:()=>n.toISOString().split("T")[0]},b[e+"time-iso"]={getter:()=>n.toISOString().split("T")[1].split("Z")[0]},b[e+"date-locale"]={getter:()=>n.toLocaleDateString()},b[e+"time-locale"]={getter:()=>n.toLocaleTimeString()},b[e+"day-locale"]={getter:()=>String(n.getDate()).padStart(2,"0")},b[e+"month-locale"]={getter:()=>String(n.getMonth()+1).padStart(2,"0")},b[e+"year-locale"]={getter:()=>String(n.getFullYear())},b[e+"datetime-locale"]={getter:()=>n.toLocaleString()},b[e+"datetime-utc"]={getter:()=>n.toUTCString()},b[e+"day-utc"]={getter:()=>String(n.getUTCDate()).padStart(2,"0")},b[e+"month-utc"]={getter:()=>String(n.getUTCMonth()+1).padStart(2,"0")},b[e+"year-utc"]={getter:()=>String(n.getUTCFullYear())},b[e+"hours-locale"]={getter:()=>String(n.getHours()).padStart(2,"0")},b[e+"minutes-locale"]={getter:()=>String(n.getMinutes()).padStart(2,"0")},b[e+"seconds-locale"]={getter:()=>String(n.getSeconds()).padStart(2,"0")},b[e+"hours-utc"]={getter:()=>String(n.getUTCHours()).padStart(2,"0")},b[e+"minutes-utc"]={getter:()=>String(n.getUTCMinutes()).padStart(2,"0")},b[e+"seconds-utc"]={getter:()=>String(n.getUTCSeconds()).padStart(2,"0")},b[e+"time-ms"]={getter:()=>String(n.getTime())}}}function kj(n,e,t){if("function"==typeof n.replaceAll)return n.replaceAll(e,t);{const a=new RegExp(e.replace(uj,"\\$1"),"g");return n.replace(a,t)}}async function vj(n,e,t,a){const{maxLength:o,maxCharLength:i}=function(n){if(n){const{unit:e,length:t}=n;let a,o;return"char"==e?o=t:a=t,{maxLength:a,maxCharLength:o}}return{}}(a);let r=await n()||"";return e||(r=r.replace(/\/+/g,t)),o?r=await xj(r,o):i&&(r=r.substring(0,i)),r}function Sj(n){try{return decodeURI(n)}catch(e){return n}}function jj(n,e){let t=n.pathname.match(/\/([^/]+)$/),a=t&&t[0];return a||(t=n.href.match(/([^/]+)\/?$/),a=t&&t[0]),a||(t=a.match(/(.*)\.[^.]+$/),a=t&&t[0]),a||(a=n.hostname.replace(/\/+/g,e).replace(/\/$/,"")),t=a.match(/(.*)\.[^.]+$/),t&&t[1]&&(a=t[1]),a=a.replace(/\/$/,"").replace(/^\//,""),a}function xj(n,e){const t=new lj([n]),a=new cj;return a.readAsText(t.slice(0,e)),new Promise((t,o)=>{a.addEventListener("load",()=>{n.startsWith(a.result)?t(a.result):xj(n,e-1).then(t).catch(o)},!1),a.addEventListener("error",o,!1)})}function Cj(n){const e=Object.assign({},n);return delete e.content,delete e.usedFonts,delete e.extensionScriptFiles,delete e.taskId,delete e.updatedResources,delete e.visitDate,delete e.keepFilename,delete e.insertCanonicalLink,delete e.frames,delete e.win,delete e.doc,delete e.url,delete e.resourceReferrer,delete e.baseURI,delete e.rootDocument,delete e.fontTests,delete e.canvases,delete e.fonts,delete e.worklets,delete e.stylesheets,delete e.images,delete e.posters,delete e.videos,delete e.shadowRoots,delete e.referrer,delete e.adoptedStyleSheets,delete e.tabId,delete e.tabIndex,delete e.saveDate,delete e.saveUrl,delete e.title,delete e.info,e}var Aj=Object.freeze({__proto__:null,evalTemplate:yj,formatFilename:fj}),Lj=Object.freeze({__proto__:null,cssRulesMinifier:IS,fontsMinifier:fv,htmlMinifier:ZS,imagesAltMinifier:BS,mediasAltMinifier:zv,serializer:ij,templateFormatter:Aj});const zj="data:",Tj=/(#.+?)$/,Ej="blob:",Rj=/^https?:\/\//,Ij=/^file:\/\//,Dj=/^https?:\/\/+\s*$/,Mj=/^(https?:\/\/|file:\/\/|blob:).+/,Pj=/(url|local|-sf-url-original)\(.*?\)\s*(,|$)/g,Nj=/url\s*\(\s*'(.*?)'\s*\)/i,_j=/url\s*\(\s*"(.*?)"\s*\)/i,Bj=/url\s*\(\s*(.*?)\s*\)/i,Oj=/^'(.*?)'$/,Fj=/^"(.*?)"$/,Uj=/^url\(\s*["']?data:font\/(woff2?)/,qj=/^url\(\s*["']?data:application\/x-font-(woff)/,Hj=/\.([^.?#]+)((\?|#).*?)?$/,Wj=/format\((.*?)\)\s*,?$/,Gj=/(.*?)\s*,?$/,Vj={"ultra-condensed":"50%","extra-condensed":"62.5%",condensed:"75%","semi-condensed":"87.5%",normal:"100%","semi-expanded":"112.5%",expanded:"125%","extra-expanded":"150%","ultra-expanded":"200%"},Kj=globalThis.Blob,Jj=globalThis.FileReader,Yj=globalThis.Image,Zj=globalThis.OffscreenCanvas;let $j,Xj;function Qj(n,e){return $j=n,Xj=e,nx}class nx{async processPageResources(n,e,t,a,o,i){t.blockImages&&n.querySelectorAll("svg").forEach(n=>n.remove());let r=[['link[href][rel*="icon"]',"href",!0],['object[type="image/svg+xml"], object[type="image/svg-xml"], object[data*=".svg"]',"data"],["img[src], input[src][type=image]","src",!1,!0],['embed[src*=".svg"]',"src"],["video[poster]","poster"],["*[background]","background"],["image","xlink:href"],["image","href"]].map(([r,s,l,c])=>this.processAttribute(n,n.querySelectorAll(r),s,e,t,"image",a,l,i,o,c));r=r.concat([this.processXLinks(n.querySelectorAll("use"),n,e,t,i,"xlink:href"),this.processXLinks(n.querySelectorAll("use"),n,e,t,i,"href"),this.processSrcset(n.querySelectorAll("img[srcset], source[srcset]"),e,t,a,i)]),r.push(this.processAttribute(n,n.querySelectorAll('object[data*=".pdf"]'),"data",e,t,null,a,!1,i,o)),r.push(this.processAttribute(n,n.querySelectorAll('embed[src*=".pdf"]'),"src",e,t,null,a,!1,i,o)),r.push(this.processAttribute(n,n.querySelectorAll("audio[src], audio > source[src]"),"src",e,t,"audio",a,!1,i,o)),r.push(this.processAttribute(n,n.querySelectorAll("video[src], video > source[src]"),"src",e,t,"video",a,!1,i,o)),r.push(this.processAttribute(n,n.querySelectorAll("audio track[src], video track[src]"),"src",e,t,null,a,!1,i,o)),r.push(this.processAttribute(n,n.querySelectorAll("model[src]"),"src",e,t,null,a,!1,i,o)),await Promise.all(r),t.saveFavicon&&this.processShortcutIcons(n)}async processXLinks(n,e,t,a,o,i){await Promise.all(Array.from(n).map(async n=>{let e=n.getAttribute(i);null==e&&(i="href",e=n.getAttribute(i)),a.saveOriginalURLs&&!cx(e)&&n.setAttribute("data-sf-original-href",e);let r=ax(e);if(a.blockImages)n.setAttribute(i,$j.EMPTY_RESOURCE);else if(hx(r)&&!mx(r)){n.setAttribute(i,$j.EMPTY_RESOURCE);try{r=$j.resolveURL(r,t)}catch(n){}if(px(r)){const a=e.match(Tj);if(e.startsWith(t+"#"))n.setAttribute(i,a[0]);else{const e=await o.addURL(r,{expectedType:"image"}),t=$j.parseSVGContent(e.content);if(a&&a[0]){let e;try{e=t.querySelector(a[0])}catch(n){}e&&(n.setAttribute(i,a[0]),n.parentElement.insertBefore(e,n.parentElement.firstChild))}else n.setAttribute(i,"data:image/svg+xml,"+e.content)}}}else r==a.url&&n.setAttribute(i,e.substring(r.length))}))}async processStylesheet(n,e,t,a,o){const i=[],r=[],s=this;for(let c=n.head;c;c=c.next){const n=c.data;"Atrule"==n.type&&"charset"==n.name?r.push(c):n.block&&n.block.children&&("Rule"==n.type?i.push(s.processStyle(n,t,a,o)):"Atrule"!=n.type||"media"!=n.name&&"supports"!=n.name&&"layer"!=n.name&&"container"!=n.name?"Atrule"==n.type&&"font-face"==n.name&&i.push(l(n)):i.push(s.processStylesheet(n.block.children,e,t,a,o)))}async function l(n){const i=rx(n);await Promise.all(i.map(async n=>{const i=n.value;if(t.blockFonts)n.value=$j.EMPTY_RESOURCE;else{const r=ax(i);!mx(r)&&px(r)&&await s.processFont(r,n,i,e,t,a,o)}}))}r.forEach(e=>n.remove(e)),await Promise.all(i)}async processSrcset(n,e,t,a,o){await Promise.all(Array.from(n).map(async n=>{const i=n.getAttribute("srcset"),r=$j.parseSrcset(i);if(t.saveOriginalURLs&&!cx(i)&&n.setAttribute("data-sf-original-srcset",i),t.blockImages||t.blockAlternativeImages)n.setAttribute("srcset","");else{const t=await Promise.all(r.map(async n=>{let t=ax(n.url);if(mx(t))return t+(n.w?" "+n.w+"w":n.d?" "+n.d+"x":"");if(hx(t)){try{t=$j.resolveURL(t,e)}catch(n){}return px(t)?this.processImageSrcset(t,n,a,o):""}return""}));n.setAttribute("srcset",t.join(", "))}}))}setBackgroundImage(n,e,t){n.style.setProperty("background-blend-mode","normal","important"),n.style.setProperty("background-clip","content-box","important"),n.style.setProperty("background-position",t&&t["background-position"]?t["background-position"]:"center","important"),n.style.setProperty("background-color",t&&t["background-color"]?t["background-color"]:"transparent","important"),n.style.setProperty("background-image",e,"important"),n.style.setProperty("background-size",t&&t["background-size"]?t["background-size"]:"100% 100%","important"),n.style.setProperty("background-origin","content-box","important"),n.style.setProperty("background-repeat","no-repeat","important")}async getStylesheetContent(n,e){const t=await $j.getContent(n,{inline:!e.compressContent,maxResourceSize:e.maxResourceSize,maxResourceSizeEnabled:e.maxResourceSizeEnabled,validateTextContentType:!0,frameId:e.frameId,charset:e.charset,resourceReferrer:e.resourceReferrer,baseURI:e.baseURI,blockMixedContent:e.blockMixedContent,expectedType:"stylesheet",acceptHeaders:e.acceptHeaders,networkTimeout:e.networkTimeout});return ox(t.data,t.charset)||ox(t.data,e.charset)?t:(e=Object.assign({},e,{charset:ix(t.data)}),$j.getContent(n,{inline:!e.compressContent,maxResourceSize:e.maxResourceSize,maxResourceSizeEnabled:e.maxResourceSizeEnabled,validateTextContentType:!0,frameId:e.frameId,charset:e.charset,resourceReferrer:e.resourceReferrer,baseURI:e.baseURI,blockMixedContent:e.blockMixedContent,expectedType:"stylesheet",acceptHeaders:e.acceptHeaders,networkTimeout:e.networkTimeout}))}processShortcutIcons(n){let e=lx(Array.from(n.querySelectorAll('link[href][rel="shortcut icon"]')));e||(e=lx(Array.from(n.querySelectorAll('link[href][rel="icon"]')))),e||(e=lx(Array.from(n.querySelectorAll('link[href][rel*="icon"]'))),e&&(e.rel="shortcut icon")),e&&n.querySelectorAll('link[href][rel*="icon"]').forEach(n=>{n!=e&&n.remove()})}removeSingleLineCssComments(n){if(n.children){const e=[];for(let t=n.children.head;t;t=t.next){const n=t.data;"Raw"==n.type&&n.value&&n.value.trim().startsWith("//")&&e.push(t)}e.forEach(e=>n.children.remove(e))}}replacePseudoClassDefined(n){Xj.walk(n,{enter:function(n,e,t){"PseudoClassSelector"==n.type&&"defined"==n.name&&(null==e.prev||"Combinator"==e.prev.data.type||"WhiteSpace"==e.prev.data.type?t.replace(e,Xj.parse("*",{context:"selector"}).children.head):t.remove(e))}})}resolveStylesheetURLs(n,e,t){rx(n).map(n=>{const a=n.value;let o=ax(a);if(!mx(o)&&(t.textContent='tmp { content:"'+o+'"}',t.sheet&&t.sheet.cssRules&&(o=$j.removeQuotes(t.sheet.cssRules[0].style.getPropertyValue("content"))),!mx(o)))if(!o||hx(o)){let t;if(!a.startsWith("#"))try{t=$j.resolveURL(o,e)}catch(n){}px(t)&&(n.value=t)}else n.value=$j.EMPTY_RESOURCE})}async removeAlternativeFonts(n,e,t,a){const o={fonts:new Map,medias:new Map,supports:new Map,layers:new Map},i={rules:{processed:0,discarded:0},fonts:{processed:0,discarded:0}};let r=0;return e.forEach(e=>{if(e.stylesheet){const t=e.stylesheet.children;if(t)if(i.rules.processed+=t.size,i.rules.discarded+=t.size,e.mediaText&&"all"!=e.mediaText){const a=this.createFontsDetailsInfo();o.medias.set("media-"+r+"-"+e.mediaText,a),this.getFontsDetails(n,t,r,a)}else this.getFontsDetails(n,t,r,o)}r++}),ex(o),await Promise.all([...e].map(async([,n],e)=>{if(n.stylesheet){const r=n.stylesheet.children,s=n.mediaText;r&&(s&&"all"!=s?await this.processFontFaceRules(r,e,o.medias.get("media-"+e+"-"+s),t,a,i):await this.processFontFaceRules(r,e,o,t,a,i),i.rules.discarded-=r.size)}})),i}async processFontFaceRules(n,e,t,a,o,i){const r=[];let s=0,l=0,c=0;for(let d=n.head;d;d=d.next){const n=d.data;if("Atrule"==n.type&&"media"==n.name&&n.block&&n.block.children&&n.prelude){const r=Xj.generate(n.prelude);await this.processFontFaceRules(n.block.children,e,t.medias.get("media-"+e+"-"+s+"-"+r),a,o,i),s++}else if("Atrule"==n.type&&"supports"==n.name&&n.block&&n.block.children&&n.prelude){const r=Xj.generate(n.prelude);await this.processFontFaceRules(n.block.children,e,t.supports.get("supports-"+e+"-"+l+"-"+r),a,o,i),l++}else if("Atrule"==n.type&&"layer"==n.name&&n.block&&n.block.children&&n.prelude){const r=Xj.generate(n.prelude);await this.processFontFaceRules(n.block.children,e,t.layers.get("layer-"+e+"-"+c+"-"+r),a,o,i),c++}else if("Atrule"==n.type&&"font-face"==n.name){const e=this.getFontKey(n),s=t.fonts.get(e);s?await this.processFontFaceRule(n,s,a,o,i):r.push(d)}}r.forEach(e=>n.remove(e))}getFontsDetails(n,e,t,a){let o=0,i=0,r=0;e.forEach(e=>{if("Atrule"==e.type&&"media"==e.name&&e.block&&e.block.children&&e.prelude){const i=Xj.generate(e.prelude),r=this.createFontsDetailsInfo();a.medias.set("media-"+t+"-"+o+"-"+i,r),o++,this.getFontsDetails(n,e.block.children,t,r)}else if("Atrule"==e.type&&"supports"==e.name&&e.block&&e.block.children&&e.prelude){const o=Xj.generate(e.prelude),r=this.createFontsDetailsInfo();a.supports.set("supports-"+t+"-"+i+"-"+o,r),i++,this.getFontsDetails(n,e.block.children,t,r)}else if("Atrule"==e.type&&"layer"==e.name&&e.block&&e.block.children&&e.prelude){const o=Xj.generate(e.prelude),i=this.createFontsDetailsInfo();a.layers.set("layer-"+t+"-"+r+"-"+o,i),r++,this.getFontsDetails(n,e.block.children,t,i)}else if("Atrule"==e.type&&"font-face"==e.name&&e.block&&e.block.children){const n=this.getFontKey(e);let t=a.fonts.get(n);t||(t=[],a.fonts.set(n,t));const o=this.getPropertyValue(e,"src");if(o){const n=o.match(Pj);n&&n.forEach(n=>{t.includes(n)&&t.splice(t.indexOf(n),1),t.unshift(n)})}}})}createFontsDetailsInfo(){return{fonts:new Map,medias:new Map,supports:new Map,layers:new Map}}getFontKey(n){return JSON.stringify([Zi(this.getPropertyValue(n,"font-family")),ar(this.getPropertyValue(n,"font-weight")||"400"),this.getPropertyValue(n,"font-style")||"normal",this.getPropertyValue(n,"unicode-range"),(e=this.getPropertyValue(n,"font-stretch"),Vj[e]||e),this.getPropertyValue(n,"font-variant")||"normal",this.getPropertyValue(n,"font-feature-settings"),this.getPropertyValue(n,"font-variation-settings")]);var e}getPropertyValue(n,e){let t;if(n.block.children&&(t=n.block.children.filter(n=>{try{return n.property==e&&!Xj.generate(n.value).match(/\\9$/)}catch(t){return n.property==e}}).tail),t)try{return Xj.generate(t.data.value)}catch(n){}}}function ex(n,e){n.fonts.forEach((e,t)=>{n.fonts.set(t,e.map(n=>{const e=n.match(Wj);let t;const a=function(n){const e=(n=n.replace(/url\(-sf-url-original\\\(\\"(.*?)\\"\\\)\\ /g,"")).match(Nj)||n.match(_j)||n.match(Bj);return e&&e[1]}(n);if(e&&e[1]&&(t=e[1].replace(Oj,"$1").replace(Fj,"$1").toLowerCase()),!t){const e=n.match(Uj);if(e&&e[1])t=e[1];else{const e=n.match(qj);e&&e[1]&&(t=e[1])}}if(!t&&a){const n=a.match(Hj);n&&n[1]&&(t=n[1])}return{src:n.match(Gj)[1],fontUrl:a,format:t}}))}),n.medias.forEach(n=>ex(n)),n.supports.forEach(n=>ex(n)),n.layers.forEach(n=>ex(n))}function tx(n,e){if(e.rootDocument&&e.updatedResources[n])return e.updatedResources[n].retrieved=!0,e.updatedResources[n].content}function ax(n){return!n||n.startsWith(zj)?n:n.split("#")[0]}function ox(n="",e="utf-8"){const t=ix(n);return!t||t==e.toLowerCase()}function ix(n=""){const e=n.match(/^@charset\s+"([^"]*)";/i);if(e&&e[1])return e[1].toLowerCase().trim()}function rx(n){return Xj.findAll(n,n=>"Url"==n.type)}function sx(n){return Xj.findAll(n,n=>"Atrule"==n.type&&"import"==n.name)}function lx(n){return(n=n.filter(n=>n.href!=$j.EMPTY_RESOURCE)).sort((n,e)=>(parseInt(e.sizes,10)||16)-(parseInt(n.sizes,10)||16)),n[0]}function cx(n){return n&&(n.startsWith(zj)||n.startsWith(Ej))}function dx(n){return n.replace(/url\(-sf-url-original\\\(\\"(.*?)\\"\\\)\\ /g,"/* original URL: $1 */url(")}function mx(n){return n&&(n.startsWith(zj)||"about:blank"==n)}function hx(n){return n&&!n.match(Dj)}function px(n){return hx(n)&&(n.match(Rj)||n.match(Ij)||n.startsWith(Ej))&&n.match(Mj)}async function ux(n,e,{imageReductionFactor:t}){if(e){const a=e.substring(5,e.indexOf(";"));if("image/jpeg"==a||"image/png"==a||"image/webp"==a)try{const o=new Yj;o.src=e,await new Promise((n,e)=>{o.onload=n,o.onerror=e});const i=o.naturalWidth/t,r=o.naturalHeight/t;let s;try{const n=new Zj(i,r);n.getContext("2d").drawImage(o,0,0,i,r),s=await n.convertToBlob({type:a})}catch{const e=n.createElement("canvas");e.width=i,e.height=r;e.getContext("2d").drawImage(o,0,0,i,r),s=await new Promise(n=>e.toBlob(e=>{if(!e)throw new Error("Canvas toBlob failed");n(e)},a))}s.type==a&&(e=await gx(s,a))}catch{}}return e}function gx(n,e,t){const a=n instanceof Kj?n:new Kj([n],{type:(e||"")+(t?";charset="+t:"")});return new Promise((n,e)=>{const t=new Jj;t.onload=()=>n(t.result),t.onerror=()=>e(new Error(t.error)),t.readAsDataURL(a)})}const wx=globalThis.JSON,bx=globalThis.FontFace,fx=globalThis.Set,yx=globalThis.setTimeout,kx=globalThis.clearTimeout,vx=globalThis.Image,Sx="utf-8",jx="data:image/svg+xml",xx=["data:text/"],Cx=/<script/gi,Ax=/<noscript/gi,Lx=/<canvas/gi,zx="--sf-img-",Tx=524288,Ex=/^url\(["']?data:[^,]*,?["']?\)/,Rx="local(",Ix="data-sf-duplicate-stylesheet-ref";let Dx;const Mx=globalThis.JSON,Px=globalThis.FontFace,Nx=globalThis.Blob,_x="utf-8",Bx=/<script/gi,Ox=/<noscript/gi,Fx=/<canvas/gi,Ux=/^url\(["']?data:[^,]*,?["']?\)/,qx="local(";let Hx;function Wx(n,e){return n.compressContent?function(n){Hx=n;const e=Qj(Hx,Xf);return class extends e{async resolveStylesheets(n,e,t,a,o,i,r){"LINK"==n.tagName.toUpperCase()&&(n.removeAttribute("integrity"),n.charset&&(o.charset=n.charset),e.url=n.href),await this.resolveStylesheetElement(n,e,t,a,o,i,r)}async resolveStylesheetElement(n,e,t,a,o,i,r){!o.blockStylesheets||o.keepPrintStyleSheets&&"print"==e.mediaText?(t.set({element:n},e),o.inlineStylesheetsRefs.has(n)||("LINK"==n.tagName.toUpperCase()?await this.resolveLinkStylesheetURLs(e,n,n.href,a,o,i,r,t):(e.stylesheet=Uf(n.textContent,{context:"stylesheet",parseCustomProperty:!0}),await this.resolveImportURLs(e,a,o,i,r,t)))):"LINK"==n.tagName.toUpperCase()?n.href=Hx.EMPTY_RESOURCE:n.textContent=""}replaceStylesheets(n,e,t,a){const o=Array.from(e).reverse(),i=new Map;Array.from(new Set(t.inlineStylesheetsRefs.values())).forEach(e=>{const o=n.createElement("link");o.setAttribute("rel","stylesheet"),o.setAttribute("type","text/css");const r="stylesheet_"+a.stylesheets.size+".css";o.setAttribute("href",r);let{content:s}=t.inlineStylesheets.get(e);const l=Uf(s,{context:"stylesheet",parseCustomProperty:!0});this.replacePseudoClassDefined(l),s=this.generateStylesheetContent(l,t),a.stylesheets.set(a.stylesheets.size,{name:r,content:s}),i.set(e,o)});for(const[n,e]of o)if(n.urlNode){const o="stylesheet_"+a.stylesheets.size+".css";!cx(e.url)&&t.saveOriginalURLs?n.urlNode.value="-sf-url-original("+Mx.stringify(e.url)+") "+o:n.urlNode.value=o,a.stylesheets.set(a.stylesheets.size,{name:o,stylesheet:e.stylesheet,url:e.url})}else if("LINK"==n.element.tagName.toUpperCase()){const t=n.element,o="stylesheet_"+a.stylesheets.size+".css";t.setAttribute("href",o),a.stylesheets.set(a.stylesheets.size,{name:o,stylesheet:e.stylesheet,url:e.url})}else{const a=n.element,o=t.inlineStylesheetsRefs.get(a);if(void 0===o)a.textContent=this.generateStylesheetContent(e.stylesheet,t);else{const t=i.get(o).cloneNode(!0);e.mediaText&&(t.media=e.mediaText),a.replaceWith(t),n.element=t}}for(const[,n]of a.stylesheets)n.stylesheet&&(n.content=this.generateStylesheetContent(n.stylesheet,t),n.stylesheet=null)}async resolveImportURLs(n,e,t,a,o,i){const r=n.stylesheet,s=n.scoped;this.resolveStylesheetURLs(r,e,a);const l=sx(r);await Promise.all(l.map(async n=>{const r=Vf(n,n=>"Url"==n.type)||Vf(n,n=>"String"==n.type);if(r){let l=ax(r.value);if(!mx(l)&&hx(l)){r.value=Hx.EMPTY_RESOURCE;try{l=Hx.resolveURL(l,e)}catch(n){}if(px(l)){const e=Vf(n,n=>"MediaQueryList"==n.type);let c,d,m;e&&(c=qf(e));const h=Vf(n,n=>"Layer"==n.type);h&&(d=h.name);const p=Vf(n,n=>"Supports"==n.type);p&&(m=qf(p));const u=Array.from(i).find(([,n])=>n.resourceURL==l);let g;if(u)g=u[1].stylesheet,i.set({urlNode:r},{url:l,stylesheet:g,scoped:s});else{const n={scoped:s,mediaText:c,layerName:d,supportsCondition:m},e=await this.getStylesheetContent(l,t);n.url=l=e.resourceURL,e.data=tx(l,t)||e.data,n.stylesheet=Uf(e.data,{context:"stylesheet",parseCustomProperty:!0}),g=n.stylesheet,await this.resolveImportURLs(n,l,t,a,o,i),i.set({urlNode:r},n)}r.importedChildren=g.children,r.importedMediaText=c,r.importedLayerName=d,r.importedSupportsCondition=m}}}}))}async resolveLinkStylesheetURLs(n,e,t,a,o,i,r,s){if((t=ax(t))&&t!=a&&"about:blank"!=t){const l=Array.from(s).find(([,n])=>n.resourceURL==t);if(l)s.set({element:e},{url:t,stylesheet:l[1].stylesheet,mediaText:n.mediaText});else{const l=await Hx.getContent(t,{maxResourceSize:o.maxResourceSize,maxResourceSizeEnabled:o.maxResourceSizeEnabled,charset:o.charset,frameId:o.frameId,resourceReferrer:o.resourceReferrer,validateTextContentType:!0,baseURI:a,blockMixedContent:o.blockMixedContent,expectedType:"stylesheet",acceptHeaders:o.acceptHeaders,networkTimeout:o.networkTimeout});ox(l.data,l.charset)||ox(l.data,o.charset)?(t=l.resourceURL,l.data=tx(l.resourceURL,o)||l.data,n.stylesheet=Uf(l.data,{context:"stylesheet",parseCustomProperty:!0}),await this.resolveImportURLs(n,t,o,i,r,s)):(o=Object.assign({},o,{charset:ix(l.data)}),await this.resolveLinkStylesheetURLs(n,e,t,a,o,i,r,s))}}}async processFrame(n,e,t,a,o,i){const r="frames/"+a.frames.size+"/";let s="allow-popups allow-top-navigation-by-user-activation allow-scripts";(e.content.match(Ox)||e.content.match(Fx)||e.content.match(Bx)||t.saveRawPage)&&(s+=" allow-modals allow-popups allow-downloads allow-pointer-lock allow-presentation"),n.setAttribute("sandbox",s),"OBJECT"==n.tagName.toUpperCase()?n.setAttribute("data",r+"index.html"):n.setAttribute("src",r+"index.html"),a.frames.set(o,{name:r,content:e.content,resources:e.resources,url:i.url})}async processFont(n,e,t,a,o,i,r){let{content:s,extension:l,indexResource:c,contentType:d}=await r.addURL(n,{asBinary:!0,expectedType:"font",baseURI:a,blockMixedContent:o.blockMixedContent});const m="fonts/"+c+l;!cx(n)&&o.saveOriginalURLs?e.value="-sf-url-original("+Mx.stringify(t)+") "+m:e.value=m,i.fonts.set(c,{name:m,content:s,extension:l,contentType:d,url:n})}async processStyle(n,e,t,a){const o=rx(n);await Promise.all(o.map(async n=>{const o=n.value;if(e.blockImages)n.value=Hx.EMPTY_RESOURCE;else{const i=ax(o);if(!mx(i)&&px(i)){let{content:r,indexResource:s,contentType:l,extension:c}=await a.addURL(i,{asBinary:!0,expectedType:"image"});const d="images/"+s+c;!cx(i)&&e.saveOriginalURLs?n.value="-sf-url-original("+Mx.stringify(o)+") "+d:n.value=d,t.images.set(s,{name:d,content:r,extension:c,contentType:l,url:i})}}}))}async processAttribute(n,e,t,a,o,i,r,s,l){function c(n,e,t){"video"==t||"audio"==t?n.removeAttribute(e):n.setAttribute(e,Hx.EMPTY_RESOURCE)}await Promise.all(Array.from(e).map(async e=>{let d=e.getAttribute(t);if(null!=d){d=ax(d);let m=e.dataset.singleFileOriginURL;if(o.saveOriginalURLs&&!cx(d)&&e.setAttribute("data-sf-original-"+t,d),delete e.dataset.singleFileOriginURL,i&&o["block"+i.charAt(0).toUpperCase()+i.substring(1)+"s"])c(e,t,i);else if(!mx(d)&&(c(e,t,i),hx(d))){try{d=Hx.resolveURL(d,a)}catch(n){}if(px(d)){const c=["OBJECT","EMBED"].includes(e.tagName.toUpperCase())?e.getAttribute("type"):"";let{content:h,indexResource:p,extension:u,contentType:g,charset:w}=await l.addURL(d,{asBinary:!0,expectedType:i,contentType:c});if(m&&this.testEmptyResource(h)){try{m=Hx.resolveURL(m,a)}catch(n){}try{d=m,h=(await Hx.getContent(d,{asBinary:!0,expectedType:i,contentType:c,maxResourceSize:o.maxResourceSize,maxResourceSizeEnabled:o.maxResourceSizeEnabled,frameId:o.windowId,resourceReferrer:o.resourceReferrer,acceptHeaders:o.acceptHeaders,networkTimeout:o.networkTimeout})).data}catch(n){}}if(o.imageReductionFactor>1&&"image"==i){const e=await ux(n,await gx(new Nx([h],{type:g}),w),o);h=(await Hx.getContent(e,{asBinary:!0})).data}if(s&&this.testEmptyResource(h))e.remove();else if(!this.testEmptyResource(h)){const n="images/"+p+u;e.setAttribute(t,n),r.images.set(p,{name:n,content:h,extension:u,contentType:g,url:d})}}}}}))}async processImageSrcset(n,e,t,a){const{content:o,indexResource:i,extension:r,contentType:s}=await a.addURL(n,{asBinary:!0,expectedType:"image"}),l="images/"+i+r;return t.images.set(i,{name:l,content:o,extension:r,contentType:s,url:n}),l+(e.w?" "+e.w+"w":e.h?" "+e.h+"h":e.d?" "+e.d+"x":"")}testEmptyResource(n){return!n}generateStylesheetContent(n,e){e.compressCSS&&this.removeSingleLineCssComments(n),this.replacePseudoClassDefined(n);let t=qf(n);return e.compressCSS&&(t=Hx.compressCSS(t)),e.saveOriginalURLs&&(t=dx(t)),t}getAdditionalPageData(n,e,t){const a={};let o=e;t.stylesheets.forEach(n=>o+=n.content),Object.keys(t).forEach(n=>{Array.from(t[n]).filter(([,n])=>!o.includes(n.name)).forEach(([e])=>t[n].delete(e)),a[n]=Array.from(t[n].values())});const i=n.head.querySelector("meta[name=viewport]"),r=i?i.content:null;return{doctype:Hx.getDoctypeString(n),resources:a,viewport:r}}async processScript(n,e,t,a,o,i){let{content:r,indexResource:s,extension:l,contentType:c}=await o.addURL(e,{asBinary:!0,charset:a!=_x&&a,maxResourceSize:t.maxResourceSize,maxResourceSizeEnabled:t.maxResourceSizeEnabled,frameId:t.windowId,resourceReferrer:t.resourceReferrer,baseURI:t.baseURI,blockMixedContent:t.blockMixedContent,expectedType:"script",acceptHeaders:t.acceptHeaders,networkTimeout:t.networkTimeout});r=tx(e,t)||r;const d="scripts/"+s+l;n.setAttribute("src",d),i.scripts.set(s,{name:d,content:r,extension:l,contentType:c,url:e})}async processWorklet(n,e,t,a,o,i,r){let{content:s,indexResource:l,extension:c,contentType:d}=await i.addURL(e,{asBinary:!0,charset:o!=_x&&o,maxResourceSize:a.maxResourceSize,maxResourceSizeEnabled:a.maxResourceSizeEnabled,frameId:a.windowId,resourceReferrer:a.resourceReferrer,baseURI:a.baseURI,blockMixedContent:a.blockMixedContent,expectedType:"script",acceptHeaders:a.acceptHeaders,networkTimeout:a.networkTimeout});const m="scripts/"+l+c;n.textContent+=t?` CSS.paintWorklet.addModule("${m}", ${Mx.stringify(t)});\n`:` CSS.paintWorklet.addModule("${m}");\n`,r.worklets.set(l,{name:m,workletOptions:t,content:s,extension:c,contentType:d,url:e})}setMetaCSP(n){n.content="default-src 'none'; connect-src 'self' data: blob:; font-src 'self' data: blob:; img-src 'self' data: blob:; style-src 'self' 'unsafe-inline' data: blob:; frame-src 'self' data: blob:; media-src 'self' data: blob:; script-src 'self' 'unsafe-inline' data: blob:; object-src 'self' data: blob:;"}removeUnusedStylesheets(){}async processFontFaceRule(n,e,t,a,o){await Promise.all(e.map(async n=>{if(a.has(n.src))n.valid=a.get(n.src);else{if(Px&&n.fontUrl){const e=[...t].find(([,e])=>n.fontUrl&&e.name==n.fontUrl);if(e){const t=e[1],a=new Px("test-font",new Uint8Array(t.content).buffer);try{let e;await Promise.race([a.load().then(()=>a.loaded).then(()=>{n.valid=!0,globalThis.clearTimeout(e)}),new Promise(t=>e=globalThis.setTimeout(()=>{n.valid=!0,t()},5e3))])}catch(e){if("NetworkError"==e.name)n.valid=!0;else{const e=new Px("test-font","url("+t.url+")");try{let t;await Promise.race([e.load().then(()=>e.loaded).then(()=>{n.valid=!0,globalThis.clearTimeout(t)}),new Promise(e=>t=globalThis.setTimeout(()=>{n.valid=!0,e()},5e3))])}catch(n){}}}}else n.valid=!0}else n.valid=!0;a.set(n.src,n.valid)}}));const i=(n,t)=>Hx.findLast(e,e=>!e.src.match(Ux)&&e.format==n&&(!t||e.valid)),r=(n,t)=>Hx.findLast(e,e=>!e.src.match(Ux)&&e.contentType==n&&(!t||e.valid)),s=n=>e.filter(e=>e==n||e.src.startsWith(qx));o.fonts.processed+=e.length,o.fonts.discarded+=e.length;const l=i("woff2-variations",!0)||i("woff2",!0)||i("woff",!0)||r("font/woff2",!0)||r("font/woff",!0)||r("application/font-woff",!0)||r("application/x-font-woff",!0);if(l)e=s(l);else{const n=i("truetype-variations",!0)||i("truetype",!0)||r("font/ttf",!0)||r("application/x-font-ttf",!0)||r("application/x-font-ttf",!0)||r("application/x-font-truetype",!0);if(n)e=s(n);else{const n=i("opentype")||i("embedded-opentype")||r("font/otf")||r("application/x-font-opentype")||r("application/font-sfnt");e=n?s(n):e.filter(n=>!n.src.match(Ux)&&n.valid||n.src.startsWith(qx))}}o.fonts.discarded-=e.length;const c=[];for(let e=n.block.children.head;e;e=e.next)"src"==e.data.property&&c.push(e);c.pop(),c.forEach(e=>n.block.children.remove(e));const d=n.block.children.filter(n=>"src"==n.property).tail;if(d){e.reverse();try{d.data.value=Uf(e.map(n=>n.src).join(","),{context:"value",parseCustomProperty:!0})}catch(n){}}}}}(e):function(n){Dx=n;const e=Qj(Dx,Xf);return class extends e{async resolveStylesheets(n,e,t,a,o,i){"LINK"==n.tagName.toUpperCase()&&n.charset&&(o.charset=n.charset),await this.resolveStylesheetElement(n,e,t,a,o,i)}async resolveStylesheetElement(n,e,t,a,o,i){let r;t.set(n,e),o.inlineStylesheetsRefs.has(n)||((!o.blockStylesheets||o.keepPrintStyleSheets&&"print"==e.mediaText)&&("LINK"==n.tagName.toUpperCase()?r=await this.resolveLinkStylesheetURLs(n.href,a,o,i):(r=Uf(n.textContent,{context:"stylesheet",parseCustomProperty:!0}),await this.resolveImportURLs(r,a,o,i)&&(r=Uf(qf(r),{context:"stylesheet",parseCustomProperty:!0})))),r&&r.children?(o.compressCSS&&this.removeSingleLineCssComments(r),this.replacePseudoClassDefined(r),o.inlineStylesheets.forEach(({content:e,styleElement:t},a)=>{e===n.textContent&&o.inlineStylesheets.set(a,{styleElement:t,content:this.generateStylesheetContent(r,o)})}),e.stylesheet=r):t.delete(n))}replaceStylesheets(n,e,t){if(n.querySelectorAll("style").forEach(a=>{const o=e.get(a);if(o){e.delete(a);const i=t.inlineStylesheetsRefs.get(a);if(void 0===i)a.textContent=this.generateStylesheetContent(o.stylesheet,t),t.inlineStylesheets.forEach(({styleElement:n},e)=>{n===a&&t.inlineStylesheets.set(e,{styleElement:n,content:a.textContent})});else if(t.groupDuplicateStylesheets){if(!n.querySelector("style["+Ix+'="'+i+'"]')){const e=n.createElement("style");e.textContent=t.inlineStylesheets.get(i).content,e.setAttribute("media","not all"),e.setAttribute(Ix,i),n.head.appendChild(e)}a.textContent="/* */",a.setAttribute("onload","this.textContent=document.querySelector('style["+Ix+'="'+i+'"]\')?.textContent;this.removeAttribute("onload")')}else a.textContent=t.inlineStylesheets.get(i).content;o.mediaText&&(a.media=o.mediaText)}else a.remove()}),t.groupDuplicateStylesheets&&n.querySelector("style["+Ix+"]")){const e=n.createElement("script");e.textContent='document.currentScript.remove();addEventListener("load",()=>document.querySelectorAll("style['+Ix+']").forEach(e=>e.remove()))',n.body.appendChild(e)}n.querySelectorAll("link[rel*=stylesheet]").forEach(a=>{const o=e.get(a);if(o){e.delete(a);const i=n.createElement("style");o.mediaText&&(i.media=o.mediaText),i.textContent=this.generateStylesheetContent(o.stylesheet,t),a.parentElement.replaceChild(i,a)}else a.remove()})}async resolveImportURLs(n,e,t,a,o=new fx){let i;this.resolveStylesheetURLs(n,e,a);const r=sx(n);return await Promise.all(r.map(async n=>{const r=Vf(n,n=>"Url"==n.type)||Vf(n,n=>"String"==n.type);if(r){let s=ax(r.value);if(!mx(s)&&hx(s)){r.value=Dx.EMPTY_RESOURCE;try{s=Dx.resolveURL(s,e)}catch(n){}if(px(s)&&!o.has(s)){t.inline=!0;const e=await this.getStylesheetContent(s,t);s=e.resourceURL,e.data=tx(s,t)||e.data,e.data&&e.data.match(/^<!doctype /i)&&(e.data="");const r=Vf(n,n=>"MediaQueryList"==n.type);r&&(e.data=this.wrapMediaQuery(e.data,qf(r)));const l=Vf(n,n=>"LayerList"==n.type);if(l){const n=[];l.children.forEach(e=>{"Identifier"==e.type&&n.push(e.name)}),1==n.length&&(e.data=this.wrapLayer(e.data,n[0]))}const c=Vf(n,n=>"Supports"==n.type);c&&(e.data="@supports "+qf(c)+" { "+e.data+" }");const d=Uf(e.data,{context:"stylesheet",parseCustomProperty:!0}),m=new fx(o);m.add(s),await this.resolveImportURLs(d,s,t,a,m);for(let e of Object.keys(d))n[e]=d[e];i=!0}}}})),i}async resolveLinkStylesheetURLs(n,e,t,a){if((n=ax(n))&&n!=e&&"about:blank"!=n){const o=await Dx.getContent(n,{inline:!0,maxResourceSize:t.maxResourceSize,maxResourceSizeEnabled:t.maxResourceSizeEnabled,charset:t.charset,frameId:t.frameId,resourceReferrer:t.resourceReferrer,validateTextContentType:!0,baseURI:e,blockMixedContent:t.blockMixedContent,expectedType:"stylesheet",acceptHeaders:t.acceptHeaders,networkTimeout:t.networkTimeout});if(!ox(o.data,o.charset)&&!ox(o.data,t.charset))return t=Object.assign({},t,{charset:ix(o.data)}),this.resolveLinkStylesheetURLs(n,e,t,a);n=o.resourceURL,o.data=tx(o.resourceURL,t)||o.data,o.data&&o.data.match(/^<!doctype /i)&&(o.data="");let i=Uf(o.data,{context:"stylesheet",parseCustomProperty:!0});return await this.resolveImportURLs(i,n,t,a)&&(i=Uf(qf(i),{context:"stylesheet",parseCustomProperty:!0})),i}}async processFrame(n,e,t){let a="allow-popups allow-top-navigation-by-user-activation";(e.content.match(Ax)||e.content.match(Lx)||e.content.match(Cx)||t.saveRawPage)&&(a+=" allow-scripts allow-modals allow-popups allow-downloads allow-pointer-lock allow-presentation"),n.setAttribute("sandbox",a),"OBJECT"==n.tagName.toUpperCase()?n.setAttribute("data","data:text/html,"+e.content):"FRAME"==n.tagName.toUpperCase()?n.setAttribute("src","data:text/html,"+e.content.replace(/%/g,"%25").replace(/#/g,"%23")):(n.setAttribute("srcdoc",e.content),n.removeAttribute("src"))}async processFont(n,e,t,a,o,i,r){let{content:s}=await r.addURL(n,{asBinary:!0,expectedType:"font",baseURI:a,blockMixedContent:o.blockMixedContent}),l=i.fonts.get(e);l||(l=[],i.fonts.set(e,l)),l.push(n),!cx(n)&&o.saveOriginalURLs?e.value="-sf-url-original("+wx.stringify(t)+") "+s:e.value=s}async processStyle(n,e,t,a){const o=rx(n);await Promise.all(o.map(async n=>{const o=n.value;if(e.blockImages)n.value=Dx.EMPTY_RESOURCE;else{const i=ax(o);if(!mx(i)&&px(i)){let{content:r,indexResource:s,duplicate:l}=await a.addURL(i,{asBinary:!0,expectedType:"image",groupDuplicates:e.groupDuplicateImages});if(!o.startsWith("#")){const a=e.maxSizeDuplicateImages||Tx;if(l&&e.groupDuplicateImages&&Dx.getContentSize(r)<a){const e=Uf("var("+zx+s+")",{context:"value"});for(let t of Object.keys(e.children.head.data))n[t]=e.children.head.data[t];t.cssVariables.set(s,{content:r,url:o})}else!cx(i)&&e.saveOriginalURLs?n.value="-sf-url-original("+wx.stringify(o)+") "+r:n.value=r}}}}))}async processAttribute(n,e,t,a,o,i,r,s,l,c,d){function m(n,e,t){"video"==t||"audio"==t?n.removeAttribute(e):n.setAttribute(e,Dx.EMPTY_RESOURCE)}await Promise.all(Array.from(e).map(async e=>{let h=e.getAttribute(t);if(null!=h){h=ax(h);let p=e.dataset.singleFileOriginURL;if(o.saveOriginalURLs&&!cx(h)&&e.setAttribute("data-sf-original-"+t,h),delete e.dataset.singleFileOriginURL,i&&o["block"+i.charAt(0).toUpperCase()+i.substring(1)+"s"])m(e,t,i);else if(!mx(h)&&(m(e,t,i),hx(h))){try{h=Dx.resolveURL(h,a)}catch(n){}if(px(h)){const m=["OBJECT","EMBED"].includes(e.tagName.toUpperCase())?e.getAttribute("type"):"",u=o.groupDuplicateImages&&"IMG"==e.tagName.toUpperCase()&&"src"==t;let{content:g,indexResource:w,duplicate:b}=await l.addURL(h,{asBinary:!0,expectedType:i,contentType:m,groupDuplicates:u});if(p&&this.testEmptyResource(g)){try{p=Dx.resolveURL(p,a)}catch(n){}try{h=p,g=(await Dx.getContent(h,{asBinary:!0,inline:!0,expectedType:i,contentType:m,maxResourceSize:o.maxResourceSize,maxResourceSizeEnabled:o.maxResourceSizeEnabled,frameId:o.windowId,resourceReferrer:o.resourceReferrer,acceptHeaders:o.acceptHeaders,networkTimeout:o.networkTimeout})).data}catch(n){}}if(s&&this.testEmptyResource(g))e.remove();else if(!this.testEmptyResource(g)){let a=xx.filter(n=>g.startsWith(n)).length;if("image"==i){if(a&&vx&&(a=await new Promise(n=>{const e=new vx,t=yx(()=>n(!0),100);function a(e){kx(t),n(e)}e.src=g,e.onload=()=>a(),e.onerror=()=>a(!0)})),!a){const a=g.startsWith(jx),s=o.maxSizeDuplicateImages||Tx;if(d&&b&&!a&&Dx.getContentSize(g)<s)if(o.imageReductionFactor>1&&"image"==i&&(g=await ux(n,g,o)),this.replaceImageSource(e,zx+w,o)){r.cssVariables.set(w,{content:g,url:p});const n=Uf(e.getAttribute("style"),{context:"declarationList",parseCustomProperty:!0});c.set(e,n)}else e.setAttribute(t,g);else e.setAttribute(t,g)}}else e.setAttribute(t,g)}}}}}))}async processImageSrcset(n,e,t,a){const{content:o}=await a.addURL(n,{asBinary:!0,expectedType:"image"});return xx.filter(n=>o.startsWith(n)).length?"":o+(e.w?" "+e.w+"w":e.h?" "+e.h+"h":e.d?" "+e.d+"x":"")}testEmptyResource(n){return n==Dx.EMPTY_RESOURCE}generateStylesheetContent(n,e){let t=qf(n);return e.compressCSS&&(t=Dx.compressCSS(t)),e.saveOriginalURLs&&(t=dx(t)),t}replaceImageSource(n,e,t){if(n.getAttribute(Dx.IMAGE_ATTRIBUTE_NAME)){const a=t.images[Number(n.getAttribute(Dx.IMAGE_ATTRIBUTE_NAME))];if(a&&a.replaceable){n.setAttribute("src",`${jx},<svg xmlns="http://www.w3.org/2000/svg" width="${a.size.pxWidth}" height="${a.size.pxHeight}"><rect fill-opacity="0"/></svg>`);const t={};return("content"==a.objectFit||"cover"==a.objectFit||"contain"==a.objectFit)&&a.objectFit&&(t["background-size"]=a.objectFit),a.objectPosition&&(t["background-position"]=a.objectPosition),a.backgroundColor&&(t["background-color"]=a.backgroundColor),this.setBackgroundImage(n,"var("+e+")",t),n.removeAttribute(Dx.IMAGE_ATTRIBUTE_NAME),!0}}}wrapMediaQuery(n,e){return e?"@media "+e+"{ "+n+" }":n}wrapLayer(n,e){return e?"@layer "+e+" { "+n+" }":n}getAdditionalPageData(){return{}}async processScript(n,e,t,a,o){let i=tx(e,t);i=i?await gx(i,"text/javascript",a):(await o.addURL(e,{asBinary:!0,inline:!0,charset:a!=Sx&&a,maxResourceSize:t.maxResourceSize,maxResourceSizeEnabled:t.maxResourceSizeEnabled,frameId:t.windowId,resourceReferrer:t.resourceReferrer,baseURI:t.baseURI,blockMixedContent:t.blockMixedContent,expectedType:"script",acceptHeaders:t.acceptHeaders,networkTimeout:t.networkTimeout})).content,n.setAttribute("src",i)}async processWorklet(n,e,t,a,o,i){let{content:r}=await i.addURL(e,{asBinary:!0,charset:o!=Sx&&o,maxResourceSize:a.maxResourceSize,maxResourceSizeEnabled:a.maxResourceSizeEnabled,frameId:a.windowId,resourceReferrer:a.resourceReferrer,baseURI:a.baseURI,blockMixedContent:a.blockMixedContent,expectedType:"script",acceptHeaders:a.acceptHeaders,networkTimeout:a.networkTimeout});n.textContent+=t?` CSS.paintWorklet.addModule("${r}", ${wx.stringify(t)});\n`:` CSS.paintWorklet.addModule("${r}");\n`}setMetaCSP(n){n.content="default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;"}removeUnusedStylesheets(n){n.querySelectorAll("link[rel*=stylesheet][rel*=alternate][title]").forEach(n=>n.remove())}async processFontFaceRule(n,e,t,a,o){const i=[];for(let e=n.block.children.head;e;e=e.next)"src"==e.data.property&&i.push(e);i.pop(),i.forEach(e=>n.block.children.remove(e));const r=n.block.children.filter(n=>"src"==n.property).tail;if(r){await Promise.all(e.map(async n=>{if(a.has(n.src))n.valid=a.get(n.src);else{if(bx&&n.fontUrl){const e=new bx("test-font",n.src);try{let t;await Promise.race([e.load().then(()=>e.loaded).then(()=>{n.valid=!0,globalThis.clearTimeout(t)}),new Promise(e=>t=globalThis.setTimeout(()=>{n.valid=!0,e()},5e3))])}catch(e){if("NetworkError"==e.name)n.valid=!0;else{const e=Jf(r.data,n=>"Url"==n.type),a=Array.from(t).find(([t])=>e.includes(t)&&t.value==n.fontUrl);if(a&&a[1].length){const e=a[1][0];if(e){const t=new bx("test-font","url("+e+")");try{let e;await Promise.race([t.load().then(()=>t.loaded).then(()=>{n.valid=!0,globalThis.clearTimeout(e)}),new Promise(t=>e=globalThis.setTimeout(()=>{n.valid=!0,t()},5e3))])}catch(n){}}}else n.valid=!0}}}else n.valid=!0;a.set(n.src,n.valid)}}));const n=(n,t)=>Dx.findLast(e,e=>!e.src.match(Ex)&&e.format==n&&(!t||e.valid)),i=n=>e.filter(e=>e==n||e.src.startsWith(Rx));o.fonts.processed+=e.length,o.fonts.discarded+=e.length;const s=n("woff2-variations",!0)||n("woff2",!0)||n("woff",!0);if(s)e=i(s);else{const t=n("truetype-variations",!0)||n("truetype",!0);if(t)e=i(t);else{const t=n("opentype")||n("embedded-opentype");e=t?i(t):e.filter(n=>!n.src.match(Ex)&&n.valid||n.src.startsWith(Rx))}}o.fonts.discarded-=e.length,e.reverse();try{r.data.value=Uf(e.map(n=>n.src).join(","),{context:"value",parseCustomProperty:!0})}catch(n){}}}}}(e)}const Gx=globalThis.Set,Vx=globalThis.Map,Kx=globalThis.JSON;let Jx;class Yx{constructor(n){this.options=n;const e=Wx(n,Jx);this.processorHelper=new e}async run(){const n=globalThis[Jx.WAIT_FOR_USERSCRIPT_PROPERTY_NAME];this.options.userScriptEnabled&&n&&await n(Jx.ON_BEFORE_CAPTURE_EVENT_NAME,this.options),this.runner=new rC(this.options,this.processorHelper,!0),await this.runner.loadPage(),await this.runner.initialize(),this.options.userScriptEnabled&&n&&await n(Jx.ON_AFTER_CAPTURE_EVENT_NAME,this.options),await this.runner.run()}cancel(){this.cancelled=!0,this.runner&&this.runner.cancel()}getPageData(){return this.runner.getPageData()}}const Zx="page-loading",$x="page-loaded",Xx="resource-initializing",Qx="resources-initialized",nC="resource-loaded",eC="page-ended",tC="stage-started",aC="stage-ended";class oC{constructor(n,e){return{type:n,detail:e,PAGE_LOADING:Zx,PAGE_LOADED:$x,RESOURCES_INITIALIZING:Xx,RESOURCES_INITIALIZED:Qx,RESOURCE_LOADED:nC,PAGE_ENDED:eC,STAGE_STARTED:tC,STAGE_ENDED:aC}}}const iC=[{sequential:[{action:"preProcessPage"},{option:"loadDeferredImagesKeepZoomLevel",action:"resetZoomLevel"},{action:"replaceStyleContents"},{action:"replaceInvalidElements"},{action:"resetCharsetMeta"},{action:"resetReferrerMeta"},{option:"saveFavicon",action:"saveFavicon"},{action:"insertFonts"},{action:"insertShadowRootContents"},{action:"replaceCanvasElements"},{action:"setInputValues"},{option:"moveStylesInHead",action:"moveStylesInHead"},{option:"blockScripts",action:"removeEmbedScripts"},{option:"selected",action:"removeUnselectedElements"},{option:"blockVideos",action:"insertVideoPosters"},{option:"blockVideos",action:"insertVideoLinks"},{option:"removeFrames",action:"removeFrames"},{action:"removeDiscardedResources"},{option:"removeHiddenElements",action:"removeHiddenElements"},{action:"saveScrollPosition"},{action:"resolveHrefs"},{action:"resolveStyleAttributeURLs"}],parallel:[{option:"blockVideos",action:"insertMissingVideoPosters"},{action:"resolveStylesheetsURLs"},{option:"!removeFrames",action:"resolveFrameURLs"}]},{sequential:[{option:"removeUnusedStyles",action:"removeUnusedStyles"},{option:"removeAlternativeMedias",action:"removeAlternativeMedias"},{option:"removeUnusedFonts",action:"removeUnusedFonts"}],parallel:[{action:"processStylesheets"},{action:"processStyleAttributes"},{action:"processPageResources"},{action:"processScripts"},{action:"processWorklets"}]},{sequential:[{option:"removeAlternativeImages",action:"removeAlternativeImages"}],parallel:[{option:"removeAlternativeFonts",action:"removeAlternativeFonts"},{option:"!removeFrames",action:"processFrames"}]},{sequential:[{action:"replaceStylesheets"},{action:"replaceStyleAttributes"},{action:"insertVariables"},{option:"compressHTML",action:"compressHTML"},{action:"cleanupPage"}],parallel:[{option:"enableMaff",action:"insertMAFFMetaData"},{action:"setDocInfo"}]},{sequential:[{action:"loadOptionsFromPage"},{option:"saveFilenameTemplateData",action:"saveFilenameTemplateData"}]}];class rC{constructor(n,e,t){const a=t&&n.doc;this.root=t,this.options=n,this.options.url=this.options.url||a&&this.options.doc.documentURI;const o=this.options.url.match(/^.*\//);if(this.options.resourceReferrer=this.options.passReferrerOnError&&o&&o[0],this.options.baseURI=a&&(CC(this.options.doc.baseURI)?this.options.doc.baseURI:this.options.url),this.options.rootDocument=t,this.options.updatedResources=this.options.updatedResources||{},this.options.fontTests=new Vx,this.batchRequest=new sC,this.processor=new pC(n,e,this.batchRequest),a){const n=Jx.preProcessDoc(this.options.doc,this.options.win,this.options);this.options.canvases=n.canvases,this.options.fonts=n.fonts,this.options.worklets=n.worklets,this.options.stylesheets=n.stylesheets,this.options.images=n.images,this.options.posters=n.posters,this.options.videos=n.videos,this.options.usedFonts=n.usedFonts,this.options.shadowRoots=n.shadowRoots,this.options.referrer=n.referrer,this.options.adoptedStyleSheets=n.adoptedStyleSheets,this.markedElements=n.markedElements,this.invalidElements=n.invalidElements}this.options.saveRawPage&&!this.options.removeFrames&&(this.options.frames=[]),this.options.content=this.options.content||(a?Jx.serialize(this.options.doc):null),this.onprogress=n.onprogress||(()=>{})}async loadPage(){await this.onprogress(new oC(Zx,{pageURL:this.options.url,frame:!this.root,options:this.options})),await this.processor.loadPage(this.options.content),await this.onprogress(new oC($x,{pageURL:this.options.url,frame:!this.root,options:this.options}))}async initialize(){await this.onprogress(new oC(Xx,{pageURL:this.options.url,options:this.options})),await this.executeStage(0),this.pendingPromises=this.executeStage(1),this.root&&this.options.doc&&Jx.postProcessDoc(this.options.doc,this.markedElements,this.invalidElements)}cancel(){this.cancelled=!0,this.batchRequest.cancel(),this.root&&this.options.frames&&this.options.frames.forEach(function(n){n.runner&&n.runner.cancel()})}async run(){this.root&&(this.processor.initialize(this.batchRequest),await this.onprogress(new oC(Qx,{pageURL:this.options.url,max:this.processor.maxResources,options:this.options}))),await this.batchRequest.run(async n=>{n.pageURL=this.options.url,n.options=this.options,await this.onprogress(new oC(nC,n))},this.options),await this.pendingPromises,this.options.doc=null,this.options.win=null,await this.executeStage(2),await this.executeStage(3),await this.executeStage(4),this.processor.finalize()}getDocument(){return this.processor.doc}getStyleSheets(){return this.processor.stylesheets}async getPageData(){return this.root&&await this.onprogress(new oC(eC,{pageURL:this.options.url,options:this.options})),this.processor.getPageData()}async executeStage(n){const e=!this.root;await this.onprogress(new oC(tC,{pageURL:this.options.url,step:n,frame:e,options:this.options}));for(const e of iC[n].sequential)this.cancelled||this.executeTask(e);let t;return t=iC[n].parallel?await Promise.all(iC[n].parallel.map(async n=>{this.cancelled||await this.executeTask(n)})):Promise.resolve(),await this.onprogress(new oC(aC,{pageURL:this.options.url,step:n,frame:e,options:this.options})),t}executeTask(n){if(!n.option||n.option.startsWith("!")&&!this.options[n.option]||this.options[n.option])return this.processor[n.action]()}}class sC{constructor(){this.requests=new Vx,this.duplicates=new Vx}addURL(n,{asBinary:e,expectedType:t,groupDuplicates:a,baseURI:o,blockMixedContent:i,contentType:r}={}){return new Promise((s,l)=>{const c=Kx.stringify([n,e,t,o,i,r]);let d=this.requests.get(c);d||(d=[],this.requests.set(c,d));const m={resolve:s,reject:l};if(d.push(m),a){let n=this.duplicates.get(c);n||(n=[],this.duplicates.set(c,n)),n.push(m)}})}getMaxResources(){return this.requests.size}run(n,e){const t=[...this.requests.keys()];let a=0;return Promise.all(t.map(async t=>{const[o,i,r,s,l,c]=Kx.parse(t),d=this.requests.get(t);try{const m=a;a+=1;const h=await Jx.getContent(o,{asBinary:i,inline:!e.compressContent,expectedType:r,contentType:c,maxResourceSize:e.maxResourceSize,maxResourceSizeEnabled:e.maxResourceSizeEnabled,frameId:e.windowId,resourceReferrer:e.resourceReferrer,baseURI:s,blockMixedContent:l,acceptHeaders:e.acceptHeaders,networkTimeout:e.networkTimeout});if(await n({url:o}),!this.cancelled){const n=Jx.getContentTypeExtension(h.contentType)||Jx.getFilenameExtension(o,e.filenameReplacedCharacters,e.filenameReplacementCharacter,e.filenameReplacementCharacters);d.forEach(e=>{const a=this.duplicates.get(t),o=a&&a.length>1&&a.includes(e);e.resolve({content:h.data,indexResource:m,duplicate:o,contentType:h.contentType,extension:n})})}}catch(e){a+=1,await n({url:o}),d.forEach(n=>n.reject(e))}this.requests.delete(t)}))}cancel(){this.cancelled=!0;[...this.requests.keys()].forEach(n=>{this.requests.get(n).forEach(n=>n.reject()),this.requests.delete(n)})}}const lC="shadowrootmode",cC="shadowrootdelegatesfocus",dC="shadowrootclonable",mC="shadowrootserializable",hC="data-single-file-options";class pC{constructor(n,e,t){this.options=n,this.processorHelper=e,this.stats=new LC(n),this.baseURI=SC(n.baseURI||n.url),this.batchRequest=t,this.stylesheets=new Vx,this.styles=new Vx,this.resources={cssVariables:new Vx,fonts:new Vx,worklets:new Vx,stylesheets:new Vx,scripts:new Vx,images:new Vx,frames:new Vx},this.fontTests=n.fontTests}initialize(){this.options.saveDate=new Date,this.options.saveUrl=this.options.url,this.options.enableMaff&&(this.maffMetaDataPromise=this.batchRequest.addURL(Jx.resolveURL("index.rdf",this.options.baseURI||this.options.url),{expectedType:"document"})),this.maxResources=this.batchRequest.getMaxResources(),!this.options.removeFrames&&this.options.frames&&this.options.frames.forEach(n=>this.maxResources+=n.maxResources||0),this.stats.set("processed","resources",this.maxResources)}async loadPage(n,e){let t;if(n&&!this.options.saveRawPage||(t=await Jx.getContent(this.baseURI,{inline:!this.options.compressContent,maxResourceSize:this.options.maxResourceSize,maxResourceSizeEnabled:this.options.maxResourceSizeEnabled,charset:e,frameId:this.options.windowId,resourceReferrer:this.options.resourceReferrer,expectedType:"document",acceptHeaders:this.options.acceptHeaders,networkTimeout:this.options.networkTimeout}),n=t.data||""),this.doc=Jx.parseDocContent(n,this.baseURI),Jx.fixInvalidNesting(this.doc),this.options.saveRawPage){let e;if(this.doc.querySelectorAll("meta[charset]").forEach(n=>{e||(e=n.getAttribute("charset").trim().toLowerCase())}),e||this.doc.querySelectorAll('meta[http-equiv="content-type"]').forEach(n=>{const t=n.content.split(";")[1];t&&!e&&(e=t.split("=")[1].trim().toLowerCase())}),e&&t.charset&&e!=t.charset.toLowerCase())return this.loadPage(n,e)}this.workStyleElement=this.doc.createElement("style"),this.doc.body.appendChild(this.workStyleElement),this.onEventAttributeNames=function(n){const e=n.body||n.createElement("div"),t=[];for(const n in e)n.startsWith("on")&&t.push(n);return t}(this.doc)}finalize(){this.workStyleElement.parentNode&&this.workStyleElement.remove()}async getPageData(){let n;Jx.postProcessDoc(this.doc);const e=Jx.parseURL(this.baseURI);if(this.options.insertSingleFileComment){const e=this.doc.documentElement.firstChild;let t=this.options.saveUrl,a=this.options.saveDate;if(8==e.nodeType&&(e.textContent.includes(Jx.COMMENT_HEADER_LEGACY)||e.textContent.includes(Jx.COMMENT_HEADER))){const n=this.doc.documentElement.firstChild.textContent.split("\n");try{const[,,o,i]=n;t=o.split("url: ")[1].trim(),a=i.split("saved date: ")[1],e.remove()}catch(n){}}const o=(this.options.infobarContent||"").replace(/\\n/g,"\n").replace(/\\t/g,"\t");n="\n "+(this.options.useLegacyCommentHeader?Jx.COMMENT_HEADER_LEGACY:Jx.COMMENT_HEADER)+" \n url: "+t+(this.options.removeSavedDate?" ":" \n saved date: "+a)+(o?" \n info: "+o:"")+"\n";const i=this.doc.createComment(n);this.doc.documentElement.insertBefore(i,this.doc.documentElement.firstChild)}const t=this.doc.querySelector("singlefile-infobar");t&&t.remove();const a=this.doc.querySelector(Jx.INFOBAR_TAGNAME);if(a&&a.remove(),this.options.includeInfobar&&Jx.appendInfobar(this.doc,this.options),this.options.insertCanonicalLink&&this.options.saveUrl.match(bC)){let n=this.doc.querySelector("link[rel=canonical]");n||(n=this.doc.createElement("link"),n.setAttribute("rel","canonical"),this.doc.head.appendChild(n)),n&&!n.href&&(n.href=this.options.saveUrl)}if(this.options.insertMetaCSP){const n=this.doc.createElement("meta");n.httpEquiv="content-security-policy",this.processorHelper.setMetaCSP(n),this.doc.head.appendChild(n)}if(this.options.insertMetaNoIndex){let n=this.doc.querySelector("meta[name=robots][content*=noindex]");n||(n=this.doc.createElement("meta"),n.setAttribute("name","robots"),n.setAttribute("content","noindex"),this.doc.head.appendChild(n))}const o=this.doc.createElement("style");let i;if(this.doc.querySelector('img[src="data:,"],source[src="data:,"]')&&(o.textContent='img[src="data:,"],source[src="data:,"]{display:none!important}',this.doc.head.appendChild(o)),this.options.displayStats&&(i=Jx.getContentSize(this.doc.documentElement.outerHTML)),this.doc.querySelector(`[${Jx.NESTING_TRACK_ID_ATTRIBUTE_NAME}]`)){const n=this.doc.createElement("script");n.textContent=`(${Jx.getFixInvalidNestingSource()})(document, "${Jx.NESTING_TRACK_ID_ATTRIBUTE_NAME}");`,this.doc.body.appendChild(n)}const r=Jx.serialize(this.doc,this.options.compressHTML);if(this.options.displayStats){const n=Jx.getContentSize(r);this.stats.set("processed","HTML bytes",n),this.stats.add("discarded","HTML bytes",i-n)}const s=await Jx.formatFilename(r,this.doc,this.options),l=Jx.getMimeType(this.options),c=this.baseURI.match(/([^/]*)\/?(\.html?.*)$/)||this.baseURI.match(/\/\/([^/]*)\/?$/),d=this.processorHelper.getAdditionalPageData(this.doc,r,this.resources),m=Object.assign({stats:this.stats.data,title:this.options.title||(this.baseURI&&c?c[1]:e.hostname?e.hostname:""),filename:s,mimeType:l,content:r,comment:n},d);return this.options.addProof&&(m.hash=await Jx.digest("SHA-256",r)),this.options.retrieveLinks&&(m.links=Array.from(new Gx(Array.from(this.doc.links).map(n=>n.href)))),m}preProcessPage(){this.doc.body.querySelectorAll(':not(svg) title, meta, link[href][rel*="icon"]').forEach(n=>{(this.options.win&&n instanceof this.options.win.HTMLElement||n instanceof globalThis.HTMLElement)&&this.doc.head.appendChild(n)}),this.options.images&&!this.options.saveRawPage&&(this.doc.querySelectorAll("img["+Jx.IMAGE_ATTRIBUTE_NAME+"]").forEach(n=>{const e=n.getAttribute(Jx.IMAGE_ATTRIBUTE_NAME);if(e){const t=this.options.images[Number(e)];t&&(this.options.removeHiddenElements&&(t.size&&!t.size.pxWidth&&!t.size.pxHeight||""==n.getAttribute(Jx.HIDDEN_CONTENT_ATTRIBUTE_NAME))?n.setAttribute("src",Jx.EMPTY_RESOURCE):(t.currentSrc&&(n.dataset.singleFileOriginURL=n.getAttribute("src"),n.setAttribute("src",t.currentSrc)),this.options.loadDeferredImages&&(n.getAttribute("src")&&n.getAttribute("src")!=Jx.EMPTY_RESOURCE||!n.getAttribute("data-src")||(t.src=n.dataset.src,n.setAttribute("src",n.dataset.src),n.removeAttribute("data-src")))))}}),this.options.loadDeferredImages&&this.doc.querySelectorAll("img[data-srcset]").forEach(n=>{!n.getAttribute("srcset")&&n.getAttribute("data-srcset")&&(n.setAttribute("srcset",n.dataset.srcset),n.removeAttribute("data-srcset"))}))}loadOptionsFromPage(){const n=this.doc.body.querySelector('script[type="application/json"]['+hC+"]");if(n){const e=Kx.parse(n.textContent);Object.keys(e).forEach(n=>this.options[n]=e[n]),this.options.saveDate=new Date(this.options.saveDate),this.options.visitDate=new Date(this.options.visitDate)}}saveFilenameTemplateData(){if(!this.doc.querySelector("script["+hC+'][type="application/json"]')){const n=this.doc.createElement("script");n.type="application/json",n.setAttribute(hC,""),n.textContent=Kx.stringify({saveUrl:this.options.url,saveDate:this.options.saveDate.getTime(),visitDate:this.options.visitDate.getTime(),filenameTemplate:this.options.filenameTemplate,filenameReplacedCharacters:this.options.filenameReplacedCharacters,filenameReplacementCharacter:this.options.filenameReplacementCharacter,filenameReplacementCharacters:this.options.filenameReplacementCharacters,filenameMaxLengthUnit:this.options.filenameMaxLengthUnit,filenameMaxLength:this.options.filenameMaxLength,replaceEmojisInFilename:this.options.replaceEmojisInFilename,compressContent:this.options.compressContent,selfExtractingArchive:this.options.selfExtractingArchive,extractDataFromPage:this.options.extractDataFromPage,referrer:this.options.referrer,title:this.options.title,info:this.options.info}),this.doc.body.firstChild?this.doc.body.insertBefore(n,this.doc.body.firstChild):this.doc.body.appendChild(n)}}replaceStyleContents(){if(this.options.stylesheets&&this.doc.querySelectorAll("style").forEach((n,e)=>{if(n.getAttribute(Jx.STYLESHEET_ATTRIBUTE_NAME)){const t=this.options.stylesheets[Number(e)];t&&(n.textContent=t)}}),this.options.adoptedStyleSheets&&this.options.adoptedStyleSheets.length){const n=this.doc.createElement("style");n.textContent=this.options.adoptedStyleSheets.join("\n"),this.doc.body.appendChild(n)}}removeUnselectedElements(){function n(n){1==n.nodeType&&n.querySelector("svg,style,link")||!t(n)?e(n):n.remove()}function e(e){t(e)&&(e.style.setProperty("display","none","important"),e.removeAttribute("src"),e.removeAttribute("srcset"),e.removeAttribute("srcdoc"),Array.from(e.childNodes).forEach(n))}function t(n){if(1==n.nodeType){const e=n.tagName&&n.tagName.toUpperCase();return"SVG"!=e&&"STYLE"!=e&&"LINK"!=e}}!function t(a){let o=!1;Array.from(a.childNodes).forEach(a=>{if(1==a.nodeType){const i=""==a.getAttribute(Jx.SELECTED_CONTENT_ATTRIBUTE_NAME);o=o||i,i?(a.removeAttribute(Jx.SELECTED_CONTENT_ATTRIBUTE_NAME),t(a)):o?n(a):e(a)}})}(this.doc.body),this.doc.body.removeAttribute(Jx.SELECTED_CONTENT_ATTRIBUTE_NAME)}insertVideoPosters(){this.options.posters&&this.doc.querySelectorAll("video, video > source").forEach(n=>{let e;e="VIDEO"==n.tagName.toUpperCase()?n:n.parentElement;const t=n.getAttribute(Jx.POSTER_ATTRIBUTE_NAME);if(t){const n=this.options.posters[Number(t)];!e.getAttribute("poster")&&n&&e.setAttribute("poster",n)}})}insertVideoLinks(){const n="16px";this.doc.querySelectorAll("video").forEach(e=>{const t=e.getAttribute(Jx.VIDEO_ATTRIBUTE_NAME);if(t){const a=this.options.videos[Number(t)],o=a&&a.src||e.src;if(e&&o){const t=this.doc.createElement("a"),i=this.doc.createElement("img");t.href=o,t.target="_blank",t.style.setProperty("z-index",2147483647,"important"),t.style.setProperty("position","absolute","important"),t.style.setProperty("top","8px","important"),t.style.setProperty("left","8px","important"),t.style.setProperty("width",n,"important"),t.style.setProperty("height",n,"important"),t.style.setProperty("min-width",n,"important"),t.style.setProperty("min-height",n,"important"),t.style.setProperty("max-width",n,"important"),t.style.setProperty("max-height",n,"important"),i.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAgMAAADXB5lNAAABhmlDQ1BJQ0MgcHJvZmlsZQAAKJF9kj1Iw0AYht+mSkUrDnYQcchQnSyIijqWKhbBQmkrtOpgcukfNGlIUlwcBdeCgz+LVQcXZ10dXAVB8AfEydFJ0UVK/C4ptIjx4LiH9+59+e67A4RGhalm1wSgapaRisfEbG5VDLyiDwEAvZiVmKkn0osZeI6ve/j4ehfhWd7n/hz9St5kgE8kjjLdsIg3iGc2LZ3zPnGIlSSF+Jx43KACiR+5Lrv8xrnosMAzQ0YmNU8cIhaLHSx3MCsZKvE0cVhRNcoXsi4rnLc4q5Uaa9XJbxjMaytprtMcQRxLSCAJETJqKKMCCxFaNVJMpGg/5uEfdvxJcsnkKoORYwFVqJAcP/gb/O6tWZiadJOCMaD7xbY/RoHALtCs2/b3sW03TwD/M3Cltf3VBjD3SXq9rYWPgIFt4OK6rcl7wOUOMPSkS4bkSH6aQqEAvJ/RM+WAwVv6EGtu31r7OH0AMtSr5Rvg4BAYK1L2use9ezr79u+ZVv9+AFlNcp0UUpiqAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5AsHAB8H+DhhoQAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAAJUExURQAAAICHi4qKioTuJAkAAAABdFJOUwBA5thmAAAAAWJLR0QCZgt8ZAAAAJJJREFUOI3t070NRCEMA2CnYAOyDyPwpHj/Va7hJ3FzV7zy3ET5JIwoAF6Jk4wzAJAkzxAYG9YRTgB+24wBgKmfrGAKTcEfAY4KRlRoIeBTgKOCERVaCPgU4Khge2GqKOBTgKOCERVaAEC/4PNcnyoSWHpjqkhwKxbcig0Q6AorXYF/+A6eIYD1lVbwG/jdA6/kA2THRAURVubcAAAAAElFTkSuQmCC",i.style.setProperty("width",n,"important"),i.style.setProperty("height",n,"important"),i.style.setProperty("min-width",n,"important"),i.style.setProperty("min-height",n,"important"),i.style.setProperty("max-width",n,"important"),i.style.setProperty("max-height",n,"important"),t.appendChild(i),e.insertAdjacentElement("afterend",t);const r=e.parentNode.style.getPropertyValue("position");(a.positionParent||r&&"static"==r)&&"static"!=a.positionParent||e.parentNode.style.setProperty("position","relative","important")}}})}removeFrames(){const n=this.doc.querySelectorAll('iframe, frame, object[type="text/html"][data]');this.stats.set("discarded","frames",n.length),this.stats.set("processed","frames",n.length),this.doc.querySelectorAll('iframe, frame, object[type="text/html"][data]').forEach(n=>n.remove())}removeEmbedScripts(){const n="javascript:",e="javascript:void(0)";this.onEventAttributeNames.forEach(n=>this.doc.querySelectorAll("["+n+"]").forEach(e=>e.removeAttribute(n))),this.doc.querySelectorAll("[href]").forEach(t=>{t.href&&t.href.match&&t.href.trim().startsWith(n)&&t.setAttribute("href",e)}),this.doc.querySelectorAll("[src]").forEach(t=>{t.src&&t.src.trim().startsWith(n)&&t.setAttribute("src",e)});const t=this.doc.querySelectorAll('script:not([type="application/ld+json"]):not(['+hC+"])");this.stats.set("discarded","scripts",t.length),this.stats.set("processed","scripts",t.length),t.forEach(n=>n.remove())}removeDiscardedResources(){if(this.doc.querySelectorAll("."+Jx.SINGLE_FILE_UI_ELEMENT_CLASS).forEach(n=>n.remove()),!1===this.options.removeNoScriptTags){const n=new Vx;this.doc.querySelectorAll("noscript").forEach(e=>{const t=this.doc.createElement("div");t.innerHTML=e.dataset[Jx.NO_SCRIPT_PROPERTY_NAME],e.replaceWith(t),n.set(t,e)}),n.forEach((n,e)=>{n.dataset[Jx.NO_SCRIPT_PROPERTY_NAME]=e.innerHTML,e.replaceWith(n)})}else this.doc.querySelectorAll("noscript").forEach(n=>n.remove());this.doc.querySelectorAll("meta[http-equiv=refresh], meta[disabled-http-equiv]").forEach(n=>n.remove()),this.doc.querySelectorAll('meta[http-equiv="content-security-policy"]').forEach(n=>n.remove());const n=this.doc.querySelectorAll('applet, object[data]:not([type="image/svg+xml"]):not([type="image/svg-xml"]):not([type="text/html"]):not([data*=".svg"]):not([data*=".pdf"]), embed[src]:not([src*=".svg"]):not([src*=".pdf"])');this.stats.set("discarded","objects",n.length),this.stats.set("processed","objects",n.length),n.forEach(n=>n.remove());if(this.doc.querySelectorAll("link[rel~=preconnect], link[rel~=prerender], link[rel~=dns-prefetch], link[rel~=preload], link[rel~=manifest], link[rel~=prefetch], link[rel~=modulepreload]").forEach(n=>{const e=n.getAttribute("rel").replace(/(preconnect|prerender|dns-prefetch|preload|prefetch|manifest|modulepreload)/g,"").trim();e.length?n.setAttribute("rel",e):n.remove()}),this.processorHelper.removeUnusedStylesheets(this.doc),this.doc.querySelectorAll('link[rel*=stylesheet]:not([href]),link[rel*=stylesheet][href=""]').forEach(n=>n.remove()),this.options.removeHiddenElements&&this.doc.querySelectorAll("input[type=hidden]").forEach(n=>n.remove()),this.options.removedElementsSelector)try{this.doc.querySelectorAll(this.options.removedElementsSelector).forEach(n=>n.remove())}catch{}this.options.saveFavicon||this.doc.querySelectorAll('link[rel*="icon"]').forEach(n=>n.remove()),this.doc.querySelectorAll("a[ping], area[ping]").forEach(n=>n.removeAttribute("ping")),this.doc.querySelectorAll("a[attributionsrc], img[attributionsrc], script[attributionsrc]").forEach(n=>n.removeAttribute("attributionsrc")),this.doc.querySelectorAll("link[rel=import][href]").forEach(n=>n.remove()),this.doc.querySelectorAll("link[rel=compression-dictionary]").forEach(n=>n.remove())}replaceInvalidElements(){this.doc.querySelectorAll("template["+Jx.INVALID_ELEMENT_ATTRIBUTE_NAME+"]").forEach(n=>{const e=this.doc.createElement("span");if(n.content){const t=n.content.firstChild;t&&(t.hasAttributes()&&Array.from(t.attributes).forEach(n=>{try{e.setAttribute(n.name,n.value)}catch(n){}}),t.childNodes.forEach(n=>e.appendChild(n.cloneNode(!0))));try{n.replaceWith(e)}catch(e){t?n.replaceWith(t):n.remove()}}})}resetCharsetMeta(){let n;this.doc.querySelectorAll('meta[charset], meta[http-equiv="content-type"]').forEach(e=>{const t=e.content.split(";")[1];t&&!n&&(n=t.split("=")[1],n&&(this.charset=n.trim().toLowerCase())),e.remove()});const e=this.doc.createElement("meta");e.setAttribute("charset","utf-8"),this.doc.head.firstChild?this.doc.head.insertBefore(e,this.doc.head.firstChild):this.doc.head.appendChild(e)}resetReferrerMeta(){this.doc.querySelectorAll("meta[name=referrer]").forEach(n=>n.remove());const n=this.doc.createElement("meta");n.setAttribute("name","referrer"),n.setAttribute("content","no-referrer"),this.doc.head.appendChild(n)}setInputValues(){this.options.saveRawPage||(this.doc.querySelectorAll("input, textarea").forEach(n=>{const e=n.getAttribute(Jx.INPUT_VALUE_ATTRIBUTE_NAME);null!=e?"TEXTAREA"==n.tagName.toUpperCase()?n.textContent=e:n.setAttribute("value",e):n.removeAttribute("value")}),this.doc.querySelectorAll("input[type=radio], input[type=checkbox]").forEach(n=>{"true"==n.getAttribute(Jx.INPUT_CHECKED_ATTRIBUTE_NAME)?n.setAttribute("checked",""):n.removeAttribute("checked")}),this.doc.querySelectorAll("select").forEach(n=>{n.querySelectorAll("option").forEach(n=>{null!=n.getAttribute(Jx.INPUT_VALUE_ATTRIBUTE_NAME)?n.setAttribute("selected",""):n.removeAttribute("selected")})}))}moveStylesInHead(){this.doc.querySelectorAll("style").forEach(n=>{""==n.getAttribute(Jx.STYLE_ATTRIBUTE_NAME)&&this.doc.head.appendChild(n)})}saveFavicon(){let n=this.doc.querySelector('link[href][rel="shortcut icon"]');n||(n=this.doc.querySelector('link[href][rel="icon"]')),n||(n=this.doc.createElement("link"),n.setAttribute("type","image/x-icon"),n.setAttribute("rel","shortcut icon"),n.setAttribute("href","/favicon.ico")),this.doc.head.appendChild(n)}saveScrollPosition(){if(this.options.scrollPosition&&"no"==this.options.scrolling&&(this.options.scrollPosition.x||this.options.scrollPosition.y)){const n=this.doc.createElement("script");n.textContent='document.currentScript.remove();addEventListener("load",()=>scrollTo('+this.options.scrollPosition.x+","+this.options.scrollPosition.y+"))",this.doc.body.appendChild(n)}}replaceCanvasElements(){this.options.canvases&&this.doc.querySelectorAll("canvas").forEach(n=>{const e=n.getAttribute(Jx.CANVAS_ATTRIBUTE_NAME);if(e){const t=this.options.canvases[Number(e)];if(t){const e={};t.backgroundColor&&(e["background-color"]=t.backgroundColor),this.processorHelper.setBackgroundImage(n,"url("+t.dataURI+")",e),this.stats.add("processed","canvas",1)}}})}insertFonts(){if(this.options.fonts&&this.options.fonts.length){let n,e=this.doc.querySelector("style, link[rel=stylesheet]");this.options.fonts.forEach(t=>{if(t["font-family"]&&t.src){let a="@font-face{",o="";Object.keys(t).forEach(n=>{o&&(o+=";"),o+=n+":"+t[n]}),a+=o+"}";const i=this.doc.createElement("style");i.textContent=a,n?n.insertAdjacentElement("afterend",i):e?e.parentElement.insertBefore(i,e):this.doc.head.appendChild(i),n=i}})}}removeHiddenElements(){const n=this.doc.querySelectorAll("["+Jx.HIDDEN_CONTENT_ATTRIBUTE_NAME+"]"),e=this.doc.querySelectorAll("["+Jx.REMOVED_CONTENT_ATTRIBUTE_NAME+"]");if(this.stats.set("discarded","hidden elements",e.length),this.stats.set("processed","hidden elements",e.length),n.length){const e="sf-hidden",t="."+e+"{display:none!important}";let a=!1;if(this.doc.querySelectorAll("style").forEach(n=>{n.textContent==t&&(a=!0)}),!a){const n=this.doc.createElement("style");n.textContent=t,this.doc.head.appendChild(n)}n.forEach(n=>{"none"!=n.style.getPropertyValue("display")&&("important"==n.style.getPropertyPriority("display")?n.style.setProperty("display","none","important"):n.classList.contains(e)||n.classList.add(e))})}e.forEach(n=>n.remove())}resolveHrefs(){(void 0===this.options.resolveLinks||this.options.resolveLinks)&&this.doc.querySelectorAll("a[href], area[href]").forEach(n=>{const e=n.getAttribute("href").trim();if(!xC(e)){let t;try{t=Jx.resolveURL(e,this.options.baseURI||this.options.url)}catch(n){}if(t){const e=SC(this.options.url);!t.startsWith(e+"#")||t.startsWith(e+"#!")||this.options.resolveFragmentIdentifierURLs||(t=t.substring(e.length));try{n.setAttribute("href",t)}catch(n){}}}}),this.doc.querySelectorAll("link[href]").forEach(n=>{const e=n.getAttribute("href").trim();if(n.rel.includes("stylesheet")&&this.options.saveOriginalURLs&&!jC(e)&&n.setAttribute("data-sf-original-href",e),!xC(e)){let t;try{t=Jx.resolveURL(e,this.options.baseURI||this.options.url)}catch(n){}if(t)try{n.setAttribute("href",t)}catch(n){}}})}async insertMissingVideoPosters(){await Promise.all(Array.from(this.doc.querySelectorAll("video[src], video > source[src]")).map(async n=>{let e;if(e="VIDEO"==n.tagName.toUpperCase()?n:n.parentElement,!e.poster){const n=e.getAttribute(Jx.VIDEO_ATTRIBUTE_NAME);if(n){const t=this.options.videos[Number(n)],a=t.src||e.src;if(a){const n=this.doc.createElement("video");n.src=a,n.style.setProperty("width",t.size.pxWidth+"px","important"),n.style.setProperty("height",t.size.pxHeight+"px","important"),n.style.setProperty("display","none","important"),n.crossOrigin="anonymous";const o=this.doc.createElement("canvas"),i=o.getContext("2d");return this.options.doc.body.appendChild(n),new Promise(a=>{n.currentTime=t.currentTime,n.oncanplay=()=>{o.width=t.size.videoWidth,o.height=t.size.videoHeight,i.drawImage(n,0,0,o.width,o.height);try{e.poster=o.toDataURL("image/png")}catch(n){e.poster="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='"+t.size.videoWidth+"' height='"+t.size.videoHeight+"'%3E%3C/svg%3E"}n.remove(),a()},n.onerror=()=>{e.poster="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='"+t.size.videoWidth+"' height='"+t.size.videoHeight+"'%3E%3C/svg%3E",n.remove(),a()}})}}}}))}resolveStyleAttributeURLs(){this.doc.querySelectorAll("[style]").forEach(n=>{if(this.options.blockStylesheets)n.removeAttribute("style");else{const e=n.getAttribute("style"),t=Uf(e,{context:"declarationList",parseCustomProperty:!0});this.processorHelper.resolveStylesheetURLs(t,this.baseURI,this.workStyleElement),this.styles.set(n,t)}})}async resolveStylesheetsURLs(){const n=[];if(this.options.inlineStylesheets=new Vx,this.options.inlineStylesheetsRefs=new Vx,this.doc.querySelectorAll("style").forEach(e=>{if(e.textContent){const t=n.indexOf(e.textContent);-1==t?(this.options.inlineStylesheets.set(n.length,{styleElement:e,content:e.textContent}),n.push(e.textContent)):this.options.inlineStylesheetsRefs.set(e,t)}}),await Promise.all(Array.from(this.doc.querySelectorAll("style, link[rel*=stylesheet]:not([disabled])")).map(async n=>{const e=Object.assign({},this.options,{charset:this.charset});let t;n.media&&(t=n.media.toLowerCase());const a={mediaText:t,scoped:Boolean(n.closest("["+lC+"]"))};await this.processorHelper.resolveStylesheets(n,a,this.stylesheets,this.baseURI,e,this.workStyleElement,this.resources)})),this.options.rootDocument){const n=Object.keys(this.options.updatedResources).filter(n=>"stylesheet"==this.options.updatedResources[n].type&&!this.options.updatedResources[n].retrieved).map(n=>this.options.updatedResources[n]);await Promise.all(n.map(async n=>{if(n.retrieved=!0,!this.options.blockStylesheets){const e={},t=this.doc.createElement("style");this.doc.body.appendChild(t),t.textContent=n.content,await this.processorHelper.resolveStylesheetElement(t,e,this.stylesheets,this.baseURI,this.options,this.workStyleElement,this.resources)}}))}}async resolveFrameURLs(){const n=this.processorHelper,e=Array.from(this.doc.querySelectorAll('iframe, frame, object[type="text/html"][data]'));async function t(e,t,a,o,i){i.insertSingleFileComment=!1,i.insertCanonicalLink=!1,i.insertMetaNoIndex=!1,i.saveFavicon=!1,i.includeInfobar=!1,i.saveFilenameTemplateData=!1,i.selected=!1,i.embeddedImage=null,i.embeddedPdf=null,i.url=e.baseURI,i.windowId=a,i.content=e.content,i.canvases=e.canvases,i.fonts=e.fonts,i.worklets=e.worklets,i.stylesheets=e.stylesheets,i.images=e.images,i.posters=e.posters,i.videos=e.videos,i.usedFonts=e.usedFonts,i.shadowRoots=e.shadowRoots,i.scrollPosition=e.scrollPosition,i.scrolling=e.scrolling,i.adoptedStyleSheets=e.adoptedStyleSheets,e.runner=new rC(i,n),e.frameElement=t,await e.runner.loadPage(),await e.runner.initialize(),e.maxResources=o.getMaxResources()}await Promise.all(e.map(async n=>{const e=n.getAttribute("src");let a;if("OBJECT"==n.tagName.toUpperCase()?n.setAttribute("data","data:text/html,"):(n.removeAttribute("src"),n.removeAttribute("srcdoc")),Array.from(n.childNodes).forEach(n=>n.remove()),e&&!xC(e)){try{a=Jx.resolveURL(e,this.baseURI)}catch(n){}this.options.saveOriginalURLs&&e&&!jC(e)&&n.setAttribute("data-sf-original-src",a)}if(this.options.saveRawPage&&a&&CC(a)){const e={adoptedStyleSheets:[],baseURI:a,canvases:[],fonts:[],images:[],posters:[],scrollPosition:{x:0,y:0},shadowRoots:[],stylesheets:[],url:a,usedFonts:[],videos:[],worklets:[]};this.options.frames.push(e),e.windowId=(this.options.windowId||"0")+"."+this.options.frames.length,n.setAttribute(Jx.WIN_ID_ATTRIBUTE_NAME,e.windowId),await t(e,n,null,this.batchRequest,Object.assign({},this.options))}else{const e=n.getAttribute(Jx.WIN_ID_ATTRIBUTE_NAME);if(this.options.frames&&e){const a=this.options.frames.find(n=>n.windowId==e);a&&a.content&&await t(a,n,e,this.batchRequest,Object.assign({},this.options))}}}))}insertShadowRootContents(){const n=this.doc,e=this.options;e.shadowRoots&&e.shadowRoots.length&&function t(a){Array.from(a.querySelectorAll("["+Jx.SHADOW_ROOT_ATTRIBUTE_NAME+"]")).forEach(a=>{const o=a.getAttribute(Jx.SHADOW_ROOT_ATTRIBUTE_NAME);if(o){const i=e.shadowRoots[Number(o)];if(i){const e=n.createElement("template");e.setAttribute(lC,i.mode),i.delegatesFocus&&e.setAttribute(cC,i.delegatesFocus),i.clonable&&e.setAttribute(dC,i.clonable),i.serializable&&e.setAttribute(mC,i.serializable),i.adoptedStyleSheets&&i.adoptedStyleSheets.length&&i.adoptedStyleSheets.forEach(t=>{const a=n.createElement("style");a.textContent=t,e.appendChild(a)});const o=Jx.parseDocContent(i.content);if(o.head){const n=o.head.querySelector("meta[charset]");n&&n.remove(),o.head.childNodes.forEach(n=>e.appendChild(o.importNode(n,!0)))}o.body&&o.body.childNodes.forEach(n=>e.appendChild(o.importNode(n,!0))),t(e),a.firstChild?a.insertBefore(e,a.firstChild):a.appendChild(e)}}})}(this.doc)}removeUnusedStyles(){const n=Jx.minifyCSSRules(this.doc,this.stylesheets);this.stats.set("processed","CSS rules",n.processed),this.stats.set("discarded","CSS rules",n.discarded)}removeUnusedFonts(){Jx.removeUnusedFonts(this.doc,this.stylesheets,this.styles,this.options)}removeAlternativeMedias(){const n=Jx.minifyMedias(this.stylesheets,{keepPrintStyleSheets:this.options.keepPrintStyleSheets});this.stats.set("processed","medias",n.processed),this.stats.set("discarded","medias",n.discarded)}async processStylesheets(){await Promise.all([...this.stylesheets].map(async([,n])=>{n.stylesheet&&await this.processorHelper.processStylesheet(n.stylesheet.children,this.baseURI,this.options,this.resources,this.batchRequest)}))}async processStyleAttributes(){return Promise.all([...this.styles].map(([,n])=>this.processorHelper.processStyle(n,this.options,this.resources,this.batchRequest)))}async processPageResources(){await this.processorHelper.processPageResources(this.doc,this.baseURI,this.options,this.resources,this.styles,this.batchRequest)}async processScripts(){await Promise.all(Array.from(this.doc.querySelectorAll("script[src]")).map(async n=>{let e,t;if(t=n.getAttribute("src"),this.options.saveOriginalURLs&&!jC(t)&&n.setAttribute("data-sf-original-src",t),n.removeAttribute("integrity"),this.options.blockScripts)n.removeAttribute("src");else{n.textContent="";try{e=Jx.resolveURL(t,this.baseURI)}catch(n){}CC(e)&&(n.removeAttribute("src"),await this.processorHelper.processScript(n,e,this.options,this.charset,this.batchRequest,this.resources),"async"!=n.getAttribute("async")&&""!=n.getAttribute(Jx.ASYNC_SCRIPT_ATTRIBUTE_NAME)||n.setAttribute("async",""))}this.stats.add("processed","scripts",1)}))}async processWorklets(){if(this.options.worklets.length){const n=this.doc.createElement("script");n.textContent="if (CSS && CSS.paintWorklet && CSS.paintWorklet.addModule) {\n",await Promise.all(this.options.worklets.map(async({moduleURL:e,options:t})=>{await this.processorHelper.processWorklet(n,e,t,this.options,this.charset,this.batchRequest,this.resources)})),n.textContent+="}",this.doc.head.appendChild(n)}}removeAlternativeImages(){Jx.removeAlternativeImages(this.doc)}async removeAlternativeFonts(){await this.processorHelper.removeAlternativeFonts(this.doc,this.stylesheets,this.resources.fonts,this.options.fontTests)}async processFrames(){if(this.options.frames){const n=Array.from(this.doc.querySelectorAll('iframe, frame, object[type="text/html"][data]'));await Promise.all(n.map(async n=>{const e=n.getAttribute(Jx.WIN_ID_ATTRIBUTE_NAME);if(e){const t=this.options.frames.find(n=>n.windowId==e);if(t)if(this.options.frames=this.options.frames.filter(n=>n.windowId!=e),t.runner&&""!=n.getAttribute(Jx.HIDDEN_FRAME_ATTRIBUTE_NAME)){this.stats.add("processed","frames",1),await t.runner.run();const a=await t.runner.getPageData();n.removeAttribute(Jx.WIN_ID_ATTRIBUTE_NAME),this.processorHelper.processFrame(n,a,this.options,this.resources,e,t),this.stats.addAll(a)}else n.removeAttribute(Jx.WIN_ID_ATTRIBUTE_NAME),this.stats.add("discarded","frames",1)}}))}}replaceStylesheets(){this.processorHelper.replaceStylesheets(this.doc,this.stylesheets,this.options,this.resources),delete this.options.inlineStylesheetsRefs,delete this.options.inlineStylesheets}replaceStyleAttributes(){this.doc.querySelectorAll("[style]").forEach(n=>{const e=this.styles.get(n);e?(this.styles.delete(n),n.setAttribute("style",this.processorHelper.generateStylesheetContent(e,this.options))):n.setAttribute("style","")})}insertVariables(){const{cssVariables:n}=this.resources;if(n.size){const e=this.doc.createElement("style"),t=this.doc.head.querySelector("style");t?this.doc.head.insertBefore(e,t):this.doc.head.appendChild(e);let a="";n.forEach(({content:e,url:t},o)=>{n.delete(o),a&&(a+=";"),a+=`${vC+o}: `,this.options.saveOriginalURLs&&(a+=`/* original URL: ${t} */ `),a+=`url("${e}")`}),e.textContent=":root{"+a+"}"}}compressHTML(){let n;this.options.displayStats&&(n=Jx.getContentSize(this.doc.documentElement.outerHTML)),Jx.minifyHTML(this.doc,{PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME:Jx.PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME}),this.options.displayStats&&this.stats.add("discarded","HTML bytes",n-Jx.getContentSize(this.doc.documentElement.outerHTML))}cleanupPage(){this.doc.querySelectorAll("base").forEach(n=>n.remove());const n=this.doc.head.querySelector("meta[charset]");n&&(this.doc.head.insertBefore(n,this.doc.head.firstChild),1==this.doc.head.querySelectorAll("*").length&&0==this.doc.body.childNodes.length&&this.doc.head.querySelector("meta[charset]").remove())}resetZoomLevel(){const n=this.doc.documentElement.style.getPropertyValue("-sf-transform"),e=this.doc.documentElement.style.getPropertyPriority("-sf-transform"),t=this.doc.documentElement.style.getPropertyValue("-sf-transform-origin"),a=this.doc.documentElement.style.getPropertyPriority("-sf-transform-origin"),o=this.doc.documentElement.style.getPropertyValue("-sf-min-height"),i=this.doc.documentElement.style.getPropertyPriority("-sf-min-height");this.doc.documentElement.style.setProperty("transform",n,e),this.doc.documentElement.style.setProperty("transform-origin",t,a),this.doc.documentElement.style.setProperty("min-height",o,i),this.doc.documentElement.style.removeProperty("-sf-transform"),this.doc.documentElement.style.removeProperty("-sf-transform-origin"),this.doc.documentElement.style.removeProperty("-sf-min-height")}async insertMAFFMetaData(){const n=await this.maffMetaDataPromise;if(n&&n.content){const e="http://www.w3.org/1999/02/22-rdf-syntax-ns#",t=Jx.parseXMLContent(n.content),a=t.querySelector("RDF > Description > originalurl"),o=t.querySelector("RDF > Description > archivetime");if(a&&(this.options.saveUrl=a.getAttributeNS(e,"resource")),o){const n=o.getAttributeNS(e,"resource");if(n){const e=new Date(n);isNaN(e.getTime())||(this.options.saveDate=new Date(n))}}}}async setDocInfo(){const n=this.doc.querySelector("title"),e=this.doc.querySelector("meta[name=description]"),t=this.doc.querySelector("meta[name=author]"),a=this.doc.querySelector("meta[name=creator]"),o=this.doc.querySelector("meta[name=publisher]"),i=this.doc.querySelector("h1");this.options.title=n?n.textContent.trim():"",this.options.info={description:e&&e.content?e.content.trim():"",lang:this.doc.documentElement.lang,author:t&&t.content?t.content.trim():"",creator:a&&a.content?a.content.trim():"",publisher:o&&o.content?o.content.trim():"",heading:i&&i.textContent?i.textContent.trim():""},this.options.infobarContent=await Jx.evalTemplate(this.options.infobarTemplate,this.options,null,this.doc,{dontReplaceSlash:!0})}}const uC="data:",gC="about:blank",wC="blob:",bC=/^https?:\/\//,fC=/^file:\/\//,yC=/^https?:\/\/+\s*$/,kC=/^(https?:\/\/|file:\/\/|blob:).+/,vC="--sf-img-";function SC(n){return!n||n.startsWith(uC)?n:n.split("#")[0]}function jC(n){return n&&(n.startsWith(uC)||n.startsWith(wC))}function xC(n){return n&&(n.startsWith(uC)||n==gC)}function CC(n){return function(n){return n&&!n.match(yC)}(n)&&(n.match(bC)||n.match(fC)||n.startsWith(wC))&&n.match(kC)}const AC={discarded:{"HTML bytes":0,"hidden elements":0,scripts:0,objects:0,"audio sources":0,"video sources":0,frames:0,"CSS rules":0,canvas:0,stylesheets:0,resources:0,medias:0},processed:{"HTML bytes":0,"hidden elements":0,scripts:0,objects:0,"audio sources":0,"video sources":0,frames:0,"CSS rules":0,canvas:0,stylesheets:0,resources:0,medias:0}};class LC{constructor(n){this.options=n,n.displayStats&&(this.data=Kx.parse(Kx.stringify(AC)))}set(n,e,t){this.options.displayStats&&(this.data[n][e]=t)}add(n,e,t){this.options.displayStats&&(this.data[n][e]+=t)}addAll(n){this.options.displayStats&&(Object.keys(this.data.discarded).forEach(e=>this.add("discarded",e,n.stats.discarded[e]||0)),Object.keys(this.data.processed).forEach(e=>this.add("processed",e,n.stats.processed[e]||0)))}}const zC=1048576,TC={"image/svg+xml":".svg","image/png":".png","image/gif":".gif","image/tiff":".tiff","image/bmp":".bmp","image/x-icon":".ico","image/heif":".heif","image/heic":".heic","image/avif":".avif","image/apng":".apng","image/jpeg":".jpg","image/webp":".webp","audio/mpeg":".mp3","audio/ogg":".ogg","audio/wav":".wav","audio/webm":".webm","video/3gpp":".3gp","video/3gpp2":".3g2","video/mpeg":".mpeg","video/quicktime":".mov","video/x-msvideo":".avi","video/webm":".webm","video/ogg":".ogv","video/mp4":".mp4","video/mp2t":".ts","font/otf":".otf","font/ttf":".ttf","font/woff":".woff","font/woff2":".woff2","application/vnd.ms-fontobject":".eot","font/collection":".ttc"},EC="application/octet-stream",RC=globalThis.URL,IC=globalThis.DOMParser,DC=globalThis.Blob,MC=globalThis.FileReader,PC=(n,e)=>(e.cache="force-cache",e.referrerPolicy="strict-origin-when-cross-origin",globalThis.fetch(n,e)),NC=globalThis.TextDecoder,_C=globalThis.URLSearchParams;function BC(n){return(n=n||{}).fetch=n.fetch||PC,n.frameFetch=n.frameFetch||n.fetch||PC,{getDoctypeString:FC,getFilenameExtension(n,e,t,a){let o;try{o=new RC(n).pathname.match(/(\.[^\\/.]*)$/)}catch(n){}return(o&&o[1]&&this.getValidFilename(o[1],e,t,a)||"").toLowerCase()},getContentTypeExtension:n=>TC[n]||"",getContent:async function(e,t){let a,o,i,r;const s=n.fetch,l=n.frameFetch;if(t.blockMixedContent&&/^https:/i.test(t.baseURI)&&!/^https:/i.test(e))return OC(e,t);i=t.networkTimeout?new Promise((n,e)=>{r=n,o=globalThis.setTimeout(()=>e(new Error("network timeout")),t.networkTimeout)}):new Promise(n=>{r=n});try{const n=t.acceptHeaders?t.acceptHeaders[t.expectedType]:"*/*";if(t.frameId)try{a=await Promise.race([l(e,{frameId:t.frameId,referrer:t.resourceReferrer,headers:{accept:n}}),i])}catch(t){a=await Promise.race([s(e,{headers:{accept:n}}),i])}else a=await Promise.race([s(e,{referrer:t.resourceReferrer,headers:{accept:n}}),i])}catch(n){return OC(e,t)}finally{r(),t.networkTimeout&&globalThis.clearTimeout(o)}let c;try{c=await a.arrayBuffer()}catch(n){return t.inline?{data:t.asBinary?Li:"",resourceURL:e}:{resourceURL:e}}e=a.url||e;let d,m="";try{const n=new Kk(a.headers.get("content-type"));m=n.type+"/"+n.subtype,d=n.parameters.get("charset")}catch(n){}(!m||m==EC&&t.asBinary)&&(m=function(n,e){if("image"==n){if(t([255,255,255,255],[0,0,1,0]))return"image/x-icon";if(t([255,255,255,255],[0,0,2,0]))return"image/x-icon";if(t([255,255],[78,77]))return"image/bmp";if(t([255,255,255,255,255,255],[71,73,70,56,57,97]))return"image/gif";if(t([255,255,255,255,255,255],[71,73,70,56,59,97]))return"image/gif";if(t([255,255,255,255,0,0,0,0,255,255,255,255,255,255],[82,73,70,70,0,0,0,0,87,69,66,80,86,80]))return"image/webp";if(t([255,255,255,255,255,255,255,255],[137,80,78,71,13,10,26,10]))return"image/png";if(t([255,255,255],[255,216,255]))return"image/jpeg"}if("font"==n){if(t([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,76,80]))return"application/vnd.ms-fontobject";if(t([255,255,255,255],[0,1,0,0]))return"font/ttf";if(t([255,255,255,255],[79,84,84,79]))return"font/otf";if(t([255,255,255,255],[116,116,99,102]))return"font/collection";if(t([255,255,255,255],[119,79,70,70]))return"font/woff";if(t([255,255,255,255],[119,79,70,50]))return"font/woff2"}if("video"==n){if(t([0,0,0,0,255,255,255,255,255,255,255,255],[0,0,0,0,102,116,121,112,105,115,111,109]))return"video/mp4";if(t([255,255,255,255,0,0,0,0,255,255,255,255],[82,73,70,70,0,0,0,0,87,65,86,69]))return"video/x-msvideo";if(t([255,255,255,255],[0,0,1,179])||t([255,255,255,255],[0,0,1,186]))return"video/mpeg";if(t([255,255,255,255],[79,103,103,83]))return"video/ogg";if(t([255],[71]))return"video/mp2t";if(t([255,255,255,255],[26,69,223,163]))return"video/webm";if(t([0,0,0,0,255,255,255,255,255,255],[0,0,0,0,102,116,121,112,51,103]))return"video/3gpp"}if("audio"==n){if(t([255,255],[255,249])||t([255,255],[255,254]))return"audio/aac";if(t([255,255,255,255],[77,84,104,100]))return"audio/midi";if(t([255,255,255,255],[0,0,1,179])||t([255,255,255,255],[0,0,1,186]))return"audio/mpeg";if(t([255,255],[255,251])||t([255,255],[255,243])||t([255,255],[255,242])||t([255,255,255],[73,68,51]))return"audio/mpeg";if(t([255,255,255,255],[79,103,103,83]))return"audio/ogg";if(t([255,255,255,255,0,0,0,0,255,255,255,255],[82,73,70,70,0,0,0,0,87,65,86,69]))return"audio/wav";if(t([255,255,255,255],[26,69,223,163]))return"audio/webm";if(t([0,0,0,0,255,255,255,255,255,255],[0,0,0,0,102,116,121,112,51,103]))return"audio/3gpp"}function t(n,t){let a=!0,o=0;if(e.byteLength>=t.length){const i=new Uint8Array(e,0,n.length);for(o=0;o<n.length&&a;o++)a=a&&(i[o]&n[o])==t[o];return a}}}(t.expectedType,c),m||(m=t.contentType?t.contentType:t.asBinary?EC:""));!d&&t.charset&&(d=t.charset);if(t.asBinary){if(a.status>=400)return OC(e,t);try{return t.maxResourceSizeEnabled&&c.byteLength>t.maxResourceSize*zC?OC(e,t):OC(e,t,c,null,m)}catch(n){return OC(e,t)}}else{if(a.status>=400||t.validateTextContentType&&m&&!m.startsWith("text/"))return OC(e,t);if(d||(d="utf-8"),t.maxResourceSizeEnabled&&c.byteLength>t.maxResourceSize*zC)return OC(e,t,null,d);try{return OC(e,t,c,d,m)}catch(n){return OC(e,t,null,d)}}},parseURL:(n,e)=>void 0===e?new RC(n):new RC(n,e),resolveURL(n,e){return this.parseURL(n,e).href},getSearchParams:n=>Array.from(new _C(n)),getValidFilename:(n,e,t,a)=>lr(n,e,t,a),parseDocContent:(n,e)=>cr(n,e),parseXMLContent:n=>(new IC).parseFromString(n,"text/xml"),parseSVGContent(n){const e=(new IC).parseFromString(n,"image/svg+xml");return e.querySelector("parsererror")?(new IC).parseFromString(n,"text/html"):e},fixInvalidNesting(n,e=!0){Wi(n,Ei,e)},markInvalidNesting(n){Hi(n)},getFixInvalidNestingSource:()=>Wi.toString().replace(/\s+/g," "),digest:async(n,e)=>ir(n,e),getContentSize:n=>or(n),formatFilename:(n,e,t)=>fj(n,e,t),getMimeType:n=>!n.compressContent||n.selfExtractingArchive?"text/html":"application/zip",evalTemplate:async(n,e,t,a,o)=>yj(n,e,t,a,o),minifyHTML:(n,e)=>KS(n,e),minifyCSSRules:(n,e)=>aS(n,e),removeUnusedFonts:(n,e,t,a)=>ev(n,e,t,a),compressCSS:(n,e)=>Fk(n,e),minifyMedias:(n,e)=>Cv(n,e),removeAlternativeImages:n=>MS(n),parseSrcset:n=>qk(n),preProcessDoc:(n,e,t)=>qi(n,e,t),postProcessDoc(n,e,t){Xi(n,e,t)},serialize:(n,e)=>ej(n,e),removeQuotes:n=>tr(n),appendInfobar:(n,e)=>Yi(n,e),findLast(n,e){if(n.findLast&&"function"==typeof n.findLast)return n.findLast(e);{let t=n.length;for(;t--;)if(e(n[t],t,n))return n[t]}},ON_BEFORE_CAPTURE_EVENT_NAME:Vo,ON_AFTER_CAPTURE_EVENT_NAME:Ko,WIN_ID_ATTRIBUTE_NAME:oi,REMOVED_CONTENT_ATTRIBUTE_NAME:Xo,HIDDEN_CONTENT_ATTRIBUTE_NAME:Qo,HIDDEN_FRAME_ATTRIBUTE_NAME:ei,IMAGE_ATTRIBUTE_NAME:ii,POSTER_ATTRIBUTE_NAME:ri,VIDEO_ATTRIBUTE_NAME:si,CANVAS_ATTRIBUTE_NAME:li,STYLE_ATTRIBUTE_NAME:ci,INPUT_VALUE_ATTRIBUTE_NAME:di,INPUT_CHECKED_ATTRIBUTE_NAME:mi,SHADOW_ROOT_ATTRIBUTE_NAME:ai,PRESERVED_SPACE_ELEMENT_ATTRIBUTE_NAME:ti,STYLESHEET_ATTRIBUTE_NAME:pi,SELECTED_CONTENT_ATTRIBUTE_NAME:gi,INVALID_ELEMENT_ATTRIBUTE_NAME:wi,COMMENT_HEADER:No,COMMENT_HEADER_LEGACY:xi,SINGLE_FILE_UI_ELEMENT_CLASS:Ci,EMPTY_RESOURCE:Li,INFOBAR_TAGNAME:Ai,WAIT_FOR_USERSCRIPT_PROPERTY_NAME:Bo,NO_SCRIPT_PROPERTY_NAME:Fo,NESTING_TRACK_ID_ATTRIBUTE_NAME:Ei}}async function OC(n,e,t,a,o){if(t)if(e.asBinary)if(e.inline){const n=new MC;n.readAsDataURL(new DC([t],{type:o+(e.charset?";charset="+e.charset:"")})),t=await new Promise((e,t)=>{n.addEventListener("load",()=>e(n.result),!1),n.addEventListener("error",t,!1)})}else t=new Uint8Array(t);else{const n=new Uint8Array(t.slice(0,4));132==n[0]&&49==n[1]&&149==n[2]&&51==n[3]?a="gb18030":255==n[0]&&254==n[1]?a="utf-16le":254==n[0]&&255==n[1]&&(a="utf-16be");try{t=new NC(a).decode(t)}catch(n){t=new NC(a="utf-8").decode(t)}t=t.replace(/\ufeff/gi,"")}else e.inline&&(t=e.asBinary?Li:"");return{data:t,resourceURL:n,charset:a,contentType:o}}function FC(n){const e=n.doctype;let t="";return e&&(t="<!DOCTYPE "+e.nodeName,e.publicId?(t+=' PUBLIC "'+e.publicId+'"',e.systemId&&(t+=' "'+e.systemId+'"')):e.systemId&&(t+=' SYSTEM "'+e.systemId+'"'),e.internalSubset&&(t+=" ["+e.internalSubset+"]"),t+="> "),t}function UC(e){void 0===n.SingleFile&&(n.SingleFile=function(...n){return[Jx]=n,Yx}(BC(e)))}n.SingleFile=void 0,n.getPageData=async function(e={},t,a,o){void 0===a&&(a=globalThis.document),void 0===o&&(o=globalThis);const i=os;let r;if(UC(t),a&&o){Ui(a);const n=[];if(!e.saveRawPage){let t;if(e.loadDeferredImages&&(t=fr(e),e.loadDeferredImagesBeforeFrames&&await t),!e.removeFrames&&i&&globalThis.frames){let t;t=e.loadDeferredImages?new Promise(n=>globalThis.setTimeout(()=>n(i.getAsync(e)),e.loadDeferredImagesBeforeFrames||!e.loadDeferredImages?0:e.loadDeferredImagesMaxIdleTime)):i.getAsync(e),e.loadDeferredImagesBeforeFrames?e.frames=await t:n.push(t)}e.loadDeferredImages&&!e.loadDeferredImagesBeforeFrames&&n.push(t)}e.loadDeferredImagesBeforeFrames||([e.frames]=await Promise.all(n)),r=e.frames&&e.frames.sessionId}e.doc=a,e.win=o,e.insertCanonicalLink=!0;const s=e.onprogress;e.onprogress=async n=>{n.type===n.RESOURCES_INITIALIZED&&a&&o&&e.loadDeferredImages&&yr(e),s&&await s(n)};const l=new n.SingleFile(e);await l.run(),r&&i.cleanup(r);const c=await l.getPageData();if(e.compressContent){const n=await Qa(c,{insertTextBody:e.insertTextBody,url:e.url,createRootDirectory:e.createRootDirectory,selfExtractingArchive:e.selfExtractingArchive,extractDataFromPage:e.extractDataFromPage,preventAppendedData:e.preventAppendedData,insertCanonicalLink:e.insertCanonicalLink,insertMetaNoIndex:e.insertMetaNoIndex,insertMetaCSP:e.insertMetaCSP,password:e.password,zipScript:e.zipScript,embeddedImage:e.embeddedImage,embeddedPdf:e.embeddedPdf});delete c.resources;const t=new globalThis.FileReader;t.readAsArrayBuffer(n);const a=await new Promise((n,e)=>{t.addEventListener("load",()=>n(t.result),!1),t.addEventListener("error",n=>e(n.detail.error),!1)});c.content=Array.from(new Uint8Array(a))}return c},n.helper=dr,n.init=UC,n.modules=Lj,n.processors=is,n.vendor=Jk});