@tokmizer/plugin 1.1.1 → 1.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +3 -1
- package/dist/bin/tkr-agent-hook.js +13 -13
- package/dist/bin/tkr-codex-hook.js +74 -74
- package/dist/bin/tkr-context-hook.js +1 -1
- package/dist/bin/tkr-copilot-hook.js +12 -12
- package/dist/bin/tkr-crush-hook.js +12 -12
- package/dist/bin/tkr-cursor-hook.js +12 -12
- package/dist/bin/tkr-daemon.js +131 -131
- package/dist/bin/tkr-droid-hook.js +12 -12
- package/dist/bin/tkr-exec +0 -0
- package/dist/bin/tkr-exec.js +74 -74
- package/dist/bin/tkr-gemini-hook.js +12 -12
- package/dist/bin/tkr-grok-hook.js +12 -12
- package/dist/bin/tkr-junie-hook.js +12 -12
- package/dist/bin/tkr-processor.js +103 -103
- package/dist/bin/tkr-qwen-hook.js +12 -12
- package/dist/bin/tkr-shim.js +66 -66
- package/dist/bin/tkr-trae-hook.js +12 -12
- package/dist/bin/tkr-zcode-hook.js +12 -12
- package/dist/bin/tkr.js +275 -260
- package/dist/hooks-host/post-tool-use.js +88 -88
- package/dist/hooks-host/pre-tool-use.js +13 -13
- package/dist/hooks-host/reducer-prompt-submit.js +1 -1
- package/dist/hooks-host/reducer-session-start.js +1 -1
- package/dist/hooks-host/reducer-stop.js +1 -1
- package/dist/hooks-host/session-recap.js +7 -5
- package/dist/index.js +46 -46
- package/dist/native/manifest.json +12 -12
- package/dist/native/single.json +2 -32
- package/dist/native/tkr-exec-darwin-arm64 +0 -0
- package/dist/native/tkr-exec-darwin-x64 +0 -0
- package/dist/native/tkr-exec-linux-arm64 +0 -0
- package/dist/native/tkr-exec-linux-x64 +0 -0
- package/dist/native/tkr-exec-win32-arm64.exe +0 -0
- package/dist/native/tkr-exec-win32-x64.exe +0 -0
- package/package.json +7 -7
|
@@ -1,158 +1,158 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
3
|
-
var cm=Object.create;var Ns=Object.defineProperty;var fm=Object.getOwnPropertyDescriptor;var dm=Object.getOwnPropertyNames;var pm=Object.getPrototypeOf,mm=Object.prototype.hasOwnProperty;var Je=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var b=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var ue=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},wn=(e,t)=>{for(var n in t)Ns(e,n,{get:t[n],enumerable:!0})},hm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of dm(t))!mm.call(e,s)&&s!==n&&Ns(e,s,{get:()=>t[s],enumerable:!(r=fm(t,s))||r.enumerable});return e};var gm=(e,t,n)=>(n=e!=null?cm(pm(e)):{},hm(t||!e||!e.__esModule?Ns(n,"default",{value:e,enumerable:!0}):n,e));var B,Ds,S,$e,xn=b(()=>{(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(B||(B={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Ds||(Ds={}));S=B.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),$e=e=>{switch(typeof e){case"undefined":return S.undefined;case"string":return S.string;case"number":return Number.isNaN(e)?S.nan:S.number;case"boolean":return S.boolean;case"function":return S.function;case"bigint":return S.bigint;case"symbol":return S.symbol;case"object":return Array.isArray(e)?S.array:e===null?S.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?S.promise:typeof Map<"u"&&e instanceof Map?S.map:typeof Set<"u"&&e instanceof Set?S.set:typeof Date<"u"&&e instanceof Date?S.date:S.object;default:return S.unknown}}});var k,ym,oe,ur=b(()=>{xn();k=B.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),ym=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),oe=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let u=i.path[l];l===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(n(i))):a[u]=a[u]||{_errors:[]},a=a[u],l++}}};return s(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,B.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};oe.create=e=>new oe(e)});var bm,Le,Ms=b(()=>{ur();xn();bm=(e,t)=>{let n;switch(e.code){case k.invalid_type:e.received===S.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case k.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,B.jsonStringifyReplacer)}`;break;case k.unrecognized_keys:n=`Unrecognized key(s) in object: ${B.joinValues(e.keys,", ")}`;break;case k.invalid_union:n="Invalid input";break;case k.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${B.joinValues(e.options)}`;break;case k.invalid_enum_value:n=`Invalid enum value. Expected ${B.joinValues(e.options)}, received '${e.received}'`;break;case k.invalid_arguments:n="Invalid function arguments";break;case k.invalid_return_type:n="Invalid function return type";break;case k.invalid_date:n="Invalid date";break;case k.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:B.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case k.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case k.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case k.custom:n="Invalid input";break;case k.invalid_intersection_types:n="Intersection results could not be merged";break;case k.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case k.not_finite:n="Number must be finite";break;default:n=t.defaultError,B.assertNever(e)}return{message:n}},Le=bm});function km(e){pa=e}function Nt(){return pa}var pa,cr=b(()=>{Ms();pa=Le});function x(e,t){let n=Nt(),r=Sn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Le?void 0:Le].filter(s=>!!s)});e.common.issues.push(r)}var Sn,_m,Y,A,it,ee,fr,dr,Ge,Dt,Ls=b(()=>{cr();Ms();Sn=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},_m=[];Y=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return A;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return A;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},A=Object.freeze({status:"aborted"}),it=e=>({status:"dirty",value:e}),ee=e=>({status:"valid",value:e}),fr=e=>e.status==="aborted",dr=e=>e.status==="dirty",Ge=e=>e.status==="valid",Dt=e=>typeof Promise<"u"&&e instanceof Promise});var ma=b(()=>{});var T,ha=b(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(T||(T={}))});function D(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:s}}function ka(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Lm(e){return new RegExp(`^${ka(e)}$`)}function _a(e){let t=`${ba}T${ka(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Fm(e,t){return!!((t==="v4"||!t)&&Cm.test(e)||(t==="v6"||!t)&&Im.test(e))}function jm(e,t){if(!Tm.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function Hm(e,t){return!!((t==="v4"||!t)&&Om.test(e)||(t==="v6"||!t)&&Pm.test(e))}function Bm(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}function Mt(e){if(e instanceof ie){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=me.create(Mt(r))}return new ie({...e._def,shape:()=>t})}else return e instanceof He?new He({...e._def,type:Mt(e.element)}):e instanceof me?me.create(Mt(e.unwrap())):e instanceof Oe?Oe.create(Mt(e.unwrap())):e instanceof Ce?Ce.create(e.items.map(t=>Mt(t))):e}function js(e,t){let n=$e(e),r=$e(t);if(e===t)return{valid:!0,data:e};if(n===S.object&&r===S.object){let s=B.objectKeys(t),o=B.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=js(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===S.array&&r===S.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=js(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===S.date&&r===S.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function wa(e,t){return new yt({values:e,typeName:O.ZodEnum,...D(t)})}function ya(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function xa(e,t={},n){return e?Ke.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=ya(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=ya(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ke.create()}var he,ga,j,wm,xm,Sm,Em,vm,Tm,Rm,Am,$m,Fs,Cm,Om,Im,Pm,Nm,Dm,ba,Mm,We,at,lt,ut,ct,Lt,ft,dt,Ke,je,Ee,Ft,He,ie,pt,Fe,pr,mt,Ce,mr,jt,Ht,hr,ht,gt,yt,bt,Ve,ge,me,Oe,kt,_t,Bt,zm,En,vn,wt,Um,O,Zm,Sa,Ea,Jm,Gm,va,Wm,Km,Vm,qm,Ym,Xm,Qm,eh,th,nh,rh,sh,oh,ih,ah,lh,uh,ch,fh,dh,ph,mh,hh,gh,yh,bh,kh,_h,wh,xh,Sh,Eh,vh,Th,Ta=b(()=>{ur();cr();ha();Ls();xn();he=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},ga=(e,t)=>{if(Ge(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new oe(e.common.issues);return this._error=n,this._error}}};j=class{get description(){return this._def.description}_getType(t){return $e(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:$e(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Y,ctx:{common:t.parent.common,data:t.data,parsedType:$e(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Dt(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$e(t)},s=this._parseSync({data:t,path:r.path,parent:r});return ga(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$e(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Ge(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>Ge(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:$e(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(Dt(s)?s:Promise.resolve(s));return ga(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:k.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new ge({schema:this,typeName:O.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return me.create(this,this._def)}nullable(){return Oe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return He.create(this)}promise(){return Ve.create(this,this._def)}or(t){return pt.create([this,t],this._def)}and(t){return mt.create(this,t,this._def)}transform(t){return new ge({...D(this._def),schema:this,typeName:O.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new kt({...D(this._def),innerType:this,defaultValue:n,typeName:O.ZodDefault})}brand(){return new En({typeName:O.ZodBranded,type:this,...D(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new _t({...D(this._def),innerType:this,catchValue:n,typeName:O.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return vn.create(this,t)}readonly(){return wt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},wm=/^c[^\s-]{8,}$/i,xm=/^[0-9a-z]+$/,Sm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Em=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,vm=/^[a-z0-9_-]{21}$/i,Tm=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Rm=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Am=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,$m="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Cm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Om=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Im=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Pm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Nm=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Dm=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ba="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Mm=new RegExp(`^${ba}$`);We=class e extends j{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==S.string){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_type,expected:S.string,received:o.parsedType}),A}let r=new Y,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?x(s,{code:k.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&x(s,{code:k.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Am.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"email",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Fs||(Fs=new RegExp($m,"u")),Fs.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"emoji",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Em.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"uuid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")vm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"nanoid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")wm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"cuid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")xm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"cuid2",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Sm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"ulid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),x(s,{validation:"url",code:k.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"regex",code:k.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?_a(o).test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Mm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?Lm(o).test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Rm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"duration",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Fm(t.data,o.version)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"ip",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?jm(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"jwt",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?Hm(t.data,o.version)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"cidr",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Nm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"base64",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Dm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"base64url",code:k.invalid_string,message:o.message}),r.dirty()):B.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:k.invalid_string,...T.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...T.errToObj(t)})}url(t){return this._addCheck({kind:"url",...T.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...T.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...T.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...T.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...T.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...T.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...T.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...T.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...T.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...T.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...T.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...T.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...T.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...T.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...T.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...T.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...T.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...T.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...T.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...T.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...T.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...T.errToObj(n)})}nonempty(t){return this.min(1,T.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};We.create=e=>new We({checks:[],typeName:O.ZodString,coerce:e?.coerce??!1,...D(e)});at=class e extends j{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==S.number){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_type,expected:S.number,received:o.parsedType}),A}let r,s=new Y;for(let o of this._def.checks)o.kind==="int"?B.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),x(r,{code:k.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Bm(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),x(r,{code:k.not_finite,message:o.message}),s.dirty()):B.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,T.toString(n))}gt(t,n){return this.setLimit("min",t,!1,T.toString(n))}lte(t,n){return this.setLimit("max",t,!0,T.toString(n))}lt(t,n){return this.setLimit("max",t,!1,T.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:T.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:T.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:T.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:T.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:T.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:T.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&B.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};at.create=e=>new at({checks:[],typeName:O.ZodNumber,coerce:e?.coerce||!1,...D(e)});lt=class e extends j{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==S.bigint)return this._getInvalidInput(t);let r,s=new Y;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):B.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return x(n,{code:k.invalid_type,expected:S.bigint,received:n.parsedType}),A}gte(t,n){return this.setLimit("min",t,!0,T.toString(n))}gt(t,n){return this.setLimit("min",t,!1,T.toString(n))}lte(t,n){return this.setLimit("max",t,!0,T.toString(n))}lt(t,n){return this.setLimit("max",t,!1,T.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:T.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:T.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};lt.create=e=>new lt({checks:[],typeName:O.ZodBigInt,coerce:e?.coerce??!1,...D(e)});ut=class extends j{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==S.boolean){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.boolean,received:r.parsedType}),A}return ee(t.data)}};ut.create=e=>new ut({typeName:O.ZodBoolean,coerce:e?.coerce||!1,...D(e)});ct=class e extends j{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==S.date){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_type,expected:S.date,received:o.parsedType}),A}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_date}),A}let r=new Y,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):B.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:T.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:T.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};ct.create=e=>new ct({checks:[],coerce:e?.coerce||!1,typeName:O.ZodDate,...D(e)});Lt=class extends j{_parse(t){if(this._getType(t)!==S.symbol){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.symbol,received:r.parsedType}),A}return ee(t.data)}};Lt.create=e=>new Lt({typeName:O.ZodSymbol,...D(e)});ft=class extends j{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.undefined,received:r.parsedType}),A}return ee(t.data)}};ft.create=e=>new ft({typeName:O.ZodUndefined,...D(e)});dt=class extends j{_parse(t){if(this._getType(t)!==S.null){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.null,received:r.parsedType}),A}return ee(t.data)}};dt.create=e=>new dt({typeName:O.ZodNull,...D(e)});Ke=class extends j{constructor(){super(...arguments),this._any=!0}_parse(t){return ee(t.data)}};Ke.create=e=>new Ke({typeName:O.ZodAny,...D(e)});je=class extends j{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ee(t.data)}};je.create=e=>new je({typeName:O.ZodUnknown,...D(e)});Ee=class extends j{_parse(t){let n=this._getOrReturnCtx(t);return x(n,{code:k.invalid_type,expected:S.never,received:n.parsedType}),A}};Ee.create=e=>new Ee({typeName:O.ZodNever,...D(e)});Ft=class extends j{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.void,received:r.parsedType}),A}return ee(t.data)}};Ft.create=e=>new Ft({typeName:O.ZodVoid,...D(e)});He=class e extends j{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==S.array)return x(n,{code:k.invalid_type,expected:S.array,received:n.parsedType}),A;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(x(n,{code:i?k.too_big:k.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(x(n,{code:k.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(x(n,{code:k.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new he(n,i,n.path,a)))).then(i=>Y.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new he(n,i,n.path,a)));return Y.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:T.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:T.toString(n)}})}nonempty(t){return this.min(1,t)}};He.create=(e,t)=>new He({type:e,minLength:null,maxLength:null,exactLength:null,typeName:O.ZodArray,...D(t)});ie=class e extends j{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=B.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==S.object){let u=this._getOrReturnCtx(t);return x(u,{code:k.invalid_type,expected:S.object,received:u.parsedType}),A}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Ee&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let l=[];for(let u of i){let c=o[u],f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new he(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Ee){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)l.push({key:{status:"valid",value:c},value:{status:"valid",value:s.data[c]}});else if(u==="strict")a.length>0&&(x(s,{code:k.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new he(s,f,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of l){let f=await c.key,d=await c.value;u.push({key:f,value:d,alwaysSet:c.alwaysSet})}return u}).then(u=>Y.mergeObjectSync(r,u)):Y.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return T.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:T.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:O.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of B.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of B.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Mt(this)}partial(t){let n={};for(let r of B.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of B.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof me;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return wa(B.objectKeys(this.shape))}};ie.create=(e,t)=>new ie({shape:()=>e,unknownKeys:"strip",catchall:Ee.create(),typeName:O.ZodObject,...D(t)});ie.strictCreate=(e,t)=>new ie({shape:()=>e,unknownKeys:"strict",catchall:Ee.create(),typeName:O.ZodObject,...D(t)});ie.lazycreate=(e,t)=>new ie({shape:e,unknownKeys:"strip",catchall:Ee.create(),typeName:O.ZodObject,...D(t)});pt=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new oe(a.ctx.common.issues));return x(n,{code:k.invalid_union,unionErrors:i}),A}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},c=l._parseSync({data:n.data,path:n.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!o&&(o={result:c,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new oe(l));return x(n,{code:k.invalid_union,unionErrors:a}),A}}get options(){return this._def.options}};pt.create=(e,t)=>new pt({options:e,typeName:O.ZodUnion,...D(t)});Fe=e=>e instanceof ht?Fe(e.schema):e instanceof ge?Fe(e.innerType()):e instanceof gt?[e.value]:e instanceof yt?e.options:e instanceof bt?B.objectValues(e.enum):e instanceof kt?Fe(e._def.innerType):e instanceof ft?[void 0]:e instanceof dt?[null]:e instanceof me?[void 0,...Fe(e.unwrap())]:e instanceof Oe?[null,...Fe(e.unwrap())]:e instanceof En||e instanceof wt?Fe(e.unwrap()):e instanceof _t?Fe(e._def.innerType):[],pr=class e extends j{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.object)return x(n,{code:k.invalid_type,expected:S.object,received:n.parsedType}),A;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(x(n,{code:k.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),A)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=Fe(o.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:O.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...D(r)})}};mt=class extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(fr(o)||fr(i))return A;let a=js(o.value,i.value);return a.valid?((dr(o)||dr(i))&&n.dirty(),{status:n.value,value:a.data}):(x(r,{code:k.invalid_intersection_types}),A)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};mt.create=(e,t,n)=>new mt({left:e,right:t,typeName:O.ZodIntersection,...D(n)});Ce=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.array)return x(r,{code:k.invalid_type,expected:S.array,received:r.parsedType}),A;if(r.data.length<this._def.items.length)return x(r,{code:k.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),A;!this._def.rest&&r.data.length>this._def.items.length&&(x(r,{code:k.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new he(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>Y.mergeArray(n,i)):Y.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Ce.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ce({items:e,typeName:O.ZodTuple,rest:null,...D(t)})};mr=class e extends j{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.object)return x(r,{code:k.invalid_type,expected:S.object,received:r.parsedType}),A;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new he(r,a,r.path,a)),value:i._parse(new he(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?Y.mergeObjectAsync(n,s):Y.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof j?new e({keyType:t,valueType:n,typeName:O.ZodRecord,...D(r)}):new e({keyType:We.create(),valueType:t,typeName:O.ZodRecord,...D(n)})}},jt=class extends j{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.map)return x(r,{code:k.invalid_type,expected:S.map,received:r.parsedType}),A;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new he(r,a,r.path,[u,"key"])),value:o._parse(new he(r,l,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let u=await l.key,c=await l.value;if(u.status==="aborted"||c.status==="aborted")return A;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let u=l.key,c=l.value;if(u.status==="aborted"||c.status==="aborted")return A;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};jt.create=(e,t,n)=>new jt({valueType:t,keyType:e,typeName:O.ZodMap,...D(n)});Ht=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.set)return x(r,{code:k.invalid_type,expected:S.set,received:r.parsedType}),A;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(x(r,{code:k.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(x(r,{code:k.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let u=new Set;for(let c of l){if(c.status==="aborted")return A;c.status==="dirty"&&n.dirty(),u.add(c.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((l,u)=>o._parse(new he(r,l,r.path,u)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:T.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Ht.create=(e,t)=>new Ht({valueType:e,minSize:null,maxSize:null,typeName:O.ZodSet,...D(t)});hr=class e extends j{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.function)return x(n,{code:k.invalid_type,expected:S.function,received:n.parsedType}),A;function r(a,l){return Sn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Nt(),Le].filter(u=>!!u),issueData:{code:k.invalid_arguments,argumentsError:l}})}function s(a,l){return Sn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Nt(),Le].filter(u=>!!u),issueData:{code:k.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Ve){let a=this;return ee(async function(...l){let u=new oe([]),c=await a._def.args.parseAsync(l,o).catch(p=>{throw u.addIssue(r(l,p)),u}),f=await Reflect.apply(i,this,c);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw u.addIssue(s(f,p)),u})})}else{let a=this;return ee(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new oe([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new oe([s(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Ce.create(t).rest(je.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Ce.create([]).rest(je.create()),returns:n||je.create(),typeName:O.ZodFunction,...D(r)})}},ht=class extends j{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};ht.create=(e,t)=>new ht({getter:e,typeName:O.ZodLazy,...D(t)});gt=class extends j{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return x(n,{received:n.data,code:k.invalid_literal,expected:this._def.value}),A}return{status:"valid",value:t.data}}get value(){return this._def.value}};gt.create=(e,t)=>new gt({value:e,typeName:O.ZodLiteral,...D(t)});yt=class e extends j{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return x(n,{expected:B.joinValues(r),received:n.parsedType,code:k.invalid_type}),A}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return x(n,{received:n.data,code:k.invalid_enum_value,options:r}),A}return ee(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};yt.create=wa;bt=class extends j{_parse(t){let n=B.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==S.string&&r.parsedType!==S.number){let s=B.objectValues(n);return x(r,{expected:B.joinValues(s),received:r.parsedType,code:k.invalid_type}),A}if(this._cache||(this._cache=new Set(B.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=B.objectValues(n);return x(r,{received:r.data,code:k.invalid_enum_value,options:s}),A}return ee(t.data)}get enum(){return this._def.values}};bt.create=(e,t)=>new bt({values:e,typeName:O.ZodNativeEnum,...D(t)});Ve=class extends j{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.promise&&n.common.async===!1)return x(n,{code:k.invalid_type,expected:S.promise,received:n.parsedType}),A;let r=n.parsedType===S.promise?n.data:Promise.resolve(n.data);return ee(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Ve.create=(e,t)=>new Ve({type:e,typeName:O.ZodPromise,...D(t)});ge=class extends j{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===O.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{x(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return A;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?A:l.status==="dirty"?it(l.value):n.value==="dirty"?it(l.value):l});{if(n.value==="aborted")return A;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?A:a.status==="dirty"?it(a.value):n.value==="dirty"?it(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Ge(i))return A;let a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>Ge(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):A);B.assertNever(s)}};ge.create=(e,t,n)=>new ge({schema:e,typeName:O.ZodEffects,effect:t,...D(n)});ge.createWithPreprocess=(e,t,n)=>new ge({schema:t,effect:{type:"preprocess",transform:e},typeName:O.ZodEffects,...D(n)});me=class extends j{_parse(t){return this._getType(t)===S.undefined?ee(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};me.create=(e,t)=>new me({innerType:e,typeName:O.ZodOptional,...D(t)});Oe=class extends j{_parse(t){return this._getType(t)===S.null?ee(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Oe.create=(e,t)=>new Oe({innerType:e,typeName:O.ZodNullable,...D(t)});kt=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===S.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};kt.create=(e,t)=>new kt({innerType:e,typeName:O.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...D(t)});_t=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Dt(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new oe(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new oe(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};_t.create=(e,t)=>new _t({innerType:e,typeName:O.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...D(t)});Bt=class extends j{_parse(t){if(this._getType(t)!==S.nan){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.nan,received:r.parsedType}),A}return{status:"valid",value:t.data}}};Bt.create=e=>new Bt({typeName:O.ZodNaN,...D(e)});zm=Symbol("zod_brand"),En=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},vn=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?A:o.status==="dirty"?(n.dirty(),it(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?A:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:O.ZodPipeline})}},wt=class extends j{_parse(t){let n=this._def.innerType._parse(t),r=s=>(Ge(s)&&(s.value=Object.freeze(s.value)),s);return Dt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};wt.create=(e,t)=>new wt({innerType:e,typeName:O.ZodReadonly,...D(t)});Um={object:ie.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(O||(O={}));Zm=(e,t={message:`Input not instance of ${e.name}`})=>xa(n=>n instanceof e,t),Sa=We.create,Ea=at.create,Jm=Bt.create,Gm=lt.create,va=ut.create,Wm=ct.create,Km=Lt.create,Vm=ft.create,qm=dt.create,Ym=Ke.create,Xm=je.create,Qm=Ee.create,eh=Ft.create,th=He.create,nh=ie.create,rh=ie.strictCreate,sh=pt.create,oh=pr.create,ih=mt.create,ah=Ce.create,lh=mr.create,uh=jt.create,ch=Ht.create,fh=hr.create,dh=ht.create,ph=gt.create,mh=yt.create,hh=bt.create,gh=Ve.create,yh=ge.create,bh=me.create,kh=Oe.create,_h=ge.createWithPreprocess,wh=vn.create,xh=()=>Sa().optional(),Sh=()=>Ea().optional(),Eh=()=>va().optional(),vh={string:(e=>We.create({...e,coerce:!0})),number:(e=>at.create({...e,coerce:!0})),boolean:(e=>ut.create({...e,coerce:!0})),bigint:(e=>lt.create({...e,coerce:!0})),date:(e=>ct.create({...e,coerce:!0}))},Th=A});var h={};wn(h,{BRAND:()=>zm,DIRTY:()=>it,EMPTY_PATH:()=>_m,INVALID:()=>A,NEVER:()=>Th,OK:()=>ee,ParseStatus:()=>Y,Schema:()=>j,ZodAny:()=>Ke,ZodArray:()=>He,ZodBigInt:()=>lt,ZodBoolean:()=>ut,ZodBranded:()=>En,ZodCatch:()=>_t,ZodDate:()=>ct,ZodDefault:()=>kt,ZodDiscriminatedUnion:()=>pr,ZodEffects:()=>ge,ZodEnum:()=>yt,ZodError:()=>oe,ZodFirstPartyTypeKind:()=>O,ZodFunction:()=>hr,ZodIntersection:()=>mt,ZodIssueCode:()=>k,ZodLazy:()=>ht,ZodLiteral:()=>gt,ZodMap:()=>jt,ZodNaN:()=>Bt,ZodNativeEnum:()=>bt,ZodNever:()=>Ee,ZodNull:()=>dt,ZodNullable:()=>Oe,ZodNumber:()=>at,ZodObject:()=>ie,ZodOptional:()=>me,ZodParsedType:()=>S,ZodPipeline:()=>vn,ZodPromise:()=>Ve,ZodReadonly:()=>wt,ZodRecord:()=>mr,ZodSchema:()=>j,ZodSet:()=>Ht,ZodString:()=>We,ZodSymbol:()=>Lt,ZodTransformer:()=>ge,ZodTuple:()=>Ce,ZodType:()=>j,ZodUndefined:()=>ft,ZodUnion:()=>pt,ZodUnknown:()=>je,ZodVoid:()=>Ft,addIssueToContext:()=>x,any:()=>Ym,array:()=>th,bigint:()=>Gm,boolean:()=>va,coerce:()=>vh,custom:()=>xa,date:()=>Wm,datetimeRegex:()=>_a,defaultErrorMap:()=>Le,discriminatedUnion:()=>oh,effect:()=>yh,enum:()=>mh,function:()=>fh,getErrorMap:()=>Nt,getParsedType:()=>$e,instanceof:()=>Zm,intersection:()=>ih,isAborted:()=>fr,isAsync:()=>Dt,isDirty:()=>dr,isValid:()=>Ge,late:()=>Um,lazy:()=>dh,literal:()=>ph,makeIssue:()=>Sn,map:()=>uh,nan:()=>Jm,nativeEnum:()=>hh,never:()=>Qm,null:()=>qm,nullable:()=>kh,number:()=>Ea,object:()=>nh,objectUtil:()=>Ds,oboolean:()=>Eh,onumber:()=>Sh,optional:()=>bh,ostring:()=>xh,pipeline:()=>wh,preprocess:()=>_h,promise:()=>gh,quotelessJson:()=>ym,record:()=>lh,set:()=>ch,setErrorMap:()=>km,strictObject:()=>rh,string:()=>Sa,symbol:()=>Km,transformer:()=>yh,tuple:()=>ah,undefined:()=>Vm,union:()=>sh,unknown:()=>Xm,util:()=>B,void:()=>eh});var Hs=b(()=>{cr();Ls();ma();xn();Ta();ur()});var xt=b(()=>{Hs();Hs()});var qe,Tn=b(()=>{"use strict";xt();qe=h.object({slug:h.string().min(1).max(64),description:h.string().max(255).optional(),match_command:h.string().min(1),priority:h.number().int().default(50),strip_ansi:h.boolean().default(!1),strip_lines_matching:h.array(h.string()).default([]),drop_lines_matching:h.array(h.string()).default([]),keep_failures:h.boolean().default(!1),strip_on_failure:h.boolean().default(!1),fold_passing:h.boolean().default(!1),fold_passing_threshold:h.number().int().positive().max(1e3).optional(),mask_abs_paths:h.boolean().default(!1),preserve_exact:h.boolean().default(!1),truncate_lines_at:h.number().int().positive().max(1e4).optional(),max_lines:h.number().int().positive().max(1e5).optional(),scale_with_level:h.boolean().default(!0),transform:h.string().max(64).optional(),transform_on_failure:h.boolean().default(!1),on_empty:h.string().max(255).optional()})});var Ca={};wn(Ca,{OutputVerbosity:()=>Aa,ReducerLevel:()=>$a,Settings:()=>zt,slugKey:()=>ce});import{createHash as Rh}from"node:crypto";function ce(e){let t=Ra.get(e);return t||(t=Rh("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),Ra.set(e,t)),t}var Aa,$a,zt,Ra,Ye=b(()=>{"use strict";xt();Aa=h.enum(["normal","compact","minimal"]),$a=h.enum(["off","light","balanced","max"]),zt=h.object({enabled:h.boolean().default(!0),telemetryOptIn:h.boolean().default(!0),outputVerbosity:Aa.default("compact"),reducer:$a.default("off"),filters:h.object({enableAll:h.boolean().default(!0),disabled:h.array(h.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Ra=new Map});function Ut(e,t,n,r=t){let s=Oa.get(r);s||(s=new Map,Oa.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(ce(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Ah){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}var Oa,Ah,gr=b(()=>{"use strict";Ye();Oa=new WeakMap,Ah=256});import $h from"node:os";import{join as Rn}from"node:path";function v(){return process.env.TOKMIZER_HOME||Rn($h.homedir(),".tokmizer")}function An(){return Rn(v(),"install-id")}function Bs(){return Rn(v(),"content-cache")}function Ia(){return Rn(v(),"restore.json")}function zs(e){return Rn(Bs(),e)}var Z=b(()=>{"use strict"});import{join as Ch}from"node:path";import{mkdir as mA,readFile as Oh,writeFile as hA,unlink as gA,rename as yA}from"node:fs/promises";function Ph(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Nh(e){return e?.dir??v()}async function St(e){let t=Nh(e);try{let n=await Oh(Ch(t,Ih),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Ph()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}var Ih,$n=b(()=>{"use strict";Z();Ih="state.json"});import{createRequire as Dh}from"node:module";function Lh(){let e="1.1.1";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Mh(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function Pa(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var Mh,ye,Zt=b(()=>{"use strict";Mh=Dh(import.meta.url);ye=Lh()});var Na,Da=b(()=>{"use strict";Na=`-----BEGIN PUBLIC KEY-----
|
|
3
|
+
var dm=Object.create;var Ns=Object.defineProperty;var pm=Object.getOwnPropertyDescriptor;var mm=Object.getOwnPropertyNames;var hm=Object.getPrototypeOf,gm=Object.prototype.hasOwnProperty;var Ge=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var b=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(r){throw n=[r],r}};var ue=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},xn=(e,t)=>{for(var n in t)Ns(e,n,{get:t[n],enumerable:!0})},ym=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of mm(t))!gm.call(e,s)&&s!==n&&Ns(e,s,{get:()=>t[s],enumerable:!(r=pm(t,s))||r.enumerable});return e};var bm=(e,t,n)=>(n=e!=null?dm(hm(e)):{},ym(t||!e||!e.__esModule?Ns(n,"default",{value:e,enumerable:!0}):n,e));var B,Ds,S,Oe,Sn=b(()=>{(function(e){e.assertEqual=s=>{};function t(s){}e.assertIs=t;function n(s){throw new Error}e.assertNever=n,e.arrayToEnum=s=>{let o={};for(let i of s)o[i]=i;return o},e.getValidEnumValues=s=>{let o=e.objectKeys(s).filter(a=>typeof s[s[a]]!="number"),i={};for(let a of o)i[a]=s[a];return e.objectValues(i)},e.objectValues=s=>e.objectKeys(s).map(function(o){return s[o]}),e.objectKeys=typeof Object.keys=="function"?s=>Object.keys(s):s=>{let o=[];for(let i in s)Object.prototype.hasOwnProperty.call(s,i)&&o.push(i);return o},e.find=(s,o)=>{for(let i of s)if(o(i))return i},e.isInteger=typeof Number.isInteger=="function"?s=>Number.isInteger(s):s=>typeof s=="number"&&Number.isFinite(s)&&Math.floor(s)===s;function r(s,o=" | "){return s.map(i=>typeof i=="string"?`'${i}'`:i).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(s,o)=>typeof o=="bigint"?o.toString():o})(B||(B={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Ds||(Ds={}));S=B.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Oe=e=>{switch(typeof e){case"undefined":return S.undefined;case"string":return S.string;case"number":return Number.isNaN(e)?S.nan:S.number;case"boolean":return S.boolean;case"function":return S.function;case"bigint":return S.bigint;case"symbol":return S.symbol;case"object":return Array.isArray(e)?S.array:e===null?S.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?S.promise:typeof Map<"u"&&e instanceof Map?S.map:typeof Set<"u"&&e instanceof Set?S.set:typeof Date<"u"&&e instanceof Date?S.date:S.object;default:return S.unknown}}});var k,km,oe,ur=b(()=>{Sn();k=B.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),km=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),oe=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(o){return o.message},r={_errors:[]},s=o=>{for(let i of o.issues)if(i.code==="invalid_union")i.unionErrors.map(s);else if(i.code==="invalid_return_type")s(i.returnTypeError);else if(i.code==="invalid_arguments")s(i.argumentsError);else if(i.path.length===0)r._errors.push(n(i));else{let a=r,l=0;for(;l<i.path.length;){let u=i.path[l];l===i.path.length-1?(a[u]=a[u]||{_errors:[]},a[u]._errors.push(n(i))):a[u]=a[u]||{_errors:[]},a=a[u],l++}}};return s(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,B.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let s of this.issues)if(s.path.length>0){let o=s.path[0];n[o]=n[o]||[],n[o].push(t(s))}else r.push(t(s));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};oe.create=e=>new oe(e)});var _m,Le,Ms=b(()=>{ur();Sn();_m=(e,t)=>{let n;switch(e.code){case k.invalid_type:e.received===S.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case k.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,B.jsonStringifyReplacer)}`;break;case k.unrecognized_keys:n=`Unrecognized key(s) in object: ${B.joinValues(e.keys,", ")}`;break;case k.invalid_union:n="Invalid input";break;case k.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${B.joinValues(e.options)}`;break;case k.invalid_enum_value:n=`Invalid enum value. Expected ${B.joinValues(e.options)}, received '${e.received}'`;break;case k.invalid_arguments:n="Invalid function arguments";break;case k.invalid_return_type:n="Invalid function return type";break;case k.invalid_date:n="Invalid date";break;case k.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:B.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case k.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case k.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case k.custom:n="Invalid input";break;case k.invalid_intersection_types:n="Intersection results could not be merged";break;case k.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case k.not_finite:n="Number must be finite";break;default:n=t.defaultError,B.assertNever(e)}return{message:n}},Le=_m});function wm(e){ma=e}function Mt(){return ma}var ma,cr=b(()=>{Ms();ma=Le});function x(e,t){let n=Mt(),r=En({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Le?void 0:Le].filter(s=>!!s)});e.common.issues.push(r)}var En,xm,Y,A,at,ee,fr,dr,We,Lt,Ls=b(()=>{cr();Ms();En=e=>{let{data:t,path:n,errorMaps:r,issueData:s}=e,o=[...n,...s.path||[]],i={...s,path:o};if(s.message!==void 0)return{...s,path:o,message:s.message};let a="",l=r.filter(u=>!!u).slice().reverse();for(let u of l)a=u(i,{data:t,defaultError:a}).message;return{...s,path:o,message:a}},xm=[];Y=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let s of n){if(s.status==="aborted")return A;s.status==="dirty"&&t.dirty(),r.push(s.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let s of n){let o=await s.key,i=await s.value;r.push({key:o,value:i})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let s of n){let{key:o,value:i}=s;if(o.status==="aborted"||i.status==="aborted")return A;o.status==="dirty"&&t.dirty(),i.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof i.value<"u"||s.alwaysSet)&&(r[o.value]=i.value)}return{status:t.value,value:r}}},A=Object.freeze({status:"aborted"}),at=e=>({status:"dirty",value:e}),ee=e=>({status:"valid",value:e}),fr=e=>e.status==="aborted",dr=e=>e.status==="dirty",We=e=>e.status==="valid",Lt=e=>typeof Promise<"u"&&e instanceof Promise});var ha=b(()=>{});var T,ga=b(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(T||(T={}))});function L(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:s}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:s}:{errorMap:(i,a)=>{let{message:l}=e;return i.code==="invalid_enum_value"?{message:l??a.defaultError}:typeof a.data>"u"?{message:l??r??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:l??n??a.defaultError}},description:s}}function _a(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function jm(e){return new RegExp(`^${_a(e)}$`)}function wa(e){let t=`${ka}T${_a(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Hm(e,t){return!!((t==="v4"||!t)&&Im.test(e)||(t==="v6"||!t)&&Nm.test(e))}function Bm(e,t){if(!Am.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),s=JSON.parse(atob(r));return!(typeof s!="object"||s===null||"typ"in s&&s?.typ!=="JWT"||!s.alg||t&&s.alg!==t)}catch{return!1}}function zm(e,t){return!!((t==="v4"||!t)&&Pm.test(e)||(t==="v6"||!t)&&Dm.test(e))}function Um(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,s=n>r?n:r,o=Number.parseInt(e.toFixed(s).replace(".","")),i=Number.parseInt(t.toFixed(s).replace(".",""));return o%i/10**s}function Ft(e){if(e instanceof ie){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=he.create(Ft(r))}return new ie({...e._def,shape:()=>t})}else return e instanceof He?new He({...e._def,type:Ft(e.element)}):e instanceof he?he.create(Ft(e.unwrap())):e instanceof Pe?Pe.create(Ft(e.unwrap())):e instanceof Ie?Ie.create(e.items.map(t=>Ft(t))):e}function js(e,t){let n=Oe(e),r=Oe(t);if(e===t)return{valid:!0,data:e};if(n===S.object&&r===S.object){let s=B.objectKeys(t),o=B.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=js(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===S.array&&r===S.array){if(e.length!==t.length)return{valid:!1};let s=[];for(let o=0;o<e.length;o++){let i=e[o],a=t[o],l=js(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===S.date&&r===S.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function xa(e,t){return new bt({values:e,typeName:I.ZodEnum,...L(t)})}function ba(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function Sa(e,t={},n){return e?Ve.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=ba(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=ba(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ve.create()}var ge,ya,j,Sm,Em,vm,Tm,Rm,Am,$m,Cm,Om,Fs,Im,Pm,Nm,Dm,Mm,Lm,ka,Fm,Ke,lt,ut,ct,ft,jt,dt,pt,Ve,je,Te,Ht,He,ie,mt,Fe,pr,ht,Ie,mr,Bt,zt,hr,gt,yt,bt,kt,qe,ye,he,Pe,_t,wt,Ut,Zm,vn,Tn,xt,Jm,I,Gm,Ea,va,Wm,Km,Ta,Vm,qm,Ym,Xm,Qm,eh,th,nh,rh,sh,oh,ih,ah,lh,uh,ch,fh,dh,ph,mh,hh,gh,yh,bh,kh,_h,wh,xh,Sh,Eh,vh,Th,Rh,Ah,Ra=b(()=>{ur();cr();ga();Ls();Sn();ge=class{constructor(t,n,r,s){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=s}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},ya=(e,t)=>{if(We(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new oe(e.common.issues);return this._error=n,this._error}}};j=class{get description(){return this._def.description}_getType(t){return Oe(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Oe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new Y,ctx:{common:t.parent.common,data:t.data,parsedType:Oe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Lt(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Oe(t)},s=this._parseSync({data:t,path:r.path,parent:r});return ya(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Oe(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return We(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>We(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Oe(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(Lt(s)?s:Promise.resolve(s));return ya(r,o)}refine(t,n){let r=s=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(s):n;return this._refinement((s,o)=>{let i=t(s),a=()=>o.addIssue({code:k.custom,...r(s)});return typeof Promise<"u"&&i instanceof Promise?i.then(l=>l?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(t,n){return this._refinement((r,s)=>t(r)?!0:(s.addIssue(typeof n=="function"?n(r,s):n),!1))}_refinement(t){return new ye({schema:this,typeName:I.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return he.create(this,this._def)}nullable(){return Pe.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return He.create(this)}promise(){return qe.create(this,this._def)}or(t){return mt.create([this,t],this._def)}and(t){return ht.create(this,t,this._def)}transform(t){return new ye({...L(this._def),schema:this,typeName:I.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new _t({...L(this._def),innerType:this,defaultValue:n,typeName:I.ZodDefault})}brand(){return new vn({typeName:I.ZodBranded,type:this,...L(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new wt({...L(this._def),innerType:this,catchValue:n,typeName:I.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return Tn.create(this,t)}readonly(){return xt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Sm=/^c[^\s-]{8,}$/i,Em=/^[0-9a-z]+$/,vm=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Tm=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Rm=/^[a-z0-9_-]{21}$/i,Am=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,$m=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Cm=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Om="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Im=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Pm=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Nm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Dm=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Mm=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Lm=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ka="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Fm=new RegExp(`^${ka}$`);Ke=class e extends j{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==S.string){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_type,expected:S.string,received:o.parsedType}),A}let r=new Y,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let i=t.data.length>o.value,a=t.data.length<o.value;(i||a)&&(s=this._getOrReturnCtx(t,s),i?x(s,{code:k.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&x(s,{code:k.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Cm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"email",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Fs||(Fs=new RegExp(Om,"u")),Fs.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"emoji",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Tm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"uuid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")Rm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"nanoid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Sm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"cuid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")Em.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"cuid2",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")vm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"ulid",code:k.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),x(s,{validation:"url",code:k.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"regex",code:k.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?wa(o).test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Fm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?jm(o).test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{code:k.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?$m.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"duration",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Hm(t.data,o.version)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"ip",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?Bm(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"jwt",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?zm(t.data,o.version)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"cidr",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Mm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"base64",code:k.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Lm.test(t.data)||(s=this._getOrReturnCtx(t,s),x(s,{validation:"base64url",code:k.invalid_string,message:o.message}),r.dirty()):B.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:k.invalid_string,...T.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...T.errToObj(t)})}url(t){return this._addCheck({kind:"url",...T.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...T.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...T.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...T.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...T.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...T.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...T.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...T.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...T.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...T.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...T.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...T.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...T.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...T.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...T.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...T.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...T.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...T.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...T.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...T.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...T.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...T.errToObj(n)})}nonempty(t){return this.min(1,T.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Ke.create=e=>new Ke({checks:[],typeName:I.ZodString,coerce:e?.coerce??!1,...L(e)});lt=class e extends j{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==S.number){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_type,expected:S.number,received:o.parsedType}),A}let r,s=new Y;for(let o of this._def.checks)o.kind==="int"?B.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),x(r,{code:k.invalid_type,expected:"integer",received:"float",message:o.message}),s.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Um(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),x(r,{code:k.not_finite,message:o.message}),s.dirty()):B.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,T.toString(n))}gt(t,n){return this.setLimit("min",t,!1,T.toString(n))}lte(t,n){return this.setLimit("max",t,!0,T.toString(n))}lt(t,n){return this.setLimit("max",t,!1,T.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:T.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:T.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:T.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:T.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:T.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:T.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&B.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};lt.create=e=>new lt({checks:[],typeName:I.ZodNumber,coerce:e?.coerce||!1,...L(e)});ut=class e extends j{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==S.bigint)return this._getInvalidInput(t);let r,s=new Y;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),s.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),x(r,{code:k.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):B.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return x(n,{code:k.invalid_type,expected:S.bigint,received:n.parsedType}),A}gte(t,n){return this.setLimit("min",t,!0,T.toString(n))}gt(t,n){return this.setLimit("min",t,!1,T.toString(n))}lte(t,n){return this.setLimit("max",t,!0,T.toString(n))}lt(t,n){return this.setLimit("max",t,!1,T.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:T.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:T.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:T.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:T.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:T.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:T.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};ut.create=e=>new ut({checks:[],typeName:I.ZodBigInt,coerce:e?.coerce??!1,...L(e)});ct=class extends j{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==S.boolean){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.boolean,received:r.parsedType}),A}return ee(t.data)}};ct.create=e=>new ct({typeName:I.ZodBoolean,coerce:e?.coerce||!1,...L(e)});ft=class e extends j{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==S.date){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_type,expected:S.date,received:o.parsedType}),A}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return x(o,{code:k.invalid_date}),A}let r=new Y,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(s=this._getOrReturnCtx(t,s),x(s,{code:k.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):B.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:T.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:T.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};ft.create=e=>new ft({checks:[],coerce:e?.coerce||!1,typeName:I.ZodDate,...L(e)});jt=class extends j{_parse(t){if(this._getType(t)!==S.symbol){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.symbol,received:r.parsedType}),A}return ee(t.data)}};jt.create=e=>new jt({typeName:I.ZodSymbol,...L(e)});dt=class extends j{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.undefined,received:r.parsedType}),A}return ee(t.data)}};dt.create=e=>new dt({typeName:I.ZodUndefined,...L(e)});pt=class extends j{_parse(t){if(this._getType(t)!==S.null){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.null,received:r.parsedType}),A}return ee(t.data)}};pt.create=e=>new pt({typeName:I.ZodNull,...L(e)});Ve=class extends j{constructor(){super(...arguments),this._any=!0}_parse(t){return ee(t.data)}};Ve.create=e=>new Ve({typeName:I.ZodAny,...L(e)});je=class extends j{constructor(){super(...arguments),this._unknown=!0}_parse(t){return ee(t.data)}};je.create=e=>new je({typeName:I.ZodUnknown,...L(e)});Te=class extends j{_parse(t){let n=this._getOrReturnCtx(t);return x(n,{code:k.invalid_type,expected:S.never,received:n.parsedType}),A}};Te.create=e=>new Te({typeName:I.ZodNever,...L(e)});Ht=class extends j{_parse(t){if(this._getType(t)!==S.undefined){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.void,received:r.parsedType}),A}return ee(t.data)}};Ht.create=e=>new Ht({typeName:I.ZodVoid,...L(e)});He=class e extends j{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==S.array)return x(n,{code:k.invalid_type,expected:S.array,received:n.parsedType}),A;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(x(n,{code:i?k.too_big:k.too_small,minimum:a?s.exactLength.value:void 0,maximum:i?s.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:s.exactLength.message}),r.dirty())}if(s.minLength!==null&&n.data.length<s.minLength.value&&(x(n,{code:k.too_small,minimum:s.minLength.value,type:"array",inclusive:!0,exact:!1,message:s.minLength.message}),r.dirty()),s.maxLength!==null&&n.data.length>s.maxLength.value&&(x(n,{code:k.too_big,maximum:s.maxLength.value,type:"array",inclusive:!0,exact:!1,message:s.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((i,a)=>s.type._parseAsync(new ge(n,i,n.path,a)))).then(i=>Y.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new ge(n,i,n.path,a)));return Y.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:T.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:T.toString(n)}})}nonempty(t){return this.min(1,t)}};He.create=(e,t)=>new He({type:e,minLength:null,maxLength:null,exactLength:null,typeName:I.ZodArray,...L(t)});ie=class e extends j{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=B.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==S.object){let u=this._getOrReturnCtx(t);return x(u,{code:k.invalid_type,expected:S.object,received:u.parsedType}),A}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof Te&&this._def.unknownKeys==="strip"))for(let u in s.data)i.includes(u)||a.push(u);let l=[];for(let u of i){let c=o[u],f=s.data[u];l.push({key:{status:"valid",value:u},value:c._parse(new ge(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof Te){let u=this._def.unknownKeys;if(u==="passthrough")for(let c of a)l.push({key:{status:"valid",value:c},value:{status:"valid",value:s.data[c]}});else if(u==="strict")a.length>0&&(x(s,{code:k.unrecognized_keys,keys:a}),r.dirty());else if(u!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let u=this._def.catchall;for(let c of a){let f=s.data[c];l.push({key:{status:"valid",value:c},value:u._parse(new ge(s,f,s.path,c)),alwaysSet:c in s.data})}}return s.common.async?Promise.resolve().then(async()=>{let u=[];for(let c of l){let f=await c.key,d=await c.value;u.push({key:f,value:d,alwaysSet:c.alwaysSet})}return u}).then(u=>Y.mergeObjectSync(r,u)):Y.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return T.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let s=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:T.errToObj(t).message??s}:{message:s}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:I.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of B.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of B.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Ft(this)}partial(t){let n={};for(let r of B.objectKeys(this.shape)){let s=this.shape[r];t&&!t[r]?n[r]=s:n[r]=s.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of B.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof he;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return xa(B.objectKeys(this.shape))}};ie.create=(e,t)=>new ie({shape:()=>e,unknownKeys:"strip",catchall:Te.create(),typeName:I.ZodObject,...L(t)});ie.strictCreate=(e,t)=>new ie({shape:()=>e,unknownKeys:"strict",catchall:Te.create(),typeName:I.ZodObject,...L(t)});ie.lazycreate=(e,t)=>new ie({shape:e,unknownKeys:"strip",catchall:Te.create(),typeName:I.ZodObject,...L(t)});mt=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function s(o){for(let a of o)if(a.result.status==="valid")return a.result;for(let a of o)if(a.result.status==="dirty")return n.common.issues.push(...a.ctx.common.issues),a.result;let i=o.map(a=>new oe(a.ctx.common.issues));return x(n,{code:k.invalid_union,unionErrors:i}),A}if(n.common.async)return Promise.all(r.map(async o=>{let i={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:i}),ctx:i}})).then(s);{let o,i=[];for(let l of r){let u={...n,common:{...n.common,issues:[]},parent:null},c=l._parseSync({data:n.data,path:n.path,parent:u});if(c.status==="valid")return c;c.status==="dirty"&&!o&&(o={result:c,ctx:u}),u.common.issues.length&&i.push(u.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let a=i.map(l=>new oe(l));return x(n,{code:k.invalid_union,unionErrors:a}),A}}get options(){return this._def.options}};mt.create=(e,t)=>new mt({options:e,typeName:I.ZodUnion,...L(t)});Fe=e=>e instanceof gt?Fe(e.schema):e instanceof ye?Fe(e.innerType()):e instanceof yt?[e.value]:e instanceof bt?e.options:e instanceof kt?B.objectValues(e.enum):e instanceof _t?Fe(e._def.innerType):e instanceof dt?[void 0]:e instanceof pt?[null]:e instanceof he?[void 0,...Fe(e.unwrap())]:e instanceof Pe?[null,...Fe(e.unwrap())]:e instanceof vn||e instanceof xt?Fe(e.unwrap()):e instanceof wt?Fe(e._def.innerType):[],pr=class e extends j{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.object)return x(n,{code:k.invalid_type,expected:S.object,received:n.parsedType}),A;let r=this.discriminator,s=n.data[r],o=this.optionsMap.get(s);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(x(n,{code:k.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),A)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let s=new Map;for(let o of n){let i=Fe(o.shape[t]);if(!i.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let a of i){if(s.has(a))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(a)}`);s.set(a,o)}}return new e({typeName:I.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...L(r)})}};ht=class extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(fr(o)||fr(i))return A;let a=js(o.value,i.value);return a.valid?((dr(o)||dr(i))&&n.dirty(),{status:n.value,value:a.data}):(x(r,{code:k.invalid_intersection_types}),A)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,i])=>s(o,i)):s(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};ht.create=(e,t,n)=>new ht({left:e,right:t,typeName:I.ZodIntersection,...L(n)});Ie=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.array)return x(r,{code:k.invalid_type,expected:S.array,received:r.parsedType}),A;if(r.data.length<this._def.items.length)return x(r,{code:k.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),A;!this._def.rest&&r.data.length>this._def.items.length&&(x(r,{code:k.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((i,a)=>{let l=this._def.items[a]||this._def.rest;return l?l._parse(new ge(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>Y.mergeArray(n,i)):Y.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Ie.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Ie({items:e,typeName:I.ZodTuple,rest:null,...L(t)})};mr=class e extends j{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.object)return x(r,{code:k.invalid_type,expected:S.object,received:r.parsedType}),A;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new ge(r,a,r.path,a)),value:i._parse(new ge(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?Y.mergeObjectAsync(n,s):Y.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof j?new e({keyType:t,valueType:n,typeName:I.ZodRecord,...L(r)}):new e({keyType:Ke.create(),valueType:t,typeName:I.ZodRecord,...L(n)})}},Bt=class extends j{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.map)return x(r,{code:k.invalid_type,expected:S.map,received:r.parsedType}),A;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new ge(r,a,r.path,[u,"key"])),value:o._parse(new ge(r,l,r.path,[u,"value"]))}));if(r.common.async){let a=new Map;return Promise.resolve().then(async()=>{for(let l of i){let u=await l.key,c=await l.value;if(u.status==="aborted"||c.status==="aborted")return A;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}})}else{let a=new Map;for(let l of i){let u=l.key,c=l.value;if(u.status==="aborted"||c.status==="aborted")return A;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};Bt.create=(e,t,n)=>new Bt({valueType:t,keyType:e,typeName:I.ZodMap,...L(n)});zt=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==S.set)return x(r,{code:k.invalid_type,expected:S.set,received:r.parsedType}),A;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(x(r,{code:k.too_small,minimum:s.minSize.value,type:"set",inclusive:!0,exact:!1,message:s.minSize.message}),n.dirty()),s.maxSize!==null&&r.data.size>s.maxSize.value&&(x(r,{code:k.too_big,maximum:s.maxSize.value,type:"set",inclusive:!0,exact:!1,message:s.maxSize.message}),n.dirty());let o=this._def.valueType;function i(l){let u=new Set;for(let c of l){if(c.status==="aborted")return A;c.status==="dirty"&&n.dirty(),u.add(c.value)}return{status:n.value,value:u}}let a=[...r.data.values()].map((l,u)=>o._parse(new ge(r,l,r.path,u)));return r.common.async?Promise.all(a).then(l=>i(l)):i(a)}min(t,n){return new e({...this._def,minSize:{value:t,message:T.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:T.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};zt.create=(e,t)=>new zt({valueType:e,minSize:null,maxSize:null,typeName:I.ZodSet,...L(t)});hr=class e extends j{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.function)return x(n,{code:k.invalid_type,expected:S.function,received:n.parsedType}),A;function r(a,l){return En({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Mt(),Le].filter(u=>!!u),issueData:{code:k.invalid_arguments,argumentsError:l}})}function s(a,l){return En({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Mt(),Le].filter(u=>!!u),issueData:{code:k.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof qe){let a=this;return ee(async function(...l){let u=new oe([]),c=await a._def.args.parseAsync(l,o).catch(p=>{throw u.addIssue(r(l,p)),u}),f=await Reflect.apply(i,this,c);return await a._def.returns._def.type.parseAsync(f,o).catch(p=>{throw u.addIssue(s(f,p)),u})})}else{let a=this;return ee(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new oe([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new oe([s(c,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:Ie.create(t).rest(je.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||Ie.create([]).rest(je.create()),returns:n||je.create(),typeName:I.ZodFunction,...L(r)})}},gt=class extends j{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};gt.create=(e,t)=>new gt({getter:e,typeName:I.ZodLazy,...L(t)});yt=class extends j{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return x(n,{received:n.data,code:k.invalid_literal,expected:this._def.value}),A}return{status:"valid",value:t.data}}get value(){return this._def.value}};yt.create=(e,t)=>new yt({value:e,typeName:I.ZodLiteral,...L(t)});bt=class e extends j{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return x(n,{expected:B.joinValues(r),received:n.parsedType,code:k.invalid_type}),A}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return x(n,{received:n.data,code:k.invalid_enum_value,options:r}),A}return ee(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};bt.create=xa;kt=class extends j{_parse(t){let n=B.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==S.string&&r.parsedType!==S.number){let s=B.objectValues(n);return x(r,{expected:B.joinValues(s),received:r.parsedType,code:k.invalid_type}),A}if(this._cache||(this._cache=new Set(B.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=B.objectValues(n);return x(r,{received:r.data,code:k.invalid_enum_value,options:s}),A}return ee(t.data)}get enum(){return this._def.values}};kt.create=(e,t)=>new kt({values:e,typeName:I.ZodNativeEnum,...L(t)});qe=class extends j{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==S.promise&&n.common.async===!1)return x(n,{code:k.invalid_type,expected:S.promise,received:n.parsedType}),A;let r=n.parsedType===S.promise?n.data:Promise.resolve(n.data);return ee(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};qe.create=(e,t)=>new qe({type:e,typeName:I.ZodPromise,...L(t)});ye=class extends j{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===I.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=this._def.effect||null,o={addIssue:i=>{x(r,i),i.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),s.type==="preprocess"){let i=s.transform(r.data,o);if(r.common.async)return Promise.resolve(i).then(async a=>{if(n.value==="aborted")return A;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?A:l.status==="dirty"?at(l.value):n.value==="dirty"?at(l.value):l});{if(n.value==="aborted")return A;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?A:a.status==="dirty"?at(a.value):n.value==="dirty"?at(a.value):a}}if(s.type==="refinement"){let i=a=>{let l=s.refinement(a,o);if(r.common.async)return Promise.resolve(l);if(l instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value),{status:n.value,value:a.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>a.status==="aborted"?A:(a.status==="dirty"&&n.dirty(),i(a.value).then(()=>({status:n.value,value:a.value}))))}if(s.type==="transform")if(r.common.async===!1){let i=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!We(i))return A;let a=s.transform(i.value,o);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:a}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(i=>We(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):A);B.assertNever(s)}};ye.create=(e,t,n)=>new ye({schema:e,typeName:I.ZodEffects,effect:t,...L(n)});ye.createWithPreprocess=(e,t,n)=>new ye({schema:t,effect:{type:"preprocess",transform:e},typeName:I.ZodEffects,...L(n)});he=class extends j{_parse(t){return this._getType(t)===S.undefined?ee(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};he.create=(e,t)=>new he({innerType:e,typeName:I.ZodOptional,...L(t)});Pe=class extends j{_parse(t){return this._getType(t)===S.null?ee(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Pe.create=(e,t)=>new Pe({innerType:e,typeName:I.ZodNullable,...L(t)});_t=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===S.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};_t.create=(e,t)=>new _t({innerType:e,typeName:I.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...L(t)});wt=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},s=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Lt(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new oe(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new oe(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};wt.create=(e,t)=>new wt({innerType:e,typeName:I.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...L(t)});Ut=class extends j{_parse(t){if(this._getType(t)!==S.nan){let r=this._getOrReturnCtx(t);return x(r,{code:k.invalid_type,expected:S.nan,received:r.parsedType}),A}return{status:"valid",value:t.data}}};Ut.create=e=>new Ut({typeName:I.ZodNaN,...L(e)});Zm=Symbol("zod_brand"),vn=class extends j{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},Tn=class e extends j{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?A:o.status==="dirty"?(n.dirty(),at(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let s=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return s.status==="aborted"?A:s.status==="dirty"?(n.dirty(),{status:"dirty",value:s.value}):this._def.out._parseSync({data:s.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:I.ZodPipeline})}},xt=class extends j{_parse(t){let n=this._def.innerType._parse(t),r=s=>(We(s)&&(s.value=Object.freeze(s.value)),s);return Lt(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};xt.create=(e,t)=>new xt({innerType:e,typeName:I.ZodReadonly,...L(t)});Jm={object:ie.lazycreate};(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(I||(I={}));Gm=(e,t={message:`Input not instance of ${e.name}`})=>Sa(n=>n instanceof e,t),Ea=Ke.create,va=lt.create,Wm=Ut.create,Km=ut.create,Ta=ct.create,Vm=ft.create,qm=jt.create,Ym=dt.create,Xm=pt.create,Qm=Ve.create,eh=je.create,th=Te.create,nh=Ht.create,rh=He.create,sh=ie.create,oh=ie.strictCreate,ih=mt.create,ah=pr.create,lh=ht.create,uh=Ie.create,ch=mr.create,fh=Bt.create,dh=zt.create,ph=hr.create,mh=gt.create,hh=yt.create,gh=bt.create,yh=kt.create,bh=qe.create,kh=ye.create,_h=he.create,wh=Pe.create,xh=ye.createWithPreprocess,Sh=Tn.create,Eh=()=>Ea().optional(),vh=()=>va().optional(),Th=()=>Ta().optional(),Rh={string:(e=>Ke.create({...e,coerce:!0})),number:(e=>lt.create({...e,coerce:!0})),boolean:(e=>ct.create({...e,coerce:!0})),bigint:(e=>ut.create({...e,coerce:!0})),date:(e=>ft.create({...e,coerce:!0}))},Ah=A});var h={};xn(h,{BRAND:()=>Zm,DIRTY:()=>at,EMPTY_PATH:()=>xm,INVALID:()=>A,NEVER:()=>Ah,OK:()=>ee,ParseStatus:()=>Y,Schema:()=>j,ZodAny:()=>Ve,ZodArray:()=>He,ZodBigInt:()=>ut,ZodBoolean:()=>ct,ZodBranded:()=>vn,ZodCatch:()=>wt,ZodDate:()=>ft,ZodDefault:()=>_t,ZodDiscriminatedUnion:()=>pr,ZodEffects:()=>ye,ZodEnum:()=>bt,ZodError:()=>oe,ZodFirstPartyTypeKind:()=>I,ZodFunction:()=>hr,ZodIntersection:()=>ht,ZodIssueCode:()=>k,ZodLazy:()=>gt,ZodLiteral:()=>yt,ZodMap:()=>Bt,ZodNaN:()=>Ut,ZodNativeEnum:()=>kt,ZodNever:()=>Te,ZodNull:()=>pt,ZodNullable:()=>Pe,ZodNumber:()=>lt,ZodObject:()=>ie,ZodOptional:()=>he,ZodParsedType:()=>S,ZodPipeline:()=>Tn,ZodPromise:()=>qe,ZodReadonly:()=>xt,ZodRecord:()=>mr,ZodSchema:()=>j,ZodSet:()=>zt,ZodString:()=>Ke,ZodSymbol:()=>jt,ZodTransformer:()=>ye,ZodTuple:()=>Ie,ZodType:()=>j,ZodUndefined:()=>dt,ZodUnion:()=>mt,ZodUnknown:()=>je,ZodVoid:()=>Ht,addIssueToContext:()=>x,any:()=>Qm,array:()=>rh,bigint:()=>Km,boolean:()=>Ta,coerce:()=>Rh,custom:()=>Sa,date:()=>Vm,datetimeRegex:()=>wa,defaultErrorMap:()=>Le,discriminatedUnion:()=>ah,effect:()=>kh,enum:()=>gh,function:()=>ph,getErrorMap:()=>Mt,getParsedType:()=>Oe,instanceof:()=>Gm,intersection:()=>lh,isAborted:()=>fr,isAsync:()=>Lt,isDirty:()=>dr,isValid:()=>We,late:()=>Jm,lazy:()=>mh,literal:()=>hh,makeIssue:()=>En,map:()=>fh,nan:()=>Wm,nativeEnum:()=>yh,never:()=>th,null:()=>Xm,nullable:()=>wh,number:()=>va,object:()=>sh,objectUtil:()=>Ds,oboolean:()=>Th,onumber:()=>vh,optional:()=>_h,ostring:()=>Eh,pipeline:()=>Sh,preprocess:()=>xh,promise:()=>bh,quotelessJson:()=>km,record:()=>ch,set:()=>dh,setErrorMap:()=>wm,strictObject:()=>oh,string:()=>Ea,symbol:()=>qm,transformer:()=>kh,tuple:()=>uh,undefined:()=>Ym,union:()=>ih,unknown:()=>eh,util:()=>B,void:()=>nh});var Hs=b(()=>{cr();Ls();ha();Sn();Ra();ur()});var St=b(()=>{Hs();Hs()});var Ye,Rn=b(()=>{"use strict";St();Ye=h.object({slug:h.string().min(1).max(64),description:h.string().max(255).optional(),match_command:h.string().min(1),priority:h.number().int().default(50),strip_ansi:h.boolean().default(!1),strip_lines_matching:h.array(h.string()).default([]),drop_lines_matching:h.array(h.string()).default([]),keep_failures:h.boolean().default(!1),strip_on_failure:h.boolean().default(!1),fold_passing:h.boolean().default(!1),fold_passing_threshold:h.number().int().positive().max(1e3).optional(),mask_abs_paths:h.boolean().default(!1),preserve_exact:h.boolean().default(!1),truncate_lines_at:h.number().int().positive().max(1e4).optional(),max_lines:h.number().int().positive().max(1e5).optional(),scale_with_level:h.boolean().default(!0),transform:h.string().max(64).optional(),transform_on_failure:h.boolean().default(!1),on_empty:h.string().max(255).optional()})});var Oa={};xn(Oa,{OutputVerbosity:()=>$a,ReducerLevel:()=>Ca,Settings:()=>Zt,slugKey:()=>ce});import{createHash as $h}from"node:crypto";function ce(e){let t=Aa.get(e);return t||(t=$h("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),Aa.set(e,t)),t}var $a,Ca,Zt,Aa,Xe=b(()=>{"use strict";St();$a=h.enum(["normal","compact","minimal"]),Ca=h.enum(["off","light","balanced","max"]),Zt=h.object({enabled:h.boolean().default(!0),telemetryOptIn:h.boolean().default(!0),outputVerbosity:$a.default("compact"),reducer:Ca.default("off"),filters:h.object({enableAll:h.boolean().default(!0),disabled:h.array(h.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),Aa=new Map});function Jt(e,t,n,r=t){let s=Ia.get(r);s||(s=new Map,Ia.set(r,s));let o=JSON.stringify([e,n?[...n].sort():null]),i=s.get(o);if(i!==void 0)return i;let a=null;for(let l of t)n&&!n.has(ce(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=Ch){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}var Ia,Ch,gr=b(()=>{"use strict";Xe();Ia=new WeakMap,Ch=256});import Oh from"node:os";import{join as An}from"node:path";function v(){return process.env.TOKMIZER_HOME||An(Oh.homedir(),".tokmizer")}function $n(){return An(v(),"install-id")}function Bs(){return An(v(),"content-cache")}function Pa(){return An(v(),"restore.json")}function zs(e){return An(Bs(),e)}var Z=b(()=>{"use strict"});import{join as Ih}from"node:path";import{mkdir as _A,readFile as Ph,writeFile as wA,unlink as xA,rename as SA}from"node:fs/promises";function Dh(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Mh(e){return e?.dir??v()}async function Et(e){let t=Mh(e);try{let n=await Ph(Ih(t,Nh),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Dh()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}var Nh,Cn=b(()=>{"use strict";Z();Nh="state.json"});import{createRequire as Lh}from"node:module";function jh(){let e="1.1.2";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Fh(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function Na(e,t){if(!e||!t)return!1;let n=e.split(".").map(s=>parseInt(s,10)),r=t.split(".").map(s=>parseInt(s,10));for(let s=0;s<3;s+=1){let o=n[s]??0,i=r[s]??0;if(Number.isNaN(o)||Number.isNaN(i))return!1;if(o<i)return!0;if(o>i)return!1}return!1}var Fh,be,Gt=b(()=>{"use strict";Fh=Lh(import.meta.url);be=jh()});var Da,Ma=b(()=>{"use strict";Da=`-----BEGIN PUBLIC KEY-----
|
|
4
4
|
MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
|
|
5
5
|
-----END PUBLIC KEY-----
|
|
6
|
-
`});import{existsSync as
|
|
7
|
-
`)});function
|
|
8
|
-
`)}var
|
|
6
|
+
`});import{existsSync as Hh,mkdirSync as CA,rmSync as OA,writeFileSync as IA}from"node:fs";import{join as La}from"node:path";function Uh(){return La(v(),"network-off")}function Zh(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&Bh.has(e.trim().toLowerCase())}function On(){return Zh()?!1:!Hh(Uh())}function Fa(){return La(v(),zh)}var Bh,zh,DA,In=b(()=>{"use strict";Z();Bh=new Set(["0","off","false","no"]),zh="network-notice-shown",DA=["Tokmizer contacts tokmizer.com to keep its rules up to date and to improve the product. No account or email is needed.","It sends a random install ID, the plugin version and how it was installed (npm, Homebrew, Claude Code...), nothing that describes your machine: no computer name, OS, hardware or user name. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on, to spot when compression gets worse and fix it before it reaches everyone. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
|
|
7
|
+
`)});function ja(){return Da.replace(/\\n/g,`
|
|
8
|
+
`)}var BA,zA,Us=b(()=>{"use strict";Gt();Ma();In();BA=300*1e3,zA=120*1e3});import{createCipheriv as JA,createDecipheriv as Jh,hkdfSync as Gh,randomBytes as GA}from"node:crypto";function Vh(e){return Buffer.from(Gh("sha256",Buffer.from(e,"utf8"),Wh,Kh,32))}function yr(e,t){let n=Vh(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Jh("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var Wh,Kh,Zs=b(()=>{"use strict";Wh=Buffer.from("tokmizer-bundle-enc-v1"),Kh=Buffer.from("rules-bundle")});import{chmodSync as VA,readFileSync as qh,writeFileSync as qA,mkdirSync as YA,renameSync as XA}from"node:fs";import{join as Yh}from"node:path";function Qh(){return Yh(v(),"bundle-cache.json")}function Ha(){try{let e=qh(Qh(),"utf8"),t=Xh.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var Xh,Ba=b(()=>{"use strict";St();Z();Xh=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1"),fetchedAt:h.number().int().nonnegative()})});import{createPublicKey as tg,verify as ng}from"node:crypto";function Gs(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:rg}function sg(e,t){let n=ja();if(!n||!n.includes("BEGIN PUBLIC KEY"))throw new Error("tkr-daemon: no valid signing public key configured (set TOKMIZER_RESP_SIGNING_PUBLIC_KEY_PEM at build time).");let r=tg({key:n,format:"pem"});if(!ng(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(yr(e.payload,t))}function og(e,t){let n=sg(e,t),r=Js.parse(n);if(Date.now()-r.signedAt>Gs())throw new Error("tkr-daemon: rules bundle is stale");return Ws(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Ws(e,t){let n=new Map;for(let r of e.filters)n.set(r.slug,{...r,matchRegex:new RegExp(r.match_command)});return{bundleVersion:e.bundleVersion,signedAt:t.signedAt,ruleCount:n.size,startedAt:Date.now(),fetchedAt:t.fetchedAt,selectFor:(r,s,o)=>Jt(r,n.values(),o?new Set(o):null,n)}}async function br(){try{let e=Ha();if(!e)return null;let t=await Et();return t?.signingSecret?og(e,t.signingSecret):null}catch{return null}}var Js,d$,rg,Pn=b(()=>{"use strict";St();Rn();gr();Cn();Us();Zs();Ba();Js=h.object({bundleVersion:h.number().int().nonnegative(),signedAt:h.number().int(),filters:h.array(Ye)}),d$=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1")}),rg=10080*60*1e3});function ig(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function ag(e,t,n){let r=e.split(/\r?\n/),s="",o=(Math.log10(t+1)|0)+1;for(let i=t-1;i<=t+1;i++){let a=r[i-1];a&&(s+=i.toString().padEnd(o," "),s+=": ",s+=a,s+=`
|
|
9
9
|
`,i===t&&(s+=" ".repeat(o+n+2),s+=`^
|
|
10
|
-
`))}return s}var
|
|
10
|
+
`))}return s}var C,vt=b(()=>{C=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=ig(n.toml,n.ptr),o=ag(n.toml,r,s);super(`Invalid TOML document: ${t}
|
|
11
11
|
|
|
12
|
-
${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function kr(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let i="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)
|
|
13
|
-
`:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":$.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&$.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);$.x("unfinished string",e,t)}var Ks=b(()=>{Et();});var ig,vt,Vs=b(()=>{ig=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,vt=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,o=!0,i="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(i=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(i=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);s=n!==4,o=n!==3}else{let l=t.match(ig);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),o=!!l[2],o&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=o,this.#e=i)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}}});function fe(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Ys(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Nn(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||$.x("document contains excessively nested structures. aborting.",e);let s=r===91?Ua(e):za(e);return e.d++,s}return r===34||r===39?kr(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&$.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&$.x("invalid value",e,n),e.p++,!1):r===43||r===45?_r(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?ag(e,r,t):e.s.charCodeAt(e.p+2)===58?lg(e,r,t):_r(e,e.p,r,0,t)}function _r(e,t,n,r,s){let o=n,i=0,a=!1;if(o===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&$.x("invalid value",e,t),e.p++,(r||1)/0;if(o===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&$.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||Ys(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return qs(e,t,16,s);if(o===98)return qs(e,t,2,s);if(o===111)return qs(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:$.x("illegal leading zero",e,t)}else fe(o)||$.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Ys(o,s));)i||(i=1),o===95?(i&1||$.x("illegal underscore",e),i+=11,a=!0):i===1&&o===46?i=2:(i===1||i===3)&&(o===101||o===69)?i=4:i===4&&(o===43||o===45)||(fe(o)?i>9?i-=11:i&1||i++:$.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||$.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):Ba(e,l,10,t)}function qs(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Ys(s,r));)s===95?(o&1&&$.x("illegal underscore",e),o=3):fe(s,n)?o&1&&o--:$.x("illegal character in numeric literal",e);o&1&&$.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),Ba(e,i,n,t)}function Ba(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;$.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function ag(e,t,n){let r=e.p++,s;if(!fe(t)||!fe(e.s.charCodeAt(e.p++))||!fe(e.s.charCodeAt(e.p++))||!fe(e.s.charCodeAt(e.p++)))return _r(e,e.p=r,t,0,n);if(e.p+=5,fe(e.s.charCodeAt(e.p++))||$.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!fe(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return Pn(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&$.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;fe(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let i=e.s.slice(r,++e.p);return Pn(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return Pn(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return Pn(e,o,2,s,r)}function lg(e,t,n){let r=e.p;if(!fe(t)||!fe(e.s.charCodeAt(++e.p)))return _r(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;fe(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return Pn(e,s,4,!1,r)}function Pn(e,t,n,r,s,o){if(e.ld){let i=new vt(t,n,r);return i.isValid()||$.x("invalid date",e,s),i}try{switch(o&&(t+=o),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(i){$.x(i instanceof Error?i.message:""+i,e,s)}}var Xs=b(()=>{Ks();Qs();Et();Vs();});function ug(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&$.x("control characters are not allowed in comments",e)}}function ve(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;ug(e)}}var eo=b(()=>{Et();});function wr(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||$.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||$.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(o,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&$.x("illegal quoted key: multiline strings are not allowed",e),s.push(kr(e)),r=2,e.p--):i===32||i===9?r===1&&(s.push(e.s.slice(o,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?$.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));$.x("incomplete key-value: cannot find end of key",e,n)}function za(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(ve(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=wr(e);for(let f=0;f<u.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=u[f],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&$.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&$.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&$.x("trying to redefine an already defined value",e,l),ve(e,!0,!0);let c=Nn(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),ve(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&$.x("expected comma or end of structure",e,e.p-1)}$.x("unfinished table",e,t)}function Ua(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(ve(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Nn(e,93)),ve(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&$.x("expected comma or end of structure",e,e.p-1)}$.x("unfinished array",e,t)}var Qs=b(()=>{Ks();Xs();eo();Et();});function Za(e,t,n,r,s){let o=n,i=r,a,l=!1,u;for(let c=0;c<t.length;c++){if(c){if(o=l?o[a]:o[a]=Object.create(null),i=(u=i[a]).c,s===0&&(u.t===1||u.t===2))return null;if(u.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[c],(l=Object.hasOwn(o,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let f=a==="__proto__";if(e.uk&&(f||a==="constructor"))return!1;f&&(Object.defineProperty(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:c<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(u=i[a],u.t!==s&&!(s===1&&u.t===3)||(s===2&&(u.d||(u.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),u.c[u.i++]=u={t:1,d:!1,i:0,c:Object.create(null)}),u.d))return null;if(u.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,u.c]}function Ja(e,t,n){(t===null||e.uk===2)&&$.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Dn(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),s=Object.create(null),o,i=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,ve(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let u=e.charCodeAt(++n.p)===91;o=n.p+=+u,i=!1;let c=wr(n,93);u&&(e.charCodeAt(n.p)!==93&&$.x("expected end of table array declaration",n),n.p++);let f=Za(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(Ja(n,f,o),i=!0)}else{o=n.p;let u=wr(n),c=Za(n,u,a,l,0);!c&&!i&&Ja(n,c,o),ve(n,!0,!0);let f=Nn(n,void 0);c&&!i&&(c[1][c[0]]=f)}ve(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&$.x("each key-value declaration must be followed by an end-of-line",n),ve(n)}return r}var Ga=b(()=>{Qs();Xs();eo();Et();});function Mn(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function fg(e){for(let t=0;t<e.length;t++)if(Mn(e[t])!=="object")return!1;return e.length!=0}function Ka(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function dg(e){return Ka(Wa?e.toWellFormed():e)}function Va(e){if(cg.test(e))return e;if(Wa&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Ka(e)}function to(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return dg(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return pg(e,n,r,s);case"array":return mg(e,n,r,s);case"temporal/tz+uc":if(s){let o=e.timeZoneId,i=o.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||o!=="UTC"&&o!=="UCT"&&o!=="Universal"&&o!=="Zulu"&&!o.startsWith("GMT")&&o!=="Greenwich"&&!o.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function pg(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let o="{ ";for(let i=0;i<s.length;i++){let a=s[i];i&&(o+=", "),o+=Va(a)+" = "+to(e[a],Mn(e[a]),t-1,n,r)}return o+" }"}function mg(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let o=0;o<e.length;o++){if(o&&(s+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=to(e[o],Mn(e[o]),t-1,n,r)}return s+" ]"}function hg(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
|
|
12
|
+
${o}`,n),this.line=r,this.column=s,this.codeblock=o}static x(t,n,r){throw new e(t,{toml:n.s,ptr:r??n.p})}}});function kr(e){let t=e.p,n=e.s.charCodeAt(e.p++),r=n,s=n===39,o=n===e.s.charCodeAt(e.p)&&n===e.s.charCodeAt(e.p+1);o&&((n=e.s.charCodeAt(e.p+=2))===10?e.p++:n===13&&e.s.charCodeAt(e.p+1)===10&&(e.p+=2));let i="",a=e.p,l=0;for(;e.p<e.s.length;e.p++)if(n=e.s.charCodeAt(e.p),o&&(n===10||n===13&&e.s.charCodeAt(e.p+1)===10))l=l&&3;else if(n<32&&n!==9||n===127)C.x("control characters are not allowed in strings",e);else if((!l||l===3)&&n===r&&(!o||e.s.charCodeAt(e.p+1)===r&&e.s.charCodeAt(e.p+2)===r)){if(o&&(e.s.charCodeAt(e.p+3)===r&&e.p++,e.s.charCodeAt(e.p+3)===r&&e.p++),!l){let u=e.s.slice(a,e.p);i=i?i+u:u}return e.p+=o?3:1,i}else if(!l)!s&&n===92&&(i+=e.s.slice(a,a=e.p),l=1);else if(l===1)if(n===120||n===117||n===85){let u=e.p++-1,c=0,f=n===120?2:n===117?4:8;for(let d=0;d<f;d++,e.p++){let p=e.s.charCodeAt(e.p),y=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;y<0&&C.x("invalid non-hex character in unicode escape",e),c=c<<4|y}(c<0||c>1114111||c>=55296&&c<=57343)&&C.x("invalid unicode escape",e,u),i+=String.fromCodePoint(c),a=e.p--,l=0}else o&&(n===32||n===9)?l=2:(n===98?i+="\b":n===116?i+=" ":n===110?i+=`
|
|
13
|
+
`:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":C.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&C.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);C.x("unfinished string",e,t)}var Ks=b(()=>{vt();});var lg,Tt,Vs=b(()=>{lg=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,Tt=class e extends Date{#t=!1;#n=!1;#e=null;constructor(t,n,r){let s=!0,o=!0,i="Z",a;if(typeof t=="string")if(n)e:{if(n<3){if(+t.slice(11,13)>23){t="";break e}n===2?(i=null,t+="Z"):(a=t.charCodeAt(t.length-1))!==90&&a!==122&&(i=t.slice(t.length-6)),r&&(t=t.slice(0,10)+"T"+t.slice(11))}else n===4&&(t=+t.slice(0,2)>23?"":`0000-01-01T${t}Z`);s=n!==4,o=n!==3}else{let l=t.match(lg);l?(l[1]||(s=!1,t=`0000-01-01T${t}`),o=!!l[2],o&&t[10]===" "&&(t=t.replace(" ","T")),l[2]&&+l[2]>23?t="":(i=l[3]||null,!i&&o&&(t+="Z"))):t=""}super(t),isNaN(this.getTime())||(this.#t=s,this.#n=o,this.#e=i)}isDateTime(){return this.#t&&this.#n}isLocal(){return!this.#t||!this.#n||!this.#e}isDate(){return this.#t&&!this.#n}isTime(){return this.#n&&!this.#t}isValid(){return this.#t||this.#n}toISOString(){let t=super.toISOString();if(this.isDate())return t.slice(0,10);if(this.isTime())return t.slice(11,23);if(this.#e===null)return t.slice(0,-1);if(this.#e==="Z"||this.#e==="z")return t;let n=+this.#e.slice(1,3)*60+ +this.#e.slice(4,6);return n=this.#e[0]==="-"?n:-n,new Date(this.getTime()-n*6e4).toISOString().slice(0,-1)+this.#e}static wrapAsOffsetDateTime(t,n="Z"){let r=new e(t);return r.#e=n,r}static wrapAsLocalDateTime(t){let n=new e(t);return n.#e=null,n}static wrapAsLocalDate(t){let n=new e(t);return n.#n=!1,n.#e=null,n}static wrapAsLocalTime(t){let n=new e(t);return n.#t=!1,n.#e=null,n}}});function fe(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Ys(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Dn(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||C.x("document contains excessively nested structures. aborting.",e);let s=r===91?Za(e):Ua(e);return e.d++,s}return r===34||r===39?kr(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&C.x("invalid value",e,n),e.p++,!0):r===102?((e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==108||e.s.charCodeAt(++e.p)!==115||e.s.charCodeAt(++e.p)!==101)&&C.x("invalid value",e,n),e.p++,!1):r===43||r===45?_r(e,e.p,e.s.charCodeAt(++e.p),44-r,t):e.s.charCodeAt(e.p+4)===45&&e.s.charCodeAt(e.p+7)===45?ug(e,r,t):e.s.charCodeAt(e.p+2)===58?cg(e,r,t):_r(e,e.p,r,0,t)}function _r(e,t,n,r,s){let o=n,i=0,a=!1;if(o===105)return(e.s.charCodeAt(++e.p)!==110||e.s.charCodeAt(++e.p)!==102)&&C.x("invalid value",e,t),e.p++,(r||1)/0;if(o===110)return(e.s.charCodeAt(++e.p)!==97||e.s.charCodeAt(++e.p)!==110)&&C.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||Ys(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return qs(e,t,16,s);if(o===98)return qs(e,t,2,s);if(o===111)return qs(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:C.x("illegal leading zero",e,t)}else fe(o)||C.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Ys(o,s));)i||(i=1),o===95?(i&1||C.x("illegal underscore",e),i+=11,a=!0):i===1&&o===46?i=2:(i===1||i===3)&&(o===101||o===69)?i=4:i===4&&(o===43||o===45)||(fe(o)?i>9?i-=11:i&1||i++:C.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||C.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):za(e,l,10,t)}function qs(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Ys(s,r));)s===95?(o&1&&C.x("illegal underscore",e),o=3):fe(s,n)?o&1&&o--:C.x("illegal character in numeric literal",e);o&1&&C.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),za(e,i,n,t)}function za(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;C.x("integer value cannot be represented losslessly",e,r)}return s}return BigInt(n===10?t:(n===2?"0b":n===8?"0o":"0x")+t)}function ug(e,t,n){let r=e.p++,s;if(!fe(t)||!fe(e.s.charCodeAt(e.p++))||!fe(e.s.charCodeAt(e.p++))||!fe(e.s.charCodeAt(e.p++)))return _r(e,e.p=r,t,0,n);if(e.p+=5,fe(e.s.charCodeAt(e.p++))||C.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!fe(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return Nn(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&C.x("invalid date-time: time part is malformed",e,r),e.s.charCodeAt(e.p+=3)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;fe(e.s.charCodeAt(++e.p)););if(t=e.s.charCodeAt(e.p)){if(t===90||t===122){let i=e.s.slice(r,++e.p);return Nn(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return Nn(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return Nn(e,o,2,s,r)}function cg(e,t,n){let r=e.p;if(!fe(t)||!fe(e.s.charCodeAt(++e.p)))return _r(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;fe(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return Nn(e,s,4,!1,r)}function Nn(e,t,n,r,s,o){if(e.ld){let i=new Tt(t,n,r);return i.isValid()||C.x("invalid date",e,s),i}try{switch(o&&(t+=o),n){case 1:return Temporal.ZonedDateTime.from(t);case 2:return Temporal.PlainDateTime.from(t);case 3:return Temporal.PlainDate.from(t);case 4:return Temporal.PlainTime.from(t)}}catch(i){C.x(i instanceof Error?i.message:""+i,e,s)}}var Xs=b(()=>{Ks();Qs();vt();Vs();});function fg(e){for(;e.p<e.s.length;e.p++){let t=e.s.charCodeAt(e.p);if(t===10)break;if(t===13&&e.s.charCodeAt(e.p+1)===10){e.p++;break}(t<32&&t!==9||t===127)&&C.x("control characters are not allowed in comments",e)}}function Re(e,t,n){let r;for(;e.p<e.s.length;){for(;e.p<e.s.length&&((r=e.s.charCodeAt(e.p))===32||r===9||!t&&(r===10||r===13&&e.s.charCodeAt(e.p+1)===10));)e.p++;if(n||r!==35)break;fg(e)}}var eo=b(()=>{vt();});function wr(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||C.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||C.x("illegal empty bare key",e),r===1&&s.push(e.s.slice(o,e.p)),r=0):!r&&(i===34||i===39)?(i===e.s.charCodeAt(e.p+1)&&i===e.s.charCodeAt(e.p+2)&&C.x("illegal quoted key: multiline strings are not allowed",e),s.push(kr(e)),r=2,e.p--):i===32||i===9?r===1&&(s.push(e.s.slice(o,e.p)),r=2):r===2||i<48&&i!==45||i>57&&i<65||i>90&&i<97&&i!==95||i>122?C.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));C.x("incomplete key-value: cannot find end of key",e,n)}function Ua(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(Re(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=wr(e);for(let f=0;f<u.length;f++){f&&(i=a?i[o]:i[o]=Object.create(null)),o=u[f],(a=Object.hasOwn(i,o))&&(typeof i[o]!="object"||r.has(i[o]))&&C.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&C.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&C.x("trying to redefine an already defined value",e,l),Re(e,!0,!0);let c=Dn(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),Re(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&C.x("expected comma or end of structure",e,e.p-1)}C.x("unfinished table",e,t)}function Za(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(Re(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Dn(e,93)),Re(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&C.x("expected comma or end of structure",e,e.p-1)}C.x("unfinished array",e,t)}var Qs=b(()=>{Ks();Xs();eo();vt();});function Ja(e,t,n,r,s){let o=n,i=r,a,l=!1,u;for(let c=0;c<t.length;c++){if(c){if(o=l?o[a]:o[a]=Object.create(null),i=(u=i[a]).c,s===0&&(u.t===1||u.t===2))return null;if(u.t===2){let f=o.length-1;o=o[f],i=i[f].c}}if(a=t[c],(l=Object.hasOwn(o,a))&&i[a]?.t===0&&i[a]?.d)return null;if(!l){let f=a==="__proto__";if(e.uk&&(f||a==="constructor"))return!1;f&&(Object.defineProperty(o,a,{enumerable:!0,configurable:!0,writable:!0}),Object.defineProperty(i,a,{enumerable:!0,configurable:!0,writable:!0})),i[a]={t:c<t.length-1&&s===2?3:s,d:!1,i:0,c:Object.create(null)}}}if(u=i[a],u.t!==s&&!(s===1&&u.t===3)||(s===2&&(u.d||(u.d=!0,o[a]=[]),o[a].push(o=Object.create(null)),u.c[u.i++]=u={t:1,d:!1,i:0,c:Object.create(null)}),u.d))return null;if(u.d=!0,s===1)o=l?o[a]:o[a]=Object.create(null);else if(s===0&&l)return null;return[a,o,u.c]}function Ga(e,t,n){(t===null||e.uk===2)&&C.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function Mn(e,t={}){let n={s:e,p:0,d:t.maxDepth??1e3,bi:t.integersAsBigInt??!1,ld:t.useLegacyDate??!0,uk:t.unsafeKeyBehaviour==="throw"?2:t.unsafeKeyBehaviour==="drop"?1:0},r=Object.create(null),s=Object.create(null),o,i=!1,a=r,l=s;for(e.charCodeAt(0)===65279&&n.p++,Re(n);n.p<e.length;){if(e.charCodeAt(n.p)===91){let u=e.charCodeAt(++n.p)===91;o=n.p+=+u,i=!1;let c=wr(n,93);u&&(e.charCodeAt(n.p)!==93&&C.x("expected end of table array declaration",n),n.p++);let f=Ja(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(Ga(n,f,o),i=!0)}else{o=n.p;let u=wr(n),c=Ja(n,u,a,l,0);!c&&!i&&Ga(n,c,o),Re(n,!0,!0);let f=Dn(n,void 0);c&&!i&&(c[1][c[0]]=f)}Re(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&C.x("each key-value declaration must be followed by an end-of-line",n),Re(n)}return r}var Wa=b(()=>{Qs();Xs();eo();vt();});function Ln(e){let t=typeof e;if(t==="object"){if(Array.isArray(e))return"array";if(typeof e.getUTCDate=="function"&&e instanceof Date)return"date";if(globalThis.Temporal){if(e.until){if(e instanceof Temporal.ZonedDateTime)return"temporal/tz+uc";if(e instanceof Temporal.PlainDateTime||e instanceof Temporal.PlainDate)return"temporal/uc";if(e instanceof Temporal.PlainTime||e instanceof Temporal.Instant)return"temporal";if(e instanceof Temporal.PlainYearMonth)return"temporal/x"}else if(e.toPlainDate&&e instanceof Temporal.PlainMonthDay||e.negated&&e instanceof Temporal.Duration)return"temporal/x"}}return t}function pg(e){for(let t=0;t<e.length;t++)if(Ln(e[t])!=="object")return!1;return e.length!=0}function Va(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function mg(e){return Va(Ka?e.toWellFormed():e)}function qa(e){if(dg.test(e))return e;if(Ka&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Va(e)}function to(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");switch(t){case"number":if(isNaN(e))return"nan";if(e===1/0)return"inf";if(e===-1/0)return"-inf";if(Number.isInteger(e)&&(r||!Number.isSafeInteger(e)))return e.toFixed(1);case"bigint":case"boolean":case"temporal":return e.toString();case"string":return mg(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return hg(e,n,r,s);case"array":return gg(e,n,r,s);case"temporal/tz+uc":if(s){let o=e.timeZoneId,i=o.charCodeAt(0);if(i!==43&&i!==45&&(i!==85&&i!==71&&i!==90&&i!==69||o!=="UTC"&&o!=="UCT"&&o!=="Universal"&&o!=="Zulu"&&!o.startsWith("GMT")&&o!=="Greenwich"&&!o.startsWith("Etc/")))throw new TypeError("Temporal objects with an IANA timezone are not allowed in Temporal strict mode")}case"temporal/uc":if(s&&e.calendarId!=="iso8601")throw new TypeError("Temporal objects with a non-default calendar are not allowed in Temporal strict mode");return e.toString({calendarName:"never",timeZoneName:"never"});case"temporal/x":throw new TypeError("Unsupported "+e[Symbol.toStringTag])}}function hg(e,t,n,r){let s=Object.keys(e);if(s.length===0)return"{}";let o="{ ";for(let i=0;i<s.length;i++){let a=s[i];i&&(o+=", "),o+=qa(a)+" = "+to(e[a],Ln(e[a]),t-1,n,r)}return o+" }"}function gg(e,t,n,r){if(e.length===0)return"[]";let s="[ ";for(let o=0;o<e.length;o++){if(o&&(s+=", "),e[o]===null||e[o]===void 0)throw new TypeError("arrays cannot contain null or undefined values");s+=to(e[o],Ln(e[o]),t-1,n,r)}return s+" ]"}function yg(e,t,n,r,s){if(n===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let o="";for(let i=0;i<e.length;i++)o+=`${o&&`
|
|
14
14
|
`}[[${t}]]
|
|
15
|
-
`,o+=no(0,e[i],t,n,r,s);return o}function no(e,t,n,r,s,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let u=0;u<l.length;u++){let c=l[u];if(t[c]!==null&&t[c]!==void 0){let f=
|
|
16
|
-
`)+
|
|
15
|
+
`,o+=no(0,e[i],t,n,r,s);return o}function no(e,t,n,r,s,o){if(r===0)throw new Error("Could not stringify the object: maximum object depth exceeded");let i="",a="",l=Object.keys(t);for(let u=0;u<l.length;u++){let c=l[u];if(t[c]!==null&&t[c]!==void 0){let f=Ln(t[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=qa(c);if(f==="array"&&pg(t[c]))a+=(a&&`
|
|
16
|
+
`)+yg(t[c],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
|
|
17
17
|
`)+no(p,t[c],p,r-1,s,o)}else i+=d,i+=" = ",i+=to(t[c],f,r,s,o),i+=`
|
|
18
18
|
`}}return e&&(i||!a)&&(i=i?`[${e}]
|
|
19
19
|
${i}`:`[${e}]`),i&&a?`${i}
|
|
20
|
-
${a}`:i||a}function ro(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(
|
|
20
|
+
${a}`:i||a}function ro(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Ln(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=no(0,e,"",t,n,r);return s[s.length-1]!==`
|
|
21
21
|
`?s+`
|
|
22
|
-
`:s}var
|
|
23
|
-
`),
|
|
24
|
-
`))?e:e.map(n=>{if(n.length<=t||
|
|
25
|
-
`).length<6)}var
|
|
22
|
+
`:s}var dg,Ka,Ya=b(()=>{dg=/^[a-z0-9-_]+$/i,Ka=!!"".isWellFormed});var so={};xn(so,{TomlDate:()=>Tt,TomlError:()=>C,default:()=>bg,parse:()=>Mn,stringify:()=>ro});var bg,xr=b(()=>{Wa();Ya();Vs();vt();bg={parse:Mn,stringify:ro,TomlDate:Tt,TomlError:C}});import{readdir as kg,readFile as _g}from"node:fs/promises";import{join as Qa,dirname as wg}from"node:path";import{fileURLToPath as xg}from"node:url";function vg(){return!1}async function el(){return Wt||(vg()?(Wt=await Tg(Eg),Wt):(!Xa&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
23
|
+
`),Xa=!0),Wt=new Map,Wt))}async function Tg(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(xr(),so))).parse,r=(await kg(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await _g(Qa(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=Ye.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}var Sg,Eg,Wt,Xa,tl=b(()=>{"use strict";Rn();Sg=wg(xg(import.meta.url)),Eg=process.env.TOKMIZER_FILTERS_DIR||Qa(Sg,"..","..","filters"),Wt=null,Xa=!1});function Ne(e){return e.replace(Rg,"").replace(Ag,"")}var Rg,Ag,Fn=b(()=>{"use strict";Rg=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Ag=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g});function oo(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}var nl=b(()=>{"use strict"});function rl(e){let t=e.trim();if(t.length>4096||!(t.startsWith("{")&&t.endsWith("}")||t.startsWith("[")&&t.endsWith("]")))return!1;try{return JSON.parse(t),!0}catch{return!1}}function sl(e,t){return e.some(n=>n.length>t)&&rl(e.join(`
|
|
24
|
+
`))?e:e.map(n=>{if(n.length<=t||rl(n))return n;let r=n.charCodeAt(t-1),s=n.charCodeAt(t),o=r>=55296&&r<=56319&&s>=56320&&s<=57343?t-1:t;return`${n.slice(0,o)}\u2026`})}var ol=b(()=>{"use strict"});function Kt(e){return`\u2026 (${e} more lines omitted)`}function il(e,t){if(e.length<=t)return{kept:e,dropped:[]};let n=Math.ceil(t*.7),r=t-n,s=e.slice(n,e.length-r),o=s.filter(a=>a.length<=Og&&$g.test(a)).slice(0,Cg),i=s.length-o.length;return{kept:[...e.slice(0,n),...i>0?[Kt(i)]:[],...o,...e.slice(e.length-r)],dropped:s}}var $g,Cg,Og,io=b(()=>{"use strict";$g=/\b(?:ERROR|FATAL|CRITICAL|PANIC)\b|\bpanic:|\bTraceback \(most recent|\b[A-Z][A-Za-z0-9]*(?:Error|Exception)\b|\berror(?:\[[A-Za-z0-9]+\])?:/,Cg=20,Og=4096});function al(e,t){let n=t>0?t:5,r=[],s=0,o=a=>{s>=n?r.push(`\u2026 ${s} passing checks folded \u2026`):r.push(...a)},i=[];for(let a of e)Ig.test(a)&&!ke.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Ig,ke,jn=b(()=>{"use strict";Ig=/^\s*(?:[✓✔√]|ok )/,ke=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/});function ll(e){return e.map(t=>t.replace(Pg,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Pg,ul=b(()=>{"use strict";Pg=/(?:\/[\w.@+-]+){3,}/g});function Fg(e){let t=Mg.exec(e);return!t||Lg.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}function Hg(e,t,n){let r=t;for(;r<e.length;){if(e[r]==="\\"){r+=2;continue}if(e[r]===n)return!0;r+=1}return!1}function Bg(e,t){let n=0,r=null,s=0;for(;s<e.length;){let o=e[s];if(t.inBlockComment){if(o==="*"&&e[s+1]==="/"){t.inBlockComment=!1,s+=2;continue}s+=1;continue}if(t.inTemplate){if(o==="\\"){s+=2;continue}o==="`"&&(t.inTemplate=!1),s+=1;continue}if(r){if(o==="\\"){s+=2;continue}o===r&&(r=null),s+=1;continue}if(o==="/"&&e[s+1]==="/")break;if(o==="/"&&e[s+1]==="*"){t.inBlockComment=!0,s+=2;continue}if(o==="`"){t.inTemplate=!0,s+=1;continue}if(o==="'"||o==='"'){let i=s>0?e[s-1]:"";!(o==="'"&&(i==="<"||i==="&"))&&Hg(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}function Ug(e,t,n){let r=n==null?"":` (${n}-${n+t-1}): Read offset=${n} limit=${t} before editing`;return`${e}\u2026 ${t} ${t===1?"line":"lines"} folded${r} \u2026`}function ao(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=zg.exec(e[n]);if(!r)continue;let s=Number(r[1])-1,o=n+1;for(;s>0&&o<e.length&&e[o]==="";)t[o]=!0,s-=1,o+=1;n=o-1}return t}function Hn(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Ng.test(o)&&Dg.test(o)||Fg(o)||jg.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=Bg(e[l],i),l+=1,a<=0&&!i.inTemplate&&!i.inBlockComment){u=!0;break}let c=l-s;if(u&&c<t){r.push(...e.slice(s,l)),s=l;continue}if(u&&c>=3){let f=c-2,d=/^\s*/.exec(e[s+1]??"")?.[0]??" ";r.push(o),r.push(Ug(d,f,n?s+2:null));for(let p=0;p<f-1;p++)r.push("");r.push(e[l-1]),s=l;continue}}r.push(o),s+=1}return r}function Er(e){let t=e.slice(0,4096);return!(!Zg.test(t)||t.split(`
|
|
25
|
+
`).length<6)}var Ng,Dg,Mg,Lg,jg,Sr,zg,Zg,Vt=b(()=>{"use strict";Ng=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Dg=/\{\s*$/,Mg=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Lg=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);jg=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;Sr=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,zg=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;Zg=/\b(?:function|class|interface|import\s+|export\s+|def\s+|fn\s+|impl\s+|package\s+|namespace\s+|using\s+|#include|=>\s*\{|=\s*function)/});function yl(e){let t=[],n=0,r=()=>{n>0&&t.push(`\u2026 ${n} verbose log line${n===1?"":"s"} dropped \u2026`),n=0};for(let s of e){if(ml.test(s.replace(pl,""))&&!hl.test(s)&&!gl.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}function dl(e){if(e.trim()===""||hl.test(e)||gl.test(e)||Gg.test(e))return null;let t=Kg.exec(e);if(t)return`\0progress${t[1]}`;if(Vg.test(e))return"\0layer";if(qg.test(e))return"\0resource-done";if(/^\s/.test(e))return null;let n=e.replace(pl,"");return ml.test(n)||Jg.test(n)?"\0verbose":e.replace(/\d+/g,"#")}function bl(e){let t=[],n=0;for(;n<e.length;){let r=dl(e[n]),s=n+1;if(r!==null)for(;s<e.length&&dl(e[s])===r;)s+=1;let o=s-n;r===null||o<Wg?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+cl)),t.push(`\u2026 ${o-cl-fl} similar log lines dropped \u2026`),t.push(...e.slice(s-fl,s))),n=s}return t}function kl(e){return e.some(t=>Yg.test(t))}function vr(e){if(e.length===0||kl(e))return e;let t=[],n=1,r=e[0];for(let s=1;s<e.length;s++){if(e[s]===r){n+=1;continue}t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),r=e[s],n=1}return t.push(n>1&&r.trim()?`${r} \xD7${n}`:r),t}function _l(e){if(kl(e))return e;let t=[],n=0;for(let r of e){if(r.trim()===""){n+=1;continue}n>0&&t.push(""),n=0,t.push(r)}return t}var pl,ml,hl,gl,Jg,Gg,Wg,cl,fl,Kg,Vg,qg,Yg,Tr=b(()=>{"use strict";jn();pl=/^\s*(?:\d{4}-\d{2}-\d{2}[T\s]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?|\d{2}:\d{2}:\d{2}(?:\.\d+)?)\s*/,ml=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,hl=new RegExp(ke.source,"i"),gl=/\bWARN(?:ING)?\b/i;Jg=/^(?:DEBUG|INFO):[\w.-]+:/,Gg=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Wg=8,cl=1,fl=2,Kg=/^(\s*)(?:Downloaded|Downloading|Compiling|Fetching|Fetched|Installing|Installed|Collecting|Using cached|Requirement already satisfied:|Unpacking|Preparing|Pulling fs layer|Pull complete|Already exists|Download complete|Verifying Checksum|Waiting|Extracting|Get:\d+|Hit:\d+|Ign:\d+|Setting up|Selecting previously unselected package|Progress: resolved|cargo:rustc-[a-z-]+=)/,Vg=/^[0-9a-f]{12}: (?:Pulling fs layer|Waiting|Downloading|Verifying Checksum|Download complete|Extracting|Pull complete|Already exists)\b/,qg=/^\s*[-+~]\s+[├└│ ─]*\S+:\S+\s+\S+\s+(?:created|updated|deleted|replaced|refreshed|read|same)\s\(\d+s\)\s*$/;Yg=/^@@ -\d+(?:,\d+)? \+\d+(?:,\d+)? @@/});function G(e,t){wl.set(e,t)}function xl(e){return wl.get(e)}var wl,ae=b(()=>{"use strict";wl=new Map});function ty(e){if(e<1024)return String(e);let t=["K","M","G","T"],n=e/1024,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r+=1;return`${n.toFixed(1)}${t[r]}`}function ny(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?ey[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function ry(e){let t=Qg.exec(e);if(!t)return null;let n=t[4].trim();if(n===""||n==="."||n==="..")return null;let r=t[3],s=/^\d+$/.test(r)?ty(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:ny(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function sy(e){if(e.length<3)return null;let t=new Map;for(let s of e){let o=s.name.lastIndexOf(".");if(o<=0)continue;let i=s.name.slice(o);t.set(i,(t.get(i)??0)+1)}let n=null,r=0;for(let[s,o]of t)o>r&&(r=o,n=s);return n&&r>=Math.ceil(e.length/2)?`${r} ${n}`:null}function Sl(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>ay&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function ly(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function uy(e){let t=e.filter(l=>l.trim()!=="");if(t.length<oy)return null;let n=e.findIndex(l=>l.trim()!==""),r=e.length-1-[...e].reverse().findIndex(l=>l.trim()!=="");if(e.slice(n,r+1).some(l=>l.trim()==="")||t.some(l=>l.endsWith(":")||Tl.test(l.trim())||vl.test(l)||/^total\s+\d+/.test(l)||l!==l.trimEnd()||l.startsWith(" "))||t.filter(l=>/\s/.test(l)).length>t.length*.2)return null;let s=l=>/\s|"/.test(l)?JSON.stringify(l):l,o=new Map;for(let l of t){let u=ly(l),c=o.get(u)??[];c.push(l),o.set(u,c)}let i=[`${t.length} entries:`],a=[];for(let[l,u]of[...o.entries()].sort((c,f)=>f[1].length-c[1].length||c[0].localeCompare(f[0])))l&&u.length>=iy&&u.every(c=>!/\s|"/.test(c))?i.push(...Sl(`*${l} (${u.length}):`,u.map(c=>c.slice(0,-l.length)))):a.push(...u);return a.length&&i.push(...Sl(`other (${a.length}):`,a.map(s))),i.join(`
|
|
26
26
|
`).length<t.join(`
|
|
27
|
-
`).length?i:null}function
|
|
28
|
-
`).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),s=
|
|
27
|
+
`).length?i:null}function cy(e){if(!e)return!1;let t=/(?:^|[\s;&|(])ls(?=\s|$)([^|;&]*)/.exec(e);if(!t)return!1;for(let n of t[1].trim().split(/\s+/)){if(n==="--")break;if(/^--(?:sort|reverse|time)(?:=|$)/.test(n)||/^-[A-Za-z0-9]+$/.test(n)&&/[tSUfrvX]/.test(n))return!0}return!1}function El(e){let t=new Map;for(let s of e)t.set(s.mode,(t.get(s.mode)??0)+1);let n=null,r=0;for(let[s,o]of t)o>r&&([n,r]=[s,o]);return r>=2?n:null}function uo(e,t){if(cy(t))return e;let n=uy(e);if(n)return n;let r=[],s=[],o=!1;for(let m of e){if(m.trim()===""||/^total\s+\d+/.test(m))continue;if(Tl.test(m.trim())||!vl.test(m))return e;let _=ry(m);if(!_){if(/\s\.\.?$/.test(m))continue;return e}o=!0,(_.isDir?r:s).push(_)}if(!o)return e;let i=(m,_)=>m.name.localeCompare(_.name);r.sort(i),s.sort((m,_)=>_.sizeKey-m.sizeKey||i(m,_));let a=[...r,...s],l=a.every(m=>m.owner===a[0].owner)?a[0].owner:null,u=El(r),c=El(s),f=[];for(let m of a){let _=m.isDir?u:c,E=`${m.mode===_?"":`${m.mode} `}${l===null?`${m.owner} `:""}${m.isDir?`${m.name}/`:m.name}`;f.push(m.isDir?E:`${E} ${m.size}`)}if(f.length>lo){let m=f.length-lo;f=[...f.slice(0,lo),`\u2026 ${m} more lines omitted`]}let d=s.length===1?"file":"files",p=r.length===1?"dir":"dirs",y=sy(s),g=`${s.length} ${d}, ${r.length} ${p}`+(y?` (${y})`:"")+(l===null?"":`, owner ${l.replace(" ",":")}`)+(u||c?`, mode ${[u&&`dirs ${u}`,c&&`files ${c}`].filter(Boolean).join(", ")} unless shown`:"");return f.push(g),f}var vl,Tl,Xg,Qg,ey,lo,oy,iy,ay,Rl=b(()=>{"use strict";ae();vl=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,Tl=/^[./~][^\s]*:$/,Xg=String.raw`(?:[^\s\d]{3,}\s+\d{1,2}|\d{1,2}\s+[^\s\d]{3,})\s+(?:\d{1,2}:\d{2}|\d{4})|\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:\s+[+-]\d{4})?`,Qg=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Xg})\s+(.+)$`),ey={k:1,m:2,g:3,t:4,p:5},lo=1e3;oy=12,iy=3,ay=180;G("smart-ls",uo)});var Al=b(()=>{"use strict";Vt();ae();G("smart-read",e=>Hn(e))});function fy(e){let t=e[0].split("/");for(let n of e.slice(1)){let r=n.split("/"),s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)break}return t.join("/")}function dy(e){if(e.length<2||e.some(s=>s.startsWith('"')))return"";let t=e[0];for(let s of e.slice(1)){let o=0;for(;o<t.length&&o<s.length&&t[t.length-1-o]===s[s.length-1-o];)o+=1;if(t=t.slice(t.length-o),!t)return""}let n=t.indexOf("."),r=n<0?"":t.slice(n);return r.length>=3&&e.every(s=>s.length>r.length)?r:""}function py(e){let t=e.filter(u=>u.trim()!=="");if(t.length===0||t.filter(u=>!/\s/.test(u.trim())).length<t.length*.6)return e;let r=new Map,s=[],o=0;for(let u of t){let c=u.trim();if(c.startsWith("find:")){s.push(c);continue}let f=c.replace(/^\.\//,"").replace(/\/+$/,""),d=f.lastIndexOf("/"),p=d>0?f.slice(0,d):d===0?"/":"",y=d>=0?f.slice(d+1):f;if(!y)continue;let g=r.get(p)??[];g.push(/\s/.test(y)?`"${y}"`:y),r.set(p,g),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")&&!i.includes("/")?fy(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=u==="/"?"/":a?u.slice(a.length).replace(/^\//,""):u,f=r.get(u),d=dy(f),p=d?f.map(y=>y.slice(0,-d.length)):f;l.push(`${c==="/"?"/":c?`${c}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>$l){let u=Math.max(0,$l-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}var $l,Cl=b(()=>{"use strict";ae();$l=1e3;G("smart-find",py)});function hy(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=my.exec(i);if(!a)return e;t.push({counts:a[1].replace(/\s+/g," "),path:a[2]})}let n=t.filter(i=>i.path!=="total");if(n.length<2)return t.length?t.map(i=>`${i.counts} ${i.path}`):e;let r=n.map(i=>i.path.includes("/")?i.path.slice(0,i.path.lastIndexOf("/")+1):""),s=r[0];for(let i of r)for(;s&&!i.startsWith(s);)s=s.slice(0,s.slice(0,-1).lastIndexOf("/")+1);let o=s?[`in ${s}:`]:[];for(let i of t)o.push(`${i.counts} ${i.path!=="total"&&s?i.path.slice(s.length):i.path}`);return o}var my,Ol=b(()=>{"use strict";ae();my=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;G("smart-wc",hy)});function by(e){let t=[];for(let n=0;n<e.length;n+=1){let r=1;for(;n+r<e.length&&e[n+r]===e[n];)r+=1;t.push(r>1?`${e[n]} \xD7${r}`:e[n]),n+=r-1}return t}function ky(e){if(e.length<=co+fo+1)return e;let t=e.slice(co,-fo),n=t.filter(s=>yy.test(s)),r=t.length-n.length;return r===0?e:[...e.slice(0,co),...n,`\u2026 ${r} more lines omitted`,...e.slice(-fo)]}function _y(e){if(!e.some(s=>Il.test(s)))return e;let t=[],n=[],r=()=>{t.push(...ky(by(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(gy.test(o))return r(),t.push(...e.slice(s)),t;if(Il.test(o)){r(),t.push(o);continue}n.push(o)}return r(),t}var Il,gy,yy,co,fo,Pl=b(()=>{"use strict";ae();jn();Il=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,gy=/^\d+% tests passed, \d+ tests? failed out of \d+$/,yy=new RegExp(`${ke.source}|\\*\\*\\*|Exception|FAIL|ERROR`),co=3,fo=8;G("smart-ctest",_y)});function wy(e){if(e.length<2)return"";let t=e[0].slice(0,e[0].lastIndexOf("/")+1);for(let n of e)for(;t&&!n.startsWith(t);)t=t.slice(0,t.slice(0,-1).lastIndexOf("/")+1);return t}function xy(e){let t=e.join(`
|
|
28
|
+
`).trim();if(!t.startsWith("{"))return e;let n;try{n=JSON.parse(t)}catch{return e}if(!n||typeof n!="object"||!n.files||typeof n.files!="object")return e;let r=Object.keys(n.files),s=wy(r),o=r.reduce((a,l)=>a+(n.files[l].messages?.length??0),0),i=[`phpstan: ${o} error${o===1?"":"s"} in ${r.length} file${r.length===1?"":"s"}${s?` under ${s}`:""}`];for(let a of r){let l=n.files[a].messages??[];i.push(`${a.slice(s.length)} (${l.length})`);for(let u of l){let c=typeof u.line=="number"?`:${u.line}`:":?",f=typeof u.tip=="string"&&u.tip?` \u2014 ${u.tip}`:"";i.push(` ${c} ${String(u.message??"")}${f}`)}}for(let a of Array.isArray(n.errors)?n.errors:[])i.push(`error: ${String(a)}`);return i}var Nl=b(()=>{"use strict";ae();G("smart-phpstan",xy)});function vy(e){if(!e.some(n=>po.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];po.test(r)||Sy.test(r)&&!po.test(e[n+1]??"")&&!Ey.test(r)||t.push(r)}return t}var Sy,po,Ey,Dl=b(()=>{"use strict";ae();jn();Sy=/^\d+ \| /,po=/^\s+\^\s*$/,Ey=new RegExp(`${ke.source}|\\*\\*\\*|Exception|FAIL|ERROR`);G("bun-frames",vy)});function Oy(e){let t=e.split("\r").filter(n=>n.trim()!=="");return t.length>0&&t.every(n=>Ay.test(n))}function Iy(e){let t=e.some(r=>$y.test(r)),n=[];for(let r=0;r<e.length;r+=1){let s=e[r];if(Ty.test(s)){let o=r+1;for(Ry.test(e[o]??"")&&(o+=1);Oy(e[o]??"");)o+=1;r=o-1;continue}t&&Cy.test(s)||n.push(s)}return n}var Ty,Ry,Ay,$y,Cy,Ml=b(()=>{"use strict";ae();Ty=/^\s*% Total\s+% Received\s+% Xferd\s+Average Speed/,Ry=/^\s+Dload\s+Upload\s+Total\s+Spent\s+Left\s+Speed/,Ay=/^\s*\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+\d+\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[\d.]+[kMGTP]?\s+[-\d:]+\s+[-\d:]+\s+[-\d:]+\s+[\d.]+[kMGTP]?\s*$/,$y=/^\* (?:Trying |Connected to |Host .* was resolved|Connection #\d+|IPv[46]:|Uses proxy)|^> [A-Z]+ \S+ HTTP\/[\d.]+\s*$|^< HTTP\/[\d.]+ \d{3}/,Cy=/^(?:\* |[<>] (?:[A-Za-z][\w-]*: .*|[A-Z]+ \S+ HTTP\/[\d.]+|HTTP\/[\d.]+ .*)$|[<>]\s?$|[{}] \[\d+ bytes data\])/;G("curl-progress",Iy)});function jl(e,t=!1){let n=t?e.trimEnd():e.trim();return n.length>Ll?`${n.slice(0,Ll)}\u2026`:n}function Dy(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=Ny&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function My(e){let t=null;for(let n of e){let r=n.split("/").slice(0,-1);if(t===null){t=r;continue}let s=0;for(;s<t.length&&s<r.length&&t[s]===r[s];)s+=1;if(t=t.slice(0,s),t.length===0)return""}return t?t.join("/"):""}function Ul(e){return e.includes("/")||e.includes("\\")||/\.[A-Za-z][\w-]*$/.test(e)}function Ly(e,t,n){return/^\d+$/.test(e)?!1:Ul(e)?!0:(t||n)&&/^[\w.-]+$/.test(e)}function Fy(e){let t=0,n=0;for(let r of e){let s=(Hl.exec(r)??Bl.exec(r)??zl.exec(r))?.[1];s&&(n+=1,Ul(s)&&(t+=1))}return t>=2&&t*2>n}function Zl(e,t={}){let n=e.filter(m=>m.trim()!=="");if(n.length===0)return e;let r=Fy(n),s=new Map,o=new Map,i=null,a=0,l=0,u=null;for(let m of n){if(m==="--"){i&&s.get(i).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(m))return e;let _=Hl.exec(m),w=Bl.exec(m);if(_&&w)return e;let E=_||w?null:zl.exec(m),R=(_??w??E)?.[1];if(!R||!Ly(R,!!_,r))return e;let $=_?{line:_[2],content:_[3],context:!1}:w?{line:w[2],content:w[3],context:!0}:{line:"",content:E[2],context:!1},F=s.get(R)??[];F.push($),s.set(R,F);let N=$.line?Number($.line):NaN,M=t.astGrep&&R===i&&u!==null&&N===u+1;(t.astGrep?!M:!$.context)&&(a+=1,o.set(R,(o.get(R)??0)+1)),u=t.astGrep&&Number.isFinite(N)?N:null,l+=1,i=R}if(s.size===l)return e;let c=[...s.keys()].sort((m,_)=>{let w=Fl.test(m)?1:0,E=Fl.test(_)?1:0;return w-E||(m<_?-1:m>_?1:0)}),f=c.length>1?My(c):"",d=m=>f?m.slice(f.length+1):m,p=[];for(let m of c){p.push(`${d(m)} (${o.get(m)??0}):`);for(let _ of s.get(m))"separator"in _?p.push(" --"):_.line?p.push(` ${_.line}${_.context?"-":":"} ${jl(_.content,t.astGrep)}`):p.push(` ${jl(_.content,t.astGrep)}`)}let y=c.length>1&&p.length>Py?Dy(c.map(m=>`${d(m)} (${o.get(m)??0})`)):[],g=[`${a}m ${c.length}f${f?` in ${f}/`:""}:`,...y,"",...p];if(g.length>mo){let m=g.length-mo;return[...g.slice(0,mo),`\u2026 ${m} more lines omitted`]}return g}var mo,Ll,Py,Ny,Hl,Bl,zl,Fl,Jl=b(()=>{"use strict";ae();Ml();mo=1e3,Ll=200,Py=60,Ny=190,Hl=/^([^\s:]+):(\d+):(.*)$/,Bl=/^([^:]+?)-(\d+)-(.*)$/,zl=/^([^\s:]+):(.*)$/,Fl=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;G("smart-grep",Zl);G("smart-grep-ast",e=>Zl(e,{astGrep:!0}))});function Vy(e){let t=[];for(let l=0;l<e.length;l+=1){let u=Wl.exec(e[l]);if(!u)continue;let c=l+1,f=null;e[c]?.startsWith("Merge: ")&&(f=e[c].slice(7),c+=1);let d=Zy.exec(e[c]??""),p=Jy.exec(e[c+1]??"");if(!d||!p)return null;let y=Gy.indexOf(p[1])+1;if(y===0)return null;t.push({at:l,hash:u[1].slice(0,Wy),refs:u[2]??"",merge:f,author:d[1],date:`${p[4]}-${String(y).padStart(2,"0")}-${p[2].padStart(2,"0")} ${p[3]}`,zone:p[5],end:c+2})}if(t.length===0)return null;let n=[...new Set(t.map(l=>l.author))],r=n.length===1&&t.length>1?n[0]:null,s=n.length>1&&n.length<=Ky&&t.length>n.length,o=t.length>1&&t.every(l=>l.zone===t[0].zone)?t[0].zone:null,i=r?[`author: ${r}`]:s?[`authors: ${n.map((l,u)=>`[${u+1}] ${l}`).join("; ")}`]:[];o&&i.push(`dates: UTC${o}`);let a=0;for(let l of t){i.push(...e.slice(a,l.at));let u=r?"":s?` [${n.indexOf(l.author)+1}]`:` ${l.author}`;i.push(`${l.hash} ${l.date}${o?"":` ${l.zone}`}${u}${l.merge?` merge ${l.merge}`:""}${l.refs}`),a=l.end}return i.push(...e.slice(a)),i}function qy(e){if(!e.some(r=>Gl.test(r)))return e;let t=e.some(r=>Wl.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=Yy(e,t?Uy:zy);return Vy(n)??n}function Yy(e,t){let n=[],r=0,s=0,o=0,i="",a=!1,l=!1,u=()=>{s>0&&n.push(`${i} \u2026 ${s} ${s===1?"line":"lines"} folded \u2026`),s=0};for(let c of e){let f=c.slice(0,o),d=jy.test(f),p=d?c.slice(o):c,y=Hy.test(p),g=a&&y?null:Gl.exec(c);if(g){u(),r=0,o=g[1]?.length??0,a=!0,l=!1,n.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(p)&&(l=!0),y&&!l&&!(o>0&&p.trim().length===0)){if(By.test(p)){n.push(c);continue}r+=1,r<=t?n.push(c):(s+=1,i=d?f:"");continue}u(),n.push(c)}return u(),n}var Gl,jy,Hy,By,zy,Uy,Wl,Zy,Jy,Gy,Wy,Ky,Kl=b(()=>{"use strict";ae();Gl=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,jy=/^[|\\/* ._-]*$/,Hy=/^ {4}/,By=/^ {4}(?:Co-[Aa]uthored-[Bb]y|Signed-off-by|Reviewed-by|Acked-by|Tested-by|Reported-by|Fixes|Closes):/,zy=2,Uy=1,Wl=/^commit ([0-9a-f]{40})(\s.*)?$/,Zy=/^Author:\s+(.+)$/,Jy=/^Date:\s+(?:[A-Z][a-z]{2} )?([A-Z][a-z]{2}) +(\d{1,2}) (\d{2}:\d{2}):\d{2} (\d{4}) ([+-]\d{4})$/,Gy=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Wy=12,Ky=5;G("smart-log",qy)});var Xy,Qy,eb,Vl=b(()=>{"use strict";ae();Xy=/^[\s=]+$/,Qy=/^\s*=+\s+(.*?)\s+=+\s*$/,eb=512;G("strip-banners",e=>{let t=[];for(let n of e){if(Xy.test(n))continue;let r=n.length<=eb?Qy.exec(n):null;t.push(r?r[1]:n)}return t})});function tb(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].trimEnd();if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].trimEnd()===s;)o+=1;if(o>=3)t.push(s),t.push(` \u2026 (repeated ${o}x)`);else for(let i=0;i<o;i++)t.push(s);r+=o}for(;t.length>0&&t[t.length-1]==="";)t.pop();return t}var ql=b(()=>{"use strict";ae();G("squeeze-output",tb)});function nb(e){return e==="compact"?.6:e==="minimal"?.3:1}function sb(e){let[t,n,r,s]=e.slice(-4);if(!t||!n||!r||!s||!/^\s*Test Files\s+([1-9]\d*) passed \(\1\)$/.test(t)||!/^\s*Tests\s+([1-9]\d*) passed \(\1\)$/.test(n)||!/^\s*Start at\s+\d{2}:\d{2}:\d{2}$/.test(r))return e;let o=/^(\s*Duration\s+\d+(?:\.\d+)?(?:ms|s)) \(transform [^\n]+\)$/.exec(s)?.[1];return o?[...e.slice(0,-4).filter((a,l)=>l>2||!/^ RUN v\d+\.\d+\.\d+(?:[\w.+-]*) .+$/.test(a)),t,n,o]:e}function ob(e){let t=Yl.get(e);if(t)return t;let n=e.strip_lines_matching.map(o=>new RegExp(o)),r=(e.drop_lines_matching??[]).map(o=>new RegExp(o)),s={def:e,stripRegexes:n,dropRegexes:r};return Yl.set(e,s),s}function ho(e){return!!e&&ib.test(e)}function go(e,t,n){if(e==="smart-ls")return uo(t,n);let r=xl(e);return r?r(t):t}function Rr(e,t,n={}){return yo(e,t,n).text}function yo(e,t,n={}){let r=n.verbosity??"normal";if(!t.strip_ansi&&t.strip_lines_matching.length===0&&(t.drop_lines_matching??[]).length===0&&!t.transform&&!t.mask_abs_paths&&!t.fold_passing&&!t.truncate_lines_at&&!t.max_lines&&!t.on_empty&&!n.smartCode&&r==="normal")return{text:e,droppedTail:null};let s=ob(t),o=!t.preserve_exact&&e.includes(`\r
|
|
29
29
|
`)?e.replace(/\r\n/g,`
|
|
30
|
-
`):e;t.strip_ansi&&(o=
|
|
30
|
+
`):e;t.strip_ansi&&(o=Ne(o));let i=o.endsWith(`
|
|
31
31
|
`),a=(i?o.slice(0,-1):o).split(`
|
|
32
|
-
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>
|
|
33
|
-
`):null,a=[...a.slice(0,m),...R>0?[
|
|
34
|
-
`),a=[...a.slice(0,m),
|
|
32
|
+
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>ke.test(d)||!s.stripRegexes.some(p=>p.test(d))):oo(a,s.stripRegexes)),s.dropRegexes.length&&(a=oo(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=vr(a),a=_l(a)),r==="minimal"&&!t.preserve_exact&&(a=yl(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=sb(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&Er(o))&&(a=Hn(a,l)),t.transform&&(t.transform==="smart-read"?a=Hn(a,l,t.slug==="read-tool"):a=go(t.transform,a,n.cmd));let u=t.slug==="read-tool";if(!u){let d=ao(a);d.some(Boolean)&&(a=a.filter((p,y)=>!d[y]))}t.mask_abs_paths&&(a=ll(a)),t.fold_passing&&(a=al(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=sl(a,t.truncate_lines_at));let c=null;if(t.max_lines){let d=t.scale_with_level?nb(n.verbosity):1,p=Math.min(t.max_lines,Math.max(rb,Math.round(t.max_lines*d))),y=u?ao(a):null,g=y?y.filter(m=>!m).length:a.length;if(g>p){let m=p;if(y){let w=0;for(m=0;m<a.length&&w<p;)y[m]||(w+=1),m+=1}let _=g-p;if(t.keep_failures){let w=a.slice(m),E=w.filter($=>!ke.test($)),R=w.reduce(($,F,N)=>$+(!ke.test(F)&&!y?.[m+N]?1:0),0);c=E.length>0?E.join(`
|
|
33
|
+
`):null,a=[...a.slice(0,m),...R>0?[Kt(R)]:[],...w.filter($=>ke.test($))]}else if(u)c=a.slice(m).join(`
|
|
34
|
+
`),a=[...a.slice(0,m),Kt(_)];else{let{kept:w,dropped:E}=il(a,p);c=E.length>0?E.join(`
|
|
35
35
|
`):null,a=w}}}let f=a.join(`
|
|
36
36
|
`);return i&&f.length>0&&(f+=`
|
|
37
|
-
`),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&
|
|
38
|
-
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=
|
|
39
|
-
`))if(!/^\s*[✓✔√]\s/.test(t)&&
|
|
37
|
+
`),f.trim().length===0&&t.on_empty&&(e.length===0||e.trim().length>0)&&(n.exitCode==null||n.exitCode===0||n.exitCode===1&&ab.has(t.slug))&&!ho(n.cmd)&&(f=t.on_empty),{text:f,droppedTail:c}}var rb,Yl,ib,ab,bo=b(()=>{"use strict";Fn();nl();ol();io();jn();ul();Vt();Tr();ae();Rl();Al();Cl();Ol();Pl();Nl();Dl();Jl();Kl();Vl();ql();rb=20;Yl=new WeakMap;ib=new RegExp([String.raw`(?:^|[\s;&|(])grep(?=\s)[^|;&]*?\s(?:-[A-Za-z]*q[A-Za-z]*|--quiet|--silent)(?=\s|$)`,String.raw`(?:^|[\s;&|(])find(?=\s)[^|;&]*?\s-(?:delete|quit|exec|execdir|ok|okdir|fprint0?|fprintf|fls|prune)(?=\s|$)`,String.raw`(?:^|[\s;&|(])(?:ruff|black|flake8)(?=\s)[^|;&]*?\s(?:-q+|--quiet)(?=\s|$)`,String.raw`(?:^|[\s;&|(])eslint(?=\s)[^|;&]*?\s(?:-o|--output-file)(?=[\s=]|$)`,String.raw`(?:^|[\s;&|(])prettier(?=\s)[^|;&]*?\s(?:-l|--list-different)(?=\s|$)`].join("|")),ab=new Set(["grep","ast-grep"])});import{readdir as lb,readFile as tu,writeFile as V1,mkdir as q1,rename as Y1}from"node:fs/promises";import{readdirSync as ub,statSync as Xl}from"node:fs";import{createHash as cb}from"node:crypto";import{basename as tC,join as Or}from"node:path";function Cr(){return Or(v(),"filters")}function ru(){return Or(v(),"filters-trust.json")}function su(e){return typeof e=="string"&&e.startsWith(nu)}function db(e){return cb("sha256").update(e).digest("hex")}async function pb(){try{let e=JSON.parse(await tu(ru(),"utf8")),t={};if(e.files&&typeof e.files=="object")for(let[n,r]of Object.entries(e.files))typeof r=="string"&&/^[0-9a-f]{64}$/.test(r)&&(t[n]=r);return{v:1,files:t}}catch{return{v:1,files:{}}}}function mb(e,t){if(t===void 0)return{tests:[]};let n={message:`${e}: tests: each [[filters.${e}.tests]] needs input and expected strings`};if(!Array.isArray(t))return n;let r=[];for(let s of t){if(typeof s!="object"||s===null)return n;let{input:o,expected:i,name:a}=s;if(typeof o!="string"||typeof i!="string")return n;r.push({...typeof a=="string"&&a?{name:a}:{},input:o,expected:i})}return{tests:r}}function hb(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=mb(e,r);if("message"in o)return o;let i=Ye.safeParse({...s,slug:e});if(!i.success){let l=i.error.issues.map(u=>`${u.path.join(".")||"rule"}: ${u.message}`).join("; ");return{message:`${e}: ${l}`}}let a;try{a=new RegExp(i.data.match_command)}catch{return{message:`${e}: match_command is not a valid regular expression`}}for(let l of i.data.strip_lines_matching)try{new RegExp(l)}catch{return{message:`${e}: strip_lines_matching has an invalid regular expression`}}return{filter:{...i.data,slug:`${nu}${i.data.slug}`,matchRegex:a},tests:o.tests}}function gb(e){return e===void 0||e===Ar?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${Ar}. Update tkr, or write the file for version ${Ar}`:`schema_version must be the number ${Ar}`}async function yb(e){try{return(await lb(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function bb(e={}){let t=e.requireTrust!==!1,n=Cr(),r=new Map,s=new Map,o=[],i=await yb(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await pb():null;for(let l of i){let u;try{u=await tu(Or(n,l),"utf8")}catch{o.push({file:l,message:"could not be read"});continue}if(a){let f=a.files[l];if(!f){o.push({file:l,message:`not trusted yet. Review it, then run: tkr filters trust ${l}`});continue}if(f!==db(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await kb(u,l);for(let[f,d]of c.filters)r.set(f,d);for(let[f,d]of c.tests)s.set(f,d);o.push(...c.issues)}return{dir:n,filters:r,tests:s,issues:o}}async function kb(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(xr(),so)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
|
|
38
|
+
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=gb(i.schema_version);if(a)return s.push({file:t,message:a}),{filters:n,tests:r,issues:s};let l=i.filters;if(typeof l!="object"||l===null||Array.isArray(l))return s.push({file:t,message:"no [filters.<name>] table found"}),{filters:n,tests:r,issues:s};for(let[u,c]of Object.entries(l)){let f=hb(u,c);if("message"in f){s.push({file:t,message:f.message});continue}n.set(f.filter.slug,f.filter),f.tests.length>0&&r.set(f.filter.slug,{file:t,tests:f.tests})}return{filters:n,tests:r,issues:s}}function _b(){let e=[];for(let t of[ru(),Cr()])try{let n=Xl(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of ub(Cr()).filter(n=>n.endsWith(".toml")).sort()){let n=Xl(Or(Cr(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function wb(){let e=Date.now();if(!$r||e-eu>=fb){eu=e;let t=_b();(!$r||t!==Ql)&&(Ql=t,$r=bb())}return $r}async function xb(e){let{filters:t}=await wb();return t.size===0?null:Jt(e,t.values(),null,t)}function ou(e){return async(t,n)=>await xb(t)??e(t,n)}var nu,Ar,$r,Ql,eu,fb,ko=b(()=>{"use strict";Rn();gr();bo();Z();nu="user/",Ar=1,$r=null,Ql="",eu=0,fb=1e3});function iu(e){if(!e)return!1;for(let t of Ne(e).split(`
|
|
39
|
+
`))if(!/^\s*[✓✔√]\s/.test(t)&&Sb.some(n=>n.test(t)))return!0;return!1}var Sb,au=b(()=>{"use strict";Fn();Sb=[/\bERROR\b/,/\bFAIL\b/,/\bFAILED\b/,/\bFATAL\b/,/^Traceback /m,/^Error: /m,/^\s+at .*\(.*:\d+:\d+\)/m,/panic:/,/SyntaxError:/,/TypeError:/,/ReferenceError:/,/AssertionError:/,/^\s*(?:error|fatal):/i,/thread '.*' panicked/,/\b[1-9]\d* (?:failed|errors?)\b/]});function Ab(e){let t=0;for(;t<e.length;){let n=e[t];if(Tb.has(n))t+=2;else if(Rb.has(n))t+=1;else if(/^--(?:git-dir|work-tree|namespace|exec-path|super-prefix|config-env)=/.test(n))t+=1;else if(/^-[Cc]\S/.test(n))t+=1;else break}return e.slice(t)}function Be(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let l=n[r];if(vb.test(l)){r++;continue}if(Eb.has(l)){for(r++,l==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(l==="stdbuf"||l==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],o=s.slice(Math.max(s.lastIndexOf("/"),s.lastIndexOf("\\"))+1)||s;o=o.replace(/\.(?:exe|cmd|bat|ps1)$/i,"")||o;let i=n.slice(r+1);o.toLowerCase()==="py"&&(o="python",i.length&&/^-\d(?:\.\d+)?(?:-\d+)?$/.test(i[0])&&(i=i.slice(1)));let a=o==="git"?Ab(i):i;return a.length?`${o} ${a.join(" ")}`:o}function lu(e,t){let n=!1,r=!1,s=0,o=[];for(let i=0;i<e.length;i++){let a=e[i];if(a==="\\"&&!n){i++;continue}a==="'"&&!r?n=!n:a==='"'&&!n?r=!r:!n&&!r&&(a===";"?(o.push(e.slice(s,i)),s=i+1):a==="|"&&e[i+1]==="|"?(o.push(e.slice(s,i)),i++,s=i+1):a==="|"?t||(o.push(e.slice(s,i)),s=i+1):a==="&"&&e[i+1]==="&"&&(o.push(e.slice(s,i)),i++,s=i+1))}return o.push(e.slice(s)),o}function Cb(e){let t=lu(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function Bn(e){let t=lu(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=Be(n).split(/\s+/)[0]??"";if(!$b.has(r))return null}return Cb(t[t.length-1])}function uu(e){let t=!1,n=!1,r=0,s=[];for(let o=0;o<e.length;o++){let i=e[o];if(i==="\\"&&!t){o++;continue}i==="'"&&!n?t=!t:i==='"'&&!t?n=!n:!t&&!n&&(i==="|"||i===";"?(s.push(e.slice(r,o)),i==="|"&&e[o+1]==="|"&&o++,r=o+1):i==="&"&&e[o+1]==="&"&&(s.push(e.slice(r,o)),o++,r=o+1))}s.push(e.slice(r));for(let o=s.length-1;o>=0;o--){let i=s[o].trim();if(i)return i}return e.trim()}function wo(e){let t=Ob.exec(e);return t?Be(e.slice(t[0].length)):null}function cu(e){let t=_o.exec(e),n=e;if(t){if(t[1]!=="bash")return[e];let a=e.indexOf(": ");if(a<0)return[e];n=e.slice(a+2)}let r=Bn(n),s=r?Be(r):null,i=[s?wo(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var Eb,vb,_o,Tb,Rb,$b,Ob,xo=b(()=>{"use strict";Eb=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),vb=/^[A-Za-z_][A-Za-z0-9_]*=/,_o=/^([a-z]+)-tool(?::\s|$)/,Tb=new Set(["-C","-c","--git-dir","--work-tree","--namespace","--exec-path","--super-prefix","--config-env"]),Rb=new Set(["-p","--paginate","-P","--no-pager","--bare","--no-replace-objects","--literal-pathspecs","--glob-pathspecs","--noglob-pathspecs","--icase-pathspecs","--no-optional-locks","--no-lazy-fetch","--no-advice"]);$b=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);Ob=/^(?:npx|bunx|uvx|pnpm\s+(?:exec|dlx)|yarn\s+(?:exec|dlx)|(?:uv|poetry|pipenv|hatch|pdm|rye)\s+run|bundle\s+exec|python[0-9.]*\s+-m)\s+(?=[^\s-])/});function So(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(fu,"utf8"),r=Math.floor(n/2);for(;(t[r]&192)===128;)r-=1;let s=t.length-(n-r);for(;(t[s]&192)===128;)s+=1;return t.subarray(0,r).toString("utf8")+fu+t.subarray(s).toString("utf8")}var fu,du=b(()=>{"use strict";fu=`
|
|
40
40
|
[YOLO: omitted]
|
|
41
|
-
`});function
|
|
41
|
+
`});function Nb(e,t){if(!t)return e.split(`
|
|
42
42
|
`).map(o=>o.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
|
|
43
43
|
`);let n="",r=!1,s=!1;for(let o of e)r?(n+=o,s?s=!1:o==="\\"?s=!0:o==='"'&&(r=!1)):o==='"'?(r=!0,n+=o):o!==" "&&o!==" "&&o!=="\r"&&o!==`
|
|
44
44
|
`&&(n+=o);return n+(e.endsWith(`
|
|
45
45
|
`)?`
|
|
46
|
-
`:"")}function
|
|
46
|
+
`:"")}function Db(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
|
|
47
47
|
`)?`
|
|
48
48
|
`:"",r=(n?e.slice(0,-1):e).split(`
|
|
49
|
-
`),s=r.findIndex(m=>
|
|
50
|
-
`)+n;if(!t)return a;let l=new Map;for(let{cells:m}of i)l.set(m[1],(l.get(m[1])??0)+1);let u=new Map,c=[];for(let[m,_]of l){if(m.length<40||_<3||m.trim().split(/\s+/).length<8)continue;let w=`@${u.size+1}`,E=JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),R=`TITLE ${w} = ${E}`;_*(Buffer.byteLength(m)-Buffer.byteLength(w))<=Buffer.byteLength(R)+1||(u.set(m,w),c.push(R))}let f=new Map;for(let{cells:m}of i){if(u.has(m[1]))continue;let _=/^((?:\S+\s+){4})\S/.exec(m[1])?.[1];_&&_.length>=24&&f.set(_,(f.get(_)??0)+1)}let d=new Map;for(let[m,_]of f){if(_<3)continue;let w=`@p${d.size+1}`,E=`TITLE prefix ${w} = ${JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;_*(Buffer.byteLength(m)-Buffer.byteLength(w)-1)<=Buffer.byteLength(E)+1||(d.set(m,w),c.push(E))}let p=i[0].cells[4].slice(10),y=i.length>=3&&Eo.test(i[0].cells[4])&&i.every(({cells:m})=>Eo.test(m[4])&&m[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(y&&c.push(`CREATED suffix = ${JSON.stringify(p)}`),c.length===0)return a;for(let{index:m,cells:_}of i){let w=u.get(_[1]),E=/^((?:\S+\s+){4})\S/.exec(_[1])?.[1],R=E?d.get(E):void 0;r[m]=_.map((
|
|
51
|
-
`)+n;return Buffer.byteLength(g)<Buffer.byteLength(a)?g:a}function
|
|
49
|
+
`),s=r.findIndex(m=>Ib.test(m));if(s>=0&&r.slice(0,s).some(m=>m!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(m)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(m=>m.index):[],i=[];for(let m=s+1;m<r.length;m+=1){let _=r[m];if(Pb.test(_))continue;if(/…|\.\.\./.test(_))return e;let w;if(s>=0){if(/[^\x20-\x7e]/.test(_))return e;let E=o.map((R,$)=>_.slice(R,o[$+1]));if(E.slice(0,-1).some(R=>R[0]===" "||!R.endsWith(" "))||(w=E.map(R=>R.replace(/ +$/,"")),!/^#\d+$/.test(w[0])||!/^\S+$/.test(w[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(w[4])))return e}else if(w=_.split(" "),w.length!==5||!/^\d+$/.test(w[0])||!w[1]||!w[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(w[3])||!Eo.test(w[4])||!Number.isFinite(Date.parse(w[4])))return e;if(w.some(E=>/[\u0000-\u001f\u007f]/.test(E)))return e;i.push({index:m,cells:w})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let m of i)r[m.index]=m.cells.join(" ");let a=r.join(`
|
|
50
|
+
`)+n;if(!t)return a;let l=new Map;for(let{cells:m}of i)l.set(m[1],(l.get(m[1])??0)+1);let u=new Map,c=[];for(let[m,_]of l){if(m.length<40||_<3||m.trim().split(/\s+/).length<8)continue;let w=`@${u.size+1}`,E=JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),R=`TITLE ${w} = ${E}`;_*(Buffer.byteLength(m)-Buffer.byteLength(w))<=Buffer.byteLength(R)+1||(u.set(m,w),c.push(R))}let f=new Map;for(let{cells:m}of i){if(u.has(m[1]))continue;let _=/^((?:\S+\s+){4})\S/.exec(m[1])?.[1];_&&_.length>=24&&f.set(_,(f.get(_)??0)+1)}let d=new Map;for(let[m,_]of f){if(_<3)continue;let w=`@p${d.size+1}`,E=`TITLE prefix ${w} = ${JSON.stringify(m).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;_*(Buffer.byteLength(m)-Buffer.byteLength(w)-1)<=Buffer.byteLength(E)+1||(d.set(m,w),c.push(E))}let p=i[0].cells[4].slice(10),y=i.length>=3&&Eo.test(i[0].cells[4])&&i.every(({cells:m})=>Eo.test(m[4])&&m[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(y&&c.push(`CREATED suffix = ${JSON.stringify(p)}`),c.length===0)return a;for(let{index:m,cells:_}of i){let w=u.get(_[1]),E=/^((?:\S+\s+){4})\S/.exec(_[1])?.[1],R=E?d.get(E):void 0;r[m]=_.map(($,F)=>F===1?w??(R?`${R}:${$.slice(E.length)}`:$):F===4&&y?$.slice(0,10):$).join(" ")}let g=[...r,"",...c].join(`
|
|
51
|
+
`)+n;return Buffer.byteLength(g)<Buffer.byteLength(a)?g:a}function Hb(e){let t=Fb.exec(e[0]??"");if(!t)return e;let n=jb.exec(e[1]??"");if(!n)return[`* ${t[1]}`,...e.slice(1)];let r=n[1]??n[3],s=n[2]?` [${n[2]} ${n[4]}]`:"";return[`* ${t[1]}...${r}${s}`,...e.slice(2)]}function mu(e){let t=e.endsWith(`
|
|
52
52
|
`)?`
|
|
53
|
-
`:"",n=
|
|
54
|
-
`)),r=null,s=[];for(let o of n){if(Object.hasOwn(
|
|
55
|
-
`)+t}function
|
|
56
|
-
`);for(let n=0;n<t.length;n+=1){if(!
|
|
57
|
-
`)}function
|
|
53
|
+
`:"",n=Hb((t?e.slice(0,-1):e).split(`
|
|
54
|
+
`)),r=null,s=[];for(let o of n){if(Object.hasOwn(pu,o)){r=pu[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?Lb.exec(o):null;if(!i)return e;let a=Mb[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
|
|
55
|
+
`)+t}function zb(e){let t=e.split(`
|
|
56
|
+
`);for(let n=0;n<t.length;n+=1){if(!Bb.test(t[n]))continue;let r=n;for(;r>0&&hu.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(hu," $1 | $2")}return t.join(`
|
|
57
|
+
`)}function Zb(e,t){let n=[];for(let r=0;r<t.length;r+=1){let s=t[r];if(s>0&&e.length>s&&e[s-1]!==" ")return null;let o=e.slice(s,t[r+1]??e.length).trim();if(o.includes(" "))return null;n.push(o)}return n}function Jb(e){let t=e.endsWith(`
|
|
58
58
|
`)?`
|
|
59
59
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
60
|
-
`),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>
|
|
61
|
-
`)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(u=>u.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let u of s.slice(o+1)){if(
|
|
60
|
+
`),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>gu.test(u));if(o<0)return[...r,...s].join(`
|
|
61
|
+
`)+t;let i=s[o],a=[...i.matchAll(/\S+/g)].map(u=>u.index),l=[...r,...s.slice(0,o),i.split(/ +/).join(" ")];for(let u of s.slice(o+1)){if(yu.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:Zb(u,a);if(!c)return[...r,...s].join(`
|
|
62
62
|
`)+t;l.push(c.join(" "))}return l.join(`
|
|
63
|
-
`)+t}function
|
|
63
|
+
`)+t}function Gb(e){let t=e.endsWith(`
|
|
64
64
|
`)?`
|
|
65
65
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
66
|
-
`),r=n.findIndex(i=>
|
|
67
|
-
`)+t}function vo(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=
|
|
68
|
-
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(
|
|
69
|
-
`)}var
|
|
66
|
+
`),r=n.findIndex(i=>gu.test(i.trimEnd()));if(r<0)return e;let s=n[r].trim().split(/ {2,}/).length;if(s<2)return e;let o=[...n.slice(0,r),n[r].trim().split(/ {2,}/).join(" ")];for(let i of n.slice(r+1)){if(yu.test(i)){o.push(i);continue}if(i.startsWith(" ")||i.includes(" ")||/[^\x20-\x7e]/.test(i))return e;let a=i.trimEnd().split(/ {2,}/);if(a.length===s-1){let l=a[0].indexOf(" ");if(l<0||a[0].indexOf(" ",l+1)>=0)return e;a=[a[0].slice(0,l),a[0].slice(l+1),...a.slice(1)]}if(a.length!==s)return e;o.push(a.join(" "))}return o.join(`
|
|
67
|
+
`)+t}function vo(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=mu(e);return Buffer.byteLength(s)<Buffer.byteLength(e)?s:e}let r=e;if(/^[ \t\r\n]*[\[{]/.test(e)){try{JSON.parse(e)}catch{return e}r=Nb(e,t==="minimal")}else n==="gh"?r=Db(e,t==="minimal"):n==="git-status"?r=mu(e):n==="gcloud"?r=Jb(e):n==="oc"?r=Gb(e):n==="git-diff"?r=zb(e):n==="tofu-plan"&&(r=e.replace(Ub,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var Ib,Pb,Eo,pu,Mb,Lb,Fb,jb,hu,Bb,Ub,gu,yu,bu=b(()=>{"use strict";Ib=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,Pb=/^… \([1-9]\d* more lines omitted\)$/,Eo=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;pu={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},Mb={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},Lb=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,Fb=/^On branch (\S+)$/,jb=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;hu=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,Bb=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;Ub=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,gu=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,yu=/^… \(\d+ more lines omitted\)$/});function ku(e){if(Buffer.byteLength(e)<2048||Er(e)||Kb.test(e))return e;let t=e.split(`
|
|
68
|
+
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(Wb.test(s))for(;o<t.length&&t[o]===s;)o+=1;let i=o-r,a=`[tkr: previous log line repeated ${i-1} additional times]`;if(i>=3&&Buffer.byteLength(a)+1<(i-1)*(Buffer.byteLength(s)+1))n.push(s,a);else for(let l=r;l<o;l+=1)n.push(s);r=o}return n.join(`
|
|
69
|
+
`)}var Wb,Kb,_u=b(()=>{"use strict";Vt();Wb=/^(?:\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}:\d{2}(?:\.\d+)?Z?\s+)?(?:\[(?:DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)\]|DEBUG|TRACE|INFO|WARN|WARNING|ERROR|FATAL)(?::|\s|$)/,Kb=/^\[tkr: previous log line repeated \d+ additional times\]$/m});function wu(e){return qb.test(e)}function xu(e){let t=e.endsWith(`
|
|
70
70
|
`),n=(t?e.slice(0,-1):e).split(`
|
|
71
|
-
`),r=0;for(let s of n)if(s.trim()!==""){if(!
|
|
72
|
-
`:""}`}var Zb,Jb,xu=b(()=>{"use strict";Zb=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,Jb=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function Kt(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function Ir(e){return Gb.test(e)}function Xb(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function Pr(e,t,n){return n===null?t:(t!==n&&!e.some(r=>r.kind==="frame"&&r.text===t)&&e.push({kind:"frame",text:t}),n)}function To(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||qb.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let y=Wb.exec(d)??Kb.exec(d);if(y){s=-1;let m=Xb(y[1]);Ir(m)||(r=Pr(n,`${m}:${y[2]}${y[3]?`:${y[3]}`:""}`,r));continue}let g=Vb.exec(d);if(g){s=-1,n.push({kind:"code",text:p,num:Number(g[2]),pointed:g[1]===">"});continue}if(Yb.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:p})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,u=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),c=new Map;for(let f of u){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;c.set(f.segment,Math.min(c.get(f.segment)??d,d))}for(let f of u)f.kind==="diff"&&(f.text=f.text.slice(c.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:u,loc:r}}function re(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function Qb(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=Kt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(re(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(re(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=To(i);for(let c of o)c.body=l,c.loc=u}o=[],i=[]};for(let l of e){let u=l.trim(),c=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(c){i.some(m=>m.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),y=d.split(" > "),g=p?{file:p[1],name:"(suite)",loc:null,body:[]}:y.length>1?{file:y[0],name:y.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(g),o.push(g);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(u);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(u)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(u)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let u of e){let c=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(u);if(c){l=c[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(u);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function e0(e){if(!e.some(c=>/^\s{2}● (?!Console$)/.test(c))||!e.some(c=>/^Tests:\s/.test(c)||/^(?:FAIL|PASS)\s+\S/.test(c)))return null;let t=Kt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(re(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(re(c));let r=[],s=new Set,o=0,i=null,a=null,l=[],u=()=>{if(a){let c=`${a.file}\0${a.name}`;if(!s.has(c)){s.add(c);let{body:f,loc:d}=To(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let c of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(c);if(f){u(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(c)){u();continue}let d=/^\s{2}● (.+)$/.exec(c);if(d){u(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(c)}return u(),{failures:r,summary:n,reported:t,counted:o}}function Au(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let u=e[l],c=/^\s{2}\d+\) (.+)$/.exec(u);if(c){let{name:f,used:d}=r(c[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(u)||a&&a.push(u)}for(let l of o){let{body:u,loc:c}=To(i.get(l.name),s);l.body=u,l.loc=c}return o}function t0(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>re(o.replace(/ \(\S+\)\s*$/,""))),s=Au(e,t+1,e.length,(o,i)=>{let a=[o.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function n0(e){let t=e.findIndex(a=>a.length<=2e3&&/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,s=Kt(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>re(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=Au(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function r0(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=Kt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(re(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(re(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(re(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,u=!1;for(let c of a){let f=c.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){u=!0;continue}if(u){let y=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);y&&!Ir(y[1])&&(i.loc=Pr(i.body,`${y[1]}:${y[2]}:${y[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function s0(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let u=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(u){i={file:null,name:u[1],loc:null,body:[]},r.set(i,[...t.get(u[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let c=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(c&&/\t|\s{2,}|\[/.test(a)){s.push(re(a.replace(/\s+[\d.]+m?s\s*$/,""),c[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(re(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(re(a))}}for(let a of n){for(let l of r.get(a)){let u=l.trim();if(!u||/^goroutine \d+ \[/.test(u))continue;let c=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(u);if(c){Ir(c[1])||(a.loc=Pr(a.body,`${c[1]}:${c[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(u)||/^created by /.test(u)||a.body.push({kind:"msg",text:u})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}function Eu(e,t){let n=[],r=null,s=!1,o=-1;for(let l of e){let u=l.trimEnd(),c=u.trim();if(/^-{3,} Captured .+ -{3,}$/.test(c)){s=!0;continue}if(s){c&&n.push({kind:"out",text:u});continue}if(/^E(?:\s|$)/.test(u)){u.slice(1).trim()&&n.push({kind:"msg",text:u});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(u);if(f){if(Ir(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Pr(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(u)&&(o=n.length,n.push({kind:"source",text:c.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function vu(e,t){return t.push(re(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(Kt([e],/(\d+) failed/)??0)+(Kt([e],/(\d+) errors?\b/)??0)}function o0(e){if(!e.some(g=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(g)||Su.test(g)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,u=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,c=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let g=e.length-1;g>=0&&f<0;g--){let m=/^={3,} (.+?) ={3,}$/.exec(e[g]);m&&!c.test(m[1])&&u.test(m[1])&&(f=g)}if(f<0){for(let g=e.length-1;g>=0;g--)if(e[g].trim()){l.test(e[g].trim())&&(f=g);break}}for(let[g,m]of e.entries()){let _=/^={3,} (.+?) ={3,}$/.exec(m);if(_){s=_[1],o=null,i=null,g===f&&(a=vu(s,r));continue}if(g===f&&l.test(m.trim())){a=vu(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(re(m.replace(/^!+ | !+$/g,"")));continue}let w=/^_{3,} (.+?) _{3,}$/.exec(m);if(w&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(w[1],o);continue}let E=Su.exec(m);if(E&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let R={kind:E[1],id:E[2],msg:E[3]??null,inline:[]};n.push(R),i=R;continue}if(o){o.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],y=new Set;for(let g of n){if(y.has(g.id))continue;y.add(g.id);let[m,..._]=g.id.split("::"),w=_.join("."),E=[w,`ERROR collecting ${g.id}`,`ERROR at setup of ${w}`,`ERROR at teardown of ${w}`].find(N=>N&&t.has(N)&&!d.has(N));E&&d.add(E);let{body:R,loc:C}=Eu(E?t.get(E):g.inline,g.msg),L=_.length?_.join("::"):"(collection)";p.push({file:m,name:g.kind==="ERROR"?`${L} [error]`:L,loc:C,body:R,exact:!0})}for(let[g,m]of t){if(d.has(g))continue;let{body:_,loc:w}=Eu(m,null);p.push({file:w?w.replace(/:\d+$/,""):null,name:g,loc:w,body:_,exact:!0})}if(p.length===0)for(let g of e){let m=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(g);m&&p.push({file:m[1],name:m[3]==="ERROR"?`${m[2]} [error]`:m[2],loc:null,body:[]})}return{failures:p,summary:r,reported:a,counted:p.length}}function l0(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function u0(e,t,n){let r=Ru[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&l0(o,s.map(p=>p.text).join(`
|
|
73
|
-
`)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},u={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},c=r.changedOnly&&o.length>
|
|
74
|
-
`)}}),i=[],a,l=null;for(let u=0;u<o.length;u++){let c=o[u];c.f.file!==a&&(a=c.f.file,a&&i.push(a));let f=u;if(!c.full&&c.f.loc===null)for(;f+1<o.length;){let p=o[f+1];if(p.full||p.f.loc!==null||p.f.file!==c.f.file||p.body!==c.body)break;f+=1}i.push(f>u?`\xD7 ${
|
|
71
|
+
`),r=0;for(let s of n)if(s.trim()!==""){if(!Vb.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
|
|
72
|
+
`:""}`}var Vb,qb,Su=b(()=>{"use strict";Vb=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,qb=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function qt(e,t){let n=null;for(let r of e){let s=t.exec(r);s&&(n=(n??0)+Number(s[1]))}return n}function Ir(e){return Yb.test(e)}function r0(e){if(!/^file:\/\//i.test(e))return e;let t=e.replace(/^file:\/\/(?:localhost)?/i,"");try{t=decodeURIComponent(t)}catch{}return t.replace(/^\/([A-Za-z]:[\\/])/,"$1")}function Pr(e,t,n){return n===null?t:(t!==n&&!e.some(r=>r.kind==="frame"&&r.text===t)&&e.push({kind:"frame",text:t}),n)}function To(e,t=()=>!1){let n=[],r=null,s=-1,o=!1;for(let f of e){let d=f.trimEnd(),p=d.trim();if(!p||t0.test(d)||/^─+$/.test(p))continue;if(t(p)){o=!0,n.push({kind:"out",text:p.replace(/\s*─+$/,"")});continue}if(o){n.push({kind:"out",text:p});continue}let y=Xb.exec(d)??Qb.exec(d);if(y){s=-1;let m=r0(y[1]);Ir(m)||(r=Pr(n,`${m}:${y[2]}${y[3]?`:${y[3]}`:""}`,r));continue}let g=e0.exec(d);if(g){s=-1,n.push({kind:"code",text:p,num:Number(g[2]),pointed:g[1]===">"});continue}if(n0.test(p)){s=n.length,n.push({kind:"legend",text:p});continue}n.push(s>=0?{kind:"diff",text:d,segment:s}:{kind:"msg",text:p})}let i=n.some(f=>f.kind==="code"&&f.pointed),a=r?Number(/:(\d+)(?::\d+)?$/.exec(r)?.[1]):NaN,l=!1,u=n.filter(f=>{if(f.kind!=="code")return!0;let d=!l&&(i?f.pointed===!0:f.num===a);return d&&(l=!0),d}),c=new Map;for(let f of u){if(f.kind!=="diff")continue;let d=f.text.length-f.text.trimStart().length;c.set(f.segment,Math.min(c.get(f.segment)??d,d))}for(let f of u)f.kind==="diff"&&(f.text=f.text.slice(c.get(f.segment)??0)),f.kind==="code"&&(f.kind="source",f.text=f.text.replace(/^>\s*/,""));return{body:u,loc:r}}function re(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function s0(e){if(!e.some(l=>/^⎯+ Failed (?:Tests|Suites) \d+ ⎯+$/.test(l.trim())||/^\s*Test Files\s{2,}\d/.test(l)||/^ ?FAIL\s+\S+ > /.test(l)))return null;let t=qt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(re(l,!0)):(/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)||/^\s*ERROR: Coverage for \S.*threshold/.test(l))&&n.push(re(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=To(i);for(let c of o)c.body=l,c.loc=u}o=[],i=[]};for(let l of e){let u=l.trim(),c=/^ ?FAIL\s+(\S.*?)\s*$/.exec(l);if(c){i.some(m=>m.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),y=d.split(" > "),g=p?{file:p[1],name:"(suite)",loc:null,body:[]}:y.length>1?{file:y[0],name:y.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(g),o.push(g);continue}let f=/^⎯+ (Unhandled [A-Za-z ]+?) ⎯+$/.exec(u);if(f){a();let d={file:null,name:f[1],loc:null,body:[]};r.push(d),o.push(d);continue}if(/^⎯{3,}/.test(u)||/^(?:Test Files|Tests|Start at|Duration|Errors)\s{2,}/.test(u)){a();continue}o.length&&i.push(l)}if(a(),s===0){let l=null;for(let u of e){let c=/^\s*[❯✓×✗]\s+(\S+)\s+\(\d+ tests?\b/.exec(u);if(c){l=c[1];continue}let f=/^\s+[×✗]\s+(.+?)(?:\s+\d+(?:\.\d+)?m?s)?$/.exec(u);f&&(r.push({file:l,name:f[1],loc:null,body:[]}),s+=1)}}return{failures:r,summary:n,reported:t,counted:s}}function o0(e){if(!e.some(c=>/^\s{2}● (?!Console$)/.test(c))||!e.some(c=>/^Tests:\s/.test(c)||/^(?:FAIL|PASS)\s+\S/.test(c)))return null;let t=qt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(re(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(re(c));let r=[],s=new Set,o=0,i=null,a=null,l=[],u=()=>{if(a){let c=`${a.file}\0${a.name}`;if(!s.has(c)){s.add(c);let{body:f,loc:d}=To(l);a.body=f,a.loc=d,r.push(a),a.name!=="Test suite failed to run"&&(o+=1)}}a=null,l=[]};for(let c of e){let f=/^(?:FAIL|PASS)\s+(\S+)/.exec(c);if(f){u(),i=f[1];continue}if(/^(?:Summary of all failing tests|Test Suites:|Tests:|Snapshots:|Time:|Ran all test suites)/.test(c)){u();continue}let d=/^\s{2}● (.+)$/.exec(c);if(d){u(),d[1].trim()!=="Console"&&(a={file:i,name:d[1].trim(),loc:null,body:[]});continue}a&&l.push(c)}return u(),{failures:r,summary:n,reported:t,counted:o}}function $u(e,t,n,r,s){let o=[],i=new Map,a=null;for(let l=t;l<n;l++){let u=e[l],c=/^\s{2}\d+\) (.+)$/.exec(u);if(c){let{name:f,used:d}=r(c[1],e.slice(l+1,Math.min(n,l+8)));l+=d,a=i.get(f)??null,a||(a=[],i.set(f,a),o.push({file:null,name:f,loc:null,body:[]}));continue}/^\s+Retry #\d+ ─*/.test(u)||a&&a.push(u)}for(let l of o){let{body:u,loc:c}=To(i.get(l.name),s);l.body=u,l.loc=c}return o}function i0(e){let t=e.findIndex(o=>/^\s*\d+ failing$/.test(o));if(t<0)return null;let n=Number(/(\d+)/.exec(e[t])[1]),r=e.filter(o=>/^\s*\d+ (?:passing|failing|pending)(?: \(\S+\))?$/.test(o)).map(o=>re(o.replace(/ \(\S+\)\s*$/,""))),s=$u(e,t+1,e.length,(o,i)=>{let a=[o.trim()],l=0;for(;!a[a.length-1].endsWith(":")&&l<i.length&&i[l].trim();)a.push(i[l].trim()),l+=1;return a[a.length-1].endsWith(":")?{name:a.join(" \u203A ").replace(/:$/,""),used:l}:{name:o.trim(),used:0}});return{failures:s,summary:r,reported:n,counted:s.length}}function a0(e){let t=e.findIndex(a=>a.length<=2e3&&/^\s{2}\d+\) .*›.*─{3,}\s*$/.test(a));if(t<0)return null;let n=e.findIndex((a,l)=>l>t&&/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)),r=n<0?e.length:n,s=qt(e.slice(r),/^\s{2}(\d+) failed$/),o=e.slice(r).filter(a=>/^\s{2}\d+ (?:failed|flaky|passed|skipped|interrupted|did not run)(?: \(.+\))?$/.test(a)).map(a=>re(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=$u(e,t,r,a=>({name:a.replace(/\s*─+\s*$/,"").trim(),used:0}),a=>/^attachment #\d+:/.test(a));return{failures:i,summary:o,reported:s,counted:i.length}}function l0(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=qt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(re(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(re(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(re(i));let r=[],s=null,o=[];for(let i of e){let a=/^---- (.+?) stdout ----$/.exec(i);if(a){s={f:{file:null,name:a[1],loc:null,body:[]},lines:[]},o.push(s),r.push(s.f);continue}if(/^failures:$|^test result: |^running \d+ tests?$/.test(i)){s=null;continue}s&&s.lines.push(i)}for(let{f:i,lines:a}of o){let l=!1,u=!1;for(let c of a){let f=c.trimEnd(),d=f.trim();if(!d)continue;let p=/^thread '.+?'(?: \(\d+\))? panicked at (?:'(.*)', )?(\S+?):(\d+):(\d+):?$/.exec(d);if(p){l=!0,i.loc??=`${p[2]}:${p[3]}:${p[4]}`,p[1]&&i.body.push({kind:"msg",text:p[1]});continue}if(!/^note: run with `RUST_BACKTRACE/.test(d)){if(/^stack backtrace:$/.test(d)){u=!0;continue}if(u){let y=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);y&&!Ir(y[1])&&(i.loc=Pr(i.body,`${y[1]}:${y[2]}:${y[3]}`,i.loc));continue}i.body.push(l?{kind:"msg",text:f}:{kind:"out",text:f})}}}return{failures:r,summary:n,reported:t,counted:r.length}}function u0(e){if(!e.some(a=>/^\s*--- FAIL: \S/.test(a)))return null;let t=new Map,n=[],r=new Map,s=[],o=null,i=null;for(let a of e){let l=/^=== (?:RUN|CONT|PAUSE|NAME)\s+(\S+)/.exec(a);if(l){o=l[1],i=null;continue}let u=/^\s*--- FAIL: (\S+) \([\d.]+m?s\)/.exec(a);if(u){i={file:null,name:u[1],loc:null,body:[]},r.set(i,[...t.get(u[1])??[]]),n.push(i),o=null;continue}if(/^\s*--- (?:PASS|SKIP): /.test(a)){i=null,o=null;continue}let c=/^(FAIL|ok)\s+(\S+)(?:\s+(?:[\d.]+m?s|\(cached\)|\[[^\]]+\]))?/.exec(a);if(c&&/\t|\s{2,}|\[/.test(a)){s.push(re(a.replace(/\s+[\d.]+m?s\s*$/,""),c[1]==="ok")),i=null,o=null;continue}if(!/^(?:FAIL|PASS)$/.test(a.trim())){if(/^exit status \d+$/.test(a)){s.push(re(a,!0));continue}if(i)r.get(i).push(a);else if(o){let f=t.get(o)??[];f.push(a),t.set(o,f)}else(/^#\s\S+$/.test(a)||/^\S+\.go:\d+(?::\d+)?: /.test(a))&&s.push(re(a))}}for(let a of n){for(let l of r.get(a)){let u=l.trim();if(!u||/^goroutine \d+ \[/.test(u))continue;let c=/^(\/\S+\.go|\S+\.go):(\d+)(?: \+0x[0-9a-f]+)?$/.exec(u);if(c){Ir(c[1])||(a.loc=Pr(a.body,`${c[1]}:${c[2]}`,a.loc));continue}/^(?:[\w.*/()-]+)\(.*\)$/.test(u)||/^created by /.test(u)||a.body.push({kind:"msg",text:u})}a.loc&&a.body.some(l=>l.kind==="msg"&&/^\S+\.go:\d+: /.test(l.text))&&(a.body.unshift({kind:"frame",text:a.loc}),a.loc=null)}return{failures:n,summary:s,reported:null,counted:n.length}}function vu(e,t){let n=[],r=null,s=!1,o=-1;for(let l of e){let u=l.trimEnd(),c=u.trim();if(/^-{3,} Captured .+ -{3,}$/.test(c)){s=!0;continue}if(s){c&&n.push({kind:"out",text:u});continue}if(/^E(?:\s|$)/.test(u)){u.slice(1).trim()&&n.push({kind:"msg",text:u});continue}let f=/^(\S+?\.py):(\d+):(?: (.*))?$/.exec(u);if(f){if(Ir(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Pr(n,`${f[1]}:${f[2]}${r===null?"":d}`,r)}o=-1;continue}/^>\s/.test(u)&&(o=n.length,n.push({kind:"source",text:c.replace(/^>\s*/,"")}))}let i=n.filter(l=>l.kind==="msg"),a=Math.min(...i.map(l=>l.text.slice(1).length-l.text.slice(1).trimStart().length));for(let l of i)l.text=`E ${l.text.slice(1+a)}`;return t&&!i.some(l=>l.text.includes(t.replace(/\.\.\.$/,"")))&&n.unshift({kind:"msg",text:t}),{body:n,loc:r}}function Tu(e,t){return t.push(re(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(qt([e],/(\d+) failed/)??0)+(qt([e],/(\d+) errors?\b/)??0)}function c0(e){if(!e.some(g=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(g)||Eu.test(g)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null,l=/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/,u=/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/,c=/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/,f=-1;for(let g=e.length-1;g>=0&&f<0;g--){let m=/^={3,} (.+?) ={3,}$/.exec(e[g]);m&&!c.test(m[1])&&u.test(m[1])&&(f=g)}if(f<0){for(let g=e.length-1;g>=0;g--)if(e[g].trim()){l.test(e[g].trim())&&(f=g);break}}for(let[g,m]of e.entries()){let _=/^={3,} (.+?) ={3,}$/.exec(m);if(_){s=_[1],o=null,i=null,g===f&&(a=Tu(s,r));continue}if(g===f&&l.test(m.trim())){a=Tu(m.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(m)){r.push(re(m.replace(/^!+ | !+$/g,"")));continue}let w=/^_{3,} (.+?) _{3,}$/.exec(m);if(w&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(w[1],o);continue}let E=Eu.exec(m);if(E&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let R={kind:E[1],id:E[2],msg:E[3]??null,inline:[]};n.push(R),i=R;continue}if(o){o.push(m);continue}i&&/^E(?:\s|$)/.test(m)?i.inline.push(m):i&&m.trim()&&(i=null)}let d=new Set,p=[],y=new Set;for(let g of n){if(y.has(g.id))continue;y.add(g.id);let[m,..._]=g.id.split("::"),w=_.join("."),E=[w,`ERROR collecting ${g.id}`,`ERROR at setup of ${w}`,`ERROR at teardown of ${w}`].find(N=>N&&t.has(N)&&!d.has(N));E&&d.add(E);let{body:R,loc:$}=vu(E?t.get(E):g.inline,g.msg),F=_.length?_.join("::"):"(collection)";p.push({file:m,name:g.kind==="ERROR"?`${F} [error]`:F,loc:$,body:R,exact:!0})}for(let[g,m]of t){if(d.has(g))continue;let{body:_,loc:w}=vu(m,null);p.push({file:w?w.replace(/:\d+$/,""):null,name:g,loc:w,body:_,exact:!0})}if(p.length===0)for(let g of e){let m=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(g);m&&p.push({file:m[1],name:m[3]==="ERROR"?`${m[2]} [error]`:m[2],loc:null,body:[]})}return{failures:p,summary:r,reported:a,counted:p.length}}function p0(e,t){return e.length===0?!1:e.every(n=>{let r=n.text.trim();if(!/^[-+]/.test(r))return!1;let s=r.slice(1).trim().replace(/,$/,"");return s.length>0&&t.includes(s)})}function m0(e,t,n){let r=Au[n],s=e.body.filter(p=>p.kind==="msg");if(!t)return[...e.body.filter(p=>p.kind==="source"),...s.slice(0,1)].map(p=>` ${p.text}`);let o=e.body.filter(p=>p.kind==="diff"),i=r.trimDiff&&p0(o,s.map(p=>p.text).join(`
|
|
73
|
+
`)),a={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},l={msg:0,legend:0,diff:0,frame:0,code:0,source:0,out:0},u={msg:r.msg,legend:1/0,diff:r.diff,frame:e.exact?1/0:r.frames,code:0,source:1/0,out:r.out},c=r.changedOnly&&o.length>f0,f=[];for(let p of e.body){if((p.kind==="diff"||p.kind==="legend")&&i)continue;if(p.kind==="diff"&&c&&!/^[-+]/.test(p.text.trim())){l.diff+=1;continue}let y=p.kind==="legend"?"diff":p.kind;if(a[y]>=u[y]&&p.kind!=="legend"){l[y]+=1;continue}p.kind!=="legend"&&(a[y]+=1),f.push(p.kind==="frame"?` at ${p.text}`:` ${p.text}`)}let d=l.msg+l.diff+(n==="normal"?l.frame+l.out:0);return d>0&&f.push(` ${Kt(d)}`),f}function h0(e){let t=e[0];for(let r of e)for(;!r.startsWith(t);)t=t.slice(0,-1);t=t.slice(0,Math.max(...["_",":",".","/"," ","\u203A","-","[","("].map(r=>t.lastIndexOf(r)))+1);let n=e.map(r=>r.slice(t.length));return t.length>=3&&n.every(r=>r.length>0&&!/[{},\s]/.test(r))?`${t}{${n.join(",")}}`:e.join(", ")}function g0(e){if(!e.loc)return`\xD7 ${e.name}`;let t=!e.exact&&e.file&&e.loc.startsWith(`${e.file}:`)?e.loc.slice(e.file.length):e.loc;return`\xD7 ${e.name} ${t}`}function y0(e,t){let n=Au[t],r=new Map,s=e.failures.length>n.bulk,o=e.failures.map(u=>{let c=u.body.find(p=>p.kind==="msg")?.text??"",f=(r.get(c)??0)+1;r.set(c,f);let d=c===""||!s||f<=n.repeats;return{f:u,full:d,body:m0(u,d,t).join(`
|
|
74
|
+
`)}}),i=[],a,l=null;for(let u=0;u<o.length;u++){let c=o[u];c.f.file!==a&&(a=c.f.file,a&&i.push(a));let f=u;if(!c.full&&c.f.loc===null)for(;f+1<o.length;){let p=o[f+1];if(p.full||p.f.loc!==null||p.f.file!==c.f.file||p.body!==c.body)break;f+=1}i.push(f>u?`\xD7 ${h0(o.slice(u,f+1).map(p=>p.f.name))}`:g0(c.f)),u=f;let d=o[u+1];d&&d.f.file===c.f.file&&d.body===c.body||c.body&&(c.body===l&&t!=="normal"?i.push(" \u2191 same error"):(i.push(c.body),l=c.body))}for(let u of e.summary)(!u.minor||t==="normal")&&i.push(u.text);return`${i.join(`
|
|
75
75
|
`)}
|
|
76
|
-
`}function
|
|
77
|
-
`).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of a0){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:d0(s,t)}return null}var Tu,Ru,Gb,Wb,Kb,Vb,qb,Yb,Su,i0,a0,Cu=b(()=>{"use strict";Ln();io();Tu=/^(?:(?:npx|bunx|pnpm(?:\s+(?:exec|dlx))?|yarn(?:\s+exec)?|uv\s+run|poetry\s+run|pipenv\s+run|hatch\s+run|python3?\s+-m)\s+)?(?:\S*\/)?(?:vitest|jest|mocha|pytest|py\.test|playwright\s+test)(?:\s|$)|^(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|t)(?:[:-]\S+)?(?:\s|$)|^cargo\s+test(?:\s|$)|^go\s+test(?:\s|$)/,Ru={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},Gb=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,Wb=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,Kb=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,Vb=/^\s*(>)?\s*(\d+)\s*\|/,qb=/^\s*\|\s*[\^~]+\s*$/,Yb=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;Su=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;i0=12,a0=[r0,s0,o0,e0,Qb,t0,n0]});function Ou(){let e="-pZGsFNqC8n2U6h-EWJXNI1O93DGoqybT0oPAqICMGlEfUTPjKEYjyHbis97fqbzVum-2EHHsnj_AQ1EbeGymOQBkjs3xCOfIY7Wd1Io-tYEJh3LI6-Xd26ntZMgIaHjGPxnycbXhj4-Vk3ZMIBZN-jA3z0GSQTbvbbzdmWDWoIiUt8vI1tbu70xCoX-HA2n4jOtFJQRd9xIJyqU04FNj-8LqInCrEifCPe7_2jB9Xc2qxOK21L7EYvkfc0Vy-n-IVegmltcW_nyH1UyLWuQIUKQn0Kzp9Be5rzhq2-0sCn6vzSc3iRrclZcfvir8WEElL6F59rf3v7wdg2pAPrespTH8slqwKYaKhNuOzZ0Iomm7uOBQeX7FIBgTdX_hDRlwYsY-T5UXsBww6KwkEtysv1rwgpynzcdCmLNnOdtOaLB8kywfEJ2uiTZcVYMT1dWYzLAErn9po5UunzpFV4ul8sawwda_qx-8v7UrmaI7ZWZuPEP5-SlCOgDBNSW8y65R9gdIdmUzNUC7tBYIx6BDnRk-BNiXHJ2Dm0xqDm4lNeGgJ52iVZ_CSZU6pj1Gn_eO5P3jSxQYuNmQ0_SmS09o0oM_gigvYODKtPYkgg-C8PxT0CFi7YjxW_R1odD_fHU2ShP6th2K_B6cokUvtuKL3hqWA39679JPtfjThyq5C1dhZ3YlHkSAu7kud0mlApwsRT8dCn3F7_JwANG86lvCGEj43jmK-CRT5Hic5v5bp9Q2VYWAtQ17o7sri7MHWXUi7OPisky6JuzCaeJ-63MiIHwYEK8a7_DaM9sLQ1sEquPHMf6yEQrtAn7axdNdWGUm7GhDPR2NGshG4OYEVGv2xNxl8Dq3KVWjyUIBb6t3uzlpFhFMHIsaiKmw2fpBhNgABYDWDXoz9dfO0QLxRi-R5Wh49WorHKZU5AxzF3GK2ZbyDfPVzcKZEszyFz4GsFP5W5ufZ6Yg0YHlx-ousex_peXtpTdXoj0SV4R_6RfCrEFgtXwnYq8kXdxsx6LTXJsd_3vgcLe6Er7NG4IxVyOVDUvICoNaykfeuwFp7Oi5n1OBuJdjQhWf_MC7rHadtX86rXeL5tv_V9mMTA1JJl0TLsxR40YC42IhZ6f8UOFH-hmqLEDvWdOxe89xvTiA6UrkVEkuQT3RPQvkgzD1WBHNdjD6n2BE-DISiHsi7d7-GYrkOt15lg1UAnbrUAGVGNGEWCYlISLNG2F8FubMqzxtcnfAl5EICeTAKKIeHM0RpTpwrvugWCHIZA3xZBpBq-gaJZoCxHnZI51f_Fgn6rAC7iurWerEGs4VZT3I-DYQN8wRcyQgyhunT6SZs73s7fci9uWBxiRCEAUVhBbYqE815r_D9tJGib53wS2PhBz5KZUevXFIz52DYo-p9JGjFCcuq5cntLl2lLJzyjWKWYTgbxhez4DE_KKZtInYBp6i_jMRaFVh6sFieYa1hMj3-xzsS6m7aKg1-xMXNo8NHRQ20i1Zvbw04claulRCZIcJiB-Cqux4FS83ZoGsMDqx6hhztBLQYpgXEeOfUHWTis4E3inyqeqhF4ftSgknt3J6Zu1nQhoVEgInnMxbsBtE6DLlM5H5L1hQQx1WDQQeuJqdJPRWJ7Wk_QtU0WKtwGRDxO4D_Nf0tVw_gVuSG_NJWd7C_McYyCpiXUdJSU3LTPwz9osGnqOoFKuD85MSexbY8JmdArX30JBYYSJ-9AObIwjezXTbFdUvzcKAm-YhYn1F5tC9N7rZKkIFew_GDSci1V44PfX90tvXLeoAPXh6FtBC8k1HBj9D6ojQTj7FPgsTn4hvtN34O_iu9ResfvgtKE38BLU3IKuJEsXmwJdxAxeY_KoYVK4mCBBPYmwFGbd_pdcsu1Wc6VuIOA877I_rA9W0_m37bVbKdTK2R498slLsyGFVHDYhYlLXWao0iZfy-1BkWtbDTrep3RRQjwwZDUesXb5MHCXkuapK5cd5SeK8_Mxah6FeuyjxfJ4FQDVdCNDJwm18ME0LrH9fhG-MxhBQlVggxOAPzbcCQNGuuXYCxZZ9ykPPkwJkHAYJULudQ0TMCmuHKAmsmstwKTy0flv5tF0eQkCnAv8GsbQrsmcYl0UjO__YNluSFDV_VQ9M0IJLSY0oQkUN4QgevX0luTl0bG-S5PwhxeY9fuwk_woTdVVMr3iAxFVyZrtPrQpqS7P2Latluvd89iwiO3NFG1ij2WkG4wnR8WPqaRUB0JkLarF41Vwy149RnKasAAIrjE-IlyiSQ0iwKmfO7RX4qUbDO8UCuz2BWeHNVDl7hEjuzgMdGf-ojLlTtdzw2D1HVsFEBgkuCVhBuHZBBRtayralCoYYxZA8mlozHTwvBF91_LGnDzQXCg7mMXE_UL74OmhbkrmBC4OPpRJTq7k8BNXtr_RujHYhW8ptIkSqnnwagvEJGJMzq6uFjAyuUO8xNjNj6p0SEQ7d-LeAplcuc5LsoxTSq3TeA1fcIey1dwkiYfcwX28bZ4aSLQQo7uxJy29gfyU40Z8-x3xvfU_j7eynTZ7Svxdbb4YHhLMXP5sBHhPQNF8s62ISfRSQ2wrxMEUIk3aDxR9f8yMdHcH5z_JhoHgG7Jp4CpU0mjlMBh8MDoGKXxmeIz8xfOt_qEU1UrYq--5NEP6xy-M2UEUgD5dNiXm8T_1ebzKPtUX_J7tplqLJuxF7KW_vWtBzPWUf54SRCpa203JuWNvNPr0EaD7scjp1Q14z8rTr2tOSwp35dSOITkVcJfAiDLtrvzqnHvhIXzratNr6FqqDAs__irY5t67IQtOA0y_XIiqIQ372TqzMch2Dhc9jGyIRcytKlK0PikVKo_X7HUYMqeUq_9ooCU2iLVQz-4VPaOz3suzAQH4tYuC5jshF3-7mylPVbVcHkmWt75hD_bmA06SyDxbsNDHRB62qcH5qRvh1cAmd9hMHBuJi5KJqBbWSc6o7T2PSLhDozGPIfWeNaHWBCx7woXH5YYd2gLPyQjpw-Xw0AGtauQdg6zvMTAIiHqPtcT2UqSbBG8f36zLWKOnW8xLNLqkX8lth33Vve5pkOvYgzMWIRze_50q7AOWwbWRLTKrvckfZRwxbBfQOHZbYaMYtRaLm2h3lSqRifpbZPegQ3hNV8W4o1jwapV7S_8Sx4pL-5Cn8aAYi4SPFYOMaeBoXvKHTATLkzvBOi7yMbNlA4lO4j9OeUBbpwyBccOgqq54zQluIjTQe5pHOIdprWW8InhVRIJ1yPe6wlNzJJ5UjOa8SteUP4s16FAzFuzKq3eLR8Pigbco3cii1LIBQrxSvY2xBumIdzDTe9Os64X8ZINtPSP9k1Tj3Iye3o-VmgXnnHzMV39I2DtVeYHTlNVcu5omdPWtyIY3XmEEOpJUpQaSCiFoE6Ty6Hi9VR6Nq-x_XBb5SMu2PQcP8e46q1sDfTyuQVBOWTvS2qWNYhL7ENiKQpO5U-vHZXnQKfRKHKcz0k38WY-xyJpYLvb019gJxRg-1O4Bpy4k7iHQO7AZssWf2tJwCYn1ogag3535yza7onUgAuj4uE70eHTf8WR0OzDwu-ynLgg_8ZuqDa5ghCDoTbmAcsBeiN5L8j0sLleRXf3E4Bk7Plf6Og5nQgPDIAMMwBVVt2x2eUagO8-cBM8IUd3RhWFaP-TunRiHsE3pCKRZAhveKqMy1MDqSFD5Qjp00aImyNAnpigyCFrMu95d4n6_tYLFuQplz1YeQM6JDMiUsaWqsud34wRIIBbhr3Asoc9ASNbfBFOmw1KaJbhwh0r-nK37ZXACZsdMvEb0LqShR5cUA3_3W4_7z-cS3yrsStQ62SLRSXjOnSbiH2D_8qrQ9VqqIT8T1BJyI8jA2RbUcZGRJR0HbX2S1O_mH1ncnMcOCnORSg6vxcoh9HhZ57GZ2LCeusXlRKv9jaMSwiwIowSe1KjKAgCwgj6V-_Mz-5h97ksrTPAkCPdZ7PcOClq-lwhZZxGCbYznEwd00HUI7nyzEAIvFJ3Z8a7aGYO30ZuESnJlDsQtLGkiYehwjbt0Am_P0K6q4H-YC6x-MCruzNiac-fvSjsI8HyO0F6MtyBH6gBSVO3lUYOTKVWHPuN_S13i0C4G3Vc_kIoypO60brrEHHtuVxa_e8bj7GWZ0cyVqOFDrUCS5ek8bviE_eg7SaY6cKU_HSWeDCJQ1IxepMdsnrMjJGaKGK4otZJpXnPnYuBPCK_keDJhTE9-m9qDN-9CWa0Ah9BDJ5kKPjpnlYqdoIvdeHzzBy4YC1e2poRlkkkBvCTRH8ufOnXdAID45q2ytUTTy7a1OUFxdRJzOuD9XIPPuJZaTAC2qXgYi-HVMVgeXOSoQByF_mOZ3oFy9gSerLU4o3Tf04abYWcAICdwxvh0qY04JetP2y-ymjLVT-iOH4XJe1wkZm7L44c4OVxQF3l5bhcl--zShkJRjH7a2ZN2kNkbsVy0431m0QkAzY2-kwkiUG-sy3zJhw5p3x4Iz3hoJE064ltD_d-zlVGnn-HW8ikLpQHpMkdzQdFgkU7SR7QoSVFJEKLlwTN0bVKwnMqh2o_VIguAELkEZEUBpaDrWAJJymCDBkiIFZqJ4jYjfpJxKMOSkUlYS54BF1kycYcjJrHWvqVHgYxYmPRK6sGeTbI7w93Ug83YYpuJfyVwKZFVev1QlzRnFABb9WKHO4csQz9HUHDXnDbEpMUwK-pSsEGc7NzlzHtGEMNzkY_odTF_3kVKcSXmp0Q7IuJp9FPq6KltYyZ-VvBgSLm2vy8fNsM1WzKdVJ0prj1coiOFZp11Bf6mDBnAGh-3ZottIB5_kZQUjaRFmFTuKBDdYjpVvj5AxKrfduod3TjFCSx1fNHnuwVYFXeo5z_mMmtaLXG3lN32yWGY5_-pu6sf2-gpU-EddarnWfB4aS-ryxIg7mG7PrfRepfmmf63EVLoB5YtVKNC6lNe0AaH2ksVenzGSokZJFWERfIHKifI_xc3IYeAqJOJSJJB_zzYQEM0BudylmWbtpSjx01cJnwDHO2KJZxDjoCRZWIjIPhczbuDOH5UDvi6CVM0cCFU5ZmQ1I0aeoBUZ0lLxPuIGg5JnwBI8V1S-DKmpCS8Zwbz4sSFB-FhinvEfKiqF8RCLypy-wCyq-D5t9C3F4qesKQI5hvXKFX8jhe4zqnHDxSt78mRkzLDpFc6QPe1o_BUxy0CIOZf2VSKiVjdglseQuFxNx6OTUHjkBIwJImpLIX8XqCbEYS8L8F9sbBqGoo9XeMZvv8uXf5NljmjALnR8ivKCWLo3_OdBN3Ua23yuOFDrrfO_uz1yHAc-E9Yrh-_1Y032u4f1ESQZhPnTOlfgMvXYBCuYwZI6a32YJhW3mP9mwV1n32B3CXVFLP1Wh3hqt8QMubqvgPyW-hkdr-r8S5ficwwQJ2psEDF0qxmEdVKYqfz-8jZvxMtYASRhBMFMfDbG2H8YicD4Ijs_sPFZ-Dbo5it_17glfTYSLXK2TD_ZduTEpeAqsntWT3zXJMncLApUKkb8m7RuZ_lDnXpOvwJi6kYzw067A58GpYF5sC7XDxqZC3yiDOL_XPoU2KrSOe45Y9ImY8A2nLzwuvHzvKUOmV3nP3xbF_wdSHqvvIEXUlhuEZLpXntZLPh9rl9IfhJxq0ffavAKGI6BCwWKWvcY8LRWrej8cQCT967VL-dfpUd7r4VG5s0QmPBcj7DH7HuWcg-Zijqiw-v4XRVo3EQ97MiADUlDvJ6YJLzRqfOwQ4qYHkjoFIYtAdY8eKGzCIBDlw9WucOTVg6n6GfNYbrsu_M0FKJW4Eo5jWDH8KsVi1XN3-CEX0iQkMEt0I8SAbWHb4cjujc_LqNk77xNT9SIHzva45r4rlU0TGYsFL_R3biTh_k2LvQt3Pv9EFft0GJBzPkl9aqbSk10-5p0JfiXEd6cuVwhC8jFPkjTFeI3Ows0gIqSdw54OKuirzF4Ds5XgXa-lCdMFvCyjcNaa7n-JUREmZ89FYGuHbUVVu5rWZpf6U6Kpxu76g_-m28zwU6GiV8Bss1nYW9saioheAfbgwO70NAzGbjZKK-MqcwTrz7O3IwbVzCHsmQuiONbzNqKpuZgbaGS7pHXY8NyYyxskkQUfjTMGg5AM--i9W0KHjZx36UxtsotLI9RsjrgiqWsZpVavlsjZ7eR9GAZXyRhWeH0vJak7CEK91m37NU4Y7aSeDb5BVBrBC6MXYQAwtmadUxELpnxHc5VXjjdbMV01jPgJooyBviCo4qVMZow6igp_IMyy-wBZugSNoOAduiuNMS6EaKwZdHWrrIyNyEMneMQayVeJagllAsNFwChonB6YqwVsPPnE5OF-gaRk29cwYnLiRd8zE0fgbXfwr8Vce8YV3nmVa_0RcreieNIuSawqOxqDrt2w4fUHghW4rth33cAeDEXnlrDeMOBB7wpOKADfGD0f2qFWUmhaUb6LTIeHHc-BvvuSc2hFwT3yUrmpNTCPI8IDRntp1Fg10q74DPeovUKY91oE6oGODa4bOYAsJUjGmcs189rkL7XDvPj3J7FeYZTmfXiixz7OfKvbdgTZg_iovfnbMtAy2mhkxbwgpzyWzr-V5ZSyE3bxht8H_C6a9O9LviMrA9Hg82Ll-t7GrMwM6rtj5N191nynD4lS9cMS6Gg_-B6OqG0WK3KfSb60FVG2ta-8W9uZ1yRITK1rx7MbaKacTsYt2Lw51osRDA3wUoXsElRUFksOewxj7rgA2al-RHVwUnq6wcwDGwt02CtAt9Mc6j6Wzz7ATjgKiAl7aTIxfYa5C4TiYLmLKb0Iu9WiAgmqZtVR6vRxCuUlidi7tSB_WUIaz2kJraNgwhZuGjAjAYtAYOOocuFvotWZ_GimlW9nEvDNlZOsmq-xquiGZPyC4xEbN3cVFfCJGFpNLwRYbHUQP8tsSSYbJEKvB1GEtcUR4rBYhWdqEM46PhcNVOtAUhTbopqPlh86DlCOhgYQTk3gi2LnYftRYHw_sGhpGjNhyJCP3mewVmg1oTJWHOAiKi1WkH3NhxunuoC4_-ChmqiBopbvIVCKFNuo7m-65qUP1P9lFO1qLz4vliF1CuESgMzZsE0rWg_kjR5ovzY_-34KPLN3KMHzZzTOtUzJo_SSvF-t-duLubaJU1mBrL9hwAM-DZcXP8H0JE26395HwpTnD_ziv9PMe4tDpGcom4YtTLi9XlXu7L9sEL-Aen187xKpsqGJlEzlXYZjpsKH3Jwrlf0vqW7xFTOMqFSx53jZLfT9ZDxMpIXCsVXLn-d2RXUXJCLq2qLXwF75MiJklnBx9jIlIrNTnVfNEYn3bre3Xo7HsjVK7L4n4bkqNXZqPvWrRityK8VjHwDgRifkjY8V94wt3zWtfOryb-jlbTWY3AuOpcc1xMsykVPHhmvGCMkNM9-QA2Ue7nRl0_WKur9rQ5GvCYyz4j9LAgKY5Tnp2vgFfuFdlOxTC8yfE4OeQLo4lm_ofxEIwOrvsOth3UKssKbMVgmxHT3wtDBnBtYzV9r5sBpT7DyvFkb4tEBbdZf1RgUp8VDoyMZOL-x_z96tQfDq9Dyj0UPLWxyv7Zj3eAcrqp7z85YpZJYFjkghEmAIGUiF6tNmDCVkfDwszD6lxNTf4YeCZBO9oNPYQxOq7TWSIXpAbyJ-XzIqIWAdQNtzSa3AL37QndwvNMOuQhf2dEneEzZrIJxye4pjapKaS-_WJFY834t1Ewx88aqYEx69v3l6oWwYTOIj0jrqTXUJymHYDcT2aZwB8o_6JDf_z8vC-XhP2a2SNZPxKYfb8MlQSbIeiA-YZqqwI1ycOTiut0R9RQEsNYeL8De6cZWW43D6jOcmNs6QKoR96r3paM9bA3yqtSZ8K_ZFSmQf4BbIQ2rDPFE_CAE81PKIZu3korX3hsvvWaRYuCAyNubjsUSFMnmvl4PHAGj4_eTMvsXojWfOlzG5lY6NiSTvUvi07WhQdlyBE21sqU5xcJ6P2TmquXHMUmuFIooqe7pydbrxej6vdktntOSPKMsgE35hpp7HN5AokoYheEnHOKpTBbIQeHZO5NCcqvK5wtAwqlbWPxYVs6wGaK8Ct_UPlvS68ie3TW8rDD-1XfLwT0lV8TR0JV4gFLYev_lOit94DOnDK4JOZIJS5ZbyLv86JHgmPYkMOfK4kKrOoiPBt6BohAO4jbqle1vzR1IUjywRN_ooUj9Wa4Bra6TiEj1dN0kMUuo9qv13hWzkfceSyzDx_TT46fbj8VfOb4PdyHo7YA68KJEuhFPeXcKO9GW_8G7JxCswHH61FWhYegdQo9dJ_v8M6YBqj0Htkj-TKPwiLzyQdLOudMQGn85W1kIGOEXrnCqdJowRjNOrFNWrOHAx4Hnve3qnVBcWR_c4MdAG2pI9DrOIkxdfPnftCuk98t2ZilELFL5iAcPyqPGw92elsGYV-yuFwWO8kK8bbJBSEGnmjVkclJJWM3gItARD2BWfXaHfmglc6t9cbEYCsHpJoKDGKEOD9UjkW8EZCx1qWvpUpB29-vqEZVcjwUvxHn4qYvPZHwx1PlYbpHs2zU9o59XWSOdY4u0nSlkd6Lc03AaAnPgVbWdIxn3SJuefGB5vsOfKq1d1fAwoDzHZOokTqkA0m5aEdVOMTdMggJn6ph3_07pjqotU93BCcHmH-eXjQfzApLd_QPutfqCJO3PGrfY4cBuFQ8wsnsIOX92nu9a2hDIkGFVNhjuuv6yl77-rriH1X_34Oowr2TXmiKIV9GZ_Yx3q7LYAw6MycB_ZQ--oACmFfkyk-eFE0PB6GlTaJ7L8Nqb9FLiP94kaMogXXK9Yh6f3ljnn-ng1YqiQHGTnG6XuneFQtFn1ckjTj22dGttsAqpWc2p5LIt1FspQ-jvXHMUiK1svU4S0e_wtJvuFreGW5QLfHnJnsBh09XZaYsg6NNgOepsUm_hZCSSjrxS2o8tKIQESZYUeR8UTh8BlcVlP_2emzpT5Mde-ZYrpyhadDSfmOVkBdING_kcfc3eE0cxpLY1wpGODC9g2cuGQJulm52tPIDvXTKas6KEXjw7v8klrwzaJRI6Y6DIiywD92bNRtxrEuiq5NnFhpGHlpA9sRQc4aPrbdKB6JD-Asut2pOdINyONddHNt4H9mhl9qfVxbmvslq_kSFnfw8cFLkXQuU8kXHcJPDr0sSslu9mNTgqFe5JHhHy0BZwJ3hxo7Um7pflg5aqH_BOWW3CK2_NMaQ5k12n1pkX1WwTRv7St_jBqWKF7o2UPlwAFciZwE12oMYmJNGu4xQgZGE908bgTAaeGQPv3k_HCI3Cc0-Pm486o4ZpOfnqV6MvXVCDqXKDk95ROoQoKYDaxQ9tiSlfnP8QTqU8K7SrRb9kkubl4ANi_Dhkc0_H0za94HR-tmJnZi2ZXG8lhuef6NnjrZzMozyvS1sXcFW-On1_uL4sm3IRD5QMy2NtxsIHVJ14xFMZZl0gKHw3S84C422c_M3lG3C-OyZEnG70FemIsBtFBZcIcPUiuWwjsuwJDdoOmkBf-pAGeBPBb3e1X0An9L5zRqjovslzxOs3gyehSbLLJlKqbkbcEQmeojB5tKaX0x3tjNazk6hqQPX2DTAi1D0SzneSwXk5oKbp45X0fPFBDenUMFJe3HU5B0huyYgP0KXPlA5pZqG5Q-g8uxUGfv7uwoJCz5fF8x_1NJw3aqV7Y5YNiW0ZBTCP7XCXzRfM6f63sdLoPCeOpzglFkaWfwL7Ej01TXdoPJoCoxIL7a1HoQ1YCaeUJS-ivfDRC0xH73pXLSX8jfzinUTbNZBzUjF4b9_06uN4_eEpGDsgswBfP3QB0kym0qe6UJB2wRRNqtRCpOPZ3gTvgnmgTznfk530KSNdVuDhjuTOTVb09GyFKHFnwTZV6HCBX8x2yTSx5vyxEjYDAFbupGEMEBajrsyyLQA-qcqSnHW_ZylD6NaOiruRTamke_oRdOwTExQ4RcI6i45pPuRCW8FmRfH6cU8S9CF4hwAPaGsoiTxG3VfPbt2UMmmZ6cPZsGxh9uLsNj0C1NlsHpQ3DkzkvK99myQZD1I9tq3WVfG72RZzH73qXQVrhjiTcwgTrwIpEPHrIrPTiTmKlgd9xFe3eS46L1s_DeybXWVditkXrzeTv6D0kmhQuuofMm3kp5FJ8_uyi-FNkeR7lSokh2j4AwtTMzIO5KzSC3dKTzas-zQ9NaSiPTC1MJu609XDTO3HMR6Rmx5vUGzh77l0Z4CrJCWXWK5KA1GUomWW-XPsqEn6Tt8G36PoUvDlGHbnqx9mKJvIEC6k-vA_rtVU4lTlM2JehDj0_s5wSYZWLauJxIzZ3ptrRc1pMUt1m4swOqiBW_uFV9qnVB3WXgZp8Miw9gJ3Uhfe9mLOryqxwuITo-BVk50A_rNETpXsO4oJjCY7Z5aHN7jPpfIRMKZQjtL3VvMCUdP1OjGwPJjFraXvmrWvK7ogZwC3v5cR7idrOaTV07HBpSUsAaM_pLWvqm9u1_lK4TZr-SpbS7mZL_UX8Lktx9-5sod0AVUufS5V9YrWKt2AOmIUugKvwobvVLeW0ueS-hhFLwFrcr-NI3OezI9tYAP2uy__ZnbDE8rs4EfDISItx80XyUjlHaDj0U96PdWrS14ipM4jcW_bThHS5Cgc4bvvnK_OhkJROLynhllZbqsAcDnE_csrpaOH-Ypq3TmAIPszqybGIlB2_tzdFKAwsMBnTQxlMCnZT4ltBiv0sVi06P3CM75zK_qeUN8JiAZqqC_OjGRb9IZ171T6KqckBmyqfUcIaPZVAv_gW65NCs239voLStfsYiVkum119eo0J9CLrxh3MiTeTYfe7CYbncyAhaEvod34Cx5Ig5cm2u1d4zJdstT2ZFznBKhScO_eS24qNiWP6lGYbTuvEP8SNSH-IC79FSEVyk1qlj4QA46Z7BpsNrbV9URHp3H6TJvmOaKdeP6i91cXyc-33DOvtYiagoelMvkfwKwId7DmKtIlAXzC6qmagAlBo2q__gIVPuKO-_6Aa_K7wCwKbT4jWiGg2JDZnoyjZUBIB4FZvKeOCVfx15_CB-ia_z_NlDh1pfBF40xSh_ABUsoshVAc1R_ZPzGih88C1lMe3Hi5MgSWRtpENVrqruV_sU2EfUB2VInGMPe9iH0QggyFOBtb32iP82ferODufOB-AvVYPA2uj7oxi_Fo75OySZJgeudAtqq71daArmu5y1Td5dgGSCOIxpJLMNrKi8G6H9Y6t2RUUDcc_kPEp_u0Z6Y1JlVKoMv06sS_l1M5BtjfN5KvGZPcNuy3yCYNxqSwjEv76qdQVuwT_lWnqwQqVwkF_5_Dbcs6jO0S1w-wOgWn1QsQtYb0PwfJDzrvO6OGZYi4yvk3zwkbDDzQ6RMa8BaRZs1FGfN8Eg1TWhKaxLDq8g35e8QJyfw_fIZ5EI6tYlFdZIGBtSTbL7o3lvq0lHGImMwDBI4WWScJK4eNWsRRA3sdZTLZmicPAG-qPKz1cfocKfaKUxI_BKF3gYUeKBbXPti9AzHuAeHLX54oHvlZ3PypyxOiX0kN8I_FesrreLyjnKk4tgqtzjkwBF_0Y-WSNL6AH1LAe_JrvPEaOUTvxPdMV6Z-FSXfTkyrEuJjsx8wz7a0N17DG3pII_EH1xTDr8QiNZi0m5svXhlYrNyty7VK5lJJHu9VlAs-7V_R6YuIpLaJgFVuWGDpVSpFGivUXOhgVM9DS8ZXQ9EaUwfvFkBmvYPutP4zij_t9Rh2TByG_AFtIkLTlci5zk9kzLfuIO-vMwUXdyMVweRnI6FcNisNdFuFWdgtVzXc0hZ4q30aSkMM3F2iOXE2ZooFMWl4A9MC1nRQ-4DVMCXEhgDo7a2VKd_zeKP3POnP8C_qrjrQjLQ8WZI-9z6L1ngMTr4eArHRWc49CX6lICWcx3xQKo5zEi_OZhKDyvGWMrV5A5nLQLAU0_jv8l9Iz-ElaJtz7x2RZLhjJS1M5d_JKFBXHUzGVME_gakMi5AlMw46MhcXyNAxMlCq0Ol6fLLQpphroU_x17OvkGVY8jm133MhmpBY-fMbYsqObFMKAa2vqBzMO43Gsx2AZJ0S59NklvaukQpbM0eNL2eoEIyIaaYtl4s8mHbuJNeheiwfH0fzQ-o0U70ws0HGauzCqvNSIHIjS8GXhtTCihhkMes3r_qObRBVLIrJ1rgy0QhIq2WGNzc3QEIAXXuzqaDF-N-EpnhEH1FAcj7By7qcdmtLcLWjKuSBwooeciNxM4d3deFGq1T-CkPtRysydpvsOwoTJB3D-khu9KhfVeo4A1vlEYTON0qF7BKQeUUrRUDGhzH3jUTEKbtyaWJn_LkyGJcuiYKwuZqeM4mMz8yJP7-0N7P8vWomgQLKBAVrPMbI_DKLRI-Hhsm3yGB4oG5k7CQNjaq5ExNw_KINl1UKTLN0JvUKb5LOyJPK33-FoHRxVtL32_mIsBuWPO4FoqskCuT6ckiHCtjxiqHr54v2lu5P4kfkN1LOvim7Rpg7UhIwFb9LYVBA-DlrmBULBuiRSxQqVEpK3_76KLSQ8MlKpNqh2WCPs9_n7gbF6HgFAqXMUbV9cqxO8Back8tNpt1LSE-UTUo6yMJAH8d84B11KiPz6YhIYDvNq2nS3tDsm2I3jcBkrL1wncJJr9cXnf7dI5o07-io_o5BcY9_f0UX3l49wztOfmeVvYmdTFqO7QgeHB_uHhnhUhDlvCaJSRt5kl1Khqq4EOczVkbYJSWkfCP8YDmz0ekYLxttxD1QPJSRmMGXuYiZcQ3iA_wFbW6ZuJ1ujPUEVp8HTvUtAZwTcPPzveBTC9ILrI2KBWx2qGfK1l7_z2QXrx3Jlx6qcmrTsyAueC70uh3kLQ8_rwksoB4eX_xeyqcM8mfJLvJC-W5k0ZwmxhCoEY2fJQ2dk1z00kvhejVM7AdTZpspD_vY8aOfUIckhVaQPPGmECAyXLHMkITov67EW1cqRZyMXUIDq3rKP9pKT0rEQVlNXAktdHPfLEocfwh8l0861RmQBZFXElSufWaGmbpFenAB2M7KxliecuIvX0xSfrgEQf1rhEadBQ5MX8Gk5imUvCya9gQbWJHNlk7Q73J9jbeRX8vjvQkJDK-CqcSC0KWwGuxXTJbeCk_hSSd5AG5Qer7GQDKuIQzM2e0MmZD33kX7vHKjf4-b8P6ptbkNHOanenAGY-E6HQcPQ-4Ksz9wlOKp_a-bqg4R8G0uIgPbDgEIBDWITKF-bbkls2UVftnNPWsXP50Ysjj6TWjbLB_LedGdFLtEfdPxPMucsPnK2p_tj-hYPMYcs3ZCMhse8UcvmQKKkd14mxAOqW1rQTvTPULF2qGX3DPRu3jyMbq6eeFc-OUNqqVkz_EL62caFDplyXdyI1Bf4Njcf2jKufCz_Sc0gg0voS9y1DLKaMrToDT_CrOLMTScGhAz-8OxlwlSURxawaLm4nEO8liOTGHBtVcP-nnJRR7AUbAKR-bfE0up8uh9YiQicMOQa-CG5UblME-NlxcpttgnwtIL3xOfirpN3T1T6LgkVfmY8d6w2NjSUL1-_A3VuUbvPZrbkLQeBbje-plbmoG-RVLehYXpAQXnfJe2PuSWnr0UDeXfBqAYibFoQlOevJTGktVwyHe1ESqpY9Pxo-GFfIzcyN44YSxdXKt1UakS6xvSjprsMk8933ntKO3RSV28vmaj8MSZ6fbGvW1a6NyKKQUtXhwtuj4177ignq5pX-sSEznyZFOCP-s1uksWNS-LCr709OxVtY2oGcto6ezFC6_TaSEOUa2ncY6GdNM2TrBqSJJjDYuQ9j7XH7QSE5i-WVjymPPZubZGAE6NAGUS0k_5QiMM90kMPfQYqaMm_5WSenmIaDF6yxUEcy6lhy1B2hBSE8MqFvf5itS767KZA_H0niTZ9qcL6-Zu8_brB9MgCRrAOEcAopsMn-jktBp8JTbGA9PQ-kow1eo2nA3Aerf1tOULMGfJ0n3p9aUHk3W0DHsz3osc4rNEED2iXE31C799aAdu0a_GhHeNaZr5iElP9_bs7ORc4sAlzv9mX-wDiq9pVspptZNJZLuo-ZzCeo4mCtW-f3Tz_gUFl8Iaty8spAulsIF9W-KrZ0405cBfvEFnVPC1aJJfB2BpOileNTDwqo_jp43_HBZQnUaAbD-rw4_elX0QFaJQyJanrZjO_JoMU15Ly_gM5XVz_iLDFMr0Qot60a6ukSmKRJHRH_mgtw5FxmUqdZGNSFmXRQV24WPzFmIWvznBmb0gODUIQHorly4pJ-3lmoiPM889p67p2KDEF9o-L4snZYsoPzeQSxA-NKwSN_d-CFMXurmrw974r6QHCJokgC8UexwLmBo7IIcj8YivhOIkAzIlHI1H7nJvMRhhpY2_RiafuI6sMrIvHZH6fr6rX15XdvU_mzsjBjZL0X0Un3EKSlNruKtFqd9slypryaCYI4Ce5wv6aIyVIYldPXrUZ0fwZhXJ0xdz0k95wBA5nqYvtMmCAbakxy5VO6D3pwfUaXs996fOprWDPFW-8floa9AObmfdLjbuzvhgpO1kUIJEvqIOjaVGfCXk2CTMKvbSr7bExkLIG5F6YwYhIkU8fZdJROXQ6eByGSsuN6fhIrFmAh1K7u7BRclrQk7GryyMnAMmC5wHyuJByJB7Ezz8MMdjYEiDNm0p7c9r19W6SCrI4ZEKNcthboNKHfCKvtsG63ZqIdwKoFPzPmKypwuzqssYjL5inRxYlWTM8i69Dhlg91mbIuz9GFXrF9tWFAE6EEBO2uNh7lUxoiq97LBeha_tneG6KQFNX5YD5ZQciuphSAetJv2cC6FrO7sd-m_AyTOLUGSdizeTxoR_Sr9UjvelytfB7Wd6PVt_ruYqDzhrebfGvZ5qBClND7K3D1eDhSR__JiPtwFZgTn5pJ2DszbKD6fR8n7YQ9_Yp9WosAuTu1CtfJLaEM97niiwPe5fO7mPxU59b4-5Rj_GbLKns6gjiUBHs0tfy9Pz9pSIn3l61JPEZYWXGi2pkhha9Kcsm20NY8nvgdEVl_yvv7KvQcAby7qtcg963DrbWLbYM_wnt25lF8W7lbC82k5ruR19U4g0GLvVj2E40uMyLgUXuWrZviZ7XCe8PKl2I7jZNtNcYeBiVB0de4eosnA74Wt8Ga_UmilWTuf2K0ASSKGIHBeGZXEj1zWl9wwf3zJk5A2sqXe6Ox616hPODL2GrpD6bivNVNB0zUwpPtz87Nj26vAuY6Y6VQiHP6PWcVwZq-X8sN-4TfSwI4anhjbFIXPTOJ0iGmB_E-SP6WSJGRuHn2JFRJkQASHDzBjNcYfeG5-6Grz0UnSYNFT3mWYhsbKXcGoxqyKb5bvYnaCJdbJZwHzEIQvWRP0XdlR8ZzZW4_4r4nuG25qq-fm4qHdcdATGojPTTWxiMNwzu9Ng7N1lhBCIh9WqiqB-8FK5Ke8yP33UVE6no0XdrjPNRzx6KR6f75rIK-W555Ae8DNgA8Nze_dL32iV44kFhGOkIbcsj_44Nd9axJ45E2pJSfWfPvNjyQn15NzS68B975X7natn3F31kB9Kep93edb8m4Fb7AJZnqtLJwAjsxSWco-u_t8LGvbEWB1siYt9eV-Z1q0D52O0uvdaukESV1wMBL8ccSsjeHi056leLxaSyhRjD_SwxssniMfdGoFkYp2Y63qXmKzRuqXodsBJd5Y1-AiH8x4SYGxpYpj9fTtoeiZsd3aFnOw12EoeaxLNj2lBDFHMKWZJb7X3Aqr09hBWFGmRSSl1wr3wxlFg3JUgoEcNF6LZl8DmuNNC_d2ulAk2niAGG6oZOPR6m3tsoMSOtepdDapZ4LDXAHJoCtxC2kprP-WbjRHt2BHUIlQsz8b1HdLvGNWGs5gENWX4TsiltZz-J5rZ5hSClX6wyvPVnxWKYeLraZzfnSky5wiYKA5qpp3BRkGDdFheRlMd5WuVLnx9KSgXe0DA0RaDjIsvznTS9WDsXL_YH6Zmf3tmtHWWs-A_Rl8ONwciK293xapXj7Qo3I8q0hV-Xuskw_X1yHVdccP7vjW3GP5IqPH5XEbD3frXoYDZUvvKBhxTfdwjQ7ZL4zEo9KZQHQiwfQ7g_uv1cOLV9tjba1JmQT3L2du-DWb69s8CLeYwuD4MK0gUyvW926cJX9woiTKwLg4vr_IQfTK17Gz2RdhC4hI0O0WxRc4T4YoJkRWB1QnYPzxOze9eAnK_Cqkp22nWJTJJawqJp_6nxzCZasmoGeQ3VSo344QOH-MZnoG_TfweiU5mfcrtYEE2gqRVFZToqHTHIgprpJ_Ca_sGVtV_B7R6BLIkt67d8ft9ZOumJxW6gxb90b_8FCmdymkU7r4QHdl5m6d_-I9Eh4C7qu8QSV_IO89zgoD0KS7ITA83VKpIKM1VQO0LMn-JCLGNGUAi4pfyerYfBdranLBQld_oBVM47LsAl7lS2raQJfhSXGc2tqtqTNbWL8mMWAuQx2xjvwZtQ_3DA-b4cE4ooSGG4pv3IfBwFVHgQMBBgZWVh0PgVOw1ezHbHj1vtWk2VIq8cxzc9usegYN7nRa8b9ES4ZpcJdF1NynqW4lnxVzzpAEwacE4W_JKx-B0RmIvq8NnSqGgGCm_lnQ2tkr9Fx_otCwrN9m_3VD0WiCBCZD1yHrAlu4J47cltIY6dXdZd1mm2aB2gKj-Qta8Xye0Ivdv_HNpl8vdpkbTXzjUplF5gowI_BkbktFVSTrzY809qqcWZQwB1GUW3sHBKQ6oSCKm2LDbPKXA6FwbiJ9htipwMcEcaB5ssCMgi5E8C7uHRWomu6Hb-8LrC-VssU-PbMFU_LeMxiTUFQwh-7Pdjs_MUnZay8O_3fyoFp9v5HilDYlYdHBviNv10cbEkF-1Y_5Ukrqt3o2390XjliikgkgfthTavVbuHZFadKIjkUIJplY5fgumG0gNdx-W1CUjhpyIaBLjRFbfTz1lO11vG2Wr0xhJTYjdC30ZgEGj9FxDmEeDErTe5OvWTpcczc1KxdXl5yEsaOt29EMuRusSlfXio1cBkVRDQRrwm-F4bmLecsCRuJKJ9ODyR-UTIrQh88mCxG1t5xYlszqoKUIbGBp3dKqmax_P8CnQTj2cAHpF_LHQETkrSS9a5ednuI3AQuHqhy6NS3BoFdSfn3jM3d1vWp4LRPh8cWK8gONzVPlLskseu3Onux-XsDPVTwZzB2jp_7hGRJnv5tMjeXc7MFJCDbn8EziKN4lq4RnD1fevcM-oX_unH2ozCJwUuvaqYTY-uWa8MuPyj0tUHzVsN_mBDhtJP8QZthT4qsIBC4LLR34NFPdsKtXzmWcaTriVLkAuBmWmGp-qjgWW0dWyAMTTPz0eK8yne8oSjkpSNbzhNRyyWdu-UqqAvwBHZyZ-x5pNnY2RW17bEqhsgYsLXeHWQLkf4RAHIzfr4jivCGIK8GtkxixTJ89Tc6MBcKunj7HjgzczPywicEgUHl9Hy5_1CxyyH4JXEdba_BYJrLU71Wa5p9AVy_9tQBK1v80AQwNRY_KfwYVjl8XcIgFTxgSl5P459OEA6ym32ZYMSHlfQc4DkVpePKd3Xwmlx4oio5eIIeX_M29Qbxhn6QKLlJqyk7ZBeRLauO-nL33iBKglX1sEAnQkHwi5H4bso6rixYikf1SiuDdcEIcw5d6haHNXz0LkMp3BFibUdCv-KavRiHTU42Dzympe9HeGnyVOheJHxDoL7j_IR-Ksta_j85PzWw_cMhD3z1xWVBcv1dKmXJO8iOaP35Du3QYEF-hX0nk3olV2J_JwKpYNQrErXzRcaZeS3D7c2zibz9iU4cR_VMkJjtdr742kxIqVKJBIwhxDeD2MSJP-2SR-VBQ1EKHhKFWwrTq5kZfplzlmJ5GSmCzSLVvsQ5usuq6LLlESiq6TxSXIr0Xu3lHvBTdI5j9Bn_R9Wufk6QBnPxRQUEHRxEz-bPsEmKDHTj54oWL7zJoVl3N44vU8LfvxKXgiOf5_U7oZqYlPYHxG8eZC32utxjr0RhR-NKYaOrSJa2o9bq2Sm9TY2C3t0aXSjpXZLVXq-aVHDC8cpfYv8xhtEieXQYQOmSvp7K95sz2d7w7o53hjwTb9SjeSwDRqe_ehTtvPg0vpGBM0OGXuQS_CxGBX-mkMJ945AHoNOCZ3OQmEeUCrA0dyrJejvMyzGjvD7oBET-PCY7mE-5eW5bJaj2XNWcSMn3d9I5MJZLqV5Ybx2tG2CP1WNjwve44iG6AavvReokPvPJ8jtMJc-HHXbvI31DKV2DLSXLr5evMB6PE7DmxM5NckscID-wSwvxIdk7v5r93ymq6Yx7uNteWfgsqgpKuPCCKJck8s5xxOv-FP9gTpzYTsWCxtaP4SUsLVrLudLkPykV3uspEq27meiCJIHnxg9CkGvKL1uS9EN_Am9-STfzgM_03C2Mbe8iJkYy2Z6H6ynqDt3vGDhuQMLygMpxQeyQpEgUSrpD-9iEIQL_LSfQqRVNf-Q5i-N-HveSF-bKiGyidGkEbh_x1mMDlD2qdn2HiBlbXfnxcAUhZfSTG4rML5A45u0N4Z1iWLyUjBab8Hs7brBKsqKjKcISdR-PMLUcVXRLG1QG2ynF09DIF-5oF4wBMScac18WanJrkJUKcr3uPlN2jr6rqbxUvoo_AvDyBWrV4s5TLe7UJ-zlHW-hrjl7lU-FjkLVX7s4Hokib35gX2-lM96AAx_967RX63_aeq_vssKnMFljFhiGFAt0iL99V7MZDMBYO2PIkXewJaovfulTzADPP479It7pixFzjvLIiZZvFEip_XSnzFukmm_D7ww6mynfpkEuncBxM0aTo5Jl1n6Xo5OzdHR4mz_BORIA9B6xKD_wnMI9JLnNsak_w7UpqcbB6VTh_TyL1PoxnKsObLQJ9cwTcnsvi6BLMwqMOdmMW8mc1PRMzTRpBPM3OCFKH1S05A6-bS93jF3XN5_nBu6wEzKnVI-ykfJbheHA1SxoZ6hWyjmUVYZzWftvezCnOP28eN2708u3uEtjvO09wIDc7u3ptCMxm97mO1eFt3hi0fQWA5wT-dQUf5zKYBEYQ6EnkX6xEPqIFCltYlvYJvqqrGMzZXwFK1zfjMDQmWJSVxXZu4GiahYBz1YEnmOmhy0xKnSvN1zHIczjpoVyFOT6WNXV4jbvS1ICX3WnfdaNaQje5rA7-a4r6k9L8z-yyr_N84wAOtcMEwrtWn9YkjGIJUtF9AEi_3_AAl3Dg964BW81URtQa9zeYpoArdcNafy_IM1Q8ezyMf9gKZhJRUwNnMnwyZGm9RLhYhMhF1Y1Fhe_zfcT83wDYEDtCP5PpFp2nwWLyb0siF8R8AGlY4xg34yFWArARwPIVkb5XKtFeALphXis_tSOh_Sji0YvAc2_kwoNk8C4WAWPfYea_3fUHy6jcHRR58xlVeNIB1XWv_rBsAcmouUqfolb1bYLsDRuslL4OrELROeGKCWIOcYw9S1sxaH0j9gvlitBOGZZMivW3u2BZPL3BcSwrIce5at0yYDNu1Ug9QIwihJwg3VoePMaOaEMACRVPg80tDZk49PalxA95SQ-_DYlV_Yc7yXjbxYO2cHL4djKz0GAqPv15L2ZnJVxp0i6s_q3k3K30TULaijnMNEMobBwWClVVnFHYiOGtfE0WNNZqLxOuXLdwKizbB0i8NaZqx-URniDrCXQ5KiRt56OqPwtrl8X3gazLz1Ax2phRro44Hgl5XDSo1l5xEFlm1lu0Z1TMOSCPwJJXycrVU9WREEQ9tcr_d0FQoC8vmfNVXYtTOAaWCdfkLiXESszHGqdcSVaHIJhY2CxRwu0-4JngAWXpO_ivCTxGEtYo7yw4Y5z5VNAvdBFrtnfH8tbkj5omEI0Vy1CJYKlZ1-LSNUGHs9BwUM9ar6f11b8QOrFkMv_699OelDRBeHNXlUBvYV8FN1rcf-gYVkj5lkXYQrg9BdrPoYFh53GS_tUvoLeGCL8dI8hh-ph6ayZTX0BI9HtyE33b5mX2dW0aWKa7N1lkusR2DTFhx06o1VebAqegdmh8USe3xPsBzbOj6UviH4BkfQjv_9zAkIq4WYUwtJi8AlrAsc9PZkeyFfrQlZaLjgiLFNtox7zCRtZHZ4XwBXh-OUAyXvfMtg3zzQyRP2lj-mGEpMHbYqouT0on15wmQ_wrqrzEpHs2yAKVA0Qy0i9MrM2SqA44oTt5DqSc2zEGqht6IkvsWC1jF9zyldgFWWt5SnILi5ifwBbgWYQCJ8M_P-tRCNBJzz_31ZoBQx1xnL1N39eN8jdcDEOpApM67DroR0p4tByPF7rK8bh1DV8MgYREkDCPABE0JJoGFHohixOBDd8R_PhaVMgKjqY7uJruUfYlpHSqfK1J62TtpS5vmqRj75Td55903_6bqchbonSdzEaD-pn3WhQ1I7q7d3yzQy21jJPozQHnyOrSaFhtH-8btNFx9J06yl84P58u7MEUnIF97dlKFoCXt4kxK596GN7x-HhcG1-EbR09aR1j6cFZYlcsAFlncgqOszvekB-q_nyKz2byTIG7nqmfN9dXKeHDwSIYnssbnEHRw-MGQeKkfFbrGg6oeFc35XjVv7ojAmq4Gm419tMaH9intI5zvwRjsp6TXCyDVgXsqUydBU5rIQExZ9u5zakwS_tR8Ts-ED6YbQVFe5PvH_7Ml3GBmbmFBqsxCyVHuDI0PLQFADGB0lPL_-az4JyaBdpDh0mp5wqM8xNnFAMKsLI4qHPex91Q-bDOuft9Scy_s2VieB8uRefAGKcNqVGyO5SwOBE-BVb_PIHH16W5GHxFBOQzKflo-9Dkm7sG6GIAp1Nw6Ut1nhiEVc1f198myRnu1LIUVrvDnNbVMEY6_EHbWgB_J1l7m3d0CAQF7mza2vsZds4tISiMS3DBDuBiLHg1fUgTPYzmU2VWSXCH07dqk3Gxn9Sn3cfEXPfaZNexrHKXmM5_3JT3_OR6GGewCkU0YZVORJ5beUUiJRBuMmBPHYBHWdwG6sa-vQDC-ND8G8HFDhXHFoTi_FAf8KnbZHeAxAJZmO-DuWlkIzH4cfw1J-aFv0kyLhbi0cJvDJlAH5hAqhvxjHvAqZxwNRNPOMWO8BJkFINwUE2c-giJuiu-Ee_RNlJVbDwjxg8KG8f2Z9KTT0wvmsGGBYyepw7V6safu_M-X6MTxW9FPHNfOO2VQIxXlzUq20E7hNB_MhvWUHqk0gDfTkRpnyZQJiq4iU8cn6KwVtJ5ynlV-6plVDfL9neQlgCSVO75dpc-lf7CnYzfxGce9MytnCQ7UiPz-sFrn574dq9PSlV23hIVvEIWr9VareU83Syw5_kYq9UqWeX42MN4ZyAeOCv7RO5BdB0Ib7BWCoLRbpoNWG7lJ_iuu9AM1xN1cJAytxFfLe_qnkkHjIFev_91QJ7CLFNlhS4S3c-09CXl5Fw3F27A6GV4uCGz8KgNZX_AZtFDKoDs2YyEuTr-jitwTlpfFMiLla7J06-p0qm4eYScbO51X6uiAPUmBMV9TKzg3JwlaEGpF6Ij-7Dz4EqLl-_X0btAG3LPFmzbkVqnr_KcdArwZU9GDtFx8D6LOEZTttHudW4044BpayKHBegXg2lk3LPaB-ycnsdIX3zxfUeeUVQ4qPX43616_VYGDFg3mvQqpxhT3uuCmHIRqVz4l2ndRZvGyx8FBoQfPVdDT45yu-TJgUbesHo9DLw1SJ7iUavjyokxONqcVNC9OhMWp86pHb5K3tqm6szmPntF2wdu3Nx4BdKA3npb-MEnB-mTubXyBf7Cu48jw_3Qbb8eF7a729fNV7hsjQKd_J_n3Wr1sHGTyMYATroxaIHDlfPHi2jyMKun9d2Mgkjz2DcpXiXSdRUJZPPJYk8QKv81MS6gj8b91LVMZvYj0Igy4Tyvbd4lgxp_LrSaG1xBCwKyK-oK9s-hwxiQPAlkNI2T-mbTssfZoDBwubccer1qaQjOc1Y_wUnqPgSjOjn5gt9VBcnhM5n1ImhWLtu_4qeGoTZOnqkk18Z0dpWaaGlWj_43Rukt4IPhCIY08oS3richE9NKtZxhmM2WW2SrxvSntPEYKRr2UanmmQotgvUxdt2tLd8wCx7UZKi9nMQMUUceL9v74bazOffSe1LCrzgddjtLsJnGstCZStnHiA_7ByPgQ84_dEoeMJlJ_-XgXl2gGultY-YVaTf9PrSCU9QzJq1FCN0uMhG8ThxruIRRF6ylGlneohgHwD3djAplINZwXpEjgOg94D2I0n3OuqzaurEASBclF7SoykY6joHwB_STgbAvk-EsTJur-9OdBynuk1KslhiXTZ0pdyzb9jhPRtLugwmEqn-Qcf8rEmKxt4L0L4ccndPD9XOFgbOeJovXTgg2c-BzqgU3FLkTthm-mOs3gKtvbEZziP56CnjKrm4oB6S253KCdZLp4eNgOY6JI00fDZ0Nzr8HqTjSaEhJlFabMfxfT5IKYX6E48IvlPAL7ZE5EnFFj8tzkh6UJAWd3tIb8PUaDDW1kxXyIEUUWPWxXx_5kpkTXFF6vw-Kqrx7esu9zDp7EjEtcotFyqBaBzdsPppMKtgx9zkjYT8PhRKQV6DDb9dSDIhaWnWIqnCoSUtG3ZHeQY6FrNlAWD4BS6VBaK4HQdJ_MiJKXevez50WIJjYlVG6SAXAzlswG-RrwY6cOLO01QEWkqcTjShbg20FzBId_K6VGCvZb7jS6KED-NEt2UP-cneKCGxGfB61ReP1yaoO2hPm-cnuYONcAkgVIEDL5JWwXCf3dXuZZ5XdKtWmqVGFk-vYRXa9pu3A7nm2nUUM3m9pRctdeXOm6tD2zLv21MkWZjich6gFshHo3Sq0jiYuvnLPMwFi4vhOAKgStzk_VSv53y4BWfKYRVLL2GPLonz8bBeYDqKQnFt1waVZKcv8D_x0gnyV6HabhVT0KgpcjGFDoYYHhN4PAA8RBrI0i0MCAZJt9uOMwb2WpqAd7GjTHz4FtY9MVyGJhgx8iLMHUVUMftjpx9gfCaLyMTWl0veD9Ubdwkm9bycYgsJIYdy--d1lmJIjI_uSylPwsFI3qdArWyJr4UGyJufimmmCdlysXk20aarHtDTX14ZA_UIr8BDsT9ziEkJZ1VZZCmizTLDmguS3mA7VwiIVCHmjm3UcvQi7geejru3zdgZwO_7d40Zpz2fi_LLHKU2XNaSpG8VncNS_JP15NRgEhyMnpBZBusLTlFVUWg5ALoWNYEcvQVKy9Pp40fCkn0tyFzKgtNBLv2RQafvNtRkk0m0DC9Iy9dKxs530ANdmEZ3ZyembSEyklpVK0jJ1NZz2yeTqDFCSD8_lnqiM09MfEVSFLkOQ6dqaLYCoGTMAE_EyzwVOgU3LkMepMcGT5RlUcaqhqQQll1aXsUtkSQctvr1cBxkqZ5J16FzMrlF-NFSI8IVBa5SEq2CUUwxI6InEHiyn5ObHGn3tBvcMpidxRwSSe1xhaY1gVF_yDcl0IEfRG1C5PJOaUcW8EdaD-lTzRmwkIC7hWBKSTgIRoBBqF1oI3Fbro1yOGkG-ZHkk9LdiozADJv88JOl6LxfhmBasuggKtbLhemIzFBJsEuh3j14a9d5cdg6BDxKikZ4OFP7q5Krk-Ee5Y99gURQ11CSeY2OQame45naK0MTnW5EvhalZ3VzGM0HN1R3g7HdyD5VsZmjcV4AdyUV1n33mjjfZ-BrO7nhzE2yU39W5PB5rv4vKQSbxDZSIebPLZqu2sTPaVj-qTQItMeI1H1ZDWxSu38TQTc-H_BZzQ6Ubzk0fM6juLvjyxQ-fxCuPPzfNtbS82P_oQ9IDhWD3Q8zp8u_ySICJJGVRAq5phqpDYH-4Gk9IISrokh_qyl7UQbfeR8XhdhSMcaJOeppQ2Sdt113E0TooyZKqrH9WMuoi9A3VDIm3TVfJqWJBxt7xAOIeLLHBv7FMRKFPDMxsuRVtZoe65IFjIUeD66SE4mVYxUSKi654kcrZkNkQAPN-csEjw3GHUoWkm5wPcaljTf2ZQv-utNKNUL7Vs3OUJt8M5fB5WQUQiBd3C4Jgdh9c-F72rMqpZULGvhJEidqpU-Qch0RY0L9oX5jn75uulzgzFajZ239ILWGcJOY4GQp8GfWtegkJ8WAmAG5tDGCy8vrxQ4acgP7cmRxubYyhFR0TME6mkA3iFFFn4_9PRMZ37VjZHD6qIPxgwpvkqF_HF5nZcudafbJeci2MWVH3LT4fVfGq7FRjWEAkP_2C6Bf56gJFEILKG2CQMRjnos4HEvkQvrjfsS-x6zOWgo7syasEZgQUUIG8wYSnJRPVYAzkhu9ID2OH6p1bfqxPMo2-TTLbEJe2vak0sTb1q9rjkx3ENFQe56Jrm9Kwg1oiokG0-I47JvZ4bGMfAu2oQvtRatizb_2I_GS1isEg69HVQhOcUz7t3bifzx0VjY55kdwC6mcypy8UJujlBuZa-uWT0aNEt_xL9R5A7pJBhCdKn0MNvw-v3J3gSjOrxLlRMiPhSaPIsR21kVOVL5RxbYcK19igRGLd2WdP34PbRS5OKf1L3-KfPko2ae7p_cUzRfG7ANLPrTK3PWt5m94uB1RoF6bp-b8DTPDf0vT2m9EapU6erueq_PsfVZiNBopNHSgVUsPnNm4q4-lSLPednz-N4h3oFswiyrRovzXeUIJY-uKbdxHYNngq4-wXLOc5c2uJFWDqVwMUIoaluKucUB64-QtDt8ro-UA6NWg73xDFxiEElfYo2K4QCEtr70MspqjFjTnhfLZI1pLJcOo3VeoWr-cZi1N7SGfPhkq85gO3WsKjG46x_7umkbq36TZXv5wbuGTxGBqRAnHFCppf0_8cBet_n82uXv4Dgv_0rNhSm6CAwZJ8aZsWJNf1yA9vcO_t9_I6WliukM7HOwMTDwY4P9GuJhRNuOX6dhmFf7ZLM8enaJb4EdoCta8B7dh7GQkXR5daiMVts4nP-GBRfkq2W9ygrnCCP1Mqbk2RZE-0-gMLCYJlcpmzlXprZh7rkdj_t24y04awGkMTwSC-967RbWdKLzP_qXfKDY6CE2S-mmXlvFc6aEmBEbWFIW3zOomtaBPFbhTcI_ukZ9Hj2iSTckAOuD_zvxs7I_Er4O1NrEq4Yf2_IZbuQeQqmQV7VUCVKwFjXoYiTP6aLEkkncDO1ksDAp-Yx5j1pPg_0v4hafrMdcYqpbFRYla9RNnGp7cojAhl2f-Vk5YjmHBGR-BiUS2RdGMKN0MXKa0LDydy-Dr8NaRbMx35fggPQKunJrMiEU1saTnqa-NDOK5fc4MxFyGyBWjW_3ss4R1gTqfKUUw6ScLh-Q-5peG3TFhs0wWyc9fxu-VevlPXUKMkxw5TcNnoeVqidIR6L7TdZ-2blfN-7a6ibFbqJoE7bmIqZ9LGgQK7fmcpi14Av018sefzEqJsVbwOF_Ad0SfidKPjvY_OzHfOwUtuhNQTpEJqgvQmwWmEB2QmLVayed7kGjzxcNK2I3VTea5n7vXtwgrG4CX24p7YzOgz-F90fZUiR1SX7Ubn0laVzO0uns54vzdYT3L2M7vKXtphSgOjwTgZBe7MLzmKCCkpgfvIG617veQOanZ5enXn9b5xMbvrg92l9yFaZw08OM26qCVY2L0pFsS0Ru_s3NBHj9gQZ27uKGw4vKIkWYO10fU-Rtodi2ctnZ_uIHze9nZ7ogHJTj5gRHkdEntPDxVaU9b447ag1HM3YZ24Bq4lbXEESRUw5Ent1InnvRRuyM2V5WVUrInFOyBglDJRzoqaghGWGuKn72t_tMIl-lRXVhVpNvHCqWIE7LUmJ9EJSbvL0UTHF-u0u-cIVCm862xISwhdWo1_4X7l-06ZQvyRAgtvMbyYSns5eMxTKBDDC2GvUUvxAl45e7Jr_kAmz7dbmUCRdLeetfTd7u8hWcoeX4Tz2B_Or_UVbb8o-pzBF3UBlgR9ZMBC_ngNDmr1BXoziihpNVpsmrisMWcMGsnbbgHWshSXD3q04G28KfMZmrbO8MPEIxS_8zsjd2E8xGr7SBkgUweehpkufzKvfW21o3K7yaiZ2D_-vVb4xsYkTxcNnL665UsUdFDpI380pYHe1VvCYRSDfV-USWJbTn3dU6ykECZjgucLKWRGX5W_1at0RYrz9LqX94IdOKs6I87_v0jGc8nD1Oig26YuMChrFvm53kSxwEX-mDQkp2oA1ATKt26QUhxA_BaHlIZ_h0NMrIo8MQnjCVVCSog2jlH19YJBP3VYompk_ISYaXS6NYn-8awCKkhfDW36batfMJGMzJjuaoCwNWgA7ynlTHG0_w2bWxFTYoAcSkVBcTYkSCIdTnQ9n6d1LD1KAasAxTddDe5UZ772SeHoyaBiEM0FlYoztLWy3dE7ZZEas5yeyYwwY3SuvmTj0bhX8-6eEiRa8ZznnIh1eJc32grkXPeeSmTtZjj-T0HvnDzYi2hYBKlGST6vM7jLoncQNARNJ0eAVBfctCko-qO9JiwDC_d9-s3smNYNCnVf6-e5yDU6wAN5L9ZjpaPccIV875TGZkFyvf_tj_NhahxA7rszAcwNwG100oJkpvaqXsRKyCicEbwCxh8KE5SxaeraREvGPfDrO188wp61Nor66ibDVv0-CZFNyaJMfKXoTmfsrbQmTw9Jtnx7fIkvYrkYmBDTxMSnb6HgG754Oq392sx7QgNVLbuEWnSyMK22cz24nYkVF8vMihO4KSjCN-O_6Pd3S9dete1VDHYXfUXPgoJzc9YFAzcAVw-kCHLDEfsq5dP4ufVSh-i_uHmzWx7w2qMYzc3-pqMhRbAq-deldGbclsuQOzFgp8iMD9mEpqwpiR6by8CYIRdSm74L-bvkb6edQ5XwUvLSdmEKDBnGMs9B5G7IIQN09enY9WiIzCczr7jrN3KdH_J-sHbVJGS1a0wHyaeSd0eVlL6xWTeEE2EZxnDMgD_hclzp0jCy6JbJHCsN9fIiD07D7CwuP8ulfLn7UVE4bBvkNuZytleHwkh76tAC3_tOEf5J6Ew6tGkKDyitviQ-MEkfwXvah3CljFUWNUokez2wUQGPEaZgMwH53FYaY25Y3QbVavq09dEidYzerAuw1cy37LUyI5G__Oqmxy5EnTM_0R-pN8QW0Q4yClm9dAexf3O0LQcOKyRigS4BIHW7aQKGEZCWmn-pQPytHll2kjL0Nw6QAW3d5mggmXjUpqj28NZeWicJxLDvBNQD5NepckPL8bLfREb6Iarp0FFcMcss31nni_96rD1ZtoWeCDitq6OE2LNTfuljikU-XKZRFVUtyt7G-Ix4_Yu5LJgQrNTkQVyjoYvHh9jdt8Q5rsW5Nbp5HKldFPaI0POqi5jou0--lehh3EAi3QLMDErYSth3TQz7-_sjf7KpDp5iwF3UwQ_WBfIzkFQAko-Yu2tL8y3_j1uOD-_bBvVNzOjXYPZtb4m2w9tw_UmFzSaLmTZ_35s0O2JX4-3-WsJEzbEWeVGT-Q9DVpANE0V2EMGZqbBNNG6xQmDbaAC11WxH2nddxaQ6TPr2EfoqraHmJkqj4TQnICMwE4NyP2xM7y1FSFJPAxUojVocv-l1ui3Ihbts__xzd9z4SPeDZbTk1hXG9zqulm4QhO8iFvnkV3kUsHFSBD_tKmqGKHkDPMedIy5TgnDMik3wGvnigX0K_ECj_QEHwGzUGgMYOnwN-weXsiqasiOf9OX9Bek_NFLPtL-ryh2G6v4R_2iQX-_R0aeWd4FImcuFoha7hUjNnsgRTrsgZQzb786Q8pkVtg_zGWugj_mJg5dFyDM-3DC7njoLLVDuo_c3Pq1dEUVN00id5gmzmNZBVTKBGKowc4E9QXYoyBtCyxMNCaKIowOOxJGuL2dZqJxDcHPISoyEv-L3LYPKALycRtP3dDi539IiKyWRKLrNRAxP4q0PZRDYzbE0p3aB5m9-ZHO64NEHIcyi6LlFQ2Qd8B95UfPlo9oYhs4Syg76lOinTGo5ZJr7hx6KAj6FUGCLTvXen3pzQto2UVMc4lFZZ9MSNckNimZ3lnV0DphPBa2v1Kl19r2MfKesUAW4_xjxCeX03QO_x_l0cZ9qjEM50Mt1NfeiAYnAOCAebze_IH-cXUxfOQt4mbj0AALHykwY0ECPTH0nlNqwdkPHEydNQeCXu0efURLlC6_5AjBanFSUdUzYCukVa56D73Dssvv91LWk7BmrMjb6HEyNBqv79JzkNy1_Q5lnMh-UA90vO_44TwmO5_KUEJZKM5KQoHBbCOjfsHwEsFbMPTG54d7HrGPtoWhhYA0OjjqBmsLML0q2ZpzY5f_sKbHoBiDx0uUMUpWJeSbx3wpsOZd_qWIXzNfGDhtd59rOLoQjVbyeL7jHCNZLXb8OZHoA67KDDOefWhWLd19ZA1jDxXGSsOzDDV5m4Uratajq8LFeIJgThEytLoKXfoVsnB26L5gq7UJ2f2fgNzuyfxQfKGBfYRMxHVjlQxDfE3l_2TqozRJ4pW7S0MjNb6v3XMT8xdF-ORtxg5-XDJRhzF5tFP7vDUxoe93sxmmoMakdyZrNl7apJ0DGE1XE3ag-3IE4swdmsERNe1zBXfZ9prU2grgJRQVu10pYTqlRHDlI8ETF-U4jmd4Wbf-ALr2muIz9nGjtuH_Rp1hxUkROvJkB3EUuPKDv6kutefN5nWAA3NjLYnwf5beIVBtJ4m0tydfGq99XS7RVZZr3vw3gynQJZJmeIu95WhdIyIUx_RQBI3oWrJeYidESTH-ZHrMuM59atjZmSxKPvYL-M9nRpmP7fT0dIsEnJws6TjqhqSEvLzJqL2ROZ_quLksRhJgu7PY7aMdoc3gLIHdC1P3Hx87mfB7y9m0K2gcun5DunhEU2gI3TC9XTkdr1qu_MaLs7v8d-kSlH6WHq4EDG2bbHJmtE764gEO8x7tGoy7CjWncQXWG0q9cuBRpk68tiQtokyZPK_tQsXKlh3An3Agwr9JN4VNX9oI6jV4lhHQBJpSUeVCGmJXk6et735glY1mc8I6qe30-z2REx7PJFnnmifAmYqI7_PPRFT_t96LrW3KZioO3sDJbB6BwX2u49a4OK_PK1hxkbK2AxMkIoWHYyxqIAv__3KftfS6Z5ibA4EzCxtx0hB9Grzllvl9JQCkwUBZRMlfa4QNVHzTgJY4_Q06-wdOQyBgkIXOPKr0t_gVbkSHFm7GziJKQ6oqS-VRTokjDvUjq7XaHybMG75EtGeF7N7z5bakyRRxOTsokSHqv_Krgbbu4886moy6flrv2a4Zd2JMSA0b1LhpbiqS-GlyH7h801jpphmpUecu_ojouabgMNLKhS9T0VvR3MYaSnH0wUp0fkQxaUftOWV0dYAi7Q0-dgg_PGs_3GNar9pVJQeFEcoEpwHgWfvtWpql07tkA9gcM6VBwP8e3eEKp7pIli_utyktZ-kBiTq_0BbkvZ3A8lOrp1cmz7WkF_8q8MN83jDpVfbtJEE-RhhlqG0hx8VoVtlkiHa5rj9sKZXgF1s8ed9O9_nucSqks__wcXJXAFQqg1YCj-_fTOOSg8YsoE1tiR_Wwb6eTqKg0Zze0ZMzrfEgL3g2qvY2l4t6fsezEeMH4cbKWS2osGFlPnaVTdDak5qtLiQkoXUm2VmhBwvjDzxJBrC6t_KC_PejEh7zbn0f3Rrk_KYKDcaG6tWKtsMqwrfqoulE448jCouBmVq3UD8gksU2mN0x7Ha2-83bPhr6G36gIZ3WYKyjZsPks2xvWsFWRb2bYeJKUlbQrpj0A_KUAVYr1XzDrxC09ieIzbRIiJS0Yj9aT8XiNbfXqIYgsb1A75j7vqILRvwwJdbQUWQCIGplHhcVF8nIz1TtTA9em_iyO_7-DqMBC90r5lcSHMnymsHGPSPaID2opPztB0AUcwEgPZ9e1c6gefhy7v2FVMnxswI0G1vb_poiR3XrnziMnZUSUamSV_nWmPZNZaJLA4ve8K_r0GKjnEvudsXUDeYBPgOVJ65ZQB_6jx-9I33o4xdQgE4LYhD5_qcDpZmy7nNW7BRe8VfuqknWF4yVU6k7tUIjQCvU82IKcerUh5dldWG6OvXRMxahiAtdnLTv_lGo2MOKHl17-YoEEIoWzRgFnu_LDYBTQ5ihaDcLbfEj4XiI6Q0Wlo15avFLMtQX5q1puwMO5nZ2UhXRJMMDCiPUuoYrLq4ZhaBPJwBi-TEdPa8xoh95BCkPW-q52V6CtaCEQaU9Ci5j8ANq1a_hqdipdR31eCLY_-Bjs2o5KkcCGraouNEgB2ANPAdB9258OGsc7SxZ9KUALSzMTPKRJrre4bfIAudgftakH1hJfWA4bdYf3sPgnj-9f1DQdJM5NDn4cDQvRw2NMVlmPFIeylEteNsyf7YRyq12FFPKp17nlga6hTEeLdgAd6rP2QG5vvvW2GQ6w3QijKdzJ9rasOVAokatcriCI3Di_o3gsFYHvUK9A4gM-IclNTcUvPFix3oXJ79z-VTNzbgHSoDYX0HRK3Q0LJwXcqj36w477uodJ4TUwXMjYhRdG1gKFkx9jEhsFA_x3ul534U4vzu3MsQxCZXYo6S6VoxiOUOJ1nyssmj7xg2PMWc19l18a_Q_U4oPXFp6rOAmrVgJiIvgrBgSr7V0qDKVOvM4H11bu8vX8rXTOomyGA2lKKCDaQzCuVemF92CsQbNWL6v7ERgjpRb-V2u6PK0J55vchkAk1ZwWtHaFzEYGoAXk1s5AjJCDpiPMFAJoUmZ5CsiHGgXrPXl1muWo-IVKeEOXscayp7bZsARwFYQI2B7QXRECinIr7r1k-fP7ZFFOjoNflSECk7Q9M0YZmk_EYR4WgZw9Poenmn86YCjAV1cttuCt23oBQhiXZYyUxHeDt2BHEk4bAcMTirYLVgni279FBSad_vkZJE3S8rN-pQjENRdQAj-rVOuVj8v73tMDjS1hwY-lJKGBmliqJmY6drpDIJMtC0PAe8rjQ_5sxnBkIFZk10FboY2_VV5roUC6h5Qb1EYUwkDU1SQ3DYvB-wfaMdYv9K5AjlZaKQz2jE5RPLD32nbzSb-rsOhyF0lVeVDWiK0DWq6fMBFZ29Q-9eeSmpKQ6unD2-YYrti8h1HJtVutxwSwO3j_hB9P7ao9DPwc3gsKSteqvdpRIuZrFuB8paJ8XL_sakfBeWYy7WAGzGKH4ilrVYCBWdYHj0PKE3s-_VKzgQPx0UERYjGUUCNBlvX3aZTeo_FI_4qCGTtUmddlz3HFUMUFscNsnx18SWb_F2kSshRNoTQ_7XFa0beSCELjId48akCSVN8E2iJYriBhVRIOtY4UiTUZJOFNIFTPfYXCnggRjdk8N3uoHyDXIl44bYrBbfCcsw3UeVJ8-1PVLqdO9ohyqtRRVLL-BRmE2wSN0dq_ce_6fLl3s0ZjU1fzHlIH9oIMoq0zIX3Kq_p97nm1OKCsU-j68H5TmRD48_aHZvSAPwERVlM-w40ilhDGb1pmcFEyfX2DZ0WUCU2BWkGZtN-NWrmCeIUpCx9qW400HMv3pUTmT3yGO84avxQBL8y2p6-fJWsApyuY-szdQQ84SzqqidqWSzbEVvnAy-lUYSTgz3Nw_K9jDDBB3zEIsXnNRUGAopUKoJ5t6z0otAg9yJ422Ne4zOEf4DpSsngPGAaK-UNY1UfFapId8X1Y1JeCENHRk0vCWyjlhrdsCXlB7QvgXrG-Tyt0N8IEsP1pBkjCT-I-sAEyZ9vGC7lnLW5RnMgueN7iwDBqZWIgyB6Bo0uQunaRu1M4uOti_SVSeZJ6jxyEXM-XAYQK8TXp7ohlPAbW0DnLXRBIa3GKBM7I_WSmQkZpvGtY-VI2UEEWgDsFnDyfRzzsF_okHzbe4ia6L2Fv1eJMSrgI2K9KFEgb0_3bPV2A0U8dkaDhjTUATO_Pbk8o370i_-cQ9OMCY8Ro0QkGdeHAJtCwpfhAZQMEmKtsnFxwBwNYsh45iKVB4aguF86E7cDoSDxk3VEm4f9GzDJtR07BiCcMK8rlC5hKfD1deoUMW_KRuZG2f7XhegeG6o2dN0xRIY5PDLUTCuowpSSE8PW3az-X4BpolawHJyhxhOvCHhzI2JZ9TGw0wnc2tz3TW8u2pZZBQE97P8FvrtcQkBNHX-evzhnDhAbd8WKRlNk7qVpZkL7OlNRoBIqjVoAQstw547ox6C_GgLyKcEu16dgrPVv_fj7Y5hOO7Hqha7NHWWiYcxpY37J01PN0U75cqphqUdObyioFrFHLCE6GFhWBAxORAa6lSEi5DpPPlAlsR4daiEKGCfzBPfIH_9WejXWKl2RosGhZu1jAzX3-d6Y4TRXDQGGIuIa1MeiPurcsLZfZbtlRWFI35dq7WACYoUg1MBH-ULyRoZRmp9p2b2nsU0bVhCRUAZfIuZs-AOGfR35KCR3EGeWWWyZcim1zdI_4ZwJjKcM_r-nnl6HQBg4oLShdvCFX_C5AUSTmMQ8TbWbEMP4zExSi6Ou5GxEU5PLPVP83oZq8imcB1OZoCYB7EFgE4KuTdhreCUdrH5fChaS6JbXwEAhuQsHFP67ygcQIEMeDgxddeYNd5QW1pINXBB7ADk_WQ9pYTlZ3dWojVKF9stPWnTYgy22DeAStDTFIYN33OyYk8CQrDcxIhlbUlt4UO3Gy-r9X6fNyQrpb9KQq7WzhFELcWB01TMj8RzO-1oAlVqeu9XUSob7oOztHiyL9GSPeFw88GCkWmXrYGWHpZ4KcCOdjPsbj0T0l8JA9PT-OF_BEjVw1BL-OKZSzf8ikTPbGSY3xYuhiKIpMqyW-kTkwOGfujRGmK6gqqju1Ncncy5DNju51PVQ0u1kv0P3lewMDxJpyaErrML8p4pbMDjadoK5iBph1zzfYPraNYIQrOMSeQG7Sv96trZmeSZLW0eZdth7L70buEULfv1tBINbCEhszCv8LfWflcPo8eApdxmfquFafZYH7-QVlwhENCIWBophKEit6KpnsehSdZXNggD_UiwhtztJXXT3hskEj9bQjDX9uEvqkOliGvZ8Gp8e68RCLoxDrf7L9b52mFjggThT_dClfohd5mvPDt2KvLp3dCzVoOmeQpa0RbGJByOOX_wpxLxy0I8SbzEqCA5yoPbqwvE7UrnRiD9yy7ToB5_0rv2UJFM1oNb-A0p9vbCKkIeSx-mruyBzDIoqnr3lukohay1FFavpQQv5OBXMJEC0CBmSSShjUHzniUOOb1xxxLnPxeXPtaKXN8WBghEvilvM0Z_b3348pOnV-esb9ONM3Ko8ruOuakYhiuB1QtZ367m_5uGYOG3Gxd9jg1IKwtIN6Ymy46qoIkQWx_oc8LUmmI1WM_clU4IiFZdjLKDdU5AkdywVJu1MrJS7H_jExvzCgxGEi0I3AZBHv4nqqx6hVN45_mgtDrwOXPX3GVPatjGzClRhLBozO5rJyb9nhUOg3Ru1yqXLQVeKQcsITLW7pAKFvgxjYoZMzmaaUDcmwLyKsEf0Y0KCcMUc5eHqia9t_7HO5z201q1iYUvNzC_da1jB-282bhiEwvC4CU-SrUq78WjSj6nOTkxXUspp4ce7U1dPSj_biTsSFYhRCGA4V099raKxMivLqznTX8D0LKt5hAiOtcdLa7qzUujzOqdP4oDWSNjSaPLFa43G3Ie8vyj5yDUNGjn9G_qSi67WZZ2GbgkLkepW17veg42T9Q0VpjgJGmet1mKOCWxm0K1xSmnu6hff4T-HtzD4W1OyFOPgAI3THJVSxGgKuVMd-qR5MVTIBeHT4gyPEs9KZCo7Yk8TQu1_jlMF4hS6zrppybs0-7i-mYaCszRcSpJvzAC5XcyAoM9GSpseIVgCYCBg-O7A-njsAtmu__GYutO2DY6kp057t62xZ-4SxFa-cWL76GnloMTcrzrho0MO8l_j8VajQNAJ0cnuLsAG7E2wVkHGX2V2_x17awGzWhOm-NylJTnA0lKl4eqUW52Yvob_lUGJYldcezwgf9ps-2s0Qkltb9KgIP4ozxkCWIIvypCunBVlxlHm8p0tN5OV1yhUO8QiGyPt2aQF71TzolVJprXkkqnujPADzqOshfqzUoVNZbIg9H-LEAH0Y2lL30CPHpOS5Fy4HlkYrt2MbhHh1XNPBMgEzaJ4ox11AypW5zIVT-daH_k_XEubAqpyXb92Wso0J23CujQMceRVAIcWIxqNFrrU3PA6a-2eOOOzyhR1hYk5iUS_KODrxMYDjhdUCzixpyfQe0MT09vEGm9jaknOOeV3PNEbwK986sWhOCNmagGSb6NMu_MTvEiCU5oz0Tvp5KMXVxmqo8CaOgPJKWumc1NIHMoIBCbNBQbHQC6Gurd_eTyiA0gEQ_Mm0LqHj49RKrK7B_IgM_k6BjPZnJFA-JHr-BQb5XcQTSztb2bB3ioZtuyTpmix9PM4l3Taxga4Ys4M73iHa6OewR0QFW-yg-RyC-bSzro2mxObpX6j-Aug54qf6ADk3lY9RoBNJLC3I4IS7FSYUD4StgruDK6vKhHqlGCWNZ1evGWKwUMi5ef8Bzs781U1MrZwtwNzXqofXrfiUjsIgpjM6ooyNlQmAb1k00wEZIc9bozDpLq4J7N_UkavpJC5DC1mFG225X3teluWadCllsY_zNKAhXP3niiWBEL88xYHGq3xTTO-ovBwV_W07O_Uxm3HpSdDCLq94yEibK4wwo7FQC210mGNGHOpw5s3P-EkqDQTUeS0DZxnsVNdXzrqIZ8AlanwH4c3AIHhueqwydCI0ZD4fYHEuXr-Yc-orwxSUrqU9iawYkkXLTPMG-mEMvbvrHCQgqUdDFc7wUm8rpyj1i5WUa_WBdG6pB-AJSutw_zqfWLX_gTj2zwqcgegGORZ7tVdEa9hwK30Xk-dmaPJYi-mFmueNpUz30YYuDmo8nKI6pS8i9mmCNhg2WMIKB9NKHU5CJuqEm93_DxNrXUNi5DKWfcWBmT8Q5NzK_90Im5in6p21SIzTFVKIDmi0i2WG-bQ8JGfhhLKUUmFHT5LDt1HsYBi40znNEaDnYoneHbOhZxR1cQcGzvZvLl-PCvHDbtArMZHm0SEZvpLh6mWaauhvPPFEON7KtqvMmNwee64dggv_eJ5XWd80RupPUNDgvZX8JF0RcnM3ycXXJbciW-kmInACt6Iz-gptXfZGn1X9uEcXQFpFRRcFKF50QRLjdbYFxrf0jBrEgo6pxio0dJzKH4vh9lAx2zdeHLt6b_OHMJfdrBwjm1B_FH9ySD-uFbZI__OMdtWpYpLr7H3vP03Njt9OQ8TPNbhWxkmDdXBtYjyBzqCbtSfLhVj-4AnYZYGVO33FhzByNpRFUf_fWndBOfuxigLlAaE-DMgXkhF4zWKgF7orT1Do4lADtw1z2Ap-Azaz-UOLzfS4wv_cXuhcdZnjJDOyvMLrkFornxV6vlsEJUC3RQ715bTc5tMGVr-q-K4bn5IVPbG83xkR9X6ODUfMbYFftqnUyEfajM3ttDn8O2vetS_3DjktsrcEXhi8BIl0xlvwZF5DBfjo3aCNDp9_QHhMkVtFlzubFLfZcVwil7FnlzRLZF4-rNXnH4Xp9cJhN7fOtoBoLScPnAAOX_cA46LK4JOtnhyFOWSbRNXl6qD3gU9ZXhPkP29yPrG9KduVbc-yJQWDwGA3_vycaX6I1aq2yfghEnhAqpL6CwpzkQG2VPpuVzSWyknK1h9iX48CG-qsA5eubtUbR0GhvB4zjCGmnpdq2guyRBaUJNURiwURmhhBOrVi_KXh4esrhk8mbgrTGhbt-qC3MGagrmAFmqbK2lzYFohGPtWclnY_wNBaPOw-MAUlhdQwV2eIxNOCJfg7nss6KECOE9St8GK6iAvQFQqRNqRP7h5EEvBrOJ7diKmj4VvyOGMoTfaw5betNCBf0W9LFmwPTyVXxPmNV0D4mZzXrOlVAXSjfaGk2hNPLeyfuNG_PcK0R1_oUzqxxMdGJI2iOUR6Gc8ZnG2iuc9TskOQIrYzkId3M7kLPSB1UIkDqP_2H4-DNy0GMylOWzxHNnJtbTMch40Vdg9hqIM8KUfdMnQFUcyn_hM5GxU4Rexhdwkbk5Cibi_SJK6xjBpdpW-GW_uJl_o8t0M22R_K7xDvLNQMgfUyca6kTMtuHPPz7i-sNov2ao4aZ76kPsczoeiVj47k05lMaeSMBKAOFvDbmDl2YHUxF_Rcjj0wx39lo1XwlQgnIOe8lxAT-DtI2CHTE48jHHVIL1mouvYiL69Md-9hPH5SQrV5OBRSIHfxm7m62j8V7rRpUJgoDhVFjHP8Kcq-6cMlCaRhcxmmqO0vkUe6zULT-ijUe2ivA3PkqHGYBW0QN6a6B45Ig8IDjvGRUqRgV7HqkyuDqmfg_798xiBskVuu7ZK4ThtOZPt_wWGn5OcVTIh8FKfxOHDeDP5l-CNeC2mlXkOnxpfm4Y4yBgQLq6MFBgwfsKUNBaIT99LuSb-_GisFHRm_BbujzydutQwvRfGEZ7EbluyWGUpTCEgoTOzSBFQxxPD3gVFWOGTtsmgWHtZEUwwYBtkezRnN0glysIWiKJ_y6UCYDYhLL0E-9DiIpMiaCV66BjbG7LovNXo8NzkCbFhPVinwjL6YozPXZZ785I6INKJM7Ki5erq2IhaYnmJ5JkiJELeheSoPw_WePoRPf_QcGxeh9mjtMNPZbeCayjuA4LKvUNwDg9JxnqyRWFEm9seQO_Nnibz3LCVf1VzpLnt7Nl_id4z8j7I2mAk3HoMDN2_ay7inJDlGw3wPpJoq79rU7ICXW_MxxfoFMRErKG2kGINmY5TcxD6UwS0LJPiPy6MUd2CvmMUv3sJvZ7RlP3IFKwiWNGn38rV3BFzeIt6faZ6ly68N46qMU66S36wb0xI7ovl0ILbzo72HUkYbyFiCFgRwTKfZLr-GLb17k1cmGheOma1d72yyEdLfSTsKKIQ-4cIsz4upoDdGvSsAgTRFUjtfLeY9atYvug7lldVsOazlB4eP10faSJs90uzr2RfoT3AVOV2SwluLhjl3BHmCuY5n7-a7Rwwe9mW9LW6cZFp-KIFoTlhco2egbAOWtP0Wgvf8AMJ6le1FhPKzOKX5fMwwk5C6BLh-GeFfVPsvZwQSBI6u9D8VxY6jTq17vAjF8XbioWkPeUy_mruHdpxDTUuz6P8TBKSWpJgir8srt2elA90ZXSfWSXQIIKKSc9vCcmCzw3e-GqJExb5losla_MDDY8rB9olC7xGo7KlKkppw_1F2wDdIjOoUcO6wLLKfEFd-pRe1mwk-OtghZzpqAZ7G8_2tbMf0oaXQX_CBvx4nM5gdtW4NxAh57ADL5STgT8CQZodhTzoycdOtw3pxgRNqirKz5Jis-WDxwgrN9qUiVTPp9Z4YVE9P_lB6dpHiKTC8TMnRDbdj4SNANIJi0fgyoUsMDHYTV0QNWAfmoGDwAiP3JDkeEkJY5W8-gmGx8iFFwdr5whK8zpLEv-OW8REBJPlTwE0M6kqJII3Ozy2Vv_YZqlASGdN9ws2JHANUhUgtP2ZN-n4Ma8JV7snjM11QQSeQ-YqYBqMJ1vSRsTGEoqD7QU7aRgFqUKZ6usSegYVL4rhEw8gpNbrydnPFyCSjb3Vi_DIEUhFJVh2hOO_D4Mo1nCUKTOFYW6TBkMs398sDgxZE9Z4OQHk867yIu6o3ooUuWKdshcp5l1QFzmVATe4I8t0xCgVTtEFu0nU3Gg4Nad17N5bDNr4NcKIsMhU3u26gA84_CP67Hj3FPW5M8k4_YEUjsHMELI0xRPQekpdRV9LAmn9HOpIPimxrcTfy_ejzS82iNSzJlnVXfTfDVu8zirViUkuFdgtKtI4P9QcWwcL1sM-zQuaPLEQ-ZZuGkIbGVbXy2K7dGyIiLcdnmwO7-J2esto_kNIb-DiNzBXRI8dR_fSiWc-KQn_3qI2zRbfLu1COXSo8LRNbq6LhgjgP4ztTOvy1ZZnLeIGW9GOWwuwrfSSMi6-yHAMTh4bGAep9xrJNyuyIo54tMe0mQ6ONYmVmG5sSlLwkcvK6Vyp92gfsPhsahSb10X7JdCG6LUl8dKlVAtA5H-O3Zr2Et6vPLX2qSZhmg_MV8qXyYzR5EndX5PNCs1QcyO6MKlNyoPw8EngnL15O5LSjqv2ij-eM9UtLLCU_BaZDsJSI3nqLZ6q6fGgkRN2o7gqUDH6C4kAKmNFN8bMQ88kg3ymL2T9tSGBEl3GWhuRn4zZFrzN4mhgXNssvWok1WOSMrruKynAZPMjVrfIh--SYliYMJ5QbFJKnKOKUPf0J8HCoE5axhqOfAdiEfq9aiufiGdzRo4JzHe60CSLiNu0aUEwX86kCQ_MdBi_142tSdKO12KwDIqAoF1SXvMbm4OSm2ibdqtwdBYJw0qUPbnQLwK_D-l0PIjS0gbOrJQcLKA2K1KcsZZdFJrtquwPso-3wkRC-aR1uR_EDh6BGbRImllVcB8_ozLD3f0djItPzAjSG_KJsC6KHMxaJtXeeK35h01J-LQ3N-dZ9uW3ESOP4vIXsaCaQ14tA9ltWl05zqrUyh9Vn4Ly3A-QWOq3oG1KMRPWZKvs04BO-kkH7WH4El8pXAVvTFh4gxNicWExUttxzoIiyPfojXgwvHktZmJL4eaIoef0XXtP36v1zDM0bHC9yuCqnvIHUQZehwvDZA0RtNfA8S7WY9qzwFkwdK6b7JAz7r_oTRTl7XAQ1w_t3eO1RyUIGMMNk7w1tTJBt-vdENeQ3tBwbTOGbLUlOCPQ9udYhJsSR6XvvrUYZO9C4DqEkUcNmmSbaB_ix_svA0M4zwPfU1Mntv3tq0OT-EObTMGqnY18p2nU0k9NZZF3_r5NNCA6oFwrPxrQRMDEWvgjnlE0ROJ2shzdZhFEK8iQH15Zva2d628xkb87f4Ri3llteo5Ie-8Xs2DiXuZ3U-28E6KE83omIONpBXq_ocEKxFqeNYdMhdVFjqXG8JMU7GGW8iOZGJ9JbyPlVttrIfitFZL3SCxkdU_HSgCuEhOh8jjB42tM8CWqkk8DiW02POW4kMixdFV4XP6wI0UZizJcbikaYdmzv0WF0p-JuIrg2o76Skn-uUEI6z-QXxwk_JewsjTR0xbTafMICZ3vVZojIUsr8CLOdhmWsr439cwMNeYVlgkFcmfUF-rP9zJh8KcYiP07ejmWiOkQgFWKHAI1t5nsTVzCZlHogCdpyMj1vbTErAMD_oOeZGCuB06L3S3eb6Y52P0r5ukdDZwnyU-xjGj7ALlLEXtaaCMtaZEuIuBXZtfpAyNp3nw8KBh7ZvRMLzAnAoEF-L-pXTOVOfHSrWHEdbCUjn3JqUIZvCh7hHk1mK-duDtdsH31SJucXD12AwNmVqEClEoOHgECm5Z4O1cMJ6OhHVCff_JPe3vt5zTa7BglxnXpuF9jNj96fyAnzQKlsfhR6EWhb6u_RvC-Ft-146EA0zNVRx4Gv2-vZuV-N33U2CET_PuY5K1-mJ-99DU-I5XNo7Tw044ly09rLYSp_aeEX_od87gjJeS6gTu9hc2yYHpBa4iwlIYxoFDdHRpiKi5YiV-xcjLkqFNPnjZnMzPqIQMtWYjNMRfIr0Dejv5u-bTFoNwYt_4s9atHlt5MiVNRl3hysftGRQKgtJu5NYBThuub4rlDvNL4sygfm3y3v0q7gdyBVw-L1SwamDjZYJE7dc67tPPDBNIPx6WxeIOUH3liWAg-o7hkT3LtApKmH2PibpdIHY8rpzGzIeBDs0vGJt63rdMXu60bnimjopWRUti-hQhRuJC0vPufrG7AMpYf_pKJwzAxGbp_i8An6XRlmjVcLW7SgTPO7jUda8GYtHPbrTJWiQRvFzFnl-PnQ4ZOxrp_eRnc23ELsIAG2sAeAU9pfZP9EUsRC3ijMlo27rpbjbg42UuSvSpfrPsWJbc6C7z329E_-2VRU5eLfgOz_LpG4_eyaPIxYzPGi5Y5-OVvXVGAhqa-P56ry_3iQ469zWPy7DDP6855c7SgcTAnvmD6JKHOoNsfJXlggcg83vnt3j_moSMjNlbgmYwFkvIqXEYW1obV4GIHeV7YJCrzi6kh7RzIqApm8-rtdrkjB7UP5g8n46zz-MLvqgRz2BeYQMHx4lklG3KuVAKGedUlPGlmu954fQ2kGeURGJ4p9r2ec8vC0TxsOs9nZGoAnESaVKr2SP5FGBsqkJRlLTw7z9UR3FZVaWv1OUHY6XgNedpqUwkupSN26vGq3s1HPv0CCG_XTW615eRgFw4od8xB-fAmTmf8-uz8Wqq-QJF9J0QY-3UjWfZKENxlX13DbAqsW3fcTV95q83cm_LLGiRw2Ry_uZ2X_kgPud07Tc2YuFaRmz2LLzMU5bYqwjhhlLyg9Eo2IvmPuaDmk5BSTQKS2JhrcTkN2hkzhTtjeV5lhrroRrOO4G34lhhWf_DKSBBlfQo04bIdp_80dTnk5jTOuj8OPxd1qtSWsFnYhXmYzkv48_hwjvhkUM93dSrpjwQKc5x5YjKqY5ppGvk_WBFAlizUJl3474nBq55fq12QE828V2hvUoWyOZrYO0qa-WIVIeGa5dfcLXn1wxib-WTGTNoXaNZglD-0Yt3h0mSIBXG3EeSWmmk1NP2tXL1LHrnSZUxNpjokrnep2jl5O5IhGnC9VTDkoeR_1ticexDxMXzhdwYs8HRwL7bB8j200Z3Xk8QMMnU1KwmWuOMB459ppfF-RCZu3yo68wGvsKI9r7BQ5f-r2cF3VhhyAiWji-f8JPpwPzJs9Fv4Ne40UBUoYCcGipYd35YTh7yUArNLD2MY-hf6LpBZaY5O7OavsKOjY-TAc0aL4dDNVxezPTVDEz2o_ZI_0SgwUlaTgM0aMb8Rdo5CQ7TrW6bZzxJ72GPEG3BEkU00Gg3p8XxLv8vxLOghu4uc77iqpk_wEvUsieEEejqZgVBPJorD83te4QVdoMoIQKL3JRlLhs9AjOlibHUKDMMEGOf5YCgN43r_vNz4ouRVrlK15luTrck_vXUtda4QWUtzE92efEPKQvhAxkEVMlvjddPOS6ne25BOy8dftRMNGDYJ4y0XArdntUMVRmEWH0OaLMvhIk6eVHwGwmMlvFRKtMfuDnta1DmOJDbs17C0VGhT1nZ-1BjxWhvppq755k1DEzSQox9xuoB-eblITjH8cWlMfsK4_D7Cnfgj2Y5rTYEb6C7Hf5qhUnbNQjkyuAjeocfbk-H27LD2dLofysfoUCp9ebozcNCcK7Sfjo4aj5u6Bi6ts_DTf6sTSYKZtOFgh9pAiJQUwBestKztxdgHbstXtqllxxVK1sfWNS7f6gIiOTZf03hQaWLweXnaPn7J_4hU5ZFcY2V6dHUDuWbwr5P3m60pxswOD5F3PaIYhu5GbWErJTg6Gpoi2mgi5NVJ69MaU2mfilDMOHbvt8hDKF25YckIPOD-ZdZBoJ9WoTpyb2U7jeR9sxI02CNtRlXcJqvBGrVnyxkHPl_GenSPVTGCY8oOmRkOXe1jdqVILG9PY7OQ0cznFodn7X8x5DXcwCZWM7op96nnvO491m9ESjCsOcavDsFLRD0tDBnXaY6VdKS_e5YYwRH7S3RwemNplA4Bj6IfVrY-NWwVIrCQQXcFISaE2lfmCO5sSWvmM29nXYayBkJnreAx6sTqQ8oYbLJhdqaNBMw_pefhB1XulywFThedIQe2GCfH237LByHwPnnDBEA9s15s--hmMTkWPyAP7J2x-YTEDAdXSFWO47dtzKk7pW6BW--0I8VJ-T2iNul2ng10M26hIWPa6s5HHM7Uf8JzuwxKOAq3yCm-_BqgvPmGNEBuRtspMHmr3JKuHGB8p9eoq4JnXPXDd4CopnhWVnnA4_uxi1myo3JD54a8ZDbKiU7_8Ru_aQptY_8se5Is8ZLegqQm_hR_PDhSwSt7qQHoh29JtkC8H9K8pTAzHfoJZL7k6cJBYJwsnxqKvSWh2DRg_dCPQM4_HeusGK7I1_HpYUSXSu3kXmppyFfUUEPZL1Qamzp4K0PuPa3hJYYjCnOf3o7YUncfL1MJCqlPh-atRZSyMzZSyuBIoaV5789MV8Oh2Z4FZrMs2XDoA4PKcSGfCt1LPEOnXFjPVbnlycFXZL5lZ6ehGk-ldYOmTdsVfUNlWPvq19mc77asw6Dg2vc_gx9g99vcYKfzSmT_ZDURHQMRWIhRNvIlG1OI1H6po-cefDek_QNLNvBJWVNq70h7ljyYL_3bCS8T-OK0zF4TUeYZRhFDuNrskC99pTAuKCR6ShZdK0wEJz_Ls9UhynLYYhZFjvBwjIuTMBhUeVINdqTa5-JbvxpFVVaUOcRssovUA76Em9lOpH7mJLzqgvvaN2ScrC81_qh9WXeNQHaPYga5-EHSFIITMDGkNBIJJ5STxvxnFjKum-vlHkHbq-cwKcFuF-uN0QdjzJfn8zetDuB3SB_LQAX14I16f03-oec8faOPdL5dxZatKceN0CwZGAzf0pzacXq57Ac2i2D5xOnJUHeXJwjxpysfjKmUQLGxfVACFs3lAuTEXmkuEerzLORY-qTYP2HguObweMLuO_Cf9rnZ056BW7f6guZ1lDpoIdTYKW53RP60vftVfsIpeaww5C4af0g32w-ex-9BNFDM5XnnLsHCk9fkrstcFfcksDaT5X5prPA9vVfAmey6p58k311X2RSkiMt6h3kACxEQ4X0PfIS65qolJjjAvT-pPnW45xkRQw7PpSLqkKY7ZCoktDxE5DO3RO2oJV6BDTS4rOs2UHFM734uhtze6jKfM1NMCR3e5-9vxNEiegmJVyZkrqOCjUlB5rmux5oPf8de0E1bLH-zysXgk3NLXmGpTtekqGLativ0VN1dNQXHtFniBKRW5TcSe7DtY3ymGou3hUS4afxkdqFZ3Y3MmGOF1f3zIULD4oK515OhkLeUmOeYhzJvCgRekAP6fSCLCOeCs3SvAvC-XJ5NA3VAOSImPjA4RbI_BxjtUwRZRUoguNfBbZK9oYkNhzW4s3sRNx_jEdj96yw8HHwUQcaSDGy_TljbMZ-F4ZK4GLonTH6mZwG_GQk9H4Ur3PFPRRnwgJmS6eBWQOex0Rl4LcBwH3q74pAj5l67VxtLb--lujE5c_wDF55SdYimxM5mWyEJGE9TLkb6Fso44eAMmSieGkH5-gAAzgXZsguy1GbaU6s2HtD6BvS-GD4S_j6BDHB7u1X8_8OXI45R1HPdO-0rDfxHo8w4fy6HUJbrnKL1RVjUPAD8FK5aEGRboFmIObEzxQY_ZkIkjMMEWrW5zdkH0VKzrhhBXD3nbjQlUTFA_C8zG53zIYvXaBZ7djrBP8hoGybBmKB75go6OGcqIGxTNWntTJI6HRelupus3xsTcq-PWZIfwdaZhwxCZToG6AtiPJK0AmMyTqR3UtW4ZQOJ9ZZqm7ouW7pbE7-H9G8VRlXRgHkbgvVQSK3SMfqzzF81JK-G7rmymTyfIkZV2JgGZALELKoCSXjOuet77c6PjDFWER0EU2xkvRBbA08Ty3dc2nUK4cMd6VCYqeBAfS91kDJlrYVS0q4IKCzJfNtSJmNimrfbwSSHxTiTpBwQ3RRrrvzkbjguf7uA_h2EmeDF0bVQDz9tsZMMYEP-Qs4BSuykTEGA1fZSOwE47mlYSFBY-h_nnb_x5VCPP5tUNv5cygNmwAHNYZhUWcgOXi2G8JD_F-hx0YzBzBemTs22V_gQbfVgl2C4ixa6CTbAcaZFvDGQnQf_PnzZExj16CeLvjBLjAtQ9wYF44Ys9QRw_ckulx6hsiYB9aZfjD6w4TTJhT2UjmIb4ga4wEjFK-Kiow7GP5OjG2eaGlUDq5JPUt4r-gxD28jJbfstzeQb3vX5OB-wO2HcWXVz4VxDKvXS-c3_Bw9g8UXrkVQGb_HnMRZTGylLoxFQ8rxjTSP5BJlVjRu-CYD0Lp_bZhSHFYcA0fTDP50_c7cuTyowy53gvVRCNTBmi7q70UtVxrokSgV0b-lp7PtUoksvY-j58-pv2UeeCA888R7oyH0UV-uSCnTxJ4wcbszSuXZhT1CQJWolKfJ9kKIToR7a0OYdy569R6rBLgqlsU2R1dQGfPlAOjPmldzKhott1f6pBW2k0oQh0b_Dnixs1iaSJNiMSbmK3SSrz00j7Pyb-wQGuNmtSlsnBbjiTCVyIP04kiPmt3CSeeg37uvgLfC5kubUX9IGlhs_HCCu_RxOSewpP0_qHJwpUhGYLVG-vBK8UnqFSUm5YOBueLHvDZCeIfiHianmZ8W20LDJGjx9eZF31zBHerEgNvDMgdE3V9nkhKOBxgH5KdrlZqtFARs52j2yU6FGREZYzLuSPqClmcLHm33OHF904LqCxJ10HgKk0x2XM_pNwZ3gYXQtdpZKXN52u-zATpqHcsJyTL4t-yrlxSNrywBS6hOliooXHP5QAwfJ8bgxJpGzG88brLoiGEsOSvv0Q5T1VunLRvagLC9Bh2TAO6ZVV_J4QrBkciEQ50oolA4HHCbsJUQT6-QLvrLT0AtoiY9O1WDP-MsJ7IDa1nHlQLTpW6Jx7WzbX36h68iXwXz8hW-ERCUttg9nKOvbW83Nvc7SD3aHKs1qJRa2yq3WPTXLQhnU3mh1l6cjhnwDvfEtC5WoiYWJMvk9WczytBalV350avA3z_cKXqxIlBNP1rIcwitcv1JGz2P8g-kTPsigOaSwpwjAUfenkl16796FGGVg4XfG4wCEcWMVixnojAF_oP47Ekb3fQyGDlzYaTcMrwyZncNnh72dp_l7w4hSfpWN3W34Je81q5oSsV1AswYkf9qBCv-g5ojBz2mT4XCxcrS_7qCmrlUCD7qFXIW635ISNgfuw_7Qna0e6W3QjhOQDgCqDZTwlAP3TjXgTDvKkZmT6xDifOL_K6ub-cQ7KCgRNJEksKy9lqvwrWVXEUBbKJH7AvvChT3xmRyQFzjTbwefpmxosoOw5Aic38w3OUn1Wn9AY_pQZsYJJhZJPX7RUBod9o_R2ZfQ6nqiku5N_kf4sfrOFIPvtv_GYA55Go6LWqjsfDN1LkxV6DLYsdj5_4l84LLX6fjr0nWxo28ZpAdq_9bhb8U6Nol5XzoEq-e1LA5zJq1AafBwYzRAAkgnd9Qfdt2X_dyPi11euBfkFlRu5xPHIFkvJAiaUyrJUK3o2J93IQiYZbGo-0CA8J8w3_RKAS0nNUbumLsr2fnMotYO9wjQkg9ovDYyT-NC45R5lZ2tnxmt_bsbPWtPg4kfVSDEwhe9gjVGVTc9JP9ude1oEwCo0S7untJDttOdQLii7kjF6FdZ99uOG9b7HcUv5odfLlisGbhazCTHG_VUYxQbRzjENB_QMPMncO5Q1PgI8adnDRHyjgRj41nMtY6zWIqHFJpQLi0S2muCKDjOvYBKDrVUEp1VMwZqb3Y9TwWsu35NOHGLJAClqNI6ub_U9YnKbZRTSGWrMoDTA5_qrKCggxixo4mooIrq6NNseLFwwnro6Jc-aQBnd1_qiclY8ZS2U5Oyo0wu1AZAaShwVF8ARIXTg95QaMU8dQzWCQZJvCwEauLMmYmo2w6gdkX6ZM0HKnox4s9ylWLb4O9Fd2GPYCOH2Zy7Y6Av0hl0MeOe5m6Wwj4sGggaU4pyA16UabUK3eFUOmE4UBBoXPQKwNB_3GA-MobeJykcMxet6lfMEVM-v61oW-s5xqvRW6w47vprPD0BsESrUeuS2SKB0O1tn-gVxHNK4kr4S79XRDhfeL5VF6QiYW49EBAByDWmf2zJ78JKyT3075OOhfnVac0xydOAnhXbO9MuCC_j5lI9fib9uVmH3UQ_6rQ1RoeUcLGwA-5cXgMCTnWY9rGsdjoyvjApqanNMIIM5PQ3P7mutrYU99Fy6vorFB3noFgg9XNdYIYogKPcyYiQq9EJ6B5EgA_SoDj7UOuv5E8hmYTHSc_tUpKXQNR1XEdaV5AFxIhF55-zZNb_Fmf1HaGmgfo2gtgMTGzS7NMn0R-OFztj3vBgcljauYwyOgWvb596K9elv5MUxPpo5FgiWMCd-BETC_Jct5hqEq_PF82vmfjdxY3J3A9Ha3JrbLdUpkZ0EI8Q2TYVXG69GUhnreW7bMxYbgPRlj3GIeFduFzbFU0Rg8-kOggzA4wexdCqGnlshaDNXi0txTQWmSYHLbTECsSeyiv1EpFZ7CXZyyCwmu6GiHGA-_FfhZqIJhN_xVZOCgd4I_WAy7amzfl26ByW057nNP8a79JjlmOqewa40dJSf8Q3SsFM0xgfkYDQo4psT3k8qwKXh6lLwFFnLBuZdYq5rhWQ1Acu6aK3hOMzAFBQ5TK8HJMrtwJMWb_0BZSNZV-4t6zZ8P31BrSgX-DZc-ELMdsxIMxvxh5VRpzTUWVKdqvgVL4HYbDF-zhEm0OBbu1xitIVbXrHQotxZOqNTWxyFmwZhnwLM-buw2OXwa50tASgGbnmXOLE3VTxjdnWkClPBOdERVssclTbAyFkqBfB6W_qq6imHjs0dHygW8Rt2jfuulIMF46OqWlZQGpGYSMHF_9HTYyvqnB1tXDJK69XpJtX3EnmRICoTiV9ZyS7THeful5nccStyMXtgrG602pFXpLtKb8avUPIrrquqyubtQM41Oxq30TUhRKV2A5TlrrMT9zyIkDJ-VLu5eOkYR-Otvy0DYAel_ciHm9gJY2V7CkiYjy1zgDkmjmluk1FppVSZVjFIwUtvv5EZC8U8450IJq3mTzjnovnWQMYlwa09P22OfKXxg7zx5nrrIQs3hgyTNuXSQ2O1eTC0NHYv5QJAx1y53fy0bdfhcjcOvURqzbefh-OM3I_WpwqY0dSeuCivyQbaLNE-ddlGZ6b3KEzDQ8z4kj62d3hA8q9ZYYKTmnbVC0itE-TehIidqlSPWqKu2fR3kD1Klqca2CEnSGqoTECnOGu_pTfq7NBIQjbmdsSInyU5c-LrQ-XsqGlJuRCMvA4SPYAhq3UQroGifQyYCaVCu1HHwPPWfY4UTkraSYC3tuFkt2M9UJ_Icx1N2VcB4gvioKI8zhAZFX9CXORRtCeHyRy6VthG03kD6Xyzdf75l3sdha4P6X4Kwb4rtcwRl2g-lyhgqAkvn_QVLD71e3C6fBU6byNWhEczeHMf68yfAcQWtuENz1-AxwrnqYWtj3LVL_rini_vTap6sRomqvfsvIm45YPzCkqkcfNfxKZbICHciHFG0PKDvRxaqVchuLrDTkVTg1NWnmsKGf0iXw5WJvWY-YMBcK3y9uKebF-7PdMAwu_seFWgkcUdt9xVGYhnf08GxIt6ZQ4ErnLZ-y_E96auun2Q1dglRI1smnEutYyh95tvEyTuacBUAy7zOTwa5QmrhLvZ6HS2lYye9rLH05TFUELEs4YGld1wl2RcIBr3T6p56VuB3J_TZYRnvwiqGr6kY-jR9gUBhpPUXArK-icjj6Pl34uN5AwYYOn8VdnwwYLap9ee8OAp38Y-dIpSjw-2tW9QiUCArQXnQXwxe4xIGxLWdrMCYKKQ-pKbDAphT22_T_0CUyOygt2-DRPGB6MimgO-JyOE5aQeIrH42zSKBYYrBMqgpIVZ6aaIOoP4pSySvKfldxA0T5g8R-ttPjy-kj_uON0LuS4npsUB1ch_5NVJtaLMERAvcGvsPB2ZV1xmMXSaRpFU-4UOqHjFcPUeHCTEFTVfQ58KIi6Bzcagpvi_ZP99eukXXy7zQ_jurdyzt1gEML668lR2Y8CDSnT8qT5BVawy3dElZKxVhbYqUiMLT_qisU6zgjjWffabWd0Gz4uZ4_wHLxMpTxLqZuol6Uv0jDjNdg67NV4Ipi6X66FJLFqRxgp4wTWzga8Y7xiCgzBJGWwVfMjHu3hMeKcrPoEpWxajyU8j5o81Qs5Mi4BkdMC7dkpuPuczgjwbrrMhzP_fUf0PVJfl7A6TTwZVLBfBaKIa4xTVmYcteb6zEgMwZSyVeFXkPK2Y1Gm2OXMv5d3fG1QwWqq_tBtdE52ESz0QmkmuqyIsXk9tZZZzfFrYFyzKkxPhtEgTSuo2PrtfGDQFXTaKEW4ZniCwNHm5wXrtij-hM0NpCzMTBzBLXkiDf0R6TtTQO-UBiGM7cPVrooYuITemqWgRNDIb5ECMayZEVN6xOR6MBWbnoydYjVwG9aGp1qVsjt46W1Ofn3JGah6JL76j0kiQCXrOUpSWS1FOc0keuou_G6pBMtPZPiaqWZnYw6v2n9hdICx4suHJaL_ljubR_FAhsw0WJD0r75oNyJvTsa1HhNSU1EjzaMWgpHXyI5gzAqJtMmxKiy0STAl659xayQaGqkzVlrh_V2Z8RpawTJ_15C8syqYQs3tEy_DooafNPLoZ6GtZG89Kd2o6JHrot2JcEnnuOWCg2HIS6pSucqvpLJXWgWf23SsCmCt-RwvN8RsCozFNnJcYjKB5y134asBsJguBn7ZMe8zZJwTwV9ieZs_gbQPkBZZiBwil7OKoVqtIogVNa0hrBdO_7F8TlzEmGQdwPoXNmWvNSrDlvObamW2za0_mxvaNx5xSmr1vO_gRyYqX37Qy2fc7LWnqOAWlYZZ3HzW4o-BpTdRWJ4D99-_ym7FsurIYhvf6ypxOWfHQBryUaH5jVYw-HwZK73SCyBx9WqUUB7QT0icdziHWxsq4hN9xVUSwbZ6DFRKlZd3fKiWBIcwW0z6wTI11JsPAnqYAmntfJHHjb3tDoyskLwg8lYv7dER6IAtAxyf0uiLLlRnRD2soxYPuc2Q0d65cL_yXCrY582Cv_tY692q5mp1bWOFBVUwd8UswOLZHNnBsxp4piFOTb0TMwqjGircV4KuZuO-O2esqWL62SLKouHYUkOq104uudyOifQI4z4WJggBYA00x3HreQZHPGUgz786kt12nRsEmC_eKfXq5ZBu9gDkppMzG3UGCNJpMFeWylgauU6wGJuMxufeLT49SL3ZJakjeyNJTt8CoLNunsAa7dCqCjmSQDdDgGGxnjXa5DDZyeIdrQiBaWHtMvyALXwYHNQ1JXDm2gj4C2VQF9UOomZewPyQxE1cOOKOx95HowqC1KnJUVhO0NoWSuCUgOJaCZTsof2aw7U8k9ATxukOUuIG7kt-FbG2kMAUhAONSaJXvuKkwfb5regWr0EJv2Yz14BN2gWTy5bCOTC0qtCi6PxjOk3LrMGAlm_Wal_xylD1JI9___JG4gGYar7DZqAndA4DljGME_9OjP5nnDg-wePJ8efqd-gwuVehuELMEIJCv_2jQrnqnRCslUgrU2HG-jOM5-AjnH9eybuuEyZoI9FHxeqAxHqo2mjnxP5jARNdMZpU_T9E3BR_p7PaP6S2UDR5v6ON6cYtfiWPl5XI1ZaJzd1tLo9-iaPuns2mrSNZrOfwA8CnkwOT1QEOhWcEXxE13MGkmVgY1aNbPaeF5CuSKhHkJijoLeUU2GZ3HFiLQBjj6NMol2SQPR5wQv0cjGZnBjzomSdeoXW9Sk2iCIIGND2qkzACg11f8TZN2w-uV_XuFTiAYzGNTPAlu3aU-_CMarAdqSjg-7KzTQlB-UwyDhO2FQqSG7J5GFNACqcTTif8kQKQvt6B5WrSqO8sIX50We-MaQh-dBYVDqc5aerKFySro9UIkIebAF5gC4mT_El6GTbQ3fX3vm_1jXQK1qm-Mo9usOeLRo2UY_SYimZoe4e5F2goxwWgO869-4eIN0qzaxbyhHwcBSt5udib9djFBh3bV-HSfKzMIKNwKGAM9ipu8V_Yf9bE6Gn0UR8cSKEqnC7JneP6HK25fhlcF8Q_w6_AocCLm7nAoWx5tD3NmP3zs6n2eGU3pe17dsst1lhbn3XEvndUEqzdKP5m6MLWmlZZVFPSY4ukN-yjw4EsE7V6nzhxdZhe4nH96bAGDLk69FRusemu64-oGKvkGJ5Spdf6dcCPTP_ddNTIvbBJzCcQg6628ykgURz1E5-pprI4-Gm8wKLFTO04YEQmW4Um29q-xl_SNqqM8xJwarvOvbhSbM1yCiNR7V9yvGsUi4Ph9FhLwbIB_Rptaer6IG96pAty2CYdML19PflgOy5mKQsA2aBwSqcD-GgwtQcCqWsFQJqm_DkpXkRdTaGvTiHokUCRSiWvAFsJvLCrxUnR7tWpBvFHuqA2GaD3xDFrt0ZyatnOFGAsEneI0F796ZqUI2ZmqBq-9gJotk1KquzlFxkg-ldB8MkG1KUfKChhMHit04LVMenfYTfT7O2eGkYqRbAGPuKo1FgJYLvlH4V1CkfZbTO9WdJiETbxxfOVWLlzOwiJKVFzSE7LmUM-5PrSX1YkUeZlZBFxHUfNuNtRldQahas3u1z3d7zhlxLNt6SOAuIB0f535ypT7iVR7xzzKsLUUI7W0zCAm8WvUwFlmwN0JYm6zBPALxzw-lC-1qA9Ximsc_zLvwEMBK0xkJgmEwr38vJo1ELniCQwo9QJ2ITmIx3Fk7ioMF8CaFG_QTytIBiaxBhfjX2dmBKTO1t4C3kAJnxvBOwgQ6JJ2vJTQir3XTNGeaJ6zNZ76LLL5L1FsHZ7fyuTtmFvwQXeLjYnw-ydOy9Fasa7lDWHzPNDOltRT54WIx7Hk-ygHR_O6E5PSsgSqTHNSiP0R2dQsgIuM4LF5FOWl0NBgKlIro3MHB9neS__DHBX1dUFDHEg-HZjcT6UlhIG42cLhHvYGdiEhagcRgkGy660R7SFqSVRu1vJDCPvnxGqZmVXLvzEDGAK6fQQfCylJXeNvHU8kaVMlUWYgw0XHb94OEtVDPK_ypPl4bpo7VjeK6UQL6p-Gqxy1d-ybymmvh98mtGiClgjVibZYUYndfa_iLwQ0KPLBJBXj1wbAQAH9OnUPoXB3JZBa3IC75XsINGNB-Oyd7_Kg-fU9UYpmE42oHLrry4jUZ1ssFlbDFUyAyOeRmElRuo30WxOKp_c0L1qsNcg3ifNeibgWXqZ1tabD0rLsoGxH9cnKsWCKZdMXv-DWKQiFAoSbWzoAk8HmGWaCGZB-e3juIGiJ_9Ql4XpeC-2Edyq9IUPHmTsEfC22zHrSFfFZylpB8x7La6Zasj2_o-2Vr4eZC5FDiQ56DkUj-gaNCrb--vhSS5bLU10giayT7UlIMf7k5U-emhZnqjMOkzBm0c5mmEG_ae2mZt5hTasxaOqEXKXImLmJ1RrMYsurMqkprj5_IcKBIIHB2RuW_GOkZnXj6O2ttqvPoGexOOnBA9SVE7M3CNfsMk07ATlJrpT0C1i2NRsoAt0I9jJ0kZ5wftP2uvNT2dGAlDSXRG6dsviZgqbOrumOv2uOUhMT0Gq9B3x0YFPkRYpyLmCM-1AQQZ0-S3enh3TFsfRmU468X5hqre7lpJqT86X8NnRQnUIYyCiCeBke5_AlF0iTKvUBcmgcxER1uiKYT2Dg0UHy1Jf_bQD51w6ksQunb4N2vBufAC8gMCWgp_BZjdQN7r0siT2pxorhb4q14bGI_1Nty8uZTzkTqYteBxnH5qXJ-NjdIPhcQe-yKVUrgPs-LOBUkKJA9IOY8DVWIek7CwVNXhSknxla2ZVOnXdvtcbdu-Y8SnWpnEgzSMrg6_TxMZTr6RZFmTGJKWOSG1MV3zQdNnxMdMDoTMqyOMTQZhNuXgll8zVeO07ppdqNePmqjHgXYyIP4rnjAjJtlSoaPrsZzvTmmMeMfi4Nu3m4EEa4P4QVX8-NreTQrMZKNU1-6KhG0JVbIJbia7gdq-xMlNazmn6cwW6yCRDSyIwAyrmrJO-B4AG6st7T5GpIo5YvK6EgN0FGTq1QEJocF3aPCVg4FATrZhfhmvLjl5d0SbMJCyhlMt5ilV6nXWegxKYy3DaXjilBckdsXNpasA0796pe5XeByJ8viy0bxHp8xzv8J4gIawQSLTKXRWIbrkzUvjefQqI9jZKavu1y5-iYl_RGi5AXraX6ALt_kbq_tfdKNFdJSvK3z04NDD9E5HPwceKYCwTcWiyS2qvWx7B5E0z9dq_ZxnGWwktBZK0tEOkztiDRpDj-yhzPOGZnNMbzFzHKByIZelScuQ6cBAThmZVlgwoWDaYm9KiUl0uxi4BM5-A7FiWemYwkTuF2KxwBTyNI5b6tgY6g3xYZNJJdqPjSGYDsFNIufqiMYKjflWAmkDIdh52YVf7fbWgMuHoaJ55pr-4B4Bm6rIaBBmRG-t2s7pKeWOjZrgh0gW01Kc6mQAKMwrj3dCL_98i0xNWqYSWPOMfc2hXNs0vfX7XqFMrvhyY4v1X2tZb6NcOjkFmQ_z_Sgw4wyAiAw52itBrCn46bOQKtRPPNEXoduq3p7claY1qv0XduDQnuWjbboNuaStZzQcsrF2dL3JfO6Dt3XBfeej2wcQnLnz_ahVlz5QrSP6PWRQ5pLvkt3_b820LxWIR1EPlsg3YtslVx761G4AJkzaO8DDKDEi2K-sxZGWVEFaYE9-WO_CYrvv5UZUVIAepAad2julrQcD5OUCaCa7WDH5qN8i-Bma6OPKPLKuNIS-vV5YNU2RBBV_k4Nv84vDU1tukJJeTL2J5yIopNkR477wCSXq9E6lKfYjY0K8MO6JF9ArM2yuaIzyxse9JH3JPAC0nm9tMqAwd5hYHJbqZOT_Bc8gATNl3DI39PFqdXQxHtqw_Wltn0DyHznOm2dJx1uE0OK7uDKxExIVXJWLwcPBx2G6gQp0Ylg5uGtxIkzISYqhieS6pgjONFyfXAYlWQkcEGKa18qq1nSWo1Z1ppFFbRsXaEEKwzTMQjiAfyJDv9XlZptpTBpDpCQoOqvN7DY5dfBrwb8na0Ky0AF0esGoQ9WAx3IsdEGDlzDmX_E_fjgXkwfnar482E07CppioqdB8l85MadLlxnhh66Vurz7WqBuZabZTqu_3WfPuTfeEDYLBA3IYZPL0-YkwJwzZHX2DnWkAYKKv3u35NjjZC33YKVPUf8dLvlknlN6hwEIi8LFiru1fNWzlZG25WdHfobeX002F-UyZcJMsbMltzH8suxfOXjGJYHLvrkYcuA_Z5K3V4hnmP_8KLRMRUWzmwyXGktaADco85veT2E9D9Jr-MdqyzkEEVPIpQaRcb-bZQpZwXIF_KUOfu2IOpfW0QsFWfhF_MVbcqogmWaSboioZhuswjHmfrnQUg-egTlYWl7bC3FakvBG_XaAY4O2aEkv2Tcs3Aq4rorWW8KwUBjU6jTNbkASVPIP5nh8aN9OFHpaUgcXUr4eqtKUHlqp16NPARam7T-LgrwmbUVG-GBkreAYG7UKGAukYcFSMacs6h5wx541M-bgne_2OLU21WaL9L8ZRjrMHg-OrERH_eiJ5RVuohD5pljDUBqOho44LHLR2j8762vwuqJ9pG7xufGkuFMp6HPAYO5xdGPIynooSC7CZCd-i1wAL_F8O0jGshRm_fn5xBQ6zZ4gZOF71ejfjY3Wkzhk5oHy48tJYp6-spHAs6xjZyu2iDkE-9o2u1V8TfMs4IPknDoJPJBhx2IyMNFbRRp3VfkMfDGVD79rVfjyvAZk1Vs57IjIfglyZhJNl3dpGSxhs-BUN61l9G1y9U9N80w__ztYVciXQ2A1cS8p1Y4FGO7eIchlgR5TM3MHaddHInqN9S6XeOi8OXNBQ1JG3XC9kl5EhJXkEGTSzu1_R_DFN88UNegWTayyAOcJLs-8FdKCR1y5CtYuRU191LY5A3CvK7STH8us-QKaP9H1OxZNnsZy-l_F1p51Bafcdyau1Xa7ybzVEXnsJMYaRvIw90jVSzHODmCX6he2rZKtjKvzc_d8qX8IGYD_PA6lXgtJarv3vJks4NECAxl9jxAfIh6LiKmXptufggu1vtDee-TR8EJuA33Is0EHYhky7CHv_VXyfQS--bB_zaJBW5DyPvoypwIpHxGsUYs1VqdiAIU9Nzfcdf_30uuAwbfB_KieFGDaEBcsFFWYtD8TGLtC1eQCw193YLQObCL0Tsbsg5hFNtJiZEUxenRE0ytMo-yh5mXyjnPm3uaZp557Ggb-raePIBlM2T0-qoQTFRGfKq1WAi8-Bm6eFJOzX3I7IMqUaaFf4Tjffs7cH9XnlWn0wSokpYxUWnT23nG5yOPyiybLN_y2e2PgviOEqpuA0bWs4naOM8Fb3uppYv6rOEd3PHJZusnFAzNvXmxxIdwUgdSjuVvfrRpZ0Kb-8J9s6tM2Wd34ejGNNfOhHDDFBjZWtHeLps9puwd1BAnpXkrUlKh2_pVnRO2yxDJtbOdWMaypZHHfrJZMrTbCFyEx7-l-yq-xcQFKDDXyPdwE5foYG57DFaOLfeAi0yip7BpIHkQYR9BJS85Os6i_e3U7hPFgdRZSe5oJ8UobBsb58iNR9UhTVTcz5DcBaXOVMTTMY90wzTd7VbDjjWTzrtgw_1iwD-v9NzJoXcPvx8b8-0Z5aHSmdcFK0mYc7-hu4uy_TPbtmYkzcpGKBV9Oi8L0Z4Le7R4XGPdjgwe6uHXIJycUV-WPgJ5VHcRbqQ0KphSW0WjpC8SiLF93-dwo3Vqh4WYeRh0WoATkTT086Gv40OmRF8SpGjsplIV3yYAeIFiv2rU-QfmJ0L2-jx8mjloyfRwVtOe-VZttQvw-MMh0GHg581UDpVlV2GDjgbWv4gJrh0uE71xcKBi6u-IBg2s2-xP43zXfCP7XigT9nJ06hucj_SXlVzf9apKXs6RO7hGupSuXJ3rObMF1oMTXpBNhcPe79iuTqZSI40Y_KcDrIpcUrK1ifdy-xDJXVzbe3rPwMSWU6k89nKs4MeG62Dsip6dBRPe8PLfWDGI6u3OyqzTPgDPttTdkR0XwEFGjy8pSZa9TgvqXRib2nClpOf3LtqoJqBRTl3wjbLuok0g5SWRdQw_v_jQBII1SsQCqNaub5M-BPLRyc5J-2P8jV4qszh5LB66o8aFAZ6mtEf74c-S9fpJNK2eFcfaCkHpSSDTEpG03iPjxtt1c82eKD1yqRNrae5_tMlVJ8ATJUIzCVz2omutbasuudE-jh22LkKY0RRNMXZn4rMLeSMWERPNtVFV0It7om3pCxpgplRdCoun4JBuIlG-jWJd_RhV_gihTk1iEm8xP1Gtj_Xn8qgLkWma49XCtHemGXuDlAgOJlnGjVVv2JyCP8qE_piV6Eiw7ISjfcCIWbAC13Wi39987Fsb6UoGOnWoVCK27k1AmUTr0l7WUZMW_01Q6wLOWiNqc7tc79_vhLZ7-uUBs7TswMOAFbs9Lz_Sddfhlt8o_ZNi0_Jp_BVcHme2Uf2bJlw7Ttu1x89Ldu78pQ9M6Ea7tEKsjnT0bDSsKcYISIGCAAwJpLZoshHlaGVXP-gDPLIMA9suEOFlzOmbco1zmgK9zwjzgkKrfol0IyJTGiXcIak10N_OJMUpYOoNPBG6k6tvUmoaD217ZdPh7F33iVpFLUA-hyefm0fZexG32NTu7BRKhEie79y6EUnEP3B317AyvbOZVHB6gULBU_kZTG8Xc9rYQK86WtGH_0g5WNgnr3iqM-aWKiailNnIiWJ--osea9koa2nM4jAU-I8Uq1eHicw9FR0EFqfZcMar-ZHQGmTcnsJIusQNTN9rBqCgI71u98qJHAqo3-sEK9yN_NDyEscO3_W91_j4PCbk4Ez5F7KwJfuIkd_ddFV1Cfc3OOUARYHZiRvD1NVvt6-dxtw6LQbwPHs4-oLWP-YN9dhMXQT8EOs5MZ7Mlnil02kbghVm2gHFVsBfT_0OXJNq-AM_ZLgSOhFG4Rw4_6wPpr3ejc1X-nIoogaOGoLP6ERaft-1x7HZe_5qtKkskNMlD_3W1olEUfcJiI-xLmYi5bhgYOQ9EL6r0LqUwl3osQJv7KH3e0fv6HEK3pFCKByhNr_hB6FfgJ90PIT9MQnANwQ1BN56nSPmZKQ8TUMaLThVKtX9zETaOdwOY09a4_pz4cNnKaEin7F_neQZVamrt06tG8PliKc-WdfkYAPiS-4TzSj8snpOogrsjLejeDmo-uuHLlbxA6Ex4wGzCGH1HTm5CV7f_OIkuCH1ztfiDwI1zCNypB6NAT_zybb_g39HgQR9QjuuFi9Sey3ND3SGe9hVvtOsVrjDmAFQzfmtm1oY-CZVxmxbi_vgB-exmcTWQ7OYZRLqS6349f53BtORhPIAMTJgWxXn0cxeMdDlgmGkxNsohz7qnWFVp4H7EMujYt-fMpABRueF7OR6mEqEH1tpmnXfCPP04o-IWLnB8Q7ExiWPdFQcej4IfdmQXFOQIILNDOLsfnblNfJ-0wNoXhBOMc1zWQuWUsgPjhEXXgVUnb6krb0xJHrLixhEkOi7vulR3J7sOH_yBXw6jXBcSjbEu3YeF4iVj1I1iTflGtBGUaHvyyeOCPCRfQ8FfDm8tygTGP7stp_ghB2A0u6LV_Dd7SmlqtuALBbkHzAnoJsuyjDapa50AgW7XpKfiGJAkXmWTcW1lpNjOV10eRnEmzAIxXRKJK6AO64aniwHuOoT3i-jZhJ8OhasBdGKTu583k1-KDhwN_pjMOrP7-2DzwhMX9g3cePg8nmZLm-Q8ltbL317sit37QWP6c8qVnuO5OmblRt-vID3OE0391lqgYcopCs2oR0QkO04RMNcHET6LySuODlGwAOoIIzFKuscAIy2rke4c5xRyjkNWuAsRbswJjE1S_vbRdx1LVw09oo8gwkRbKE2LgC16-7KvaM6T0--Y0AScxSKYin7uBu_tq2jZpAa3RXKXTdPBThyn8SNY0PsPlb7f4LCYPGd3ubwXTeauVflUB-oQ6lRerZW1fL9HNpEm2ftGaUtm6g-v-gujd-maEDAt5Sk-xs33PpqYRa9Cs4I1ye3H_Uuyzzm5uSdNV26fDMFlW3wl9q0Z5ulIMextDC6DynT8lUs9N6a8aBdM1cRL2krs86u-xsTQV0SFySpkU9RKqGByKd9CVmbbp6RybEu8LAGCX6-UU5EOC-fAoM5Aj8lzR9uY5Rhl0dXGvrsqkAutbHOTRoU1-pCspXuyJBHuPnHutexrNaeBOjQziRnV3B3n2gYu4AjT0WMx09nkjXzqsjPEI3q51nKAkcWmWQMFMr0wP2Xim7eEafnACGHjdhHWvZZR_Id6UDAO3j52JeteMBR2dLcVP1ek1hG_uXWayATxCPat6291Y36Bbmj9SeRJuFZK0tKNde-dODGXuv2dM5ILNcyh4bIniUyNXlVEKXVPq6w1ofdUl_fkKt8vuCaJoj-xlFCNrEgKhiaZZtdGc6PFY-CU_YH9Xb2LSmPeosVD62EfZaWIlOn7TWDHi2H--_9YCXIvbZa3ZuQWMftoDc1MTaRX2AWCMvkrQuLipr8KQ-iaRhXgtuVOOzG4wQKEHjRWeXxXhqHcDpcjiFFYcsBO3NOG21suEyVfIU7Xlu8aiCO5Sf48MptwTvFm5dre8u3Q5gtHm5_-aYC5VR-Va2WTSjb0sO64XaNtBAEy0Cok5mk-HAZ-Bky3VzCDVlapZdjutn2Xn_8niSTQj0TXM81LgsfZMqvAMfb0kuHnA7McfKFT9pnMljvArr-eNxsMMkJSHcwN9YtVWsF4dVxRLiQ8GL69cSb32WjxQ0EK2fdtQkJheh7dW32K9Mo8lumRrctbg7xknajE0eXpyKWUjWDcVRzNyXLQ5jERVfAklsiQ3cdNG6AMSLtB_n8NmkDjBMDNDmdqXq41k1UTswwwvu0H5yjdb2ngAO1SQ0mya4HSYX27UYQNMJM9JOzTCCoWX2nkomHTnXkbT_UkJDE-xsfTAHSfFvZ8CjaFTaxBn6UYOHur9syopw4usV-wTbQljY0CkndpVs6fyDx4QY5M0UmqIVQ2ieEvwJjR6QpheqTMX9R-PxU51qGUffgr7I3hoBcCz1mjOiAIy8sxphIuf5ghElM2Gb3ZBUTTjCYUonYXlN9ZECG7vlHCCovhRsBXO8zwge5G7sy9Rbm3TIr-gLCeO8WErJK3bQMoB3CbWRFGqE7Dp8iJyHc01xQlxZ7IDOq1Z6B8LqhxABCerzCv8ndZWU3u8wpOLoktrfG_z82E0ZSM-7btWZZ3GeonVXskaY5xDLeuV29XyrBDNoHISPJJ1w_DJu0gkByncubJPLG2sYV94NrKPMStrK-whisTytQF9uP0CZkE7m0IB-SImdLhJrhcSeOE-pTYVgbtolJHu0cK5rR5Dqeu578JaY9x3BB26vGZ6dRe2zFTq5ogByCmXSp3JDMZEI_UKl25UZRwzYwhebA2zAsvDShk82u7vBSgXcQnWF2Dai2AV5GW0curSavChT56fg2acFX9hj7IFpG-4GgtF07OaR6dvj249EDuH5F7dCrzDHsxeflZddowPTZzpP4xMkKjjivjUL9tQf4Vg3tKmaKXDDhN_d5lC8kN4yN8v5fUMH6OOOyA1Kh_W-YXEp2baeNJj2JQQp7pwx7PMFnmEY-P4XzrRPhpN1By2uhc9hNbw2Sv_2fZJEAcX6dhw52GwXGR9L7yOc-CsYhi3Afu83sfTtCtASf21RJlbjMrb4QmWE8GZnQqo0_YfHW7s8-uvBTrLqNAWmKJapo5ECeA_cN-Rc09J8YR1Mg79GJhNNWKngdKFuvCvK_28bAbpU7UykyqylQWy-boOJgMyf6dgBTMoETdoK9aygZwSslnAkXnj5yrh-eNn0wT4n4UBfVDP5IcjfLudENLRNRZMzI-98Cc4TB43355agGvb4Y-vaBmABRbQs9dNE0x0vePvyiTOJZRpk75w2-8t9EnrdSvYMSXblE_61iTbKblWfJDIbPLf6UCGwFy0XcoOgpNRbY4p_qOkjvyE-ZliJm7oVidM11nsKrPQFApTR8y_JvhPsgR49w8V_cHembuHTxrKjurlSwCG2GF1kDlYsN7JnJfjkh2Y6lwwtA_ZRFxCcCmVt6XyI9mP36hxdHT-txQ6L8C1EGQYAFXVtP9cyH6Kj7D6R_RFF0s_dzELUSe_KegRLECAyb_qCtrItHDcvyr5RSOnapCtR9LVEXgXIgUAiU0mYKFFrSXNarWtKr6Bl7ck4PEPO97YZUXDJcJYGQJc1uf6LDbuqsvvoCinr9TNVMCyvtmOayHEUSPnrW4YnH8aG8xFY79tpdtLE-ujMDO0T7ipBwPYN21WvJnKSTIqjT9UeG5iblj7N9sJpxjVjzbt1mo32XqaMMOQFbl8H-ewrRaTo4jklD-Xw7Bh-wZmtEUWcMTRfZ66Usl7nDrC0mEuV9K0Pm_a1Xz05JPwhrPL3B9eaJet76rDaqKecZ_OmQrpfzxvuPlrvfdkooFdO_YBQKDZfWz3-qmVIfaPKiK_oK4W1MNBdNoJqMAD7EN0UtZpGK81Z9t0APS5wshrK3XE0IWBs2gHsBKaSo1ZGJ3q95BvbVAbxE_NCPERiFzVPIJFn8DdWEbyr75PexPN4wG9Te8-8dXlbOedmhJxdpCX23VTNFJ0_VDHz4pzQpJ5U01D-HIPjo5jXW9TNtrIP7DwpRXEoAmUdw9Li8TXsjy4NlGCS3TJ3V9xfgJQ6orNZVOFHswPILksGVN9HcZp8nTbAhyhJgtkeL-5MTy1_wjiICL2c9CzukqUFwbd0mmOmBmcfXxuKWPmblq4KsukpmJE7GCY5WmZvHTJdX2PJTqatpyrx7wBo8IesU4qPy3Zh9MUpGQKpadCrzOWbOs9uWVQjvDcaB5v3L6G3afdYEkmlp5LH_jALTXCX9WhyV9V2dRjA6_GQk8QE2wpd3LvuEWRgfxd8K07l1HqI1-iShLxiVtF7Ed5Ea77zafB_CqafVM71fDHc_SjDJOFLnTS17XO1L1U5diXVOhZ2dZPZnuLFK2LpukfTV-qRlc1RIURq5tBM-noWvckmYsD7oIolRwJaN8-jU2jceepV-SXFTArDXKORjCRm1WNcXXUMkFgqQitqvmCkwupbMorE9GsnYzBpKHC16MV7aFq3a9BN7zHVlOc7Gm5Gs6UGMNNeTplIxCk35Apmtj-SMi-H4iZHIIUYdOmIim-0yElIquR6ulXw2HtkeV_rlPTJeqD2HmHJBJkzvzgKmMJpSVOxSSF2WCR6ncQKdutoMDmEnn8BVfJcaATXGMmPStpnbR5r2qRSuFpAhtoavOwHj5ou-DX4F9yAYGojPWQx1D9qJtq9-Xbj23ZdIX4jYhAMAV3hi1J_O5hJlGHJ77jFfraBPRbkkTfvcyZI4w1b_JDs5axnTedmtZLwWe_rP7JtoMMCeNyDsC6V3rw-_YfOD0tabZVIhAByQnzpLd2yAX_w-Gwl-qGrTn1fM8PFOP03JZ6jiARGQGnOscsJ1PCMsuFUoLzQTErQw98R8k2R3aDp3QRhvqFpsafhCnVKHAQJGdPEzaAv0MjZh8FBKzuk-ufYVTgXUyoqPzrciwaGIy2yI3XMXb7gErafbWHb5whhzc4-dCu-EAzZ-X-z83jKpoafO-pNfOiodGr8eCR5InKrORveGQdsyJuoOloTsSIyZt8tsaRoo9nLU7ndc5Zomi0zZPrsIAsnv2ym-JW2AezAZYo6VUg92HROZusMmNAXl1Wh9N_tQNqFlCKeEDf1Wd6Z-B3BXksWvBZwS43eXe1QbXxeKlSgDzEYJ4oFIB61jvDON-8-lRiu6oYtj8nIp2DLOnNzKDcTAPh6X8-mMcDEkAFfP0c8GVCh7uXq1hCRT5PPOFncqn_jqLgG2lMf2MVzBKbdCwS6Qck4se1osJ4yO6W9o9hv80niCmark1mMCBKmE-m-VQdRMhja3pYPrXA8kEpxObLBtALikOpR8mhTseFzhLYAAAHjrJn-tYLIpqYocCYf8UVm7wDZ0IhRQUKyiiAVL_IYyJCL67jvJrNI9_Oa2DVE3JcyDnUl45Sb8GjSc6PJaSYt03FbjIjHEOt9J9fkATRy_IG-hiox6l-8yeGPDHeBJQeZgkxs7oLhHIpTsu-nfABNbawHboz0DO88ePI8H3gkEnY3j3oBt0QWL8-R7SY2oNjY1S42R1jmvlu81ibV0m8JqrkFDjHWS2f3r12NnG9e0Rk_-8N2-WfBvL-Zustv_TArYwlu-_IWMZuQj2GSv5BKimxYQwaL3df2f4qmTYIKdLWuI-gFAnrIXtVRGzf8VRChviAC3uU1M6tJ7YFbNzRyB7XWPBwnXNWaqy9rH8W7PPwGjHAD1N89Rltw2nxmz4g64DgIkePRoUgREFSwJfcDodeOfBiv8mPWW30ZRGtVn7Gx6kHU9sRG6RM8f_MGXxKedXVzHmkOACF73FlFM7i1cegpqfWvd5iPHhksWGEaQ5Xf5JQPuvSybySvBKRUKZagFrv-dhSCCp1LspfKqYT1Pdy5x2DJ5xxECOUjwivGGqx3a4KNpEXXzuJpU1SeJMkqmodzwzI_EXB6ZbGDTHmZH-hYGNCUniJpXtvFCyBHyEAej_m-f0Iif07TSOLrJHodxV7f61zh1JIORbfCMh2uCj5qriWb8ldTnI0p7RJ0jbW8CLsG8ZO3rbd5u844Fxl-n-0bQAkqmj-q_hTe96Oj7HwpRwxhyn7-Z5TBl17I7uBQVROAkO91idg-xBRdcim_PK3dTQT9cgpSrrHuAfGpYCxuD8IEV9huchkNNlL2kD6PRPQBkeC3AmVYNF99KwMwUuwuS_2WPNiLX8sfBfaUQDJ1rUDDYg6wXLkTy7I-UP34GuLTIXHnunRlTmf5daS64Nilr52Z_8de0mmVJScDhNpTcdi9sBhZXEOOLrmUUvDJLwfiFH-XP6GTxMPDODvZeUfw_isXcvpp-up3Hx79kt_g_sE_38vYRE0L94V9sjJCLKEwPMEEYpLCfuxqRAH0ldY1Nw5K4hQMxjW3OW0MY9ngxIsqvuz9_d1YJa1vKHLlhR0o-xsQXNVt5iWTHHfnoIazSNmr2pBD5GtAZVF4XebO2optpJwXZQ-U4f0RogyU3opnyWDyAaZt6zEkRIrl7dZvIhffuuvwA28gqD4MKzyVJKaNYIqaxU6DnZgn9kBAQQauNEBjapckzw91aDKQCRibYcvrnxl0nsNC4Rp6BEa4pp0UtGFDU9Lw5h4nSMzGWNgXtifJPIVSgGDW2veLTtM1DZ504Y-oBjZPjJxs1Uej31YGfMX2PajlK-LnV8aQpXUZ4vlAzDc7f-4_RklXatM06AZx2FCJqotZzLDwz_a9NKzuw93mGBBbcKVLlmoUgfGaqnqp2xVFBpC5kt4wg7kHqH9XH7og-SCAQ-4IQngE41KxtBrQe6tgdcNa2PojJcMD0z3XNw_57mlefZmliK0BTDhX_l4yKyNTUugAzC3bj64kCDxQmEguhO833H1Hxe6JqeUVWa3mlY7BIRKRgfs2ZwDk2e4U6oyhXf5uakN1eRyUXvn75BYdAqbm5b-grhVNDTqy7Ez9VVSuJgDJfcWIV1P6el2difoy825zfluh36ibmyivOZRpV_5Edgt_XLs4Tmk3AbSGnI_7TlsFCRu5pVFieY9UflgUv47nYk7TJbWomWIOKKpFuAg3jzTprxWm2Y-N23EdW0GzNqxnUOsNf-O_nZPP1kwFakJ7UlEpopHR3udKLytVQKTjg6Lg6A1N1xCMjugHTXjEPmm67-eh8FM2Na5GjpoW_nKiW4Z3k0yqjJJPWhScItcbbDTSViK9v4ExiQR4F0NvLFJZOjipcfjQRPRw_GjdU455b3L9pM_7uGKxkQxnz66KXxB4GPqIaZkKfpXKTgKOV6MSomJ-T4hKOiyCPfCEIHqL6F4GkspUuCl0_U2Rof4i4cxe8VfWbJCPL-1uQE6lHUKNf9uvARNJhuz7mMWfIH8Pc62JofoHgZHKre1QgjExecc5QNPuFTJDnAADqFnYutlNnk7cmevc0LpTv5TGuO9adO965FxcPVaS264kXY_G67Bi7fY7btvDy3GUH2KIpCOKo9AA-4ofzqyYmgrifFX1IfxqMH3o0XSMy8GpwsTxJ42f_l20SitDNFgzkJwZAdN94DVa2oedyP87qqWcT5vpJqjQglSvxT5R7qZu4CIhULJ_lFagDVlefU9eAQfLagHWSJHp9yVt-Tbsf8Xom8SxOXqGDA37fZ3aYUuzhcwR5Ft5YupPUFLFQ04gClTQq4TWgi96GZLNfFw6CYkkh7b-p5qAGt_Cxz3TSyGQjobEk7XEbbDMbOnbo-dSGtMJEtoyP3tF37KP_0gQaUF8tH0bVKGHNDmRlwZZFg60B7yXnZRy8K3EtjxrPXgjTa__boKd_yhzXUtEZzpMqJXJ4GQG67hysR_WW5cG0LhluV8N_j9IzRpGro1qdSNwLvBe3ISJyLCxn3E0snKNL8a0U98b8u8DTKJ5HW4EvH6FjwE_Vq71kwztplkPd8YbP98mz0NBUtdCEZP0D9hdkP4v6iw9uGxOX2NxcUjAta0xO0QVvZqTTIenTsicnG5NiLduewOjsmdEGmU6AAr9VbiSt49CeiyI-ybXF3hcM6P4sSb-G6SBlzNwU08zSmAidz5b_fkHWGYsInNV3s0Y_u4eVCPRfEPfjQ0y5q6J-n_DjX63-Eal1OGsVX08tJ745f4oHUcKVxdTiZlGVGTblkdtKRund4AgkbcDajQnGAju1ozSEhtcqE2sMjLXMnBifYMUg6wsk-YCNnyH9VfhiOGjS-7OqWKaaCNaIVD_UCqfoV1xRgdk0QiUda02CcwVJx18W7bE1XKil5ajId_lMzGAMvXYe962rDTIO2QrYlewVG2joNICi6C_Iwu-CB-F0LVV1rSTdHQuDmjCf3wSDKr89qFx69SKWNPe3ZW2OhnNhZDj5nf-2qjvx6YeB9WLhWZO0wIjjIMoteiJgyzze6gNrH-GbT-K0fycDIfAvZuZZ3uYgnp6p3CK-74qaadtnXOj-z9svAkYLRGvw7iTVKt6MzED2l3sl9mSpgwGdZyDJ2f4Jbor-iSK0ZGm2doVMx_MJ0gPuUt0zhUGWAdkVOZS8WeoVeYK06AHC7Pc7HCJBUF-oHr6cP1A_87s08XhYeOMxhpDhcjF-qftGDEaqy-GV9eI8mUIeGKGSTOeaH7xZxdnS7MrBYVCkFu32gx8cDmGnc5HQrACMYAme9Po69G33vTjAUNclibLtRucLNzuVcDSmOpOfiCfw86Q-HzPnRqrYwwVhx2tIaYDNMJgdCaows8ET6rUQDDvibrhT_gQGgFvl4qjBp9RZ8PQ8LWsGrqV9UKFKi2PBy_B7C0E9vYMkapDeGRv68tqx05kHESe11EhLacrgd-etzBNcTdT3kQdintClv_2Atd1dWI54eBGJsol_7jahlzNiDoqePKnvexluz-dKp2bI4EBQv8R3YLD6s7Ep9S5G368qY2WMoDpTincLP3qZEtsjeONyzLArlSG3gGaYEDLBKoetOP6fYaPcKg7KZtpAm9GAwp7ROoaF5CyyXEQkQ2FBzRm_RsgCbMu3Pv0EQa6ji3yXwkJRvxyRWkn-BtQ5tDySJyj0s-OOixbkczi6vjuqumaH8ubYboOz-9X3r6SPAwEiupJzQewnGFgjHZB4yVaA8mFJWesQMg3JNQCXfb9V7aXuMWFdzc1IzznIdiEdZzB6XM7Z0QXFpDiaJuJ8N0KYHe_55EQe5WNKaCbNi43MNmmljyN2y82M7QXvE2Fdw5bVV6oQDE3syTk7Gccvln2WifP4HZQrYUiEdxk70qBAlTXXQwjtVLvJTQmPSdsGK2Xxg9ZtD1xoy98_9oqFwultlFwmfKI8NWoU-lYM4kr4rASQ4m720k_Gtq1scSn9oKZJyPDL8BuAmJeY5mdXfyUWHkxY5fdNJbW56qsxnoDyrAFj-bHwvZVsnKWWVHl7a9AZl5mPo8Q1Kjz0sRH8TobVUwgf6576jeioFF6UI7Xmnk2CX0jU_ghJ_f1qbqJj27jy2UFGGIslu0fMjoJTakyro5rgkbVT4eZ7Rf95aP2reZtPpkELRqC6Ly-mydLQ7V4u_JrU3w3JwHduV8oONqDrq_TpRhpoQ0NTkbtk88MdV1vrLFgdybP968aNp2LBLkXvyNdQF1EK1QGCe2d-QnWbPJRLc9Wvgh5cFSYfBgzXuJEt3kky-wJuujNjzU0-Q73jKn0UMWlaHTk7BYcURW-UpcBKLYRZLvRAjycAb_nveFMGl9t68QtrOwuXDV0zF-eQJgPXHPkfnTWEHwottjRubbIxJOzPaiGf6dKErNAIoK30tRUTegJJZHbCBeoszAt5NfGMkAWNTKT9CgRbrDMSsGkZJ6C8b5gm_K4AexP3ygXhfHMij_PLjVg0zOTsKM58pzwFDkRC3G-SUSVGyyGcOzsqL9lpXgzmVyMeS7HsLWg4K9YDf2A8j50qZVpN5b8V3dQ7iZHLaIo2m3Jc-WRVIS-ukAw1Uf-fVRLCrzo6O70WZaMpHrLmCvu98qr2YfYvQZMzVT1vLsFLcUr2kYoV2bMQY5-CKnLlzeXRB7L5OrS2FAFyYZvGr0BVM70fPXjRY0HnLMOHelT_oAIMy9kIqJ4jduxoCYJUuE13hRv3PQ95yLQeSh0Pr7Yn5XLMLjxD3-__6MrfSVyOeNcBUGIA38q88f8nisZTRLicS5g3xSM8SfVR6PrHdx1n5GHEkV-Rrm01Pkp9nsG8CIOOdP-ToEBfSSCIFVz3OKiUEMJA4UKd_U5qP8aocyC1cpRcV7ZDCMiM0epWLwp_pLOWb81Lr_4i75Yn_dSRNwDg5ao_FMeP6XFt72EDddfTQr3rFxCdfNTcl327odoEkOX5Lb5OoyQojBghsT6j5NIMlNbsAUl4-Ad_29wRPaLzUxlFIBuDG0AjlfdO4Wvpm5i_B3j6oJg9m_IacXwVmOaIapaP2v2F1TRiUOLorrSqYy-zClagIzoDvHrYAQ67ckbfB7dCpE-yU7AR3bEVPwgtTxPKgmVQA-S8FXPrgiPn_qnwpfkaD0CRMGI9Xkop2ECfgpjQbLDcZimkXlNWTSkpN1WgjQDa_8WooCCtTh5iqJta83T7v6nVUfES4yavjPrYNtGIg6HWxky3M30qjfXni2DdZcjrIjXp56g5jLVImjORTb7rcdZtRqPBmhPAjLeUybsCFs1ZGtaMVrx6mJUnC4-lGAi7W8x47mLBsSE_AQjguqh3gaD9kNrqGga0tDzEJBIe7HGj91Z76UqmGnqhSL8vgvYTg5SXOVDaLFu_5kPw2Rx483Kfi7XUrVRkYAsnKlEXzqoOh10U2OOX_OM0XR14obUhaJKWPGQkT1e4G0vb9JOsiTg-mEfh7c_LIm1dxnd1qsmfQYodXAjPvB0Za5R82pz0Thf7ortgzVjkPpMDnjggazXD48Cj9IBjUFyyheV9edXkD66O_bkwOAdDajCoW2MdhEoaaJnWBFxFF69tck1UibfWm_HRqWIR4dBenSEcqZaiylPaKm9U8sIpNU2LFOxLPZmeV1Vf8RSRPsIrAYgGqIlYaF49s_9FKrolSAkocbuBRMUdjiBpPvVBX2KExV07T3oh61xrIY_3ixaxh2cJlspHzvHZab2FLnqc_k2dK9wyZdc8U_NMDuaFUiREi2CuBuleSDaQ4bhnNNZ7fuXmkkalI3QnfdtcyPnzRgIBNxKlHNWL1VGfXoPS9ZrEsC96e4kXtuTNU7y4WQZagMxGbpPRrZdbc_o6eD-G19p7Hh0C39He8fGAJYU8b5Q9Ep7bLrzaqMLYBLByMpi40_C079PSGO0gfVBIwxlfxLsapnSGbSsOexYKNa1FM6eKUm32Z-cmYjBvmTfOVStKUDmc6JbvYrbW4uQBDLfm-iIVAKqsZAdycM4sjP7Xo4HU-kjLXNYjlgeZjXl8GVwP3jIisqOLTxvPzFVVf_OAO-s9ab-zftfO0nVDyQyZblD7glp4A1fhOTzXrN2uLfJkR-s_rCb1xWWQ6QSx1Kch55Q5Y6sNyad1CuhaO1C6jAmNPQXWjzSNedcBynu5yopKO_PsE97x59zPWWiS97-a6YlgDsNaAIV1i7FIPRrZHxWqsUfHWnL_uI77y_w2gBwe16Rk9QiWTqqIDQ--ojAJIa0MP4w8ZXZjBUHa9vf1PZUkMKctSd_171Y7pYZBmkGBCY7AZpLjCJh4yZTwTncAmAAkYLCfH7MNJ6iGTJWT5W4qWZ5t9SGcHrU0mExtrWdr5oqGfTz8c56--_5DvpeXCCpxIjNTl0IaPM9KuUYxE_JAvmPp8IVEiYOiQLww3GCgwBmcV-KZCpa0uEfhvwykamjKI_Mqa4mdlRpfrwKJBTwd8WgBU2N00pT5aAwFFpZ_o1vd8tSRonT0l2t2HVF5qpW1x_AT8Pl91BBJh8fgZfkaF8DXJ3SmLQyJMpJEbR89z3kpN2yB86YIlA_l4oZGWx-WujwDHuMXvOEzGeiynSBxZ5um34fE4uOaF1_qPwoVozVBEVR7OgF7AOBr_9unWgwsGHRFptwmWLmr2HCsRP4lOMkaxJOC_RR_xA2er1fl-0noLuMIhV-8B-Ht3gQSk3qwyyovqR55aHLnw2I5qtXj9dmRJ01-4TExfhPIwHTC6N_BCK9H8JkYtJEmRNsPwwzYuxYAWApCFGp79wCKYW34SW1fftILGkxL7-bZhuXcruPVTOWzCA4po7dkUpHSp27MUlQVctRqoXNvtZCsV2gxXR6FuBoL39LUNw-Y0_vf732l8Sm0JlxI8ZqzJZ-w16MXl03cUoG1K5hsf3c_j52XagzANFYLy14NfyYawHe1K7qx6j02pzN1qkyvBaedOKjMO4z9iEdr9DiDCDvzTnPSAjV1vDFcnmU3kzlvOy3v5efhlp6tTVsPiuL851v281wrfd-IZL6LDZYVonN1N6OXRaw8A372EtIrGHt_ETvvkcgfdDuvVcIIN3flMis1a-IafAk30tg5hmzjHxlRBktYe9MSuR5aVQJffnZldVWOvdf5tR_sE2mObBVsUgk66fE7nak-RgnCaChsgUZCQWrYcDArouAN43BD0E7DWcc-QIYtBjeSOU3MWpdnYdsBCeS_TGm6MRwX0Gak2WrbYX0m8p-mT3OPVlcTTwsela1twaASM9Nv-khmdjRQmoY8N9ch7Vgq4x8O3s0-lu9EpaYVRPmQ1csa6D0x38JY09o3mAEeKdV66-vUlgTnXrK48yPKgw7mQGFryY2xvoOAWlOJsrBIDu8x2HIbcuUSwLpEwB_ln6Rz1LH_0lN650EN86pw15ZJ4ZodcFLt4bAGE5snsTVRPsIXPbswsdqZaZVx80Hy9teXpZn4K3BDhZvul69w91y1XPI07MLgrDD9N_E00lqlAfV40fXjp6WKS3p77Yh78hJGTzfyzFtI22_6skZieFYK4PWM-qaZTFm1AXQ097zcpDmO5x4IkALLaELbmFkN3z_RwNJdypbG0o9FhmnAZY8R8w2HKFddx6uiztm6OhSUwEP0cGp2ncXtxo3TwsVKznTQcGB0XYLobKQnJzmCdIPbEfVOj6GQpPIX83bZfx3tbf6UX9bpYoTLyVqj_wurRnse_FkEdWUvrSGneBnxqxDtmB_lz_yVltYwZ04A2rezWBKzKxQFLnzZdk-fFIjGVqLOuVhXTOD74mOUINLBROgNMpejhkQMyWY_KVRr8H7jc4Nb_6Z4iWYWFUiiirnWNlPjSX-DUl2spoC9DC-jCf_Q8C-N8cF1X075XrPpWGidn5IMukyb3uksEEF6zYurozU8mjcw1f-KqDgCF6u0r4U7KN-aOQkP17D2eLHC5F_uRHgoLkVsiQgNyZ72J-KEZf5I6KhQnvP24lZaewUfy332CZHnAnN2wj2lrF7MIPsOtVbLpbn7hE4iQz1PKae2J-mDBcFvAJVWGwmOZUWBf261tu5KhZ4-YYtaez_mSYBXjSnGjArPwGA0AG0SA1mNo5Nhh0UFat-6OUe9b0eFjGFTO2Po85ZL_MjHnU8sYOIWPj-0EbagzhJM1EyXvpT3au08i9D0loJ5tTqiYqEGGpUtPEybn7iT0pNCk3BsZLAa3lpVNWzUCNo1-ow62ZYQEw3kbnrwjkeY4g7uHWVw0tk9r69ONRPIPlqAr6q3AJ0DGvb03zJmaP5n5i4LTFjhUuw03w4r0VXluEL7zLuUS2mEuHo8LizJ4fIvJKEv9ZPGIEBe8F58TZTGDgBpa-mJGay_HCXpj6a-r0Wlrh8CKdItmoDD_LeFkAwJ5NnFBfRrLcG-o4m4tDgExXI5WO4D0ODmYHWRTCmH4qInC2-VS_XolriOZ25owkWfQTC0xmnrOfX79uxJsAEgD-38YS7GsIVG7_TqOuBAGsNHl7Kt4BNPYfn2bz9OI2QDacMwqnFtCBGPzPczfMtPQEDvSBaUFL1r_mr72BpX4ZlWwRK7GidvFkWv6FWDhVgc_tJt-FkR8Imcoy7B5ZNKLjXsJIlz1xDlkuT-7sZ6jngTkhzz7silHBVPj_JI43NA13_hHk6Ggc4eO6UfcwxXFGZnYEbMxb4AYMCHwzeTp_rnLApvydtN_F5Wrq3hGhoPiy0EUV8820z9nKrZoxIprBMR73iW2R5wURlXWh5lFd9u7L-iKiD6TAwT3VWN9f5-jGp7WTgAs-u17mnNak5NFCzhJE_mj3D7g4n8Sb_cfv62Da9LLZAn_qbq_dpJNvqxHeSrko79vJ1mfWpAeLtIy9bPjIZljY6XWFmoYGbJ7AjAFyv94R2D2Z12OyZM8B6qshTMbu1S5r8EEwoEQRf56FnajtQpUd5Nv3_1_ZbyvGQRUEkNbAOXzn4jVKf-kXTtUfmTEVwcLiMvbNq5ii6Is_7a9JhQe0mMVOlnfaa7B-Hrn-9INVDtjdyTj_JUDkDDPUNfS8Zzwx7RcUBsPmMkAsFg4bQ7QP900xep9V0qiXurpUF0rfx6qhntNgLTESkilQ3KGTqsCadV2cZezaTisnLKrkna0dF9vxBtHRd7aCEceDnb3V1IWkYnZb5jc2vp380GblUbMYgI_IHx8d_61KDMNsi2kMcD5I0LFU5kUAoXXAtXBNy1K7bDUnCrvGyFdPk4VSG6gJYul49RbZOD8zybc5rDa4a8nS86exdjYGbi-mvoGx3E-4r9kaw2Ccr18VRi3RLorCOERyRq70SAEq9tb0q1nZFLvOamFkWOObQKTH4tn8YpG-GqgJBaVyVcgltg0kPCo-1L-fHomcH24rd0mRPhPDZgi73URAC2fKDBt1yitIGPg_fY3P0TsEIPDdp7sR-GgPajgEbola6Gqz5BJCiIfvfwWhL27HPKYO-m10cX_rPr5fJv6JtN4Iu2cZ7fUGoNJ2yCEEkczKfv0UhJ6VpxTWpQQbPSJ0LoG9RxGhkDgVN2hpvwSZ0wj6Z0I1uq-IBo2D9LFvrW-lkx7h90yJISNZDMHvaHiIu1fS_eF3hjyml-gzzwGqQeaxihZ_DBWRoA1DrCPksHYhCFCuuj5UwcV8q3LHoBl7te7XDgoQhGjGloY527MbO0Ssur7aPourHgO1j9ks8AUjQ2Z7Gl7o1nsD1m1tW3H-m8bGe44oBPvjPjO7Bzzx8VhRe7RJFpp4ql87bC5VYkBHzDpOUzvOTW6S3q-oXNrIEtbhRn2GaQtNEYZs9-YNBoLkrkeOiIvv34Rup16fJ2stTQUJwdXJioGRJ8h51ri4hw6CngK6yTaCNiYaalSr0nB1g15cvJhcrRiG8g6mFFK1JFear7r6hfjkTBje5iz8ktxktFxfzANrn9lwFxGg5bRwLZGjksPVOz94xJCG4i8WiLy_RQp0SIG0wjyEm4J3MwgzfbLA014qWmheOxxy0dSb935MzhCvD9xJ7nXL-1Bl-K8N6jeqr2yl1qwLop8A8NTC19INVAUODKwt-IbRJ6JPPEXX4uYlwB-OGECzoSz512OIzeUGy29CpCc-sPKO913PZ63W-fTxLIl6GnJEZGUwjzhLaSFJax6zke-JYNicvBdC38VPJ_6egvKZPAr566x92aQHRR98ZM-xSa6DaEWCkHEnlLemM2KXNz1HuNRA0dOEaJlhx0jyUDMejz1SMt-WPBI6zefWGpxifUsrQea5vBW8HOcBJlh2thwQmuC_77Ksp8q9Pqm_37a2JttyvvZGxhSoUvkNMIIHsHOqqPNxJXVf8pqXKiRqsohXwD1wF8P-RfjkPj54iU60chopNgyYHYNhNQQcKCGnsq9iHuPvcVpK79v81Qw-HRugvC0mM7d9gKYYwRHO6XvnKMu7V8wUrM-jEL9OQH78y44yCIRPNY54f9yYJdsST_YbVi6gHDcwYxTEq8VEA-bxK0GWfbAnIh4MyiAuIO7dzmq-MN0HSBtkMFDMeruwcf0aZIGmIGd7VCz-LCfrsUqPsSUwEfTuHl4dAQvNk3l-VRdVX0LkKT3AxodLTH8tCZx0tfRfndCJ4sBIjvSHYAmMBX27Go3rbC_SWZceulEIyRmFBISrA94lrD_HtNB5mzaz74ssm0fLbQrd_TxU8rD1EsxALU33XqVNqG8T-ilhK73E_zmumMFJdSk658_71DNmrf9nGXCNxUjJlXjUxUDfTOq9vAGMRvti9wIREwwd_aXKXReAcAc5ax0ubjb6vyOXeDEaE0VfglTIKikxmFCNMwgy2orNn6ZMka7_5lE567WS8XzCnO8K8QZo-SgpyhsALanwI3rCojA6IDwMz0eRkbHGuaNBC3HsfEWA9pulCtea_PkkROoXgQUGwnQjSVG3l34QFaUBYyjMrdk4LXi-HIOxcB3K1xp6Rsxvd7IzmPXGtinZbwvKGoqkYpLf6amrwy5nnr4ivdbI2b2mnz_VmNmecjHSZi41PG8KxjP2OTcANYaJEmJT1G_78UowUALGW8oNo_vNUWsSF7fFxxSsOaD2ZF5FU6m2Vtk0RropRGsxXmQKUAPADuD4iycDsRRVGhbUzDBaOu1mJliFY0hOmZSJX58KTkcSyHcYCrOZwU1Xwp91XIEFxyfsrDUrxLb-gDlGvbmVx07Sqk9hHWv5M9b8qc7xE6FmzWHhPv8oIycJXuaaYM2petNBQ41wHa-dvL9K0mEbZtsLK6o4ghLekMn__8e2cYv0GIaFtcsYg4DT5lyPmtmb0tGqFzuBH47l0Bj1h-vLUOWirBNqa8hIbvHBRoBI2gE3HiLW97bmPyk5D7Q8prqaFCKyFsdxd9iQIFbO6mKJa1sKi4ssrwNzU3UnippZwTiS-LDoArZZ9qRJ3jREYt3PuLtPqATGVyivz35AyFJXaOoU1XeGHPK_FI08Ab1fVFZcOhaDOMw5shg8p0iR5hMBftA24Dr1gA3JavHhow8pwC1SoWfFVntuKUUJsbZJFaBR_6vhj-QOpVoqWz8oUyJM4y_wkce6dcBbYcanQCLMg2aYRnd5lfHavSuNZ95V9rj9iFWS5-81FM00pb3GY9BvHMoAOCH-4W7r-PKj9J1FYcq61zvvCVandc0e_n9HOEwMNtBvyCht39JWVTyBnrFYy3vT6i2uZ9XskyvCiGYhe7mMbiAC0zaWA_2UpQqM6UmDlxgtFg_l-PDiqVN5MV_RLJymVginSTnbsKRCVTML-YItC4pPfixl1D6_i-Mz-IUqS-ncjH2ro4m6FE9iExkuDIbxp9RXaMnyxQZTU1aeHQuwYDtZCj1IwIIDTYgALxr-YQ3G8DuqwkJ4P3MtfcUEmd2FokND8aHXBnUUjUMOXRbbaPflha4nax4rfniH1EdJ2Mjm_OGUkYXNW9hYUcF6y7yKZbFeXw0UvvHLRYfDpqjyvi9fxvFKGaykUJ0aE1i5BhE92ZUAP_Me61fFy6x39G6C90z2iaS6kIckmKhZ4goVEIGhtgy0FTb_bABA-j0Rm1BABI3PELrkLNbfCGSc3dSimhM5WZeasZDKeM8uCWXd3hLLk80n_fj8WbKNsvb7tfvBEbO0W4tfjs-gNzlO7M28QURNldOWISJ5iu_a_BztnbcYI8HxIItJQyBf-7-GMYPgq3lNUQc1mVDn1pKZGDRUu3o7PKx95jbEzEua4DveAsKZNMNbwiBqeCq-ByPmkWKjN34CIIwS7bInbJ2hcBWqjsKAvOowUB9Xc5BmJ7RvPvszD-bGTe5-f35ptJ5Whrw-Zrz5kJgt63DcsHsF0YktX7ehqd193NBcbYrG777LW9fHD5hh0iV60menrm6jGBauFthZefm2G2ORQobdOEYGUJYwqUx1mFLXJK6-msDltegm9jslyyHyOaOXyK6V8i-MtAcwjBmeJoVJG56PS95i8e35xyx0q4Q0F5VtbLmZXmom3NhbQIiX4V7Vjbr8zQ9hoc_uWR0iWhnziOgqE0X4j63GF46SVIjjLk2kJ8Owpx4zUcxA4O9QG3zGZ5DuDMyY2QQo25-By9AllaRunRFBP1JvUR-iK3jnowkNEqN8eXA1TZkMSW7enVq9F_GyF8fbO3L2enAErz3aeolR5c0jWrU-BEuIpzJExTSkseHOjmnejf8XWXIDeCCMSsamdR6q_RrJh8q_p_ae1rejLEAiKQmyT5qksreQZs_4WEEcN7W2hKlqnuUdDmUO7rdgRJRL8AUA4y9CYSt4VkobI2DiGKOa26mip1H2BefHSjknnwLzev-d02at-1v-on3KJCGGSr-WdDIVIWK3zsq0Irpm6f5B1_YhxNX0UwjGEmAunVOrGguRtQ5ZgykRZ5Z0sySSS_v_MFJbrRnf9gd9zIFTqvZi5-VfhoIFt8nGMRN5qdZV8Fh2EnDYsVYlUWnJDeBS7HNhvlShbtzGG3oZEkfjxmYKgl5jyDIgoPue5lEOFIYLuLuSWehilEyEY4LvUnhFuf0LeWbEb4z0IEtKrl2NUqb09negbd-pSIg6-n7lwd_c6Rvfh2wCbP4y7njJrlHqIQm_FFYvXaP9bl_Fn9OKxvw7xSxeXuTX6lbzl4pXUZjS5reawGdNajz3fTHNjk73X0QLrlC4NdyFf_9MtyuTm63_d0r4j7wgL2OWrE0FBdGBqfk5ffkIQaUgOoW7mNnCfNmnu3KGUJUhUqe6q-9FATTiGxKdGxslY6Oj2xAUgZ-gbA6i-cmM5RdYCUKgrkVEbIaSUASI_8-mgp1gjjmsPgPLUG0_EbVSg9eknm_OpJPWeaqDRN8dnb6y30BZeyFnJRmaLMvOp4HAlZEQqzrBEh784rs0wl5REgCyAa3ExUSmKH6u-7mfJ8RIoCXpu4ulxNTrlIeI9u3bXXbgckZ8yFVKnBvoBBb_TUJBeMv_3uIFtwdrpI3kgYc6iHwM7Tr4CUJLP8r2hT4RB5dUqwX1JCaQVyLWCzRu1ubMjGMXHGH6MZ1egpi8LgXN-NYzjiLfBUFTAREEJBhZ4f8gaMw7p6J9XzjoGzSnruWUwRWX3y6qCxZT1ovimP3Q8DJM05ndNEOxlQhGTeOA1RH9jXX2VUJQoL2b8Y6aNPMDpwFX4xCil59deqOG-xH1Kqaw311osJbqL-jbl7ih_Zt1EBziEYqhmP46R4yrwc54QEbBMkSt0asMZ8uGis57e0WdmQ53G2EUpEvdoOALdheupXOg-j7rgy3-58O8awPiwLiU_TIAb6oqd1GfNMP49_Bl3EUuAExSWZIovK8E5x6mcusf-MQ65EYMRhpCFms_NqQRHyHGAQGO4tWockDStjwGRQTWARdRdeE8j_saIFcZsQjcSM8j5Z2yOR8bX_OJVDnVbVpAcEFQGtn3dqN_ifkGUprSRYG9Fr3wGhj34VrWP9N046l4Q9Nd4q94icIxDlMVmh4HjsErr8dCl8HcX9xbTHiQKeMRnWxKkfT5xwe96LeTteeHZFXrsSNRb6UsrNdnGjPgK766l4v02UXxxa_HTJiZH9nr-Yv03E2h9PTRQwn0Gx71Oj-9DiuEwx37zhi0qNAB1qAc07UBIbvH5rmcgIes6vPljCKkOmXE_NrYEA2w3S_fSKQ8Haywv_yNu8rTemk4tHFqAIuQ-X_9s9ZYZOHz-PO5DQrJhYhzYqvSk9s0j1pDTbKzwOaS9Od-YGbg8KYpDy0NkdJqvlUtu0xRfxVBLgETJ3EPY3KKoSCQv_S7-l4Rea5FpMbqckk1wqVbCxsi8TnDn1vRERzEu6nWnUfEf4GnhC_aZTM_XoaCneZniuxHJLCfro9dzoPzczm-CkGy50k02x8D2UHF9kfSusAxPIgQtFCtCLdie-J-8qsTB9i0Wjt8-y4iU0wR2ZLLSXyK93PHQQyI27pRWDNBaxQ4PTCACtx-lMuyu9RWx1JjnBvcGG1w11m4k0CleALNWRXRZqTFnlFHmqYxiTIxGEEO_OfdB1mJwJt61q_atkagcnh9j4woST9B0KSNX5WBRlPFlpw0J6Slx-2-eTwMfXjsCDdqVd-BVXoy6z08LtDqmb7u88cQKMqskxPV4krKcIlIpOyFr-AgJZTSm6vX4Rmep-YPiPaM0AySN8_m5LGujBwwOcnsxzvTplkW6TfEAXcQS0s6fsIqh6uyGhs08qv4uLkeLp7oezI985ALmPzykyecW5AgpTIhWy-84GZYUuQpERnc_bGzJmvni3fTiaZ1_QSw1d4lfy__Bm4UkjlFlgYyjaK0QQiQaCWeTu03d0LCIIZAtRnI2Y6NjEsOP65dwPSrcYEZfoCxBYHrTzJdK_FNy7yRpbKh2Y7VbyDn-obUwpRrJ8fJuaIhQdAS88z9UdPS_-oBVStd6Sitoh7DQsu8m6TD0BtyIBKq74uFZcAyyjtemLZOk5TGq2M5BZeYcbUsuD8WMdI0dZWyqYR3hd0M30-NYv7-1L5lIxySGIKOrIIY4JWCPs97ZFHpSq6cVnJn4GuYEhPXTybinh7pjNOnTAnAmUhXpjMPPdvGHMaPOgnMXANqVaBntZI-9jtDqt7NroTiSi63rkQKQo73PHLCJzEymCwUJTVlVfXScVK-JGWwtgqPSEEiQ5m6DN9CUV4rwvXYpM-_L3McQP66mX4-aG11-oLNp48_v9r2WU_VrwKIacXpL8V-ONDJqmdjN0RhBSkzVI-Kuh7RXnDEaLNemBGQAZHjuKJcEBdfYDAyUdqiCHrfyc8fCdz9-_JaSKSNjePcf_dLuKSAVt5l_nQyZ_I0v6weY8oSg0xGFGwlNGLW6olTGfRWLC61NODva3f9sLQ6i0dewh9tv9bzgsi2rPdkylH-y-TGDrScmHNgb7plrIW7PaibC20swcwJHQNZFYyBETihWj4aatJGWZaTEAVWx1gc7aCuNwd8vi8ItwvlotTkPlU5s5Zozg5vNbC-A09W1pE5xXpZLbigwnS7tQU1c2Zwtbqsx69HxqaJmdE25mtaosCcBsW2lmV6EUqi9VIMFDqJSDHXD6cBY7nmw4kP7o99sZ2qsJgZfCwoCnVf_jlMCsyGdKF4-VpRtnFdVxh8RnJEmRcZkOxsnPJcUaUS0vwtoLtc9lMkStcS1GfWiatZ-ZPzU2YOHux9TzchAVnJx94Ylns8ZTmmtCBpZZGDa5fLsP0eunbwuGbKzdZg4eal9p_qhevUfmst1dJZfoJfTXFRSsHvYWCYE4E_UPoKh_fG6z2wI75Ca9adQW2GszpUMvJj-0rXdYmF_cXUXP0FHhSvG-dnQW3xynchZ-1Y4dSDLeDAwRK0jVWc-Xp6QcsbCeJtHiN_mnA8gzI0-hy7FVpDPFeNPeIFhl1vNXvAkgMs-EGZrvDoXgQv2BDq8wEy7OdIcEWWL0aYQs9ceFOyGPhyppsQA2mKF605Vfz1hwuuUX0TNM0NS7unnqkoxcTAJY1kqMm5c0I7f7rdJxpLvyBDyF0KR79KYsE9OtcRj5ujaZgDgWNN5ZleX1Y-0mV_fbcEkIsIcurOOhWm55Lzjv8ZzRPt-_cSkTyjW6z7hwDX7wJxy55E-NVynnH4KLqN3yw38JY6wxxKm9nTWjqX1ur9aViqyh1f0FvfyLnnuulr9smRWQOnTLRbUjrw6AKjX-bTzSPiFPiHNnF55r4bmfHX8Jac6FiMDCgWdUcGR06YdwWoqXQAVAqqBbrv1I65vF8YmLh73-U0Xae_KCHF81pnGaQfRhRJY452KDWMrvNKRVPPGpHyfuNeKQgODS7w-ebSxWx_fbj6fCwnKPTkvOC_pmPi-7FcQA2Fb4EcdnCtEhMqcV7Wggaq38iMRbd_Zhqprz9MqqyPwcSvrOBqBCr77Mw61Fg0fIMXfAXEah1sjVny1k_B964_bmmzV2vJGnPsFrNjkNUIFstuEzBHYsyshkwwmFzd44UMXvTidCF8rGGz30Bw6VUzudyC7XYF3SmtXCD6ZIrVRlAk3WukTwZ7_9LspJikbyqFJNyAvAFbDlcBGLxPTBT1w4dmfBDSSueESPds4ejmBVidGw2j1b7pI7LT8GjNYnXSMwsQhLtgUIfN62ZArF4bLwf41NERkcT3VQPXJIftcsfCsGzDzOIekDHW0FwWq4NTUo723vpEtjV9317AzR3iBIooaBLYrRBYqoJ3Y5A2mA-SXXIWrI5f65pWMsG-J-81pvIYwwZ8SnW8juGT5EfyWScLBP8qJpAq_boXMfK7cUaBicaOi_Une25i0XwIIFdW7T334tIanHNYuW-6_7ItAhjr312rY41hksc-piPizC9grwAYyvLlxi9ksdIgEyrSfFiOkYZejR-Z_P6JnLg4KlYyHNCenBkB4VR03Gva17l0UIJ8ULFK2S0OCGZ5ykYCnLO_vxqNXW0r98VY_Q7yUs1yPDYtkkBy0kz_czKtGk30IEZeJFHYiheWcRpT7v_24Q6TzJtqImqXZWaRr1ijJuzOcRm2CX9WvHXWYwAth4iNexPCpbVBb7dJIzc9w1BdJkHsJ8dfm_ByIn7XKBYTdKOfjKVVm3qOQ-3haZg66QwJMLz6JPm4WhTFC-3D6tPRVmmPP_fbmI3L1gLlElSjOdbqrPSJe5m80gzf64ws6P9E42OXmqngaGgFTVXBL6CrfzO9Qt3U06-lFZPi3xi6CVzE71fHw8NWBwkF2XD4edpQVXOdvpsWV3LJX3omqetPPxdT6M6IZGJmxfmBthzmpx6PMpHzaG6bemyMUmmymGUwcPAVHz_xRAXOM_znL97kpZB9AqFnYBWiVGmM5zUvxGkeqrqdJvPJG3R5I7mU5Zo23CNlvrTAY0QtESLBbijm1OikSb45L8kMG6_V8pZg95o-4rT_REoFYdv8MgceKGiH3YyRnUgBRQ_w3nZ41flpltmhSar3zX-9uqSp-uPoE5UQ0j-Jjj6zwj08BbrnjD2m0fATSK9whQjRsL4kE-WyqCACibEBgBzwrMpeJKcDwCY6XHaM4suInHlN9Gh6W7MtKlra76VFwyjo9RePhcAV0AG2_hEx5u7gVfpTUn8Jqz77QXDwqwjgIbAfx-lfRtK7AVfjlsI4AEh8MU5KHvjw1YDvff3ltEPpnAU_qwX6bLF5nyMZ4HXW1-QjyKnwUi_-5glL2vmVLqFVDDwuSiuVZC2bnm_uphiO3qgc0RXs9viV4AICps-n19am6OFLqEa-AOvrmBI0cOYWxHzmX9ygHIFgK1iAj6-4vRVQPZNthFqsgTd-DW1txe7fZUkVdy0I-jd5sFczSQ89UzTpCPVh9ZDrBD2yw_iUgxNhmegoI7CWuyPOzIZn1Qv8VUMMsbgvx-NsoYQ3R2TtxCde_7vB6St0Ew-t0GwiBgq0_jyMm0WxwAQ0lV-FUYlOcnsGIXihZCI_oMhzQkIDj88RBBF-F8DeCaC6zi2t40q-vV3W-csUXZZtCK1dd8fOjiLKHf4WkjPIRXqkUzGsFLvLtKzJKN1w0TSx943q_azugD3_5t7aDs4Oc6fn49DP0iBmIYPQxZHI_KfqXg3mezWgKC0Y-JGI4WHuhQNr-dDobYGgCvqNvEg35UgFDNeh-LOq85wEfX-nIGRPcqt2IXBYcftTZ7c0hri6f2wBQY-07mwPPMZCcMcv_yClyrT8-Z8SZ_aMd3OfKhOXay8yKuC-siLUzpFymPIXLB7uzAx2DUVg-941v89v3Ave6voDdiHdP5MwZh3svoJ0YRaYVwteCEGoJNtRktF9L4ZlAXZA79xVdcA1tADyeu_8HD-ef2U1kIpIrWcGPFS6GMG2M0S63pwyNMHQieokwp088YV2I-pLSYVb-U3gml-SGK7Zii9vRX1J813rPpfNcR3kjPqsLRvEJYV5-CGuzm9vE5y1FVEJGkWX4kMXW9ExBTNX2haxJdxDAE03SCdNz0Iojt23jre8xdMDq9wcoAW24wR1MgaooeR2L71JsuxwG7WoiqtBRjV57j-eE7myTSAkwJywhx7bu0DnBf9Ifu5XQmLIhEJ6Chxn4EqxPD-9XWjFt59KQdHnAgvJNX0uOPmsTz7GrNp0HFV5qTDl6P_PaXmZcMU3BQ3t6TyDybTuugQeXscYM_prcs3KgGPZIcEiKkp0bVKjkm_LlvJblsvo-PWGxHxkQKxP-5ATdIF-gfqNi8yg9q66SJzU55lEB2_x93q7u2y5UxZ6XWfm7sRZDjdEUB4OvIbPp36vhBff6R1ji08imPRmDJb-EwlstIL1dW11DcA_UPA8IMdKWHOauUgKZtJdSb5d2kq_7PPpPUbKzS2LdO9PfVBCcpiJOvC8P0XkK2PCBYoVAKjUSTEHmqyBmF6bnIR7PsDWvL2GKULjVJT2bmVYC4acppnkwy7aI9aKsvlRBflmoEn15sSjyxXVhvQVGHVVBYNb9516AJARBqiclQzIMElKLeRlw5KAswP4L_0CZ2MgSpiUTxS8xg4tbjKvTQWvbc5ZBpF12qP7265FXyCjEIz62cXY22JPo3_OSQjnEidr-98fF9tOOO-VnMf_3S8m9A2Qm_2cx6qHZBpG3LVCuWl4XjBBtQ6Ql7QEnz9buRKBzTXuitNMbXLyYcrvQj_YzgjJHM20RUfML0o1-2_tMxLhY_Z4eZM2WvVP9mbkI_BGzSNEUDwcBMNn4BZuXAMvSwkXpsG3niE-PoMCuzBmka2dkRcC1LmPAuTYMxuOgIEwohFtz2BQrQkk8anzhnGjHfIz1pOAyjoHojNs05vwYXt-ocQiLWYeEpqj2f6N-tOt_5ycL70iKd5ljDWOtl-afB1N_wYrgWUlr3TWEdHwoLjq2ThLGCTuCHxidC92h-KzMxKSC6TxTYOomPRZYwYva-hXVEEqeXSCYYw7e0mnhb2Cfu7KyyyVlB2D0vtph1aXSqhpMAiOcbZwvYD1AqsmWPqLUGw4csbtblt98JQL8fX2_Krvo6nDXeDcYd27pvuLnudD4ED_c6TsNC7f6_YzLwkIPiWjrcuisA3A0WijhrHG49SohFOlUDRZDlKeKQHkBa8CUo6wiAso7YaZ2gRsJOM8-7b7HLCtxaWMeGVL-l_GcVgI9IYOLIFHiFxtgwLfNQJ5LEiUv5XKUu1zyCd5exKsfZOWBIcaOupGRVAzeL4sKdJaiwSc_N6TPKEVXZ9kLxowNjF99whXG92bdh0EO6lxspaG0_e9aiufMpanfy6fgnbXJobGa9f2JtZhLcucAZ9I8xPNnviWxegJi0L-4cqJ7KEiN0P_rNoU21840ZUHRa_nxQ6R0UHOo-FuoFGzE3U8pAhvWpAECWxwqZClcVJB5i19tEH-4HVfdzt6A6JmS5KJWRuBxuKxxpIsrKBlNpa9xjF3z7FyOYwIoJ3lN1GoGGj-0lcB9UvyfThPH-ZgP6X5sCVAobT2itX3JnJy_X4scu0O80UG6OJcW0RTIsLAu2Vf04tbdGOBvaSxuF7RnaeAJ31TdOJlIQBHGx2ar12pVyvtaIYI9Cs8gXiSGvZBVYVeOUmZ7ETr-j3A3AI8Vivx-NJM3fUtparTh9AgbuSf3NxzyR7HguMMjiAD1gAa3vuUqH_kL1agetomnCbIgXn4nIHp_lYYz7Alp7IO7_D_hPxvVFM2yWBr5APoYZBW08azlChM6Fg3naVjPRLA1akxG2vLFeFfWucjyAD2y2YlFE-c3S_TId_d8qN6SKN3W3IBVUz6BAuIPcHgTqyqaaqfU_0ghY4BaeWdxf66kgUXLzlT2DSCZVm0uwVzKdmLjU-DtNrWOlGi0HzjPYVZa60x-qFQu5pKPCERFPqaSQp2AmgT1ustVkvtzUGyFg26fZQyLuztP9rCM4YfznTrA05ueP5PxCypDzy0zwpMhuNrj8L1HwHhviwAVVJdlos4twW7c1on8IPqLtgmnKMmPgkkT1pztt26dQegKpD0yPmLnyULl4gChcDssQFjIQrIdS8WE065WmoRt0iro6bJzylrt3KyXuZhfDCnA92s0SXlLUhygbtV_AgH0pUokhiwdcsVhts1kl3RKEUHaY45zCd_5e61A6EzgyhGK_objoQJkuDAQUX3lzjlItvpBXLN8aJCb5YwLB9L7CNJr1Fq6_0PqebRsbxG8E-4jf4FL8hEbaWu37aK2yNB0h5QJyoDjLv775O7QQvkjalmx9nmZ5ojpdRHRnGk47uekDS-VWs7-ho6CcNALQ3RLClYL80-70hAJE8bwS8_cuI3SV4S7R2MJqoaXtSC3fRON8rEiQinYbPUY1ctCc0fswJ3pT_yRYA0kA2hrkeyChSt6RApwNVi9jpjyFg3q30Msztxfd88wJqHfUSCanywFYcPZf1cy8UXbfTM3KSEMentNnRX9B5VrfqqOok8H36VWuM5VDxZ8TuISnjKvmSGGZXCTi7bxBVH7j0HDxIPkG_FDJoFigjTTz40-IugUCCbxHYMqHnOl8Lro1NiWVEC-jZvbQ2BONNNJ4NC2B_8Cp0rFbXJZj3_0N4stBkoWcBIOO3Uww6z0yP4RgT9RG20igN41IdV3e04IITuDsKQWJZOiCtBqj5AePOglwcOLOxS3t1YwUFttGB2RUiVhoW-W0b2fDn88Fy6riGl1A0d-Kglk218dudPEqRFCaMciiS5ZgcywRfUh97o-refnhE5jHw37w6JsqUhfeW8WyQltH3rc5UOms5zOZMZykNRh5BkhRkM7agg4rso_3RUIjJO68hqN1RUXcNKvyoehuT8eOrTQBAyMlEvBxU_Kz-rNZiO885qu5bWFcNpw7euh13J42K6RumBjXrjmx1-JaGukr5A_0XR2f_JCPH58MdAZ7cDWN_ltK4uvbHtmvyFeVaIkCt5msgwwUDHZYuNTigLWWXHmKlB5m0JfOFRieIS9ClG12ba9JAvTDb8USoeRpdME7aILnjBSX5HQ6E0TmkVyhEpDOXgq-XWWwinHYT9vDIPekpEBbCpS17T-pzZX_8dRZkEJN2QADTfnA60E4_6ZOO1wVikuaaRq2oA_gl-7HdC7Wkx5NQSx-X-sSnrBRRa7Em3jTHDEuuO88EYchJjt7XZ0Uex_04kpThFjsg4hVkOhXiObN4BRfxjGANRJu3UCGnZ6eehOwWp6olS2NpwUucab4VciYNjKH2RfuNbilhk1aWq6DE6fkRM82IZlW_LNCi24vqss42uXD9J6WSqTCr0rPA3FdxZUzDDAq-4JXzkxL0zjaAUHtdRSuMAzxXH4GlVmIK7X7vHyGyT7LTnG6TKdwZCMGiiqFaBzx8TOHdyeDoaroObKq92FcNkOOXhIet4pOK2h2Hvuaz9aiTpHCgRHiOwy4WgW5BSpFEyASO21c7i_bFGoD72xETLXXXDTJAMeogiQdWE5p5FJpvr_K4f-y8YODSfdaNw2MB2dbk5pGtf5QZRMlBH--DxVMndZAUwvq3Z9TnrJ2-_YQUbj_DFTcd3YSqQxXcjDn6JdAf1C6nnZOh-11wmS7h_jIvgbCxt3JoeXdM0fRaFTyOulS7tTCmrzw5u6HlNXecjjV6y4Rr8HK7qSh0qTG7DcmXliTcsU2FBtbu8nUkqFvo_YZUrClQkFBKgvrEVguEu3ZEjSxJbi7ESYK-MXtKnt9MCWKpVNdXTREJnIAhM4Y_YMI6Eiz3jl3Pqt_qd6E1ZostletAw_rlzDDRjz3Ba0KVrBTMWqHfBMWeoSn5lSAXovgWLYHHXE72LBUtjpH0MEoTnrh6YmNBXdHp3y-iz_28h0JsuKAPb1QyG0Xe6LJDkQukckY9knPpoXUNTxp10DLzve17GYMiydJ3utHooCW8UgYyISf7YGXr46NyybyPV-2BOutykIt_lJLRzyMIz8Iwl9doOwT5kv_3QmZEevmFyGaka1VZVX94L8-vU6Tm-9YOsfHeR-cobe0MSxYeaTVWVGyi0swVnvNtqsAapg9gQCdaFRI8Y8WGi3jtePV66R2m8X6Jj90lARJbbHpasKuBF38yeVVpFv9fBo3Inmww56CBclCER-g0q1X5p8ummuGAzk2jvsoQoNr1AF1oKyPZyYYEhw7Bf3OmZEBhasQCCmQ691QDde7KS3I9ID6GYI41m0CP3iwzj2fVQLm3FsMhiNX7XCYGem3bIeEk8_YU-vhXeehIEVAekKdxL-M88-Uvu3wEjNTVQdqVrXMQzHpiZFDYtSmiarD2mbaTiIaPOAEkDcOs7l5XrDxbIhFxMQv9mT7_bVspJfpwqiO8tDjiR3W1sr0-DFkECjd39Webm7nPiTA8W_RhT_tQ_Qj4gP6Rv5tKdoxkL-CGwgKlkIPeUh6-Z8yzsSpZSz-EpZpm1noLA63-aDWe61AHeTIEIMOcIy7g3gT_h9rsSK1S2Usp0ey_RuhN8Ww5kCd4VyCxBumt1tfGrMSu6p8-kcx-rzUkkr-TTj44ziZMAB-v44noAIiyrZAaJdDypwVTBP4mgs5a71J7qfH7YlpmqJTzRmugSoinQpwF416f6zgR2xUWtVS_bclmvQZBcru4p6pmx0epgvQwyZNb2O7ecW0UY61je1ym91eLJxn8roIb1BJdM0bqgW91voPJh_9gwRdxuDHTJN7q1W0qS3kYhfhnnBZKKQosuDQbkQGqXA7KO4roXJgV26_j33ynYoirCUu_0VPGEwOJcnVP7aHf7vE6FuM5O2hjm8gZQyJJWXNEX-IpgjhIRCERv80Elq28sYEeVNa6F6jVUWGwoOIBwLZjABsqLuATOPIX_X6nJvVDY0b4MVfTMpXNuZN0hL7Ilsp-vxsc_7T3Nx6W1PkEQG14l5hj4Uzn8deX881b_jKtmfPR3bbAZ08JVPqbElmX3NyaH0YCiiqRAiCYnVS67we5qmOOaV7VMvkkdruTT6LOd73t8lfbM3XQaqzTA0jV2zOxAmg1JUQRtArR_jkh04SnU4kLfcCN8o2KlQThQrL5rBsOxceRQj4BcTJjlmrahDC12frLtUoAsZIGDh4-bwCRtdIgAb_FiFsVpyXPVa5BhTOSkMR6qn1EDygZ8RTkJ2qY2knGcAvJSGSbjJgifmfdjqGPusEUvcgA2RE0eeWBVWDx0z9ts4QqW7FX6V9YkUsmBmojZam47xvsBrqXBZf4VZXunx-twmabLBb0hcqMEYzrPSqlhSXPqajcNrO_t6PRAmQjETdAJ7kD27lkWKkRDjmvyd6BEVb3pp29cfHnViIqCl7sSWDtTvGZfWiNrvbIIihf9sBxlgdf_lbnHXHwMYBPl9Cxt3xigRnBLwmCdT1j0EBywkxnwArtdYU-MF6mQSvL3v4KPlKkNQ_5IceWu-ZcF7r8mECZyQ0THgwo_RFpwCCzuXHqJms2hZccJ3ZF8Z-s7a1w1l-L0qJrxFQHgi2rJvG1RNT8fe6AHBSuGbVBpI7jZkUbf8DMtMXpxtqDWkr-a3dHEX3vYTocxjM3e8YXPWdcHNMqf2xp6hBb7R1uqtTw9ND2p8Pf0O3JC_nP5UK6EpOjm4gwVmTT2YS8P9ghANEptQiEM9WUqwSNi5qSE5aNGyCYpuBH_uZcYwvV55DO6gR8RPkJzZGkbcm7UNRb-mXPQC1M0r072moIGXQmrH2XJpnL4k994zMPOQdeszsrgoob6V_CbFiKDUOaYHJRLTrhVhzoArKR1XEI28Yuy4hRkgQ7-caqZJxxVZf-VLINZjDBxIzLdZy7lFtdIpFXGNmrZaB0z2bGqaGm_mbid3jxKMHbnbzc1psg5mc3e0gZ7wacclSGsA2yxIW_ReOs-xBXKboXj5wugSGAbuAv8N-TBXqRJ1o_rc6Ur6Kn-_GqWlsaQKHk82ChtVq2lDM4iGJeBhqXNfIjhZ8-9a3eL_a-bEbBuQ6vHCJZRfffN6Brfct8AKGzgHohjWtZiSOkxCplb0uRwPpIlM3nosM08HZF8u2gSIiDPYbz0oKD270hkTs_i80v8usRNJM38uxBGfuYRsJAjM4cr-Q64a1QIs4sjbpvc1e8lCsx1uQAhlKVNxiM3cEcyR4N4V9n7p_viGGkvLemmmOrO-vwnRw7MwTRHhktd-P7bc-B3sYj-zcdt4_i_4IvQkTKhsPlS87P7kc5hH4dwoYN3wA3fFx6NBiWinRsHdAKWPyiRYvv3V1PfHgEFJGkJ2BqyocohAACsh6F0nintUQDobR5BD6I1j1qO1FeNeMBCErdKm3Oqoxh20DgvqdKdQZodPWrzcoQC6xFsm8WgvS1UCLWHGEJNgTCnAsTZ5M8DPALxNNe3Qd1loltY6aKcGbxeyGlHfgdE__o8xIzz5bELSLcsrljQTXBwyzdFw3wmndoaHU9NBSwijd33KJcGBYkihpXgK_GQDNWvHBJDoOrmZjwmBO_3qq8tAI-Od_VpCRv6ni1ZZwVKxNJZr9ttwmOQPypDvEO29qisjJ_mgh9ySERJbW0F2jICjk4mBOwUFBxiDQJ-zvYGSJ-YYZ98U-V-s18uBg-a0wjCyqt-9lzPsS_btEziQ4SzUigVEM72GkAV4RWkw_HOl6g0kuzlU9NzGPPjICUzcB9UbGWIpT_dXQGzjzP5jvVnf2hvH6GSRO_Ria3Wspg_09fBBfsCbFQMcQ5ucxVzkoox-OVHCQOVbOAiZLrwJ8k4jzLkSf5JupoqYLUmX2L5v9AKPb-BBAdNqZVdoTXLB_X-lN0ubTwAXDAyIUpkA7VepYYqkMErUeqLRO7MB-BbQFSp3822kuccqaYLNWSixg4Y6iMWXnqT5OIWEx1QuH0wVwJDZfDP17Wv_CT0hoktPN0SXdO8y-f5iCPSO_M2vftoWJbPgyBfEWgZnyCWCePkTY1c_tivhMwIRNzL0ZzQlRP3MgUiW9AEtGQVO99ZS_rdMyFSM8mblF-MMg9kOz82GBXx4Geo3nFka8K7Jh-gJqSg8NuJVCARbMmMvzf2Z4auUBFvF9NOrGx3X0pXJPzjmsfjENtIgolC69dFmw26z-2Fieadjcxw_XKxFQXATqDshW22MtiuZ3kxo0Ymg9j8R25uLzjxpCgMZ7LeE45Xi7ykw680fUzt8Oc1jhXri8LjMe9P5y02iAMyqzqhlKNVAUNk5R3HQ5hOzqDWRpPhQlZJrC2zM0HWu7zzTHHfpObfkWKEnW7Umej-nTLqeDshw1-YKITTeYlo1engJLaH-mBro4DMRXLp5pU4T1u4nMb-GM3KPf3iN2WTE9iUF2lMkL_M8W8D0L0hQI_OppBNNXnX7TeiAdio0LSfNy_7Rm17HWj--stssGRx98VFMGLbW9fwLAEDF4cbIDldL-xXnTVXEU8DqtJ4Q5_iIVW1RNROXeSPlRKqqaswEdo251AJgBc4BpHl2wFReZ0KiLg8Bk06a-vc16ZfEw2OPeU7w8PMrrPxvSEhbooq1cip4SPIunCvsrWD5fE-nIV6WuLwXr6YNLrXs8g9rpZoWNriJGALq7RXcvdx2aGTxQs-wuu3eAqFu_sRSQN9Oh8OzEY4L97LjtTUatSZcLiHMk3XJ_Dmqi82FSH1oHttRT26oBUbcS1r7f-revLGOaqIQOUHv2nIf8simoV6F1xOtmWwk6l7lkKPKBFV7A0b4GhIbjCfD58vFCOnmIeTFoZyFkhF8REwWK8EK9PyazMOeTOPse63qEflMVtoANsmcTS6Ui-wCr_RbpoEZIfSDvt2ypEiP7wOhOtDNJwa_GFF9rmwCe0CgjA0AluKbeeqFZ_hiqygAm6wAm7Bns5uRAu3BbyIjuPVIr8K7BezYQVNz6Bm1Y-38-TmUmXe9sdpmiseJgMjFkQ1unStpZS2Xg4_azZHd0NZZ-or8fst0JvxRy9ELWiarkSgwF5u0xsVxwLDw1cwy3q53L2U1GKkdUw9r_GPvvrwj4O4DOm04X3ddVXFVig9FIgcc-kFT72SAR_QaJUzfP9SoxItm0qXoIv4ij_F7fEva-ENQloFFmHqMbIcRvUNkogRYKcx49AiLePMk_QLGE-877IZcmYKm8iOPHDqgS-vIho2by7dSreBdlT5IC8vUUk4xvrucX_LV2HZ1IXsIFb4Bhi-b5BYmRyq-uaw7ssmdwZSPqpkC8Kj5uMWXx_EOa8cqftLLuIsN4yXNrqWRVe7MU1ev1rHYl_LpOF5DVxQGugijZnyYu6o1b_IpjKwZhZCg4El4_DyVSFLoZferlUgC0os8DXI6BWcYcGzehoZI6LYfmrSaUoxbl2Z5NphSWf1lT6HlAOKgx9LLge6OqFE2QqqTeSZN82JnxJgVNcXjhf2SME4gfQOWj9pIuS3T4oC4J3wE7LEDOQBSBNsQjjMIfXtwJOO3hgFnS_UOonpM6Sp7xuLaL0Wt7f-VMlZo5ctGyoaJviXSQlGPROwzDQM80jxRJMFLT0X79FJD_xoLJ8KWdfoYJJhtST2wBhTPvq06UEw4ZdtddYg_v8tlQ5Lz0zt0KpwgRYhcK-JAYXZSc-Lug1fzF2TV8aJj_55ZYFpHFTbtxANm00yaOnzPvWbjJdFzf8EwSsWLbr-IaNgEd57BK94KOMlQao_65RNlPb8O_hJ_EshB1_RFhAXB5Nzr8YjhXsgH2lT99y1tfMmhLh7U4kc3GElHx9r2z4fZ-b8VmqoE9y4MJ1cSsLrL2qQKRcKUIWQoCo0HHz6lG8O1pBoWYmLJ4v0NH9YcffPbR1GXZYPzfFZOz9R7W1TAAwxmkjllos2dKHpX8WYDch1oqBP9FfGX2Ws2OizkPNmhmiX0QcJ31xpykNC5pgZju53cmrnYr8F5YztS2YdioRB-G3HLCbu2ypgNptCf5JzeP5bzWanUfOhRix5QOVLV4iXCV5ZEHDwLXUYjpomWIRtcNsrt7bV4NNo7UQU3ax2yjQbc_YBhy5lGJJav1n9vQXpWCv0voyVvO_K8jMAT2ldFbxcNjVMR5QpaKdm-ZMDHakUC5QadAtBpJgViicPBXt7OxE9J89C88t06fQYcthc_adJw-WV9XfT5jWVtovNfFIbxwwvs-OpqDeCgvqxLiK_sujZG176QQpueXBGdRJIQEU9nI8w_zOpSYlnrRNG-RXujwV1JorJsnpqP15XK6aEDdmHFkGH0F-0k9BLEN3u1ApH_uiKrJkgBtZx7OUlFJSOA63jV_BmNXFClY31tPVfI42PlIsFVIWURkDvgJLdglY1HP5Da-OF8Q5cfluwb05Uc5WUzoj0ILSEwNjNXm8GTL27CA8mlzWQ59frQ-E4Wj-I2KflCP5eStwwIG_z6twkh1ESQSxoXITtUXfrLWlWKnboEWKG5Rrbi9TG1NWMPh_2XdLwODKQJ-241hv0AV1Iamq77oCXflVyHb2dmAMbLkvU3kleExT_htRc1QherLQZ3RGYvJbAIBLKJnmL0M8ISFHVik7Zto-u-vt8L9XsdopuMvkHfG2IgI1fassqQrh7I2VJ4GE0U7ZuKtI3VPVj7G1-q95Sm_DJSHSo1UZK-fy4JoA1X1WuHFQgCiTbZwnDop3MM0ZKmUHyGgkKY0xqQNZShGmJXgD7yZcwnswX6tTOIXXMbJy_lFs5zkT8Clv8cuaMjytvhPwS0V16Xr_yOytcBwcPSNctdbqcTocOflAshC1HvTSF3mMTI8WlqvAYwj4LFFxiCshvLmgxz1Jk2mtJNnrSfdgsvkY_Yxww7dZ0YejTytX_72tlpQ-nhG_dJgOayzUMto_kmEABhPP3mreaqlHgLrNjO5h05KU6AclqwJs7G61By3leRzZqjabkuFk1jDAWcYCqZVtch-iI2qD1ItdJca283Y_nEHkDRzgeZzJsK3-3s-MyzxArA-dfuRkzWIGbej8QMQfDe1PKY7YjqPBklLkgzFRkgtN58QJxrYlMP-UtMrr2JSz80J0UznfHyVi80o26vXhoHfaBeXhZQ23NFZFwyRLdiMSaycfoauzkBlpU2dLgFDKAp_9EDnaJNQT0MAHhwRGsLgsoOh-2NnC-4dC0Vt2WgDOO9utE3nyBNag24PPCR-hHbfSEsISxNdw8_LNQ8pZTA8NFKWNE_d8EbZlla8ri__4QMVowqZgFw4nTKXOJghkGMJd3Du7amu_e0ER5HrZtrYCVKZzO3MlrRs52UNkdhxU853N9auRVor1CPFqiW9sk8uAFRGaPKloeVfR6npBBaoyKQ_QV3CSIJ8_hcjm7AwSnVNEFsh1hiHKziyMwRr3t7wBg_CMEAtjtm__ho7g2ByCRIurtbYiczFXXIaNVA8dMmDlcbMd9Y-ewJWQbKDaA1eTt02RPnDvwKjeSIjZ6q0SAbtjac_PHlldu8_j63M9frMQxSQ_R2eOshimuLhCpX__TiemPlQJKuWf7hvntk8ciu3fEfVPncJMDhdjBkEUG_WJfq8xFOEuJpjpOly0pLrdMrzMv6d-JUIZKZaOoyUC95rfMlQBF-ogjyo7Jtt_LapE0rIad1xB960wE0X4d4fihw6-N0AWfkJQuNkoICBME5tlRpII6HpVV17GfM80e0Q_o0x6kR90SdWbXhVmeOvOr6szY3QhW6UQTD-yQHklPYQePnjOOcw22zpDs1Bq92uMLs54IuYMwBNjcw2lc3oZmY_mKUN3j_M0hUx9U7i0pnoEg4i_z4xcCLx5-Wvg8zrXVk6SacXsYWgZfC7m0-CAVlaGuin2UCOjvu_JXAf3diBEHekLYlXx2U4P3ZSxrkzVMimWC14qqNlJYnlZndZ5sj1uj30FwvqFP9R417W_gjWnHti6xF63MbQQXkY6zixok3jShZBqtmT3Wn8cv4m0iw9ib61Gt-SIOvgjp-j1Bu92_AQ86vsBEroUBUM5Tc1OT3Ww8BQns15MtEaM3L5Z3OiaRGT4RNKfqmvPVwNop7bcf3OZSPHLd20snMFtgTE6ZxcouFJM1A1YDfk1P4PPyA1XYdizEMaUXl0DQ2EZhkZ_8_2FmZok0UCtu1abqKe3rkYjB06rhXXE8OTxXGh0utB31vrYBZbxVWiJ4pnSVZMBCTsdUhoZsQ2kwFIfg17bS7kDNgoHVOLzHgqRUbfuWREQByXNNG3IE3jpTi-0zZmzCGjG_Oxv-Q-h0aAJVVLinq-dWrGyqxaG8OaAB7VN8d72nerd1nwd1X16j5WJ_DW-Dk7qHXk6lHELefJ3umuW8mnJWX4u90ShaiRs9ANRYqTpIt_NkiC3E1z9gUgFc-iBRkSgJt2fLk--1v9paoPLuFWEW9IAGNZGC6q4InnRL8tuBUUynxaBmUp3sebF_kTwqEvked8l97zx7AR4cFps7yqrpfLyR739HhHQUjm9l40wms9IoGukYoxUKNkHVJX-svNBgXecVLQ-xUnJ_xMZiT95RcU2eNvskXcoIKsSfxwHHvPljyplTVXak46xRSnmhdsOjLaeou1lcUV0-UwbQSCH7TYgQrO2ZWXBZYljQrr86RDNUTuOKWxJx1LeNoIqkosk01Bu6fyvhATkX8pxRvtcYIX_6ETl15W-RfsrhAkRhb3z_jxyu1P58UQWW_CKOgQ9RZuHmL97ewLACaTpUCxpHbBjymXN35BuGXRR3CjVwItqFtSASH1Jxc0urrOBlDGq3QmEywFa7wb0prAu9scLBvXav0cqwia3S041Ax_ZV38bx9hwn9kojtjtUs70WOyBb3A-RMiAJZIWyjBHrOqjxzsHQku_oOtTdmfegJ-lpQbWbk8suUF1m03ll4FGXCkdSaZgtIVF7hgNuK8-8WvLvBwGBxCShhjxPLaJRz4xVhzQ-uV4Gau5qIfO5rfWm_JsjOFqCT7yve9Xzm5PXF_Q1Rrry_wpqG4WYutxdQMEN5m47NMGG6Co0kPhbd2LgS0CXzPSoduZcXt-mK-sEWiwXxTOyRpxtVXYUG_WsmJ2nkyg5v4Zg7L6EVKY3Yvo8AAVqKrsnSCFmMlsjrHGJPUZGEG6d0Roy0Y4u2Nd2xy4Nxw7BXSpJC1GMSKBdB35exQ16sEQFgeMvV5wbNzK0DXLW-fh5ECRH7bYGfesiMURdiAjaemBcsgU7hlSzXgcJ-UiU9JT8JZiZSNx4eX0yhzUqcmOv7xtiuJblR0MNtBSF06Yi-3IVBFHPg8hp7RPJ9L2asioxpUW92kmInh94WrsbTh2TbiEqFIaZYf1WEB-G2-m3o4yvh5dYSVJaUbpD-pNaRwZ37JBSdSNa4igKt7T6sUX4UjryMBERbre2AKvHESlkcgXV8qhMFlcx1i-ayUHrnOmBSEdHYBCqaZ1yvK3hGRKyf70nffag-myfQtqdIkoC8Odoe6eu7qcsYbW95ehbfxmDwmKrBFwui7BSToC_OnETjOFUiA5TtlQKGDxEDMJC4wiINGKi4o3RsqjXQS5h_x1vXuo8o_aYMZRQooxyO5EuVdnTicBiFZAyd0XA58dsjuV877kM2BBIN_uzFbpJ3JA8_AH4SZ7rLJUsfAeZA3h0xwltjwEzSvYA3jpmi-ikdtBQkhDuMo_xOZ1Y2jOBlw2G0l9M-aX6k82Wgzzmh2mIoPmZcuJOL6rbLw_WEBzyLbxHwUyxrNkfjg3HP_39iBOwhb7aK1z_G8_r4Zv0S-EStcZ6VXM0PCJXHZka0RM-JidC7iu7emqPTI7mcOvoahP7bYngL3IHhkah6dl18qMWfWwVEGLT_kL5KxOHA8ozdCy7cJWX9SZPjtUIfb4WGZ9KKIFpm4EjYaSSwB4YkpnGJw5gPJbnzNa036vNBH1uxEWEiCHAyjR_Rmgl3mlo2v9zbp6qeq-Z4tq1RlZwRhq9rYquuhvMQprWnSFJF8_45NR-A97PRIJ9fImuV88B6N5Sx2pYZZYsSkVM2VRJpp7MyrUWnMM79KYnhxR-MnZLTmZainfyAbIv6KSID8E8Z8c0UAyGYBwVh6pFhcPQhV8xJkJrRkn20ABg-srM79LcnO4h0V8D8Bn7bN36pdQJ94KcTUQBphZVui0Jk5lvOG5EoTR9fzd7xSy-db06bNOuunYSoRoAMepJYe5mgAu3Pmv-yg2cbbbOnkvlS9T90ezYgfSy2WeQ-e3ARyXI6X6-pZDtuvhAtTIpc0N4UWFAyPTcrQvW4ZBr6wRQUjij68kZg6R2IAhDy2vkArJ8ay-l8Q5cDIMCQSdqil0-Nkcrc384Dda7431DKLNQnxZhzQ6jr0rHrjqQlWMxWcFWIny5GK6O7AAqJL1z8RI7-VguJQOaxUCIiPMk1j_omUkvctBw5CnfZZbeG7TYgGGr_GNTnpJlxDPPkx5og4F7t0sVesKIeMlTgQuLRmUTYQudOat4r6OJo9otyqm0x_RjpbqQZ1apBUBYxO7bHuNJewp8gjO0N5dLwVmM823zMELOnSnxJVYhOO6JmvwWygwWk6atAsKC1ykgnMWEF85hRFYHFLjtoIXIJa95DvcD8c10G1ZHwUF0muSHwozNyHS_wQMAsjIwuS-lJ8AXpxCEq6IiYwXl9juk-cB-8AU8hErmRdyvx1b0QCCU2Yz8IpXbC1_BHCIi4toIGRj6qmBhQNTCjgkHbsWcm6XDTQ5MP7PI6FnIENTYP2sLyXI15bHaVXYqRbw0DCVwxYl_YxgSVFmcM4IPBs367-BY4tz4YzTN9zOb8Cmxa2Fi0CA_cPFybdsYuqkehwcIguxDVcqFd6dhZAHqs0dldYYzUbQulQBfkMye-DYXJgoVGd2DM5RXYjSxjA0i7tQ74Og9Wh4J5-9DpPhDjA4AifYgatHoyVPrm0YStmzssOh9lTP3BFhZykjtdB9MYYGTpnVCbBinY72HhOIyMD7vXvq1J_tIxXyvDapJ5Ibjv0FmrPXWnLjn00nuerY9EAvAzgobeISacBUw9-OOP1cd9jRnF0Lxoyp1xOYz8vRQM--9XuT2xKoTsecbE8kmkSTrBsMxDSOcH2ujg_WR5bN9cwakdJLhd65Xy5R2zqiZeAYcEOK4qvoHCZ7Co5wcegbt45u3nvNw_ynJn6qyAU1y1x6ag9XZV0aTfgMl7M1PFt7M55dTDxjkYqVLyTRW6NwcZyYQ7PL0uwvNtww1YMYUssSKKCjC_BdXzj37bvzaMpjSnQVQjjwb06ce-aAL7S1daKRKenKKd4S1NixAIaK_yTWffmIqB-84fSLkYmuMDt6FS3mRJizFuMFjNTy1kl3IF255jgrBJYOkasxamaaa927qidDgUALTfiBJNKJ6O75CxjeeXDPMoPIMv5vqZNa2DTRplT3xtADOPfzMTAV-QJuGuB-jv-M3gOHOhzs2WvJh39obbPXsxkuSmcAxxrYYyly4BRseJxDa5J6zmfR06gzqfmVnpsIyj-xKe25B6lP-Dx25qZ3DVk0h3HEPhpU7QkoB9T_rKVmVoCLiTmqIv-ZLNVax1868HXdCk48YutIFgnfCe0xhPSOb2Xow4I8ljSRRVwZV8G7S_b_EwG4mjNs-dh86UIgJLetro7Jgkl_EqXK-4kDKDY_1i5VDO5lQbYQivxaFIVzbsnxR2x0NwkPR8PWPIUxTD67J4VKwAH3lwaqU09ymSlcuac7HYwERMqrjrjN53yHjmZ0nCv0UoadNZJHp_n_3XWOeVR46Oa2Vt1dkq6_M-u3k5pzoEfs5Z9OmW4V-nU9Z5LXrG9b0mqtgVenDM_GmqMrw4b-e4jfpxOBQnHP9PTPHqbyoAcYobJX-ntfoYmR1Zge3d-iI7DpHhqo7oDkOrlJE9PbMBCXORdkNmu76gk_graOTrJpaQYA0D7xCUaLZU6BIyr43XaCZfifEs4ZpPqZaJwAi_PKK4Ix1-fssZjtR8qvsh8Ymw16HzH1og7nND83Ir5bdIPaw8ZItkcLAOt2Nk1imgJkwx1eQoKpJvIljLmBdRn9wthvj2BvJJt5NV-Zk6eHPLoYpL-qUgy__OUZUQS3iaejLVemcx7StHn6zA5p6X7UJ2B0o6PKJr-KOoWozLgoUurhoiCvOrreTzurFevHIFb1BHCi3kcJm4e6xJmJ3eQS-GSGB_up8uymNA5EbYW_dsWjjBHWDFUGQH2E4UkCV7MDBWoo7WrLiRG-VewCwQz1TvCC_9GKlicOSY9eEGCrsbheTF9fhsVTsUQngLozTY22jOmDC07V_p5zmztlvs3UuAVBFD8IGpj813Oz8DwplW-sNYYhkxbNVjJ0PBAYGDcpeSktqcgfLnGxCJ1gqB0sr-fNYqJoQw4wffquLA8kfkppbyS1dnXbd5jw2B2haY_kZCf8hssdn2BaksHN3cJzLPOzdFKiBKn2qFUyuHkRwMJPC60pIzI-hCVdC9BmGCH_Ur-nWHpxW-iyEIQgMHHc2ZCoebyejGbSF0nANCEgYb0nSNJu_GRSptW7y6mC9dc7H-ArZIvF85a0DMAfBOKdLcRMQE13VYu805CeKATV8W5qymGvPG8UiZJ0xONVkMvIk1NnnsBqms1NzN4rw55bn9Rz9kLVobw9wxtXvhe0OrXtLG9tQAFspY9P-F152QIjplyCNUsHTj1vH8TmGJ7hjvVnC0veCT_O4yIPFW2yEe3haHdvFku85Bzl7-v5VBWVFN03tqjATepVJThyHUkqRLj8PE_8KxAwVKpyCL1EwumgK3_UmRd84NUHZ4NJlaSzi8gDoej1-A3Br8aLr9Z8KskrekNlOlTlz2dG1XPTpIIiBdJaxmfPtTEa-9wokLXEl9szcWtwwUtZMKu4NA469bnOc4FJPlaxEIFbE78u8D1J5-breEwzSy-J4s9dw_ws48jQN2tQbUZjy77rr2r8R3ZcLcutkQJrooK1mS_WdjXi0O-1OOMDgEXhIBqhkhzrh083_mx5-SdARSZbaqMOiF6Mu_1T8mgiAvhaDiihgVj325qourEVJmPmNkWMlyJ6oRK8a2DqFyBfocOM9beYTw3dXc5ZbTAPOGd1pIo4_sNFhHq4hnIE9bVkrR0SP3VyJ9oj_muQmvqS-6uFv2xqS70yuYiJRnql8viTP8JsghvMRTA_bbQ3sfjI9pDJ-K3RXQmI6H9txCQJ1_GB_pSgMAklB7ouHYXOpZKX-WpyikK6PPBGvSzVV2qZSez-6n--gFdIAtkPxwDrXkET6amVJUmt-MXU2E3Kedzo1zF3zSe7hGWW8QoYMXrVVl4-pK9fPy0XdufSZdTQNOS6R2oruY9qDBdSwfUZme-3JFid0LFB_-MzuF5Bwcn2bsLVvapB_GTJhitQLDwIPofzdnNijwXu8yaKkM31CsGjUfxQ2-XMq24_bSwyXzVAgLjmpocVdRx_zOckLBqEO83S1-TzQeyjvtK98DlZp1_MtUu6EbubxqliC9f9p4OgL6h7eqPft3Z6oPYXBU58mR-CbRKtv41so5lsxmuL6b6toFq2N8I9c3qLMskjRoKALDgdxkLcu2ychzWIAk97LgmzANiwR_Di98i1wsrNNibGZwbaDM_QzoPNNkHtOrp-M7sLosvjVGgOI6IV8SEDDsb2A65TCZgOnMmvoPtkqQlQbIYjHtK9KTcKCmErq6SBhreYaU1fGfaxMWUywOMFGtQRV0zUQWKSuAKsluvmdK7Fi6jtWIpsw1dCQ_eUgMYKbsCfXNMc3DJsgRoLXGgmCr3_jjUUhOSUB6qz_6t1-nNGaaadZ7BYuq3oDsGYQN39ar4xAtAsR6VHPytBAkmoJDV9KG_Ru5o_YYgUZNgoi6IIYM_SGRaGaXmtyRMQoAI3uO8VFB5h0LJe1yiUzBI9ppumqTq1psyDXjimDvNDOZQJ-DzccN4dBEpeJaD0KR-V_hJ84UuTYe17FmhfPUzvXyloViPutLt-BlJe9BlnODenNhR14B8oFv4KzY5m1GioF5ZiNhXCHeLIoleW2YoX8QHZyTqMil7j_FsXGg0Xlh-Hy8KZIzhfLuWZS5CPmUwmZBPz0_YAx5zks6pjBpB_uco68Np5RVEk6ap-uxAjjIaTQCd6DC2lAMawBC1k8HWV9SnzEM6sZCBnUaMfFwGz_rK5X3_VnI49w1bAoJvABiKRS7kVin3msUqIWLbqadSzeK5MyMFgSWzXgr6ObumowhNLjRovZe0WCPjQRLYf_GJySsnucesbNgOV-0ROYT1h-CdIOYsnWNE99QHAhVbaBsqaXbUtM6ba8XTGOC9SJ0Lnk1PAgWLUGzl7xPHDhWjgnzK4uCZdP31I3JCAbD2d-Hy4K5LpElECMeg0NxfXT7IJFTiHpvg2nlUZC5Uv0XPNXdO0oNo5phWs0hAT2l_4TotmLtq3VRCmlr0DhVSfkoH5-yziMP8TGW6eorwpoWjOkUI3mDD0_GpWXqqdRM549VCX3xyDQSFzs5K8alX8tmqYIzDWGThXIawUmd7ymSuw33WNTgmjA4FW1_j_xikYNTgHeoZTHYTsaVmh3HTR2pJx-PzcFFA_A_O4Kq_xo2ELMdzg56bW5BsPzbKIlIhErFns7OLKRADRvTPppYPfrWM1VkihWWuoe48QkyQKQKmotQUnBpcvrOXDWiO1C17GI1TmTGZmtG0Ntd00JYUlnAAwcUX7WEp2pe0E109sCvDq-CYCAM4z14ixexAaHFIGm61xtLXMuHa49XN_d_Tc9mXYMePEvts0tr8C8AcKZBTSmzEDxpmPuZr3AsmXnKmk9j_31iqTXAbWqJR4VH6c0i-56jBYdzzXbIRFcaItP-bGkh7BDqm5ssguXvMGEA06FilAo61PRf_pLd_1yPSYgMoo5dYFqdC0gLVgSKpXXu8BZ_XM_X0GTBEQrQFZnFDEXO4pUVz-4DGwZGzT3q3h0wY6qWDFKFwkbYU0jQQcrvH8mrRX3bPnkCvmthCdLZfpsoQ31XdkPKLPlgp9VIeN62-kUb2r4mxtcwilsHmQ6e8lxAr-R-WPWL-9R0ZVfk1RXlNBQAwNCMIAwOjd2nH6hQaOKow-QKvw";if(!e)return null;if(Bn&&Bn.sealed===e)return Bn;let t=null;try{t=Js.parse(JSON.parse(yr(e,p0)))}catch{t=null}return Bn={sealed:e,bundle:t},Bn}function Vt(){let e=Ou();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Ws(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function h0(){let e=Ou();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>ce(t.slug))),e.keys):null}function qt(e,t=!1){if(t||!e||e.length===0){let n=h0();return n?new Set(n):null}return new Set(e.map(n=>m0.test(n)?n:ce(n)))}var p0,m0,Bn,Yt=b(()=>{"use strict";Zs();Ye();In();p0="tokmizer-default-rules-v1",m0=/^[0-9a-f]{16}$/,Bn=null});function Ro(e){Iu=e}async function g0(e,t){let n=await Qa();if(n.size>0)return Ut(e,n.values(),t,n);let r=Vt();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function w0(e,t,n){let r=Rr(e,{...t,keep_failures:!0,fold_passing:!1,mask_abs_paths:!1,transform:void 0,truncate_lines_at:void 0,max_lines:void 0,on_empty:void 0},{verbosity:"normal",smartCode:!1});if(r.trim().length===0)return Ie(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
76
|
+
`}function Cu(e,t="normal"){let n=Ne(e).split(`
|
|
77
|
+
`).map(r=>{let s=r.endsWith("\r")?r.slice(0,-1):r;return s.includes("\r")?s.slice(s.lastIndexOf("\r")+1):s});for(let r of d0){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:y0(s,t)}return null}var Ru,Au,Yb,Xb,Qb,e0,t0,n0,Eu,f0,d0,Ou=b(()=>{"use strict";Fn();io();Ru=/^(?:(?:npx|bunx|pnpm(?:\s+(?:exec|dlx))?|yarn(?:\s+exec)?|uv\s+run|poetry\s+run|pipenv\s+run|hatch\s+run|python3?\s+-m)\s+)?(?:\S*\/)?(?:vitest|jest|mocha|pytest|py\.test|playwright\s+test)(?:\s|$)|^(?:npm|pnpm|yarn|bun)\s+(?:run\s+)?(?:test|t)(?:[:-]\S+)?(?:\s|$)|^cargo\s+test(?:\s|$)|^go\s+test(?:\s|$)/,Au={normal:{msg:40,diff:60,frames:6,out:20,bulk:50,repeats:10,trimDiff:!1,changedOnly:!1},compact:{msg:12,diff:24,frames:2,out:5,bulk:20,repeats:2,trimDiff:!0,changedOnly:!1},minimal:{msg:6,diff:8,frames:0,out:0,bulk:10,repeats:1,trimDiff:!0,changedOnly:!0}},Yb=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,Xb=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,Qb=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,e0=/^\s*(>)?\s*(\d+)\s*\|/,t0=/^\s*\|\s*[\^~]+\s*$/,n0=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;Eu=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;f0=12,d0=[l0,u0,c0,o0,s0,i0,a0]});function Iu(){let e="njbqMWIA0iPXGp-jqxdzZ8EfqvnGpVKwsR_7Gfg6LG4_v6YUsRMTkO-CspkCOZfUVqwRA7YyFXZIttzspSUwJv0UK8Cv0jGgjyZiLGhK1OCI2MsIaqAVHyR71tsDZ7JrH7SRGDoRk4pujlAwhvnJF9Qqn7zrHhBw3yQ2i_-DT9Fs6Jed7VnJNh8W4zKVI6evAwitl9oijb8p9bc_WeXrtOy06bU-rlCsWiT1_1MltX8o7EoHlu4lcbZNGkNsugQddBYELLaHPmISHWkF4k9_HJ7gFFRXw6CrqauXWmswTrtLnwtEP9u8FTU-lFQN_PaoHTrQIDyMZbpR0a898ruvqXWG9Dgltem8FL3djdkQgjOQMO3A4Ys9sfV5eKXIbT3cT7zFv6DKYwR2knn-yBcm04N_TcgsUrL-1uGSycI-cxU9iaIjgCN2Yh2cJMhukvkoQ0dxcM17Jy2X9Y9kBYbBJshuwdLMIFiT6UmayAOsjj2JQl_MqdkLPlDMFMA1ERWD270RGEkRSoTQujqjFoRZ3M9TCBknF8ksLHaam3pLT8PStDk4Msx1ZbIaa815IWi_4Yn1kTfvQFdbE_2XofT9pEzFe6iEjYLqEP4llnfuD7fnu8BSnm23AJqvzN1JgclFMZPEdMpWh5LdU84XLZ9EB7dtcGSsRgD82dG-mqeSuerFaLFkmnk0CEK2sc7Yd60dNmO7krV0z28H0pfrO7FXykv49wZyaCo_tSGGvzpIM15t7oIEEOd2SU75XFjD5l1sTwyfLDyxYNMKQn2sbi-cEt1IhYWkpGsAdxxC3840hNE_qH3ZlMEIK9cXFrnEPQKJmZZp3ijp9F25J3r0GwUseqquR4ZKHetPuX1NZj8lTMfmrvSf9SoEoGQl4Fz4K8IrBkiAYzrLgjULJODrzZI-YvI7Mx_Ce-NErgWnBPlw0OqYb59itj10JmGUqzNd5fTaKz6Y0CV70pLQMEES8tsAzgrlx1zFD9eQDRUZ5Aw7ZHYKc6ngo6dPYsx-OwifAAD88oss0Yi49AvjfvT_3jR17jD1l6hIJHrUSv_a_kQoeGh0CQb5t4Ts0MwmoZ7OYqN-3OIhtiDDGpA-VTwKej_EYNa2PKwHiSD6DrmfXFZV59IV9DEY62oz_Q_PBDbIXeaj4nQcazjUgWx_i5nL7F_CL8TCAj9iQ3WwXh4a7FUEemnc63VLQH6ya75E6Lw9RIxh173BBvukW2JRJKJEu5fJvxyc4jfsqZPLF6GkhBp8AIEcFDqSycuaAqEPqLzl0SQF3kMwPEVC_mx_gnNjUpaXvXbI5-VKnFtzTx4p7nbvWaEkKuh34JjWDQZvpqFGaODLIHJJVEFAkdTqIgwfRmYRdz3myAmUaPgF6FfZoZIsynkQLyQe6K0W6JkPUmYHt_j4clSYg3lB1c4s_CDP3dUbXUkd6OKSGs0YbXMErA5kgNAX6vNleOmedfxW_W-38k5zt9fydtJE0wbBOAuYcIb4FAM6lA7OTPqPUGZBp9-aJa25sFdc-N6WwhYAn_-J0-ADukYM55K3pZpa8wr4rw4QuEK7KQvtSfh3u6m_n1J5H7BsL80uQra5v2_U6Rf4xsXWWoGa2azzmS7KUHCt7q49da6EhXZCxRioNJ7vjE3Z1hBcuM5tCF5mieRGznp_lkaphN7X6MOgWUmk8SESsfyn6zddFFdFpTZoYecH_Xg54q4X599ruOybyzbhH0sp5TISjsV6Xk9jxQM1xHHhi0c0fEudB9tcNZN9laRIvq6g8EiA2k9n-_3bQiSMj2qWpsQbCkGWkKlzjKhbamjnalXMr6srbIi0aSYVdls16_iKrU5aJBZUfFQfzn5puEOpVhUDsm_T45Hk6vBjW3wKSuurNazfsV-Q1lxIUfAy87RS-J6y9PSThuvezzs7gXtaMKSE-8B2CexyZGNF_yLb4ESV1A6qpObghtZZLncrjSSu-tBSocdfTqzRmC89Z4HTp2gJWYrlV-Jph-GKlHN5PuyVc08Ij81lts5yW8RVUliz7zAyFjd5VRyhrK0CFGNEY4vXsVVSX4u132EeeEHnnFbRFySo74AlBJV8EtUx7kEfyeWuiMpkgiqKz1VW16D4K0sJEuWbGFQ339joXW67AA930bfV76ngztuK1iYxeAhDVBE7yYT26LYBv2jAEsjm5aGGOUR2-RYFgKyH-atizEcmuu3nfxfM8WdRUcUz6rzzFTk9xIjfsRrvZcFZM3EuhiHY1PGDenPl0I-GVYmTL9_hU-av-92yEbnNZ9hyqK1EoVgL5M7S-lro530bamLBggbXDa1T2_DWpzyJfFGPLVA5h0rM2x0tJFQo2FJ_ndRPHpvKouqyKivTC0fdmqbqH1xc5N6ISn26A2yeo3CJW367KxsF7r7mMsvsPPP1Xfq981EdDiQ7PKNzX55uzkbUd-oX1AGoHhFt32LHnLU9dgYY2QiwrMerQHsiosoTU2T1ROR261zszLtRlRvXktFBe7HJKlNxGLXyBA10P5vLwJsuxW15mO5QQAab0ZABnSHdBg6ujqeM-2TAR9Dh5WXrU-0I5TQHDfX7vMlrY4BP-bRlfH6eSLJnD2_hJcAADAiL5bc8R9Vwr7abVi11_rfRTyPDYI8T53O7qjSpVXYS0mjAXzbgL2kY4eh6v00EtHMShAIF3R2KyQY5Q7dBY0ZFkWZiaEWxtl-M118PpxchTvdIqJEHMs8D8xZkvMCbXOn4IwpMCh0lJzrg3PAEVr2leOpiktc3JjZvT6IuTP94f7WzTdVNtP6gJuZq2iH52YM6JFskD2RQiaa-nZHldPqvOQWbLCePnqvYKUAvQNtr9Mavtcyx8Q-uCaCfrMVXwc5E5I6O_e9NUQ3SePkUbpl9MlXpNW2Ni3EI6fPLctq5pWJhduscQInU1rdTNc_z-_aQeLWjn0gpf-rKHsfEOZRnGWlQv-pB0XZKJeCVQ-XthpgmGcHMoXGFE4eIVbS9x629iKLGXvzF5o2KVWg18rQiiE8zEjekGoSXq-7WBHUquUu3QZndOv_Q3vjcAUjZXGS9MOY_q1jQguEJQpKkphsPNiecyXqvDl156r3g3c0_rMC7KunC1VSeK1HtfQOVmYgi9_gdpZKiV9DzQspzQiHGQ1UTYxkeWSunuUxA-nvgbXWkgW4iCaM7PpZBOuEX6e3Z1VTlozv9G7ojZSCit63MiRvqoStVqtD8oyWWw2Kkvy9UCjU0BSjBwDbhR4pg_cYyb1poUV2TEFhLGryPpbHMMDcYUBCHIoA0Q1HOnN29dfxinp889Znlb_8cQvw70H742guHoQTselEiZRtH4IXnfZ1SEM7uGD0ojE8rMcWO4OIJNRNLHOwAJ56HQYp4zwpqlIbkjAg4l5A-L9bykxrTEwaKuQTEptmM1dx--XYlvfC8VrCCjVO_5Fe_oJa5HGvxcNKLorNSBk1CRYSSUXoNURm637wAclfmFks07uPHLyrqq2Y4CfaAD7hbEgaOmRHiDFPhPxAQcVRZoR5dPCnBP3sWoWHkeiykmYQgCXpciZ7sy8IMi0WCNQ7hJz5JpSDXYafb_lJ32RtlRqCDZzk5dnZtlqqJXCymbw3wUOk4rhX3duFIigE4Vm0lk5npboCRACYsaP_5OMQ2QlGxHibEVXv-NFNUxlxxungdwUBCiZJFAxGuhu3Wvp232uYXJWa5y55OHB0jxJ5zWCd_KKhQxs0DYs8e5-0HMGOCetfdpEDt9cfn-yQm7m7D3IxZesIDXUGFcvcAJuEQj-AyCMKQM0FPSOaQ-f5SE_koWERU214MU2sgyZPnaqrLcJWxbqhAtBhbXLmXI9W1R5BOqiH3yyENRykuJJ4zVsYFy5qEyKCLzCozeyxWa2Uulo6Y55pFFwO55sgti7GeYlhpoQRejxaQUtkK2S4D4i4_JqVcohz9PAA_sFg8kZXOmcVvPA2_5Vpek7yaefU7Pr3TRGr-7nG1rGFwSwAlasdZnlUMIRIgJGiQc8BIkImgVwxYzOm4qVJO77Cs0KylKMtrnNw1S2rrjpR8eRTf1vkr_MhdS-7dnmdHNlQuFEeB-DsxFrOS6L0TbGttUKONtd5cnt273ixaHAJSLsXMSL4sJ9ciHjoCOxwCWU5fZeBqZhrofslPaeycGaggIFaPXB6QOiQdbYbEXHFcX5Srv4UCEhWzYlLkH4b8sxUe0oRWlkmFE31CP-6vTyGNMtXf6ZSXoTx7tLWgKogIew3h8xLTDmTOBjBfOfh5Tm4lTOb9TCoiWbC_MemoUVsS_IzmUFxxRghFq2fPAGAUuH418PjyNr4OFbm1L6Fd7pl_TcF_TjkfU0Y7CTzLl-X9sx3QHGe4zFqtEZVjzES6XmdILdGxPBSLX2kUJlpwgpWgYa7IVrCwFbjPhB3tP4kHspq6A74iFyTbZW-hMpTwQeCta84RQfTH_TdphHkn9NhngVM_kwZf_h4SPDa0OFxg_vSg0bX4ZKfLN4JulZ17Zg_N_KoV6b6lxVSDaSnfj238F-zfNGOc5vz2x_7i7oIdfxptSqv_zamE9TkBlP6DqbTRfYece88sOWbPIVllVXtgdERWYY1hFQblAoHAUpuJ7lfbDf2h4G45XY7HainZr6PADGARnyN_sF1J8AGirjI8wDRgWaqCUPwMQguWqV0ZFhow-HbUZJr8Ov7TQk8sGmjHS9EYxRqaEsIHLP4yRbULUz2BpPd87NQaXRiMW0weGUOSSw03gyae0kWpHC3WDSWUSy6xeLILF-pLsFPtb6nMDlBKBsbOB7znVH-_4svlADUAk1mPrNcSLBAGlg8rp3MhFRW-IZtpjP4N0hlDW36EAzf4dV47ZyapL-Lr-oTMiBzQbRNhN_H4wwFylMU39-AuJtz6YnkYXSc8fxhfmMShI9JbBEmF7YY_-792MxpU0FrvzfdZ1P2QTPYwLUzKxYtp737ubOwWMdzEarwR9_a3mAuUM-x1a_vEretdbLrV0v0HW5b3S2TTPymEtKglcxs9U4yrhcZ1iecfI6sqSqHCWW1vVYqPV8SP2SoeSB-fH_nUZdrMOqYZFNHMkuWkDd01h01KGdjtpWp8H3sOds6w3qPoX-TBOeTaxIAj4KxUnn0NldFnaq_ie0FsjJzH0jQZessWxMY1T1vAIyJEUzrJundQbRYYkFOHus6hWD7xwueyey_FioI8MOEHV2xdIXhlHnA1c-v5ijI4ALNOsrSivFS5PxiVe_5xg-QFCDkhcwdaAcJWTR4YxlNxXT9LcWLf1LiscFkvAz-a1RHA31MXInEz7lJkmxa4VWq6N6NIK-icwguzhOWdjwcZgwhc1BY-vQNv1wqznJ24W1vjdiTPtq7Dn1hv0WOkSHfgpzPnXKKnaBxMMZMRgXIy3cPFwlPDMIOFWihtVEBqi6Asd37cDwgH5yBKR55iZ-wwb-xsMXYaLtTCnkTE_LhAg8UYUN8P3ifg00tHa9AmGhzdM8AYTjuuFBQDkwRBzT_eOUdRHuj3dK3iVIWKMv51Sob7MdySdpdnImJ2GvLaDKn9fUi1AIvbsaU8TTLU4pa_TECQ6hBv6w0-mtAnZVOC4RPfzDBggZQYkzwrxuhlUrxX2-eQg8PTi62FpnX7T1ihbimK2wyIfuXp9ypVuVpp7DqRonPWgu9oVF-Et0jiiOq-VI0lDVY4Wob1nE7tl510Co5-ocQ91k49IgOd2OPAXY3VQkr-o6wLaIGdr5uW0XgfSMAQFgoIOLkT_hHxkyh5CL-SnmErl_ECmdlDYqP2-bkpL-PuYVvyZXAMqvMNaSGQViHBoi_uhSBDkHTBKNswGmJCk_c05Ym0vU5T5-pmutcBgWVW2A7zo8oqMXsi3MJBGYpGs3So4pEQmm1ZcpaYGngSdP7BYR3b1YMTL4maX5mZxhEeRlx-IW9ZdEsa_frxGWzCDhnNOYjOMcGLzBj63XLwf2c9toq72N103Ma-9j1H30Ox3wmqaIpapxJdEWkeI3EuB5_jy6mJcl5jnHKjBFgW3LL7FN4cn7rT40FH-y1-3zwcBnuzQNE9dFN-7igo8zqqkpJQ-DWdI3ufXZ3F44E9iwXq8idPbBdCgt8W7VKTVcZhYdWKkoWyLOj46GqG0A6h4D0FbYew7hdoxSCsZaXhDiaPB8vTD8PcCoupXqnGhN08qD_lNzBlnXsssphssW3IXjLqmxsOmLnaBdlC4piRIfrHp6Se_xnJozZgxYI5tSgIig6_vk5NTXUDveerV7CFcc6ta-0l1idPhaMoyRtU4pglCTbGIfQlfoaowjMadCIMtJTHTd_pOALLQ7aFbCGfuG7h1alEabwPOThj8rmK1zl_Bsor0sb-JljFayWgibdsxPFGXl8eKMg2N9LYQBofmdxr0kKRovIzaxQ5FDMUUdRZ4O3BSlK9f-1CSLkf52MsVuBH-mIbmkAOPFhd8NKG7ab2ptNkvN_KCB9VsPFOM5xyaO7NXYcKD8t1Eto8L3McjdKIp61YDicZ92ehaHuVjFL8fVQhlwvLQsUGwTZJHwBdLi23RVwiz1ZqjH9Jx-pHomYoHPDXw-ArPmhz1uNGQFYwVXervVQ4V49WNDr_S1NekfE12ZCM3Y0ME6ORYcFufuPO6UPwDayiKjKSx8TW_8qDuBMoaAyIh84Mt21JiqDWGHr0fOC6vmibFOFNEmWi4SM8bZuXpx_gTSK4OmKRXSAqUE4szX-SwidkH5Tz_9oUKWfFnG7qHOyFZpMm0dYbUPUWJ50oDsJ-9wF0zRHpcPqbrQw8YL9Tj0Ksuf0Nra9JDaaROAUv_XX_IQG6s2ZfNGCZmCDPz1tq_nrYB4tB0ew8lk-bk-SvG-pSVJ9CXLesKpN3QIZKa7l8c74vjqaqaqE4jSR3cOxKyY4ph1Spd_RxhNrEN9AsocSUL8Osk10U_w1S-ABVdKEWPyxDRzPOGZkypuAV5_MF1peDLW6Qks8VGh2K8SD4XuPuGCgGDqY3RUPc1I7MTzMgO2X1Y28xf6C6dWVwaDvGk7hX3k5yEJYwGOhMjJ-imqCjmtsAw-wlDlTDhBItTbICxv9OclB3QiRgiOhuvTpqZwLD2WoQeWk38iBE8SilFCrpo78UxQOLPDC3tfzeARDw3yBrFu42_wxE8moPI8lMo4JGbs3Lp2klsCkfCcQgA2GykeYcc4CnhlygRCYno7BsRdWyccvdk9Ydfm0gnw7DJq6e-GcX8_QcvDNjdLm9OYCPA-gJL7nB5xN_-k1BZ5c323rOI2goD9DFbTjfntYlcxqhjooR2OriHdW9CzMZopMcigNN5uxWHSmuvWLYLSZVlf3qTXK_wsWMntSXDWenlfXSRdL03oJikvI6GxJA8A4hADzNEuo3h0kfzdiTf7BMZJ-LZI2yUaQ3ZZFG9dBtMIm1s4BRseolxooVJv0-3yj7x4G6cmTIJxqUVLRWLuFOGx1y85-xceVC72QpLFbvEAffcm4neV5WILS3XfAlt05cc_b9NZD53p9Lymu-GqOdXfmyUVcSXC6yrfnTGt_kwlxjWXlIxJgPuJLSYcXO91hlpJlHrYuA1BzcolVwNC7nDA2GtTWqAdTltErK8UEyoNzf4yI9DPWv-UfpFiguYo7m9tqh3bSx_PSYSKW_J3VlV3s2XL-TQVFYLjZdnkh6Yge-3AnRO6DVarxBSLC7IkIHqda3DQx3tTPAP_Pjp6Lj6rmRDHi5FAdFJ4kFJnKqE_u63xOb2rMbDXk0nT65auNR3UC5Vyzty3tXYPXNVBmuuJvs3SlFN4Tj1SLnoPeKhDIdFrzKD1wt5qpaXu9bB1LrIoGFQ8ZqHeIu58Xt_ncQBUhpY7Tn_aT_Si_AUwxrcHqgyYdObrSEBGFN27Q5dWU964lmOuazW9xFyQuyGV7o_txXqU9pXeXNBAe75kZ3LYC2JVSbhfdhnOdhdHVxL7mbnqxs2GwQ7scrJFdEfhhMG6H8JFTsSpwkYHGgo_CsCJ5JmTkAmdkABSKzpfOwLe0X8wj6sOOrBS5PvKSi1AB7Q4J5DKKv4Gjfn9_xE5U3a4csfyKlwC-mpLLdCtlokOW3C63BLT6SHpOGE7Wh4Zdism4xjelzsrfI-IzgbRDBH8RMX1trTYjzWHoKHdm5of8ukUdFiug9sZbZ-WoSEwGoBg3FlKWT4cQTwrVBErScTY0eq_foaIHFVnElLjLVEuRK4aQ72IqmNOIZFkFfFVXj0djuH6wwhatPHsyWgNKwmYo2lhIB5hlR7bUTHa1yAP1ryPW_HhQj79pCfubqohRxwO_DAwHsE3IwEN41NwuUB5ipzEqEOVUx3_WU1-IxI2nipxO1pI7LBy3rsDEFheJv8I-IIxd53wtVORTXWrJjWTucLTmBs2Lxe4hn4TPKADBkST-nfx4tWrzFByAwAsPlTwnz3tAvsg9CIQoepqKGLBkVcdKvNFmKWXGn3sHzCmXGfK7NMUVyN5sjCTDqzaKmqJquSZi1JEkL-CRMby8_FEUp-Sl7kevbRO9Oj8cEUGPumWYPfPCCMlHjNWZMTnTZn-RT9Bn5xo-5IJy6-VqsLJWFxC_dafNj1Tm2CT9vcpDPES4Ac9SjE5nqlTR0pMwpP81Xc92H5kL0nIze7g2ay29GPvLO0aYJoMUaqsJduZlGw8wxaRmjUd5uzly7nOKQW_YhHLDcLf6XeO37-zLQGORGWQpukpYJBRFVv8AVX-ufZBPsL01S2-s30m7gN7N7V16t5fjyiB1F9Bt2u2v4ViXATyziu2oIjvHOEHsIIKOg6yFwKOIkgvHwYuqzWv6Co0n8ObZo5B_0B-P7OrdlAuOFzKrygBGdCVOfUm-XJbpMrlIzMZgKCRcoYWVGO_zfvCpZItG-eRpHZMOGx_7_SsTLNnErCszAuZZ80J-pJ7AEhHIOZqQPjd3ueKV7LzvpmGwzK6hkuiPgud8ZTziXx5P4o3Ugr5sAepT1jyf9Nmqwx5g1ctub3AtOG3Wz5hiOXUJDwGEHUCPYkbkbs3by5lf5eQqvgsfyWnhM-CiCE7HBsQ1XNUTttRFJZjcozoezkpxyl_bVOHfdv_1YeUq62xpMtjH4qQnx4oUs4tLKjqseoShaK84FikmswNfl6089xD800vyljagx4075-31G6rUC-OB5s74cGd4lQi1xfTdSHABf2xRVbZWZ28lir0vxTYLrd_tKLIA1xXlEwAvGHFlP545AmS1o9Ojt6QmZZGtCfyjTnLHbVIObGf1Bxt6fWmK3XrGqssjaeQJTqBaQHB_6Msj1KYTzVrZP1HsA0fjw_DKT2AtyZvYfnQKRxRHITQN8TpGvx3ol-7exGEpkeVGKCkvM-9gMV6-SEXtKCNauF7AXdRezKVxSYdbnYVviEBB8Vf0mzWuYo3owdPj6qeb82hNuJkx82EHg8PFdRnD5nO0ECmYy0vRm31kah9K1bTadvVhwrjozMQafzxoURe8j7VOJgyzu9FgMYZ0sIPNFUqmfjnvA8j20gAG0mhLy6DtAtYzIf5Caquumbb24jUX1BBFzgWs8z2Cqbx2Y2gLV3W6QDa4pc-DARFp78HkuuOi_tbepvVu5giAL_QyaNihK1eQ8sbdA75DFZUA4aEFz7XGHsayHsq3-jgeCBz9TcptTggIRH2gRGl-WntXNmQH5iTXyP_aMIYA4Q9VprqkN9bl4S7sCp8-i914Ev9cn9ukqg3ewyqhpa0U-D1G_Bjbdn-qyTbjIMZPioVoDEbfEDMQhS8hBAxp-lP62BMxf5NVhqHSXTuw4LkkkPtVlQtivlP5Z_T8XJQf5FN7jiNCnD_uJxcfISe2dHLLAAe-j1flbCOFq7lpLte_ZKPkiEPFSFVYBEb2lu1dws4DsFzq4Rn2oZ3UKaKB_1OSt7RbpBy0hqOTS5YYj80iSW5nH9py0j8ycL8oc19FNFSdOCdh1mb4gqgZEkyJKDP3C0pbMxWg2CwfrLajM-Eo6wcZXbpqnPGlwmymuv0wVUaB5DwigAkE6bNrHauYDU97NzmApV-rHFN8zm1k6g-BU2TmvD800iRCReR3MFNbuVEVmQyWRhFBzJhkg595ZmpricJ8XUMkwUqksqZdB8kREk1sH9e_kWczAnk43Rhz1v2dtlDE1LlqoecCMj9z5UP8YkxDn1lSNcRbFaOexE1-KmMFhIBow8Rp08dbmO3PtGzb6ryoFA4uJIxffYQDJ7c256i-tS5i6fpvwSxtMA3tfx7MCZlSqpdS6Bo9n6kP6ry-MOE0HyEO4Hjb-2DtFuQ26d3oMDr0t-IQxPtfSeG4feXLYUXuknR-uotfn0KgeT-WRfhF04Kz6vYSxRdf09zyCWGcvCMrZJtsnwBgfh3aic2iDvzZYhYuh5ZEiTvupNLcKSNGVhOBCSq3eOZxq7OhBjgu2fiRIuHD11n6xhV7FFXolqT3CEqLzjyfJzGdEauM8PxTHLLVEWhQuLRaNsqnpZ0p1fLB3QHlKz2B5aSpEEP8v2U5xvVQFngvtJ5i5xx4YSu35uwTqiLy59-1_LdihskLyDkpScRfQkz8e9FWLJ8CL9S1CPa4vD5bZjt6b5zXdXtINh1UVDUG_A9DZd3eZkONBRBawpzod4IL0GCE_dzzMmxbZQFt9gUgfb12hZ5NITHy9uqj0tD89TPYtk_uSnYdLckZ0rhrFu8ZJyS5z1N6S5-KKd__lpO8NXB-Jpwt3BF_Y1Bx_otTSGEGVJCMMZJEsEN6WhAQ8avk6rti14ayv4sTmUYZPBn4-ND7QqFuCN4D0qtJmzIvlm0D_tsLq8aLhicTw5gLGRbjgPn7oUzpEd_5hO48hQNlPgjVzAeB3WWG67G-FrLayaA48NZHaPsth807mB8k1syaOxdJZcUxc2MnCYyI2sndJs6fwnglm7SQh6kPTmQtDCCqGUY1I6DwK-zkSM6Gmq1tRzLVasM5cg4p1JL0_pb-_yBYVXMtBdPY5ohFoWQTQjYTX4wMN01m1z5zMzofXrylF_DCxLw2RZUn5PCmnfvJ8PrRwaORA6aFAZvZ5VPwbOKLbeBXHTMR8BrI84Nbllp65HeMJO2IG51cgYwzPiqJXLgkJtFGu9kteekTXFdc1on6QeGNKURfBTW2MWyECch3JUbhErrUTlN7ABe7Gh1H_E_cYnIQOU307EgPkLlIJGzZozpjOD_kTCNrvgdGaybIAF8Iog06kkd409L4_HDty65u-sLAzRGrSDSqRiEGMfX_xz7fzEwnlyksm9Yoa3yfQJt4QZUisL7qN_XxyNTScOmO0B8_G5TlI7wcnWnQ0kfveTT0Cn1ntvFIOD-NDGjntKtQIWV9p0ZPd44ZtAaTDYArUUluRhrALPatnV0MWdqG52yUhzh2LvrLKa0h-heMHrQR0-3VWKdajBnfRRahUPNBjv6P7f0ISvQTNFEyEShFevXk3sQWHPY6-di_PSGUpK0YE_yE3sXgTcCEq91EAQRQyXAZn7fCbanSdfC37zlpe7jp2WePLqr1fYynsV4PeAVlLdte3VApGbNaCON1MV5DhDf6cogxoaZGJla4XcPRLzJXrq2luN9VHRCgwS70e9Ni_nwLZrDHYfPHtqp3QOYOrdapwxBIXWPbhDOqXOfmIBMTLQKYDOfhq1B5TWzvkgJgMP7bqFhtzXOoQOmxrzWpbIakg073iW-5knaOa4PaAWM363ukCS8UeU6gYcfWwFyIgo0c_gkBrgw_qZhv6GCKjmfX2HMsBKvTwUiZDKkEUQ9nxEVvqMAzKAWcxlQjZBU_iFi6vgBAU9-GXolRoMdZq0H5msB3FRXoQK_p0lpjpKuwTO-Iy0EzkcbQdEa0HKDHcqiJQ4mU9KyRKDF0U6gf4Udv8jfb4Jc5XcMScxbqZeXK0IVxdwczkHXzmnjslutwLNuasBaUr8HCYpB4oT6HSgepi3YXKDFxWBwJRRbE_xgylHkU_LgwaRdMwjoNyFUne39ATmDihSZbdeVZM5cy34ziu-cG_j0S2Phmp-bY4nXEIqA971kmPrIQ_xyFiPBSRjtfQT1K0PQ9zqOwclS0QZOMwZZXWZq4ab7HzlDg5uojRTaEx9fWyz70yEXRyy4ylpqJrqft2t37a_Mv_F5SKno88j6uxVxn_WztNJCRn9P62nsl2urCH4MLLhAShKga2AKVwk3iwwWOC5_1nh3Y0O7L5utmXGl71REfe6TyfyROh_5OIroQOOCMwNmOma0PsmQlyvkz8LfvZKiGSIlvldHlR5dHGVL86WtFLcGfpR2Sl5qFCKP4q0yQhzVsTmmUToeHFh0Sm_L8uOQwVwQ8FqNXyAZvh0FmnpYxwr8TQf0sTKUcku1YCeUNQichS-oTk4WlKGlMTVonPUIGGgsGzvQ2msxO0J-HCXtQC1TdVdoGC-3H5W8W5xoOl1gTeqRl2ehbsAmLIR_vq4wE1XwXuwjx8z26arnLbs--11ZCY_wJBtbk6tyui6b8LenbzFRxZaBpuCOTvTTvSuw38bF6i2v04l6xTwnTNiQ0qG8BS2h0Jyf-juUqynNtEYqkKDKlars8TbmVfrubHPOY5JEEtMZS0fLwVZJC824fzbzazHBn4fNjG1WdIaJgpYrrhqsCLHAYxCGqAHhV82X62fxrH2ux0SKOujLWQY7Q-DX-JebD8xsoyHjzjV4uIF49Fb9nPuathPIVGZmZDT6s_PPeuNlbSEGb7fNm8IQp3RbJW71nUT1AVVcQvn_abiO1N_007MQWahDyFkxdTRNLgncYgzJ4CNfJAlbtLLeWF5D2652_mmjeVU8bzDn2Uh1r-DvnkSxlOdiB7ZARp6_UQrGQIXIKSQsEcRBwPAhTh9P9NUrjvOnyBAYEakDJLG_6qk1ROjEzMR1hRP-G0xn5DTminfgpdD2rYhLdll6Lw7PpOmkJgomtHp2nsHcnD4V2NXuafv1L8kUi860utO7zBPQdIUACYkJbrbGvkCAxxtgckgAE61iQWm0lLy4cx9QfrByvu5lCmGrYS7HxJKt6880r8561K-KXZ7idqgSviEA25iumH9cbqyCuD_8ed1wEnpVMvMRQcfXhiB4iIpRdf8bE25e5Z1npGJP6m7zaU4JmQ-_DVSlttUzANVzCvQWTCDJpM7Azee151CYYi6Ru4KJr471HRADfzuubvg_I2sRpnqZvDXOUCzWCImow5I0qoDW34Pjoze55QE13ZOfV9vdk5q-UJ0I1qvYaVkb6UH6BVB1x2oto914OczT7CQ1C9xYNNWqyWQKBLBw_FWlwaPj89nVTXcWnt88Xb-OqTyGC_rjHI1BwYChEwiw7gANfN5zgtMsIy6Af9UGFbhhnNgsWlCL5XlSVjKPD6ptzGjE1egsd6dCa6irh121iyYbQ5QsmLbZuZ0VMU4dtdwxQKlR1SjRyzyqUu9TW5scc8gsYzzspnkswHVGtkWZPp2TqOoUP7cObGndMS4AYVl9yIMF3z_blpPC3bm95RWJKFlS1hdAhW8PfmQrgSA7ypj7_hbZ-cDObiBt8YBQJFmf21mOrBINMl6K6fjZT0gNWQBLoVX71ZDzKfyM74SjScWtzW9UQ8OCGMYMF6KKt_rz9gUv2n09I2aFB2wFz-yQ0tY-fs0iT5i_4EkPNdued7MBDg4QsomDA4h6ZOw8K9jX0Gqj4mq9mw7Uw-hEl8p1u6lXng13aEKRExuzK9Im-Ldy8QYv718lumR1sqvKmBjkTdF1SGVNOs3KIURdq-SWiGJJsyXLu9q0epFrV73dzae1LyS8_o8xb9qLuAtlIC1Lw7QFmcvzEZas07tgelj2LFfocjF0VWhioJ3HK7iq2olQ_Fpz95BU7ZQWGBc5-wviMXztoRcE6WDL1UYpQLsnFXHM4k3sKIg_fZIyXWPpFguESvruecFInGA2t4vyjf3FuI_fULKnAkt_mOz2OiWSUIHJn7RQ3dE3lY-M0re92Lw-jCUY689Qbuc-eX7BWTkUwJIUsBNX_KlmNtVg_YLy881ZBC0j9ttfYkVjcyM7qFRw8qq-19G2FlRfEtJaHHNIFgDKlzv2tAXq-kvRgmNfajW0g1TX6-hDmag4AXOI4XKpZ4ttwk2r_-lHHqMe1wJ_ZRtoY71W7jaFxdQk2tibRvkkDO2rp4aWsEf3hEKZlWpID9lEgRYnOqCjVVaU-HcnBHTUpH8uv5DqNNd148kHogWtAPb0LQLT2DYnxasMfeUj2sH8XI3AHKNObFl1qV3C8b4e-12j1sI5Ek1w35JFBlAge6VKc_-ZPFZUElRCKdflBx38Et7oKY1ZG88Oi8fAepp5f2eFIsnXBK_kyrReVlYxvVCZzKQkDZeqJc0o6d-anc2aXLq4ZCbj6ZHW72lOj0e_oqr61WEQObPxQSCC2TP7jYHtc8foDWOKlldjwnGGxmN3-b4B0XcWGNeXi5rDfjF9ncvr_gixJy2CpVaMT1GXOvFTKOdcjD9uo9tby4Bc0reRge_NqZUmYox5yRneB75rKws0TDnAdScO21DH45IWT6XnlcGXYHEeYr5GPvc1PTQ4_am3HjGLc9eEB8uG2Sj-vE_WpTsVnMaTGA6dmC9OiR_Bb960kmIVtHc1kXGchgN0tRi2ubWgPyVtybaGxwQliVTmMC-dkKNPzji-9GnuEZJXuO-NFvNh3G4xO-8EjmW3z8ZZDXWXhDY2Kt5SJf-c-1QREnZZc4DuLXdEyz0HWU8xP5cK3dGTtLEYYAC4CSMX_QRumgC835Qcr-gM3Ct8LJ5nV3uAmmWMNLiqa_3ZlYxbdZcrCjTORg62up_jYr6R63MAio-jUkAKN7ZygBJn9SN8rvG2lPYMVR87oPZd0UEKlsKrth3TpMgiyzII80pAOmnZJBj0GaTgAqHCW0eHCTqo6Krbzeh7RwbHpOooeMdzJupc7n57cyJdMEhtCeNIT8Tmw1RJ-9nTV30XnL_rKWJuoOqyXi1GHQzUD07fsfD6N1qLNbOG_njacx_YZ06geZakdz5bPPAV4B8wXlpHwvcxUS7fDBHKgOiVQPRMjeZHASCRg5rBC767PfWILD5pEC6me-kGfVR6dP6o3dK1Pl2U7Of2ydUDYga7B-RqLd-OAOzulo1AjE9_4ZWnD0TYwWk6AbEsRbsrnExZ_5GgMzLLnIhkLB6dHQQuuOndMqdjUIUsxfqYpa0Czh_3ii2wwG4PEaT89Gz51FadaeWMH09tuT2SHX5sVSAa3CZrV2l1YwotnBIPHgLJIpuXYFUtKdg3QbpVQ-8NcBhzol1_gixUXpnJBWV_dL5Ip33yNALg1GGIBNBUZXZryYtG9CC-oo-gDwXqiXhQ8pJbhJK9B3YeVheYW98kgoetGeHn6etXvYf9EXKcu4xuC5npYTVqb9xlowPhnbGQX0WMOUygza972G5ncBpnBKgN__uHtapTC9IcwxyhrZ6kaPbynbPwTMsZvM-5MbvD6uqB-Mwag0i0ouaJqbelBP8gzcD0cpuVIGfqRySBFRzk5ba1bFZxLn9P7bBtr55GJD2mwJvYZ1aG_PaDbdPlXcHpF1xuZHvnQ7Z-eDg_WBwenbTB7sL1NEKPx1Ms0CVP3HyTjdjLztoUAxxHU70QrxrKb7jxjx3j8IBbnIIEH3t3BPug9Z87vkReq4yveg0xw1mYaV59K7XOGO-MP5U60hbtG9iSHvqhZoA1wYwyBjV6ZMHpj3yIcSfBuAobAR2g8afIvYx5ZwbJAv1xRmnUYrTbge5zGErhgqQLuvaffkC3eSvMWGsv8JZITwrRKpRkT7wea-1-dFjP-VPPq09-iZg6NvZbS7PA5bmmHi8FBB8jSxQNkb4E8iEuome-nxPydGeTKHNQf2zb9Jbb3jhk9E60uUXA56vD4sWiF0Omde5GLuLHWd74xapWhAeRlu29PNA6w2uvv8-AQz9MWqxwtntnqarVdBmlAHn8in37KYINBhNzhKo_Uk79Gt6PBAwX5_SBb3S7LleIKz_fKefAetQP-DULm6EhdzGpBjclFaxfUqcOFWCOdd781JJN6zBO7jrSZY_4VCZAg9IMG_0Pt0umwLgyR2NhicCWCrg6IrpuUUCk8aoohslxCan_afRCahGuhCPyYoUOw5NqN9y4b0xfwhgfLLRIy_gp4Xrx3nuLt8rYQk664xhFaui-GytnuShP5F9dz07UB2P0LT5RVhb9flUGW1Dyg09awuu2B3jrJGwsotzI6bQEISDSNpC9fA4b08bcKf9XIK0EmnQzPOeUztFE0m_54WPCzJ79RGLNU3kzrdhuJkhbk-8_vQBoaj1489z65Uj4OXdz0taTTpkAm2P-slh8dQQ3fgAG2JZty9VA8eGBmn0z3SujUtE_-NVPEds87ocndG6Yo_j_UbrFvW7W09nWFF1GPzHiecxN_3Xi2vSXkzbIbbeJ2gy0r1zz0BzN6BeL7804oI9DmHEkYv_py_t4L-ZeRKL34PCLGFNditWtuJC4lot9WwgnlfBSNeq965H0xAoaGQU8LRcsGHFEa_IkfXIIsNpa2rsiN95plufKuLLh9nyg6N6i9bUNx-oWf8qOMYgLvcVZa-Uuz3tp8UFCRLeWzxCaK4THRLIj36z7WVqHD_ON3UWrQ81dGW3UgszLfxibDM065I4O2jJR6yesc4ijB5z3nI0okCNetWXfRXTJxm_rE7c2mLy7HvkrL7arC-lBW38pjpjE0px5Ig_tL2_WPjEUFpDLzer-oRlKgW6wfJqRfuXaPCMeeYEXGckcxbKf40Z_Js_RAAfAJhsjBIO4TsWXYqKFbck48LvcS3OW1WwRGBBlN7QYTwZNBipxE9NAQATr2Nbk0k6VAbWQ5FMd3jIU0Ki5llRA2z3o1_oyAHUo-i2iGr-wMsRERk-Ewwke1KEST2StJdcR9Wp7jUcxIbWXqWUH5JtTUuDckXm5Rtko97Rp7Hrvg-kS22TCz3POw_dOxAhOfUSw3xdsV-bfrk6e45sZg3P7nKYm5u8KAQ8NGPLn786Zdj29tVBmS4Tzbq5G5miNuTge0DvNpB5rbLhMP5IddeBN_pvM3XZjJo4xUswFa-v6KUOcPQL_PJ2-N9T3S5MY46sJ7vmgVHUfWLYz0ODroVhQ7aAqeUtfDQmX9KFs1RdTlqCOk6nAjVKxu1Yp04MHNAcwxEql0413vU8BheDZKy9sSvHnSocc7qqIJu2-GEQjLJw7uG0MbM5TgiKm83Yyp0P79OdQ3C_anC_H5VxMNvWFP1G_e6HNdkINPeLsNbopuxbT9MofnkqgOMFRr46vtcc0W5Q-TmHWzrbLw6_QFlMpvuh4JKudRq7wIhU54SWHProFgQdT0F7VbY8IAcwm7lANarh3PZsZLoOcmfgvmWKpXtrABMOKsiCtjAlesXK41pBY4p1GelrlBhc_3V0RviT3FljykDgwVODy-5NC9is6iZ1VB12NPXYhjbA1H4ntTkqSI7EV2__sktSq3jPaQkF6-yVn12UOWp0CoNB6PvaPwLTftCTazyJL3hY4E1f-_qBwRilI19L8nF4V2IzkzMGTW3UssKesMyC4nORLQqLTcYa5sx3f8jG6OwMuqrVeEVl5d4aWSIJzOFZJzCrr2tWoR34aXiXqC9aX7502DgUn7Ajocdqk0kmqGw40scoTOg-km1Q2-_unUUnVTldydziaMlPn7Kpn9VAmQ9CVh3P4Ejd_xKPThOF8IdaPJ8K2j0D4e8jZObHhzbTKJZeR_cqZ3zaAzQwP9w4i-B_jlZfuf6cBMX3YiIoEubGMg7yaRZhnrXT3iB1j91UmZpvuMvX9j2bKdrWItjsqDg0DIx-T7bxFpY5s-iQILDq1YIyG6aEx1x6tWsbMzC5Mz1ksmXE0cp2IcBl8lG7czwpa7WrjDA5aufXvXSBoM1d7J90GSh0M2OEcIYsu61eDUQmYb9aFi0mLbXmesGwA1Qpdy2MuwmsEBs0qlQAru-ZwbditzKeS9D5lipnSM29Yz2hbdSVCq4Se59qmFEvaAvT-Xo40CEfkQHKgdfW456PNQ_XUgUWjY7iTImy44mliKdzjkiDYHdt47ZS6FbKWnnEOJxlC_dNU83e4WYdZps4ZA6-8au33pw8uOY3EA1Epuu3McZMgfw9sKxbUxDNzhzCMQ3J6BhT_tSaurPS2LaPcQRzCARNUbfux_3ObIXmoVhjtYx_kA8j6DwOtQ8eP8LLER1l7_y-pNKVHPisXHpiWaH3TUTyO3HrI4CLM8cpaZjWuyjbAW-aDuyx7YB4RWh9kMlTevhlb85j42MdFfD607B6T_9WtUb9Z3z7Lp1TIGqhz5u7KpSCASo4Vkfp11CIdkMLa-3pxea7JxZDzXu9RQkvKqV9rjQX4jCt4A_rY2oJRpBRVfBRaCOcXpxdkhYyLic9k0ASQ5bzoC3nBHSTLZuOsrdSSqhTikQSII-MWap8A92E2NS37c-yyRrsV3i0MVSO9U3RUc9IDx1pIGrM8DqFggLwg7HowHz5-zthLL6qVHSQNZlW2_t-2Ou94_SFhKgm6SaSTh2GHoXCbtznWZQsaDvdKP2ulLWxcEECZa2cUeCcBW4l-IB52lyJMt894Hx3mZPsxahg_DmwByVlBd6HlwaKtGT3GgxHjPe50wXT5jJDGAaXxfIV_hOxhfdiseEPKDosK5JeyLJ6M30Gtth6eRkoxr0pD9gzyvYqbj5suy9ugg6RJmHZyt4PyAebX81UjoGW2jRRA7CxveYI5XXCWstqlFldstKgFp1FmWutcZRuWkKAwuFKrGRcZno3PKEmhAV1Kyh9MaUDCiq74bBV8SLj7eODtEJ79ElUA9OlDPqYvJh_rhFifpyYVnAdgj8ADJBwXvRmpoapbdaIdBmQz0xyy7pJUYBxwG2pFrRm8DrLy-RrwBDk4g26J9wIrSUbcdx9uL96IRuBgl4NLtMdX9-Aa1-QtQYURtjJCqo_2jyqTiD33iihC_nRFKB6xGLhwRn-pAZcF0JFhWa55Ubwuwi_d4jarg2G4umASU8WZ4zMp8O5Gxj8LpHFltKkoPA3I9WaFWip9yFa4wbfqlx5XrfPXh7v41gr4kEXQ8AFS72kjjoJmFQm0EvCCI7n0kI-Ir_KA7eq1QrccF8crj-M7VtbCumkVW_11Wp4p_o2HYyo8v64peFrs-5_kR9BpXJn3B14DpKK6S6iu0-et8Pk4HK5lSgq5XxWHaedefIDrd1Wxmz5WU2ewxxpQfk8AXqyaDXRU_-C--_i2eoZklDyItMIDh8LdejCnRju2m5L5gl2apxYw6q5CxW2IWV-uuyZR6onD-iive2rW6OZrdQf_oCYJiKv5J3YlzWpJOPSxdowmjBfj-nnCcpVEIqIIMedevRc1VkTs3n8kt8lodNsimGtfY5Qd5jBLRTcJFMArKqlygPNsd5OoM5jBSILcUZmVpHr-gWFMNP5ldmnqoxlpQVJ1v7rZaK2udKRuAjnZkPGbaeq7tIYfwjsWTGRKXx_Hh330L4v_H4o6OBSMGqtVnf3I9PPCMMDqkBIwmMsaHehfLlghxjnQ8aXK7C5OyVmjQ9tt2CmGb2mIOvHbZmnMqdoQymbqF4twPvgGJm1wprRhzaPzrVSwwpx0TW43_24d-tJFTu2FR3NNa1yFoz8bL8-8uyvBuuU7ZDf8EivKU8O4BW_LlG7deg7cyRAuHFpOsMF4tp9jnIlOnE6pP3z4TkHuxA29mK50l69npAocDuXYkS3sUP6Kip7gTYE0G2qOLUiI5yqUD2ConBbFjNE1PKE-wNgAn8kDWlVaU5yG7hzZWhDG_vf4C-_l9_lT41Yi8ISzyoOe-y3kcorqbPFELxMfyDlcXd1hhADhwqmlIyRz6BFJqSNssdFjwO7dU1OAiLrfz8ZsGXxFelHc_1Xnf44Eiu3JsdPfqtFcNpM6_SxGu8-WBbUu26PXa7eXotXXNoHrgf3DTp9gxdaYpno0dPYNG46WZvTbfceKsdbe4uQ5kfbJaC42o61z64ncOOJtvT_mtc79s0Q1VmcGgPv5ZIiTLQSrdMRoGOC1o3Q7G5jnxVwP6LsBAny9Xou_bYQfzlLC5-6kziDT6MUWncmtqNOoGwPIPMB3Q9khJ2Dm0AI_cH5zfNpnjjxS7hwkB_c6Ve-GVvacNo6gv7VfIvo01n3_VQeaA9BKgMNH0byB5Rfr2UpxNAqfArWqN0QOXCJ93EHHsNFAJd4ZwDjVBsGAiUWLT_izRdFYNkmCRO-PGroCJHS6C2bdqs_0dS65v-HmgYVTsB4PCjhR6XWuwNuEKlRKOGsn1Gjzertx62ahs_uf4hx9WWR8kuXJQdbVcteC1BXlaoQnfIHEm6ulp0SMa_1B_B0EaYZ68HqtcanzF2u4eflB-nMP8aGgmBGUyd1mdD17riBquBCkewo19t2QgOBNOmP2S9ftZuu5NNlURYm7MmSRCGMVk7fjGzcznLZYMO5XJG5jVgp7rnyLjRqckzZ7qKlXCi-g1jZ6pY85OM2i3vCyRvZqSZRVQcASYT0QMBz661_eCWc9fHSVyk3eE26RUYF4auDeke2jjcMjzdg61aUxbYu7zXHMqf1DHlz-_Wjp_yiOZUEo8KeW4W2FEl-Ewftf5bKNwj0PuieJbRDQnpwC27RiNE2i4aAc1J6eGpOu_36V0wUFfjr0KZM_NAfbVC64ROS_9vj1EwXW4SEQQRVXgUIz-S9N-GnVN5doHAfZY9_8ee_vxezNJyUXzPDQ10KAdjgPHQQLIPS5IoRruf0ykB6jXfQH0Uxr6p6jEJAsGTrtHv10KYNsfoPOUGuzk2wf096hTkLYRbVIl_7Uw8dnrLdLR43a29Yk2Pfq0ukB04WQk8BJuDB8GcteCeTu6CUTHJKp_D9oYA7YjLT-uk-mfzUdvYRgM9NJHxq6EpnMLF32TIp6fLtFe_gbZlRaQw8fPYojc9QX3wwfxzl0U73NqP2Bjunh3JGNGuh5ND0HQUJtvglNemDIPryT39dmVyDTqd2_Qy8E-OQug26GmvogO0FcqkYzD0x-UmNw-er2G8dcucCVuG_iAmT_wHVuezY6JIHA_DTBmzFeEHDd7Lr-bPlnUSsAglTn6AArr7nKiQPveoQEkITL25_xLkQ4ew5Pl8japhmmGsgLg7OlyNzLrf8_BmKZ8TrVLjOVjhURVyQNKdcGes9Z4lpoW5T7qO5fHZUmA4uDBPMy9NXInj_7sc3Usvg-OoZtNo14RK5wZwxI08zaO8xXLQP6XnQ45GQx4uX6LLqC6lFoa-F07UYt_7yj0wtQJvcbPVW21OaJEyDa95M9c0B_Xre1oK7UUrmTm6K2tu-CzRZgJEDp36VeN_qON2_hf8RAkhn75wvj7WiSsuClOHUtP-0nl0DZQz6zPtn90A7jr2YtAWA3-R1Ku494iiYkMh11QzCkuUcpbmQ127Eo-gFMkNa0AGNfmY3OCW_u2xC4gIol_PRmMqYIA1Xg1h3kLKorS5LXl2r3VpD0fgznyjsZIaXsjvuqLP5KW-4WNGHcf0CCNs71DCkn6M6B3aDl95UZsKMhx0Vah3FSHr5TULKiVcdUsRlPW9vPMwe8h3nJ2mJ5jrHE_gO9rCqP1Rsbc0rj6XRr0tNW-XijmBGxIFMd4s-JYJH5Li4574f5m4LusDEpIZMB-8ucNHj5w71eMSUwWfx2RB1Yx-SJMaCVZnMfz77skzS_6JOK2ui51dLlz9oes6HnT8bPF1VPI9UFkFwbJYGW_H9Se2U_pxfA44rD7a8kzeHgUjQu2kfPAhyRdzZtMXT40etIbIaY_TjbJamLjPkolV2-maQDtsKDiXFR5zBztj3erwaL30KiVF5YitpLWlPzkXSNnk4B5q5tX2gAy-DkCo_FOj0XV3gvBvPF-OV1An1G9KgYDl_5u6I4Riy8d50biTDaKa7ZkWd0818WyEGV64YKCgWoBeJXpnqf-UA4wTxhes8ZnIjxEIVpkg2ihlBWOFBDsvA_64jOoNnStHaXll7VTJVV9ZifZh8SNhPgDhY1Rz6UheuU62heq1Y4FrCdVApscp2us5Sx3Sy7POwJd1knFd_rHPUtW0qfDxKHTXD5ZV2dJ-nU6iTUXOyqm3nMjwYLipV5_lb-7g1jt7QrWZLqNfYxRjj8lb9Yk6aX4yCvRwUQQegWQUhy5Y3ezXQe4DfnBrSExuk1BKVeC0AilKskjJpRrkRuUChldEWY_lz7klhSvbSJgjMTIZF16xCt2WpNZ-c3Ov-6_ZgKJRcH4FQ4L3TAZsc1i6mBJG5nSeF9hpfPIAWtKqEfcJAMwo3i9XKfpx6TKFFiIVSuGVa2dHKxwC_laG-iDJEMiv_CxhAhMHFwZq_QnnJ6dFCdKSKp0PZyw8iQAB7r6XVFLnNVoVvLfc9CjOh5FoTcnheeq9y5vVteT1ruT64B11ab7hB2joNONgwA2MJRkH18qEBnbH_odfCpDnHbhgWx5xtHrtHDM4LejK4oWPsBJIBYeAjSgbKGfzu7c5Lymn10OmJkdV4eDeA55BU3EhkUHYFrb-S4Rb1QlXdQhUsMfnYImOOlGrWe8CzFTT0rR7AXD8ktwDgdXL4K-JrqCdCO6r5og8WXc6xWO4JHXAINEhiZLiXpp9EnIto9u69zW-5izGDcDNGCYtQEf7pnfmCe_V6AFXu0yS3VnM6lRKBTsy-dMoE8CXttMfXHxhSjfebD0bK60zr1oY9WWAlTF80iNCtXGXvaIT7EeIo3Jv7g2c0bO7XsllfjlKq3Eiq6TzF5dpDEg3UwVkNcJBHke6Ar6u_97k1u-Zy_8cheOUVxIGzj7v86OqOEEw_eXOXJar6I8CIYl5BucMcp-R7CK6v1YOO2yB6uhGcQG7J7gCfp4AEdeKGEI64O5DLcpS55-uewA_F3ylQQbQSgueh7rW6od9WAW3NumLW_4Slntg55ktaFZmHPl-Y96tLYfume2-jR3y--FaELbk3cngXEGmdUMpDAgfp_iPJEZOkIyXMG6RKcwMQtIZx_2PogC3D7icSQuLcEwGY4sRubRNDr9UWnBt84WKvGKRzHIcsvi0MDotW2oDPsWFCQGvN3orXKZA_5iKriQtei963KorgeN7xV9pUHMLO6JbmMw_vSoAuVQOBpXXB0nxDW8opO9-TBJ-ZigTRn6UWHOWk3zgyY0RoiPPh8Mcr1BOpce0srte4UEvtlkPhgbsvUil7omyuXEwE-5NesAPOcs0TijhX4LzOtgylcrLJbX0Nz9WnsC1xdZO3LEkueQU8-bd1fn6_mOAkcEmPRoLeqgFJd1XFrgVt2to9-c4lNPSYvAn1hgUqSlBFAUuwmO3sc0HOEPUfWboCJdWcWYC26AiF2HARZkWqsHzjsOruq5WHU145PSdFZ4Iyw3TKbSa5_n9V_ILGs6ghz5YMJDbDRpavCnM0-sTCN8E23ejHL_kjm_tIstSSzvig9DUna6FoMhfgRAJh3iblwQ3Lr2lbioyDMoNMwUU9NYF-LtoUf3IdSF3qCy-ZyY6a-SnwF_rzxtwOpnunE7LACP3zO45H1bc5LY7L1oL82z74_rLjwkbqN-zHSYZwZuAOAK-_NqT_v78XmQlFTYzXg9y52Ek0sVWy3zCtq2m76Bge8cK81ddLFoEw1JrsWiO8VtCcajwS60qd6te9TdAA27gm1ooT1J0VHiEaTLmrSdlsLx-OXN_4wIvxfMTN1d68TpAxLIDqkn78th6RFdxk2CJXfEuwtBHLl_ZL-HRYhCOLu3P1aQ0lZ78hz4VilCIZijr5ScjfzmaYr77BmPTS68uXLPGNl0xZC21bpxSMTf-2RVYK5nrsLz1WGct7Rv8_fnJXBN9b7z7yTmJ9KRfJatVaeASlJYWTahhB_wmXaSnd2cwP0XVoj8D7_M9QQha6kNYYrCEjOxJcHhqc-SauaF713LYG7rrzdVhNc19bRSOi6i-2mylsz6G8xe9QwtYetQCnO9PjSeMuXbsvKb2UlrQIcPY_Y6fpaU0JSaXjnKYv0n3gSCAMrC5jTKu6chRl-uskakG791jBUf43agEW7srQJ7g4swUsSKY_CrLLxt-5miluh-hvqvHKOWmysbsRRpbkPrBG6r3Z7X5tZ_DGqyR1qCCwnTmV63vL8zCI0qxrFiUPXsg4zcOymf5Wxeic7ntDD7psak7zXhWbL_xJX6trOgBDPpQXBWa9FR2VNX5gBEboZU2LPLFBmYR7vheviwz6XPnru0hsmsTIqy_EsAfNX2G2j5mUAO-x3pNVaTsgWhXqOmVnRTwY0897J2LvN5q1sV1Y5BQJPECWLJ_KFLrQsi3I3rLoEnXDaWKjQ41JStRLrGuyXn07Z2l0aM-WqJm4ovF_RdypCyT0BlA-r8aM_pZCYNon3hBUiGDrPmGlGTwHqgcIaSCmb01UTyuipYD5as7j4CS2-8HpjKutVtSEebfwsIXdYSl5ocBwKF7u5of6Hmoz11uZG3KQ9FpY3__CflxVD2UlVnyDdW9Y91QFcOZuFacu2nblpJhN9w0OMj57-q8r8uxWpE1TNN-JbMxHPUGRj2LCUqGjLus23d-5icO5Dl7Xumxn-ztijAFpZvlqC0USdN9NnJWoT37rSduzF0Lq1m96uDjtqW5kHeqwNGsBNNK7HyxEnsgFjq7p1VmOlK05ePY0IXEahHYfgs-AANBze2OhVQxxKV8tQXizcYW0NL5dWnjiREN01nO2OtfYvvmz7K2RnQuHAXOehnhAKOblAY28svk-pKkmBJwpJ8F6oUYdB1wIGMKqAGppLPz1DOLQWW06pWu5UmVh4JKypM8dOLm0D2o7U4N463Pr9cMj7hlLz6C6zPS_wkxIye8efmdOsqS7Kv-WnxmvpZwmbiCFEshqNJRBIWxxiYttc_L5ZjbY5OPOvvRgOelYhxlwzrfTaf2QCvqbjgRqTvkIX7CBmGvIDQlMOQUGi2hMKZq14ry_wtWhGGVmYVK30lzfL-hktUl_tJEJw09sTisJgC6TpHgp-kGzUTDrTqmYZZPjzvcRdl_PE2mjTMhRYJ1hRMa5RFWswKKxzGW8XCcbghlbzqeeIzImxLZdjjOyMZrksEltQYE150NGaea-vYkb_oBDckWPWxcRoBw3t-9tCO8i2nlXYCPCthYJj6_cfJXDPzVpfHVuiKepTt2ugEKlcBlxotv_0Aal6_YY8ENAtws-hfa-4g9npoA1Z-7G9Sst007PMFAaaPRLMa_3mABeVPbgxyrFTHMhLOmaiuaTOKucj5DJWJ4tKlOqK2UwrQlc4AFG6yBDOrqQit5yfbaDG5XVGQoTfD5O1vXUCpghD6_Q_gr9Dyup9_3hiuDj2jHm1bH0e8weta3E9sX_Uobb0bOZCHeUBxHu9-KC724PZF9tQNpGZbthkoB-KVwVFHQVhezFnQOChJwjHFVJW65Jc_L3ZTawHTQNAIy1sID-IBC5e0cVxdOXA4P2BVZvKQ2iujeRIbpe1it7E3CGzYchEbApmr1OgKj8g_Nya1E55P6MGoT6E5pqbZG6o3hVK9ZsoG0-PpgwYrtxIEdXoSaHGv3KmdIBcMgQsWwj1SSHNFfrAcIuo6chaCqYyo-7DfIBa2bgpNryJiVZuOolBAq9hVTf5_aO4Zj3JitjVJM_Vxxb88oDNnJqBmUQys6JRQqIOjHJWH9aHzxwPdTDiYjUiCiOQr-lMceq080petryuASFIeKzFwdGvxCZKOERUn9cQdM5DmsHJ__GvetByaudrpiziCGf6NdwXmuUvFIdeUR9Oe8ubSXOEZQo6AFD2xLIjNu2I2eqQN-en4du0eJUwG_uKMoHGxZFrmhwscJnOJhM-1pSeX8mLS9nyEQrqHm9jgLjzTsbv6JNVjwzeekKUy3UivVvo8sP55EVJsFn3xpCizQsCVn7OCUiWObANOHhy-HI6GmGYC_WPDKuCSuwMrKPqdHcvZGFuT1bxiciqB-OHd0WRC1Se0cWnGtvQxB84HHnimb8QwVvWqn5RCqWYOy252HcPgkXmY69kM3zgMJ1GSLP1yJPiG_H2hGdCmG6CngAmYhiF3gwon6NBsSU_GhVRg71WjIce1nR-vm8kYA5n8MSezMUeyCQzLmerLr0hKri5hQIznQ9EOMiD6ugYgSxsh0UpvHMW_AUGEiJiEc-upKbFTBZawTc_aYPISQMTw9z91kWRcCr2nEOWN-AF5x4km6R6a5wkcGNvI1r7ohSjVTdtgn2JAKnnuwBEA7Hsc-Xz_SUB1Rro6aPZnNZB5P1_8FYYtpBmew-snMJ6ifpymSeQ35yjQthx0NCv8AqhHlqYabYH99y57nUfnhvyxx930LgiqlDEvIQrLjO-djUEcvdJQDgH-GmbQR9uPNCpSfp9XkhDAYs8-3CDCKEWZnSZOY-hOJPsg3ouNDI4WZH5rauTClIA3XR_4ewBiAoH1plgLS37BjjakmTVKJCTpgpB94DMEe2qAVpdbqPa2J96mRi1llUKwEtCQb-AK2lPqGt5s0V9k6s9JzVlPszYhTA-gU6t_Pa2dpAOZeQWRwwSJqBahOySlmf6QSAZnuJqPZtX37UXUYQcqT-P-SLE1qVNDL8ydgyY2Wbk4h-DJKIbkBwbAFVTYwRQXIGXv8pgqPjGdwH1rb4j81wUiIbnlKd1ECfJiK4T8YqI1QwuOpZxEKElzF2w-INI_KeojjQe56FcXC95FkF3KgAmdGSwQR9aHX8d8ZcTwosA-SzGWzKnhtUpGQOpJptyilYTf7mOAkrcJxUP4hw95JxlcVBJAC_9CSXW3ySeENPHsTIYWdRQDBqUvwlFdIJmq_fPZCw43NFV7V1FplkfTjpMQ2SVez7DRYe-M7WeLbJ57Cr4AuLvm4HADet-FPAIpshUFhBkqc3tyvOGkjqyqIN9zpttmIzbeaIAT0R_SzXTJ1ZD3bm_jT4vs5JVw12JMCdx_r72Wgjd02uJWEwDEP0gq0JXZMDzZoyMsNkL4TnLOZ8Er1hz5-c9d8GO-HFJRrrvAqk7XyOjWyfKf2Z93cnloWQu4bZQAy3xHvbjqZOwFANg9wrf_f40BCZ-fcFhRY-PAWSOedJeCiN1SqoKvSEFa1Lq_k9BJbwmesJWeGWG7gyetGGgCG9swPmOPOCZEQ4Xad1_mXJ6_fwk4M6MeRkGeAMqhN_7WWZQcMubMvfW-Tx-R-RulfJXb5A-12rcD2p6teA8oVf78taeAS8akBPBlcIgPUJ5AxkwtBHGb8oiRcSC05IyFTkThs9UiA7u33-WhDoHIxd7iAbzb1HzIoTDLMUpgI9HdoNSY3qIyme-rSuVINH_O6MOrY8-a7GEIU6jAvVaPvF023a4uGEcVZKm3VhIYZcjhKIpog441lHG9nWmSeCser4em9fThJPiDkEBc84eUq94G0n2VKZO_vvLCEYvZ2XJtMdYKhrD3zxXuiR75RKrD3PuEBEdIeKpGIPXGKWfT1ZI9wu-T-injAu_8N5QfBXk7Ng_bKnDoxdBc4z-2BhWfol0fb7--taYyn8tO6G-PwaXbCAl7Jgb6D4wMzK0eHduJSh2Tf_11wtZKsTscqYZ2UKFd-qOptcJ_WWGQMiucwHa-ONCsfHK_GaWftGEuSstCzwEgp9ZXIqCcT-5XKYkqLiUg_POBPLFG5FjsVxjMhWwwJTKXH7V58kdyqfsjEBFpdXYQeeUw4ieez7Or0NBJleL1s9Lg6j7xeK0NmHnnCZf5NL_SjNrZ0EXiyOG9jGBqX6d1RiTZ7em9JZlXlXTtjrDj36Mnvjf3v9rRda2JC0Xnrwh3hRdP0WNNhvrqmthDSDXtZCUYPGT9a8cSBQ2dTkePek1yr_7IOj5lCTxfWiTPxNp9a7u46p10HHajZqLtqWRmX99iXpZQGNG4meQt7P8Hh21_vlYQ131-1Geuo-5SmWUYZlKo0_PKPtde8UsyJ5VGntnPo5yzpfNhgQobl2IcQtsP92QekJ1_e4DBI7wcQ17dXEo7TFQedLsEwOtW0MCLEnn959WI31emIxsrL0dk7qSA7KloQlZV23wfHJK0d_DvvduE7JQmn53W1NMtA20v0GbUL4VDtqbiSvz0geenA5qgphlBjQ4HkK93n5tCIZkvswO8GBjtsEvgb9f7ycaE7f3g5naCQCuiTp73Ezt_Roh3yL6lP5caO04uy4mDZaMYWD3d4WrckALGczqbGke9WXY5aQz7JhkmGbgXGK7WREaq5thtaPTilhIt8jVLxFdxNGXL5T1ZsTGSUDN0Vgyy9vH0ljJzVBYfll5dx5YMVIvrnWeiE-8DUWYGnvKSauFtwdne_bZet1c0XVXuSaa6E3VF1KysAPTSrPNUUuXHWiy6wl22yO6jEUOqVw0XbsgHeylYhSEFHt4k0o9G99TDTOtV9HVQJ6tGJ7sY6xSDE1E2dZbL4T61TrO1EM2HEUxZIPxx9QQrVsCL45LxhyUUuCtw0l4yk_EFIERktl9N8_aEr9kXRVujq4g23s5bDBMjWiJNgkPkAKxZ3F6eQQiRK6Cq_qNgskJRoGsMZSJUwdlyoG7pnOJiD2MjhaIi2xnVSwIg8b7kpeN4cHsSSxW8udpOTzkMyxYgSaKWD_4-PhxVWfu62TT1pq35Kn_926oZXfy-K7ROWp39_eP70SxugIz1AiQoyh4ZrWHrFx3sOBhwl6_YIbMhtl9Nkwnz59T9oo9IE44kL02fZq_RqD4_wG1QFiuqTGgCMfha8lTHzspw6KQacujawLkrgUEmSj9psVl64pXq2YByL5KtKAmGd9nbTlhFTVSd4-8bwd2trIgNM_3AtTbHtFmIAu5LtLeeyax5JFz2CXfXzKZqTQ_sFGYnu1HYClLeKeK5kOpIPjhjzOZYGzCp8jJnIoh9vDA0Fd2-DjEkzRvh2Ao4sjwyIr9tq9sO82n_slgpXWmh0pFZ0OrolG_JBwg3Uoc8s2Gc5-0UdG9Vt9ZiCgG8eUIkkUIeFZKAva0CezTqCBAtMeaTNQBvi68LVoYlScGhVp472p5m8aeA0OirxM5wJieuK6DMa3-2vcX7nNqczB1y53SgLWOBbt_iT1xhYigkDi-HKJpYjh2K7kz1RQxqSeQwqfNQkDDGhIyiZL33ZEgQ-EX1WLG1usV0xHrkDjsqiyLnjEVbKcfGN6tejRyBLVk4h9Cjap8_WHP6U7x_yjKKDB5zt4C7oUSM0-udLIrytCWKZah9zU0VirMgAY-_5FyHKEKemq4Fe5g_li8cm_3V1FL6Vqi7n1DOT-UNuFJ1e5s72xs3vQiSIEmfFjdV2_jSCZwQvgEMOXP-gT_duZUc6171Qo8DhtuUWYPKT-T19ytNva7NO8ey4e-_gZluNjppzc5Y3TYZhGirO8LhQB0P1yzXYNqGsrIiWPRU0Ut9iXwjxjwZxkGtGQ4Ij92H_33ZbtZrH_QwbZ8qia2MB4OuPhN2C9CPjYWED93Ej-rA8afy7p0_9dkQORaEX7ev4jmuxjh3FE4FlkYpl6G6tp4jNk1-E_S9Nt9i-ABcMvdru8uiRgp1NcetAlcIC5vSv8gnQpKBIhVyleNxVVZm4ICpKXJ0Dp0KEEMtphnCugAkPWtOoHfKd9KPr5tx2NWuBb6gdUxQ-Yz7Vm8W-e8DWsUWfvcJyxV_N-6cV4WI2iLXCdbBX4f-MLLCsYyjN3Cf_EtO_CcXH34jZdawE_muRuEIUzbZBZSmZZPgjPRg8SnLYEcWy4hKCezOQ7I3_KqJs3zvt2aT_hF_LsQmeREjOCCSBKaJGu0MA50_w0vfGWqvabdOEHw-4hKdA_Hvx02htdU-PJ8VlAi1EtGi23jonAetZDKaLL6LAQICClR_Tyx49E4PH08fayIA-Hy3yAoBnFH_Lwy5UbI-hlgYeHbpC6Cbl9Fk70KSVDzddlwXa5vvPxKjpBiifOLzxxOfaR7u4PO6fADYEq3C0_4oaM382iJcr-3q5lemUxsXQMF3cuKphmLZ4e7gCMiMytLvACM4eV2AJatCi59zGA2DyybyGiM9KGMNr2NvPeyOcjLwcq-YWHB0XWPkn9SjHahzjmmMPlsI9pm7Nd5_IP9OBV8hA7Cv5oZxlHUZCXENIcv5tV_AOKyahasy_BRBz0ZbVwUBJ2l_LHp4nl-U8p0-Gi7hJO_rksDrAFnfHARsyzpn9N0MYb_Ryv5hxDsIGyoUu33qbgh8_q0wbuA0N4_juZZN6NZIpcRj2OdgrbdS8wC-Zry5Fhixvho9n8K9dPFwZFTxfu7xPt8c5q0u32gNYOK8dHWZZmaWLVhDtalEr5ilVobnu4NPPQYdHAcdnF4Abwi9Agilq-ZXoqlw-5WFutM42njw-6qZzzy0ckrT0CMvkD2l0RjPod0SeIPLgP3yZmp3IeRZ6hhp3zTy5QvLWelb9rMHuMqMEcyTH0TtXeng4gJjMaUdmqhcDMhXMhzt3_y0YcKpxX1TG8khqZNXI0TFbF_0IOOL-43EF3Qmd-sLeafPHVuF4CgvvP-sDTC_g0Ydjg7j6kD4gSWuNi_tFSVUrRODcEk5cGEUED8BkYUFz1mYEK3mB4pCFsu4pJZxhPmkExNrCgrEO44yZgHp5Ym45JoRTGDDkQ21bmPYHb2QO6pMl9gWyv52e9CPzYHstT_ry7a_1-tL0__NwSsk_O5wIlTbIUKV53UC5RL4SFwcY5vYqpUPq9o3K-u9KPIhzlliqN53Sf7Mmu_BtGWpoDWSXoou7YGU9gzfZbZnsGE5caDZtyResFVJ6ZuAuRII3hA9Zq-mpS2wJ7iEGEGj00ED-cNT3-NKSGfSIHXvxzqHHRP4vXMRVp6xauWjcx-h8b7-QC11XH3jWRZmisfRdkgHGpSoI1sbKKOx8Ot6cANL5c7pGs7VsQQYuQyC7uHJFXsEfchLTCMM1YD0hVjCjWQ_vIkZP_xUNwO2tCbg-MVzlPrfQi9-o7sc3UJNnpIuccCDPYcbetftn2S0foyfRMUjSNFcA06t6pWxdYhwnciTBe4F9oR5PKbBlclMy0iluY-7wWD6GpHNGCO-Yc9Ytbi3wpJe4K3OPNYD2UJiOs57_5P3DdHGkuEW2s5wTrlwPkIQA3nYR30D50cGBD_Ih2xAi4Qa9wpROFRBEaR4pnLJFAEKYEJfkElv57mj3LWQUcmYMkYJpEMivztbrYra2-hJyj6ifsI60zxKjSvzra1YAJAsX74SUUj41HRpii9mN4LGZSD4Dz0wTxWSmmVXZl7ZknBg3dKfms3RwLKcwDRpyuV21XuGOlGu0oyG5DJ3P0SRhn46FwPN9a9ykx1xTwSNsgjHOiTFK4SCeTxs7apb75bQSlUTHD7eO1asKpL-GmdilJEZbo0jioAS4ib43PIMQ7mezyY20_n_DtlktQhad9ZKm-keDbCz6jiBj1bpiXfhV-dek6HDS2mSZtXb3fUyhBtRnvt3juSEvlv9cy3zOeSnzGQqH9mzar455LJZBpBFxg0zqhITP_Vd7xS-_t2-kWTCD9C1D6e5nE-q0wHpzFLKVtstezTu6wI9oRHlw_sTTEFa-0V93LxpPZD0OShldFR4qgZ1f46GI_5EOGVctJ37FshAW-0pGXBSuXS8Zx_WyYOFo1lkyjn-WdrgrF7G741kuxPA7FTQUTEi6CZDJkLyNXSBJc0Kw8zmIBYB7P13XTY3Wt8B_BBzpjgEOaHJwONCEUz1mCPFe_QTODgNXULbDBtgPmiD4c69k3Vwxabq3OksCjIKVRfCInqb1uc0PZM_YzzhvknK6VXucSvhHhbTPiPIVVjGzkWxwLw_dlPT19sJQXiiAOnBljTh2XW3jjwsYl_7quIGSC5sYExdYT8hdtVRMH1IfjB8m7s-8hufowFMUyyHlN1KLKYoql_loGYYLcPR5IVwMjbN1pBKt57PILr7OPzn9vn36BbbKZncykvqM7btZ8Nx6ZpEdj_qLplOkAWW12xxPkuND-mG98LWUiQ9AYn7S2994FdSw1ZyX6g4hkBCowY7Ksskv1NXuaWcy0WcwakHXP3bNhSs8NbxOQubVdHyDGoV2Cz4BrxlXMw5HUg8Jkbw4ecoseuqa3wePRpeUg0sxlFV0rX1dTk_2xI6wgmmWQz2nKrz5rHyZDXkyTq3GydbdEETl9NnfW_NCsrdfae0yrNWEChQycuh2pBBgFefUP1FMdX_n74apwZmFmGPfwgGb_40kKSGuYkEnkrcMwjDhWa1j8CBR93WoDIp1Hct8r3wJLEeUiSFgMzqTC-IVJ4MDbBgQ9BWeF2Q4dqKG_O-1qOYgXvB9oUdbpOKvWqfb2SOiUcLZW2kH-TFKPg0N1xqZ1nZ_a3K0pStFSL_4BYodDwfzhv4p7MHAaw4petHC4lrE9TVx4KL8zvIz-0fj21WtLibrDw5rZ2aRWczwsRnAhY1pibZ00UxII99V11IgfdUl4qR9nPWGL_g75nu6rxEUBZp4wYsUPYBJCj_cdlzbhpfumC3w_pLwfIQ3U4MSb54uEAZwbR3ljCrCx7C9Hi_9DcpzRVGz3j5U0kUMA4eGLukZ2FJPZ-_v8HzdzUGf6bhisKiKVAFlaIab3uMCYY3zT_eIPSePeyGAUZ1H_G6CqQTbhqLGbrZpxHGRb3Wnsbt6hXPwtSExLAiH7yxqPqqowU240A6HWVC9SCjog5Dv-91KvKLixX_glyntx8CMDCslM7wM3r574a_OW7a6PYLYhcfShTI5CAau0IXrEg7cboiv-XdbZin1nET6Ewuf8HJpYbfYXoIKvTeecq1svScHdbvYxZtVyXTOPa-wl5kQtDqy_XAS9W3xfp9PwZ4kBDJFI-_ZO7WgEe143SUWYSprNiXVuB6ObbwxjSHhUtoWnTuKTYgCQmh3le2NgX_2BZ2xvvTY89ZvWg5dKfjEPo2sDiLERzVUCQwVFcQ5xZuFIxigPZ8lWNt3ap1QJrroq_XbAsXZv11aXeKzrSYC-yNUy1s3NdlTgkdxsJ0uNOGmYenZzaL2ZnaN0v13XgFmiC5jS5EdS0fxae8QbUidyWY9QAlCZVCeWW_W8-QS7jjSqG9_Av-4lJPpFpP5tS39EpiCeP6snH6nWU511QsFgz2IZlVKCC2nGh1174QF0FIsHQ664zyhbjSvuO3vnDgU7E825CixUM0wUjSDE-L_j3mQSK_0mkE1VjmWV-Vtkk1jd7quvoXgG1-ly_-4a2sOZXraZ6lkJrMkxgEztWkFMTNAnLnxWH0RDji0XB1cJqW5hWTLvN3GtsTwrlfT99rCrk1vm-yrpemLJdCamnqno5tInPn_jDiXU-6v6RNSxpa044nOLU44Leiu5z-7IkfzL4t27DbhLJz47l47rHWB4PQMZHIGjjgYNnoYJrvPVLss7AevWHHcdE5VaSGCDc4FLcCieo9vyz5OMLxRdPM2gqzx8DN_B8nDayVUGLFi1Q2IHBiEhhmjH_3btsLw6BD_wcUYjTKHPNbCK2rYjPSfQY-ttWaNCZoSzmX63ferFUPlIdzwe72meUPwk24hJxTtPO38eBAmzx9-o55HYMz0RlntTXRqDwcbNN_iQEtYIaXT3zeYQgNeITUEGp22GMbBZDVuHY80EYi8Mdf1ixxOunP-HGwwh_tv3MhY8GcsIADK5E5uzIKiEHrtc8edc9aijSji1WXixgtV1dYtLMK66GpiXFjxgXpOZ4MJ3Gz0Nu3CNiZVGeugye6CKuX0bZes6on9sUHX81Wz1jbPyYTfdLLCcSX8etOfwYxE3MelgBquwqbXOMJ7cxfngsbI3wRZtUzvzw65LaOl3unhakKaO8ae5NHe9on43Gh1BHP3a9au57uFSbLLhF5sh1W0rSwGD0ajupURXUa3YsBPXx1WvfEMjsytVudIv0yKZPjbu8-XQNnT5kuA_Dx5wUgZZOFhZ-wb7hAvbKTBrUqb7FvRw7H_cMfefBiZXQcWOs3o0zi5WtSd9lG-HYBTpr_Tcq-wEB1-lMJZxdtMZ7IxW4zHFwbGoTajqUpxubVfFjtXLog0mo49KpjYZUVIQ0_TAPRXPSX0_YHsmH_BmJsgx78suU7Rf71Ys53NOW7kxE07r8o8kB1xRYXmZK9sUt12-dWD7mPU53xGgLEeMtvh0yLQ3uwVbTz8tFtUAHjWIIjraRlyhfyAY-1h7UL9OLKzBf0UIGtjLiqyyfm63jUxVKjqBaKXXezjR1lXLoGU1PzYuwlPwE-XrWqM9Y_WSlWGtELc5ijoXRHmLxMAqee1WA7zif1vfTetPacIH4dk-7WIQtlXJXZ65pI0eUXpY-29FRAIFYiI08gvWrz93rdY_YbbVsrM8Ghbv4YKqR4sCnotacE7iFvf6J4ILKp8oMOpNcs0qISvGoi6aBVwGgCjrMHzMc6SWFOj1phJrlXYUsckaDr16sgs4vcR9cqIPqOIkv-HRHsKXnRGMQsAbWTMw4NYdk4slxV02xqweQTRe10kjwC3CDNCqCTiFHNXFFVsqn4fPD39lZVfLivJTtOW-hI0MXH7zN3n_jc4msC_MS6gs2iq5lA9eiHgPbQnwKNcZlXqtqZ3iQoWcd9FKdyk5Mq9ZSbK5hTL1d_don484S_ZZ5hV60YhU7281iJ_CMtBtV-d7O5xtvgtGHUOcZAJuF8G4OZ-t3dzEzWufv-GeltjWGRAJddrOurrm9yiCDUCERfX_j2gu_Pu0kkrTjJ_VamJMFbGUYgQ5Vtnfe4DcKzwhHuxlO_Tv6itUCUYLoUkacJJEiaMameZ4hYBheS_fWRaXooQMUqMp56Q1CF2YHgl0X3f3tT7dG8xdIckoaOINIxcVPXacr9aUBL1HCh5CCEVLMwGNatd5RCVUCpsG3cq0IwBaMHFRNsjlFk10nQIv4R_8oyWo01heG42R5S5f1hcYKhWakoQcqNPtQed2NyffN7RtiCYBY-HiUz7893TI9ACp2lEuJwWKH4fbWhj8BOIn22BoigwCD4LwaJviANNl0FvbjZ9YTLWQQ56vBg8o_S-npit_63cqCiV8JReQeYq0ekmSwLeNJOuWsYdQCrEibiJiQEqB9sDpaTFHaS0wI6dIEF8d_tcuo4sNVr6kNfOJsZS_CcRiKVpco9rzw2SAu38dfOenNZRJSQ5M1p1p5TYW2prdoT3LASdKoXcqEp1fFn8rd9CzBAD4yonbXe1muiTvDMC8Y42tPPV7bLS8XthQfdZKo_WrUd6t2GXBhFYnaxt3fsgOL35z-V7r15b_sEa3bCRLoZ3uq2Vg8QzCkpDynH1juuXnJ3Tch-_rwiY7fruiAR02bhxvGetD78fglNq-gRLhhpTdIshvoY_wEgfa9W7XJ7oKK-v9-VUjQzel6oa8tmvCSbAwojwB1gzrpRIYgI7iyFKLwdIy6gPEtYrfIyshwqHTI-5uDvNlzFRjH-nlfXtA9EPIMI6oPscNBF91IAdcdY1fWyCCmKVQPkkxDC7AXuVuPoTayqc9FhW2mjeq-kObBg1ik-3bIPCam8C_cF_mQBuqLwXItGdy2uSIqz85d6Yws6TLZxfn0scS_QILhAI-URVSqrQbUmrBal6DdzttBAVnvxtc7sviAXgbcmSrHm5I_MQsH82E7Q_P9d0Wgwfk6qgl_vIkHoI4-3VSHvVZc_YXTvsc9atMWUt2jYBhY80Q1WdRCV1G_y53cJ_FGN8PE9Wo3Wes8MOHAhqR6iPG4K8EQk7syHcOMjrPOdFVQtqe_qneitONBkPsqqlSekRqlU3w1Aqv3601mQH5Mq2m1ytUH-QvFnVNu5AWR9J8nkZC2nRho6P5VSgzjQesTX7AgEk3VZT9D38hirs04RkZ2FobafgiI2Toy3s7qA5k2qL45oA3oGaY3WGG8G1xHnI1WPC2quKWWM9DXwUVrLj98qvfqyRHWKAAV3A1JpoGCtyxsjBgeLufTWHqIYWPHOTqZ-31aJZwA50FnjHQcC-ifqMzGt9hXYmktPy1m5C_k_9GCwWTTyhrhZUBxbiPvSfzzFvCHmRcFbB-5z0zweRmQJ-Op2Ch3a5IrhWbhGnBy27ZBZNkXPYNt5skEggaYetBxv3tjm9SpAptqfu5AtwvGFcUUvfrpLJYY7l2SQhNSIuXW5pDwpgjomkFHTedHxm5h4QpwSENeOneEuz2-H3a7ZOvI9SkKOxw5uRqAYVDK1NhoCmOENoZefDkH_3iCdHCJKoixheLgT0tO2ZNTXlxObL3boKxiDPoBlZJLAjW5APmQR4pxINQxm6HaUEhhk5C7JM7vtslzoo1PzjR94ZmeoSpW674AK0NRlCyr4Pk-qFpKd6mUU3FteIQNBwY2Y4f6s3rpQI6mAcjpYkIAmRk21xQ_OX-JzXUVgjpNaXtdH3xQpiUMcRvaPLTCPbB4Qxaw8SpwZPnD49W9b310zcK_0xJHP-aVQKzYrSRtDeGtztC7N-na7xI19niHts5WYm72tr75P0A61qaTvWvv_eTLU7CW5TJrX8nTh2kDu8cmQ8RO-jUczAGsh2G7C-hYvF0CsUXd5j3xBvFYUlPqxByRC8aTL-EVb0FUPlVT5KsEU-J1E4H6CUpK22zBrELKKjGUeM5Onyqj7pdNvkWvmziGw7hnZP8sHBlMkgqHxI7h4OorPUhnSPh_uy_mISjtHDVOVddrFGZum2NIXFTrPTkp9g5zKpsKeWtKzgd6bw_ZHVpy8ZdiJMlDfw76O7MSy4gSHzLFR_HAF7bVNfea9pGYCFE2YQaNXzGdgSbZYPso7AS3O6wgcbxsTji6IQFNfhj6kajYdW3IpYNI_0ugRE3O1OOTL0qjq10DKxqUfq-R9kEyyM8stpDUk-fptHzdDeX2zCU6BHMYpF0gfQn5763aQNF9LqjM7-7TDj8TqYyezanZLSUsu4TzutqQwYcmVoVGYn2i8W7OEUhJnwS3634UrW0_Sx6drLI66tFxkz81BMzSwtsdWX3_q3Lqm7QSBp9xtBr-mCceMytEUCd-oqjFAP-pIrNJQ_T2JzuqE3GehXQcIXQkmy4miFBdyoZglIFg8l-1ugUPdaRjmXZLfmpy5n1dVfipalP8PuZTcN_u-lQTA3PXdIQ6YISVIeXZZALM-hgoZRh2168XiOtxfGBR1BCRMhAIJQLQOxYSxyjG0N7xwoRTQuWyoeyb5hDtwudX8vzXZt3Rz6_WM3eGOWpVqpI6dx4aKe9Y7Y540YjKuWJm6xllRz6xi68JWYhqhcOuzpH41nOF4fYTegDk3kZYQ0-P9oOBg2faA0z-j5q4cKE7LcBBEFrm1KwfKp5b592TRCZ9wN927D1hqHSWy2RA2ALO4HFGoLZJLHOFxAXX5oH89TfiQCNKHWLNdVu9CiPong_JzObuYIhSBE3szPikKTztfhnhTq54esvhcWkHK31-2xJ5SaWOMzngBA91QX7wWteDk9fYfYI3k14beJMN-Onvt8PeL3wg0amWL1JiLiRjfUviytiJNHEDHnCvPzFBANeoYoUCOv0ZDHYhHeWCkDMQR9pf5hGZb3Gzfx6p33-aoRFU-tHL1EQN5CF66JgdISOtPUuGrhl_rBO4773Rn6EPaer8Lx5kBF41Z9wzJeH7t8cbxTBUChSwvwio-ocGD3eeGSKWp5_YubaaUhcPhIRk1BV9FhUUIna6SLSG5SheAmbQmbb3OmCAWryQG6F7lb827Sg0YRjYvPY9KRrJL2p2F8sbmas-NZ_sOp5w6mgdufDcd5hqL2kAkdvEwU2NvqFffRYUT3RZEhZ2iv9lwuLgqLntG0IjhceQ_5UjvH0fdbwdbixdXoCxglQz6FKm5oJjfKAXbPcChrJTZ30XwsZsATpWR9Z_yYCJrqwT9Rb08dz4-QC6ajx5BMycR0IuvfWWTVClNUKcUM9cOFCG0dOeWDsbX3PcNNfbyi3H2ayDgpX2YBT-8gjEz79pbOOLR4VJAGQXw28kwF2nVpHYZRoWBVSZVs749gzZl6ZUE9Gww1G-03LQPrcxcDSSUY_t-AysBLcI4ITQMD6XUZuoI93V3Af_YmxXUNVoS9Dx2Wr3HAcODIEGzjjNJSurpI1H0-gEZ1MaQypYjTqiwL8u3DdN2ADcSakrQK1rCQhlkLL7kMRUEHSJUA85nbLpXuOjgJkO6p8oc-dV8vaHXmJkABWWdy_6JRZqrneifqYluYIizdkba-7LZe7R9upyS1GqbA-UYw-K4kawh-w0epBYhmKNugB1YE5M11pRc8G6CSOeeElFfpIrrrMNl0ii0Y667DRGWNcKNbi0VZY8IEkyGokhNmEikttf2TVmuvPtTz8kgRKFM90p0cfIic1oBNHdxjMWiGmnBnBgyVB0nlCBbg_3BKRPCpHXxyKnDQpXOKzwQ4Da0kEy_YWDij4e24Uug8MAaasfCGh6w1jUmBA-9Py70rARMpUlX-55OZijc34wWlpLBDYyjTRknTnyvj093XLiPvp7359Oa1Nd0xASlGbTUpTsYrk4TdTUIb07qIhFEyCkj6ASPBXNzyzkEZJamSQ_RdaO_QYBXMjBJdT4hHrFZ0mr0diFW3plOOXyullLey0noCFw8MWzvLJujcICF9s61HBt_ADyxx3BKvEkkf9nvcAHi25mN6KHcuN7ThuxZJepjYW69bfhOZaRpr0CePL1DHoEB-UGO3Ysbg7UOEz9l570rtl9fBerDO8PpfxgJdTHcukJtGjXKZrlesM4N_dF93eGWrXMxR_-qC_cLm5Qs0AlNTtE-7an-3c1kuUW5773RQ0P8QKfzVmwux62N9XiwcaZRAWLpFvlJ-TMdnITljkwEBynLfAOwhkiPQ1ocQ4bq4Nffc0kZ1QRQHqJaIbp6WYuLm9XYwE-GrktVyn_kXp8Av1C2KAhiEFOlVnYOKUbiZ3RbM7Z1Nez_sEoOSbNnVTT1mcLvnQDxduBa-ZP32QZ7cSEd97QBTJcV_T86bRHBNh76El4m_LHBqhP3f4zc8gDfAvu1p7yvi1wXc2KVy1AN9O5x4hRFWMr2qlWsnx9BR7xKMJJhoBTjSJmIjvWl7yW3jI0ogtWdQSLMcPcbiTCIhcG5RyqniQ-HCsQHhcw5a_vFttA9D61JCI0O0I4xQcBW5Mo7aFsIBz2HJhwLePBQlwlcr8_hK7V5f0BX9jreZ4XDFav9pV800ZZrlOK6VZ4sgBtZIZ5dSpPwx3mH-6JYQex15pyKNlRUyi2WFiKSIbagjRGHhxkIX_zm0dN6UP_OSWV9OA8mZGQm75WRJZ43mRV0faqWrtDAKXm_jgc5w-vgQ6g3BP7dCtj5z2bqdSxks9zLj9LaHwwLj0ISF-khhPjpnD__n9W9r5BeppB2E1wb06YrBzegyu0u6RShFj7L2XQurHd4g09VXhuWoJ-VAZMsV0skRC8UfAhNgvJIKT64rqDIALQPTv-5K0vgbqpBKptH7IalB6730-APcrjGS_9NdXKcZVRPga31NOPYrlmNIF4M2qj3ejvUtpX7tJEyVLhyrS7HidOBH4k4B2RXhA4lc3oTM2wHkX6RGeYqS0ise8pP4b-KZ6iiSPqFYA-eCVw9WcTHPSuMJ8NzTN5MEUpTXns6d96bzREi75IP8bqEKiMcKODwd1Y3dz_-ZeGy2V-jYi3ekOKhE9mCZGSWYwjgec2L995rff4Y8hrHSYiGOAIBsDXkdX5-1gJOt98UEsj4S1OArXXXHkImFdEbdiRrhlqrB6DFwqQFuWFeeQsS_FriDCAGcmg0wpaq6UmQ2TJiLTXeHhNjKjq2euKaQwd7BWtPwGXWxyhlQ-hwH3MQ_4A6f7g42egopKL8IspLC_KhD-gbu3axV4CTSkzpc7Ilmx7VFbdPYWogiqRJyMQ-h1sYkvnq9fGAexpf7BKtn3RyolWw4wzTur6P6QfNrma5NwuHa5rcaUAAIIklDorAi955vKVrxNP-bmhpB2mqhGDQ6zUCTAFSRVakAAAmqX5VZiQGvqjsQdjNKzwsXL8cizTOmejLsWJUqoUVh6iV5J7DkfYX0R-gp5d5azLL5s4QNHZeuNbcZbaRhA5PZWume0WbuNlhECrLHCRU-mVINh7fGHcy5vry0605N4sPsXHw2yQbvOoRlpPTs-Ra1rqj-UG04P2LXdLCXAw4fzWAuLYrQC8K2OzJlu9tKn32As3jkZYn_au9ozvkm4lZSq5TX3pHC4dHwerxWrfENA_0WOQHkqknf7MFWIa1XebgK42KeHE1oz6nlSr_FENh8-IPfft8zck-NruLf52QCjmHGfiF-FEPMBWINOeDNC-vPI3q2S6YG_x4jrxVNbxnuAzzvJWw7dPgwCHk4eHYunPrpcW3ZFbtfcXdnD6Bdzr1fU3S8tSyxLbpXECwYMPWlldnkDfTqIypaBYp0_0ShYb4SUs92Ui8gKZ7yUkv8Uj5aZLx_9w7dqzTEqfrlzE6z3bQ2w4b0XBmhzF6jt6l3eM9agD6ZliDFNXv9koZOp8GlEX-_7kAxCZzT9Emxvg1dQ0LnCOgayMgSXVesPberXF0iPn9RHCrBGP4lsrabf5feGVpsSE9zT2e_3NKv6wcVmZH0GDw02JbuyCpntUB__UHolQGLD1zHgse2AiHAp8XFLH9TWDHDGWTSJTj0ZxYoyU-I5vcclKpGEz8NzxkzIArNnzUBQZhUG9Eg5rmbSuUz1JQX8P5OvcQje9eMJG4EsxFfaMC47mnzmmIQW8UcQTmyhjpex6HELMp09ah3HnKlkLk-pW7SaRTnALwbvwZhKciauTUC9hrpeX_XJSZECOn0SEgzrGylHjCpD7a3ILJwspFchDBo9KiJCmNcn3WPQ5S68CSlqnnJvTm12RcnZ432Y-CqfAwAUOgrQ7mpzpRq5pRs36l1MrpFpgDTA7yNxv1bm25e3tSEW0dbVnbFi1jZ-z-hAk1OKlsDvjv-Cocu2MEZLH5Rg-dbEvbhhoVP5GfcRVPPD0bPTeirLriR0rEgIQHgWh9EQQtM68FavrwzHyghrCVUFLXY1Rmt6eiAf_6tamg65AJxRhpUZivQM-fxvfENfu84SedfB-O3wIlH-2IJ58eoItyzFMIvghY3P7HGPNGgUKJppU9OyRbMibnusQ-px_oRRAGiXfmbQFX-jFimhCzU11xErrho_BDgLrrsmgfkf5hPoGYPIvSbrwShC46rbFOqxzovtjraT2JpN9fRQ31FLLc_qHpmU8_yy3YRhyKPJPugwNjf_34XEEJ5P4IRyMXN4wL_3UVGQRVRh1lfCUATf9M4hhNvsRy90P4f0Rc34oeNXTC1OXGeeXP3PLaWTvnLhIpM3YfyJh1H3Wkp4qEATeNVs8qWS5iNJ3uwgJoIegkq4GkWeXjQn9AOsMqbmmCQg-y8f6Yu2FlD6sHPobQSxrzOJ4loMWSCjXxN_WV6U5fAptfHeLijlFQlreZ9HICkHgHnsTNY7BWex58srYigkmcG4pH42VItfbLqlp7K2CE6PtYHskw9xQo_czZDu9aF8qLpJPmiAeoYI4NDH47kqScHLYXGVbIlTl0TL8SxFj02f8kyKB-OgSHwAQGREJDcpMWW3kxrDb7ebokFJA_WF7KS3kVVPxFMx6cSEP9fgqnmE8UzXRx3z6ON6MdvGmfbBwlbJHnA3MkaWgsryBNbgPAaNWIyqeDzXjxDJh22nBQa-qXARvPCi9_jW3u-CCgQRZM8M-GV1XI9T3hI2ShGm3r-mR6h4xLJsX0rvgm7s_V2S62-R4DfjXeef1_5UG_OUDgIdF1mMI1V-CT1B7LjAnII6GFguNu1RChHQDTzEoqGg_t05s0laY9LT3lJ_wTppcNLHqgywaJj0dQUXIyfEV-u8N3jwXYGA9g5KC7MxvXRjoV_4Ey-mEa88hz3rfrZT6H8YFsVjg6nDiAEoaEo8Y7sslB_No4VxEaECoRwW-csQ9wQML_AmrmgSBdNyB2MYydP7wRm3q_uBWaejReDUfXZdKGQiZPUczQOAOZqfs_3ccmNV4CqE4XLs24tbq-oBzclfx1fZklg_LMODwwtqBPHHPn_BBWGEizXVqkXyc5unut-YC8Yl-N3dGciL1KxA6QnOK1_Grx_8oU1CMKPsjUXu3Nmouls5Q24cXX6hwnk6D60WRRrGCJD6sl5JiISC5aG6S4xRcoh09aH6BU-w3JALWOrNbPalSJctEj2mM5pBFXmBFGAjtUmpQ7YQzPfJ059oDp-qaNhS-vyznCUKlq4wbHCaR5gjcAQuaY_IFhjDE90SbOTIIwc7f9z4Gwp6H5tmpWVaNnM8uP70uYaUr5qrY6SnHAoynBe8ivcyUUsJhDKKwYQbcA3QiP2BNBapjBBfqL0Vp5CsVfH5gVP4LYdIrFIFXtVqX-seqG1JEEqOrmMbmbaek9QB2WuxjytpnIcbRQQtX0Ty3uW81B9pfVGZTkhxDHKpw214rvuNlzXZ9PIpy9IA14rnV7eh2SJxnQKg-EsDMXOXTeqK4uvUWzPUS3-XmfW8UrVvYxYtFfhOO7SSVY0xXhODOls0hX77H5eu6mnDVjTKDmco2SNkMjQs6F4wZae1UVPFiac_IosjdPgJ4Q3n8-3vPAH7SzU4MkGF6VbSvLa5yi4uWWpZskVWFMEjGWnL3_YRdbjQo1zKtFsMMFDAj1_jMzG7ivIGVCZQay3sh_EX67q4Y6D_u3GIwlSYYv-F3Qtfzcnpu3r7G3lqny9n9P7geYdkPYNSj7MC94YFH1IzpLILpraMLOLqw-D8kCkUW6N_gR2H30CnFcu_Jp084V8343RpjPwxCJuAgQ0lk6tICuxaeQY30_0zdr8q6lYlYjaLgLscfdzag77nhhPRSrKeyZ-jwr-o1ZkVCuwVjxZt6Psfm397zh8Jk4-3q3arwBFwreER3xLzK7Y3nYDEiFhitHoYW7Qc9L6AKTSkuZXuk1g6C-MVtTkvIDqRVtVV44SiLPRRPfL7cmvOTr1-TIcMKosIA_07bYSrRYQS6-O59PAXkGdhTcaRk61mKh0_f0NQTNFVYRA6whs0sN6-lQaXmJT1GugjKf783PhjhNQg9asQlWsZ32Rz1HA6ZAfF_rbB2moYfLl13HhNe-rCV1upr175Tka2ZJhb_nhq-4ngDfmgqdAEmbyvJIeHUIzUvKME-Ja14vvk1ObotO09bfDGwhtD7Fpg56CdOu4jIyerMr7svOk0UfCybfJpjUngGUIpe0_OCZMTGoKs8UGa89e4LrYpzG-nrHV51DyukznoqZbPJa-NOm32mflcNUBOdr8BlrCkpDluMoXe_O4nXO6X69UoOrILPUiCJ2t5RXBkjY1LaFsOqbcXtC5M3KmSs80a8q5CcwZ42ysoiCZ9DRi8-BYTbVhsu51WQm8gbbBHRQP3wDAB5ib7OHT-0m3wFYY9HHoI8k3jLJ6h27zbBvbebzr2WRk1UHP8o6bXs8JTNYD6uD57UX5DGCbieRTNaz253YU0u8jWoYcjokoPTqnCRccW-Jow6qJd5Y5_cg8jjuiV5KGyDJfOQ-tuY2SMk9gE0NGY2j7pfymG1n1YRkEoInXvts0kVGmIYKL4Oq4TwnBgBoXPWxQTqcPahEjBSJUvLyxLDfPoESLX9I6tzBlybcxSFaqtMN7Gq8Bc0gU75c3OSUkM45ojO2PMvpZ6gru03gH_D3ZARVKRNYjL7J7H5RPgMEmf1VPk3BxM3EBuvQJgXNSlU9v_D1r2KHdhgUGmO5gsFLwRuGUIF96zmznewO6pVxz8_mKPvXI_KS5vfWn32SeuwbbfWmdCisg2SjgHRfEJFqrhiEs5PzthmEWsHYrXFElC065K-FyRZG_UxEpn2gBmxzSIlq-Iy4r7HzrmxkWw3WBmT6882qBA5Pc-PSb4ykfKwDNCZa6bNo-JM8i92GD8hiv-BkKYBVD04ad7Abuh_5614JGRR4DY95LAUVvsd-Ruq9OHc6gIIhOs5t4GNEX4x-Fj8Ri4sMXjMYm2gsScZKGX7g3MXANx-cc7-86Z_Xsxr9QiFQtFS41UXnGExtXPePmgjKrLg2nn1FTg9hEcKgrXZoQ7lRoKdOAC9TcwUOWN5NdiQR7n8bgNmclFfOgGmI6OPOHpcr8wRv9fK5Q29_IBAWC0AiFeAD5Ds1sWmrI2TZUxV5YtXjEm0AP6ezPIRvUacRSMZ-mxXiEk04Q_sjstuAgYXAQmQ8bDp-_wonj6FkdMLQSj898FxlWTPWl4u3N6yY2ey99uIep95svW3kLaOe27dulXUhVa33j6tZaDEkJbUpKiCX7Dwv0fisFZtckOSI2X7mPa8ytUtyAQ4s48cBB1ruuEI3XFnypFGH1N9J7C126599bdnuINVnTGTiOe7ebDChqCEhnO_aW8UfAbrgjcl3As2OMA5UXeVWLDU4ktAc5whEkYrlWsA9pS-J5xUUOWCP_lEf-lIwsmgWlUq0lMQkKB2eP-i9IFkx-y-7Vozjty8HWNG-EnPlXiOzNzl4Ha13Oj3B2Az627HjrnYT1hWvgpY-FEfFyPM9FvfjkqPtyKZRbSMiQ3Z-48yFUShCY2GUwY8etn69YSwmJ4F3yfyg-K6EH5S4r5S26TSMzlCjPMchzRa2Jp7SiuaRh8seN_nJ4rJZlfnOpLFWODdp1PfxOlXeQYbLiCSru45mPVquXuBLwBfrwJahHOZn_lfGdJiEGTTDDZM00_D6XmrnVXrw7-UvYomrjeVLHq_jpYcMLrDt8HnOI38wmEDqlYuJt07OdoSpW_knu3xmsUDjIUD8-U1-31NcMSY_to_hxSxhE-68KjBCQ0CNTtgGzdbfPNH4qIMahhsfPGTyAMv4fBcM_E2i3jGXFvtRmA2BP7N7rnuGYNP9khUkc5i-dOvtwVhArFivuQPSqGBAL17DM4j-qziAgHk1oX_oqZXvM5NYakxaX-muUKtQI97mhr_cQhZ8bV4gpjR3ygmawpDMumTiTFXEN8agP2v3oBM7OttrlyvAznpxmkMa5zglGziaMNPKeK8ifxWOK0eaDQIAiOQ52plzMClZJuBJnphV_mB7mf8g2qynHzz1K_zgoh_Pt3EzJbGc1roPLR44MKbfNMtIawPNL8sJW1DG9gyI4G2QDvQIWQdO_XFbiqPUb6CQLkiYyzxYKqWE7Y1oXXRZOknn9NAQ-Q3ffpLi-rQtlavWUD5pE-0lh-cH69mtKPSseVGx6q3Fv3XA5nGEba3F4UXUEI-nrYoqiATUPnHF4Gd7vLeNVPtEnJBPITaI4A15z7xfc6jVMjKG5CyZWsDA-Up02PVZwoJyuRHImHY2fVzj4xUnB8GUatfoSq27OLEU8-LiPNIaT5ZB0INMPJ33IOUC96eKVnmcbltba3ohzBrkBhj4YXy4ul32IDmzXkTMQYjqFhE_e8LGfvbYDLtrJ_Zef5uKouccH2Q3zQedrvvuUONvAmu_UY7g8Z4NRBp_8MUtwV8VnRRLhA9Par7JWxU0W_GRerQDJyykaKcf9h9mptIYCB5vDbHQ3kHhBwkIsQc4Reg8yJYLK7Op8MidsFO9GsHMZvrC0HQP55EJ1d2lX_PoG7G3HPrOBVwXsqgfATTTDkPp_4xizewIbCQQJQ00KaXxkMtaqRactJOB0rUxE_4HDiXraim62Y3pTrm6ZRiVKXpSvgsapyiRUYi54jrh2Tt8yttfcnWkiCRzh2pFU6iX6AMJZkbFuJdVm297tr4fyKb61q48rcAgkOrsRqjGkYAQeuZiyjQJuz0j4oj9PfBSavE_34Kv8USTS6kvlkUN4lY5qcb1-U1yKqX1N6OJWPJDAus1PgONpyUcvpto_hNQ5fExWfP03zFQzAhPuQI_YpzrNP2Zwv7HZaYDcLaKSSQxaUNUESLy-8TDnFZuhUgMDbND73tGS5mS-sgiO_ry1z9ndNqY_vJMzvj6QfS7RhY53Aamoz4bziuXHHYKYz1Ms1x8K-2v-CDAyvVhILKbXFHBqj6E1mLJSVXxaI5LVFXxIOsbOiia5cdbPoayTIXpKoIl66Esl8oHMXSj9d7hhl4xJUY_TX1gfXr9VkRRy4sDMpXjx_fWjyCTKAFLOnIBkydHakpX3Du9_G0ZbhOJviO_IPHdp_JVgBJK6TN2AME0tD0bg4A_O5huL7j2hiVqX9Z4nMUnNQq5D1wG3iUPM_nZAvgyX9-EykMOdtuPvGbYBZ_ux9iTMksMDUGn98uGOWItUuK2qAYELyRrAuPgm0OWeHjTZ2b97Y2mNRknwXPjsCprppyr1Oxh6CXTJfdnfvvRaHIUeNSvP4WLJyl0UtcO03in_wr66TZ80gRCy30e_zjnWIoTdH0mAH-P9kNv86NYw8iP7rZFBsY4h9l_ChEIumnZCj7Wz-7S1fhljqPLVJG6V7ZSeIC2KiQ_0Ir6Fw3Kf6TFd27yJBIrmQwiJ7eSyUcV5kU59dDPR01D1EURrz6ZhvCuhMqM0o7A1Qib4o58eExyBOZ0BZKjIA-T9Jm98HGUW809NrlV-eCZCWPGFek9I4q7b9bGuAyGYXf9lHUgUXnENoRo-elkL6qFNSndg-hQYoeUS3xJvfTiVYHHfaTd99VjeiQoBDNuG84wAVRQFKpLaAKVmaiwPAY9veOHXTHh8s3PAQX7rom1uY7UmDfAtn_wHbu1zCIVTgIFz8kpDydEh6xTvsrLQsVPpWwTuBp219zZKsHO5WWfkHxw-mE5qxlS3bTzqucRTbH20Sbvivn7REqF-xNltI0MB9q_MP1EmJoNM8SJ3dCAnCUyUnqXq4igkrzExFWvF3-FfVSy40m42LceSr_R7jlOSHBsaIlnYOZIS1q69itLHAn7i9strBP0U2d9uOsm6jsbqXv-Lj0VwNj8dlGj0ZIiAy2QcY8NMQLWCOXGbzXwczspWBxEgNgAPldPiV1W-rQsvsdLaUl5RTf43wIH2zpLrgjL4EFSs9fs0AM5g3ET2g_jhL09SvgCKkbRW1h37id-MsULeyMCMQu1rJISiGFTbgOoimnYA5OIR885QZrRM-K_-RbXN7qWmCefJOKw38lyCUrevtEDhA2f7FovvBK2Ro3d1CyNIsXPT1Zv7_sjDHpmIWDbn67sorhVNoKYxMcVeu4YR_4U-Le2kvqJO3YyHhuKNKSuQRvt5wSf521yAhQIIkrl5_GR0Q_Q1qdqZ-0S7_sPuMHBK5ycNiTjf3qkC2MY6SyS6C6svfgX0v1UvdXnVdIqlzZ5Jcrnf6eQZBl_AIumBPdJRMkeFpU2ipN_pcjHODrPGai68fCGhNwKA1ALmNvD334dabeizkCOVv8S4eF3mDiPOYKoj0ctm8fxTVsQZK8LzXp_F18S8zdhvlpEqjtqhzPfhFsmC-RCA2J5g5vwF7eTH59gpiwEUirgD5MkEIkWLBUYPgx8byCOYiuPhLH6mbRI_NuTxorfQfQzw_DZ-2tE4I2BLNJsgGjD7BtBAoEk9a4yZQ2id5FMnM3WGb4tPebGivhgc87hosctW2i3p3bzyOgelf3Njy4HCAxo_1lfOGqTRKRpb2nKZRWJ-EBk2IFrEqhXxz3VgnXTFA9HmPp5_EqWT5RbdWotP8_VFCFXyeLLUK3SfeAb2CNpEKwfNTM26ATKjaTF7sOp9nr_bL_AZ0S2OdVafWCUdRS7mz9juiY1Ama3udRBrx6cKIW9abHVfmdPsthqQ8JAYqEmW6eAmAmHi3iqjjp7AxdcP-pH-ztPSsqgTkqTWw1o3ahyxeG0PuEAhmB3yvtBqQKDEqNcezr7obe9jgYCSG5LnCkuO_9RnADnj3_tS0CuX_wZCrlSf5_oKNobtvkwv1Zar8lXQidrHs6go4aqWi0IuXgsTSnKKBxy2SytqMmRdNmNzIs5d7u9KT11jCMXXtHBQUcGO7pBmlhZPCm-DXFFlPfhFhqkc64VbDJXDldjy0u9U2NAGr0FD_6t-4Q506AYVNLlnzlDc6fHFh2487a0EF3XZCfdgRK9B1NMnJTgO_FTXiYIel70gjHpJOHYkund-Bo79uqgJaIgS6FSv-ORQS4S5KxvDjOi-jsGQdpBJY82dK2zioZEmMMLu4qnY1WBovtB4P-daYhfiYbPMY6oNCJLxTvZT5WMgLSYPC8H-SLt15q5AKGESOWcTPR_DEAZRSzcm9qzoU6pG1VZgaSiZTT2URYbJvpGJdrWVb_P7MWLZkWzYAjeMqIiaM1vnSURRUp8TJauxsMx9hyvs8I_ZObXKmqID4F1uI-HCNxvV2GG4lG9k9C2hIbwvWwEopHG3OUd7bI_mtyOOSm6M9ZZ_UB7uCN2gfN26oHC4ZvHSXvvpSsA14ft0IgsJkHd1fkd0W5kvTbe9Ecwi-66kcyQOoAt29zxILWt113U11n2JHXoe0hz50OfOGwq83-odhCxOTBDr9GxFWonGNySLK6skkKSspWG0gme5NK5v9aM5m4EyHqe05v0_CCsKiJmVzdszzkqcBHbuYAdbrs7JYKCy7EIeDWhQWNlsENoJUb4Gb2hfcCAvwRiVIF6wEzEELK2R5XkrLBDTdeSgDs9SpQZqmh7gZ3vo9SMtpgR0MuMXYel0ImkS_WL4mynybsif4XNpqsGbYypmDkFgg0mS675ndETe7NhltMNXvunv7rAPbEmLcGUxlUiTyJVkMf-vny1iBULIbJWnNsjSDtjbbEq0_AsslIOB13VwEL6RrO0yjKZl2MAn7d-dI4zV1Pw3_agb8Xbd4m8TBqcEPPcrmecbVUUdNNliC7t9jluuWnC8938Kk1RQHizy1fhLeALWNPcpYme7oh6Kqva7H_tCRvZhChl6xJVA2inlDQKRlZ_Z0y3RbUoDHVr82KRLyfSg1rVXRcUxp-VGOsQc0Dy5yQHrzQ3RP7Iqk_6TH44Izj4YcF2-ISMJt7cdaq0ts7_G9qKonIikfK144FSzChQHPWgPwwH7ppzCJtK1ep3rkX3RAO2yq_AHiN16jfb6RbR29UDUKzCsIQAJZT47e29R1H1oCKkY1-knVNn2cUDj0Nr8G33QVxn78ZJmROd3veIYJO6Hjn8vhoaB7DqH_1z048w-e6cKbB9ITNIfwVagBvGXTjdE5l57yz7rJ8MdOFUrMcg5ZKExof2D90SQTpuiSQWU2N2TvsO3FQtBMwMPmBX66FMK2omX_10GTujX6qto2BQ3EG4Uv4uZEpv2F7ggKUaXH1ju-KQDROGoWeFbk0UekF7sbpyL96rDPiideRtJ3aFlWYOG4dEFOezvWKcKej0qGnyoS_aMe9P4IFcN0dgErPvCyAEV05YMFrFdcpussYoD68zOvlzXy43fl-1s4D2lFtcLKLlogJVf5LuZftZ8hAziW6caKQvRK2FvMwWUC2Sccno0bevZJxxeTV9JoTk-MePT1VwF_Wtg2pwYgHG5UY3wnI1DmcfnYxRU-HS430r8Hk8jAppZ8FPKt9YeHLokaitZKVEcINcWtcfqC-AN4Mzg-1NpVRRtcX_ktNc805CMzvp5jrYXkicoQ-Jpl5YCFEFi1wfAwYExlULWrEPHcFqXHUn2kco_ncS3lS02JStG3iOfVJRaeNxd38OMqcJMH-xD4ZFv3iyq1r00w86JbUiZn1OT5mPe4qcHXrAr5OXKuQ746MyK4b7BZsbZDUlPjTqVC5kel_qhhfJUkCNOJVqW-cEhvCw9J9EeVsn62-CLtbLN_rhe-I59GwOmuPYxhikK6IJVscPwKXZqfbkf66sAG3yh12N8ZRAufT0cGKa01pCqrx-hSLLLGgGl9EfGiEJ5DkFQITG96u_LAa_2fkuc2JUXHwhr0aKGR7lmVRQ2BnVadu9OPPzWbb0j-tjktJ6t9UzfF2hIqtJEB9uMTmEUTL75eobtmSUpsYEeXExXEA5Q__8bXfLmCA2j1lgng7IINLADa2IR7raIHcGQD2QlPzviBFb_-EF2ZZUykr0cfx_m_AZOs8bWAw-gujRqPNqT2pXvzuFAMVgB_G87WB345Dq9XmmL6ZzUS0l_G4z9IWDerUjc6xTWmWnV_DkIFO64LCGOi3_6PXw90vztA8gSZhCXji5ymjPtLA-fc3qZt7eAyAx21vRnd-Z2jKs_OG280brTvDGpGKhz-fWqBUYZczBakL3Vk_adbXp9dehDAg3yu6IgMwR0CjgoLGElvcwTAxlqwD51c-TfaeUoH6b09QceEfd2rKhqmEMzynVMPm5bWXdSrj1A2-SS74erziErCDcqjxtAfwsP8YiKLkyP5QE4IXnPHTe1WsgFC3bmMt5Ca1U-wExKke7RZyAcoPm2Kn29gpuy_lxZbkpei6iGOz8R3BymMA2MtX0uvP4LwLBix-RXKtg7qjgLSJYTY2jsj_zZ73DmJG7GGJyfCIVA3C1sKiCDcplJLrLKqPO6kKDg2tdAJNWX_bNkMPRuLyvmxAty4TmE4qRh-_awEo8hG-38TWax5nOpvjYGJHi_wmznfIX3GlJMeWMV0eNP9_alKsMVW-uZz5GW6w9H2ch7re4md6PAzNRaapDJ23XqFhWHipEG0xrmKnRPeSZ1-HQhJBENQMdJ3YK5TFCJDz5_SFsNWhkAI3kbztZm--O6YaTOlVEvOWNDhOMexZjJfeCRqwTn8dZqrVbVxCXS7t0TZnpNwxB9lU_4_-s9CHHCoZI3r0KSRVQSB1VzGPXWnmonZ6qyUhp3aW3M-ht_33leTzBLgOj8jqmJt1y2PRk8ieJKIof9yv7Nh-s3Kg5a4a5YKEmuvdjik_of22Na6gfZaBHZXN-UqUdmMbyER3AqzYlfAjsrp502_8CfVJbVFwbgbIcnsYn-UoHO-3La21E0GtVbORiIeY04Af3TCY4seFAgD0XYnSJ_YjY-2LONZ83uhpFqCFTonFXwKJHjW__c4fSuTLRc8JCGzTOkM_sOP7O_w6l5cniT2ptmFq2COzMfnh9mjdkW8fKc9Dp2YPEce356HJ1K7z1Jb97ly2LJvWHoGEyZIYwxzc6JdCWcNTICzjeNUGYVUOwpWD5Jf11utBpVyv7wpEBGZ7iZnHoTaSVWgm8rWfcV789dXWSyVkKDh-6S63jdy-MeKrTbH76zh16ygBNxo4I4KMar8r7tLIFAAfuhO_2eNGbgDkNNSf2uScPY2ClF9j1NDrviVWeB9jBCldg3uOQhFGmtlNHcOm5SxaqMdpZtFFWL5ST0LbETt_rs1Jms1ZqdzhCd0Vx3C4xgjUPhAXqVoS4TWwVYtFE1SAA1C2Z9gx96aQju9oxuzfe2fuuznmR8q2f5lXUXm2V5pyXj1NPJZHdwy1AoW0L6FAiNNNJwPknamYdifgcY-lRKAgAq1x5hgzhdOyJPHC4_0wpLH40t3s6TNDqXYjs77kyIPEy1VG0Hpi-gBwEWWveLaXoXb-sujO39Avmb6KJHEOVTu7GO9WBaczLyTxJxbx0Q8EMRjq_S0bbmCKVvBonWCXh_qFunlyxk8_DdmhLs1FYUC2MWQc6F82VX228sp-DRxiuUnuO7-_3ZTtRur3Vw0dFxhkkvd9gjTpfdvgaTHFKOdqxGLC3NDiIZNrfBaSY_AwfCDSs1nnShzSGDeX-Ig96YR_g4N0_UyOrV20vhVal9dgdSWQ4RFhr1ujQEexjLwrCtFV-Gj051kblvAn0hUoBRTJQzhr6tMdGfLvUJzSM7TOd_g1XA_WYeuXbnD9WQvHer4oWH4l-jSdriLbgbEQAHokXQgUvhtlTV51quhe2I2I-qqiWTJFmMKdl5RXt0mo02nRK-ZtorPPzhvy8OxV8J_Wn-G5EHmEMinyNg5timguo-YoKlH51sUORZZXXnrsKMbaoN43A2a3SyDIgGrhHH2IqjdL41BQD0TdkqqLx4H55EXbj-T1InrynwhHg4l77MExM6_fqExAzHzoaqzL0LpXq7GDsjtdWUuf0ORxN_vtpZsWYTZB8Nqcjupb8Ldw5jQOtW137Ofdgk_gfGe0MCfKlv_kEVFYduLqV6Gemm5sTghZRYEsYomugpnIfiUYo5DrFL0q1YT6E22D4Jkboppv-llPUkGeSnTnwOYfIBRlqm02xI-3eaBOIMLDQpQ5uOQF4ggKKEOr6x0FeIcZxK52JyWZFt_LHs9IbLDcGKogNX_2aumoIXrFkB7V8hxQpCraDr_htTqM71OcsC9a0V2dCFuTSOisQeZp0wNMMOVlRqMVf9zXC-iYO7nIHriCrLgblZcalrxacN5uMdOMD1sb7BUT_CMxv7J9z6vGrcrGVxrullEPXz375DO500oArEc9JlwaYGfRF-fnqB8rZvG3lFpY_GPl7zQOioO8y_m2xPW2yWI4CYTFz81AJLFmGvx3Sblef-n8-BgCXL1tEj0S-Z83HFWqgjosA3-qDGnRrFiDPTu9OVlujQhW2JgIagDKS_RekLhEi3g_2hLRzUZCR8oWR3-ZS25CbL108RunGKdibNNtI3_y0Yy_G5vWX15mxKd5boxN-w0qditssUypJ4jyAyqEAdSlt05KahKXdnZg3_TdwJ22KR19dfqNo-fO5ZlfkNQhcEK6hclSbDeaY8fGAgNFgc6PhnR2iZQqaGuYgwZY9ZIpteb6rPxjBDUWdCFg7Ckn8NybqDQVS7Gh3_axRfAGsEgYMRf5nsyq0zsl-pOPX_sQ2rBvF16kxCEjJEuZ1LatobTTztCmxVbGeRvZESugRFVAimsrUU3nlzSgCyZEZQIicS6mK336isSR7Uau0G_UczDtQOUnhg3Am6yk84zsJPV0rPLaTgI5r09khqqPGceySiEwP2fnDPpTCJud5fEYOcrip1e-GFQ2EVEum5NiGDaMoSsj_8xB62LS5noALyrgQqL3ZdPV2imQkmhL2kqJ1IMEQKU6RSGQJXDcQdS0SY24FuNEKvzcnO4MwmnHFxQjHtIDk_Y4hCXmi6EZ5JRioK1fisNDATmkr6dZml1asNNlwW89qT34fDM9emokKi48WMML6g7wPFzWNCwZoB1O3pkGaN5DOBp5imGW49LRwKssOqO5ctKlD5EmkhM1XqxNLUdS6PGbrcx7wGWb6Ttdww4xgI-VVwSlntrsvIJlKrdijxdiYgHY80DcwFzyMphSOH85HiHG6-qbVESsRmjjEVE7UBXLSaNC3NfLrdIIJcaCTLwmcxKecJtisutjOqKBvgAUVBJnrEyYTTqP9lKdPmiGq_IXgpe-MqMnFbYsY1Kpbt7qBddlfG3L5CKnoCIJuJLZb1PBcuyC_jxAGYM6YHtZJGicV55VecPWe28Ektn2pAtyWh4iNxmHWuykdPPfwu_5fRJ4t0ZXGjruTHe_XY2YIUvU9TL4As_12fzGXjEmCYkCwQoqrK5alZZ75uvhHYketvFDg7AIBsXeJhuk6rGg1yBnGoQbTAjLEEupAEbMNwdsDcgBuVSZSRdBg3TVHB80bp_YJ-11sLVczHvpp4MC9TWFFttjvmHPOsr7C7Qrj3LHrdAVJvxt_3_i-CkgqLzKEofpw7QdVANEaZCwBrHO5XYaUy7VjMNvBY-KuK3tOR7CkUUPlhUe-8wYUEjGecrvDTO5PE2uuhs7w4LJkaC1KiaVBpGBt6dJO0DD_5skDbp3wpPKeDDvq45dmzTG_PnJVPTw69zXbhhG42VJjw7sC6LLPwrI7UTAIFDjtsQzcYG1aC9KK4bCE476wPkwMfLR7U9kQSWVF6ePK7OZuBFlhB1KAxnLwK_8K9dQtBkbCUD0PVa4eznVHRP0OB9vEzW87LSmsKosPBGNZSzx7zZGMBv_JPZGHkhqfFRNgFW3GHoUdgt0GyzR5agUe4e2K6CkUcJx7xG7eu60Hxo4clj43Un-fJpP91ZADzrCun7COlhX746cZVRfSpzB8X3Z3GzYWR8oYr4HvxMeuHpdIPIr7BaOgN0fHP6Pm458m2_i4fMB2gozsmL0ZPYrtPQjbJyXBBry4h-9Xf5I3PacJ86P1R1j-DK2ZxSfZ9OEb4EldgtaIElEPNYHF1gE55iywoAPziBGKo2UH5t6zHigvNd-zsokl8k62IBHi-Yp9Dt-A12WM4LD1r2E9EsnBM4N8U8gEB7w1i6QBER-0m6D-PsGSphu85zJIqZvMQCzF3boIGF3s-1t8DU-SWZOvivyKrcKo3K3fH6iBoGcY6V-BWKvM5CPyOL2iRdAcCwdAEGFwzBskOEIoSBbNHUAx0DGK-23q0LJZgSN-LMVr3RZAx-uxKa_cTEDWkuMn23RqNpim6DABGxL1hEUGR70PUmU2YhMsgc4TQIlqDB1z_TsBYwjgn2CnsSEopm0orCq2u-zoZt0BjIjvDJdJvw4AJDAiwwm-SYLzPget-A1Q2Wv2w8AbdHd4oEcQpWdcU_Sakv4qKyMZQFqtVBlMI3Fb9mcil-lfoWsmIO9Wvxod1i-vyOBfdKACJEiyCEj2fqO3PETFiLp9I-xP6wjG2srycKZnhID7IpHXhEaj_cpwq_Eb7W6CAbF-7i1oDUhf8IiSvv4q1XrChaGst3mgo5cdVqHW_X692EH7Bx7tQtQA3KqhoYoNe2VcSI2RiOx6ftf3Q3Oo5stYItdSdtVwolyEwv57kSWkrF2ObMoMt35XgAYOGbUfgq0uhWeWkFcTcPWsKht5GG3CoU9OAJfSE0iqpu-OOXJETdl6lKpdXxUvbXgR9qD9Fl_tbJ6sGi2MOSRJ05OZmgAluLQKm8gIpGicB3ko-jmT43fjMqEQsJn7LbZRsRIpFpdqkXyiZLw04Klw6Q9ZifXlthYczsPDExcZtEjZYbQhMzd4MF0QvfIZghwZThQr99ENQ3LcvjtKc0v95bOtgddUraFuOsz5ImkqFBNAYZOLdZx3fRBLDPUQOyPA66JjgNfyAy77MyMECqnp2S5njAv41m-Dqev9zg08qz8IB3Gm-PFh6qQ4zM8M-TkTmjVWQMmMwdF1Qy0wOArmMwNn9XXe6Rt_o4oWIG_n6-U0MKwvOKrXzGF67WsIaRNywF5w5joXE2jsF2TsOfxrnvIrXeekcBYr01c-wBdmlMGptI-_kSUfxJDxPBuGdzCVDzWkSHHaianihRVw1pZ1jRAMtWdLBAsk2hvZMEv26dZCf6HzAxQu7CmgigFOzH6DHF3k3ewYFDLTdRv7C3BH1GghspRBGcnTIFFys9Sw3iKJqEF-gZbbt57-ZTv0sZ--dK6qQUtla1b4Tgse3_Bxi9l9LCeWBe3b9Z9iJwc5THr3VNyVuiolq4Uvi9AHls78cGIsx02b7ex4a2niPtDARxUO5UywtkR3PuRNiIGHoubMXvppERiquo2NBLkCQciOuxLG5GlGNzu8YrIdClP38ZrDND6jDXf618thbG0XNMd76oNl-ca3TRX8wPauPG-XLVL39cUQDwG0CcaMbZNkNUuccY0g7G9-GkZ0k7jkq9EXgJA-1K7R9cy1bXONiiC0sPQOThEYdD5--CXULVSftyiQMjT2ucU8rnlgG_KvOvXDD8FtGIZuQp1Gqi1KS23xCrbStV_DqDHkEIfwQeKHHCgqmTTnzCnGd_4D1fb-1SnpZcBpFHk1V676qZRIo9C1OgJkxO7sWzheBtk4IvCCWzjVTJws_oBQp8JdTaeyCSrkN56aO07ktP92Mnj_z8YSVnb9LHDXBwIXQysS4utl0a3ducJTpFZgwHP8zGyaOfLKT2WDe07VLCvqRvIqXvjLTsfT6LkJv5Uwy6BG_c4QcljOU85ic-uCUsCdkBdLPzkTit_I5PIWwkA7SAoebEqGBDKHNBdh7XI1z0ViH9mDkogqryDUeP0mlU0g2-1bErwPPdywsZbp-Qgb9Yqsz-J0YluNtxoC3pREag3djj82NccZiFO--Ixe6ztIAnQPWVrSJDZcHLB85LorTZOqldoVHBl7h_eeyl5yv7TieTtTvWwJLfuLx8DSBkBQfuS9tIxDid_Rqm9wjKrGsjzKXnd_lP7GVgs2tXZz1DprmwfroOrLcBvhaY8Zrw9cVaeJUIO4cTjdo-9K3l4x2Kru8kTbJ1E6yuT0Rhlb9I3QYGQk2Vqmc_KNWRFrTny_QTC9iUTLGR9kRKwQvGrRlq-rNXskPXavhjBGfJsPgtmD3XoZmAGk-UIzQtPnIQdhzSi9AXFuP2X7nXSMWDF5ARADyzu5-SUkG5S8nKzBkfz1RWjxWNFYRSyZ3ze_ktbIXSlcrOCnmeR7PeEC8NHSEiITr3puOgwSCNXQgu5w-x2H6oiPTW6OX2tU-QnsU_lHUNNMbWbURe2UvSXshFQf72pVDVj4ZWNNLSB6UAclie2Ci2xICxqt4vEGbif3EpOpNvcDSaxipEBUDaF0bTK1vSGB2HJMD-nUcmvoZeEdtAd5568B3lJiKOohV5-N9_hdHNjplrFOxl0RNvqyFfukvOEpHMaHcthGD1_CkDY1EYaHP3lRm105grNfepuQOIek9BwigTF4uC6mcJ3W9ihQS3h1zveQCiHNnYxuoh3FApYqbTrnuhFA5da3yx5XcLGt6-JxE74Ii-J7tLi14qpArcXprYqEYLmaElpYsnXY-Oj_z8BaHNFq0P4WJ3c4pbqSR1fxwZgBc38DJA-w8ErBiFE79lDpkbU3qTkZPazF87J2XeYu_IyyS2sew_MRzBbTDlD4Z8HgrTopAtQYkVn7umf48FvVBNUXH8LNzmJE60LaE9REMhGgCRBoUaOHkheETwlC4684SlSwtq1WUdvDCutW-MjNUDdPI_Bo39Nxjb2UV93023OrhNL7wCVt-SEUygNWX2OBgEdrESeF1vK7Lub4Bl5Q6sINtsOo4db3F0Mxas3jHOkE8qTIebmSnvrzdl5LJZ_IBCwKPoEr5dpYuKkfvKcZnrlf-X4tkO5aXzzQ-U1SJdDruSx4O5blja_hY0ZJ9OXoU106fIO3rjUbQOhJV4D9gz-frPJ1rxhZygIz_UP2yWR32g0alCS_P2TOec0XiA_moJc5pAw3_As-50W2GVPE3ltRzfSIRtYYtJ3abFyq9SAWuEYLHchFdEj08zcWOVU9clIrYeAElCxFUifGgLUBGrPfsaFCLFXaYtesnu1ddUldckNn3W10U0ICxnMsbq1DZu957za9lp0GGww8N_zsxsffDuasNDA5kWQeTb6WRaKcO9gzI7FU_wX0dtQQgySOn8nnYOu5SSi-cHXuA0qmrr9nUZdTxXnOf6jJcqI6DSThbsen889sYjlkUYfF-JhICNFmEDXOVCkfDgvirqyn1D2SJvgMBsIqG-dMUQwEUAJHNOV9BIWE7Ahpwz8YIKIKsmvrDOc1GylFFQUmVpUWz9F1X0p2zvz_srQ-4KlCYlN5NfnrU4ogId27DixjMum8A1rW9CuXQ7PT3Yztktvmymz8Ksl64t1K00wYZ0PPGAJt80M_WVoxxlDgN_ISOcB63F97_eTN8l9Ckf8wkHKMRgK4WDDSB7WqFASWocEAPUoQNZ3EVMaykaxZbRE6DMYbfA4qH4GmQwb3O4aLzoJ0S7aXY0RYUnbLcl8JjZtNRN9ZtKsT2VgdMcZPRvAF5zfnXZHf4WuVLbIVXokIqmgboyQJtOhh31NrJa-BTl2hPDNi3jS-1UXGB4Z5pL41uUreFkO8jNzvmlf82RjfyCi7F6NkpDfmEWu_XYTtUkDKoyjHmtUge5Dl7xcScw9eMRTYh0JyOpoIsfduq2_gKawu-ncP0InWIdLSP4xrhgP5dz5FKvsxWZZlwmqwuChRlo5mka_iok_mhHR-kvYcH0nJFqOhz_1CaLitGJW4kiDAou6nrF8YaVQglhz5nMgEBnoQBgEWTLIaa6HNOnUfO8oQm4CBsShaVspkMjkdR68lo8_1QAomtolsKjVsniOsOw41qz79_tYegaeHqBTxGenLvWQGYKgjM5mAoTVSWJ2aCnwODbYfD5GWgm8X7cCLuMo1dlghKG-op87VqXgnKRd3wAM80nA1l4bS047RWGxQykIw5rwrHCyH_Z8vXVAc7HsYVwlCItWzXCdfD2RTa3T5Cmmy8g6CVFJRjR7rshoIK5f5G3ntw7RD9SA0hDSOstDf7IQ0bDG_HAVH6HoOHzIALz0u6-Q7N6yv-euGjhjJ287It41i5byymcBEgqe-exEJJQEDyaieM51mrfpKNt0lQzUOh4hlvRjV06OQ4tSyRuO0GOWGQYKgD1x-LSuIcQvqYhYA3XgE9cIkxp98ofX0RkEtKGuBDNkn-o9kSgvE91Oq2RGAqluiKz3U9mlVbbqNjY0o9qa_9K-yQJ2ecK0WjfskhA9Qk90VHO5dUtjdrlyWgJEKVgPXpL7tvKR0Uol44Z_aYfRs3Ps7YSegMVP53tTCR1XMBzlRf5Z8MHqKM1jCZUxtPlZdugRpY0pQntVPVtkblMXmLP96ICaTUWCzouesQuTAZmduEBMbUAoWTdqa4bCPaRNkYBvLAT0XTXQ3jBMgPsx6L1xkBuxGgZTCNC7FV5gCvEAl0Wv0nN1sl6FqfLwoCH9lfl9e9N9JJcNLvPWoN9x4-5zDsdWje8oS1z5Q0rX9zMeO0-YS-6-vdLp2rzxRBdJ6fR9uJcP85ITqpEgDJNbkmr-9lSkm7wu0RK_eyu5eV9XcNA2Mfafh0UndB2fdiiLaqmNYY9vS7gG-hJRGZ1ya4gsB2nvEH3_dR6iPAX0hLGncMZaNbrQRi23vwTFX0KJqmwwmp8lD8OhI5OQBNn1l1REwaiAjdPqMQmgqrgFu-XHvs1fZzyAKb5EULHNBiCnmgNPVpDWICVbG8Gs6VsTOHSVtLSqh47O35_IYezrFfRP0Y6MaSw-9kd_yu1jsJai0w3oepNLK35cU58fbVf3pSMydrn87hwWZoNAt6QLnivoUaUzwpCg0ACqMkI8uznWaaZDp2Xx_PG69Au22Z80ygEzqOB6ZH-8MWaWVaNS0sayMDn3q0w96jlRbPIK-e9VI_M_Ajb960Ir-NHzlnJS-ZDsX_eEX6DZh3BImSMxgsUGqMn5uO_m_oWw0Xxr_XfJmsY-U6spobdWbBqUDeagIvpT5eiN-daLwxxZA4qYcxeUxseWXwhJFMevBQzmLvnDOXN1gJ3gGloTWsGRTXkWg-f3cBT74sgEQpNx1kFa2jTxg1frvtAh3MyIBqQUHtLa4DO_ZKsLhr_QHkna2R4eiILHMXr08-jjfPPmtfMpYSbtyBrjb3cpgHCkCmunqLh6w_EbmyMa-HTsE4P9ikprABuWZfznv25O3LWfhyKh6nQMyqzM3VuB4QYUU9_vnVonDcCyZ2eW5PvnYD9JDoTFwUF6kAkNLmQaa_Y85-Zpj8d_BprT5gNFd2hZFmFhLj9wKXwAHdLoBYDSRov1HMrR7sk-TZnMlIBk9x-VTb0pJq9SmBGtV9kJQZLRq_7rsaSS4N25kDLr9r_zFUvbwZpieN0vy7PuM203bw5jJasnP3a8CKI52ucO-xteky8Ga7WDylOuppohrpo8mAuHyPv3CDnUy9KQBZhs_wPQYIhEh0oNlkmEKluMyKGW4pbfmNBD2_v6weCUKawY1NB1SYUCz7GkfFo64yaDE14JpEoiaia1studAt6Pkcg5qvL9LXEjOjf7lhJvWXinD-WNQlPoLBACgEj9S6XAfb2lfiD5dicBgZwwc8EmQ8oB8iHm_C9fuiuyj477o9OkNiZaRgjNY6lvQ59PwWgwWtqGUtozDyaP33oCBwOYzjMahsERC-a7xR5WP6dRuH0T_CSgiHr_YkAdR1bfoEtr4O2QQT5MU80704TeFpWcFCEAuXqGCia1aUjSlQ--5MZvTbx04ysO4sjfwjXdhMew29o1fvyerJwGy2XEjR-HTMyB89XKNmIaB-sNLKPQkPgj67lL2TqrWwNW5Ti5BBGpxV-Wg7TX3dC8bEcbKCRKt3jfB1edMFwR9lSZUm6ggevuiaes3m5At_tp88Q97_kifnD8nEv9CR2B4VqJHWMb6i5xoCWHDRDNHkns_OIxjiAMykHGtX8Iprwq-x04jmYs14f0wbtxl2w2WmvIS5tQUK5-5Pk1NWbTrv5B9yzcSFaJt3e7qP7O2hCd8Z9xY8k0lIae83uetAM7PDtcNOcCHcs2aEOW35WJJ09alSdSp-b1CKvlDQx41P2GMZKAT9Xw42Q3YwfSuaGl08xQ5ioiYwXVKfyTKM6PFT8Odq0eSO4ra8934DDgf4xMjfmfBevNDpHV_5aEOvDjzBWWm1d7nn-noXeC_MpYwJkWpc8YSWwlAnMaIw0TFm5DCEu4o0QQ66L0mr5OGUvLKjnC-K1nEMvWibmlhpjX7PMldwkTNB8519-rwnIc3aa0O9WBmMMs2lkpBoSQ3nAewJlDeaXQ0PSvdBfS3gIyh5IJA2TzMGq4BNl5yBhMoJw0aOizReGSjUMD0n5plGkGYt0pECBK6Hfhe1vpDpDe_nvUBhm10jENeyFoGPIgEDq3nYasaHSTkGrsGaRVn6d_HT1FZWH2wiDn3TuIo0sh4kCmzY_u7IoYVWD7MP1PoRFr87M80np1y5QHkT2_Sij0onyc3LjhqiGxKGoKFpfOCP8gjR0_VTKPfjtxzIZ23BiGmYoVyyA2-TMJSeZBJ-y6pOydQh4g7U7MgEBy74cluBrOl_o5kej7vSN7G7maTsDN2KKfFR8yTJkIu1z9zsO3bi7O9xoQNLCFvVdHOSO2Eb_pCP1NcGD3JAnNq7yQmMXpexd9IVSWVIgIFRg_e0hUp3HsB_UfVhA_1NEHWYfMFmGEj70X-ETEMl-vcJcZsle3HnyjYNm8V7rcgwADwKqAZFDrQu-1jz5ZM6mrZCVQ9djAjhCFqjODhI8lPnYyCfGn_DqJeKWH15E1ESk633tVbYMj_7OS-nlqEMj09HDX_ChJy8I0FWJEwu9sY3XSB2dAbI-ZlC83Qw1VYsthJE6aJ0qjL-JLY50c6pLYtX589-qD1KOGq0iVu09YU94iRYk5_fir6ayDW6X8CXWLJA8AxcN2dGYQU6HZB4rl7eTV12AnIuU4-OyeP-IFGJJYB4iBB35GcsYrKJDxFOVVBPAtZjylx45MXhfKbpS9DxGH4ME6ttR9_b0Jty57S2NJW_C2tu9NM3VBMBnWdbPH9pEyVWb4b9PAmqQR5J82Uvyt9VPzC64dxb8dAjjLWMZySi6vVU5vLJjzYZOeIvqo2BL3a1ifWrxiojePG0SyPXTjZGn-QMB7ewJkB3yAdZ1TTlOITyz2SCpVUcaXUdhg9x4lofhZncDEKWzy8SlUVOqAcJdiuMozz8nDZuc4AccQbYfp0aAE5k_B-TXJo-5jxR8ixtrVCdN36OepLA3wU5JlFfc19Rd6HrqejnRax3bR4T2c8tRC-eYmKs8vK4cjJRdQKH_l9Zcq7pJMq-eGfQh3EJ9CnpXndVBlsw8MC4aUCiswGGfCEG4ysWgq6r73-xIHnquHkMLVlIiKjTVwjxCYt5L7I_zX9A9pZ6j37USNrbueIbMBGYyO_BTujmI7rR0UMe8kveAheu1oxU854UMDeYYW5wdUdhMBagyZU8nHNVwIAvZY0Xil8INukiF8sLlTbNs8xsniKpPjkWgY4VppTFiogwWgq9ZZnD9fQj2RmBZRl1j9s-ukQtKFyIUENn2LN_zJtJf35NPdw5ArnEGq0kHHp7mxeO4DWd4RS4jja1-Qla8p28sNg6D2OfOMIpYy-ARAv99dMu6EMb0P3VmEGr9jZGYuVxki7qnhu8ejHUkfu62-qWVX98KKEAoT-gdf7KK9ilwhENBIR2i1LBnB9QTFunrBG_CJ1gEiYQF9Up9wA672y90oxNFeoBsKvS_jnhFC2hHw0A2Lgz78CtUfnrVfBqOV1Zw1Cn0xpGo_kO5R1QC3GSHkVNVhKPbF31brJoNc-BFNnROiL4NFEVzy_Afq0ilM9kEE3tR1OD9dlAVj8j0fuJTm7zbKISMhbeIjzkZJk12sc388RJNeyuhLo9pfLMO6f6U2ndJWAoEksierjHWYOaGAhSBQzOpC3Nh7a6gKOMeUAKkOlS4udpY70lL0lNJuOgU91lOiYn2dGYMxCry3Ufvuk7PqyHXmzgY8XUhGC0xCpViUpckMPeEpg8O_H-YB5nfecWRqNbu78cPKpo4wX0Qr-nhQlDX9pEFRsUOg3UFnLiiqRfxSK9FeNH7USDJ2hGhkvdaAjgS3M0t3u71Jm9kW99UbvPZ28va69dOFqS9loXkr8XV6aTOnyqPC3CKKTwhkItkpSb4lU8KaQHaEVw3OdrDdPQBV-Lg0sYE8611SYGejsgbE2qruEWtqv0A5TT95kiLXeWp_uHDQx1Jesy5tTCmkTCKZOVYZdvT7HKSK--9mFr2peLyv--Sa3nWLQxoFDwCE9aGVYsH-cVxLpzbKzXdndNPrApCPhORNvv2aE8lpRlKHy6xywQVEHvmh6Fo0FaMZtFcoXRDXgfRoX2potI_Dq4FTEP8mbtQJYUHgG3DrX6hwhIrSzm96-3AhryvZm_KYuaRW6NDaBdBY1ERB9CTKnyr3ShI7JRGNfleAOq5ryR-rHn4ks5LbLdqOL7UGK9b93y5Qn2t9xJO9iU82aKFyNoMrd-vYYK6cQnDXCWEZxG2sNLdpd-4_qKZRjT4_cI7LQcCOr21deA0RVNlsGXfE2N3CRE8kzZqZl7KODZoxe4zI8U28fkOs9M5NQJBSswcU69Kcyc8kKMfrVhhvt3q5u8sTk0yLWuv8yE0f9dO9HCKhU3GhA_Ig8fgwG70oti51AXSxEbGYYZQWffgFpMfbnZM7SSSFW_CYG-uuLr71D2EmfJk05UYK4OZmzczK4WwlzTnibPKY7kOU01GgyBROcWisrweVF4x9YSR_GdGo549c5trhPFzjxHrNSR3FAtPCICxtv69I-9v-wDWtfX6oFVlfng0TtlE4pTjrsxXD9IM8sdxULeFC-qasqxNM9VWKrvizcww0kZACE4vr3Ip056k3hF4UKek029-y_6YaIlRmDH0WsxSSaYA81-WUTEWr8qaGrw91yX_bZuSKR_uBZrJLj_8MyCuly4A_fK_zqGVOgeGyDXAH90T3aQtlLRdDtuC3pkZmXwxeMAInBKAnL8iQWUWhAEuomtAaxw7kB4-6Q963CW1lrVD5F8yXtLCRj90Q26ThJjz6ZwW8dNA-fltSudGv6ikWMGnH3e3ep_xkqSxwl3c8WfCk710d9KpfznbE217lRAhEk9R4qqIQvSu4hEjXLVSB7_SE_LOIsV54HAxIuncNjFQS5HVTYQQ6K14n-O5kPtS2Qtxd-xqU5X32z9NeRAd-M7E72KQeN1-3jJSYSSA8XGdEx4rV8ekBEFAp0WVMFgfZIgyLqTlPEQUtwRuIqCRk44jajoNPi5TmtNZRJHg827jcmVkUBT3Q4W6GSiZd8Bsy7ygPMH-xjsRNu7mcA69oCQvQXX9R40jrXI4RUQ2zUBfOhSCPJ_wRvc5mw5CREID15Az0acCiGioAW_D7fGC4RZa09RntKg80ZazY5Yf0Zs6SEMO-20ra9y4d5g69jyosl4GejjZk4Zo_83QWclxkb6vm40lI2GQ31JHpvjIP40qGMFrlUbs4nKWu3zWH0w4aLDzKnvgKEG_r4YDomSU8_oS7OEgxGZqyd9JsBMKGH_-QupGY9AeRCLBr3VWasgMB6JCVRK2t8S_jzTebtNZZGLaqb8Teey8WBeLqC-eFGPyW1v0k4lm46ELqAa_HghALp88-HIUAS0tFq5D3FrYxcJj8eGF166Epck4KNwEbW5k7wfX_KGrOHz2C0AiYxK1WA69-fs38DZXJ4bPf3NjFWg7rM-GQv5dms3X2d4K31gFXQcWjV-RwkFOBAqdwgFB-W5nifKnOtJJ_Wn5LzkT-p05qioN28VFK7795myJJ6hxCd70n9neED-B36MRKpV6AGTiK5kFcFEFrfk-DkiWdM1ZEIGtbBUT2s4XPhk5zqO1LIn2SJZdpBFZAcVAlViFVPlwVZiZ8Uv-TlkuJIoW9C_D8d4WqfSgukSCH0KsIlRbi-ItHyJszVENzHYc9Gq5mxvUizIT7MY4jWfoY3asvkjUybSA0rVUMaLppzQfW_rSgD4WBpSclUZ33J-wN0RfHhLj66ImnfoJcUxsSCRr2FBbdZMwL9VQwg6TRQ9DcyDcWCjlD-AGkKpDgyXi6VlUvqIxPbpnweSc1dM-UoC05gcj8qvx2G5teOg8PJSHTdNIIGQWrBBlrX7xk_gCTjB_UUXFYBr4zU5j6y7UqOB6AQf53UVtJHKEuTOqa4Ps6c7v2iWtzC_x8FmkLc9hg0MsSnZI_n1hp5ALws3zDT6r4hQEX_Biw5UcRo6HaYkVVex4AiPUmeqdXL4UpICf0RjC-mcOb84AJEbKQ7v9FM7_x_dw1tQXgG2FNbL-JJrBkBdv37Ufs5ORxcys26X7FfllucH7QgeTgBQW4t16iT1PwiTD6zJgliJDqzGgbKssKmwM7gyjcjBUaXWSZnpcV_JeoFWcoC3xKiJa9HQYlYTu2XGN2WN5m40OuJ7P0JAA4p0X8ErtwyIQPvPkZB4ViclCqqhATmCe3oqdk3eE2m4s2uU6MvpKvz08EiFEwGroFnbNguNJHl0RRlrLc8ZvaohiyW-kyWjsF7PA3Ks9M-eNIPfl-we7hRvlYsRZFtXTEuaa9BOXN4ldIuLx399RRaTfGbhsF2y3RAb1F6hxiHRBnRUrQqYE6tzDVs8cFCDyH-R8JS0f28QMFupO25aHj1O3AnDeFY13v7j-uaPt0e9PkgPO2FwwSA2H89TEUWxsVN5iGEGmwnVJQcCoWnWrKDa2jMNcskZw2bvOKZmT5Etl_CdLqLARbzg-y2a7XkWoJsVkEjuCHXN5pe-Up_q3vCxL2sncY5M_dB_JELSm2DjMS8w8yK7OyLdV1wG4dkh6Kr335ld_cux11G9J5kTntSJvtM4AVJd7PMiMML9SLETpOoFO1fWj9bA03aHBfCZm-HbjZj4NQeY8fW1-9p8SfEWteJS81HAHqNAoy_ua9uLi7zBKiDdgKGJ-m-ZFMwRwG7w26gt2SenFGjJRHzYA_bBvAI2bWpkFuO4DlhBvqIk9u-_kQiVR4F5YrPlWU_rWkGGXueKeiYVh3-PRzWyqvTbh-koqxFusuc_maQWmXD6ADcRWEOsEShLdUQJQOUt8DcXNSMqyBrBTZ9Pjudjju2E0BIaXCAa48RIUO9LmAwDgwbGnwDdAaiugLriFpVd0-lFfnssIRo348kyUrlzmw5XmFkh-G4CsAF_RsMfGhPnNWeUdHdeSPVORMT7xbkv_CjcNqCG3jx6mzb8mKPgM1y0a7HWrNkx5Zr4vfu2sU3hXjuXPuPURCUEIBrir2M0GZnrg7pxDjBWdMymxqB2NE7bsXmCXI-fcg2_KjoZLBfYDeOf1kBN3KboFTG0Bs4iaxCdYDhVoyBVppD8Z4L0zUf7-0CPukiPqFBlV-ntBZv5XQ60meprVQAeSFIlAMisDA-APyiFBLVy99NTQEiEJkuLfWd9-aDOZBXroC1-KUBWZSpXASlZcc1W9x3IAX4uGFc5oMZYaSVquOFYO9d-BV2xU2rrB8EaPqtBVCs1JKK_jCkztxsXN2IuRUQV7PILni1uZYbIZPvDmjWaPTQW7OJdxU2-qvIayJePhclIhra03gV-guWA9DBaBznosdgX-SoxccNPbLE7aBYNq8xm_CTyD6ignEFAj1qTlyqi9eWaU4HYiYtvBxn_DXoRPEJeFFkeK9M9N6ryXlGjA9O_JrXmjvRRiL_f0IAg8RGj9TE4T_JXnpJAv8tVr52WkFXAqPS-_zP3b0iupGx_tZZ3TLzWTHSp2HdRybwRzJ64wmXTBQx2oNLWdxTydTqf4JUvVC4GhZQvaNmb27yvhtlPZAGyFvgZqnXTRCJSHRg7CGas953jlsMC4oMFMGxNsP3tDGu1L1h_puXoiKwZholuoZGQd8N0HhoozOl_GgXEDPlOn87FT-VBNwb6ezl8m6MBwhmIonZwM02I9tBY5R8P9K-latz1oVl6ZW7Ag_NeQJmQNJIRGxGo2PIClyo1J7Ussafo4ZSE7bE3unXGF0YHxHlixSpLss46UEijegsfFxbrdTmmek2Qzla5-ENvpXOl-BIJxCEd63We9GvHJSou0yiqbCotWEoo_btvUlmtlGvh0k-NNxW5hqUOBlZhvmJkC8bg5zh03KVtmh6kc3aDkcqvR-j5rDf0mZ4ehKwHz-p7l46i6UqzaDQkYHlvCTDK1kCtgWLZ4XmtgTC8WnF_XrKmtzw94n9ISjAUPl5HisfC4U3huaeqNnBVUtN0g5z4AmXnahejgACDJVxjpgJUGt4RvYlBgVlirEQx6vuvdOBbbyw5XJay5DkGkaHSrApjTLypKQJvYbuQATCxACOvb6zPIzgyJqX-JDuH56QA2HgB7IpehSkxORfKLu1wBxK0yKf8X4D7wb94l5dFzalTBtd_22NHkh1fOCE_4va7BxmWfIrqvuRwHYd8ZjN2JRxUkfk7daewXuV-j20KE3y26CkKJHGlhcyHH2WSh_zHRd18NQtb375icrkvfzDEDcm-MhDW42PHZSEGdIKPXn6_gcSr33bc3cU5HQTzhqCA8EoYvdW2n2N4nEtb5IID9nneVfBnrz7Zh0TRB51SV28miyfYw1FlNEFSxiWHZLFPmdG3mUCKU0WAQuWYS1bbbGgkDb4Xe3UQbyJqWEQ7E9lf7Yi08bO7zf_J1qfpNvpV9pdbbJ8_249c-vd8dHI7I-luzdAs6rGd8CuFPoVAtsFb_1OrFyQOixzCqK8cW8KRbSf9zhm0BPzQ5MA9YKaRDyE_xRgrbRMDpuDh2g-sjrimo48tzmEUzRxkC7g2NRpBTty0tKy1Fb2zbryomNvcim7xGZ3FbNJilx_YwEDW0aj-pdC-ip7YLCZrGZqYcPCQJ61WgCUUBsl-61sleqQ3qfOfTZt3j3gPsnFjfaCMCnFN4_yW7oNJbmCagnMUrJbSYCT0708yPLJ9-FFHNnRKmxjojH5y8VIYErUCN7v7cp2RW_11JVgsgw4FAT65Vo_SuvbDu1a9nOxt1b46f2-xgREv6_5drYjU-aDmCvT-aOf5t4pMcrYQCzwdRixPNcRGlz78SVAbL97eDd6mNHmHNWbITU29FLvJ8quxlAAvNXQ3exxEfnNH-Qb-T1MgmFBkUGAj-hW1lLhIYwJw_QNhY4P49P0-xCumPM7Vhza3vGWzQggQOdX7esL8doKBz9sq7ztBk-e_ALB1OlkIl2J9J4kg0Jpn6w2zCOoqrqB7jLD-wBKtv7lCfWCurhg_DfE4Coe06vaZaj8TS6Mt1O5IOuvCKQ9gws3gNHzMEz_NVko-C6Ae5wSPCsuDf9HbBOM5_qyguNAvX-F453bphNFIvCxHMtqpfyJV5VdGq6wUcmdlbk1iCXxKTC71Gk_P5MPYgheF2iTT331fTbZN2hm3VQmMzrU2v8kMf1zIwOyHkW6vDujyh1Fg8FJ5_r1KG0GcNknUPSw2y0CI5L32ofjDfkxt9L7cZ1P9-PXWEsxS24Q077KrZSJaQNanoChL3ZOo_34f6fFFc76lgNVHPosmyN-bNA-3LbQgGnMsMVOnNCXBAUy6HY-XSmWLAxOXwJ_ftMi-RPp_2ozE9lN7uyK-1gj0JYv8owPMGYhx8gcjdpovos9JFGSS_Qy3C0YdvtcewY5j-VsfIbahMvYAfnVf0H7k2NNYcxPzQCRjmg8lPrrDjEZDxGKDX8zWyZGd-O6dYDADFx0QOwVswhs846blv8yLGNTkudKNssvyxp7hFqhPRIZxMdZ8T8sChTkJHgKZVcd68ftAHeHOYDA5YJOpx4hC1zgM8MTrKP2lsUyfb_S3q8hADChr7X4nxvp_9-4FYoo3UI4kizf98YJX-YLlFlFHyReruQKru8iP2iL9rXBcdNwJSUUAZ4Wf2SIb39CtPDi0cVkttfKh1--tZuo1614TNfoixUWraexdQBRKL5r44jjAfqKBq2hyDC2VS7z5b3z4qAcJcnzkVxG14M3XmpxKR6E8TA6nJ-bHj4XD_tr6vyBthkSomV3bBZ5Fgx2OQhvAV786JsLpMTzGzrfgQOkAtEeEV5bzwFXyAGXPoFzOsMKStii1jaf-2o5CPdgHrQSRt-65wmiuZs43V61SzzITo_kFhCfZyb8sfCG-iIwUYjdoWP-fckDIcBXUj9U_84NKEuoEI8OuXzkl5gFCKVRO2-peNoicE4R9-e36P9y-j6N4DqgQ2v8-0cAuXoQazMdE7YulohA_8TbtVArUom-G_Sa7XryE04cJMtGGvR0js-tXZrEpPmL6xSNY05XJ1s582fGFIevkUhZZk-2DEC6kd9Z6k6NdYasN0TSkhmEotB6vfG_np2XrdaDimz52_5CijXHH_XZWSbzTFuFsVdQl8fPKu5y5l408aZ0Gp8i-ebWXQbsmvU1e325NGbCd9Vt73C-b7haTl0yyazGPYjPRdH6Ysho70slU_y1ypSyNiom95pxs2cQWwhQSp6ujHb6PRuOwXwP7oVb2rqPICMtDELiIlaHDkgOT0Qkx_dih_tWnGzzFTPy1PHUJa7hI3ZXhzJ22-ijzsCjjRBnBOQEZWR6QKMfnsEW8xhOPvDXlA1mzWRNLY2iRc5-i5t0cRxJ0t0zHJzQGOBMCpYvOxh2IwkSwZLx6AGVW-KDeXKAeuVZGElNNZMLHCqTVI6vRcasd0qO4lXX9MEDGWx7A0v5VPeQp6Uy-AbpX9wejywY5cV-4lqngiAib4lzfZ_2uDSrlN9S6jKp7Eu2yjCM_IQXL_QTEKKQ4SIOLaz-Cfue9JUgs6BE0tOAf7ilsNLXOby8w1js2SEZaqyv1GpnVYXUcjHSiyQn_LSaN1DJgY7Cg_WDO7d7bJFX3HloxkNIEkj-ISgyCmNS2lwEaAv3u0YaA7o7a2mJbBjM4eNMKSjUCIpNs8jg7nSWvF6bTUTaqURSsiskp7M3jLMXcv8YKG4PLmLlfz-5_Vi8RuOAz9Ka0CShaO0P3yrk0I-hf0qAl77xuzBaEkJrYUepzF6Yho4u0sQVqEZmwcAdqGuDhqlCLZ4xN0VQ0bnW0Cig5a4B3CA6GEvzbm1kZeFB3BiMxQiBHvD-RxpGjtcnjPMrvH0SaM1-z9VCwFVrazAU2rkK3MypeICyAZdcLMjcxvVIKyWXwFAOrXdIPY55gcOS6lpm-gxwplZBGpyYktSc_WKMly1kMwMoMOLSxWf1NVfPlgGL5YIPzQo5-WcsN-XNWTKjXiNR0gbzGb1QXftg8rODrDGLqZsboYHzyFm1RDLDKG-qsA5tZhWiY594-jYCPEIgaP6Ss1aPpqMqeXHh5xgthH9UCi1pfEr-YV4cs5RmH9kIOceFK66--PHR6eySF7QYErUoJ1UwwHt8vHVuBnvDZbm3adundxUv1OLJaF7tvP557FiGJd9bvd1F23siFOhBJM4BzqCvAw4AYfIb_KVGVthCxVwwgh19Uqd-pQCr59rvKkwty0gIQgg01ORZeEvaNiFwJ2f19kk0Tuep8nXKYxQ_G3ovjOw-FQgnE2qNKUU7hKSJNfALcaB1ckGNNjwDE9s9WegNiu-STIjtS-93RMBTxFs7BXDE3u86BEfyXnxS1y3-f4Z7lD1PdkKVUDotw3AHNSzJOq1XIn0VRs2u-X9nuyzNNZE9vLVemm8BVK3FUXxxghj2GInZ3X1xXkgJZ-87bfKnLJInN_VoiupgMM0YUH6G8nhAQ1IaALhu9yfGMdAtLSzjA2bQP-Qv60MerOrzpug-z4fMCMz2aMv_RcbeRRKYS3QROY0jyejSWKLg8RLxwjMUGqAlcAxTzMXI76u9BqQ-qbhpm4sN1lQnrWmPr3sDpDIw6O4FO7qEEfKZ25d4VnKlT8oEVIJMparS6Cb9t2zOWnjTbRRbifv36EeRWPQ-aCFBrz3PaMcuwd_uy6WVdiZkRdlN5zs9aATxOyfegnNWKB7x0IDqFshN6VCiSmYH4HtNMfzLHX6T9rh-8RVOBg7aXnIC7bBTgrwq6DUykOpH9a039qn_hGqDzwu3xY8XjFmW1fNig2ktDWd9R9tFv4-bhhDPAtA-AoR_8_gJLiCGUQcHz3rmDNGgvq9SjQJzo3Q1X4g_NQM7cCia12drREY1tBBh8eYhADKBAh0r_-5sa0uwNiHMOKwRMznjoEU9D0k9bZkNFoK9atU5h9Mv5zcgFcirt12I2DBR78ERA_wAUfhsPuUblnT1KucrENvrqKy6ozc81IXc8plghePekB8mHkdqsSnE5o9IcQ92E1e72EZStCmhwG7FiCZnkNBwdUHQVJy5lTWgYSZ2o2bQ_kzjbKhq2bRa7wyESRRYClKPwA74FTN79O4REXEEdViD0Uu2e43Vchi5fDiOqB1mdlefvdHVsu8K3-SoVleASRRmpDJ9ASwOFDs8EkOq-CSI_Sie54Ty3u_spd6SulIR9sgBW0RM-PqG21cPBUTpQ31s_L31nysNCFqTzpCDVjE_WGD-GyLiEIB-JOrLwUS16uBKBOCTTFJU0t44rPTCPN5iLSBs-XC5PfzXPg4DPar1Vx-NHXMKFC3OB4SSusDRJNQXje1PImZAJ0d35lS-wJe8sq5emKGmLQ5g2dVoKElXeNNPBGKEIr6SDL83tJWF02m7JOv6E4Q1eKqFVeOBsNxZSwW701o8Ng3loHs7IHR6u7Bv-LBZLHBYDre5jzxBpVmCBHYk-oXEpzZhqRXgbehh604CxTDC99ZadfwSPdW3zgZOibedhFdlJ_YmnVqXRMvZUBFTS9lzzwXdrSnmW0Ww-gjXqsEBnrYFXmEOtUFwzZEL_ZCMvn1VII_Fab2dtHWadngBd_66T8YIDFlSO2kBBW5WfSbE8eTHw8A-DX2WZdbUk-Mfbvgq3AZIeeS9MPJE_vo74fOQzIA7VmjRV4k26Detk9Q_2B6T3kZu8Jcvq_eKoMqkVZy__GNLQqxAQHpyQvZVQtWnf1QCeKEzkktPpisJoWIqbHCfUT8o1mbYTTX44sfBl4HyRynbzT0mK1ffUY1hm3FEX5rkkqV_SJFXVtdV11hfzqSsiDYStu08wiu8bH-K78kJMLwjEJOF1smICgDke-D5Z9JbBY3pqYVowrK7pS7IhznHSZDgkEkz7bCY_CdfncfxOrTeH_ChOrA7lMQiqKL7xQUl-4ZSOBbx7pLe-ckOJcRuw1BVuGMrx12hd5oDJSWSAomaa3uo-alFlBnolaEAYFM78FSc3w3G0wj7LdJV99FTqANS_iCrqoIPR1goKu48F8DoS7asLBdl9kfe3OnaEiYWVk-TQjqpQkPP1V-jys1O2U57Plv56jES2zDx68Y3uIE76_foKeBr7FClaskjh-q434cCf2KT0x-LijdBxNHn-Nssj7DBbziT1N1UYG-2Ank2j_f4nB0orcC4WQ1iOcp2iQ8nOZBR8FhksRkcmOXHMv4MpnTNrwzjpRCkYbVv05nSpnthcnjD9xl_zjUyY12city72gmau05F1Xfiq-UQiCQM-UROcZ9zffSiZbIHquKwExSqf2rIaDnQjjTJI-B-JcPw3Vcjej3RlaREPt3WederEPbJeTTJXlg-uypPRhsE5ZxluficrSTygkyw0CWI4npgI5jJZE97z7GN18NNtVolSSOHpanSTkPXjunbXklB3JS0eY6c1HcV_d_L7ACf0Tdb8vtcawnguvdG3U5d92tiCTCPnSs7-bqgqAWTdk9d3nbNo4hWmwJzoSl_f_3FtY9GhKFvOiX-W0FTrQ0cNFmwywJe9V208FV8MzRnCeYzFuc43u9KqB741HckLtp9B8CNlfBvZUEZurTFLdcuWrstv5KgrSWFTKhnpoY8HNNRw1mvwkgLlyBXJnoMMy4lzQqCQYcKYFjeFcdMO1F5h73D_gWer6o_PtcbUqjzmIXu4GCOJtivblKBG0LcvJqWwwrH93sVBZQ9bE_wFqsvnDDibJJDGgMTgCjgkoPm5Tzgkxb-C4TSbb37xASZ1R0sgQQTjg7E21Cl30XWwPj2Uke8TkvabdsqYmNyTbJDI3RuClnE-yhaek9O_IKE4DfeJkvpczSdHGGqMQBDJySN7ChPty3MPGTyv9m6u2MHv5vS2vvH8vUK-a2e6V_5O8OFMuEOAA2DzIDPUwYcJOBb4fTAv5N3AacNaRMwWWDNlPNHwW_vn8pk_8yzatSN-joZht2Q3K9CAKqTuwABjQlmg-La6NqKU4Kfz5UKacWpAaelBArkVieIGq_Gm3W4nwmRPZ7AjTumz7dDeLDjcNM3BKf4DNpROfpPuwfGWge9_xNCaZyMvRu_fSzvjx6MHMQnUkIIA7-fybGghGp-ivvuHg3GACWnFJ-upV-A451fYyWHo1jR5xyRUguQ-7xDtJlrMOBu69w5DLUtwi2Vln7BpXkfgNPrSs7F9m4SMoScVI8AwocjdiJLbPBbnL8gKo9YehlnMZYauC0BwnmoVeUFJS1QvUmjempxVf2_60xsPCofg7l_WupCuBvukr8PCmWjOAJI2y99Z3vHXKLQcJ88KEB8Mz4Rb4Nl4NZkAfn4Rtj_-g-QV4d27T4yrFH6DgqOiNqM_pmKRo8SCMGdNEzSDmDEY8banyMREE53aYvhaItPmCmPFezgFEXVgpzwW5Gjwbd1L8mZ1Yzy10Iah0cjLG0xnBmCi2U4GC8A6kM0dQ7ENrwpDWkKlVt0qSXIK0Ydc0Z-XU3ruXVKQDOPXSByyEN90roUg6XmvVBpKbuRgoxm06VkRHK-rgOuFCiSxD4s8Aa93HKSPEB1xAwL5eCoNmsH4iRDzoc8PPt3PtwxZYhzNIS2K9JVhlPpnOTf0sIZhAymQGJOyzOyS5ZSlRATCiJYIjbDGV59lHfVAXp2mgtbZkmrkn6HbXoly3fUCc_iUjT7fG_f8QV7ZA4enXLoS__bR3-nB4gmUP-UYBotM2c62Aih6fsUgs9q4R01Y-nT4VH2zFRtiEpYmm0_0grhcKQWFrCylUYzBN2ZTwxJLwocpa0oIK1oddHzRrVdo0-6x-jBurbqz29gwtV37HC0rJFtuuh0mCAgGZri-y3PBh00fQQnjNJZR84OxQLtMGTyoT1_sGZNoqxjMeGrlixdoTFaZFc8bx32_S0w_iZ30mdFqJagTS233B5tjplLvitgXtOrQNGEAEwf8nx6JEMHWZ8uEpVS0ro_mDJuJ6tRk5g14bZ3o6sHYfgyI6Otz5T_sm_SPg2wmA3n6ZCURm-_z75qoiUCHoPxlwNEkzY1b_USAMtHDQr3z_KOwqdv9bCJ8zflksnekS1pO0H-xelGNOH1KL_9tBY_k13WRSNmTKnxf03-NctHNyQgjPsujY0qtCVA0Tb-Hfx8-CE44g-PicJvzhSaj04qL9RfhSZR1fNVtNCzKCVTbkRkgOxjA3zGZ6vFoCyVQcpWtcD7cRsE2RWdKlzAMgfhfh3aHmHDI7JdzLR02ZNufXCl0WJPNUjCBYAgaC4pBmgcGG9TDXU-ZRUdXseHSqIv_dfszwvpgbt_-vKLHIgYoEeKsPMgYcQg17l2TVz8QtqIhG0cp7LZ2jAnU_N5zxYJaeUpWmHvUjrvnFrJiUxG_vSy7xAm8YosfidibCFhV9VDYHDwYGxpjQt6feBudpfW3M2QwhGglCI9ZBQU05JkQ1z8w1ImNNakI3deRztaa-CtMN0J_0KWpjGzmCjfI9-VMGheLAOooLlq1p9M8XMgnM937gdf7msZuAKJlCTA2UaeQJ8ERMfkVSspIan9zv7rWSD2l3TR83EokmqD9Q6Y2IrJil1l8UlwwaDDiUGOEEc6u7nd4BMMffxrfUZq3SoVgZ1Cx480jFodlRHJLQsJpqE5JBCkVFsaxpuCK0eAOdgt_vSPWAaecqK7QMmUmOwWlxPS4Ue5Zpos-f9U9kWjP6ihrg35qTaDctJ0iTjG3ec6O4aRAFn_emtP5gOlsFahYhLL3AojgDU1RaR1lhaoc0RRNCOIm8D7f5PlGWeEottO_5wdRxNiBitofoOptR9OCABPb-xxrhYZ7KzTPRsmBHhdppXhqBzOD4Di9gDfaktF23scNWpiytvzxhT8V0gfrmqoOBHE4YcymiNje1vu3YDNuxrm2y7AQm0WxeNxhbHvDesyuHq0lXxy0Jvs5mmVdSAIcb9TedDIP3nRbfrZffRvvhGtyxiMUzGGDrg3sP4ACLygLMnpei5k5ubf1Y7Ma1OD005xW8iuXnEcrTWGyxDvh7JMk0uLKRNw4iUFc05D_JAp7NX7kwTGj_VsS5MeaLm3jv1Yn07R_9wlx0J3iAFq7KmJBMJjMBtCtPkPVRSxgVmXsdcszs1bcw2CIXRM7Qkxksj3QGyTFviSJQmNroDybBuDK9qYIcRhUg3dle2evuEMlGl3r9JhgChs0G9MllWJMUlS2JA8_f7_fW_2oq0bX3xxN7g0qsTSLUOU1iP4O9TGD11oU2GorHOi7VZmB4XMLSUHbto3fVCEwXBGEGqMaQ1GsYmREXPUWHKQhfwIpOPqRXW7kzRZPDbtG0vm9y_IloNv7ZCMUzXbZAGCwAPrG13ePLt-cQu9sxL3vJn33gsL_Gfccw3kXARTBWR2LXIbWvjwNqZdIDUqqe_u_TP_n7QG-XyANc1Q8ozSs7HJSSehO-X85qbN3JKy9XgTMcwWi07IGIuS2xyp6LnIx3bRbxqWJ8bI30DIuh-zhPJ0Qu8Z-rDCOJPDSn-RGauVjAvAP8f935q0hZvquCuXIxV7PuqXj30w5SbO8HzRNGSck_rzDSiJ4pn4fsLoFwaEXrgEzQvkYO1Hjavt02M9sko4Fo5kSAoSGimXIspL9NTKfSUYlI91RxdOe43WBtGbKH14lyHyGfxNdOUDy94coSuPbpXGVro0sq1WoX7kDAvZiJJ7SRvh6Jqgo89mMDlotHYF0vNU3KBwZxXGA5ombGiFZEjolHKZ-UV1WtrXGhgliZceiHbVBzJ12ZUR_XG2t6Gqf_AAFruHz5ygLstCzHc4DiRUvaMUfGUTAgz9UwzBDGEOQ5bA5vw18SBOgz-3WNckoH-0fasIgXuWB4SJNYDYTI8a3wORtC0aeP8EJ_tuQGjm0IZyuoBXlNrdvI6lPB9mMw-2vTJ7Xy3IzOv44Vz0GB6DG3KYSIaqmJ93G0gt3rT3JoH1rsf8nDoIJqe2dLVV1KIEDNzcyOggR7CbYkQR5EX2Mvajo2yFoce-82WuKtrZL8PqYWr5j6u7-hQ1HefgVr1Ue22WlOCg7mpxOsPB6NnmIFE7rjIdaxK_QsaROaiW8a5J6hov4jqsB4t3796zGDRZ2zDX_ngsXiPsZxwxKX06x0iLO2rRcv8Utq0fqFbjBaZjo8cbI7kb8KP3JEVvVD2oI6nm-TgruKxRRoQVVVofKaQcn5U3GIuMfhbUCpjLXgb1diw6xQieK7L1v3Vhb8Gc0x6oF4_udi3ldF0xUgyefPNFDFYObNLUPxQSaLbV64VzOIHqF4qxXRjNEt21b4gZp32Nmu_6b6w9UaUVP14zZPUe3NSgGs6H0Hq2tudeBoJYjxRt1Iz--14uIYEkbNScRM6Z_Cn-yLsZsyf44an6fHnGW6-wTwv5bAAXa1F2NSNuOZCgo2XsyzqQcgMU2ILbEX3O_WtV_52bZlUvtxrcuH59izTe3nTy32AQf3hUVq8Y_y1FClXKT-0nDSTTce4EG9q-2ZdCzknF10Z6iWnlCHul0tdoo6pFuLbqC7z64vUBpTgmmkbmnwPkWM-kWEEkTSzzQpSFVH0X8FQyHEriGGxZqexKFpGdSELNv1hyvOA9yCfirleXFszMelpb55xUGvSTdC4EfgcRPWF71SMvwv0ohfQO8N5mvgMYtZNsgx6r5_98maYfLY62twsuZC4MIzYbBFvxboqkXT1LIHxgpxQv-qOpIYpj_RkpmRcr6p297JLgz8Bzpka_G_OAHHkpJf0x0oJLDMqLSOSonacPbT4xza-O0o609mHChiUHZVFu5x7i5-brUsZT3p_O26lY_oscxQOO51jE7exdM-E2tA4HG7VLLJ-9y-NFpajt5ztnFgoaeTIh2HHarjvJTvQekq3lm8a1rf5Fr7DiIcAQgRByfy1xXdHkgMxzIAmchLThDeK9btJdbHA6DmJXiiYQAs4N1vqYksOIqEI3pUvt3nwhoCfyAAPJSDlppkSK-aw0zJHwPHEZcvoenfMOdxFIqP2Ew4Lhwr2rT7RS8K4ZbpSeoHTY4blfNUFu0WxXIIZRTRLEZpnNxied7d06D9ViK_aKmon2xtQzz1qwi9rV690_7MHTiODGJMJPKrxhh-XP4SP7pM5mgv4RYRX0P9lwn4qtLGFbpmcUHG-0AvmcKWVArnUUbaOzfDMfxhYYexzKPgT3io_8PJWw5jNTx3HfsnDWRlWoGEnRvohQSNpaQvwi-fz52DrxC2URe3uWpORx9rtOSLlDuivRWa7vZPcmQ3Eozg_6rSYm8pPUoJn57C0m0htJaI-OLDp6Zddrr7NyL_eOHzf2rCSRDzm2rCzfsdEuFPt-nJfdhpWpXdry4eNQ6IcmAKCQFKgfeF9UmM4oHxQuA6xm1G3AzgEUdot8u7BWVUo4eFB_eG7_LYjAlXlCaJhLoHpApWVtLClkat3GfrUw2wQxZVZzvbDlTKpE0ZNTPoLZShul9yZjqKKgOWfNRW9G2AQXCAT8ZbnrjrDARGUH2MYqEJwe687tS7UCywr9dvEJ2A2q1YZFyJkmdwh7cFIlzd3GAPIe4XznfvnqSvYTZIJGECXx4iGi1f23-4wOnIqMYHJaqb8DiFO3V8HdfvdlMY5DRd-_ZNo4MX8Q6MvRI9kBgiYwnGUFpM1H3SRVj-3YaU0J999KSR9aMeHCcvXVe5Bc0-Pr-NQQ0v-IXExAN-38EZaBUNCDZMSeEURm2kOaT8uJ62-ac-6151UuGDyyR46LquvuL0RKvPPtGUVMqEAUI8KRjKzTb1hPXTfRejp6XmRzGvnswcpKro7H4_bSgIERdmT6Yu20NmHP553O1TovOjXwGiqbZWJ3Frp5caguv6t4QZfJfvq_anyFlZWn0utE_pmcI8tqYSvr8zo_Q0NY-iKzC5gW78bpHAAWl5TyheIZO59D2YdBDB4MVP4EfqujiqKiH6qTng5_H3gXKwADl3fXIyHjVgTiRGU8V6oPP_rEx6WSlYkxHxBiF7nVOu5P6cPLExHcBX8ncQ6rwSKW19s0oFSZJ2nCev3QPuSqP6bCVDx5DgV765LEj89V74qgyDyig-XO7p27-rAEn8DGwpFgyEbi_GI3bU9V_nQqryF-FSM1FQaZuJRRJsEw--qxFmOgN3QYtOzA-p7UwS7F-57KCWm74qcwAIJOpBnxWSclKBhpVU6v5SDA95SOeQl8GKDbMv0CVKhciymd0RlcemKIm8dwmtjqslR9Fd_nAV3ccQc5FhfkYRDcOjMUGtptOxbzg6eqU4ISGcogOpEuE-TfFZ5dAh809y51jvMb510qtCOSCv9_IVP3eh15Povq5vYUdjq6zCaYCXEGeZwbOswDvABRLLJNqEPMt-7Ns0yjIGdU7k5L-_teNNb5PCHbUSIp3svxDmjICZ3oC694Glx-ATk3mlJO27uQPFGOAGWHzzjWp0bpRSiKbW7gMYw7SlkYQZzIMPXc-XVtjtdebZtmT7C69LAxNenlIc3IeavaNKTkcDCGXdolPmXp1sDEMuEnko20mqPW4t4rVaCJWyoduoWKefX5cGUUKhoHIsdUp49yyu3S77PRomNM5h8Tk9kWXioCwV9_EVZfoO_IkVrjKzJZLDZr2ImpWVmzbQqyXbWN0fBhS90ybu8gfZLlCNtrseTotuXI05pnWWXjgsfWiJZNqn-DVSk7QZbZo5Pxgv_3c4lxVOaoca_Gkesromd7bXMmWEOjmzR33UlJE3TvWjdNm136DGmSR4ZjD_h56msU7wBDO2V4wsKQzRMaHVe9IsQ-VRSjgGCygtixQ1gEOxi6N7Rc-tqY9Za86iMfVKFTnScgEiKtml-IJfKWX-pVpk9IsNxJbcq25uHxWiHrSPyucFyIHw_Ti2SDQuGOC7aTJcFpCOVVESriMy-8aYWsc_DL1zZI1He1NvpXGc0QTOyyCBxYFHwWhaSM9Cb8-RBjR-jKKT39KEdg4Ltst7rxDC2nNqJ3Nrc8xuepzOydvUaBgh-iznYfHHshpGi6-MfVAkviFTvVhpjjNHoEZiY0DTAkVB2gcnBzOs0CPbdbjvSga3XdHHzfv8_edi3DZRnwmbtnZuLUHc6maksVc45A-xrRTL7GYbUgrXKnam50cFnI_D5qBlXYuP3iPhGZrt3XpM3ooETT_J31AW-9pjkso2UMerht35nNJnJ9oHIOUwcvrHWYEMfJPxnyT5jGml4ECQ-NkDAXv_IKD_8FHEdqhKi3wtFZqSZo96MH8bbUvPTJqR-F7Uyqh0gmh4hmI4mF7VM_ixGCkTnxw19cgpwmPS4mmNJSWQrZcmrF4z_WwQrF6s1-0BRhoKn_Ya_b27UPujuKrvAuJCJ9kijdQXpM3Fne07qZdjpY-abYliFA-QpMp0Dmw9tUdGSDV0F0LBCVVM-prJ-Q19unYWNMcM0ueL76UxcInU_PRhmBtDox3Bq0SwFhVTiGopC1ApoUOkWa0EavFTnve1Oh7vCdIr6buW2XBsuNvHN4ft7v8cvW5R22XslLi0E_tBnWpt-zhNNh4J3OLSEbSDVdmTRSQVuXWSZkq7bCopY9lvZNBhYzSHd0dVWvoRDiLd1FMHx-S0QPUAZ9Vlc6fDXhC-hFj07Hz4Rm3WGYVr6kNhZHNpWWubMpVx_vEkTvxv7Iv7ac7g_yhRfc9RVTD_MPn_MTQHqw_crQb5Ug7buPnLLYSYn0JanP7hpPMMfnybuFxUoGypZJMs2mtQB9BmwoBh7iZlj_swTEbI9D2ajuc-IxkvJmYW16J6erYY_doW-I5xCurCQ-N06VTRdL6m8JhGuMVIfXRvwC7YCvUAvFMq3B5Rn8QmeK2mBF3jRa3Iv8LpYga1B9IJXJA_Sow1GGSDb8d_AVEmhqCpWkiameZ2KA9hqcTYBJLfR_CkrHi_EAni6eMQcChs2Pok88oj-tMGAVV08puG-VeL-DsMTx_8oEXrqr8VPdzw2nhNpGXswm-nE4CJxVzNOrMBYew3c0mJQhRP8_fcl78nlbq5TzhvfQkCUG2GnshAJHNUB6wH7y7bWm2fcFi9qHwwf5hcxfYukeCVS8zZqWkzP_bWJwN6ZSnOLyci4lBxYE-c9iZD1WwkSCHOax-YpSESvlXZrMyG5_E2189kLUulVYzNJ6PlNH8uFR4lECGLkoK5A8D1b_fl6ZgLBMrF6_DnmSvOtFRgJKFIOYMc0Lq48DVATa2DuwyQtA0RQI3rt2Tu1DLH6hKJX2M46iAcOeauQcV3HCSGrPARVIW2qSKe0bhBb7MXwoS4Jh5_AEK6rQ0NOEOLfgaavoseNuGYBaqnMGiib_60IWmFaKe5Ce1Ssv8grAukZGT-kfa65a232_eVrGJ0QVjFYMHRL7b0J0rs5ZXNgLrYdvkN4xZvhccNFelpJ-gghB69xm2Psb2DVboq0OlkXgzH0gKcj-oTreSn6xZs0uAKRDibpj7OiYcqhU5hPp7CZyUG7K_i7kEzqtDVr3tfgMflb_Z-cmDg45NKkZd4nEf98TrZPof1saR4QLvT6pvkxl3IF7I-v1cvPaXORRXYx2ONfhXW3rDejWILWJR6MeonSWgXd5_0FIWwK6f2-LWh8MK0Zl9sT5xclkEbZ58MMLVpiUrDzntzlMcHOSOINyl6GqOMCywNw38LBkjsvwL4QeNveFpYqPpkTVfoad41cPbQvxaxl7_NyUtu2qb5yyYTtssy98kxIj1r1SOCooN61RoAlzCL5H2Qjwmjo5bApQvjSXLNMS6Y6LugXrvJfI6FRYBeGBUhL6WoNPejgFM4Aq_r07jF4rTgXb1RlYtS7FSNgmKZYrBvTkmdvuMqe5NF0Vwy3lmJwQNhdz5FFuqPPIsVxNRCeY9L_UCKbcFIIBiEHooiOWsjE7uqh0dHmykVTK3mTtCikymhflGg4qgdvhmIic2S-XPErZyhdhl9WS-8RwiBqj6xv4cX0Vk8K-wBakjNi0qxKynewXJqwEwpa71Zuj1je5-iBiBeHTF2a9MYtR_gwoFmzJAXeLfwPE6wrFDTMpUWJv3nGwf34lOXMyhpcAlE1PbBLZO-g1d0ya6EkKcCchXwi9x98baderhq5qt2RwVeaXDcSwus51VetZLU1_9hlq5qQaLKtINC9u7wnYPm5vpAxw7BjgGZXQZTEFhdP8inAwRKG1I6oVSDgOI0wReX_LWDhUCUq5ZRbyogjsXtJW2BcZ6S8i55vunhSkTXeSxmJUb6sMpg03idZNB5SL1vyApCFyDUfJYIhzHgwRVwYtrhPHnN9GLDK5UHNUNeGQ9IbTSb95Epxl5wx-BZaoF0ms7qnbu4F1jyM0mcOep_I85oiF6_DAJdPS26gw5x6UhQNbbJHvpHT8qZTCIddlV6gOlVZY3LS5mx1V1GW5x4OYcuCFkmJpUggqcucZb8qsXl-m2IXADin-xRskbNoIGa1Erj1Mkyafh9vpLKsqW1hiiFLsNu-845ErEEBX9a6uOpF82Bsx94YXiBqqhSJz7FhPxff-Tx1OInsZ1Qzf_ZVXp98r9jWXOSoZPnRBckhoMgoRA0sWLLuYZk3OSMDIFDidWf7igGXCFlDZy4y7tOF0SyMaLtGaC_rQ2I8_ZgFB0TuzHCMa9pTgefeYYzCzgww4UMMr4iZz1k-qUEZO7ftiUVVi68vr6bkbU8XokV4oFR1dmMJcMGH1ptwyOAVLwVmlhCoHcK5qu2eAHlRDh-2-_--QtNkiXZybBSmtX4M6DyoUTHW49Ams0_wQ0Dos_BZg6YZluX9_I9eouzSnpOZ2vsRfwDeu56r2ggF6tQwbrYaQhB8-4Qikw3UXbGLZo6iUq7oGRjAQO3HMDC0IiHf3Z0dOwSOLvXbEuMwK6_tafALPgJhCrhPrU2LH277n3ikGsnobKPeWza4DsDVjeeJuIfsHSJUb-6SzqUiJafQxFJUh9YhCcLpW8Ll2d59LxZ8Ao7gPA9T6J_Xa215VOM_4B40rmOXeKwuT9v1NRYfB40TwaEKav6dg0Grq-YDZaHVzr_9qjfKxooJwqGFLnbsO2YF5wRZreLnCXKgD6Gb1HYyXnt2MxYiEDHJrJOqZGU8xdgQiTvaV7iZgXGDr52XgJlqRTk9fUN68wJFi6H8ycYlWaSRHNB6b7TNc940u0p8nvtqSLa9POydCiF8ztp7urFMlGEAl-XHY7hRFGvznwu9oHLTYrVbJj6tN1JvmHkdAiz8qbS3Gud8tqXFDpJEN9xOKCDYi-MEqWXIoGZ6NQtNi5WenDNmkaZZbBwI9XRGCWlh2NZ9Bc_KRvGreTBC0wWk5W4pHwCmqV4GuU-5B3q42vxUe1UawYgESt11ywKw8EjqfoQXexVISVGg5yEmDuN41E2rkpgJYNTeXpAH3jniVcGr5bt-sPKT9FDvDdl2ZoNQ4Wqf-PAO87uENogGQ79eqyun9yMi0O-9BTO29AeAd1u0QRuq1CIV7yszWMpqUut-tTKxR6OLoT6w0F7ASuovMdZOHm_OYN3n4EPS_yk8-5bykjz6_E-i-zrkXe5P-iZ0TtchSgtBAtZEXe3OfBPXTIoTRdMP4Qqy_wpbN-KgR9KRVEtXTnis6gVYcQuRQMUwR5p1-kmh2GIbAVpC3FcOqJ8flZb7Q3pGKCbyYi9zdGaRntbeCxA5Bc1EWIdMDOIqTIO9v-TRcIZt6UyWEECImjv0VoOJYCPBBO_4wP-Dvf7sfVqhahu9IQeTJP1uFULWrY_w75LaEvbr8PXVGxzdydjSK_AJqniMySAb6be-K1wbKhfV24TTGdCbKNvRM9_S9v1QVCPu_CAvxnCnnYSUxY9Y5js-srZlZuEgvMc40KTpe4h-192rQrwcfLaJy5Je4AmeMXCD-oRHVlxtpIZjS3BB3rf_MN14UU8RwA-49oP3JZsGYIoUKqjxPDiu0qLu1oUdX0Rrg1C_ojmLfZn1LBDpqpPUY5Eas41JnQP9DNCiVscpVHfo-CmV9kSGMP6oM9bS0033PkZWXuPTltLiWywKJKpxR3Tk5sDXm5FBTDCKRQQE6HnyR_sjmjKhd7BLl6kO8YzwwLrFRxRg2asK0_UKV8P9jrqg-HA7F3x8qi3879BCAr8S0H6a6mWpC0p7T-thdRc1LI6z5gcNNwdx8eg1vbOjir7WnM0U_bef7ltdz9u3EY7BYfJCqs_FVRBdJ1QM6ilNsTffyWZgoN1fvALHM7x2jZrRq_GbdEJdw4gpzYLsknDYURIj4Js4J3NsCTJZtrL9LwbqfXBQjmlHr0i8O_vq5k8tJ38uVylo-rFiSpgM_7kMVYwustIr1Z9XY-NACaUUBHMu1zblWK27BmhRgig180qzK2sVtZOp2qZArIddkoA4QQhbLuTw09JQwKXgMUQ6ih0gZLiTNXB_2bsmog-UrjLUw4IYUykmhXnk-yjZj8deeUKF7Fz4zSccrWhiozGS9JbTdTLgUNZBhKiUSqPGM4wjmp8Bq2nbaBtK-UTc3p88PuVBlX4Nd_uHp40ziZGbl8h028FGFEeQqr06BcMBY-E0OYWhOOpSxx183MAJrrMZlRSSOvOewv6i3HmWxpWYgpD-CRUESh8-ljEvAHCOMvJOo_aUeTzkQaNUx43Rzdv88F3lRJYUlf1yDlSJAh7gA02Yr6Z0i4QXKukWLtgF2oxcW098izHH7b4mqHaDw--qfziW08xRBVdqWnEXt9oF3fXP-bkgIrD1zbBgce_8FnNnIurncVH62M5WEoZFGUV-ECAeapwR49e0iZyamqwnpwrzCcGA2ssXO1F3byidJcFQUkfwUTmu_8M0vyu97wgmmXhxr33Panl0q9w2HdUfNC02t_yox1_e8cKJg-4qrfRuWwmjW53SkoShVzQ9fTRGbYTP0jZ2oIU6SSyndW2Z85sTlmVIlQ8ZOUUC0NYAxasyeKEkFI8Lh_7HGTzLwFlxpi7MrtvpZkRODr_Np3HYUQ9kqvWzcAkzlg9YEaq1tVnmDT3F8bX60xBB_jDSzvvYbMpjtiai7ti51nMvJaUBnn1efrBiMkJQ5AqufQTWLqzTjemVCq_q6cYQn7Ei5aTARXI2-xjOo7cGBWduWRX2abC0hKBIsZsp537diBj20YEoVXcYK4KnI7x7oIaiaVY4MsbxaXGJyUQbKZw1m4_U5IKlCy_pNIYNVh9EnUIUTT4Ike8Q0zjToROqs6pj8sRYw_d6kGNGhmxeWlxTH0Ttqfx_qwp5srKT8RxiMCfSKHgdvLhlemmAlHT6AIgdFURouIscJXfoctyHWUKgvTx-bz3ettWiCmebT5CiI4_oRsS5Volu1ULrIpz_UN5ABbJdzrH4nLlL91Pl_7--RDhanqq7qwvh4JjuvLFtl5ZlGO9s-Z6iYSOlB2DKf5jbD1ZvbN_-wU76DSE86MuvffvJqBdsgf-PLQzNE0rH3Y-gHmbHBKgwwQj9K6mOzWSHs-ZaFU0fe0FKlYH9bDqxzdczJGxW41_k8_yXygnaCzd5gC9-jwqhlutt5Tf1FlB7-I5d3zmJn3vPVa56C4JJK3VpbOo4umxKHS9HaMwS8q1P-XRpMN5w1-CG9BqDnphNfoaNzTeqCVO3jqGBbSXknzZJutBUO8wAUzgFW7yjwYqyBZKj_oyaNN6e6JCrOGvnlEx8OwSRCDXGHz6NrgZH9EiNUvjU1lJPbKLMmUoyeWGVV8voHIWCI5taiq5l-ufiC0mjOIgX794AvNiLxXw1JM6hqLt7LSEVHZwWb83Np-BvAB8nChSt0QrF3ACyj7D6AEuTDU6nooGjcmVZgcuiYBn6vsh7f1JSIZ_b4xGEtjB438BdKt3RI6FjNurxIEM-QsFMryO7WHCBnv5FMBp45Iaw55GvDfT5-Q3PAscXXjO_RTYiurzjxD9a5tO5gIOCQYHCkzJffzSuA1ezqdeHlMatdBoy0bTwEAc3x0lGm6BQ2K7jgygOXKCZica3fdzvzdO_XKZxXjHH4FybbDNwhJZ839OnEOV9NiGzw4xeyI1B0_F2c1Z_eQuV3stxtaWqCV0J4A7kO-DIBs-xMkHbW6rErKu22X_dqhGqUvoeZ4q1Y9TOze6ef4qVFzh7_X3vf7QC5uzAk68owLMYLFGq95j4jHxWxlkCG_JS2ZBZBQC-N9PRNJ0C49tVxI_v_KGq2fN7bL8asNgjBFvSoRuQXscYg05lD2ivesTC5lQIWGHk4OE0izb2NDG5i5Q-X639c4wpqzCaD49x58GY-8xrF2RtrPrYtpjVf38BOlReA5TV-C4cxo30m5-f2Ms6GFp6IqDFGCdyUItg2RRwSkIX2DEySSNqd6EIHofZ-iaj8RroEFwDg6SmWIGFBDPXcWS4IciQC5kVEbe5k-KsCERmGslaI9pL6OH3oBHJY5OwP2g1vSM8CS03g21aIpfOZtoC1kxau24k7uDUQPkMmx1PQBNJlIaIuubprj1ioQqm9_ix3De8iirPYFxYyVxOPjX8Tkpb86or1dueva6GI36e-e0HMQZ3rNQOEt7fLnZjn2AVxSXq5yX5_r-Y-vXeemtAd6gXRb59_a9MLiLefavChCeofzHoci3m175meAIgLebnTy_BDU5ZgLaDztejl-f1fdRwJ_WazIieKpbYQE78wR-X5tkeJOrcjYL6bWK6ifrYf9rSOo9WR3N7lzJnCma5voMP2hS18OSzyOt5psay4DTb4aCsU7_lFMlUnizfKxS6FMdk1R5_R6sUYHHzi02q-2VtsA4gY1woOb78Rj9vV7-wN-3Rw02W88h8dUudYqsjNozVvOH9_G_CIA_9hn-YvchNdvi9ou7G08yKF6JnzJhuOFheNmbec5hheMJ9eRwI3mSd8EQD6Bt_jjv7WDWM0bHWPq2_FyNj860C6qNiOxkIhT432oBNfL9Uf6eUpSvpuzH9RIkKOLHRoG8YM9VKSVKgSaYOeSHOIyy1_DeWebPFcq-Ncm_QQ2EIH-XoIi7zZUxKU91CqWnvxgHNdcPZLbC_hfpolXzR93xXNEE90HO5sirlvju7myCGECe1t_FXvts57MWgpaQmViZfu29Ht6ErZ9pXnAZrV6oU8Y2tTo658uFL80cN_mjJEtnvZ5MxqxJsc1LN9kk6VXGSPBt7UneBBTbyUUMxa2z-Y4hrWNaT1ShLWsfkNAkbkE5V5k44phJamIABwhrva6RUXsBGW0AGN7Bmm_V47zO7uJHtHADBbnVtMxOyTARRPfZsJCXRpp-H6NN8I_FMCeGbA5JidiLDfPWdhTF2cAns9VZ6754t5Bvag-7Tu1bQDZ4omT0DgB0SZTVNoC6sMkI55wANkqt3JYkBzFbdl5aIrqMK_e0J6UjsHMeESlGUWPMQHu2-8ziNuIoQ3iZfnhK9VL3TBg47AloSDAi9xtliFWppjmQAxVpy39erG2zXueWLFFclL7mXDLYlL_0qBV9tlnVez5lDAJ9AUxRwPWSpxniDQ6qa2ZdNr6xajbsU6RfI-VFoaXa0HiVE3VOWLHqQ-wsBN91KbBJp74e4FXlpQ01YXu5UcNe5eNNPuXruDxTkaRsLlqMF2UPKroQX_5BgOiooU_qE1MbxtIrqBqbZbCe9OcxuYYgUxfr0FVefmz2zVysPpJZkHuuUSYmUg61PeoRKLMWQ7tkaQRiey0TpWe1iQ7pL0Ym6Me97EiI3ubB1HtmVmVJ1Qj8IbFm7IdMCFhT5M9TKtCtJgOw0w_cYma02mrVPnQSetKPCg_PM_GEHVDipVId1cpITELywoio3Cx_fzWjB4QiZZqNcrNZ-IVRrH05E6lfYWKchzc-St_AtYuBeQT7KT5Yh1JfCG3x1IedYg_-dm-5uhthzCX4u-ODXJAtjFIRDrt3NPo-28TcI1wN6ItgJ-CWfGCl25skJMYcnElrFH0t0K7eroV-bB9nX9v1b29OWocG8FGH9ulnqiSE6szf5lIUA9InIXoOxWr__W3PepTXGqefOU59gSYQ_5t5z-qjBGbfkicn7a37RLoAS2bEZIHxFfsY9-FX5e9RZxbMHq4zxCjz92b2CFF2YAOUyk7oUOTOxehT1N8ukdierOim_Libpo3sJf3KdLvmjIRn4Rfgo4vH-UaJIo-BVa3A6mJgb7BV-Mha2FpogGOwG64cSpX0lUxuRVAPn-6ayFhu-suBwgtLcjfTfP40zpqfIdhdlotuDnBiChDa0Q1Z_xmOnbVh48G51KyJ-hwSQhXRNVDzZURwGNimpIv1PpYJRuOCumKwxs7IpAM-aYKhOmERo5PHGNpaeVCQEYd1BJLYGc1YtbppG_YFbLOnzt5QwfIZf7kaLx_diY8oDo7BsEq7CcnKb7U2bpTPu2ZqTji3e_u2LuAMaMQVGcaEdlhGR59PzQcexueTUx1yrPF0Aqt7LZ-B6Yv3eJcBk4Hg8jhdCXFX4u-HKNNkuvuLVBRTmWhpAckgoJl8IHAhTjqSfqRSt8uXPp_-jE3RbdvODCMMiZuRlxPiYepIDwVhT1hyBjRzvmy3WzsEwIGQG6HPnfP7J2odMr-aRGY7VxmEzjj8i3uQTl_n1-pozNKbYEaTY-j4xUxwGoKsJlyjG5tOWapeL4Qva1RYOqXrelrw1Obqor6Dvn20RbJNjOqFqeD6mlZInGnTPxFcfIH9wnxs2-CstPdHw9IB1rpD2C7eo3X906xOJBZUN3rre3dIunI2uAjvFYIUIXbAwptB3V2nbdugx64b1inPr2ntZbzVAtteEjwjeus1--UqFV5Koju9FlT9NmM6-q29KjiGhwzId5_8pBUttXb3uowNKDb0et4pYfBNOkNEXsu4nTu2ZMNFgpr_xOr_syH5cxahktysDf5PhTYVuF757xqjtdVpwbiQjitTBzkaYayDXm2XyFORv859d6jY1t3MlFLaTW88xEPlkxxqpL8AMjSYnsX299oNErJLAMI7RfkwOeC7Jjrd3LdrhpIjX4T4I_-MCxzVB6G5IlY4HXrHkrsXsTZqYp0_SXuIVZb6VmwTRndSR7YYMqyDn8pQk4xNmk8ZSaBjakSwKOpK68H1z0l25CDyCDa0bphz8GQAEXjcXRw5mhseLkO_Kdwafn5d3FjTx7-jxFD0nOOcibCa3CYOgif5owOcLs9Nm984ydSI9UZnp7INUPJqkGlGX7lD5sF5cdYgPaK9Z_SEnJiCbylzq1g105QPW_kEQp6pB2pzjG08hBu4KHo8nHZ9SoD38DEZVZCd8pvwi_3ijMtmZ26jX3oXOuURy7z4dOrRmi9V-LFTxfPZo15KVna7erGo3SlgoFuYkRx7dAP5MQs5fN3mcM145TQk55an-0LcEdLM2hMG8T9oZ1rOh4iXN-W0siHhOt_dfx11T5xsBwzfjgzvd-7Pzd4lAgX5aE0Wj4X_atgG06VxADt8clq1ogBJ_8Vg84V87hWKHmL_Gc-XG0Fc9HsmPsd15sm_JlIyDEHNIBYnlrTR0eS1eHsOqazwpJ1LTA0M0Htq1OcaWrhe3e5MTMtJrvmAZ5ZEjTiZjdZFIMr7nCVofiOk5RxtE7lsNK60TPkQb3ZIvk4YFE4VdGobteanpqF-Z3ZVsqZD23cKC6oJm11JM01kssQx1mCSKjsG_4GSEUqtFYXRrdKv_eFsErb7IFdl8DwKUJYtHbyWUoGo2uqdy1fToYv7CpCxciiQfxFOeHiuOGg7vAL7bS8cz56A8ocWGQsCSTJE_dO_cGXCuyU2IjwGzM3-rdNc2I1zKJzuWyy6mI1GP1KUXqPrVIliyIyVXmFt8irVWtxF7Bv3-qhL2Mvf5CcZvPgH1m7D7AMaNmMMV79UbkJ9_rBraEO1CjWUb2nrpe2Kso0kWpqmwYn0Trg92ct2GTRjAK__EgR9aun2NgDfvhL_AdanJzBCcoD3dvFFJTJONZiWS9JRCqocGiabIgOgbo6oHdkPFzWHoCbmcycEdfMacd1RxI03dB_25OfLsCAiYsGdO8BCInvthI4YILjy52hNkhQYPaGEXlIEVN1STmQzDqZIDgzpu9zL_5ihBxO0KdqKbjklTWF_hbCcUzy-ud4yrC-BUexKKV0rzIDUZ31vahgTEYRzywclCU3PZNYlcE9APvi7rNT0Ng_3qxUjN6GDcjPlAuHmkeGWoZlirvKoNgoRXCYMrqXj0YgiVZ0R9ftJARU-_Vpolo_QxXQ_8cvesWRGzEHjdWU9LZef_-JsYlKj91GmUv91ogtGoYK-RRIiB52v45fEX58R--gZplWHZbr5eaHf43NLw4W1jwJeteYq3M82HfTtpmVk96oOf0-F3FCYwZTguDmV1cv0VZqLIuz70jd006YW4ESrFZtlCw-ZfocmGaJ9zg8SLv32JqPNHCgA9poDtdNThN7Ud2AD1-EXVZD4VrVX83G8a-uBkWFjmrbgA8ANJVnnNDj6eS5kow6K8ZSeZ73PNMr1CksHMJd7xuGTm07iff_eCAVOac5z-4MZqBHylDoqYiD7g6nb8Zx4cjERF6JUld7erIjW0r_9o8wAg3adtP0s2CWmrttjcjVHeBwDmuWGytfrY_nSLeByZmTDfOCQGVKyAsBQy12gx9GmV2che7AdMpqxi7gOe8eDyB26Dh-9I7YeLFm3kK2P-jyaOpVxzVyL50WHsU2akXzbsX_UBJwMnX95bfM3zjQfbe5pK7gpxFe2PKgelwOemUTxJ4hen_oi1RrYi56ORZAbisGIdsI-YScNk6x1jIb0v5-pFlB2HKNAho_yIeC_NHVc-pyTcwI7QWM8fWilxalhDeOmFCeJ0ccYhluyprHjCQQfYRJpOteAzgUNY3-81e4xZk_9Oo_7zNSSYSkVoZDlUSP6uX4Px1Zzgizy31p9cUImN03mC30Nwjw5ztzQtAQ4_9m9ywKJ-IPZQxExBPm1zPjdRTp-utWrY_VfN5L3UkAoMbQD8_XzfUq3P2AnKQ8EckrdT6UNqLW24ONSjvHuW4eupmnog6FxGfBnk3HM68HpDf_yyRgq3nIe4pzFlnCsDTtvEjqJaoNIR4RjjR-gUI_28zxReyEH9zOhOJALqZAPCVwCCSRS74zL2Wiw-TwQWCWjRsaR5WgYX55pXwQwHNsdm_MuK-mvxvPjEifyHBIv6Regb0IdTojBYwU51Xruv1wVQajbkjXRYZOPHuSI6CMJwCYgALN39Fc5C4Ds8pte6_ehBCn9g6aQHcq_tEwfqo-xYFXvbBbVBRQ9gMnE0XgTM4KHKRX6H0XUKFYvSCYJMcknq643pfxrIPGowNX_2ulhiJItnJBj8Id7YBzAyJwGpcKX13uS5guLX6mNdNF18xD1VpaUZj-raxQ73Z-Ze95Emw836cw8dzgPnz7P_b-1UdVUL42UrOMvRaqEMy5RDA57XcRp7COYwH5petPieLoVovkD45J5DmtdW1wsCLltFsCCDnvwtpBexPvIgXrBPhxkvkpvOKuJ2AXgryWqW42BipygschKLMQVEYAhKVQc8Rctxpb1daII-flt6A0IYRQHhJD7nZdRPif9ik0t9sFSOFG37XRjkTxR2NoIb3wsE21e3EXyPAKyTbJ9fm2QPsv-R4gzqsXOKK9TvUH6NKN0fnOoQ_DJN8rAc8t05GzW7ghlJnCTesJ0X3w8bayZ-X2WJXn3C83lTN-sdpfUQks0sj8lRoijMyBhdQph9xF_d2FDoMUD6WrIaklOLROX4nJ_8rJG31xEXLBH8z0I3x9XKpSYA97s7UnN63jJUjlwahUbqP5UIVOEp81rFzrzv6LeEu1Fi58fmiRlopqpdI50EOg3_o1xOCXDvT0wf85cesjkFMLkPJWCJkWJ9B1xfFBPM6H2eThRcYZZOerNVdfQsSKbcEMen8eFmfOT0z0vWXsyuUTVMZT6Un6s5uYtYydrMb5TEILh9fmKEyNtku4bQAj8ae312CAayW0_jVKgJIAu2nD_l0-gZR29fmmHOe2RrF43zbOxUSA_IfmaM295D_DhldR7RSnXQqimSFJG38pXMEeJelLfz5-rkDa-DsQI-qGnusHMJNeOFFv23gIfyGjxs8BrB6aFhZM2FoNF3kDGEAXu_NuOHx5z6pXA5016BoldB5WTACzANpVUx3tJSjkK5t7PklWl3ZA4UQLjONvG-7jSzU16IrxtiGMdiM3-nz_YCzTdJ-lL0TcjajF1Er8172KuaLobTqhEFVRmetbVe6QMochpEn4QJU2HarQ11xvEYren4FDbrecLYA95BChisjvQ2mMVq6jBDau60zXY-uvpkzhxzBfJn8WRolzP1JV2q_SLFtYSTG3WG1DdjcCZT6EW2yQesUZEbGhAWFid9ZkJnadXDscDKnaC_0c1qhW4hbXYL5eLe7u4_fzmRq0i3-QWpJp2ztXMRX2gqs9mpJd7ihymUCdr5n30QPzsNLq4HAlHAoFoQqumgnm-uX_leSXcDTxt1TcjSoeRpsU2kYKAuA1ebdOhjHPYQUcbjGerq7K17IH1Oz4BsGdllrdgscKILxuo5Ej6VegxXt9IJRgN6lxx85wQtWrJluUryvP3Qs-FlZj9fc5xpKsPjDLiGmbI-i4KcwKMzmMa-fieTroIXjiuXNPFdiouOMLearvPv7Zfid5MeyDUNOSmMoftczpIju09V7DbNSvpRMK7Cbo9iE61JgZ-rAA1T2Q9VzSK1Xo2zYx7pNZiBY-MqiWTlFMo4xBpbdkArf7WojqjKpYlIwKgtp8sG7CsPP0y43FH1Yxgtm-_G_rVanOqux2TYeZwnyxxamVkwcvcyyVdd2mUv5Z5ly-U7igF_mQrT-rjaxEsfO1X4WuhLbcWLllemvyvjxY4yV7fJqmhMkP5WNIBpga7osqokUd8qFkpE4L2jWEix5A_qekdnVVxkTq_2q9jZ-u7Um6BaxDNb-lwmWyRnATe9zSNmZPhEcEHIHcJE4g1_1C2EchZGeeNOr3TBsFNZ44-nTTgP8uwBxjQ2eaJGAmXkEiGsVssqfZlVTxqUE-CgFAhI4IEXuhReh1yFfi76sFr9t_pptfwgvnowO-VB_q1Uol8deiCg_K4EuW0JMOvAY-Rpfu786jrh7-vnGryH5Q1S9bSV-KCN9asDpv8Qg_Vff-wYi1JsCsuGlg_7mr4EP8UZ65c0am3O61-rCc4eXxYyJrpg-tJFSOLo3ACcjzv82RckNZ01YysXHF3y22Mr3GaNhqAaVz2NCrud4Y_SRBxnX77dw99TBFdjuJYIqM7FQSqv17p2_J7ocYzscgztLv-9mtUK2duKgh6p6z0_DDJugqWWsue5h9TJQ59FO8e8FqhkrepEgUegm5R8Ck2HHjTD3xJ75xjjF4xpHT-QTMe9sECkdPK0-7HVM-pUUDNgNuPGJ7VXDZt0kbrf0aeAxzoXytx-6Hl4Z-91EzDKT-TWBvAE1XvZA6mie9e0k-sBzy2g-N7cematjVTKVw6LS-e2EFH42ZX4iho58bhEW_J8x5QVmsmUgBfzQgmMYazcugNPf38ix34WDCOlGWubGAkcRQS5sEsY7oewCDkHDs2w6b-NvpqdaHkJr8pBso2-27EhWx163hxvOeaPfrTGlC9-5nYSL1H9ibrAEcq4bbCWhcpU4j0-T-2NsZrQgXbxDS6HHEjC4OfisdOtXMh7zxQx1R_VLSwDLjozfeoCyozx1mj2BnibUVaQF-PHGsEC90Yb220GrJztOEr1jeMthOQW-Ij6co6dUi2lnpAje-VAIxvOZMCk8Ih9AbARaWtnHJwgstNpI79eVQmEiSpgCVG9HlgONE4M8t6tZv_QWRbQiUvHTMSW9oP0thGBghUmdXkkI0Xo1IlCcj2kj0-MdodQnHqEHiONQ67c-xdryl514Zlr7eqRM7w4Bn-a7y_ejauEa57Gw1kk1uQZr-EtgBrlXcYNgGiaUq6kjId5gHD7djVbmq-1Kg08uErLxZP6qiAVIS19ScG5lmE1XRrDwwcKJ6fhwsgi7AmxeMeyDsIRLluINe7rQdyf5Ee_Nj2_CgJDVCau8g7qaGwo5I6jqFiPOutwnlB48J7mR0cppW9PPIUQmKh906fEM7vjaJVfcIUsZkLgofEbBo7tXva4QdQcouGs0tK78cNf2nLjnAUOlyA-ER2eLtdlXR3GIAcZ9vjUnTQq2lBrQbiwPkKLBYbanA8eJNhGZLog3j6RxwTDdr7McCDC3QUbIF7rr-CepJJwBf73jlt279dMhomhEjJBVeAnottCVqBZdtqT8dGNCibp_pTPslH6dBa8_NrSVjMK-dxRDmD8wTvNJL437KznWAwEfRLd885pb6aKzH5F1xEnD2eDXZXghdSSJ8Zgv37q8AXzfZ9WVbblqwaq7wLkqCbynYThcNgpaL-qJM1LIYqg7BtiTQHP1_9R2bEnW6Xx2AuKTqWvgpUbUHn7jD1efZ_j3Ce5GZkkNnn3bQ27OxgL9TOH3hlNUAxmXEHeTv6yH6MKjbOnEApsWLipVHc95B-E5vx_F9_FMnJV6LQaUiflkusTMQK99dAC_A37T4N8bMyXSEjHWq1P8nxd59NDcenKJPuF71XC6uxJIOttlbDMA-u_idA7Ih5pZhSglkQM8VgDEQBvc3I8o-N7fU1YlppnKo-QpXQarG6i0285MoF5NBBTa01k5rTOnXvOlKPt2I9R12TqxcJvHY0dw5zLv-bmbJcdD_y-X24t_0Y1L3m3Rx3kqHcLaPwqhAc16PqNktLFQ2Tfh7f0i_paehJ7JGktpdGkfRk4dYe5zjeDqSXFRcKzCWr2_dPEFJvKldJ39KL0ry3iKKh30XF2Ujd5Fn2Kg4M1km5L_dozo4aqgiclcdj3okb_a_NepGWHqPekvXP9mnOO-HVGdXm0wKIuJMQQRaA2f9TUw6DslAnp2BxIovBerbK2A8gaapDeSiaIDNb6R-rW3Qdx0Tr9uGW9QpDPh4in8OGKYBEOPJ11JUHlDnOUa7EglLgbaPKjfETuY3Y3a5Cf5bFcrus9NjUBSzAVUA8u0zQ3Bn1bQkuEIWvXPj-aiQ0kKy_GOzpZvwCY0ZmdMo2yF9prpnVd3frl5avpwxLzKYHAbNUqb7W-ZiX0WAZOrZCw9Z4KExozlsa2gzzlbRV9c91XJ86I5QgT0Hfh39UyLULXlbGgSlzlWQtOi724CkFXZ_zX5fCSjfvYeE1E-_GtRID0pvdVe03RzafVQtyEflEV25YveE9nrS0WC6l4MyybjIhV0C7ucsxcq1ngwXhO68IlTVGiV1JScjQ4pw0iEZRbOteFuPEOB_Fs5d6eh5JH8GAX3hF4SRv9sQ_EhKpocCee29sgjgJ9cEfDivGujh2qAUXNP-Ic3kc7Im4l77o_fppR0NT6utkLr6P-Ukj614L9OFjCZ1Cin9TGTmqWaRXo3l1_-fuj0EWVpznnc4zZ_SYF1woww6U04MM5rK3mwD-WfESj6ZPY2fAJVaAYQbbZBfmC52L6rDgHBUXHKppFrmX5Vm6RIC0N-9fg9rk-2W1QRVPoChAWy9X4lOtWV4LphI1Cs9CW1DiMT0dpSHfig214uMDZDDQXNCv2zuC_NQ776pcyB58mNpxqY9BYQYNewo3C7E5lZv2kfceoEBNqGRiGq4YWv--GvlNrGLtMjT2K8fcMwPQro9_PBb8mGN70vmim-I5D4FyOFuWUtZ9jJ67kn6Ol6x8dCERutbwpy7pW8eLK7EyVnfuZyDVygtAbHjZOfFxiiICt_EPx8zdIsaaWAywC4s5WV9LjVyVNNA7qFxU2gYbisGcpkxdvxoPhutP-tqbczRbM3fGfBprFxM0Q5lUE5CT94qu72nXdVN08FTL_9DyA884e55ZbOvgN7sMhxfPjDJ8vuGJQ8vGUl1G5InH-fZycHPYvoSUe7eYtrssgpISnkMyZuO-usdP_vD9BlRk9gvbTx-nk2Z1Q6C-xvRwVnbu2K76Xmei4vG_xXLjo5pqew-66oaa6QeqM8uqktmkW9-Z3-azaQR3BL3S4aP0a6DjP1H6267Uoumi9ksKMh-VTRIYCGWpEgZ2PKrQeEPs4S86xp4kTxfhVPPGOFGbGLSTwp4ZGd4oCy2UpJK0Zv8Og2Hgg2HQ6jKd1SKR_GaLYpCObnYXeBGknGCyQbCx-NqvHXBwcZ3GQSSOLdWV2JtYQXLakZsn8SKnZuAYRyrKbCBLP81ACKhwMpXwmdABCuvRk1ihllH6tOMWqPlPOpTLLte20ejNVh7cvruMAh68yQ4uVua93ldY6v6ms54v_PE0yVBJmZEODAfZnzP5ITo53TyTGjGcPqGgXwpktOpe48BCMGPV9H81GYABoIRTf_JbG6CG-ELJ_dSUYI_bJ7EPizIABt4eHsZqxs2JDP-Ye8rb50pYANlaOvWk4vRYBM8edbGwC68uZln1Ap1ZKCf6Tuul00X0uxuR_mHXJMifZnTJHbHPBWWs_E3bXHgjBD8YEiA4XQMRrlyYIx5s8Q2sTdsCJshbK8B1CRWj7Pbm2UGkThhw4A-iy5M9Ls9RNvYbSOJMco61PVwfddDhEALBQj8TR5mQW3EhkvkIUJ3jym7dGvDXib7IfPOAite0kvPShrE1RN7I2Jxht1Hva5F8axTOZiBkQ-mcBZErdnwT1I7huImT2WsZPc4DMSHWD-BKh18t_e3zukHwGniyRCt4yJ3T3UpXopexkpQKqR9IcSBRGNANxikWeWUAR64l61jVPRgArj6B8ID1Jp60eIVzljOcg6FI8SwUNVpb5uq-XmKwlEV8F3av_kkIbXsmDufgYQEEyZs0_yS5DbsAsyTTtwSAoTJ8_PXBDu_TfCcWSEtVKCmGQV3jnAyPso6EG_-hSkHuIybYpItQ3YnSMpefSUw49nk7stEfgKiFHtyfWnDVvmc-pTKW4D3A043z8XoaXATMRiGGPc6dm4XpAjyGWKLeSOVkvISTJwpuSCF-MwZ5aNi2MqEKs0ehFtvyaM6U8pRuDTwf000elzaPTvVPN5Hm6RgjpuV6b6aiTJtNy_cSHLaBBRnKaZFzuY9MRTpISrs13jFWmGZBWUxNkT77e3lqcSxQ_bsJzS4rgkWv7fE3tcOzaD7nce33IL9y0hn5DSbMxhknGZEsbtHYX11mU8sU2jt5eBiYsp3RilL5OycHY0rltwboZD7l1ETUZsKtKUCq67p5pAeZGQItL8Rvu2ET8HsCvg1Yn3-jvvaQRnTwfQiPmqsdh1z_wxJofI04RtiBNT7mo-NNr8he2gbFDaP29i-a0X9_FF6uvH3gHBLlH_zx1q1frtWcPS29ZYSk2ubnXuIcZ-5CwodF0ahAdkfenHPQbPsV0jy7WVj612zmsx5V36KixVRTyCIoQ8GpWXh7zEOwy1sj5MbUjMBiFhJTsa2g-l7JVlL-hTEcpEFIvAVjkavia30VY4I7W394Q8U7mxxPjf6suyNkC7fUy34lzckMVaQsh1zShgB1FFikX18PhS65WQ_3W3ovIqEag0uxEOqnKjmNuB5ZL9rmU4UdWM-zDG-WgfYSXjggcmXu-0R6A9XV6IdqD852ICaSzR7IbVzICZKbXn2fVG93ClJ4GCk2HGraa-9e1JhHznz2yG4WKxVjrvD59-XEHXHCOrx7jqIPhpLHmv92SR8jQdHss_ZuBXgHnsbAubGbl3Ok_Xv61eiafjK3ihSI9VxKl_T0Y3KzptcLJlUouWN4SgOeMrN5cEl6-2VAKw29Xp-WvWAsdWDKguJciznvRL1kLLvWh7aJSG9zcNZ4KLGgXZsNBoNv9iUaAeOLowLEAnOt4ueeYGYDXc_ICFwa9pYoh9QT7iu2r-5A2zUUqkhxDYDdYW0qLrpcBW7S4AW1za4qat3yEdbeHlt4hGyvg3FulW4e5OY6qICQgdkx6dG17-lFuIFnIu3xkshMB5EWL-LMWOqbnoy10e84z9lq6jx3GC3EFIhS8WlkyirqfLU0VoXpc1AdM-Exjyrz2T0m4rrCGBcw2r37ChOQYN164aLLrZGFtk7nZ2fUnIlyXAPCGsDXENdTyEk1pYpPwh-FXgJxxbayyrLIpUjEtSzrLV7K5S0PRCrd4GgpeLPtW4Jn7Xdn4Thl3Y_b1VxSKzKKfZ6y62ZAv7tdt0WKRwuqy8jEEgB87eNq5rwGgsGkptW8q-DGtYdRsqFPdag71pglDvDOwWcFYAnESoKIipWUzhMubVPZYOPxxm6-83EBqvqM3FWI6W-12jHY4mHTGkPXVx853Qpc42RpqG1ApX1wFE12R1go40xtKD7dH5yZrzJFCD1bf8jziUsJ2ywvTiv25o9WlQOiUt7J37mBOfXCK-e2-DRXeoYVVyjLVMm_d0aj4AddEcf6s3XpIyshDss5gLAWQ_Xu_mic0XyOQd-zqL92BsNUdUCZkUGYiggrLxhblbH3D4i9io03z7aAwoMPWM8FQrm8CoXKeVyvr6dCcUFIjwFWuokHHyzV1vY5UulAWytLC2ZPK7c8yy5dryqeFVtKr_Hlh7x41MQBWCeZVP7I-fqmPSx32alA6fxk0Kakpz0-rH5K3pM0Q7FMpBA0YRvEoM82cNjpCZuYYmQn6vt_v38xQK6hWeWarvPmq9XUBCB6BbzhA6DMAZZ2RWmgg6pdCE8GrydnSTRo3pGvvaTZs8iZYoIuQDgaH7kn992J8iRfflU0AJPP6zlkTdob_s64W4IhYrQ0X0TmquEfOzHRjAg-kDCyhiHzkIcKJeRte2qB8yfl3xfciooSQv_LEM5BKZ48XeEV3Y1-khND0GOEJiO5SPRquhYO9MDaAxaCt4HBZg09cRNNFuzrV6ZG2MHbRsccgiAOBJBafbDMZ0hQYXQ0BKFGwukJwwujxAYqvNXJDiO47LlnSdGAodTQ3Ta1-e0NLt1IM1X5SA5Ap3nJfT0QVDICmvvYuAXVM_O8CRs1rbIbnf08y0v3yG7jf3n-ExjY0Z9tCccLPTGQQuUsQhTnb_Lh7_xLuh8gu1pXzMkaEI5wMDWKn-0UotJbuf5F02m5FmS1IqtIfy5sQSH90QQogGkyJdfF_wk4CBZKommUwFJfG4arxIL-36s366QsTSEkN2KQjvXjWSYwQ9LHWl8lkko0qbyo8Ef8aIJ20MdT6Say8a_fkZ_ROsrnjGCtZZp0teoosuzYyrks5j8O17ShCgJBwjf9Ifovqnwsfe3h-9Figmb4c5W8dqsREhOtPMRcg_81IXZx9xmxePlod6sih16WCWV3fNfkZPDWh9hHDuJAsv_rKUOErn-wil31U6lPhqBGR2G5afhbTmwhfY4fhriaGGtzIPkiF5XatjEel2TNRI0NL4_fOpCHerD5m8gExPsu-KBCh3JlDaV6pH2THS6fIS_aycpImO7pmDfWm_QkoUHVGJ01iPYy3FcOLP4GWyQIASqGUULmBg5xoZDcpKzbcfqQJ1FANrGhy-hxkF5nNNxDYVJq7-SUcwbBN--CYIG6GsSNTT1KQY33eEej8tNHAzqDCMLF951Ta8rDaAj4Q-ARte_c_OWnrbQzWAsBZsFFuctsshU3jQW3wsZR7_gQQNQ-jd_upNUBcO-bQjEqXhMzm-FjliKSGp17PO-weoLbnUZfkaI0YYgkhL3CYeMyeLlOfLbRRBFmCXxO6iJ316PSulG10M3NBAjsc7sffX31am6uTMRtcV95rKjScZq1V6dKh2eUcQlD8x_xoMp7qwrBpcf-zfPE2HlbUXY6EQrYOISqUzx0RUw3mtL0cyE2eu6LcXShLXM9ZHVB4m8n-9Cif4J1eeS-ZnKJB7_uNS_Jr6QNWgDecFe5zDueS3HJYFHGOrjAkx1blwAuPahqVCOOepvS1kakGJskNdEhdKMhKgydhnE0PA3_8Bsl6Vi9ok7lQguvBmyn-rzINRPRE070H-lNdTCYt_9OG00WOVa1YsIV4B6InUlwp7B2IwDZllZpg9mgtTTW6kBvwFrrAP0tx7VYLoS3RZrRefeDxTMXynmu-tCYn8Cve982oL9CYV7zxW7qxuMzUA-tWfo3KOk-K8w3K0V4t7WeUOLCkDhvQfQdYVfLLBKrlT5fqhEmQKzAueuRjfCpELzVrRiJzawpzOWNoWhS4AaQ-X-kUzGleiu9qEJc9TXiYzLlmqPHVO5PmFqn6_VnPl583q7AFzUD_77LbBsCFLXyNX-mBnjI9slAfgfkA3eWOP4MaZqgBwiwIjgqTgFaZGCl2V-fVG6_C8meNpnuCRqqlL08C1m6fvLyZgIBW_BrSiyoqAsv1T9WTq2e5jomw4FvYjSbAXJpFZ0Wn5Q9hoAJ8JrEIRq8YwLFJf7t-rQsoMmsVuqpZJsmbXrsWnMNGOIt9NTI35cu80vQGt0jF-KmI-ZOFEIZitR5G_Adbu-UIFDc4Maykh8TsHLFjIlv2Fnk1dU_3cl5Jz4oWidOPUtDAaiHtmAAotECaMsaT6q-hhgsYLGxhmDQQhJqlwCLxZdKEbx9v7V1-ZKzRjCXQ1eCd8Bfz2qQm7kfkIcrmXcqkB88TIdQantQPUESjAJL82BVGJs6d3QloOE6qr-0MNjHJXMaY11-oqcNtDs4x_RgJXUJgkMPMMqQXSPVEWt3byXQ8FniUe6KonyEP6J5673NLJARJF_Uxi8ifqETRIcI5zeXKKGB1Ft6YRHQ0fFsQTylhvsAclmHB-85EDvaAuWueN1zVfy6YaprXm3T7JoThQHeigYY6duiJJwC66WsY4im57poCBqgF5jNTlPp4FqRtB4gUrrEUn4SHfz_xre-1aFfcmX8bxY7Xkh6wn6NbteNcjX1-_whW1rvmv6DdVtCeNY9W6TElSI77rzhDa0u81aDZO7iEVWcMbqZdhLxJMuTIeh7p5xaZhBUAUDpyQ3ikUqr_mq_V8znT6fRsbYrFUjyBLnL57yWuH5LSu_rB51YOwLlb1GG6yQym75ejiQSdYBnN9fyOtZTteEaI9TnRlh2f0LQOQoIbqJpDrdXmqX5TvtU3Fj9ATNVWnKpCVBXAlhLUMn_SWmzn-JU0wrYQdtAspF3czoVUtwlbKjWbtCz-Odq4IneAnAA_xKosG3GZL1aLdCTOMIWwMdXjX6o8qLjwvTg2a8XCbj8gMSkTws7aOxGP9bmgzmv3LM9VkaqOAFF73UU_YlaUW6jarvBO6E4derULvYK3i-Y8AiJ4maZYXmMPz0TnIHg-MA3DRqvzKqFls1iFvTsKRFo9GdvomUo1QJ6_bgldg-OLB4in1I_FIbVufKhbSkJN9n7FRkeUJxTGYL730kFgOpkYShH_BZ2Tt-_nFfG-yFfUMS3oykmY01t1nuOJiXQJrhC8dYC0lD24y6bypp5-duWIeq6Nh5Tn7JOAmqMrJC8iQdkVkWlx1gJXfjN36eBQrTeeDl3bAMp9I9LNsbaYv1VnYO-LrLM7kpzb-Ilx6030Oj44X-nDxjB7UyfmzmarI77_p4UuE8GmeiJuIGwyx2VAbPWtVNoz0bKODNt-glH8NkuULc57eg_TOZ-PsCQp0Z7PO4g-xJZbGiCkvSO_9azCou0GQCTw6LJCNin9HV5OQK4z_42KRoTssd4se_ugYkT6mUx0D51vftFhYTRzfhwosljxMV-ls1A_8zP9W_dSgcwgneSYnGnN2BmnRs6hYXFUzxiixoVU5oGA3uVKKHijr5tRDJgM69r14WEgeNSH3ZbQ13bGTTgKnjfqhWlv9JLEv-aaU7lfHWV-x5RhiIUc-Y5E5HJs7UtwdH8dXMG3LfgzuSlJZXWT1LfTwek-BIg1SbNP1hGwA8N-ft9R83RPAd5JdaedB2ewPSbyiG-hD7gV1LsSBMA8-pWlg3A2XAJT2ujb5-WMlH71W4ScWPU1uHQ3CmDH9rR3EBp0qA84UMr6jEirIzkL_cLNAq7ilP5Uo95w6q2Vho_aFNeW0niz7chqlx19ABZ5ZmNlU3ZHKxWt7ApSfSQhTOcjZE7cw8XLy4JvI0-7pnP3J8MgVh3VfE5yHZi0TXmZPgDMG5A7kvF5AyV1by6TIs9MYrRqDpgYGvlQ4-dhGsI1TfixocTJmZ1quuTRJo8YUmaSFXY3Dn_iP4mM34xd5VOtpOdudjWANaDRQJusIP69eGAK1cCQu-M-j1IXIHCdNSmSfTFqFmqKQGhUSI2vbbo_T5xLSix-77nprQleuff1RYUKQVXNjgf7EoaVwGehcMc52lJH71wP4o8QpJfnqH2eaqgtu-Fbxb2tWQ-nfDx7wB_FmLO8qs6xsIy7KjXKjTTBcAffidvx0-2uFLkWFzZpmDd49XbpMlS-Mvu4v-IJU3K4Gt7jFBNaDAudFGCIo212Fx1tkEY-tc5-vAnNKUYAFISlYvqGnnRP8nhmXdEWuphndDeAItRAaTaX3ufUk-2hr9TcayTWJDCYSBcIUFMwZkTSNxtYBJc_bM-2CoCAhCLXXOHdMQgq5wTHFhXGcF85Gsb3Jp6t5uhVZpyPGbobLaVbt3qsYkfQf4RTbBuSmxLxoPWCkVeDw2bDiyUaO9xjXW2ex7d5h4gzJJly7fLRBukcejgTEJRQSCquF4d-CL3kC7PFm0-qTMNNaCaj0lkvEZTpFygW6-4wtmUXbaeT0OgJL9Q-3exo5nI9NLD7Tq8otnyC7D5XJ4-KMRNp3ue6yKsOq3AK8mCMMpLDe5hqyr5AZm0TiHEhokbz7UG6qTPMnanieMCWbe0GTymgIQWgXBeSKCnRNifqqi4_4P2IQnpXLO2P3cx_rWpXcHTm4dL_ob2yY3QKt-O5lWFBqoTrKao8IhbKnOn2DptSIahRAzXEnKoBYKz8mEWFL_t-Y8xJH8BvlRcMIbH1zL2mK445_qzQa8F7F7pvTrdxXR50Qr5ANQ0pnmDqgcgSwOwc5FUuyy2UOe2vZPQzDaNL0d17YkZCC3-wNjOTLitILAI2bKKqzuNfxDw6amsUSfGzjMU2sKZCUfUmsLUVSvcQKdiExkF7fZJJcQMX-6B6VoOP_uui2O3Ypcas12zdRK34Y0XK2mAz05CJXS01GrrS5VYlKozaivV4hthPSU3VlBGzltTFAQgNQrbGrEmPurRaPuozndzZAq2L5cwpiS-h-WAwfhL8vVynmA6d10euDdNDlve5rGBYc4nEGejNKhYfgZcf0bg5MZbDfsQXhXzm9vUFddP4LUy-z10fnSF6HnnnbkJskuLzXBQSnSaVhd2FAMf5OdjctEKO4_V0yoT9Sqsq1XnE3NyoweXexsZle1Jzo8WLemNVt7fe524lkuGrDCerel2iAe39U9xL8drU8x0zFbmL0A4Xu0QwnmNWykZRxbFMDzz9J7gb1Cdf9sHQR4-wF0n6wBdkNNXLjqmvPJVfCknQIkyPrw0PVC8WJ8A_nuYSu41RhI6gYtMpMz2sDtTUPL6PFpRvGJ3GTxt6-lFNGnBtZ--1J3NTYYemBzaHkzDTTbB_oBFu629B88Bob51W_JPrB1zcYLxdfK_j90PfwX43ZT-Fz4a9jahe2M0ptfoabl6Q24aa3dxuUd90XWKIMHWwVxBjrzdDMqqqHNb3pCUq3ehcVYxgOxNHQOTtUi1V_q9es30883X9q4WpE_BnmFhEDBDVuyasjQq8QBnND0EciFcu4s8eVR5ebYb6HYS02i6PSqQSkKjUaCXnSYvcajxKPVxT3Hj1hdkr51iQ8Qg2kxGTzT4GD0yjqAYWf11mVhg7XaoUqJHTPVFMK3DzEGDJbf-CzDCpm7cTvfKPou-p49-kYRw501e8s30OlqlZS4c_KzYScUjLAxBtqlE8eIFVO1n9JTVXlqJnCo8wIlDiQWRD4hsc15ZIFgRI39yJTPHRi9UynXbfJ0HfCVRVW5Q_YwFYCPYEMchHw8M9_ICo2McUhgLCggj7TC42BHnPpFtQAbMhLII0_fe8laOeB1sDXlE_gfDiv_hOFTfE_quTFAiTQTxI2DFzUsVYpTbRo65P4mPkKYZCJPyxShJc1yW6eTqsA_0RvmlWKph2NB4Kx-Qy7paoONDLqyzDp7y6gmFG1RYPdwvmQSPXsiyVOaUnRUKr4XFWR1H4bKmfqElUKrSeuklS2gLvWuBCX-QwW2njV6iWoEMxRmH-OPBNt_2k6SZVlord4yMKX4rJPUDy0kPugvStdwdwexIH_7EflhwWvqImoVl4TH___meBPUQBLkH7QdKNX5QvWxpbBkB3hz-w-KvNz3D-TD0WDjCASXy9acY8qTbP4_w2lKhJvBe95nCVWmzs0eD3TbFTL0GIdwYoYqQKT4bjqAZnppFMOSJ77B5-9XfZZ4TJHbS9D5W4K0yB9LodZJ7V0AQkGyMB9gcjxNL1GxvaXoG6W9IIw5jH9Qsyepodm4CDvd4BVCNfmv6PQ6_-VaKXHs5Wei66ABhGNhh3_khPkgxa37Du6vFPgB1dahrHnFBv5OZSUqgiOB7Gc6GpmVrGX4n8uK18iexePbMAw6T7s6kOK9I7ByJQnjq5ip9ss7DtJmHV3bql4bmeKjK0zysbDcwKWGneUZAlYXRptzFKe9ceO3P2kp8-40PP4lsZ7b_DiS-s9zbtmI7F_OhcmNVALy8cr2ZPvDftHFTqt0EfLKvDBu2XLADqo2JDcqieDgsOPjQN31Pqu4hocIewwJbidOhid3iff-G14iXnHQKntunD9ck-m2B3HZ78mgQOIARpLnnGSQzvrCgAfbPQJ-Rzo23A8Q6ErQOSZPYIlEjH-1CMzNAYnGkTP2H2ybDqS542dgk7_TFLfaqk-ywXNL9ahyOndavkuO4V7PKpHaDMqBLn5VRil73VIywFX3htZL_t__npiyNAwANdPmiivbMmdnBYAQ74kzI3Dq9FFkJLrzU5MQ1qJXLC0zfhQ6GjgZ-G9a_5b_aeNRoC3tX4Yh-lm0gwn2WxQuJ3rpkHH72M4oWQBvQ1Izi-4OnrAlDUiiv4urIXJbLK4AD6_ZYRhF3OxMsD3DfK5srN4czHbw4BtbE_o6vDDhaSvsaqK7daz1b2p7uWSSoIYg901NAZ_oJ1porPFrTjP8p4VKYAPeFJ0ke1rl3-nIuMi5P7uyQg9OWIpJRfeZXOkZ_Ye-hBtc-wcIQY6tV-KWSrxU6W33Gx5TP0amINHaSpzONLlqv1foA75mV7uz5b0hQfX6fhO9XXQpxuZna0drOx9d6Jyo5K0qIFkrBK2FlDEiqPc1Qr06QQv26TL8OU8tcQ8kFKaDkWLCaUBZEbjPnqcOKwWumImSgvVlso_PG4APKmMKqSA6f9X9bksbdUW4CFmuWVEj1fHXm9HG-OkjOx8XpbSKtAmX-vbpBnjXUQ1NnskiXJgvEi3-XiQ9_ozEEBjnFoXDSEjrtay-o9aWIRflf2p_QLckLrd5cLstaB7bfiZ-70Fd-WOECwciESOGXMVbF6BKUB6ia4ew1u9144W61zVaNQ1aCEmHXcjgnMMm3GyfVVlMR5H1bvfmf5ZWYxhGtgASnFoJHWvw17vRlJYAnjZ9zFwTQvnhUWYKpAoVDPnQcBW6EjhK-wI4IGVEBEaeswm5EEgpn2OeV9YzV1WNshpPGoHX8Gcja0HE3b7BuFNX-lnifVnP4vU5hNUK04oyHlpyjVR5aFR0tpF-O6YSNWVEKh9OWrua-jKAWmyuhVSIfBoWYYsRfNnVSG1gug5DujawU8wWrrW22XCmJDJdfCcZGeb4-cCfrf_ONdiWmCxvIdFNyewJgqoXtZH722aXjPc0ws2W04VkTGqO_Ong4f4qnoqcdXUJApE3ss5eyMjZHVD8LM3wBUOIcg8S2UVgXl6b3Zzcm161Fi5va0jH6UizbFi-3gUjNrWmP8jExJKvCLwjERw57nqppNlkx-aNV4FTcS6Xb8A3n-cX0RbJj-O4C5Rn6geYWkVbrZbYZlM4oSqKlcEz5rT0dlpaMAwVx9zrTV8AlZwjXi6tpYPXS7TqJOEentSbP-pTHjBYNduFgmLHWXU8ymecW4WJBjSN0hsw6HejFbFNnEwPxLB55pe1NunIhDsLC0GtOoBNv6RbbuiPGFhBCLWnqWb5HC_lYPNDeTj4P5oACf2nT734XbXNAsNEjxdou3h3LFQ2T2KKkZULOqOhdCtCUQJcKLFWahkFCw03Gr9k65NVvyYM33YxX0Kdvqqf2qgJWvHWiZllATYOJbUgirSnz26avg5-bFgdXDJB5-yfvzFyz5pqeP82npsanYfshqynLMbSccWfDZqblz-Ir7JG1JhN4wEX40nUWfmAn5RTOfkFYCiug9rRgAV30R0MQzk7EQ775PjDze5FlAHGwN1GCuMLZ1HOZtoFJMwirQOfahoP4x1NRPlc0SPOG0wnjDWoIMRYbXHrXWe9sjap9DhinpIpbAhvJSCLVz0Ga9VYmp_ERZQ5J7VxOSg415o0X0-1V78JNeazkYzs09iInHTEVffj_OFe3Crn5aNBVefO-dFmz1CeVN9nhqfuAAVSvROq5Rv5AAq49HIR811-mIBOCZH7ghxU3Y7p9FxJgeZ9gpQXOPnLZK-eLchIWbmeaX2rAWQOpXrvC8ifiCiJ1fSKSOk8CaqpQIIK3of80ZDQQwatdKOZfc6dIIT_OrAA-dYNi6xHKCX0gx7aK_FkChHqWothsU0-js1mRaLaZ6GjbOZ904tY1dhReb5ammbWMLkk4LUxKTik3qouDrnX9XBpf_hKpRh_q5olfDIOxNJO3KReCfaaJi56VkwyZWXgRvEX4DVHazoFZrVAHMVBFnNcAaMGRN2GzEJByXWheFucTNnwSTv6kxckqHVT9I_IsPNDYGSxkY3uKdouHI_DIZPmHU4-XrN0G1POcRSSSZGwWTnNhwDhE7k2P9zuHzYl0xtAge_R7fL76erk-X-RDE93V1O5WXhGqxfmB0vVjmKeZ83o41ZNhSL-M0Opqv8pIYjLhkRcw0X12hgZBWaeSgUeReTVvzq_NEgrmb1yLTJDvQDIUiVYOjiHSCIMAWcxWjPg6BzEp8hXfLGIe_K2vCYGxaoarJrlSMV7Fak0jYwptcExzFzD5vR-8FoX1hVsqxz__KlMIPfz4MOGMs4RvHNJwYdWjEh5T_kcrbUck9rpLMTHtCYvlRkE0MYOnqhA";if(!e)return null;if(zn&&zn.sealed===e)return zn;let t=null;try{t=Js.parse(JSON.parse(yr(e,b0)))}catch{t=null}return zn={sealed:e,bundle:t},zn}function Yt(){let e=Iu();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Ws(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function _0(){let e=Iu();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>ce(t.slug))),e.keys):null}function Xt(e,t=!1){if(t||!e||e.length===0){let n=_0();return n?new Set(n):null}return new Set(e.map(n=>k0.test(n)?n:ce(n)))}var b0,k0,zn,Qt=b(()=>{"use strict";Zs();Xe();Pn();b0="tokmizer-default-rules-v1",k0=/^[0-9a-f]{16}$/,zn=null});function Ro(e){Pu=e}async function w0(e,t){let n=await el();if(n.size>0)return Jt(e,n.values(),t,n);let r=Yt();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function T0(e,t,n){let r=Rr(e,{...t,keep_failures:!0,fold_passing:!1,mask_abs_paths:!1,transform:void 0,truncate_lines_at:void 0,max_lines:void 0,on_empty:void 0},{verbosity:"normal",smartCode:!1});if(r.trim().length===0)return Ne(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
78
78
|
`)?`
|
|
79
79
|
`:"";return vr((s?r.slice(0,-1):r).split(`
|
|
80
80
|
`)).join(`
|
|
81
|
-
`)+s}async function
|
|
81
|
+
`)+s}async function Qe(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=Be(uu(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&x0.test(wo(u)??u)),f=ou(a??Pu??w0),d=null;for(let P of cu(e))if(d=await f(P,n),d)break;!d&&s>=S0&&!_o.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=Bn(e.startsWith("bash-tool: ")?e.slice(11):e),y=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(Be(p)),g=o==null&&(y?/^(?:fatal|error):/im.test(Ne(t)):iu(t)),m=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
|
|
82
82
|
`)?t.slice(0,-1):t).split(`
|
|
83
|
-
`).length<=60,_=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Be(p)),w=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,E=d?.slug==="read-tool"&&s<
|
|
83
|
+
`).length<=60,_=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(Be(p)),w=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,E=d?.slug==="read-tool"&&s<v0;if(!i&&(w||E||_||m&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||g,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(c||g)&&Ru.test(u)){let P=Cu(t,l.verbosity??"normal"),J=P===null?s:Buffer.byteLength(P,"utf8");if(P!==null&&J<s)return{output:P,filterId:d.slug,rawBytes:s,filteredBytes:J,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(c||g)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||g,...i?{droppedTail:null}:{}};let R=P=>{if(!i)return P.output!==t&&!P.droppedTail?{...P,droppedTail:t}:P;let J=P.filteredBytes>s||s>0&&P.output.length===0?t:P.output,H=!P.debugBypass&&!d?.preserve_exact?vo(J,"minimal",P.filterId??""):J,z=So(H)===H?H:So(J);return{...P,output:z,filteredBytes:Buffer.byteLength(z,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!c&&!g&&!wu(e)){let P=xu(t);if(P!==null)return R({output:P,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(P,"utf8"),debugBypass:!1,droppedTail:null})}if(c||g){let P=i?Rr(t,{...d,keep_failures:!0,transform:void 0,max_lines:void 0,truncate_lines_at:void 0,on_empty:void 0},{verbosity:"minimal",smartCode:!1}):d.strip_on_failure&&!d.preserve_exact?T0(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?Ne(t):t;!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact&&(P=go(d.transform,P.split(`
|
|
84
84
|
`),e).join(`
|
|
85
|
-
`)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(
|
|
85
|
+
`)),!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(P=ku(P)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(P)&&/^={3,} FAILURES ={3,}\r?$/m.test(P)&&(P=P.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let J=!i&&!d.preserve_exact&&s>=E0?bl(P.split(`
|
|
86
86
|
`)).join(`
|
|
87
|
-
`):
|
|
88
|
-
`)?`${
|
|
89
|
-
`:
|
|
90
|
-
`),n=[];for(let r of t){if(
|
|
91
|
-
`)}function Mr(e){let t=e;for(let[n,r]of
|
|
92
|
-
`,{mode:384}),
|
|
93
|
-
`).filter(u=>u.trim()!==""),o=s.length,i=0;for(;o>0;){let u=Buffer.byteLength(s[o-1])+1;if(i+u>n)break;i+=u,o-=1}let a=
|
|
87
|
+
`):P,H=J.length<P.length;return R({output:J,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(J,"utf8"),debugBypass:!0,...H?{droppedTail:t}:{}})}let $={...l,cmd:e,exitCode:o},{text:F,droppedTail:N}=yo(t,d,i?{...$,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:$),M=!i&&!d.preserve_exact?vo(F,l.verbosity,d.slug):F,W=d.on_empty&&M===d.on_empty&&!M.endsWith(`
|
|
88
|
+
`)?`${M}
|
|
89
|
+
`:M,ne=Buffer.byteLength(W,"utf8"),q=W.trim().length===0&&t.trim().length>0&&(o!=null&&o!==0||ho(e));return t.trim().length>0&&(ne>=s||q)?R({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):R({output:W,filterId:d.slug,rawBytes:s,filteredBytes:ne,debugBypass:!1,droppedTail:N})}var Pu,x0,S0,E0,v0,Un=b(()=>{"use strict";tl();gr();ko();bo();au();xo();du();Fn();Tr();bu();_u();Tr();Su();Ou();Qt();Pu=null;x0=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,S0=2048,E0=2048,v0=32*1024});import R0 from"node:os";import{join as Zn}from"node:path";import{existsSync as A0,statSync as $0,lstatSync as Nu,unlinkSync as C0,mkdirSync as O0,chmodSync as I0}from"node:fs";import{createHash as P0}from"node:crypto";function N0(e){let t=P0("sha256").update(v()).digest("hex").slice(0,8),n=Zn(R0.tmpdir(),`tkr-${e}-${t}`),r=Zn(n,"d.sock");if(Buffer.byteLength(r)>Ao)throw new Error("Temporary directory path is too long for IPC");return Du(n,e),r}function D0(e,t){try{let n=Nu(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function Du(e,t){O0(e,{recursive:!0,mode:448});let n=Nu(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");I0(e,448)}function Rt(){if(process.platform==="win32")return{path:`\\\\.\\pipe\\tokmizer-${process.env.USERNAME??"tokmizer"}`,isPipe:!0};let e=typeof process.getuid=="function"?process.getuid():0,t=process.env.XDG_RUNTIME_DIR;if(t&&D0(t,e)){let s=Zn(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=Ao)return{path:s,isPipe:!1}}let n=Zn(v(),"run"),r=Zn(n,"daemon.sock");return Buffer.byteLength(r)>Ao?{path:N0(e),isPipe:!1}:(Du(n,e),{path:r,isPipe:!1})}async function $o(){let{path:e,isPipe:t}=Rt();if(t||!A0(e))return;try{if(!$0(e).isSocket())return}catch{return}let n=await import("node:net");if(!await new Promise(s=>{let o=n.createConnection(e),i=a=>{o.removeAllListeners();try{o.destroy()}catch{}s(a)};o.once("connect",()=>i(!0)),o.once("error",a=>{let l=a.code;i(l!=="ECONNREFUSED"&&l!=="ENOENT")}),setTimeout(()=>i(!0),250)}))try{C0(e)}catch{}}var Ao,UC,Co=b(()=>{"use strict";Z();Ao=100;UC=5*6e4});import{readFileSync as M0}from"node:fs";import{join as L0}from"node:path";function de(){try{return M0(L0(v(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var Jn=b(()=>{"use strict";Z()});var Hu=ue((VC,ju)=>{ju.exports=Fu;Fu.sync=j0;var Mu=Ge("fs");function F0(e,t){var n=t.pathExt!==void 0?t.pathExt:process.env.PATHEXT;if(!n||(n=n.split(";"),n.indexOf("")!==-1))return!0;for(var r=0;r<n.length;r++){var s=n[r].toLowerCase();if(s&&e.substr(-s.length).toLowerCase()===s)return!0}return!1}function Lu(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:F0(t,n)}function Fu(e,t,n){Mu.stat(e,function(r,s){n(r,r?!1:Lu(s,e,t))})}function j0(e,t){return Lu(Mu.statSync(e),e,t)}});var Ju=ue((qC,Zu)=>{Zu.exports=zu;zu.sync=H0;var Bu=Ge("fs");function zu(e,t,n){Bu.stat(e,function(r,s){n(r,r?!1:Uu(s,t))})}function H0(e,t){return Uu(Bu.statSync(e),t)}function Uu(e,t){return e.isFile()&&B0(e,t)}function B0(e,t){var n=e.mode,r=e.uid,s=e.gid,o=t.uid!==void 0?t.uid:process.getuid&&process.getuid(),i=t.gid!==void 0?t.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),u=parseInt("001",8),c=a|l,f=n&u||n&l&&s===i||n&a&&r===o||n&c&&o===0;return f}});var Wu=ue((XC,Gu)=>{var YC=Ge("fs"),Nr;process.platform==="win32"||global.TESTING_WINDOWS?Nr=Hu():Nr=Ju();Gu.exports=Oo;Oo.sync=z0;function Oo(e,t,n){if(typeof t=="function"&&(n=t,t={}),!n){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,s){Oo(e,t||{},function(o,i){o?s(o):r(i)})})}Nr(e,t||{},function(r,s){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,s=!1),n(r,s)})}function z0(e,t){try{return Nr.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var ec=ue((QC,Qu)=>{var en=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",Ku=Ge("path"),U0=en?";":":",Vu=Wu(),qu=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Yu=(e,t)=>{let n=t.colon||U0,r=e.match(/\//)||en&&e.match(/\\/)?[""]:[...en?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],s=en?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=en?s.split(n):[""];return en&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:s}},Xu=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:s,pathExtExe:o}=Yu(e,t),i=[],a=u=>new Promise((c,f)=>{if(u===r.length)return t.all&&i.length?c(i):f(qu(e));let d=r[u],p=/^".*"$/.test(d)?d.slice(1,-1):d,y=Ku.join(p,e),g=!p&&/^\.[\\\/]/.test(e)?e.slice(0,2)+y:y;c(l(g,u,0))}),l=(u,c,f)=>new Promise((d,p)=>{if(f===s.length)return d(a(c+1));let y=s[f];Vu(u+y,{pathExt:o},(g,m)=>{if(!g&&m)if(t.all)i.push(u+y);else return d(u+y);return d(l(u,c,f+1))})});return n?a(0).then(u=>n(null,u),n):a(0)},Z0=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:s}=Yu(e,t),o=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,u=Ku.join(l,e),c=!l&&/^\.[\\\/]/.test(e)?e.slice(0,2)+u:u;for(let f=0;f<r.length;f++){let d=c+r[f];try{if(Vu.sync(d,{pathExt:s}))if(t.all)o.push(d);else return d}catch{}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw qu(e)};Qu.exports=Xu;Xu.sync=Z0});var nc=ue((eO,Io)=>{"use strict";var tc=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};Io.exports=tc;Io.exports.default=tc});var ic=ue((tO,oc)=>{"use strict";var rc=Ge("path"),J0=ec(),G0=nc();function sc(e,t){let n=e.options.env||process.env,r=process.cwd(),s=e.options.cwd!=null,o=s&&process.chdir!==void 0&&!process.chdir.disabled;if(o)try{process.chdir(e.options.cwd)}catch{}let i;try{i=J0.sync(e.command,{path:n[G0({env:n})],pathExt:t?rc.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return i&&(i=rc.resolve(s?e.options.cwd:"",i)),i}function W0(e){return sc(e)||sc(e,!0)}oc.exports=W0});var ac=ue((nO,No)=>{"use strict";var Po=/([()\][%!^"`<>&|;, *?])/g;function K0(e){return e=e.replace(Po,"^$1"),e}function V0(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Po,"^$1"),t&&(e=e.replace(Po,"^$1")),e}No.exports.command=K0;No.exports.argument=V0});var uc=ue((rO,lc)=>{"use strict";lc.exports=/^#!(.*)/});var fc=ue((sO,cc)=>{"use strict";var q0=uc();cc.exports=(e="")=>{let t=e.match(q0);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),s=n.split("/").pop();return s==="env"?r:r?`${s} ${r}`:s}});var pc=ue((oO,dc)=>{"use strict";var Do=Ge("fs"),Y0=fc();function X0(e){let n=Buffer.alloc(150),r;try{r=Do.openSync(e,"r"),Do.readSync(r,n,0,150,0),Do.closeSync(r)}catch{}return Y0(n.toString())}dc.exports=X0});var yc=ue((iO,gc)=>{"use strict";var Q0=Ge("path"),mc=ic(),hc=ac(),ek=pc(),tk=process.platform==="win32",nk=/\.(?:com|exe)$/i,rk=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function sk(e){e.file=mc(e);let t=e.file&&ek(e.file);return t?(e.args.unshift(e.file),e.command=t,mc(e)):e.file}function ok(e){if(!tk)return e;let t=sk(e),n=!nk.test(t);if(e.options.forceShell||n){let r=rk.test(t);e.command=Q0.normalize(e.command),e.command=hc.command(e.command),e.args=e.args.map(o=>hc.argument(o,r));let s=[e.command].concat(e.args).join(" ");e.args=["/d","/s","/c",`"${s}"`],e.command=process.env.comspec||"cmd.exe",e.options.windowsVerbatimArguments=!0}return e}function ik(e,t,n){t&&!Array.isArray(t)&&(n=t,t=null),t=t?t.slice(0):[],n=Object.assign({},n);let r={command:e,args:t,options:n,file:void 0,original:{command:e,args:t}};return n.shell?r:ok(r)}gc.exports=ik});var _c=ue((aO,kc)=>{"use strict";var Mo=process.platform==="win32";function Lo(e,t){return Object.assign(new Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args})}function ak(e,t){if(!Mo)return;let n=e.emit;e.emit=function(r,s){if(r==="exit"){let o=bc(s,t);if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function bc(e,t){return Mo&&e===1&&!t.file?Lo(t.original,"spawn"):null}function lk(e,t){return Mo&&e===1&&!t.file?Lo(t.original,"spawnSync"):null}kc.exports={hookChildProcess:ak,verifyENOENT:bc,verifyENOENTSync:lk,notFoundError:Lo}});var Sc=ue((lO,tn)=>{"use strict";var wc=Ge("child_process"),Fo=yc(),jo=_c();function xc(e,t,n){let r=Fo(e,t,n),s=wc.spawn(r.command,r.args,r.options);return jo.hookChildProcess(s,r),s}function uk(e,t,n){let r=Fo(e,t,n),s=wc.spawnSync(r.command,r.args,r.options);return s.error=s.error||jo.verifyENOENTSync(s.status,r),s}tn.exports=xc;tn.exports.spawn=xc;tn.exports.sync=uk;tn.exports._parse=Fo;tn.exports._enoent=jo});import{statSync as ck}from"node:fs";import{extname as fk,join as dk,resolve as Ec,win32 as vc}from"node:path";function pk(e){try{return ck(e).isFile()}catch{return!1}}function Tc(e,t,n=process.cwd(),r=process.platform){if(r!=="win32"||/[\\/:]/.test(e))return e;let s=Ec(n).toLowerCase(),o=(t.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean),i=fk(e)?["",...o]:o;for(let a of(t.Path??t.PATH??"").split(";")){let l=a.trim().replace(/^"(.*)"$/,"$1");if(!(!l||!vc.isAbsolute(l)||Ec(l).toLowerCase()===s))for(let u of i){let c=dk(l,`${e}${u.toLowerCase()}`);if(pk(c))return c}}return vc.join(t.SystemRoot||"C:\\Windows","tkr-not-on-path",e)}var Rc=b(()=>{"use strict"});function mk(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Dr(e,t=Date.now()){let n=e.lastHeartbeatOkAt;return typeof n=="number"&&t-n>mk()}var Ho=b(()=>{"use strict"});function At(e){let t=e;for(let[n,r]of hk)t=t.replace(n,r);return t}function kk(e){if(!e.includes("PRIVATE KEY-----"))return e;let t=e.split(`
|
|
90
|
+
`),n=[];for(let r of t){if(yk.test(r)){let s=n.length;for(;s>0&&bk.test(n[s-1]);)s-=1;if(s<n.length){n.length=s,n.push(`${Ae}${r}`);continue}}n.push(r)}return n.join(`
|
|
91
|
+
`)}function Mr(e){let t=e;for(let[n,r]of gk)t=t.replace(n,r);return kk(t)}var hk,Ae,gk,yk,bk,Gn=b(()=>{"use strict";hk=[[/(\baws_(?:secret_access_key|session_token|access_key_id)\s+)\S+/gi,"$1[REDACTED]"],[/(\bsshpass\b[^;&|\n]{0,200}?\s-p\s*)\S+/g,"$1[REDACTED]"],[/(\bredis-cli\b[^;&|\n]{0,200}?\s(?:-a|--pass)\s+)\S+/g,"$1[REDACTED]"],[/(\bopenssl\b[^;&|\n]{0,200}?\s-k\s+)\S+/g,"$1[REDACTED]"],[/(\s-pass(?:in|out)?\s+(?:pass|env|file):)\S+/g,"$1[REDACTED]"],[/(https?:\/\/hooks\.slack\.com\/(?:services|workflows|triggers)\/)\S+/gi,"$1[REDACTED]"],[/(authorization\s*:\s*)([A-Za-z][A-Za-z0-9._-]*)\s+[^\s'"]+/gi,"$1$2 [REDACTED]"],[/(authorization\s*:\s*)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/(bearer\s+)[A-Za-z0-9._\-+/=]{8,}/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-b|--cookie)[=\s]+['"]?)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'";=]+=[^\s'";]+(?:\s*;\s*[^\s'";=]+=[^\s'";]+)*/gi,"$1[REDACTED]"],[/(--?(?:password|passwd|passphrase|apipass|pass|pwd|token|api[-_]?key|secret|bearer|cookie|jwt)(?:-[a-z0-9]+)*[=\s]+)\S+/gi,"$1[REDACTED]"],[/((?:^|\s)-b[=\s]?['"]?)[^\s'"=]+=[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*:)(\/[^/\s'"][^\s'"]*|[^\s/'"0-9][^\s'"]*|[0-9][^\s'"]*[^\s'"0-9][^\s'"]*)/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?[^\s:/'"]*[^\s:/'"0-9][^\s:/'"]*:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:^|\s)(?:-u[=\s]?|(?:--user|-a)[=\s])['"]?:)(?:\/[^/\s'"]|[^\s/'"])[^\s'"]*/gi,"$1[REDACTED]"],[/((?:[A-Za-z0-9]+-){0,8}(?:X-Api-Key|Private-Token|[A-Za-z0-9]+-(?:Token|Key|Auth|Secret))\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/((?:^|[\s'"])(?:Set-)?Cookie\s*:\s*)[^\s'"]+/gi,"$1[REDACTED]"],[/(-i\s+)(\/[^\s]+|~\/[^\s]+|[A-Z]:\\[^\s]+)/g,"$1[REDACTED]"],[/([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^:/\s@]*:)[^\s@]+(@[^@/\s]+)/g,"$1[REDACTED]$2"],[/(AWS_(?:ACCESS_KEY_ID|SECRET_ACCESS_KEY|SESSION_TOKEN)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(GOOGLE_APPLICATION_CREDENTIALS\s*=\s*)\S+/g,"$1[REDACTED]"],[/(AZURE_(?:CLIENT_SECRET|TENANT_ID|CLIENT_ID)\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-(?:proj-)?[A-Za-z0-9_-]{20,})/g,"sk-[REDACTED]"],[/\b(OPENAI_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(ANTHROPIC_API_KEY\s*=\s*)\S+/g,"$1[REDACTED]"],[/(sk-ant-[A-Za-z0-9_-]{20,})/g,"sk-ant-[REDACTED]"],[/\b(GH(?:_|ITHUB_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(GITLAB_TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/\b(SLACK_(?:BOT_)?TOKEN\s*=\s*)\S+/g,"$1[REDACTED]"],[/(xox[bpsoa]-[A-Za-z0-9-]{10,})/g,"xox[REDACTED]"],[/(xapp-[A-Za-z0-9-]{10,})/g,"[REDACTED]"],[/(sk_(?:test|live)_[A-Za-z0-9]{16,})/g,"sk_[REDACTED]"],[/(gh[a-z])_[A-Za-z0-9]{20,}/g,"$1_[REDACTED]"],[/(github_pat)_[A-Za-z0-9_]{20,}/g,"$1_[REDACTED]"],[/(gl(?:pat|rt|soat|imt|dt|ft|agent|oas|cbt|ptt))-[A-Za-z0-9_-]{16,}/g,"$1-[REDACTED]"],[/(npm_[A-Za-z0-9_-]{20,})/g,"npm_[REDACTED]"],[/(?:AKIA|ASIA|AGPA|AIDA|AROA|ANPA)[0-9A-Z]{16,}/g,"[REDACTED_AWS_KEY]"],[/AIza[A-Za-z0-9_-]{35}/g,"[REDACTED_GOOGLE_KEY]"],[/hv[sb]\.[A-Za-z0-9_-]{20,}/g,"[REDACTED_VAULT_TOKEN]"],[/dop_v1_[A-Za-z0-9]{40,}/g,"[REDACTED]"],[/dckr_pat_[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/pypi-[A-Za-z0-9_-]{16,}/g,"[REDACTED]"],[/rk_(?:live|test)_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/whsec_[A-Za-z0-9]{16,}/g,"[REDACTED]"],[/SG\.[A-Za-z0-9_-]{20,}\.[A-Za-z0-9_-]{20,}/g,"[REDACTED]"],[/(eyJ[A-Za-z0-9_-]{6,}(?:\.[A-Za-z0-9_-]{4,}){1,2})/g,"[REDACTED_JWT]"],[/-----BEGIN [A-Z ]*PRIVATE KEY-----(?:[\s\S]*?-----END[^\n]*-----|\r?\n[A-Za-z0-9+/=][A-Za-z0-9+/=\r\n]*)?/g,"[REDACTED_PEM]"],[/\b((?:--?)?[A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|AUTH|_PWD)[A-Za-z0-9_]*['"]?\s*=\s*)(?:"[^"]*"|'[^']*'|[^"'\s]\S*)/gi,"$1[REDACTED]"],[/\b([A-Za-z0-9_]*(?:TOKEN|SECRET|PASSWORD|PASSWD|PASS|APIKEY|KEY|CRED|CREDS|CREDENTIAL|CREDENTIALS|_PWD)[A-Za-z0-9_]*['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/((?:^|[\s'"{,])['"]?(?:[A-Za-z0-9_]+_)?auth['"]?\s*:\s*)(?:"[^"]*"|'[^']*'|[^\s'",}]+)/gi,"$1[REDACTED]"],[/(\bpwd\s*[=:]\s*)(?:"[^"]*"|'[^']*'|[^/~\s][^\s;'"]*)/gi,"$1[REDACTED]"],[/([=:]\s*["']?)[A-Za-z0-9_\-+/=]{40,}/g,"$1[REDACTED]"]];Ae="[tkr: secret masked]",gk=[[/(-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----)(?:\r?\n(?:[A-Za-z0-9+/=]{16,}|[A-Za-z-]+: [^\r\n]*|\r?(?=\n)))*(?:(?:\r?\n[A-Za-z0-9+/=]{1,15})?\r?\n-----END [A-Z0-9 ]*PRIVATE KEY-----)?/g,`$1${Ae}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${Ae}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${Ae}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${Ae}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${Ae}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${Ae}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${Ae}`],[/(?<![A-Za-z0-9_-])(sk-(?:ant-|proj-))[A-Za-z0-9_-]{20,}/g,`$1${Ae}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${Ae}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${Ae}$2`]],yk=/^-----END [A-Z0-9 ]*PRIVATE KEY-----/,bk=/^[A-Za-z0-9+/=]{16,}\r?$/});var Ac=b(()=>{"use strict"});import{createHash as gO,randomUUID as _k}from"node:crypto";import{readFile as $c,writeFile as Cc,mkdir as wk}from"node:fs/promises";async function Bo(){try{let n=(await $c($n(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await wk(v(),{recursive:!0,mode:448});let e=_k();try{return await Cc($n(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await $c($n(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await Cc($n(),e,{mode:384}),e}}var zo=b(()=>{"use strict";Z()});import{readFile as xk,writeFile as wO,mkdir as xO,chmod as SO,rm as EO,rename as vO,readdir as TO}from"node:fs/promises";import{join as Sk}from"node:path";async function ze(){let e=null;try{let t=JSON.parse(await xk(Sk(v(),Ek),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?Zt.parse({...Oc,...e}):Oc}var Ek,Oc,CO,nn=b(()=>{"use strict";Xe();Z();Ek="settings-cache.json",Oc=Zt.parse({}),CO=Zt.partial().extend({filters:Zt.shape.filters.removeDefault().partial().optional()})});var Ic=b(()=>{"use strict";Z();nn();In();Gt()});import{join as Uo}from"node:path";import{appendFileSync as Pc,chmodSync as vk,existsSync as Nc,mkdirSync as Tk,readFileSync as UO,renameSync as ZO,rmdirSync as JO,statSync as Dc,unlinkSync as GO,utimesSync as WO,writeFileSync as KO}from"node:fs";function Zo(){return Uo(v(),"spool")}function Ak(e){return Uo(Zo(),`${e}.jsonl`)}function Ck(e){return Uo(Zo(),`${e}.dropped`)}function Ok(e){try{let t=Ck(e);if(Nc(t)&&Dc(t).size>=$k)return;Pc(t,".",{mode:384})}catch{return}}function Lr(e,t){if(On())try{Tk(Zo(),{recursive:!0,mode:448});let n=Ak(e);if(Nc(n)&&Dc(n).size>=Rk){Ok(e);return}Pc(n,JSON.stringify(t)+`
|
|
92
|
+
`,{mode:384}),vk(n,384)}catch{return}}var Rk,$k,Fr=b(()=>{"use strict";Ac();Z();Cn();zo();Us();nn();In();Ic();Rk=512*1024;$k=1024*1024});function zk(e){if(!/[\\/]/.test(e))return e;let t=e.split(/[\\/]/).filter(r=>r.length>0).pop()??"",n=t.toLowerCase().endsWith(".exe")?t.slice(0,-4):t;return Fc.has(n.toLowerCase())?n:""}function Uk(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=Bk.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function Mc(e){let t=e.toLowerCase();return t.startsWith("git")||Mk.has(t)}function Jo(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&Dk.test(t[n]??"");)n+=1;let r=zk(t[n]??"");if(!r||!Pk.test(r)||r.length>Fk)return"";let s=Hk.get(r.toLowerCase());if(s)return Uk(r.toLowerCase(),s,t.slice(n+1));if(Mc(r)||Lk.test(r)||At(r)!==r)return"";let o=t[n+1];return o&&Mc(o)?"":(o&&Lc.has(r.toLowerCase())&&Nk.test(o)?`${r} ${o}`:r).slice(0,64)}function Zk(e){return jk.has((e.split(" ")[0]??"").toLowerCase())}async function jr(e){if(!e.telemetryOptIn)return;let t=Jo(e.cmd),n=t&&At(t)===t&&Zk(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";Lr("telemetry",{cmd:n,tokensSaved:Math.max(0,Math.round(e.tokensSaved)),...e.tokensRestored?{tokensRestored:Math.max(0,Math.round(e.tokensRestored))}:{},...e.rawTokens!=null?{rawTokens:Math.max(0,Math.round(e.rawTokens))}:{},optimized:e.optimized,...r?{sessionId:r}:{},...e.host?{host:e.host}:{}})}var Pk,Nk,Dk,Mk,Lk,Fk,Lc,Fc,jk,Hk,Bk,Hr=b(()=>{"use strict";Gn();Fr();Pk=/^[a-z0-9][a-z0-9._-]*$/i,Nk=/^[a-z][a-z-]+$/,Dk=/^[A-Za-z_][A-Za-z0-9_]*=/,Mk=new Set(["gh","glab","gup","hub","gist"]),Lk=/^(gh[a-z]_|github_pat_|gl(?:pat|rt|soat|imt|dt|ft|agent|oas)-|npm_|xox|sk-|sk_|eyj|a(?:kia|sia|gpa|ida|roa|npa)|aiza|hv[sb]\.)/i,Fk=24,Lc=new Set(["docker","podman","npm","pnpm","yarn","npx","bun","deno","cargo","rustup","go","pip","pip3","uv","poetry","brew","apt","apt-get","dnf","yum","pacman","kubectl","helm","terraform","aws","gcloud","az","systemctl","composer","bundle","gem","dotnet","prisma","tkr","rtk","token"]),Fc=new Set([...Lc,"git","gh","node","python","python3","bash","sh","zsh","psql","mysql","sqlite3","java","ruby","perl","rg","fd","jq","make","gradle","mvn","vitest","jest","tsc","esbuild","vite","webpack","playwright","rails","rake"]),jk=new Set([...Fc,"cd","cat","head","tail","ls","tree","find","grep","wc","nl","sort","cut","uniq","tr","diff","stat","file","du","df","ps","yq","pwd","which","echo","printf","seq","sed","awk","gawk","xargs","sleep","tar","zip","unzip","rsync","scp","ssh","curl","wget","dig","host","nslookup","ping","lsof","journalctl","iptables","ip6tables","open","md5","md5sum","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shasum","sudo","env","command","time","nodejs","bunx","pytest","mypy","dmypy","pyright","basedpyright","ruff","black","ty","gradlew","mvnw","mvnd","ninja","cmake","bazel","bazelisk","sbt","gcc","clang","gmake","swift","xcodebuild","pod","flutter","nx","turbo","next","eslint","prettier","biome","oxlint","golangci-lint","shellcheck","hadolint","yamllint","markdownlint","mdl","sqlfluff","rubocop","rspec","bundler","php","artisan","composer","phpunit","phpstan","pest","paratest","pint","mix","javap","jar","docker-compose","skopeo","oc","ecs","nomad","consul","packer","pulumi","tofu","ansible","ansible-playbook","vault","sops","vercel","netlify","wrangler","firebase","supabase","stripe","shopify","theme-check","redis-cli","liquibase","ollama","ast-grep","just","task","mise","trunk","pre-commit","jj","yadm","gt","quarto","act","jira","fail2ban-client","ctest","pio","platformio","reducer","restore","read-tool","grep-tool","glob-tool","bash-tool"]),Hk=new Map([["git",new Set(["status","diff","log","show","blame","ls-files","rev-parse","branch","fetch","pull","push","commit","checkout","switch","merge","rebase","stash","tag","remote","add","reset","restore","clean","grep"])],["gh",new Set(["pr","issue","run","repo","api"])]]),Bk=new Set(["-C","-c"])});async function Br(e){if(su(e.filterId)||!(await ze()).telemetryOptIn)return;let t=Jo(e.cmd);!t||At(t)!==t||Lr("learn",{cmd:t,filterId:e.filterId==null?null:ce(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}var Go=b(()=>{"use strict";Hr();Gn();Fr();Xe();ko();nn()});function jc(e){return e?Jk[e]??"anthropic":"anthropic"}var Jk,Hc=b(()=>{"use strict";Jk={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"}});import{appendFileSync as Gk,chmodSync as Wk,mkdirSync as Kk,readFileSync as Jc,realpathSync as Vk,renameSync as Gc,rmSync as Wc,statSync as Kc,writeFileSync as Wo}from"node:fs";import{basename as Bc,dirname as Vc,join as zr,resolve as qk,sep as yI}from"node:path";function qc(){return{n:0,nc:0,r:0,f:0,or:0,of:0,x:0,sn:0,sr:0,sf:0,mr:0,mf:0,rn:0,rb:0,tn:0,tr:0,tf:0,ox:0,t0:null,t1:null,cmds:{},prov:{},rl:{},fb:{}}}function r_(e){let t=e.trim();if(!t)return null;try{let n=JSON.parse(t);return typeof n.t!="number"||!Number.isFinite(n.t)||n.t<0||n.t>864e10||typeof n.r!="number"||!Number.isSafeInteger(n.r)||n.r<0||typeof n.f!="number"||!Number.isSafeInteger(n.f)||n.f<0||n.r+n.f===0?null:{t:n.t,r:n.r,f:n.f,m:n.m===1,...typeof n.h=="string"?{h:n.h}:{},...typeof n.k=="string"?{k:n.k}:{},...typeof n.c=="string"&&n.c?{c:n.c}:{},...typeof n.p=="string"&&n.p?{p:n.p}:{},...typeof n.s=="string"&&n.s?{s:n.s}:{},...typeof n.o=="string"&&t_.has(n.o)?{o:n.o}:{}}}catch{return null}}function s_(e,t){if(!t.c)return;let n=e.cmds[t.c]??{n:0,nc:0,r:0,f:0,sh:!1};n.n+=1,t.f<t.r&&(n.nc+=1,n.rr=(n.rr??0)+t.r,n.rf=(n.rf??0)+t.f),(t.k==="sh"||t.k==="restore")&&(n.sh=!0),t.h==="shell"&&t.k!=="restore"&&(n.tn=(n.tn??0)+1,n.tr=(n.tr??0)+t.r,n.tf=(n.tf??0)+t.f,t.f<t.r&&(n.tnc=(n.tnc??0)+1,n.trr=(n.trr??0)+t.r,n.trf=(n.trf??0)+t.f)),n.r+=t.r,n.f+=t.f,e.cmds[t.c]=n}function o_(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function i_(e,t){let n=o_(t),r=e.rl[n]??{n:0,nc:0,r:0,f:0};if(r.n+=1,r.r+=t.r,r.f+=t.f,t.f<t.r&&(r.nc+=1),e.rl[n]=r,t.f>=t.r&&t.o){let s=`${t.o} ${t.c??""}`,o=e.fb[s]??{n:0,r:0};o.n+=1,o.r+=t.r,e.fb[s]=o}}function a_(e,t){if(t.m){e.mr+=t.r,e.mf+=t.f;return}if(e.t0=e.t0==null?t.t:Math.min(e.t0,t.t),e.t1=e.t1==null?t.t:Math.max(e.t1,t.t),t.k==="sh"&&t.r>e_){e.ox+=1;return}if(s_(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):i_(e,t),e.n+=1,e.or+=t.r,e.of+=t.f,t.f>t.r&&(e.x+=1),t.h==="shell"&&t.k!=="restore"&&(e.tn+=1,e.tr+=t.r,e.tf+=t.f),t.f<t.r){e.nc+=1,e.r+=t.r,e.f+=t.f,t.k==="sh"&&(e.sn+=1,e.sr+=t.r,e.sf+=t.f);let n=jc(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function l_(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Yc(e){return zr(Vc(e),Xk)}function u_(e){let t=Yc(e),n;try{n=Jc(t,"utf8")}catch{return{}}try{let r=JSON.parse(n);if(!r.days||typeof r.days!="object")throw new Error("invalid ledger");let s={};for(let[o,i]of Object.entries(r.days))!/^\d{4}-\d{2}-\d{2}$/.test(o)||!i||typeof i!="object"||(s[o]={...qc(),...i});return s}catch{try{Gc(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function Uc(e,t){let n=`${e}.tmp-${process.pid}`;Wo(n,t,{mode:384}),Gc(n,e)}function c_(e){try{return Wo(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-Kc(e).mtimeMs<Qk?!1:(Wc(e,{force:!0}),Wo(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function f_(e,t=zc,n=zc/2){try{if(Kc(e).size<=t)return}catch{return}let r=`${e}.lock`;if(c_(r))try{let s=Jc(e,"utf8").split(`
|
|
93
|
+
`).filter(u=>u.trim()!==""),o=s.length,i=0;for(;o>0;){let u=Buffer.byteLength(s[o-1])+1;if(i+u>n)break;i+=u,o-=1}let a=u_(e);for(let u of s.slice(0,o)){let c=r_(u);if(!c)continue;let f=l_(c.t),d=a[f]??qc();a_(d,c),a[f]=d}let l=s.slice(o);Uc(e,l.length?`${l.join(`
|
|
94
94
|
`)}
|
|
95
|
-
`:""),
|
|
96
|
-
`.includes(i)){if(o(),
|
|
97
|
-
`;try{
|
|
98
|
-
`,{mode:384}),
|
|
99
|
-
`).filter(a=>a.trim()!==""),o=s.slice(s.length-
|
|
95
|
+
`:""),Uc(Yc(e),JSON.stringify({v:1,days:a}))}catch{return}finally{Wc(r,{force:!0})}}function d_(e){let t=qk(e),n=t,r="";for(;;){try{return zr(Vk(n),r)}catch{}let s=Vc(n);if(s===n)return t;r=r?zr(Bc(n),r):Bc(n),n=s}}function Zc(e){return e.length===0||e[0]==="cd"||e.every(t=>Xc.test(t))}function y_(e){let t=[],n="",r=!1,s=null,o=()=>{r&&t.push(n),n="",r=!1};for(let i of e){if(s){i===s?s=null:n+=i;continue}if(i==="'"||i==='"'){s=i,r=!0;continue}if(i===" "||i===" "){o();continue}if(`|;&<>
|
|
96
|
+
`.includes(i)){if(o(),Zc(t)){t=[];continue}return t}n+=i,r=!0}return o(),Zc(t)?[]:t}function et(e){let t=y_(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(Xc.test(a)){n+=1;continue}if(p_.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=m_.has(l)?2:1;continue}if(/^\d+(?:\.\d+)?[smhd]?$/.test(l)){n+=1;continue}break}continue}break}if(n>=t.length)return"";let r=t[n],s=r.includes("/")?r.slice(r.lastIndexOf("/")+1):r,o=t[n+1];return(o&&!o.startsWith("-")&&h_.test(o)&&g_.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function b_(){return zr(v(),Yk)}function Ur(e,t,n=b_(),r=!1,s,o,i,a,l={}){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||e<0||t<0||e+t===0)return;let u=s?`,"h":${JSON.stringify(s)}`:"",c=o?`,"k":${JSON.stringify(o)}`:"",f=i?`,"c":${JSON.stringify(i.slice(0,24))}`:"",d=a?d_(a):"",p=d&&d.length<=n_?`,"p":${JSON.stringify(d)}`:"",y=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",g=l.o?`,"o":${JSON.stringify(l.o)}`:"",m=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${u}${c}${f}${p}${y}${g}}
|
|
97
|
+
`;try{Kk(v(),{recursive:!0,mode:448}),Gk(n,m,{mode:384}),Wk(n,384),f_(n)}catch{return}}function Zr(e){let t=e.filterId==null?void 0:e.filterId.startsWith("user/")?`u:${e.filterId.slice(5)}`:"b",n=e.filteredBytes<e.rawBytes?void 0:e.filterId==null?"n":e.debugBypass?"e":"g";return{...t?{s:t}:{},...n?{o:n}:{}}}function Jr(e,t,n){let r=n!=null?Math.min(e,n):e,s=n!=null?Math.min(t,n):t;return{raw:r,filtered:s}}var Yk,Xk,zc,Qk,e_,t_,n_,p_,m_,h_,g_,Xc,Ko=b(()=>{"use strict";Z();Fr();Hc();Yk="stats.jsonl",Xk="stats-ledger.json",zc=2*1024*1024,Qk=3e4,e_=3e4,t_=new Set(["n","g","e"]),n_=256;p_=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),m_=new Set(["-u","-g","-n","-s","-k"]),h_=/^[a-z0-9][a-z0-9._-]*$/i,g_=new Set(["git","npm","pnpm","yarn","npx","docker","kubectl","helm","cargo","go","brew","gh","pip","pip3","apt","apt-get","systemctl","terraform","aws","gcloud","az","bundle","rake","rails","prisma","poetry","uv","gem","composer"]),Xc=/^[A-Za-z_][A-Za-z0-9_]*=/});import{appendFileSync as k_,mkdirSync as __,readFileSync as w_,writeFileSync as x_,renameSync as S_,statSync as E_,readdirSync as SI,rmSync as EI,chmodSync as v_}from"node:fs";import{join as ef}from"node:path";function tf(){return ef(v(),"sessions")}function A_(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return ef(tf(),`${t}.jsonl`)}function Vo(e){let t=At(e.slice(0,Qc*32)).replace(/(^|\s)(-p)(?:'[^']*'|"[^"]*"|(?=\S)\S+)/g,"$1$2[REDACTED]");return Mr(t).slice(0,Qc)}function Gr(e,t){try{let n=A_(e);__(tf(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:Vo(t.target),...t.fail?{fail:1}:{}});if(k_(n,`${r}
|
|
98
|
+
`,{mode:384}),v_(n,384),E_(n).size>T_){let s=w_(n,"utf8").split(`
|
|
99
|
+
`).filter(a=>a.trim()!==""),o=s.slice(s.length-R_),i=`${n}.tmp-${process.pid}`;x_(i,`${o.join(`
|
|
100
100
|
`)}
|
|
101
|
-
`,{mode:384}),
|
|
102
|
-
`)}function
|
|
103
|
-
`),!0)}var
|
|
104
|
-
`)}function
|
|
105
|
-
`||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}function ii(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function
|
|
106
|
-
`)}function ci(e){let t=[],n=[];for(let r of e.split(/(?<=\n)/))/^\s*\[\[?\s*[A-Za-z0-9_"'-]/.test(r)&&n.length&&(t.push(n.join("")),n=[]),n.push(r);return n.length&&t.push(n.join("")),t}function ss(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${
|
|
101
|
+
`,{mode:384}),S_(i,n)}}catch{}}var T_,R_,AI,Qc,Wr=b(()=>{"use strict";Z();Gn();T_=96*1024,R_=500,AI=168*3600*1e3,Qc=120});function $_(e){return e.charCodeAt(0)===65279?e.slice(1):e}function _e(e){return JSON.parse($_(e))}var $t=b(()=>{"use strict"});import{basename as C_}from"node:path";function Ct(e){let t=C_(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(O_))if(r===t)return[n];for(let[n,r]of Object.entries(I_))if(r===t)return["hook",n];return null}var O_,I_,Wn=b(()=>{"use strict";O_={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},I_={codex:"tkr-codex-hook",cursor:"tkr-cursor-hook",gemini:"tkr-gemini-hook",agent:"tkr-agent-hook",copilot:"tkr-copilot-hook",droid:"tkr-droid-hook",trae:"tkr-trae-hook",qwen:"tkr-qwen-hook",crush:"tkr-crush-hook",junie:"tkr-junie-hook",zcode:"tkr-zcode-hook",grok:"tkr-grok-hook",context:"tkr-context-hook","pre-tool-use":"pre-tool-use","post-tool-use":"post-tool-use","session-recap":"session-recap","session-start":"on-session-start","reducer-session-start":"reducer-session-start","reducer-prompt-submit":"reducer-prompt-submit","reducer-stop":"reducer-stop","command-expansion":"command-expansion"}});import{realpathSync as nf}from"node:fs";import{delimiter as P_,join as rn}from"node:path";import N_ from"node:os";function we(){return!1}function Ot(e,t=process.execPath){let n=we()?Ct(e):null;return n?[process.execPath,...n]:[t,e]}function rf(e,t){try{return nf(e)===nf(t)}catch{return!1}}function Kr(e=process.env.PATH??"",t=process.platform,n=process.execPath){let r=t==="win32"?"tkr.exe":"tkr";for(let s of e.split(t==="win32"?";":P_)){if(!s||s.includes("node_modules"))continue;let o=rn(s,r);if(rf(o,n))return o}if(t!=="win32"){let s=N_.homedir();for(let o of[rn(s,".local","bin",r),rn(s,".local","share","tokmizer","current","dist","bin",r),rn("/opt/homebrew/bin",r),rn("/usr/local/bin",r),rn("/home/linuxbrew/.linuxbrew/bin",r)])if(rf(o,n))return o}return n}var tt=b(()=>{"use strict";Wn()});import D_ from"node:os";import{isAbsolute as M_,join as sf,resolve as of}from"node:path";function Vr(e=process.env,t=D_.homedir()){let n=e.CLAUDE_CONFIG_DIR?.trim();if(!n)return sf(t,".claude");let r=n;return r==="~"?r=t:(r.startsWith("~/")||r.startsWith("~\\"))&&(r=sf(t,r.slice(2))),M_(r)?of(r):of(r)}var qo=b(()=>{"use strict"});import{rmSync as L_,statSync as F_}from"node:fs";import{join as af}from"node:path";function Kn(){return af(v(),"shims")}function qr(){return af(v(),"fail-open")}function xe(e=Date.now()){try{if(e-F_(qr()).mtimeMs<j_)return!0;L_(qr(),{force:!0})}catch{}return!1}function Yo(){return`[ -f ${Se(qr())} ]`}function Se(e){return`'${e.replace(/'/g,"'\\''")}'`}function lf(e){if(!e.startsWith("'")||!e.endsWith("'")||e.length<2)return null;let n=e.slice(1,-1).split("'\\''");return n.some(r=>r.includes("'"))?null:n.join("'")}var j_,pe=b(()=>{"use strict";Z();j_=24*36e5});import{accessSync as z_,chmodSync as U_,constants as Z_,existsSync as Yr,mkdirSync as J_,readdirSync as G_,readFileSync as W_,realpathSync as uf,renameSync as K_,unlinkSync as V_,writeFileSync as q_}from"node:fs";import{basename as Qo,dirname as nt,join as Ue,sep as sn}from"node:path";function pf(){return Ue(v(),"bin","tkr-shim-launch")}function Y_(){return Ue(v(),"bin","tkr-run")}function cf(){return Ue(Vr(),"plugins","cache","tokmizer","tokmizer")}function X_(e){let t=nt(nt(nt(e)));return df.test(Qo(t))&&Qo(nt(t))==="tokmizer"?nt(t):null}function ei(e){return/[\n\r]/.test(e)||e.includes(`${sn}_npx${sn}`)||e.includes(`${sn}.bun${sn}install${sn}cache${sn}`)}function ti(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=Ue(t[1],"opt",t[2],t[3]);try{return uf(n)===uf(e)?n:e}catch{return e}}function Q_(e=process.execPath){return ei(e)?"":ti(e)}function mf(e,t=we()){if(t&&Ct(e)){let s=Kr();return{single:ei(s)?"":ti(s),js:"",cache:cf(),node:""}}let n=Q_(),r=X_(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:ei(e)?"":ti(e),cache:cf(),node:n}}function ew(e){try{return z_(e,Z_.X_OK),!0}catch{return!1}}function tw(e){let t=null,n=-1,r;try{r=G_(e)}catch{return null}for(let s of r){if(!df.test(s))continue;let o=Ue(e,s);if(!Yr(Ue(o,"dist","bin","tkr-shim.js"))||!Yr(Ue(o,"dist","bin",Vn)))continue;let[i,a,l]=s.split(".").map(Number),u=i*1e6+a*1e3+l;u>n&&(n=u,t=o)}return t}function Xo(e){return e.single&&ew(e.single)||e.js&&Yr(e.js)&&(Qo(e.js)!=="tkr-shim.js"||Yr(Ue(nt(e.js),Vn)))?!0:e.cache!==""&&tw(e.cache)!==null}function nw(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${Vn}" ]; }; then _tk_t=${t}; fi`,'if [ -z "$_tk_t" ] && [ -n "$_tk_k" ] && [ -d "$_tk_k" ]; then'," _tk_b=-1",' for _tk_r in "$_tk_k"/*/; do'," _tk_v=${_tk_r%/}; _tk_v=${_tk_v##*/}"," case $_tk_v in *[!0-9.]*|.*|*.|*..*|0[0-9]*|*.0[0-9]*|*[0-9][0-9][0-9][0-9][0-9][0-9][0-9]*) continue ;; [0-9]*.[0-9]*.[0-9]*) ;; *) continue ;; esac"," case ${_tk_v#*.*.} in *.*) continue ;; esac",` [ -f "\${_tk_r}dist/bin/${e}" ] && [ -f "\${_tk_r}dist/bin/${Vn}" ] || continue`," _tk_1=${_tk_v%%.*}; _tk_2=${_tk_v#*.}; _tk_3=${_tk_2#*.}; _tk_2=${_tk_2%%.*}"," _tk_v=$((_tk_1 * 1000000 + _tk_2 * 1000 + _tk_3))",` if [ "$_tk_v" -gt "$_tk_b" ]; then _tk_b=$_tk_v; _tk_t=\${_tk_r}dist/bin/${e}; fi`," done","fi",'if [ -z "$_tk_t" ]; then',` _tk_d=${Se(Kn())}`," set -f; _tk_o=$IFS; IFS=:"," for _tk_e in $PATH; do"," case $_tk_e in /*/node_modules/*|*/node_modules) continue ;; /*) ;; *) continue ;; esac",' [ ! "$_tk_e" -ef "$_tk_d" ] || continue',' for _tk_g in "$_tk_e/../lib/node_modules/@tokmizer/plugin/dist/bin" "$_tk_e/../opt/tokmizer/libexec/lib/node_modules/@tokmizer/plugin/dist/bin"; do',` if [ -f "$_tk_g/${Vn}" ] && [ -f "$_tk_g/${e}" ]; then _tk_t=$_tk_g/${e}; break 2; fi`," done"," done"," IFS=$_tk_o; set +f","fi","_tk_x=",'if [ -n "$_tk_t" ]; then',' for _tk_x in "$_tk_n" "$(command -v node 2>/dev/null)" /opt/homebrew/bin/node /usr/local/bin/node /usr/bin/node ""; do',' [ -n "$_tk_x" ] && [ -x "$_tk_x" ] && break'," done","fi"]}function rw(e){return["#!/bin/sh",`_tk_f=${ff}`,`_tk_s=${Se(e.single)}`,`_tk_j=${Se(e.js)}`,`_tk_k=${Se(e.cache)}`,`_tk_n=${Se(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${Yo()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...nw("tkr-exec.js","${_tk_j%/*}/tkr-exec.js").map(t=>` ${t}`),' if [ -n "$_tk_t" ]; then'," _tk_r=${_tk_t%/*}",' if [ -f "$_tk_r/tkr-exec" ] && [ -s "$_tk_r/tkr-exec" ] && [ -x "$_tk_r/tkr-exec" ]; then exec "$_tk_r/tkr-exec" "$@"; fi',' if [ -n "$_tk_x" ] && [ -s "$_tk_t" ]; then exec "$_tk_x" "$_tk_t" "$@"; fi'," fi","fi",'exec "$@"',""].join(`
|
|
102
|
+
`)}function hf(e){let t=Y_(),n=mf(Ue(nt(e),"tkr-shim.js")),r=ow(t);if(r&&r.format===ff&&Xo(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!Xo(n))return r&&Xo(r.target)?t:null;let s=`${t}.${process.pid}.tmp`;try{return J_(nt(t),{recursive:!0,mode:448}),q_(s,rw(n),{mode:493}),U_(s,493),K_(s,t),t}catch{try{V_(s)}catch{}return null}}function sw(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:lf(l[1]):null},n=Number(t("_tk_f")),r=t("_tk_s"),s=t("_tk_j"),o=t("_tk_k"),i=t("_tk_n")??"";return!Number.isInteger(n)||r===null||s===null||o===null?null:{format:n,target:{single:r,js:s,cache:o,node:i}}}function ow(e=pf()){try{return sw(W_(e,"utf8"))}catch{return null}}var ff,Vn,df,Xr=b(()=>{"use strict";qo();Z();tt();Wn();pe();ff=1,Vn="tkr-shim.stable",df=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/});import{chmod as iw,lstat as gf,mkdir as aw,readFile as ri,rename as lw,rm as tP,unlink as yf,writeFile as uw}from"node:fs/promises";import{createHash as bf}from"node:crypto";import{basename as cw,join as kf}from"node:path";function _f(){return kf(v(),"backup","config")}function ni(e){let t=oi(e),n=bf("sha256").update(t).digest("hex").slice(0,16),r=cw(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return kf(_f(),`${n}-${r}`)}function wf(e){return`${ni(e)}.written`}function xf(e){return bf("sha256").update(e).digest("hex")}async function dw(e){try{return await gf(e),!0}catch{return!1}}async function si(e,t){let n=`${e}.tmp-${process.pid}`;try{return await aw(_f(),{recursive:!0,mode:448}),await uw(n,t,{mode:384}),await iw(n,384),await lw(n,e),!0}catch{return await yf(n).catch(()=>{}),!1}}async function pw(e,t){let n=`${e}${fw}`;try{if(!(await gf(n)).isFile())return!1}catch{return!1}let r=!await dw(t);if(r&&!await si(t,await ri(n,"utf8")))throw new Error("backup");return await yf(n).catch(()=>{}),r}async function mw(e,t){try{return(await ri(wf(e),"utf8")).trim()===xf(t)}catch{return!1}}async function Sf(e,t){let n=t;try{n===void 0&&(n=await ri(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await pw(e,ni(e)))return!0}catch{return!1}return await mw(e,n)?!0:si(ni(e),n)}async function Qr(e,t,n){return!await Sf(e,n)||!await ts(e,t)?!1:(await si(wf(e),`${xf(t)}
|
|
103
|
+
`),!0)}var fw,es=b(()=>{"use strict";Z();De();fw=".tkr-bak"});import{readFile as hw,writeFile as gw,rename as yw,mkdir as Rf,chmod as bw,stat as kw,unlink as _w}from"node:fs/promises";import{existsSync as Af,lstatSync as ww,readlinkSync as xw,realpathSync as Ef}from"node:fs";import{basename as Sw,dirname as ns,join as Ew,resolve as vf}from"node:path";function U(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function rt(e){if(!Af(e))return{};try{let t=_e(await hw(e,"utf8"));return U(t)?t:null}catch{return null}}function oi(e){let t=vf(e);for(let n=0;n<32;n++){try{return Ef(t)}catch{}try{if(!ww(t).isSymbolicLink())break;t=vf(ns(t),xw(t))}catch{break}}try{return Ew(Ef(ns(t)),Sw(t))}catch{return t}}async function ts(e,t){let n=oi(e),r=`${n}.tmp-${process.pid}`;try{await Rf(ns(n),{recursive:!0});let s=384;try{s=(await kw(n)).mode&511}catch{}return process.platform!=="win32"&&Af(n)&&(s&128)===0?!1:(await gw(r,t,{mode:s}),await bw(r,s),await yw(r,n),!0)}catch{try{await _w(r)}catch{}return!1}}async function st(e,t){try{await Rf(ns(e),{recursive:!0})}catch{return!1}return Qr(e,`${JSON.stringify(t,null,2)}
|
|
104
|
+
`)}function vw(e){let t=[],n="",r=!1;for(let s=0;s<e.length;s++){let o=e[s];if(o==="'"){let i=e.indexOf("'",s+1);if(i<0)return null;n+=e.slice(s+1,i),r=!0,s=i}else if(o==='"'){let i=e.indexOf('"',s+1);if(i<0)return null;let a=e.slice(s+1,i);if(/`|\$\(/.test(a))return null;n+=a,r=!0,s=i}else if(o==="\\"&&e[s+1]==="'")n+="'",r=!0,s++;else if(o===" "||o===" ")r&&t.push(n),n="",r=!1;else{if(o===";"||o==="&"||o==="|"||o==="`"||o===`
|
|
105
|
+
`||o==="\r"||o==="$"&&e[s+1]==="(")return null;n+=o,r=!0}}return r&&t.push(n),t}function ii(e){return(e.split(/[\\/]/).pop()??"").toLowerCase().replace(/\.(?:exe|cmd|bat|ps1|m?js|sh)$/,"")}function Rw(e){if(typeof e!="string")return null;let t=e.replace(Tw,""),n=vw(t);if(!n)return null;let r=0;for(;r<n.length&&Tf.test(n[r]);)r++;if(n[r]==="exec"&&r++,r>=n.length||Tf.test(n[r]))return null;let s=ii(n[r]),o=n.slice(r+1);if(s==="sh"||s==="bash"){let i=o[0]!==void 0?ii(o[0]):"";return/^tkr-hook(?:-launch)?$/.test(i)?{program:i,args:o.slice(2),launcherMark:o[1]??""}:{program:s,args:o}}return s==="node"?{program:o[0]!==void 0?ii(o[0]):"node",args:o.slice(1)}:{program:s,args:o}}function on(e,t){let n=Rw(e);if(!n)return!1;if(n.launcherMark!==void 0)return n.launcherMark===t;if(n.program===t)return!0;if(n.program!=="tkr")return!1;let r=Ct(t);return r?.length?r.every((s,o)=>n.args[o]===s):!1}function rs(e,t,n,r){let s=i=>i!==n&&t(i),o=!1;for(let i=e.length-1;i>=0;i--){let a=e[i];if(!r){s(a)&&(e.splice(i,1),o=!0);continue}if(!U(a)||!Array.isArray(a.hooks))continue;let l=a.hooks.filter(u=>!s(u));l.length!==a.hooks.length&&(o=!0,l.length?a.hooks=l:e.splice(i,1))}return o}var Tw,Tf,De=b(()=>{"use strict";Wn();tt();Xr();es();$t();Tw=/^\s*\[ ! -[a-z] (?:'(?:[^']|'\\'')*'|"[^"]*") \] \|\| /,Tf=/^[A-Za-z_][A-Za-z0-9_]*=/});import{existsSync as kP,readFileSync as Aw}from"node:fs";import{join as $w}from"node:path";import Cw from"node:os";function Iw(){return $w(Cw.homedir(),".cursor","hooks.json")}function Pw(e){return U(e)&&on(e.command,Ow)}function Nw(e){let t=U(e.hooks)?e.hooks:{},n=Array.isArray(t[$f])?t[$f]:[];return{hooks:t,entries:n}}function Cf(){try{let e=_e(Aw(Iw(),"utf8"));return Nw(e).entries.some(Pw)}catch{return!1}}var Ow,$f,Of=b(()=>{"use strict";$t();De();Ow="tkr-cursor-hook",$f="preToolUse"});import{existsSync as TP,readFileSync as Dw}from"node:fs";import{join as Mw}from"node:path";import Lw from"node:os";function jw(){return Mw(process.env.GEMINI_CLI_HOME||Lw.homedir(),".gemini","settings.json")}function Hw(e){return U(e)&&on(e.command,Fw)}function Bw(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(Hw)}function zw(e){let t=U(e.hooks)?e.hooks:{},n=Array.isArray(t[If])?t[If]:[];return{hooks:t,groups:n}}function Pf(){try{let e=_e(Dw(jw(),"utf8"));return zw(e).groups.some(t=>Bw(t)!=null)}catch{return!1}}var Fw,If,Nf=b(()=>{"use strict";$t();De();Fw="tkr-gemini-hook",If="BeforeTool"});import{existsSync as NP,accessSync as DP,constants as MP,readFileSync as Uw}from"node:fs";function Jw(e){return e.includes(Zw)}function Df(e){try{return Jw(Uw(e,"utf8"))}catch{return!1}}var Zw,Mf=b(()=>{"use strict";De();tt();es();Z();Zw='"rewrite", "--host"'});import{readFile as Ff,mkdir as Gw}from"node:fs/promises";import{existsSync as ui,readFileSync as jf}from"node:fs";import{dirname as Ww,join as li}from"node:path";import Hf from"node:os";function Yn(){return li(process.env.VIBE_HOME||li(Hf.homedir(),".vibe"),"hooks.toml")}function Lf(e){return JSON.stringify(e)}function Kw(e){return["[[hooks]]",`name = ${Lf(Bf)}`,'type = "pre_tool"','match = "bash"',`command = ${Lf(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
|
|
106
|
+
`)}function ci(e){let t=[],n=[];for(let r of e.split(/(?<=\n)/))/^\s*\[\[?\s*[A-Za-z0-9_"'-]/.test(r)&&n.length&&(t.push(n.join("")),n=[]),n.push(r);return n.length&&t.push(n.join("")),t}function ss(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${Bf}"\\s*$`,"m").test(e)}function zf(e){if(!ss(e))return e;let t=e.split(/(?<=\n)/),n=1;for(;n<t.length&&!/^\s*(?:#.*)?\r?\n?$/.test(t[n]);)n++;for(;n<t.length&&/^\s*\r?\n?$/.test(t[n]);)n++;return t.slice(n).join("")}async function Uf(e,t){try{await Gw(Ww(e),{recursive:!0})}catch{return!1}return Qr(e,t)}function Zf(){try{return ci(jf(Yn(),"utf8")).some(ss)}catch{return!1}}async function Jf(e){let t=Yn(),n="";try{ui(t)&&(n=await Ff(t,"utf8"))}catch{return"error"}let r=Kw(e),s=ci(n),o=s.filter(ss);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.map(zf).join("").trimEnd(),a=i?`${i}
|
|
107
107
|
|
|
108
|
-
${r}`:r;return await
|
|
109
|
-
`:"";return await zf(e,s)?"removed":"error"}function Xn(){return li(jf.homedir(),".gemini","config","hooks.json")}function Zw(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Gf(){try{let e=ke(Ff(Xn(),"utf8"));return U(e)&&U(e[qn])}catch{return!1}}async function Wf(e){let t=Xn(),n=await tt(t);if(!n)return"error";let r=Zw(e),s=n[qn];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[qn]=r,await nt(t,n)?s===void 0?"added":"updated":"error")}async function Kf(){let e=Xn();if(!ui(e))return"absent";let t=await tt(e);return t?qn in t?(delete t[qn],await nt(e,t)?"removed":"error"):"absent":"error"}var Hf,qn,Vf=b(()=>{"use strict";$t();Ne();es();Hf="tokmizer-rewrite",qn="tokmizer-rewrite"});import{dirname as VP,join as xe}from"node:path";import Jw from"node:os";function Yf(e){return e.kind==="hook"?e.installed():Nf(e.files()[0].target)}var Qn,fi,qf,Xf=b(()=>{"use strict";Ne();Df();Vf();Qn=()=>Jw.homedir(),fi=()=>process.env.XDG_CONFIG_HOME||xe(Qn(),".config"),qf=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:xe(fi(),"opencode","plugins","tokmizer.js")}],next:"Restart OpenCode so it loads the plugin."},{host:"kilo",label:"Kilo Code",command:"setup-kilo",kind:"shim",files:()=>[{template:"kilo.js",target:xe(fi(),"kilo","plugin","tokmizer.js")}],next:"Restart Kilo Code (CLI or VS Code extension) so it loads the plugin."},{host:"amp",label:"Amp",command:"setup-amp",kind:"shim",files:()=>[{template:"amp.js",target:xe(fi(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:Yn,installed:Uf,ensure:Zf,remove:Jf,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Xn,installed:Gf,ensure:Wf,remove:Kf,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=xe(Qn(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:xe(e,t)}))},next:"Run: openclaw plugins enable tokmizer && openclaw gateway restart"},{host:"pi",label:"Pi",command:"setup-pi",kind:"shim",files:()=>[{template:"pi.js",target:xe(process.env.PI_CODING_AGENT_DIR||xe(Qn(),".pi","agent"),"extensions","tokmizer.js")}],next:"Restart Pi (or run /reload) so it loads the extension."},{host:"omp",label:"Oh My Pi",command:"setup-omp",kind:"shim",files:()=>[{template:"omp.js",target:xe(Qn(),".omp","agent","extensions","tokmizer.js")}],next:"Restart omp so it loads the extension."},{host:"hermes",label:"Hermes",command:"setup-hermes",kind:"shim",files:()=>{let e=xe(process.env.HERMES_HOME||xe(Qn(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:xe(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}]});import{existsSync as Gw,readFileSync as Ww}from"node:fs";function os(e,t){return U(e)&&rn(e.command,t)}function Qf(e){return e.path??(e.nested?["hooks"]:[])}function ed(e,t){let n=e;for(let r of Qf(t))U(n[r])||(n[r]={}),n=n[r];return n}function td(e,t){let n=e;for(let s of Qf(t))n=U(n)?n[s]:void 0;if(!U(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Kw(e){return U(e)&&Array.isArray(e.hooks)?e.hooks:[]}function nd(e,t){return(t.matcher===void 0?e:e.flatMap(Kw)).filter(r=>os(r,t.mark))}function rd(e,t){return nd(td(e,t),t).length>0}function di(e,t){try{let n=ke(Ww(e,"utf8"));return U(n)&&rd(n,t)}catch{return!1}}function Vw(e,t,n){let r=ed(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=nd(s,t)[0],i=t.entry(n);if(o){let a=rs(s,u=>os(u,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([u,c])=>JSON.stringify(o[u])!==JSON.stringify(c));if(!l.length&&!a)return"present";for(let[u,c]of l)o[u]=c;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function qw(e,t){if(!rd(e,t))return!1;let n=ed(e,t),r=td(e,t),s=t.matcher===void 0?r.filter(o=>!os(o,t.mark)):r.map(o=>U(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!os(i,t.mark))}:o).filter(o=>!U(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function pi(e,t,n){let r=await tt(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=Vw(r,t,n);return s==="present"||await nt(e,r)?s:"error"}async function is(e,t){if(!Gw(e))return"absent";let n=await tt(e);return n?qw(n,t)?await nt(e,n)?"removed":"error":"absent":"error"}var sd=b(()=>{"use strict";$t();Ne()});import{existsSync as hi,readFileSync as Yw}from"node:fs";import{join as te}from"node:path";import Xw from"node:os";function De(){return Xw.homedir()}function ld(e){return e.version===void 0&&(e.version=1),e.version===1}function Qw(e,t,n){return Promise.all(e.map(r=>pi(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function ex(e,t){return Promise.all(e.map(n=>is(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function Ot(e,t){return{...e,installed:()=>e.files().some(n=>di(n,t)),ensure:n=>Qw(e.files(),t,n),remove:()=>ex(e.files(),t)}}function nx(){return te(process.env.COPILOT_HOME||te(De(),".copilot"),"hooks","tokmizer.json")}function sx(){let e=[te(De(),".trae","hooks.json")];return hi(te(De(),".trae-cn"))&&e.push(te(De(),".trae-cn","hooks.json")),e}function ix(){return te(process.env.QWEN_HOME||te(De(),".qwen"),"settings.json")}function lx(){return te(process.env.XDG_CONFIG_HOME||te(De(),".config"),"crush","crush.json")}function cx(){return te(De(),".junie","config.json")}function fx(e){return e.hooks===void 0&&(e.hooks={}),U(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||U(e.hooks.events)):!1}function px(){return te(De(),".zcode","cli","config.json")}function hx(){return te(De(),".grok","hooks","tokmizer.json")}function mi(){return te(De(),".factory")}function as(){return[{file:te(mi(),"hooks.json"),spec:gi},{file:te(mi(),"hooks","hooks.json"),spec:gi},{file:te(mi(),"settings.json"),spec:yx}]}function od(e){try{let t=JSON.parse(Yw(e,"utf8"));return U(t)?t:null}catch{return null}}function id(e,t){let n=t?e?.hooks:e;return U(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function ad(){let[e,t,n]=as(),r=hi(e.file)?e:hi(t.file)?t:null;return r&&id(od(r.file),!1)?r:id(od(n.file),!0)?n:r??e}var tx,rx,ox,ax,ux,dx,mx,gx,gi,yx,bx,ud,cd=b(()=>{"use strict";Ne();sd();tx={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:ld};rx={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:ld};ox={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};ax={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};ux={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};dx={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:fx};mx={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};gx="tkr-droid-hook",gi={mark:gx,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},yx={...gi,nested:!0};bx={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[ad().file],installed:()=>as().some(e=>di(e.file,e.spec)),ensure:async e=>{let t=ad(),n=await pi(t.file,t.spec,e);return n==="error"||await Promise.all(as().filter(r=>r.file!==t.file).map(r=>is(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(as().map(t=>is(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},ud=[Ot({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[nx()]},tx),bx,Ot({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:sx},rx),Ot({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[ix()]},ox),Ot({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[lx()]},ax),Ot({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[cx()]},ux),Ot({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[px()]},dx),Ot({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[hx()]},mx)]});function fd(e){return kx.has(e)||(_x[e]?.installed()??!1)}function ls(e){return null}function us(e=process.env){let t=process.platform,n=t==="darwin"||t==="linux"||t==="win32"?t:"other",r=process.arch,s=e.TOKMIZER_HOST;if(s&&yi.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!fd(o)}}for(let o of dd)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!fd(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}var dd,yi,kx,_x,er=b(()=>{"use strict";Cf();Pf();Xf();cd();dd=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_AGENT","CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"qwen-code",vars:["QWEN_CODE"]},{host:"gemini-cli",vars:["GEMINI_CLI","GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]},{host:"opencode",vars:[]},{host:"amp",vars:[]},{host:"vibe",vars:[]},{host:"antigravity",vars:[]},{host:"openclaw",vars:[]},{host:"pi",vars:[]},{host:"omp",vars:[]},{host:"hermes",vars:[]},{host:"crush",vars:["CRUSH"]},{host:"droid",vars:[]},{host:"trae",vars:[]},{host:"junie",vars:[]},{host:"zcode",vars:[]},{host:"grok",vars:[]},{host:"kilo",vars:[]}],yi=[...dd.map(e=>e.host),"shell"],kx=new Set(["claude-code","codex"]),_x={cursor:{installed:$f,setup:"tkr setup-cursor"},"gemini-cli":{installed:If,setup:"tkr setup-gemini"},...Object.fromEntries(qf.map(e=>[e.host,{installed:()=>Yf(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(ud.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))}});import{existsSync as _N,realpathSync as wx}from"node:fs";import{basename as xN,delimiter as pd,join as SN,dirname as EN}from"node:path";function md(e){try{return wx(e)}catch{return e}}function hd(){let e=Kn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=md(e),o=r.split(pd).filter(i=>i&&i!==e&&md(i)!==s);return t[n]=o.join(pd),n==="Path"&&(t.PATH=t[n]),t}var gd=b(()=>{"use strict";Gn();Qe();Z();er();we();Xr();we()});function bi(e){return JSON.stringify(e)+cs}function*bd(e){let t=0;for(;;){let n=e.indexOf(cs,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function tr(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var xx,Sx,Ex,vx,DN,MN,LN,yd,cs,FN,kd=b(()=>{"use strict";xt();Tn();xx=h.object({id:h.string().min(1).max(64),op:h.literal("filter"),cmd:h.string().min(1).max(2048),plan:h.enum(["trial","smart","pro"]),allowed:h.array(h.string().min(1).max(64)).max(512).optional(),installId:h.string().min(1).max(64).optional()}),Sx=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),Ex=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),vx=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),DN=h.discriminatedUnion("op",[xx,Sx,Ex,vx]),MN=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),LN=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),yd=h.object({filter:qe.nullable(),cacheHit:h.boolean().optional()}),cs=`
|
|
110
|
-
`,
|
|
111
|
-
`,{mode:384})}catch{}}function
|
|
108
|
+
${r}`:r;return await Uf(t,a)?o.length?"updated":"added":"error"}async function Gf(){let e=Yn();if(!ui(e))return"absent";let t;try{t=await Ff(e,"utf8")}catch{return"error"}let n=ci(t);if(!n.some(ss))return"absent";let r=n.map(zf).join("").trimEnd(),s=r?`${r}
|
|
109
|
+
`:"";return await Uf(e,s)?"removed":"error"}function Xn(){return li(Hf.homedir(),".gemini","config","hooks.json")}function Vw(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Wf(){try{let e=_e(jf(Xn(),"utf8"));return U(e)&&U(e[qn])}catch{return!1}}async function Kf(e){let t=Xn(),n=await rt(t);if(!n)return"error";let r=Vw(e),s=n[qn];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[qn]=r,await st(t,n)?s===void 0?"added":"updated":"error")}async function Vf(){let e=Xn();if(!ui(e))return"absent";let t=await rt(e);return t?qn in t?(delete t[qn],await st(e,t)?"removed":"error"):"absent":"error"}var Bf,qn,qf=b(()=>{"use strict";$t();De();es();Bf="tokmizer-rewrite",qn="tokmizer-rewrite"});import{dirname as tN,join as Ee}from"node:path";import qw from"node:os";function Xf(e){return e.kind==="hook"?e.installed():Df(e.files()[0].target)}var Qn,fi,Yf,Qf=b(()=>{"use strict";De();Mf();qf();Qn=()=>qw.homedir(),fi=()=>process.env.XDG_CONFIG_HOME||Ee(Qn(),".config"),Yf=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:Ee(fi(),"opencode","plugins","tokmizer.js")}],next:"Restart OpenCode so it loads the plugin."},{host:"kilo",label:"Kilo Code",command:"setup-kilo",kind:"shim",files:()=>[{template:"kilo.js",target:Ee(fi(),"kilo","plugin","tokmizer.js")}],next:"Restart Kilo Code (CLI or VS Code extension) so it loads the plugin."},{host:"amp",label:"Amp",command:"setup-amp",kind:"shim",files:()=>[{template:"amp.js",target:Ee(fi(),"amp","plugins","tokmizer.js")}],next:"Reload plugins in Amp (or restart it), then check it with: amp plugins list"},{host:"vibe",label:"Mistral Vibe",command:"setup-vibe",kind:"hook",file:Yn,installed:Zf,ensure:Jf,remove:Gf,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Xn,installed:Wf,ensure:Kf,remove:Vf,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=Ee(Qn(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:Ee(e,t)}))},next:"Run: openclaw plugins enable tokmizer && openclaw gateway restart"},{host:"pi",label:"Pi",command:"setup-pi",kind:"shim",files:()=>[{template:"pi.js",target:Ee(process.env.PI_CODING_AGENT_DIR||Ee(Qn(),".pi","agent"),"extensions","tokmizer.js")}],next:"Restart Pi (or run /reload) so it loads the extension."},{host:"omp",label:"Oh My Pi",command:"setup-omp",kind:"shim",files:()=>[{template:"omp.js",target:Ee(Qn(),".omp","agent","extensions","tokmizer.js")}],next:"Restart omp so it loads the extension."},{host:"hermes",label:"Hermes",command:"setup-hermes",kind:"shim",files:()=>{let e=Ee(process.env.HERMES_HOME||Ee(Qn(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:Ee(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}]});import{existsSync as Yw,readFileSync as Xw}from"node:fs";function os(e,t){return U(e)&&on(e.command,t)}function ed(e){return e.path??(e.nested?["hooks"]:[])}function td(e,t){let n=e;for(let r of ed(t))U(n[r])||(n[r]={}),n=n[r];return n}function nd(e,t){let n=e;for(let s of ed(t))n=U(n)?n[s]:void 0;if(!U(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function Qw(e){return U(e)&&Array.isArray(e.hooks)?e.hooks:[]}function rd(e,t){return(t.matcher===void 0?e:e.flatMap(Qw)).filter(r=>os(r,t.mark))}function sd(e,t){return rd(nd(e,t),t).length>0}function di(e,t){try{let n=_e(Xw(e,"utf8"));return U(n)&&sd(n,t)}catch{return!1}}function ex(e,t,n){let r=td(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=rd(s,t)[0],i=t.entry(n);if(o){let a=rs(s,u=>os(u,t.mark),o,t.matcher!==void 0),l=Object.entries(i).filter(([u,c])=>JSON.stringify(o[u])!==JSON.stringify(c));if(!l.length&&!a)return"present";for(let[u,c]of l)o[u]=c;return"updated"}return s.push(t.matcher===void 0?i:{matcher:t.matcher,hooks:[i]}),"added"}function tx(e,t){if(!sd(e,t))return!1;let n=td(e,t),r=nd(e,t),s=t.matcher===void 0?r.filter(o=>!os(o,t.mark)):r.map(o=>U(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!os(i,t.mark))}:o).filter(o=>!U(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function pi(e,t,n){let r=await rt(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=ex(r,t,n);return s==="present"||await st(e,r)?s:"error"}async function is(e,t){if(!Yw(e))return"absent";let n=await rt(e);return n?tx(n,t)?await st(e,n)?"removed":"error":"absent":"error"}var od=b(()=>{"use strict";$t();De()});import{existsSync as hi,readFileSync as nx}from"node:fs";import{join as te}from"node:path";import rx from"node:os";function Me(){return rx.homedir()}function ud(e){return e.version===void 0&&(e.version=1),e.version===1}function sx(e,t,n){return Promise.all(e.map(r=>pi(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function ox(e,t){return Promise.all(e.map(n=>is(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function It(e,t){return{...e,installed:()=>e.files().some(n=>di(n,t)),ensure:n=>sx(e.files(),t,n),remove:()=>ox(e.files(),t)}}function ax(){return te(process.env.COPILOT_HOME||te(Me(),".copilot"),"hooks","tokmizer.json")}function ux(){let e=[te(Me(),".trae","hooks.json")];return hi(te(Me(),".trae-cn"))&&e.push(te(Me(),".trae-cn","hooks.json")),e}function fx(){return te(process.env.QWEN_HOME||te(Me(),".qwen"),"settings.json")}function px(){return te(process.env.XDG_CONFIG_HOME||te(Me(),".config"),"crush","crush.json")}function hx(){return te(Me(),".junie","config.json")}function gx(e){return e.hooks===void 0&&(e.hooks={}),U(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||U(e.hooks.events)):!1}function bx(){return te(Me(),".zcode","cli","config.json")}function _x(){return te(Me(),".grok","hooks","tokmizer.json")}function mi(){return te(Me(),".factory")}function as(){return[{file:te(mi(),"hooks.json"),spec:gi},{file:te(mi(),"hooks","hooks.json"),spec:gi},{file:te(mi(),"settings.json"),spec:xx}]}function id(e){try{let t=JSON.parse(nx(e,"utf8"));return U(t)?t:null}catch{return null}}function ad(e,t){let n=t?e?.hooks:e;return U(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function ld(){let[e,t,n]=as(),r=hi(e.file)?e:hi(t.file)?t:null;return r&&ad(id(r.file),!1)?r:ad(id(n.file),!0)?n:r??e}var ix,lx,cx,dx,mx,yx,kx,wx,gi,xx,Sx,cd,fd=b(()=>{"use strict";De();od();ix={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:ud};lx={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:ud};cx={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};dx={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};mx={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};yx={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:gx};kx={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};wx="tkr-droid-hook",gi={mark:wx,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},xx={...gi,nested:!0};Sx={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[ld().file],installed:()=>as().some(e=>di(e.file,e.spec)),ensure:async e=>{let t=ld(),n=await pi(t.file,t.spec,e);return n==="error"||await Promise.all(as().filter(r=>r.file!==t.file).map(r=>is(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(as().map(t=>is(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},cd=[It({id:"copilot",label:"GitHub Copilot",setup:"tkr setup-copilot",bin:"tkr-copilot-hook",restart:"Restart VS Code or Copilot CLI so they load the new hook.",files:()=>[ax()]},ix),Sx,It({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:ux},lx),It({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[fx()]},cx),It({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[px()]},dx),It({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[hx()]},mx),It({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[bx()]},yx),It({id:"grok",label:"Grok Build",setup:"tkr setup-grok",bin:"tkr-grok-hook",restart:"Restart Grok Build (1.0.4 or newer) so it loads the new hook.",files:()=>[_x()]},kx)]});function dd(e){return Ex.has(e)||(vx[e]?.installed()??!1)}function ls(e){return null}function us(e=process.env){let t=process.platform,n=t==="darwin"||t==="linux"||t==="win32"?t:"other",r=process.arch,s=e.TOKMIZER_HOST;if(s&&yi.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!dd(o)}}for(let o of pd)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!dd(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}var pd,yi,Ex,vx,er=b(()=>{"use strict";Of();Nf();Qf();fd();pd=[{host:"claude-code",vars:["CLAUDECODE","CLAUDE_CODE_ENTRYPOINT","CLAUDE_CODE","CLAUDE_CODE_VERSION","ANTHROPIC_CLAUDE_CODE"]},{host:"codex",vars:["CODEX_VERSION","CODEX_CLI","OPENAI_CODEX","CODEX_THREAD_ID","CODEX_SESSION_ID"]},{host:"cursor",vars:["CURSOR_AGENT","CURSOR_VERSION","CURSOR_TRACE_ID"]},{host:"cline",vars:["CLINE_VERSION","CLINE_API_KEY"]},{host:"aider",vars:["AIDER_VERSION","AIDER_MODEL"]},{host:"qwen-code",vars:["QWEN_CODE"]},{host:"gemini-cli",vars:["GEMINI_CLI","GEMINI_CLI_VERSION","GEMINI_API_KEY"]},{host:"windsurf",vars:["WINDSURF_VERSION","WINDSURF_USER"]},{host:"copilot",vars:["GITHUB_COPILOT_VERSION","COPILOT_INTEGRATION_ID"]},{host:"opencode",vars:[]},{host:"amp",vars:[]},{host:"vibe",vars:[]},{host:"antigravity",vars:[]},{host:"openclaw",vars:[]},{host:"pi",vars:[]},{host:"omp",vars:[]},{host:"hermes",vars:[]},{host:"crush",vars:["CRUSH"]},{host:"droid",vars:[]},{host:"trae",vars:[]},{host:"junie",vars:[]},{host:"zcode",vars:[]},{host:"grok",vars:[]},{host:"kilo",vars:[]}],yi=[...pd.map(e=>e.host),"shell"],Ex=new Set(["claude-code","codex"]),vx={cursor:{installed:Cf,setup:"tkr setup-cursor"},"gemini-cli":{installed:Pf,setup:"tkr setup-gemini"},...Object.fromEntries(Yf.map(e=>[e.host,{installed:()=>Xf(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(cd.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))}});import{existsSync as TN,realpathSync as Tx}from"node:fs";import{basename as AN,delimiter as md,join as $N,dirname as CN}from"node:path";function hd(e){try{return Tx(e)}catch{return e}}function gd(){let e=Kn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=hd(e),o=r.split(md).filter(i=>i&&i!==e&&hd(i)!==s);return t[n]=o.join(md),n==="Path"&&(t.PATH=t[n]),t}var yd=b(()=>{"use strict";Wn();tt();Z();er();pe();Xr();pe()});function bi(e){return JSON.stringify(e)+cs}function*kd(e){let t=0;for(;;){let n=e.indexOf(cs,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function tr(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var Rx,Ax,$x,Cx,BN,zN,UN,bd,cs,ZN,_d=b(()=>{"use strict";St();Rn();Rx=h.object({id:h.string().min(1).max(64),op:h.literal("filter"),cmd:h.string().min(1).max(2048),plan:h.enum(["trial","smart","pro"]),allowed:h.array(h.string().min(1).max(64)).max(512).optional(),installId:h.string().min(1).max(64).optional()}),Ax=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),$x=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),Cx=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),BN=h.discriminatedUnion("op",[Rx,Ax,$x,Cx]),zN=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),UN=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),bd=h.object({filter:Ye.nullable(),cacheHit:h.boolean().optional()}),cs=`
|
|
110
|
+
`,ZN=64*1024});import{createConnection as Ox}from"node:net";import{spawn as Ix}from"node:child_process";import{existsSync as Sd,openSync as ki,closeSync as wd,unlinkSync as wi,writeFileSync as xi,mkdirSync as Si,readFileSync as Ed,appendFileSync as Px,rmSync as Nx,statSync as vd}from"node:fs";import{dirname as Dx,join as Ei}from"node:path";import{fileURLToPath as Mx}from"node:url";function vi(){return Ei(v(),"daemon.spawn.fail")}function Ti(){return Ei(v(),"daemon.log")}function Hx(){try{let e=Number(Ed(vi(),"utf8"));return Number.isFinite(e)&&Date.now()-e<Fx}catch{return!1}}function Bx(e){try{Si(v(),{recursive:!0,mode:448});let t=Ti();try{vd(t).size>jx&&wi(t)}catch{}Px(t,`${new Date().toISOString()} ${e}
|
|
111
|
+
`,{mode:384})}catch{}}function zx(e){try{Si(v(),{recursive:!0,mode:448}),xi(vi(),String(Date.now()),{mode:384})}catch{}Bx(`spawn failed: ${e.message}`)}function Ux(){try{Nx(vi(),{force:!0})}catch{}}async function fs(e,t){return new Promise((n,r)=>{let s=Ox(e),o=a=>{if(s.removeAllListeners("connect"),s.removeAllListeners("error"),clearTimeout(i),a){try{s.destroy()}catch{}r(a)}else n(s)},i=setTimeout(()=>o(new Error("connect timeout")),t);s.once("connect",()=>o(null)),s.once("error",a=>o(a))})}function Zx(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:Mx(new URL("../bin/tkr-daemon.js",import.meta.url))}async function _i(e,t=3e3){let n=Math.ceil(t/75),r=process.platform==="win32";for(let s=0;s<n;s++){if(r)try{return(await fs(e,75)).destroy(),!0}catch{}else if(Sd(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}function Jx(e,t=Date.now()){try{if(t-vd(e).mtimeMs>1e4)return!0;let r=Number(Ed(e,"utf8").trim());if(!Number.isInteger(r)||r<=0)return!1;try{return process.kill(r,0),!1}catch(s){return s.code==="ESRCH"}}catch{return!1}}async function Gx(e){let t=Zx();if(!we()&&!Sd(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Rt(),r=process.platform==="win32"?v():Dx(n);try{Si(r,{recursive:!0,mode:448})}catch{}let s=Ei(r,"daemon.spawn.lock"),o=null;try{o=ki(s,"wx"),xi(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(!Jx(s)&&await _i(n,5e3))return;try{wi(s)}catch{}try{o=ki(s,"wx"),xi(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await _i(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=ki(Ti(),"a",384)}catch{}let[a,...l]=Ot(t);if(Ix(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{wd(i)}catch{}if(!await _i(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{wd(o)}catch{}try{wi(s)}catch{}}}}async function Wx(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Rt(),n=await Bo();try{let r=await fs(t,Td);r.write(bi({id:tr(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Kx(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await fs(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function Ri(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Rt(),n=await Bo(),r=null,s=0,o=!1;for(;s<=xd;)try{r=await fs(t,Td),Ux();break}catch{if(s+=1,s>xd)throw new Error(`tkr-daemon unreachable at ${t}`);if(Hx())throw new Error(`tkr-daemon spawn on cooldown (see ${Ti()})`);await $o();try{await Gx(n),o=!0}catch(c){throw zx(c),c}}if(!r)throw new Error("tkr-daemon: socket setup failed");let i=new Map,a="";r.setEncoding("utf8"),r.on("data",c=>{a+=c;let f=-1;for(let p=0;p<a.length;p++)a[p]===cs&&(f=p);if(f<0)return;let d=[];for(let p of kd(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let y=JSON.parse(p),g=i.get(y.id);if(!g)continue;clearTimeout(g.timer),i.delete(y.id),g.resolve(y)}catch{}}),r.on("close",()=>{for(let c of i.values())clearTimeout(c.timer),c.reject(new Error("daemon socket closed"));i.clear()}),r.on("error",()=>{});function l(c){return new Promise((f,d)=>{if(r.destroyed||!r.writable){d(new Error("daemon socket closed"));return}let p=setTimeout(()=>{i.delete(c.id),d(new Error(`daemon request timeout (${c.op})`))},Lx);i.set(c.id,{resolve:f,reject:d,timer:p}),r.write(bi(c))})}let u={filter:async(c,f,d)=>{let p=await l({id:tr(),op:"filter",cmd:c.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)throw new Error(p.err);let y=bd.safeParse(p.data);return y.success?y.data.filter:null},ping:async()=>{let c=await l({id:tr(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:tr(),op:"reload",installId:n});if(!c.ok)throw new Error(c.err);return c.data},close:()=>{try{r.destroy()}catch{}}};if(!e.skipVersionCheck&&!o){let c=!1;try{let f=await u.ping();if(f.version&&Na(be,f.version))throw new Error(`newer daemon ${f.version} already running`);c=f.version!==be}catch(f){throw u.close(),f}if(c){try{await Wx(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let f=await Kx(t,2e3);if(await $o(),!f)throw new Error("stale daemon still running after shutdown request");return Ri({...e,skipVersionCheck:!0})}}return u}var Td,Lx,xd,Fx,jx,Rd=b(()=>{"use strict";_d();Co();Z();tt();zo();Gt();Td=500,Lx=3e3,xd=1,Fx=6e4,jx=256*1024});async function Vx(){if(an)return an;if(nr)return nr;let e=Ri().then(t=>{if(nr===e)return an=t,t;try{t.close()}catch{}return null}).catch(()=>null);return nr=e,e}async function qx(){return $i||($i=!0,Ai=await br()??Yt()),Ai}async function Ad(e,t,n){let r=await qx();if(!r)return null;let s=r.selectFor(e,t,n?[...n]:void 0);return!s||n&&!n.has(ce(s.slug))?null:s}function Yx(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function ds(){Ro(async(e,t)=>{let r=t??Xt(void 0),s=await Vx();if(!s)return Ad(e,"pro",r);try{let o=await s.filter(e,"pro",r?[...r]:void 0);return!o||r&&!r.has(ce(o.slug))?null:Yx(o)}catch{return Ad(e,"pro",r)}})}function ps(){if(Ro(null),an)try{an.close()}catch{}an=null,nr=null,Ai=null,$i=!1}var an,nr,Ai,$i,Ci=b(()=>{"use strict";Rd();Un();Xe();Pn();Qt();an=null,nr=null;Ai=null,$i=!1});var ln,ms=b(()=>{"use strict";ln="[tkr: partial view; folded or omitted lines are not file text. Read with offset/limit for the exact lines before Edit or Write]"});import{chmod as Dd,mkdir as Xx,readFile as pD,writeFile as $d,stat as mD,readdir as hD,rm as Cd,rename as Qx}from"node:fs/promises";import{existsSync as eS,readFileSync as tS,realpathSync as nS}from"node:fs";import{createHash as rS}from"node:crypto";import{dirname as Od,join as sS,resolve as Id}from"node:path";function Fd(){try{let e=JSON.parse(tS(Pa(),"utf8")),t=e.maxAgeDays;return{...typeof t=="number"&&Number.isFinite(t)&&t>0?{maxAgeDays:Math.min(t,365)}:{},...e.disabled===!0?{disabled:!0}:{}}}catch{return{}}}function uS(){let e=Fd().maxAgeDays;return e?e*Md:oS}function hs(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function jd(e=process.env){return{maxAgeMs:hs("TOKMIZER_CCR_MAX_AGE_MS",uS(),e),maxBytes:hs("TOKMIZER_CCR_DIR_CAP_BYTES",iS,e),entryMaxBytes:hs("TOKMIZER_CCR_ENTRY_MAX_BYTES",Ld,e)}}function cS(e){return`${zs(e)}${lS}`}async function Pd(e){await Xx(e,{recursive:!0,mode:448});try{await Dd(e,448)}catch{}}function fS(e=process.cwd()){let t;try{t=nS(Id(e))}catch{t=Id(e)}for(let n=t;;n=Od(n)){if(eS(sS(n,".git")))return n;if(Od(n)===n)return t}}function dS(e){return e===""?[]:(e.endsWith(`
|
|
112
112
|
`)?e.slice(0,-1):e).split(`
|
|
113
|
-
`)}async function
|
|
114
|
-
`).map(o=>o.replace(/\r$/,"")).filter(o=>
|
|
115
|
-
`).map(o=>
|
|
116
|
-
`)}function
|
|
113
|
+
`)}async function pS(e,t,n=process.env,r={}){if(de()||!aS.test(e))return!1;t=Mr(t);let s=Buffer.byteLength(t,"utf8");if(s>hs("TOKMIZER_CCR_ENTRY_MAX_BYTES",Ld,n))return!1;let o=zs(e),i=`${o}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await Pd(v()),await Pd(Bs()),de())return!1;if(await $d(i,t,{mode:384}),await Dd(i,384),de())return await Cd(i,{force:!0}),!1;await Qx(i,o)}catch{try{await Cd(i)}catch{}return!1}let a={at:Date.now(),bytes:s,lines:dS(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{},project:fS(r.cwd)};try{await $d(cS(e),JSON.stringify(a),{mode:384})}catch{}return!0}function Hd(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||de()||Fd().disabled===!0}function $e(e,t){let n=e.replace(mS,"> ");if(!n.includes("[tkr:")&&!n.includes("[same output as "))return n;let r=t==null?null:t.split(`
|
|
114
|
+
`).map(o=>o.replace(/\r$/,"")).filter(o=>Nd.test(o)),s=o=>{if(r==null)return!1;let i=hS.find(a=>a(o));return i!=null&&!r.some(i)};return n.split(`
|
|
115
|
+
`).map(o=>Nd.test(o)&&!s(o)?`> ${o}`:o).join(`
|
|
116
|
+
`)}function Bd(e,t,n){let r=jd(n).entryMaxBytes,s=e===""||e.endsWith(`
|
|
117
117
|
`)?"":`
|
|
118
118
|
`,o=i=>`${Math.ceil(i/(1024*1024))} MB`;return`${s}[tkr: full output too large to keep (${o(t)} > ${o(r)} limit), no restore available]
|
|
119
|
-
`}function
|
|
119
|
+
`}function gS(e){return`${e===""||e.endsWith(`
|
|
120
120
|
`)?"":`
|
|
121
121
|
`}[tkr: the full output could not be saved, no restore available]
|
|
122
|
-
`}function
|
|
122
|
+
`}function zd(e,t){let n=Buffer.byteLength(e,"utf8");return n>jd(t).entryMaxBytes?n:null}async function Oi(e,t,n,r){let s=rS("sha256").update(e).digest("hex").slice(0,16);return await pS(s,e,r,{partial:t,label:n})?s:null}function Ud(e,t){return`${e===""||e.endsWith(`
|
|
123
123
|
`)?"":`
|
|
124
124
|
`}[tkr restore ${t}]
|
|
125
|
-
`}async function
|
|
126
|
-
`);
|
|
127
|
-
\u2026 (output truncated at ${
|
|
128
|
-
\u2026 (stderr truncated at ${
|
|
125
|
+
`}async function un(e,t,n=process.env,r={}){if(t=$e(t,r.raw),Hd(n)||!e)return t;let s=a=>Ud(t,a);if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(s("0".repeat(16)),"utf8"))return t;if(r.raw){let a=await Oi(r.raw,!1,r.label,n);if(a)return`${t}${s(a)}`}let o=await Oi(e,!0,r.label,n);if(o)return`${t}${s(o)}`;if(de())return t;let i=zd(r.raw||e,n);return i?`${t}${Bd(t,i,n)}`:r.raw??`${t}${gS(t)}`}async function gs(e,t,n=process.env,r={}){if(t=$e(t,e),Hd(n)||!e)return t;let s=await Oi(e,!1,r.label,n);if(s)return`${t}${Ud(t,s)}`;if(de())return t;let o=zd(e,n);return o?`${t}${Bd(t,o,n)}`:e}var Md,oS,iS,Ld,aS,lS,SD,mS,Nd,hS,Ii=b(()=>{"use strict";Gn();ms();Z();Jn();Md=1440*60*1e3,oS=30*Md,iS=200*1024*1024,Ld=8*1024*1024,aS=/^[0-9a-f]{8,64}$/i,lS=".meta",SD=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list [--all-projects]"," tkr restore --grep <pattern> [--all-projects]",""].join(`
|
|
126
|
+
`);mS=/^(?=\[tkr |\[tokmizer\])/gm,Nd=/^\[(?:tkr:|same output as )/,hS=[e=>e===ln,e=>/^\[tkr: previous log line repeated \d+ additional times\]$/.test(e),e=>/^\[same output as `.*` earlier in this session, unchanged, ~\d+ tokens\]$/.test(e)]});var Mi={};xn(Mi,{CAPTURING_ENV:()=>Di,POST_EXIT_IDLE_MS:()=>Kd,POST_EXIT_MAX_MS:()=>Vd,commandLine:()=>Yd,kickBackgroundEnroll:()=>ys,processCapturedOutput:()=>bs,resolveExecTimeoutMs:()=>qd,runWrapped:()=>CS,signalNumber:()=>Pi,underCapturingExec:()=>vS});import{existsSync as Zd,readFileSync as yS,writeFileSync as bS,mkdirSync as kS}from"node:fs";import{join as _S}from"node:path";import{constants as wS}from"node:os";import{fileURLToPath as xS}from"node:url";import{StringDecoder as SS}from"node:string_decoder";function Gd(e,t){return e.length<t.length&&Buffer.byteLength(e,"utf8")<Buffer.byteLength(t,"utf8")}function vS(e=process.env){return e[Di]==="1"}function Wd(e,t){let n=new SS("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function ys(){try{if(!On()||!Zd(Fa()))return;let e=process.env.TOKMIZER_TKR_BIN||xS(new URL("../bin/tkr.js",import.meta.url));if(!we()&&!Zd(e))return;let t=_S(v(),"enroll-kick");try{let o=Number(yS(t,"utf8"));if(Number.isFinite(o)&&Date.now()-o<ES)return}catch{}kS(v(),{recursive:!0,mode:448}),bS(t,String(Date.now()));let[n,...r]=Ot(e);(0,Ni.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore",windowsHide:!0}).unref()}catch{}}function qd(e){let t=Number(e.TOKMIZER_EXEC_TIMEOUT_MS);if(Number.isFinite(t)&&t>0)return t;let n=Number(e.BASH_MAX_TIMEOUT_MS);return Number.isFinite(n)&&n>6e5?n:6e5}function Pi(e){return wS.signals[e]??RS[e]??15}function Yd(e){return e.map(t=>AS.test(t)?t:Se(t)).join(" ")}function $S(e){let t=Bn(e);if(t===null)return!1;let[n,...r]=Be(t).split(/\s+/);return/^(?:cat|head|nl)(?:\.exe)?$/i.test(n?.split(/[\\/]/).pop()??"")&&r.some(s=>s!==""&&!s.startsWith("-"))}async function CS(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=de(),s={...gd(),[Di]:"1"},o=(0,Ni.default)(Tc(t,s),n,{stdio:["inherit","pipe","pipe"],env:s,windowsHide:!0}),i=!1;o.on("spawn",()=>{i=!0});let a=N=>{try{o.kill(N)}catch{}},l=()=>a("SIGINT"),u=()=>a("SIGTERM");process.on("SIGINT",l),process.on("SIGTERM",u);let c=[],f=[],d=0,p=0,y=!1,g=!1;o.stdout?.on("data",N=>{if(d>=cn){y=!0;return}let M=cn-d,W=N.length>M?N.subarray(0,M):N;c.push(W),d+=W.length,N.length>M&&(y=!0)}),o.stderr?.on("data",N=>{if(p>=cn){g=!0;return}let M=cn-p,W=N.length>M?N.subarray(0,M):N;f.push(W),p+=W.length,N.length>M&&(g=!0)});let m,_,w,E,R;try{R=await new Promise((N,M)=>{o.on("error",J=>{m&&clearTimeout(m),i?N(1):M(J)});let W=null,ne=()=>{W!=null&&(m&&clearTimeout(m),w&&clearTimeout(w),E&&clearTimeout(E),N(W))},q=()=>{o.stdout?.destroy(),o.stderr?.destroy(),ne()},P=()=>{w&&clearTimeout(w),w=setTimeout(q,Kd)};o.on("exit",(J,H)=>{m&&clearTimeout(m),_&&clearTimeout(_),W=J??(H?128+Pi(H):0),P(),E=setTimeout(q,Vd),o.stdout?.on("data",P),o.stderr?.on("data",P)}),o.on("close",(J,H)=>{W==null&&(W=J??(H?128+Pi(H):0)),ne()}),m=setTimeout(()=>{o.kill("SIGTERM"),_=setTimeout(()=>o.kill("SIGKILL"),2e3)},TS),m.unref?.()})}finally{m&&clearTimeout(m),_&&clearTimeout(_),w&&clearTimeout(w),E&&clearTimeout(E),process.off("SIGINT",l),process.off("SIGTERM",u)}let $=Wd(c,y),F=Wd(f,g);return bs({argv:e,stdout:$,stderr:F,exitCode:R,truncated:y,stderrTruncated:g},{yolo:r,env:process.env,onMissingState:ys})}async function bs({argv:e,stdout:t,stderr:n,exitCode:r,truncated:s,stderrTruncated:o},{yolo:i,env:a,resolver:l,onMissingState:u,deferAccounting:c,...f}){let d=s?`
|
|
127
|
+
\u2026 (output truncated at ${cn/1048576}MB)`:"",p=o?`
|
|
128
|
+
\u2026 (stderr truncated at ${cn/(1024*1024)}MB)`:"",y=()=>{let g=t+d,m=Buffer.byteLength(g,"utf8");return{stdout:g,stderr:n+p,code:r??0,filterId:null,rawBytes:m,filteredBytes:m,truncated:s}};try{let g=await Et();g||u?.();let m=await ze();if(!m.enabled)return y();let _=a.CLAUDE_CODE_SESSION_ID;_&&g?.token&&Gr(_,{tool:"Bash",target:e.join(" "),...r!=null&&r!==0?{fail:1}:{}});let w=g?Xt(g.allowedFilters,Dr(g)):null,E=new Set(m.filters.disabled.map(ce)),R=w&&E.size>0?new Set([...w].filter(O=>!E.has(O))):w,$=Yd(e);g&&!l&&ds();let F=await Qe($,t,R,{verbosity:m.outputVerbosity,resolver:l,yolo:i,exitCode:r}),N=$e(n,n),M=0,W=0;if((i||r===0||r==null)&&Buffer.byteLength(n,"utf8")>=(i?1:Jd)){let O=await Qe($,n,R,{verbosity:m.outputVerbosity,resolver:l,yolo:i,exitCode:r});if(N=$e(O.output,n),!i&&O.output!==n)try{N=await un(O.droppedTail??null,O.output,a,{raw:o?null:n,label:et($)})}catch{}M=O.rawBytes,W=O.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=Jd){let O=await Qe($,n,R,{verbosity:m.outputVerbosity,resolver:l,exitCode:r});if(O.failureSummary||O.output!==n){try{N=await un(O.droppedTail??null,O.output,a,O.failureSummary?{}:{raw:o?null:n,label:et($)})}catch{N=$e(O.output,n)}M=O.rawBytes,W=O.filteredBytes}}!o&&n.length>0&&!Gd(N,n)&&(N=$e(n,n),M=0,W=0);let q=!i&&F.output!==t&&$S($)?`${F.output}${F.output.endsWith(`
|
|
129
129
|
`)?"":`
|
|
130
|
-
`}${
|
|
131
|
-
`).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],u=Buffer.byteLength(l)+1;if(o+u>n)break;s.push(l),o+=u}s.reverse();let i=`${e}.tmp-${process.pid}
|
|
130
|
+
`}${ln}`:F.output,P=$e(q,t);if(!i&&F.filteredBytes<F.rawBytes)try{P=new RegExp(Sr.source,"m").test(F.output)?await gs(t,q,a,{label:et($)}):await un(F.droppedTail??null,q,a,{raw:s?null:t,label:et($)})}catch{}!s&&t.length>0&&!Gd(P,t)&&(P=$e(t,t));let J=P+d,H=N+p,K=us(a).host,z=Jr(F.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(J,"utf8")+Buffer.byteLength(H,"utf8"),ls(K)),V=!1,me=async()=>{if(!V){V=!0;try{Ur(z.raw,z.filtered,void 0,!1,K,"sh",et($),"cwd"in f?f.cwd:process.cwd(),Zr(F)),g&&await Br({cmd:$,filterId:F.filterId,rawBytes:F.rawBytes,filteredBytes:F.filteredBytes}),await jr({cmd:$,tokensSaved:Math.max(0,Math.round((z.raw-z.filtered)/4)),rawTokens:Math.round(z.raw/4),optimized:F.filterId!=null,telemetryOptIn:m.telemetryOptIn&&(!c||(await ze()).telemetryOptIn),sessionId:_,host:K})}catch{}}};return c?c(me):await me(),{stdout:J,stderr:H,code:r??0,filterId:F.filterId,rawBytes:F.rawBytes+M,filteredBytes:F.filteredBytes+W,truncated:s}}catch{return y()}finally{l||ps()}}var Ni,cn,Jd,ES,Kd,Vd,Di,TS,RS,AS,ks=b(()=>{"use strict";Ni=bm(Sc(),1);Rc();Un();Xe();Qt();Cn();Z();Ho();Go();Hr();Ko();Wr();nn();er();yd();Ci();Ii();Vt();ms();xo();Jn();tt();In();pe();cn=10*1024*1024,Jd=1024,ES=6e4;Kd=200,Vd=1e3,Di="TOKMIZER_EXEC_CAPTURING";TS=qd(process.env),RS={SIGHUP:1,SIGINT:2,SIGQUIT:3,SIGILL:4,SIGTRAP:5,SIGABRT:6,SIGBUS:7,SIGFPE:8,SIGKILL:9,SIGUSR1:10,SIGSEGV:11,SIGUSR2:12,SIGPIPE:13,SIGALRM:14,SIGTERM:15};AS=/^[A-Za-z0-9_@%+=:,./-]+$/});var qi={};xn(qi,{FOLD_MARKER_RE:()=>Sr,captureForRestore:()=>un,captureOriginalForRestore:()=>gs,closeDaemonResolver:()=>ps,countedSaving:()=>Jr,graceExceeded:()=>Dr,installDaemonResolver:()=>ds,loadSettingsCache:()=>ze,neutralizeMarkers:()=>$e,processOutput:()=>Qe,recordEvent:()=>Br,recordStat:()=>Ur,recordTelemetry:()=>jr,resolveAllowedFilters:()=>Xt,statCmdLabel:()=>et,statOutcome:()=>Zr});var Yi=b(()=>{"use strict";Un();Ii();Vt();Qt();Ho();Go();Hr();Ko();Ci();nn()});Pn();Un();Qt();import{mkdirSync as vR,readFileSync as la,realpathSync as TR,rmSync as Os,writeFileSync as RR}from"node:fs";import{join as ia}from"node:path";Co();Z();Gt();import{randomBytes as gR,randomUUID as om}from"node:crypto";import{lstatSync as yR,mkdirSync as bR,realpathSync as kR,renameSync as _R,rmSync as wR,writeFileSync as xR}from"node:fs";import{dirname as SR,join as Cs}from"node:path";St();Pn();Z();Jn();ks();import{timingSafeEqual as ra}from"node:crypto";import{chmodSync as aR,lstatSync as lR,realpathSync as uR}from"node:fs";import{dirname as cR}from"node:path";import{createServer as fR}from"node:net";Xr();qo();xr();import{spawnSync as bp}from"node:child_process";import{existsSync as Ze,readFileSync as sr,readdirSync as xs,statSync as xE}from"node:fs";import{homedir as Nt,userInfo as SE}from"node:os";import{fileURLToPath as kp}from"node:url";import{dirname as zi,join as D,resolve as EE,win32 as vE}from"node:path";Z();import{appendFileSync as DS,chmodSync as MS,mkdirSync as LS,existsSync as FS,readFileSync as nM,rmSync as rM}from"node:fs";import{dirname as jS,join as HS}from"node:path";import{readFileSync as OS,renameSync as IS,statSync as PS,writeFileSync as NS}from"node:fs";function Xd(e,t,n){try{if(PS(e).size<=t)return;let r=OS(e,"utf8").split(`
|
|
131
|
+
`).filter(a=>a.trim()!==""),s=[],o=0;for(let a=r.length-1;a>=0;a-=1){let l=r[a],u=Buffer.byteLength(l)+1;if(o+u>n)break;s.push(l),o+=u}s.reverse();let i=`${e}.tmp-${process.pid}`;NS(i,s.length?`${s.join(`
|
|
132
132
|
`)}
|
|
133
|
-
`:"",{mode:384}),
|
|
134
|
-
`,{mode:384}),
|
|
135
|
-
`)){let s=
|
|
136
|
-
`,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?
|
|
137
|
-
`||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function
|
|
133
|
+
`:"",{mode:384}),IS(i,e)}catch{}}var BS="usage.jsonl";var Qd=2*1024*1024;function zS(){return HS(v(),BS)}function le(e,t,n=zS()){try{let r=jS(n);FS(r)||LS(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";DS(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
|
|
134
|
+
`,{mode:384}),MS(n,384),Xd(n,Qd,Qd/2)}catch{}}tt();pe();$t();Z();import{execFileSync as uE}from"node:child_process";import{mkdirSync as cE,readFileSync as sp,renameSync as fE,statSync as dE,writeFileSync as pE}from"node:fs";import{join as op}from"node:path";import{closeSync as US,openSync as ZS,readSync as JS,readdirSync as GS,readFileSync as WS,statSync as tp}from"node:fs";import{homedir as KS}from"node:os";import{isAbsolute as VS,join as _s,resolve as qS}from"node:path";var YS=/^[A-Za-z0-9._+@%:,/-]+$/,XS=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),QS=32,eE=4*1024*1024;function Fi(e){let t;try{t=ZS(e,"r");let n=Buffer.alloc(4),r=JS(t,n,0,4,0);return r>=2&&n[0]===35&&n[1]===33?"#!":r===4?n.toString("hex"):null}catch{return null}finally{t!==void 0&&US(t)}}function rr(e,t=process.platform){try{let n=tp(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=Fi(e);return r==="#!"||r!==null&&XS.has(r)}catch{return!1}}function tE(e){if(/\.[A-Za-z0-9]+$/.test(e))return[e];let t=(process.env.PATHEXT??".COM;.EXE;.BAT;.CMD").split(";").filter(Boolean);return[e,...t.map(n=>e+n.toLowerCase())]}function Pt(e,t,n,r=process.platform){if(!YS.test(e))return!1;let s=r==="win32";if(e.includes("/"))return rr(qS(t??process.cwd(),e),r);if(!n)return!1;let o=s?tE(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!VS(i))){for(let a of o)if(rr(_s(i,a),r))return!0}return!1}var nE=/^eval \$'([^\s'()=]+) \(\) /,rE=/^([^\s'"()=]+) \(\) \{$/,sE=/^alias -- ([^\s=]+)=(.*)$/,oE=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,iE=/^export PATH=(.*)$/,aE=/^(?:--colou?r(?:=\S+)?|-G)$/;function ep(e){return e.length>=2&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1).replace(/'\\''/g,"'"):e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e}function lE(e,t){let n="";for(let r of e.split(`
|
|
135
|
+
`)){let s=iE.exec(r);if(s&&n!=="# Functions"){let o=ep(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||oE.test(r))){n=r;continue}if(n==="# Functions"){let o=nE.exec(r)??rE.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=sE.exec(r);o&&t.aliases.set(o[1],ep(o[2].trim()))}}}function Li(e){return e?.code==="ENOENT"}function np(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=_s(e||_s(KS(),".claude"),"shell-snapshots"),r=[];try{for(let s of GS(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=_s(n,s);try{let i=tp(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){Li(i)||(t.uncertain=!0)}}}catch(s){return Li(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,QS);for(let s of r)try{if(s.size>eE)throw new Error("snapshot too large");lE(WS(s.path,"utf8"),t)}catch(o){Li(o)||(t.uncertain=!0)}return t}function rp(e,t){if(t.uncertain||t.functions.has(e))return!0;let n=t.aliases.get(e);if(n===void 0)return!1;let r=n.trim().split(/\s+/);return r[0]!==e||!r.slice(1).every(s=>aE.test(s))}var mE="exec-probe.json",hE=6e4;function gE(){return op(v(),mE)}function yE(e){try{let t=_e(sp(e,"utf8"));if(t==null||typeof t!="object")return null;let n=t;return typeof n.key!="string"||typeof n.ok!="boolean"?null:{key:n.key,ok:n.ok,at:typeof n.at=="number"?n.at:0,skipped:typeof n.skipped=="number"&&n.skipped>=0?n.skipped:0}}catch{return null}}function bE(e,t){try{cE(op(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;pE(n,JSON.stringify(t),{mode:384}),fE(n,e)}catch{}}function kE(e){try{return uE(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function _E(e,t){try{let r=sp(e,"utf8").split(`
|
|
136
|
+
`,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?Pt(r[1]??"",void 0,t):rr(s)}catch{return!1}}function wE(e,t,n){try{let r=dE(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function ji(e,t=process.platform,n=process.env.PATH,r=gE(),s=Date.now()){let o=t!=="win32"&&Fi(e)==="#!",i=wE(e,o,n),a=yE(r);if(a?.key===i&&(a.ok||s-a.at<hE))return a.ok;let l=rr(e,t)&&(o?_E(e,n):kE(e));return bE(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var TE=new Set(["tkr","tkr-exec","token","claude","cd","export","source","echo","mkdir","rm","mv","cp","chmod","ln","true","false",":","test","[","exit","return","nohup","sudo","doas","env"]),RE=new Set(["for","while","until","if","then","else","elif","fi","do","done","case","esac","select","function","time","coproc","in","!","[[","]]","{","}",".","declare","typeset","local","readonly","unset","set","shift","trap","wait","read","eval","exec","break","continue","pushd","popd","dirs","alias","unalias","hash","ulimit","umask","getopts","let","shopt","builtin","command","compgen","complete","disown","suspend","jobs","fg","bg","kill","history","fc","bind","enable","caller","type","printf","pwd","times","logout","mapfile","readarray","help","which","print","whence","where","autoload","zmodload","setopt","unsetopt","emulate","noglob","rehash","functions","bindkey","zle","vared","sched","limit","unlimit","zstyle","zparseopts","ttyctl"]),ip=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),ap="(?:dev|start|serve|watch|preview)",AE=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${ap}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${ap}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|python[0-9.]*\\s+-m\\s+(?:pytest|unittest|mypy|ruff|pylint|flake8|black|tox|nox)(?:\\s|$)|php\\s+-l(?:\\s|$)|php\\s+(?:\\S*/)?(?:phpunit|pest|paratest|phpstan|pint|ecs|php-cs-fixer|psalm|rector|run-tests\\.php)(?:\\s|$)|php\\s+artisan\\s+(?!(?:serve|tinker|queue:work|queue:listen|horizon|octane:start|reverb:start|schedule:work|pail|dev)(?:\\s|$))\\S)`),$E=/(?:^|\s)--watch(?:\s|=|$)/;function CE(e){return AE.test(e)&&!$E.test(e)}var OE=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,IE=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,_p=3;function wp(e){let t=OE.exec(e);if(!t)return null;let n=t[2]==="fish";if(n&&t[3]!=="-c")return null;let r=t[4],s=t[1].length+1,o=e.indexOf(r,s);if(o<=s)return null;let i=e.slice(o+1);if(i&&!/^\s/.test(i))return null;let a=e.slice(s,o);return r==='"'&&/[$`\\!]/.test(a)||n&&IE.test(a)?null:{script:a,start:s,end:o,quote:r}}var PE=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function NE(e){return dn(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Sp(n.text);return r!==""&&!PE.has(r)&&!Ui.test(r)}).length>1}function DE(e,t,n,r,s){if(n>=_p)return null;let o=wp(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],f=Ep(i,t,n+1,r,g=>c.push(g));if(f===i||u==='"'&&/["$`]/.test(f))return null;let d=u==="'"?f.replace(/'/g,"'\\''"):f,p=`${e.slice(0,a)}${d}${e.slice(l)}`,y=NE(i);if(s)for(let g of y?[e,...c]:c)s(g);return y?`${t} ${p}`:p}var lp=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,ME=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*[fF][a-zA-Z]*)(?:\s|=|$)/,LE=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]),up=new Set(["npm","pnpm","yarn","bun"]),cp=/^(?:dev|start|serve|preview|watch)(?::\S*)?$/,FE=new Set(["--filter","-F","--dir","-C","--prefix","--workspace","-w","--cwd"]),fp=new Set(["npx","pnpx","bunx"]),jE=new Set(["nodemon","top","htop","btop","watch"]),HE=new Set(["tsc","vitest","jest","webpack","rollup","esbuild","tsup","babel","sass","tailwindcss","mocha","swc","parcel","nest"]),BE=/(?:^|\s)--watch(?:All)?(?:\s|=(?!false(?:\s|$))|$)/,dp=/(?:^|\s)-w(?:\s|$)/;function zE(e){let t=e.map(i=>i.replace(/['"]/g,""));for(;t.length>1&&(t[0]==="env"||/^[A-Za-z_][A-Za-z0-9_]*=/.test(t[0]));)t=t.slice(1);let n=fn(t[0]??"");if(fp.has(n)||up.has(n)&&(t[1]==="exec"||t[1]==="dlx"))t=t.slice(fp.has(n)?1:2).filter((i,a,l)=>!(i.startsWith("-")&&l.slice(0,a).every(u=>u.startsWith("-")))),n=fn(t[0]??"");else if(up.has(n)){let i=t.slice(1).filter((l,u,c)=>!l.startsWith("-")&&!FE.has(c[u-1]??""));i[0]==="workspace"&&i.splice(0,2);let a=i[0]==="run"||i[0]==="run-script"?i[1]:i[0];return a!==void 0&&cp.test(a)}let r=t.slice(1),s=r.join(" "),o=r.find(i=>!i.startsWith("-"));if(jE.has(n)||BE.test(s)||HE.has(n)&&dp.test(s))return!0;switch(n){case"next":return o==="dev"||o==="start";case"vite":return!r.includes("build")&&!r.includes("optimize");case"vitest":return o==="watch"||o==="dev";case"cargo":case"dotnet":return o==="watch";case"turbo":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]:o;return i!==void 0&&cp.test(i)}case"nx":{let i=o==="run"?r.filter(a=>!a.startsWith("-"))[1]?.split(":")[1]:o;return i!==void 0&&/^(?:serve|dev|start|watch)$/.test(i)}case"ping":return!r.some(i=>/^-[a-zA-Z]*c/.test(i));case"docker":case"podman":case"nerdctl":case"docker-compose":{let i=n==="docker-compose"?r:o==="compose"?r.slice(r.indexOf("compose")+1):null;return i?i.includes("up")&&!i.some(a=>a==="--detach"||/^-[a-zA-Z]*d[a-zA-Z]*$/.test(a)):o==="stats"&&!r.includes("--no-stream")||o==="events"}case"kubectl":return o==="port-forward"||(o==="get"||o==="rollout")&&dp.test(s)||/(?:^|\s)--watch-only(?:\s|=|$)/.test(s);default:return!1}}function UE(e,t){let n=fn(t);return n==="tail"?ME.test(e):n==="journalctl"?lp.test(e):n==="stern"||LE.has(n)&&/\blogs?\b/.test(e)&&lp.test(e)?!0:zE(e.split(/\s+/))}var Ui=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,ZE=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,JE=/(?:^|[;&|\n({])\s*(?:[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)|function\s+[A-Za-z_])/;function fn(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function xp(e){let t=new Array(e.length).fill(!1),n=[],r=0;for(;r<e.length;){let s=e[r],o=e[r+1],i=n[n.length-1];if(i==="'"){s==="'"&&n.pop(),r+=1;continue}if(s==="\\"){if(o===void 0)return null;r+=2;continue}if(i==="$'"){s==="'"&&n.pop(),r+=1;continue}if(s==="$"&&(o==="("||o==="{")){n.push(o==="("?")":"}"),r+=2;continue}if(s==="`"){i==="`"?n.pop():n.push("`"),r+=1;continue}if(i==='"'){s==='"'&&n.pop(),r+=1;continue}if(s==="$"&&o==="'"){n.push("$'"),r+=2;continue}if(s==="'"||s==='"'){n.push(s),r+=1;continue}if(s==="("||s==="{"&&i==="}"){n.push(s==="("?")":"}"),r+=1;continue}if(s===i){n.pop(),r+=1;continue}if(s===")"&&i===void 0)return null;t[r]=i===void 0,r+=1}return n.length===0?t:null}function Hi(e){let t=xp(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function dn(e){let t=xp(e);if(!t)return[{kind:"cmd",text:e,unsafe:!0}];let n=[],r="",s=0,o=()=>{r.length>0&&(n.push({kind:"cmd",text:r}),r="")},i=(a,l)=>{o(),n.push({kind:"sep",text:a}),s+=l};for(;s<e.length;){let a=e[s],l=e[s+1];if(t[s]){if(a===">"&&l==="|"){r+=">|",s+=2;continue}if(a==="&"&&l==="&"){i("&&",2);continue}if(a==="&"&&l!==">"){let u=r.trimEnd(),c=u[u.length-1];if(c!==">"&&c!=="<"&&c!=="&"){i("&",1);continue}}if(a==="|"&&l==="|"){i("||",2);continue}if(a==="|"&&l==="&"){i("|&",2);continue}if(a===";"&&l===";"){let u=e[s+2]==="&";i(u?";;&":";;",u?3:2);continue}if(a===";"||a===`
|
|
137
|
+
`||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function Sp(e){return e.trim().split(/\s+/)[0]??""}function Ce(e,t=process.platform){try{let n=zi(kp(import.meta.url)),r=t==="win32",s=e&&e!=="claude-code"&&e!=="codex"&&!r?`TOKMIZER_HOST=${e} `:"";if(r&&(!e||e==="claude-code")){let l=D(n,"..","bin","tkr-exec.exe");if(Ze(l))return ji(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=D(n,"..","bin","tkr-exec"),i=!r&&Ze(o);if(i&&!ji(o,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=hf(D(n,"..","bin","tkr-exec.js"));if(l&&(i||Ze(D(n,"..","bin","tkr-exec.js"))))return`${s}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${s}'${o.replace(/'/g,"'\\''")}'`;if(we()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${l.replace(/'/g,"'\\''")}' exec`}let a=D(n,"..","bin","tkr-exec.js");return Ze(a)?`${s}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Zi(e,t="tkr-exec",n=()=>!0,r){return Ep(e,t,0,n,r)}var GE=new Set(["{","for","while","until","if","case","select"]),WE=new Set(["}","done","fi","esac"]),KE=new Set(["then","do","else","elif","!","time","{","if","while","until"]);function VE(e,t){let n=e[t+1];return Hi(e[t].text)||n?.kind==="sep"&&(n.text==="|"||n.text==="|&")}function qE(e){let t=new Set,n=[];for(let r=0;r<e.length;r++){let s=e[r];if(!(s.kind!=="cmd"||s.unsafe))for(let o of s.text.trim().split(/\s+/)){if(WE.has(o)){let i=n.pop();if(i!==void 0&&VE(e,r))for(let a=i;a<=r;a++)t.add(a);continue}if(GE.has(o)&&n.push(r),!KE.has(o))break}}return t}function Ep(e,t,n,r,s){if(e.includes("<<")||JE.test(e))return e;let o=dn(e),i=qE(o),a=[];for(let l=0;l<o.length;l++){let u=o[l];if(u.kind==="sep"||u.unsafe||i.has(l)){a.push(u.text);continue}let c=u.text.trim();if(!c){a.push(u.text);continue}let f=Sp(c),d=o[l+1],p=d?.kind==="sep"&&(d.text==="|"||d.text==="|&"),y=d?.kind==="sep"&&d.text==="&",g=!p&&!y&&!Hi(u.text)&&!u.text.includes("<(")&&!u.text.includes(">(")?DE(c,t,n,r,s):null;if(g!==null){a.push(`${u.text.match(/^\s*/)?.[0]??""}${g}${u.text.slice(u.text.trimEnd().length)}`);continue}if(c===t||c.startsWith(t)&&/^\s/.test(c.slice(t.length))||TE.has(f)||RE.has(f)||(ip.has(f)||ip.has(fn(f)))&&!CE(c)||Ui.test(f)||f.startsWith("(")||f.startsWith("#")||f.startsWith("<")||f.startsWith(">")||ZE.test(c)||UE(c,f)||f.endsWith(")")||p||y||Hi(u.text)||u.text.includes("<(")||u.text.includes(">(")||f==="node"&&c.includes("tkr-exec.js")||!r(f,c)){a.push(u.text);continue}let m=u.text.match(/^\s*/)?.[0]??"",_=u.text.slice(u.text.trimEnd().length);s?.(c),a.push(`${m}${t} ${c}${_}`)}return a.join("")}var YE=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),XE=new Set(["cd","cat","head","tail","ls","tree","find","grep","rg","wc","nl","sort","cut","diff","stat","file","du","df","ps","jq","yq","pwd","which"]),QE=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),ev={find:/^-(?:delete|exec|execdir|ok|okdir|fprint|fls)/,sort:/^(?:-[^-]*o|--output|--compress-program)/,rg:/^(?:--pre|--hostname-bin|-[^-]*z|--search-zip)/,yq:/^(?:-[^-]*[is]|--inplace|--split-exp)/,file:/^(?:-C|--compile)/,tree:/^(?:-o|--output|-R$|-H$)/,git:/^(?:--output|--ext-diff|--textconv|-c$|--exec-path|--git-dir|--work-tree)/,eslint:/^--fix/},ws=["test","run test","run build","run lint","run typecheck"],tv={npm:new Set(ws),pnpm:new Set([...ws,"build","lint","typecheck"]),yarn:new Set([...ws,"build","lint","typecheck"]),bun:new Set(ws),cargo:new Set(["test","build","check","clippy"]),go:new Set(["test","build","vet"]),mvn:new Set(["test","compile","verify"]),gradle:new Set(["test","build","check"]),dotnet:new Set(["test","build"])},nv=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function vp(e,t,n=0){if(/\$|`|<\(|>\(|\\\r?\n/.test(e)||/>/.test(e.replace(/2>&1|[12]?>\s*\/dev\/null/g,"")))return!1;for(let r of dn(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<_p?wp(r.text.trim()):null;if(s){if(!vp(s.script,t,n+1))return!1;continue}let o=r.text.trim().split(/\s+/).filter(Boolean).map(u=>u.replace(/['"\\]/g,""));if(o.length===0)continue;if(o.some(u=>Ui.test(u)))return!1;let i=fn(o[0]);if(i!==o[0])return!1;let a=ev[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?QE.has(o[1]??""):XE.has(i))||t&&nv.has(i))continue;let l=t?tv[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function Tp(e,t,n=Ce(t),r=le,s=Ss(),o=process.env.PATH,i=ir){if(!X(e)||e.tool_name!=="Bash"||t==="claude-code"&&iv(i()))return null;let a=e.tool_input;if(!X(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(m=>!YE.has(m)))return null;let u=typeof e.cwd=="string"&&e.cwd?e.cwd:a.workdir,c=typeof u=="string"&&u?u:void 0,f=typeof e.session_id=="string"&&e.session_id?e.session_id:"unknown",d=typeof e.permission_mode=="string"?e.permission_mode:void 0,p=t==="claude-code"?sv(l,c,o):null;if(p)return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...a,command:p}}});let y=Dp(l,{host:t,sessionId:f,cwd:c,claudeDirs:s,pathEnv:o,permissionMode:d},n,r);if(!y)return null;let g={...a,command:y.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:g}:y.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${y.allowedBy}`,updatedInput:g}:y.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:g}:{hookEventName:"PreToolUse",updatedInput:g}})}var rv=/^tkr\s+restore\s+([0-9a-f]{8,64}(?:\s+--lines\s+\d+:\d+)?|--list)\s*$/;function sv(e,t,n,r=D(zi(kp(import.meta.url)),"..","bin","tkr.js")){let s=rv.exec(e.trim());return!s||Pt("tkr",t,n)||!we()&&!Ze(r)?null:`${Ot(r).map(Se).join(" ")} restore ${s[1].trim()}`}var ov=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function ir(e=process.env,t=process.platform){let n=Number(e.CLAUDE_PID)||process.ppid;if(t==="win32"||!Number.isInteger(n)||n<=1)return null;try{let r=bp("ps",["-ww","-o","args=","-p",String(n)],{encoding:"utf8",timeout:2e3});return r.status===0&&r.stdout.trim()?r.stdout:null}catch{return null}}function iv(e){return e===null||ov.test(e)}function av(e,t){if(!Ze(e))return"missing";try{let n=sr(e,"utf8").replace(/^\uFEFF/,"");return n.trim()===""?{}:JSON.parse(t?Rp(n):n)}catch{return"unreadable"}}function Rp(e){let t="",n=!1;for(let r=0;r<e.length;r++){let s=e[r];if(n){t+=s,s==="\\"?t+=e[++r]??"":s==='"'&&(n=!1);continue}if(s==='"')n=!0,t+=s;else if(s==="/"&&e[r+1]==="/"){for(;r<e.length&&e[r]!==`
|
|
138
138
|
`;)r++;t+=`
|
|
139
|
-
`}else if(s==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=s}return t.replace(/,(\s*[}\]])/g,"$1")}function dn(e){let t=[],n=_E(e);for(;;){t.push(n);let r=yp(n);if(r===n)return t;n=r}}function nv(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[M(e,"managed-settings.json")];try{for(let n of xs(M(e,"managed-settings.d")))n.endsWith(".json")&&t.push(M(e,"managed-settings.d",n))}catch{return t}return t}function rv(){try{return bE().username}catch{return""}}function sv(e){return e.error?e.error.code==="ETIMEDOUT":e.status!==1}var ov=5*6e4,fp=new Map;function Tp(e,t){let n=fp.get(e);if(n&&Date.now()-n.at<ov)return n.value;let r=["HKLM","HKCU"].some(s=>sv(gp(e,["query",`${s}\\SOFTWARE\\Policies\\ClaudeCode`,"/v","Settings"],{cwd:t,stdio:"ignore",timeout:2e3,windowsHide:!0})));return fp.set(e,{at:Date.now(),value:r}),r}function iv(){let e=process.env.SystemRoot||"C:\\Windows";return Tp(wE.join(e,"System32","reg.exe"),e)}var dp="/mnt/c/Windows/System32/reg.exe";function av(e){return!process.env.WSL_DISTRO_NAME&&!e("/proc/sys/fs/binfmt_misc/WSLInterop")?!1:e("/mnt/c/Program Files/ClaudeCode")?!0:e(dp)&&Tp(dp,"/mnt/c/Windows")}function lv(e=process.platform,t=rt,n=iv,r=rv(),s=()=>av(t)){if(e==="darwin"){let o="/Library/Managed Preferences";return t(M(o,"com.anthropic.claudecode.plist"))||r!==""&&t(M(o,r,"com.anthropic.claudecode.plist"))}return e==="win32"?n():e==="linux"&&s()}function ar(e,t,n,r){let s=[];for(let o of e){let i=tv(o,t);if(i!=="missing"&&(i==="unreadable"||!X(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function or(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Ss(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?Vr():void 0}}function uv(e,t){let n=_=>[M(_,"settings.json"),M(_,"settings.local.json")],r=_=>n(M(_,".claude")),s=M(It(),".claude"),o=t.configDir||s;if(lv())return"unreadable";let a=[[[...[...new Set([M(o,"remote-settings.json"),M(s,"remote-settings.json")])],...nv()],"managed"],[[M(o,"settings.json")],"loaded"],[[M(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[dn(e).flatMap(r),"extra"]],l=[],u={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},c={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},f=!1,d="managed",p=(_,w)=>{let E=_.permissions;if(d==="managed"&&(_.allowManagedPermissionRulesOnly===!0||X(E)&&E.allowManagedPermissionRulesOnly===!0)&&(f=!0),E===void 0)return!0;if(!X(E))return!1;for(let R of["deny","ask","allow"]){let C=or(E[R]);if(!C)return!1;for(let L of C){let N=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(L);if(N)if(R!=="allow")w.push(Pt((N[1]??"*").replace(/:\*$/," *")));else if(N[1]===void 0||N[1].trim()==="*")c[d]=!0;else{l.push(Pt(N[1].replace(/:\*$/," *")));let F=$v(N[1]);F&&u[d].push({rule:L.trim(),matches:F})}}}return!0},y=[];for(let[_,w]of a){d=w;let E=ar(_,!1,p,!0);if(E==="unreadable")return"unreadable";y.push(...E.matchers)}let g=c.managed||(c.loaded||c.loadedLocal)&&!f,m=[...u.managed,...f?[]:u.loaded];return{matchers:[...y,...g?[]:l],complete:!0,allow:l,allowsEverything:g,guards:y,trustedAllow:m}}function cv(e){let t=[M(It(),".cursor","cli-config.json"),...dn(e).map(n=>M(n,".cursor","cli.json"))];return ar(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!X(s))return!1;let o=or(s.deny);if(!o)return!1;for(let i of o){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",u=l.indexOf(":");r.push(Pt(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function fv(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Rp=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function dv(e,t){let n=e.tools;if(n!==void 0&&!X(n))return!1;let r=[or(e.excludeTools),or(X(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Rp.exec(o);i&&t.push(Pt(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function pp(e){try{return JSON.parse(e)}catch{return null}}function pv(e){let t=e.trim();if(t.startsWith('"""')||t.startsWith("'''"))return null;if(t.startsWith("[")){if(!/\]\s*(?:#.*)?$/.test(t))return null;let n=[];for(let r of t.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'/g)){let s=r[2]??pp(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?pp(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function mv(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let l of n.split(/\r?\n/)){if(/^\s*\[/.test(l))break;let u=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!u)continue;let c=pv(u[2]);if(c===null)return!1;r[u[1]]=c}let s=r.decision;if(s!=="deny"&&s!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||Rp.test(l)))continue;let i=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),a=[r.commandRegex,r.argsPattern].flat().filter(l=>typeof l=="string");if(i.length===0&&a.length===0){t.push(()=>!0);continue}for(let l of i)t.push(Pt(`${l}*`));for(let l of a){let u;try{u=new RegExp(l)}catch{return!1}t.push(c=>u.test(JSON.stringify({command:c}))||Es(u,c))}}return!0}function mp(e){try{return xs(e).filter(t=>t.endsWith(".toml")).map(t=>M(e,t))}catch{return[]}}function hv(e){let t=fv(),n=[M(t,"system-defaults.json"),M(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,M(It(),".gemini","settings.json"),...dn(e).map(s=>M(s,".gemini","settings.json"))].filter(s=>!!s),r=ar(n,!0,dv,!1);if(r==="unreadable")return r;for(let s of[...mp(M(It(),".gemini","policies")),...mp(M(t,"policies"))]){let o;try{o=sr(s,"utf8")}catch{return"unreadable"}if(!mv(o,r.matchers))return"unreadable"}return r}function Bi(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!X(e))return!1;for(let n of["bash","shell","*"]){let r=e[n];if(r!==void 0){if(typeof r=="string"){r!=="allow"&&t.push(()=>!0);continue}if(!X(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(Pt(s.replace(/\?/g,"*")))}}return!0}function hp(e,t){if(e.permissions!==void 0||!Bi(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!X(r))return!1;for(let s of Object.values(r))if(X(s)&&(s.permissions!==void 0||!Bi(s.permission,t)))return!1}}return!0}function gv(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=xs(M(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(sr(M(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function yv(e){let t=M(process.env.XDG_CONFIG_HOME||M(It(),".config"),"opencode"),n=dn(e),r=[t,...n.map(a=>M(a,".opencode"))];if(gv(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>M(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>M(a,l)),...s.slice(0,2).map(l=>M(a,".opencode",l))])].filter(a=>!!a),i=ar(o,!0,hp,!0);if(i==="unreadable")return i;for(let a of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!a)continue;let l;try{l=JSON.parse(vp(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Bi(l,i.matchers):X(l)&&hp(l,i.matchers)))return"unreadable"}return i}function bv(){return ar([M(It(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!X(n))return!1;for(let r of["deny","ask"]){let s=or(n[r]);if(!s)return!1;for(let o of s){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(o);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(Pt(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Es(l,u))}}return!0},!1)}function kv(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function Ap(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let s=Ap(e,t);if(s===void 0)return;if(r.push(s),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function $p(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let s=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!s||s.length===0||!s.every(o=>typeof o=="string"&&o!==""))return null;t.push(`(?:${s.map(Zi).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Es(n,r)}function _v(e,t){let n=kv(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let s={i:r+2},o={};for(;n[s.i]!==")";){let l=n[s.i];if(!l||!/^[A-Za-z_]/.test(l)||n[s.i+1]!=="="||(s.i+=2,o[l]=Ap(n,s),o[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[s.i]===",")s.i++;else if(n[s.i]!==")")return!1}r=s.i;let i="decision"in o?o.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=$p(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function wv(e){if(!rt(e))return[];try{return xs(e).filter(t=>t.endsWith(".rules")).sort().map(t=>M(e,t))}catch{return"unreadable"}}function xv(){return process.platform==="win32"?M(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function Sv(e){if(!(!X(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function Ev(e,t){let n;try{n=Dn(e)}catch{return!1}if(n.rules===void 0)return!0;if(!X(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let s of r){if(!X(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map(Sv);if(o.some(a=>a===void 0))return!1;let i=$p(o);if(!i)return!1;t.push(i)}return!0}function vv(e){let t=process.env.CODEX_HOME||M(It(),".codex"),n=[M(t,"rules"),...dn(e).map(o=>M(o,".codex","rules"))],r=[],s=null;try{s=sr(xv(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!Ev(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=wv(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=sr(a,"utf8")}catch{return"unreadable"}if(!_v(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function X(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Zi(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Tv(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Zi).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Rv=512;function Av(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(cn)]}function Es(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Av(t)){if(n.length>Rv)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function Pt(e){let t=Tv(e);return n=>Es(t,n)}function $v(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let s=new RegExp(`^${Zi(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var Cv={"claude-code":uv,cursor:cv,"gemini-cli":hv,opencode:yv,antigravity:bv,codex:vv},Ov=new Set(["codex"]),Cp=/(?:^|[\s=:/~])\.(?:git|claude|vscode|idea|husky)(?=[/\s;|&)]|$)|(?:^|[\s=:/~])\.(?:bashrc|bash_profile|bash_login|bash_logout|profile|zshrc|zprofile|zshenv|zlogin|zlogout|gitconfig|gitmodules|ripgreprc|mcp\.json)(?![A-Za-z0-9_])/;function Iv(e,t,n){let r=Cv[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function Pv(e,t,n){return e==="unreadable"||Cp.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Sp(t,!Ov.has(n))}var Op=new Set(["default","acceptEdits","dontAsk"]);function Ip(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Op.has(t.permissionMode??"")}var Nv=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function Dv(e){if(!e)return!1;try{for(let t of dn(e)){let n=M(t,".git");if(rt(n))return yE(n).isFile()}}catch{return!0}return!1}function Mv(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,s;return(o,i)=>e.host!=="claude-code"?un(o,e.cwd,n):i!==void 0&&Nv.test(i)&&(s??=Dv(e.cwd))||(r??=ep(t.configDir),!un(o,e.cwd,n)&&!r.paths.some(a=>un(o,e.cwd,a)))?!1:o.includes("/")||!tp(o,r)}var Lv=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Fv(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Ip(e,n)||!Op.has(n.permissionMode??"")||!Lv.test(t)||Cp.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var jv=65536,Hv=/^(?:[A-Za-z_][A-Za-z0-9_]*=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function Bv(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&Hv.test(e.trim())}function Pp(e,t,n,r){if(!n||e.length>jv||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??Ss(),o=Iv(t.host,t.cwd,s),i=Fv(o,e,t),a=i||Pv(o,e,t.host)?Ui(e,n,Mv(t,s)):e;return a!==e&&o!=="unreadable"&&(i?(o.guards??[]).some(l=>l(a)):o.matchers.some(l=>l(a))||(o.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:Ip(o,t)?{command:a}:o!=="unreadable"&&Bv(e,t)&&!(o.allow??[]).some(l=>l(e))&&!(o.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function st(e,t,n,r){let s=Pp(e,t,n,r);return s&&!s.ask?s.command:null}Z();$n();er();Wr();import{existsSync as cT,writeFileSync as fT,appendFileSync as dT,statSync as pT,constants as Lp}from"node:fs";import{lstat as mT,open as hT}from"node:fs/promises";import{basename as gT,dirname as yT,isAbsolute as bT,join as zp}from"node:path";Z();we();import{readFileSync as zv}from"node:fs";import{join as Uv}from"node:path";function Np(){if(_e())return!1;try{return JSON.parse(zv(Uv(v(),"settings-cache.json"),"utf8")).enabled!==!1}catch{return!0}}Z();Wr();import{createHash as Zv}from"node:crypto";import{appendFileSync as Jv,chmodSync as Gv,mkdirSync as Wv,readFileSync as Kv,rmSync as Vv,statSync as qv}from"node:fs";import{join as Dp}from"node:path";var Yv=256*1024,Xv=80;function Qv(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Dp(v(),"sessions",`${t}.seen`)}function Ji(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,Xv)}function Gi(e,t,n,r){try{let s=Qv(e),o=Ji(t),i=Zv("sha256").update(n).digest("hex").slice(0,32),a="";try{a=Kv(s,"utf8")}catch{}for(let l of a.split(`
|
|
140
|
-
`)){let[u,c,f]=l.split(" ");if(u===o&&c===i)return{cmd:f??""}}
|
|
141
|
-
`,{mode:384}),
|
|
142
|
-
`).filter(i=>r.has(i)||
|
|
139
|
+
`}else if(s==="/"&&e[r+1]==="*"){if(r=e.indexOf("*/",r+2),r===-1)return"";r+=1}else t+=s}return t.replace(/,(\s*[}\]])/g,"$1")}function pn(e){let t=[],n=EE(e);for(;;){t.push(n);let r=zi(n);if(r===n)return t;n=r}}function lv(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[D(e,"managed-settings.json")];try{for(let n of xs(D(e,"managed-settings.d")))n.endsWith(".json")&&t.push(D(e,"managed-settings.d",n))}catch{return t}return t}function uv(){try{return SE().username}catch{return""}}function cv(e){return e.error?e.error.code==="ETIMEDOUT":e.status!==1}var fv=5*6e4,pp=new Map;function Ap(e,t){let n=pp.get(e);if(n&&Date.now()-n.at<fv)return n.value;let r=["HKLM","HKCU"].some(s=>cv(bp(e,["query",`${s}\\SOFTWARE\\Policies\\ClaudeCode`,"/v","Settings"],{cwd:t,stdio:"ignore",timeout:2e3,windowsHide:!0})));return pp.set(e,{at:Date.now(),value:r}),r}function dv(){let e=process.env.SystemRoot||"C:\\Windows";return Ap(vE.join(e,"System32","reg.exe"),e)}var mp="/mnt/c/Windows/System32/reg.exe";function pv(e){return!process.env.WSL_DISTRO_NAME&&!e("/proc/sys/fs/binfmt_misc/WSLInterop")?!1:e("/mnt/c/Program Files/ClaudeCode")?!0:e(mp)&&Ap(mp,"/mnt/c/Windows")}function mv(e=process.platform,t=Ze,n=dv,r=uv(),s=()=>pv(t)){if(e==="darwin"){let o="/Library/Managed Preferences";return t(D(o,"com.anthropic.claudecode.plist"))||r!==""&&t(D(o,r,"com.anthropic.claudecode.plist"))}return e==="win32"?n():e==="linux"&&s()}function ar(e,t,n,r){let s=[];for(let o of e){let i=av(o,t);if(i!=="missing"&&(i==="unreadable"||!X(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function or(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function Ss(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR?.trim()?Vr():void 0}}function hv(e,t){let n=_=>[D(_,"settings.json"),D(_,"settings.local.json")],r=_=>n(D(_,".claude")),s=D(Nt(),".claude"),o=t.configDir||s;if(mv())return"unreadable";let a=[[[...[...new Set([D(o,"remote-settings.json"),D(s,"remote-settings.json")])],...lv()],"managed"],[[D(o,"settings.json")],"loaded"],[[D(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[pn(e).flatMap(r),"extra"]],l=[],u={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},c={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},f=!1,d="managed",p=(_,w)=>{let E=_.permissions;if(d==="managed"&&(_.allowManagedPermissionRulesOnly===!0||X(E)&&E.allowManagedPermissionRulesOnly===!0)&&(f=!0),E===void 0)return!0;if(!X(E))return!1;for(let R of["deny","ask","allow"]){let $=or(E[R]);if(!$)return!1;for(let F of $){let N=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(F);if(N)if(R!=="allow")w.push(Dt((N[1]??"*").replace(/:\*$/," *")));else if(N[1]===void 0||N[1].trim()==="*")c[d]=!0;else{l.push(Dt(N[1].replace(/:\*$/," *")));let M=Dv(N[1]);M&&u[d].push({rule:F.trim(),matches:M})}}}return!0},y=[];for(let[_,w]of a){d=w;let E=ar(_,!1,p,!0);if(E==="unreadable")return"unreadable";y.push(...E.matchers)}let g=c.managed||(c.loaded||c.loadedLocal)&&!f,m=[...u.managed,...f?[]:u.loaded];return{matchers:[...y,...g?[]:l],complete:!0,allow:l,allowsEverything:g,guards:y,trustedAllow:m}}function gv(e){let t=[D(Nt(),".cursor","cli-config.json"),...pn(e).map(n=>D(n,".cursor","cli.json"))];return ar(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!X(s))return!1;let o=or(s.deny);if(!o)return!1;for(let i of o){let a=/^\s*Shell\s*(?:\(([\s\S]*)\))?\s*$/.exec(i);if(!a)continue;let l=a[1]??"*",u=l.indexOf(":");r.push(Dt(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function yv(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var $p=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function bv(e,t){let n=e.tools;if(n!==void 0&&!X(n))return!1;let r=[or(e.excludeTools),or(X(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=$p.exec(o);i&&t.push(Dt(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function hp(e){try{return JSON.parse(e)}catch{return null}}function kv(e){let t=e.trim();if(t.startsWith('"""')||t.startsWith("'''"))return null;if(t.startsWith("[")){if(!/\]\s*(?:#.*)?$/.test(t))return null;let n=[];for(let r of t.matchAll(/"((?:\\.|[^"\\])*)"|'([^']*)'/g)){let s=r[2]??hp(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?hp(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function _v(e,t){for(let n of e.split(/^\s*\[\[\s*rule\s*\]\]\s*$/m).slice(1)){let r={};for(let l of n.split(/\r?\n/)){if(/^\s*\[/.test(l))break;let u=/^\s*([A-Za-z_]+)\s*=\s*(.*)$/.exec(l);if(!u)continue;let c=kv(u[2]);if(c===null)return!1;r[u[1]]=c}let s=r.decision;if(s!=="deny"&&s!=="ask_user"||!(r.toolName===void 0?["*"]:[r.toolName].flat()).some(l=>l==="*"||$p.test(l)))continue;let i=r.commandPrefix===void 0?[]:[r.commandPrefix].flat(),a=[r.commandRegex,r.argsPattern].flat().filter(l=>typeof l=="string");if(i.length===0&&a.length===0){t.push(()=>!0);continue}for(let l of i)t.push(Dt(`${l}*`));for(let l of a){let u;try{u=new RegExp(l)}catch{return!1}t.push(c=>u.test(JSON.stringify({command:c}))||Es(u,c))}}return!0}function gp(e){try{return xs(e).filter(t=>t.endsWith(".toml")).map(t=>D(e,t))}catch{return[]}}function wv(e){let t=yv(),n=[D(t,"system-defaults.json"),D(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,D(Nt(),".gemini","settings.json"),...pn(e).map(s=>D(s,".gemini","settings.json"))].filter(s=>!!s),r=ar(n,!0,bv,!1);if(r==="unreadable")return r;for(let s of[...gp(D(Nt(),".gemini","policies")),...gp(D(t,"policies"))]){let o;try{o=sr(s,"utf8")}catch{return"unreadable"}if(!_v(o,r.matchers))return"unreadable"}return r}function Bi(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!X(e))return!1;for(let n of["bash","shell","*"]){let r=e[n];if(r!==void 0){if(typeof r=="string"){r!=="allow"&&t.push(()=>!0);continue}if(!X(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(Dt(s.replace(/\?/g,"*")))}}return!0}function yp(e,t){if(e.permissions!==void 0||!Bi(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!X(r))return!1;for(let s of Object.values(r))if(X(s)&&(s.permissions!==void 0||!Bi(s.permission,t)))return!1}}return!0}function xv(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=xs(D(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(sr(D(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function Sv(e){let t=D(process.env.XDG_CONFIG_HOME||D(Nt(),".config"),"opencode"),n=pn(e),r=[t,...n.map(a=>D(a,".opencode"))];if(xv(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>D(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>D(a,l)),...s.slice(0,2).map(l=>D(a,".opencode",l))])].filter(a=>!!a),i=ar(o,!0,yp,!0);if(i==="unreadable")return i;for(let a of[process.env.OPENCODE_CONFIG_CONTENT,process.env.OPENCODE_PERMISSION]){if(!a)continue;let l;try{l=JSON.parse(Rp(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Bi(l,i.matchers):X(l)&&yp(l,i.matchers)))return"unreadable"}return i}function Ev(){return ar([D(Nt(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!X(n))return!1;for(let r of["deny","ask"]){let s=or(n[r]);if(!s)return!1;for(let o of s){let i=/^\s*command\s*\(([\s\S]*)\)\s*$/.exec(o);if(!i)continue;let a=i[1].trim();if(!a.startsWith("regex:")){t.push(Dt(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>Es(l,u))}}return!0},!1)}function vv(e){let t=[],n=/\s+|#[^\n]*|("(?:[^"\\\n]|\\.)*"|'(?:[^'\\\n]|\\.)*')|([A-Za-z_][A-Za-z0-9_]*|[()[\],=])|(.)/gy;for(let r=n.exec(e);r&&r[0];r=n.exec(e)){if(r[3]!==void 0)return null;(r[1]!==void 0||r[2]!==void 0)&&t.push(r[1]??r[2])}return t}function Cp(e,t){let n=e[t.i++];if(n===void 0)return;if(/^["']/.test(n))try{return n.startsWith('"')?JSON.parse(n):JSON.parse(`"${n.slice(1,-1).replace(/\\'/g,"'").replace(/"/g,'\\"')}"`)}catch{return}if(n!=="[")return/^[A-Za-z_]/.test(n)?null:void 0;let r=[];for(;e[t.i]!=="]";){let s=Cp(e,t);if(s===void 0)return;if(r.push(s),e[t.i]===",")t.i++;else if(e[t.i]!=="]")return}return t.i++,r}function Op(e){if(!Array.isArray(e)||e.length===0)return null;let t=[];for(let r of e){let s=typeof r=="string"?[r]:Array.isArray(r)?r:null;if(!s||s.length===0||!s.every(o=>typeof o=="string"&&o!==""))return null;t.push(`(?:${s.map(Ji).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>Es(n,r)}function Tv(e,t){let n=vv(e);if(!n)return!1;for(let r=0;r<n.length;r++){if(n[r]!=="prefix_rule"||n[r+1]!=="(")continue;let s={i:r+2},o={};for(;n[s.i]!==")";){let l=n[s.i];if(!l||!/^[A-Za-z_]/.test(l)||n[s.i+1]!=="="||(s.i+=2,o[l]=Cp(n,s),o[l]===void 0&&(l==="pattern"||l==="decision")))return!1;if(n[s.i]===",")s.i++;else if(n[s.i]!==")")return!1}r=s.i;let i="decision"in o?o.decision:"allow";if(i!=="allow"&&i!=="prompt"&&i!=="forbidden")return!1;let a=Op(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function Rv(e){if(!Ze(e))return[];try{return xs(e).filter(t=>t.endsWith(".rules")).sort().map(t=>D(e,t))}catch{return"unreadable"}}function Av(){return process.platform==="win32"?D(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function $v(e){if(!(!X(e)||Object.keys(e).length!==1)){if(typeof e.token=="string")return e.token;if(Array.isArray(e.any_of)&&e.any_of.every(t=>typeof t=="string"))return e.any_of}}function Cv(e,t){let n;try{n=Mn(e)}catch{return!1}if(n.rules===void 0)return!0;if(!X(n.rules))return!1;let r=n.rules.prefix_rules;if(r===void 0)return!0;if(!Array.isArray(r))return!1;for(let s of r){if(!X(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map($v);if(o.some(a=>a===void 0))return!1;let i=Op(o);if(!i)return!1;t.push(i)}return!0}function Ov(e){let t=process.env.CODEX_HOME||D(Nt(),".codex"),n=[D(t,"rules"),...pn(e).map(o=>D(o,".codex","rules"))],r=[],s=null;try{s=sr(Av(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!Cv(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=Rv(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=sr(a,"utf8")}catch{return"unreadable"}if(!Tv(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function X(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Ji(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Iv(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Ji).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var Pv=512;function Nv(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(fn)]}function Es(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Nv(t)){if(n.length>Pv)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function Dt(e){let t=Iv(e);return n=>Es(t,n)}function Dv(e){let t=e.trim().replace(/:\*$/," *"),n=t.endsWith(" *"),r=n?t.slice(0,-2):t;if(!r||r.includes("*")||/\s\s|[^\S ]|^ | $/.test(r))return null;let s=new RegExp(`^${Ji(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var Mv={"claude-code":hv,cursor:gv,"gemini-cli":wv,opencode:Sv,antigravity:Ev,codex:Ov},Lv=new Set(["codex"]),Ip=/(?:^|[\s=:/~])\.(?:git|claude|vscode|idea|husky)(?=[/\s;|&)]|$)|(?:^|[\s=:/~])\.(?:bashrc|bash_profile|bash_login|bash_logout|profile|zshrc|zprofile|zshenv|zlogin|zlogout|gitconfig|gitmodules|ripgreprc|mcp\.json)(?![A-Za-z0-9_])/;function Fv(e,t,n){let r=Mv[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function jv(e,t,n){return e==="unreadable"||Ip.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||vp(t,!Lv.has(n))}var Pp=new Set(["default","acceptEdits","dontAsk"]);function Np(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Pp.has(t.permissionMode??"")}var Hv=/(?:^|[\s/])git(?:\.exe|\.real|-[a-z][\w-]*)?(?=\s|$)/;function Bv(e){if(!e)return!1;try{for(let t of pn(e)){let n=D(t,".git");if(Ze(n))return xE(n).isFile()}}catch{return!0}return!1}function zv(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r,s;return(o,i)=>e.host!=="claude-code"?Pt(o,e.cwd,n):i!==void 0&&Hv.test(i)&&(s??=Bv(e.cwd))||(r??=np(t.configDir),!Pt(o,e.cwd,n)&&!r.paths.some(a=>Pt(o,e.cwd,a)))?!1:o.includes("/")||!rp(o,r)}var Uv=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Zv(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Np(e,n)||!Pp.has(n.permissionMode??"")||!Uv.test(t)||Ip.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var Jv=65536,Gv=/^(?:[A-Za-z_][A-Za-z0-9_]*=\S*\s+)*(?:(?:npx|bunx|pnpm\s+exec|yarn\s+exec|uv\s+run|poetry\s+run)\s+)?(?:\.\/)?(?:ctest|gradlew|gradle|mvnw|mvnd|mvn|make|cmake|sbt|phpstan|phpunit|pest|pytest|py\.test|tox|nox|vitest|jest|mocha|playwright\s+test|tsc|(?:cargo|go)\s+(?:build|test|check|clippy|vet)|(?:bun|deno)\s+(?:test|check|lint|install)|(?:npm|pnpm|yarn)\s+(?:test|t|ci|install|run\s+\S+)|dotnet\s+(?:build|test)|swift\s+(?:build|test)|composer\s+(?:install|update|test))(?:\s|$)/;function Wv(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&Gv.test(e.trim())}function Dp(e,t,n,r){if(!n||e.length>Jv||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??Ss(),o=Fv(t.host,t.cwd,s),i=Zv(o,e,t),a=i||jv(o,e,t.host)?Zi(e,n,zv(t,s)):e;return a!==e&&o!=="unreadable"&&(i?(o.guards??[]).some(l=>l(a)):o.matchers.some(l=>l(a))||(o.allow??[]).some(l=>l(a)&&!l(e)))&&(a=e),r(t.sessionId,a!==e),a===e?null:i?{command:a,allowedBy:i}:Np(o,t)?{command:a}:o!=="unreadable"&&Wv(e,t)&&!(o.allow??[]).some(l=>l(e))&&!(o.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function ot(e,t,n,r){let s=Dp(e,t,n,r);return s&&!s.ask?s.command:null}Z();Cn();er();Wr();import{existsSync as gT,writeFileSync as yT,appendFileSync as bT,statSync as kT,constants as jp}from"node:fs";import{lstat as _T,open as wT}from"node:fs/promises";import{basename as xT,dirname as ST,isAbsolute as ET,join as Zp}from"node:path";Z();pe();import{readFileSync as Kv}from"node:fs";import{join as Vv}from"node:path";function Mp(){if(xe())return!1;try{return JSON.parse(Kv(Vv(v(),"settings-cache.json"),"utf8")).enabled!==!1}catch{return!0}}Z();Wr();import{createHash as qv}from"node:crypto";import{appendFileSync as Yv,chmodSync as Xv,mkdirSync as Qv,readFileSync as eT,rmSync as tT,statSync as nT}from"node:fs";import{join as Lp}from"node:path";var rT=256*1024,sT=80;function oT(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Lp(v(),"sessions",`${t}.seen`)}function Gi(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,sT)}function Wi(e,t,n,r){try{let s=oT(e),o=Gi(t),i=qv("sha256").update(n).digest("hex").slice(0,32),a="";try{a=eT(s,"utf8")}catch{}for(let l of a.split(`
|
|
140
|
+
`)){let[u,c,f]=l.split(" ");if(u===o&&c===i)return{cmd:f??""}}Qv(Lp(v(),"sessions"),{recursive:!0,mode:448}),Yv(s,`${o} ${i} ${Gi(Vo(r))}
|
|
141
|
+
`,{mode:384}),Xv(s,384),nT(s).size>rT&&tT(s,{force:!0})}catch{}return null}function Ki(e,t){return`[same output as \`${Gi(e)}\` earlier in this session, unchanged, ~${Math.round(t/4)} tokens]`}Jn();ms();function se(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function lr(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function iT(e){return se(e,"prompt_id")||se(e,"scratchpad_dir")?!0:lr(e.effort)}function aT(e){return se(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(se(e,"model")??"")}var lT=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),uT=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),cT=new Set(["pre_tool","post_tool"]),fT=new Set(["before_tool_call","after_tool_call"]),dT=new Set(["runTerminalCommand","run_in_terminal"]),pT=[["codex",e=>se(e,"turn_id")!==null],["claude-code",iT],["cursor",e=>se(e,"cursor_version")!==null||se(e,"generation_id")!==null||se(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||uT.has(se(e,"hook_event_name")??"")],["gemini-cli",e=>lT.has(se(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>cT.has(se(e,"hook_event_name")??"")],["antigravity",e=>lr(e.toolCall)],["copilot",e=>se(e,"toolName")!==null&&"toolArgs"in e||dT.has(se(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||lr(e.toolInput)&&!("toolArgs"in e)],["droid",e=>e.tool_name==="Execute"],["trae",e=>e.tool_name==="RunCommand"],["crush",e=>e.hook_event_name===void 0&&se(e,"event")!==null&&!fT.has(se(e,"event"))]],mT=new Set(["codex","antigravity"]);function hT(e){return lr(e)?pT.filter(([,t])=>t(e)).map(([t])=>t):[]}function Vi(e,t){if(!lr(e))return null;let n=hT(e);return n.length>1?null:n.length===1?n[0]:aT(e)&&mT.has(t)?"claude-code":t==="codex"?null:t}function Fp(e,t){let n=Vi(e,t);return n==="claude-code"||n==="codex"?n:null}var vT=new Set(["Read","Grep","Glob","Bash"]),vs=10*1024*1024,Jp=1024,TT=10,RT=25e3,AT=/^… \(?\d+ more lines omitted\)?$/,$T=/^\[tkr restore [0-9a-f]{8,64}\]$/,CT=/^\d+F \d+D(?: in .+\/)?:$|^\S.*\/ \(\d+(?:, \*\.[^)]+)?\): \S/,OT=/^… \(\d+ more lines omitted\)$/m;function IT(e){return AT.test(e)||$T.test(e)||e==="[YOLO: omitted]"}function Gp(e,t,n){if(!e||typeof e=="string")return t;if(e.file?.content!=null)return{...e,file:{...e.file,content:t}};if(e.content!=null)return{...e,content:t};if(e.output!=null)return{...e,output:t};if(e.stdout!=null||e.stderr!=null){let{persistedOutputPath:r,persistedOutputSize:s,...o}=e;return{...o,stdout:t,stderr:""}}if(Array.isArray(e.filenames)){let r=new Set(e.filenames),s=n==="Glob",o=t.split(`
|
|
142
|
+
`).filter(i=>r.has(i)||IT(i)||s&&CT.test(i));return{...e,filenames:o}}return t}function PT(e,t,n){return JSON.stringify({...n?{systemMessage:n}:{},hookSpecificOutput:{hookEventName:"PostToolUse",updatedToolOutput:Gp(e.tool_response,t,e.tool_name)}})}var NT=100,Xi=null;function DT(){let e=Xi;return Xi=null,e}function Hp(e){let t=Math.round(e/4);return t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function Wp(e,t){try{if(Math.round((e-t)/4)<NT)return;let n=Zp(v(),"first-save");if(gT(n))return;yT(n,String(Date.now())),Xi=`Tokmizer just optimized its first command output here: ~${Hp(e)} tokens down to ~${Hp(t)}. Watch it add up: /tkr-gain`}catch{}}function Bp(e){return e?typeof e=="string"?e:e.file?.content!=null?e.file.content:e.content!=null?e.content:e.output!=null?e.output:e.stdout!=null||e.stderr!=null?[e.stdout??"",e.stderr??""].filter(Boolean).join(`
|
|
143
143
|
`):Array.isArray(e.filenames)?e.filenames.join(`
|
|
144
|
-
`):null:""}var
|
|
145
|
-
`)}catch{}}function
|
|
146
|
-
`)[0].trim().slice(0,200):n.file_path?`${t.toLowerCase()} ${n.file_path}`:n.pattern?`${t.toLowerCase()} ${n.pattern}`:n.path?`${t.toLowerCase()} ${n.path}`:t.toLowerCase()}var
|
|
147
|
-
`),d=Buffer.byteLength(f,"utf8");if(s==null&&u.filterId!=null&&t.session_id&&d>=
|
|
148
|
-
`)[0]??"");if(g){let m=
|
|
149
|
-
`),y=u.stdout===e.stdout&&u.stderr===e.stderr;return s!=null&&(y||p.length>s)||(c&&(r.deferAccounting?r.deferAccounting(c):await c()),y||d>0&&Buffer.byteLength(p,"utf8")>=d)?null:(
|
|
150
|
-
`)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let l=
|
|
151
|
-
`).length<
|
|
152
|
-
`)[0]??"");if(
|
|
144
|
+
`):null:""}var MT=64*1024;function LT(e,t){try{if(!t||typeof t!="object")return;let n=Zp(v(),"drift.jsonl");try{if(kT(n).size>MT)return}catch{}let r=Object.keys(t).slice(0,12);bT(n,`${JSON.stringify({t:Math.floor(Date.now()/1e3),tool:e,keys:r})}
|
|
145
|
+
`)}catch{}}function FT(e){let t=e.tool_name??"tool",n=e.tool_input??{};return n.command?n.command.split(`
|
|
146
|
+
`)[0].trim().slice(0,200):n.file_path?`${t.toLowerCase()} ${n.file_path}`:n.pattern?`${t.toLowerCase()} ${n.pattern}`:n.path?`${t.toLowerCase()} ${n.path}`:t.toLowerCase()}var jT=/'(?:[A-Za-z]:)?\/[^']*\/(?:tkr-exec(?:\.exe|\.js)?'|tkr(?:\.exe)?' exec)(?:\\'')?(?:\s|$)/,HT=/;|\|\||\n|(?<![>&|])&(?![&>])/,BT=new Set(["cd","export","set","unset","true",":"]),zT=/^(?:\S*\/)?(?:sh|bash|zsh|dash|ksh)\s+-[elux]*c[elux]*\s+'([^']*)'$/,UT=/(?:^|[\s;&|(])(?:[A-Za-z]:)?\/\S*\/tkr-exec(?:\.exe|\.js)?\s|(?:^|[;&|(\n])\s*(?:\S*\/)?tkr-exec(?:\.exe|\.js)?\s/;function Kp(e){return jT.test(e)||UT.test(e)}function Vp(e,t,n=0){let r=dn(e);for(let s=0;s<r.length;s++){let o=r[s];if(o.kind==="sep")continue;let i=o.text.trim();if(!i||i===t)continue;let a=r[s+1];if(a?.kind==="sep"&&(a.text==="|"||a.text==="|&")||BT.has(i.split(/\s+/)[0]))continue;let l=n<3?zT.exec(i):null;if(!(l&&Vp(l[1],t,n+1)))return!1}return!0}function ZT(e){let t=[],n="",r=!1;for(let s=0;s<e.length;s++){let o=e[s];if(o==="'"){let i=e.indexOf("'",s+1);if(i===-1)return null;n+=e.slice(s+1,i),r=!0,s=i}else if(o==='"'){let i=s+1;for(;i<e.length&&e[i]!=='"';i++)e[i]==="\\"&&/["\\$`]/.test(e[i+1]??"")&&i++,n+=e[i];if(i>=e.length)return null;r=!0,s=i}else if(o==="\\"){if(s+1>=e.length)return null;n+=e[++s],r=!0}else/\s/.test(o)?(r&&t.push(n),n="",r=!1):(n+=o,r=!0)}return r&&t.push(n),t.length>0?t:null}function zp(e){let t="";for(let n=0;n<e.length;n++){let r=e[n];if(t==="'"){r==="'"&&(t="");continue}if(r==="\\"){n++;continue}if(r==="$"||r==="`")return!0;r==='"'?t=t?"":'"':r==="'"&&!t&&(t="'")}return!1}async function JT(e){if(!e||typeof e!="object"||e.persistedOutputPath==null)return;let{stdout:t,persistedOutputPath:n,persistedOutputSize:r}=e;if(typeof t!="string"||typeof n!="string"||typeof r!="number"||!Number.isFinite(r))return null;if(!(Buffer.byteLength(t,"utf8")>=r||t.length>=r)){if(!t||e.stderr!=null&&e.stderr!==""||e.interrupted===!0||e.isImage===!0||!ET(n)||xT(ST(n))!=="tool-results")return null;try{let s=await _T(n);if(!s.isFile()||s.size>vs)return null;let o=await wT(n,jp.O_RDONLY|(jp.O_NOFOLLOW??0));try{let i=await o.stat();if(!i.isFile()||i.size>vs||i.size!==s.size)return null;let a=Buffer.alloc(i.size),{bytesRead:l}=await o.read(a,0,i.size,0);if(l!==i.size)return null;let u=a.toString("utf8");return a.length!==r&&u.length!==r?null:u.startsWith(t)?u:null}finally{await o.close()}}catch{return null}}}function GT(e,t){if(!t||typeof t!="object"||typeof t.stdout!="string"||t.stderr!=null&&typeof t.stderr!="string"||t.interrupted===!0||t.isImage===!0||t.backgroundTaskId!=null||HT.test(e)||zp(e))return null;let n=[];if(Zi(e,"tkr-exec",()=>!0,s=>n.push(s)),n.length!==1||zp(n[0])||!Vp(e,n[0])||dn(e).some(s=>s.kind==="sep"&&s.text!=="&&"&&s.text!=="|"&&s.text!=="|&"))return null;let r=ZT(n[0]);return r?{argv:r,stdout:t.stdout,stderr:t.stderr??"",exitCode:t.returnCodeInterpretation!=null?1:null}:null}async function WT(e,t,n,r,s){let{processCapturedOutput:o}=await Promise.resolve().then(()=>(ks(),Mi)),i=null,a=g=>{i=g},l={...process.env};t.session_id?l.CLAUDE_CODE_SESSION_ID=t.session_id:delete l.CLAUDE_CODE_SESSION_ID;let u=await o({argv:e.argv,stdout:e.stdout,stderr:e.stderr,exitCode:e.exitCode,truncated:!1,stderrTruncated:!1},{yolo:n,env:l,...r.resolver?{resolver:r.resolver}:{},deferAccounting:a,cwd:t.cwd||(r.inferCwd===!1?void 0:process.cwd())}),c=i,f=[e.stdout,e.stderr].filter(Boolean).join(`
|
|
147
|
+
`),d=Buffer.byteLength(f,"utf8");if(s==null&&u.filterId!=null&&t.session_id&&d>=Jp){let g=Wi(t.session_id,t.agent_id??"main",f,(t.tool_input?.command??"").split(`
|
|
148
|
+
`)[0]??"");if(g){let m=Ki(g.cmd,d);if(n)return m;let{captureOriginalForRestore:_}=await Promise.resolve().then(()=>(Yi(),qi));return _(f,m)}}let p=[u.stdout,u.stderr].filter(Boolean).join(`
|
|
149
|
+
`),y=u.stdout===e.stdout&&u.stderr===e.stderr;return s!=null&&(y||p.length>s)||(c&&(r.deferAccounting?r.deferAccounting(c):await c()),y||d>0&&(Buffer.byteLength(p,"utf8")>=d||p.length>=f.length))?null:(Wp(d,Buffer.byteLength(p,"utf8")),p)}function KT(e){if(e==null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.session_id!=null&&typeof t.session_id!="string"||t.tool_name!=null&&typeof t.tool_name!="string")return!1;let n=t.tool_input;if(n==null)return!0;if(typeof n!="object"||Array.isArray(n))return!1;let r=n;return["command","file_path","pattern","path"].every(s=>r[s]==null||typeof r[s]=="string")}async function VT(e,t={}){if(!KT(e))return null;let n=e.tool_name==="Bash"&&!Kp(e.tool_input?.command??"")?await JT(e.tool_response):void 0;return n===null?null:n===void 0?Up(e,t):Up({...e,tool_response:{...e.tool_response,stdout:n}},t,RT)}async function Up(e,t,n){let r=de();if(!e.tool_name||!vT.has(e.tool_name)||typeof e.tool_response=="object"&&e.tool_response?.isImage===!0)return null;let s=e.tool_name==="Bash"?e.tool_input?.command??"":"",o=Kp(s);if(/\btkr(?:\.js)?\s+restore\b/.test(s))return null;let i=await Et();if(!Mp())return null;i||await Promise.resolve().then(()=>(ks(),Mi)).then(O=>O.kickBackgroundEnroll(),()=>{});let a=e.tool_name==="Bash"&&!o?GT(s,e.tool_response):null;if(a)return Buffer.byteLength(a.stdout,"utf8")+Buffer.byteLength(a.stderr,"utf8")>vs?null:WT(a,e,r,t,n);if(e.session_id&&!o&&i?.token){let O=e.tool_input??{},ve=O.command??O.file_path??O.pattern??O.path??"";ve&&Gr(e.session_id,{tool:e.tool_name,target:ve.split(`
|
|
150
|
+
`)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let l=Bp(e.tool_response);if(l==null)return LT(e.tool_name,e.tool_response),null;if(!l)return null;let u=Buffer.byteLength(l,"utf8");if(u>vs||e.tool_name==="Bash"&&u<Jp||e.tool_name==="Glob"&&l.split(`
|
|
151
|
+
`).length<TT||o)return null;let{loadSettingsCache:c,processOutput:f,captureForRestore:d,captureOriginalForRestore:p,neutralizeMarkers:y,FOLD_MARKER_RE:g,resolveAllowedFilters:m,graceExceeded:_,recordEvent:w,recordTelemetry:E,recordStat:R,countedSaving:$,statCmdLabel:F,statOutcome:N,installDaemonResolver:M,closeDaemonResolver:W}=await Promise.resolve().then(()=>(Yi(),qi)),ne=await c();if(!ne.enabled)return null;let{slugKey:q}=await Promise.resolve().then(()=>(Xe(),Oa)),P=!!i?.token;!t.resolver&&P&&M();let J=i?.token?m(i.allowedFilters,_(i)):null,H=new Set(ne.filters.disabled.map(q)),K=J&&H.size>0?new Set([...J].filter(O=>!H.has(O))):J,z=FT(e),V=`${e.tool_name.toLowerCase()}-tool`,me=`${V}: ${z}`;try{let O=await f(me,l,K,{verbosity:ne.outputVerbosity,resolver:t.resolver,yolo:r,exitCode:e.tool_name==="Bash"?void 0:0});if(O.filterId!=null&&e.tool_name==="Bash"&&e.session_id){let da=Wi(e.session_id,e.agent_id??"main",l,s.split(`
|
|
152
|
+
`)[0]??"");if(da){let pa=Ki(da.cmd,u);return r?pa:await p(l,pa)}}let ve=new RegExp(g.source,"m"),wn=e.tool_name==="Bash"?F(e.tool_input?.command??""):e.tool_name,ua=e.tool_name==="Read"&&!r&&(ve.test(O.output)||OT.test(O.output))?`${O.output}${O.output.endsWith(`
|
|
153
153
|
`)?"":`
|
|
154
|
-
`}${on}`:P.output,Q;if(P.filteredBytes>=P.rawBytes?Q=null:r?Q=y(P.output,l):e.tool_name==="Glob"||Se.test(P.output)?Q=await p(l,la,void 0,{label:_n}):Q=await d(P.droppedTail??null,la,void 0,{raw:l,label:_n}),r&&Q!=null&&(Q=jp(Zp(e.tool_response,Q,e.tool_name))),Q!=null&&Buffer.byteLength(Q,"utf8")>=P.rawBytes&&(Q=null),n!=null&&(Q==null||Q.length>n))return null;let am=Q==null?P.rawBytes:Buffer.byteLength(Q,"utf8"),Is=us().host,ot=C(P.rawBytes,am,ls(Is));Q!=null&&Jp(ot.raw,ot.filtered);let lm=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),um=e.tool_name==="Bash"?"sh":void 0,Ps=t.deferAccounting,ua=!1,ca=async()=>{ua||(ua=!0,I&&await w({cmd:V,filterId:P.filterId,rawBytes:P.rawBytes,filteredBytes:P.filteredBytes}),R(ot.raw,ot.filtered,void 0,!1,Is,um,_n,lm,N(P)),await E({cmd:V,tokensSaved:Math.round((ot.raw-ot.filtered)/4),rawTokens:Math.round(ot.raw/4),optimized:P.filterId!=null,telemetryOptIn:ne.telemetryOptIn&&(!Ps||(await c()).telemetryOptIn),host:Is}))};return Ps?Ps(ca):await ca(),Q}finally{t.resolver||K()}}async function Kp(e,t={}){if(Mp(e,"claude-code")!=="claude-code")return"";let n=await UT(e,t);return n?RT(e,n,$T()??void 0):""}we();we();var Xi=JSON.stringify({permission:"allow"});function Vp(e,t=Ae("cursor"),n=le){if(e.tool_name!=="Shell")return Xi;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return Xi;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=st(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},_e()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Xi}we();var Ts="{}";function qp(e,t=Ae("gemini-cli"),n=le){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Ts;let r=e.tool_input??{};if(r.is_background)return Ts;let s=r.command;if(typeof s!="string"||!s)return Ts;let o=typeof e.cwd=="string"?e.cwd:void 0,i=st(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},_e()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Ts}Ne();we();function mn(e,t,n="unknown",r=Ae(t),s=le){return e?st(e,{host:t,sessionId:n},_e()?null:r,s):null}var ZT=new Set(["bash","file_system.bash"]),ea=JSON.stringify({decision:"allow"});function Yp(e,t=(n,r)=>mn(n,"vibe",r)){if(!U(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!ZT.has(e.tool_name))return"";let n=e.tool_input;if(!U(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function Xp(e,t=(n,r)=>mn(n,"antigravity",r)){if(!U(e)||!U(e.toolCall)||e.toolCall.name!=="run_command")return ea;let n=e.toolCall.args;if(!U(n)||typeof n.CommandLine!="string"||!n.CommandLine)return ea;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):ea}we();var Ze="{}",JT=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),GT=["run_in_background","is_background","isBackground"];function Rs(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function WT(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function KT(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function As(e,t,n,r,s){if(!Rs(t)||GT.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:st(o,{host:e,sessionId:WT(n),cwd:KT(n,t)},_e()?null:r,s)}function gn(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function VT(e){if(Rs(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Rs(t)?t:null}catch{return null}}function qT(e,t,n){if(typeof e.tool_name=="string"){if(!JT.has(e.tool_name))return Ze;let o=e.tool_input,i=As("copilot",o,e,t,n);return i?gn(o,i):Ze}if(e.toolName!=="bash")return Ze;let r=VT(e.toolArgs),s=As("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):Ze}function hn(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return Ze;let i=r.tool_input,a=As(e,i,r,s,o);return a?n(i,a):Ze}}var YT=new Set(["run_terminal_command","Bash","bash"]);function XT(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!YT.has(r))return Ze;let s=e.toolInput??e.tool_input,o=As("grok",s,e,t,n);return o?gn(s,o):Ze}var QT={copilot:qT,droid:hn("droid","Execute",gn),trae:hn("trae","RunCommand",gn),"qwen-code":hn("qwen-code","run_shell_command",gn),crush:hn("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:hn("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:hn("zcode","Bash",gn),grok:XT};function Qp(e,t,n=Ae(e),r=le){return Rs(t)?QT[e](t,n,r):Ze}function yn(e){return _e()?null:Ae(e)}function eR(e,t,n={}){let r=n.recordUsage??le;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Ep(t,e,yn(e),r,n.claudeDirs??Ss(),n.pathEnv??process.env.PATH,n.launchArgs??ir)??"";case"cursor":return Vp(t,yn(e),r);case"gemini-cli":return qp(t,yn(e),r);case"vibe":return Yp(t,(s,o)=>mn(s,"vibe",o,yn(e),r));case"antigravity":return Xp(t,(s,o)=>mn(s,"antigravity",o,yn(e),r));default:return Qp(e,t,yn(e),r)}}function pn(e,t,n={}){let r=Ki(e,t);return r?eR(r,e,n):n.fallback??""}er();var $s=class{constructor(t,n,r=()=>{}){this.limit=t;this.receive=n;this.reserve=r}limit;receive;reserve;header=Buffer.alloc(4);headerBytes=0;body=null;bodyBytes=0;closed=!1;push(t){if(this.closed)throw new Error("reader closed");let n=0;try{for(;n<t.length&&!this.closed;){if(!this.body){let s=Math.min(4-this.headerBytes,t.length-n);if(t.copy(this.header,this.headerBytes,n,n+s),this.headerBytes+=s,n+=s,this.headerBytes!==4)continue;let o=this.header.readUInt32BE(0);if(o>this.limit())throw new Error("frame limit exceeded");this.reserve(o),this.body=Buffer.allocUnsafe(o),this.bodyBytes=0}let r=Math.min(this.body.length-this.bodyBytes,t.length-n);if(t.copy(this.body,this.bodyBytes,n,n+r),this.bodyBytes+=r,n+=r,this.bodyBytes===this.body.length){let s=this.body;this.body=null,this.headerBytes=0,this.bodyBytes=0,this.receive(s)}}}catch(r){throw this.close(),r}}close(){this.closed=!0,this.body=null,this.headerBytes=0,this.bodyBytes=0}};function bn(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function em(e){if(e.length<16)throw new Error("incomplete captured header");let t=e.readUInt32BE(0),n=e.readUInt32BE(4),r=e.readUInt32BE(8),s=e.readUInt32BE(12);if(t>255||n>3||r>10485760||s>10485760||e.length!==16+r+s)throw new Error("invalid captured output");return{stdout:e.subarray(16,16+r).toString("utf8"),stderr:e.subarray(16+r).toString("utf8"),exitCode:t,truncated:(n&1)!==0,stderrTruncated:(n&2)!==0}}we();var iR={"claude-code":"CLAUDECODE",codex:"CODEX_CLI",cursor:"CURSOR_VERSION",cline:"CLINE_VERSION",aider:"AIDER_VERSION","gemini-cli":"GEMINI_CLI_VERSION",windsurf:"WINDSURF_VERSION",copilot:"GITHUB_COPILOT_VERSION","qwen-code":"QWEN_CODE",crush:"CRUSH",droid:"",trae:"",junie:"",zcode:"",grok:"",kilo:"",shell:""},aR=h.object({protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),argv:h.array(h.string().max(32768).refine(e=>!e.includes("\0"))).min(1).max(4096),host:h.enum(yi),sessionId:h.string().max(256).optional(),restoreDisabled:h.boolean(),restoreMaxBytes:h.number().int().positive().max(10485760).optional(),timeoutMs:h.number().int().positive().max(864e5)}).strict(),lR=h.object({kind:h.literal("pre-tool-use"),protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),host:h.enum(["claude-code","codex"]),payload:h.record(h.string(),h.unknown()),claudeProjectDir:h.string().min(1).max(4096).optional(),claudeConfigDir:h.string().min(1).max(4096).optional(),path:h.string().min(1).max(32768).optional(),claudePid:h.string().regex(/^[1-9]\d{0,9}$/).optional()}).strict(),uR=h.object({kind:h.literal("post-tool-use"),protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),host:h.enum(["claude-code"])}).strict();function kn(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=Gs()}async function nm(e){if(!/^[0-9a-f]{64}$/.test(e.token))throw new Error("invalid processing authentication");let t=process.platform==="win32";if(t){if(!/^\\\\\.\\pipe\\tokmizer-[A-Za-z0-9._-]+$/.test(e.path))throw new Error("unsafe processing pipe")}else{let f=nR(sR(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=rR(v()),r=Buffer.from(e.token,"hex"),s=new Set,o=new Set,i=0,a=!1,l=e.maxConnections??4,u=e.maxBufferedBytes??48*1024*1024,c=oR(f=>{if(a||s.size>=l){f.destroy();return}s.add(f);let d="prepare",p=null,y=!1,g=0,m=!1,_,w,E=()=>{i-=g,g=0},R=()=>{clearTimeout(w),N.close(),m||E(),d="closed",f.destroy()},C=F=>{clearTimeout(w),w=setTimeout(R,F),w.unref()},L=F=>{f.write(bn(Buffer.from(JSON.stringify(F))))},N=new $s(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,F=>{if(d==="delivery"){if(F.length!==1||F[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),m=!0;let H=(_?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(bn(Buffer.from([1])))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),s.delete(f)),o.delete(H)});o.add(H);return}if(d==="hook-payload"){let H=e.getRuntime();if(!kn(H)){R();return}let W=JSON.parse(F.toString("utf8"));if(!W||typeof W!="object"||Array.isArray(W))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",m=!0,C(e.processingTimeoutMs??5e3);let z=Kp(W,{inferCwd:!1,deferAccounting:V=>{_=V},resolver:async(V,pe)=>{if(!kn(H))throw new Error("expired processing rules");return H.selectFor(V,"pro",pe?[...pe]:void 0)}}).then(V=>{if(f.destroyed)return;let pe=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:V}));if(pe.length>20971536)throw new Error("hook response limit");E(),d="delivery",C(e.processingTimeoutMs??5e3),f.write(bn(pe))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),s.delete(f)),o.delete(z)});o.add(z);return}if(d==="prepare"){let H=JSON.parse(F.toString("utf8"));if(H?.kind==="post-tool-use"){let z=uR.parse(H);if(!na(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n||!kn(e.getRuntime())){R();return}e.onActivity?.(),E(),d="hook-payload",C(e.prepareTimeoutMs??1e3),L({ok:!0,protocol:2});return}if(H?.kind==="pre-tool-use"){let z=lR.parse(H);if(!na(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n){R();return}e.onActivity?.();let V,pe=pn(z.payload,z.host,{recordUsage:(Se,_n)=>{V={sessionId:Se,routed:_n}},claudeDirs:{projectDir:z.claudeProjectDir,configDir:z.claudeConfigDir},pathEnv:z.path??"",launchArgs:()=>z.claudePid?ir({CLAUDE_PID:z.claudePid}):null}),P=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:pe}));if(P.length>1024*1024)throw new Error("hook response limit");_=async()=>{let Se=V;V=void 0,Se&&le(Se.sessionId,Se.routed)},E(),d="delivery",C(e.processingTimeoutMs??5e3),f.write(bn(P));return}let W=aR.parse(H);if(!na(r,Buffer.from(W.token,"hex"))||W.version!==e.version||W.home!==n||!kn(e.getRuntime())){R();return}p=W,e.onActivity?.(),y=de(),E(),d="capture",C(W.timeoutMs+5e3),L({ok:!0,protocol:2,yolo:y});return}if(d!=="capture"||!p)throw new Error("unexpected processing frame");let K=em(F);e.onActivity?.();let ne=e.getRuntime();if(!kn(ne)){R();return}d="processing",m=!0,C(e.processingTimeoutMs??5e3);let q={},I=iR[p.host];I?q[I]="1":p.host!=="shell"&&(q.TOKMIZER_HOST=p.host),p.sessionId!==void 0&&(q.CLAUDE_CODE_SESSION_ID=p.sessionId),q.TOKMIZER_CCR_DISABLED=p.restoreDisabled?"1":"0",p.restoreMaxBytes!==void 0&&(q.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(p.restoreMaxBytes));let J=bs({...K,argv:p.argv},{env:q,yolo:y,onMissingState:ys,deferAccounting:H=>{_=H},resolver:async(H,W)=>{if(!kn(ne))throw new Error("expired processing rules");return ne.selectFor(H,"pro",W?[...W]:void 0)}}).then(H=>{if(f.destroyed)return;let W=Buffer.from(H.stdout),z=Buffer.from(H.stderr);if(W.length>10551296||z.length>10551296)throw new Error("processing response limit");let V=Buffer.allocUnsafe(8);V.writeUInt32BE(W.length,0),V.writeUInt32BE(z.length,4),d="delivery",C(e.processingTimeoutMs??5e3),f.write(bn(Buffer.concat([V,W,z])))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),s.delete(f)),o.delete(J)});o.add(J)},F=>{if(i+F>u)throw new Error("processing capacity exceeded");i+=F,g+=F});C(e.prepareTimeoutMs??1e3),f.on("data",F=>{try{N.push(F)}catch{R()}}),f.on("error",R),f.on("close",()=>{m||s.delete(f),R()})});try{await new Promise((f,d)=>{c.once("error",d),c.listen(e.path,()=>{c.off("error",d),f()})}),t||tR(e.path,384)}catch(f){throw c.close(),f}return{activeConnections:()=>s.size,close:async()=>{a=!0;for(let f of s)f.destroy();await new Promise(f=>c.close(()=>f())),await Promise.allSettled(o)}}}function sa(e=ye){return`processing-${e}.json`}function bR(e,t,n){return`\\\\.\\pipe\\tokmizer-p-${e.replace(/[^A-Za-z0-9._-]/g,"_").slice(0,64)||"user"}-${t.replace(/[^A-Za-z0-9._-]/g,"_")}-${n}`}async function sm(e,t,n="processing.json"){let r=process.platform==="win32",s=pR(v()),o=Cs(s,"run");dR(o,{recursive:!0,mode:448});let i=fR(o);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=rm().slice(0,8),l=r?bR(process.env.USERNAME??"user",ye,a):Cs(yR(Tt().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let u=cR(32).toString("hex"),c=await nm({path:l,token:u,version:ye,getRuntime:e,...t?{onActivity:t}:{}}),f=Cs(o,`${n}.${rm()}.tmp`);try{return gR(f,JSON.stringify({protocol:2,version:ye,home:s,path:l,token:u}),{mode:384,flag:"wx"}),mR(f,Cs(o,n)),c}catch(d){throw await c.close(),d}finally{hR(f,{force:!0})}}function om(e,t,n){let r=null,s=!1,o=0,i=null,a=()=>i||(o=Date.now(),i=e().catch(()=>null).then(l=>{if(l){s=!1,r=l;return}let u=t();if(!u)return;let c=Date.now();s=!0,r={...u,signedAt:c,fetchedAt:c}}).finally(()=>{i=null}),i);return{current:()=>((!r||s&&Date.now()-o>n)&&a(),r),reload:a}}Z();Zt();var xR=6e4,SR=5e3,ER=30*6e4;function im(){let e=Number(process.env.TOKMIZER_PROCESSOR_IDLE_MS);return Number.isFinite(e)&&e>0?e:ER}async function vR(e){if(!e)return;let t=Array.from({length:200},(r,s)=>`-rw-r--r-- 1 user staff ${s*97} Jan 1 00:00 file-${s}.txt`).join(`
|
|
155
|
-
`),n=async(r,s)=>e.selectFor(r,"pro",s?[...s]:void 0);for(let r of["ls -la","git status","grep -rn x ."])await
|
|
154
|
+
`}${ln}`:O.output,Q;if(O.filteredBytes>=O.rawBytes?Q=null:r?Q=y(O.output,l):e.tool_name==="Glob"||ve.test(O.output)?Q=await p(l,ua,void 0,{label:wn}):Q=await d(O.droppedTail??null,ua,void 0,{raw:l,label:wn}),r&&Q!=null&&(Q=Bp(Gp(e.tool_response,Q,e.tool_name))),Q!=null&&Buffer.byteLength(Q,"utf8")>=O.rawBytes&&(Q=null),n!=null&&(Q==null||Q.length>n))return null;let um=Q==null?O.rawBytes:Buffer.byteLength(Q,"utf8"),Is=us().host,it=$(O.rawBytes,um,ls(Is));Q!=null&&Wp(it.raw,it.filtered);let cm=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),fm=e.tool_name==="Bash"?"sh":void 0,Ps=t.deferAccounting,ca=!1,fa=async()=>{ca||(ca=!0,P&&await w({cmd:V,filterId:O.filterId,rawBytes:O.rawBytes,filteredBytes:O.filteredBytes}),R(it.raw,it.filtered,void 0,!1,Is,fm,wn,cm,N(O)),await E({cmd:V,tokensSaved:Math.round((it.raw-it.filtered)/4),rawTokens:Math.round(it.raw/4),optimized:O.filterId!=null,telemetryOptIn:ne.telemetryOptIn&&(!Ps||(await c()).telemetryOptIn),host:Is}))};return Ps?Ps(fa):await fa(),Q}finally{t.resolver||W()}}async function qp(e,t={}){if(Fp(e,"claude-code")!=="claude-code")return"";let n=await VT(e,t);return n?PT(e,n,DT()??void 0):""}pe();pe();var Qi=JSON.stringify({permission:"allow"});function Yp(e,t=Ce("cursor"),n=le){if(e.tool_name!=="Shell")return Qi;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return Qi;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=ot(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},xe()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):Qi}pe();var Ts="{}";function Xp(e,t=Ce("gemini-cli"),n=le){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return Ts;let r=e.tool_input??{};if(r.is_background)return Ts;let s=r.command;if(typeof s!="string"||!s)return Ts;let o=typeof e.cwd=="string"?e.cwd:void 0,i=ot(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},xe()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):Ts}De();pe();function hn(e,t,n="unknown",r=Ce(t),s=le){return e?ot(e,{host:t,sessionId:n},xe()?null:r,s):null}var qT=new Set(["bash","file_system.bash"]),ta=JSON.stringify({decision:"allow"});function Qp(e,t=(n,r)=>hn(n,"vibe",r)){if(!U(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!qT.has(e.tool_name))return"";let n=e.tool_input;if(!U(n)||typeof n.command!="string"||!n.command)return"";let r=t(n.command,typeof e.session_id=="string"?e.session_id:"unknown");return r?JSON.stringify({hook_specific_output:{tool_input:{...n,command:r}}}):""}function em(e,t=(n,r)=>hn(n,"antigravity",r)){if(!U(e)||!U(e.toolCall)||e.toolCall.name!=="run_command")return ta;let n=e.toolCall.args;if(!U(n)||typeof n.CommandLine!="string"||!n.CommandLine)return ta;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):ta}pe();var Je="{}",YT=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),XT=["run_in_background","is_background","isBackground"];function Rs(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function QT(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function eR(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function As(e,t,n,r,s){if(!Rs(t)||XT.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:ot(o,{host:e,sessionId:QT(n),cwd:eR(n,t)},xe()?null:r,s)}function yn(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function tR(e){if(Rs(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return Rs(t)?t:null}catch{return null}}function nR(e,t,n){if(typeof e.tool_name=="string"){if(!YT.has(e.tool_name))return Je;let o=e.tool_input,i=As("copilot",o,e,t,n);return i?yn(o,i):Je}if(e.toolName!=="bash")return Je;let r=tR(e.toolArgs),s=As("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):Je}function gn(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return Je;let i=r.tool_input,a=As(e,i,r,s,o);return a?n(i,a):Je}}var rR=new Set(["run_terminal_command","Bash","bash"]);function sR(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!rR.has(r))return Je;let s=e.toolInput??e.tool_input,o=As("grok",s,e,t,n);return o?yn(s,o):Je}var oR={copilot:nR,droid:gn("droid","Execute",yn),trae:gn("trae","RunCommand",yn),"qwen-code":gn("qwen-code","run_shell_command",yn),crush:gn("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:gn("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:gn("zcode","Bash",yn),grok:sR};function tm(e,t,n=Ce(e),r=le){return Rs(t)?oR[e](t,n,r):Je}function bn(e){return xe()?null:Ce(e)}function iR(e,t,n={}){let r=n.recordUsage??le;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":Tp(t,e,bn(e),r,n.claudeDirs??Ss(),n.pathEnv??process.env.PATH,n.launchArgs??ir)??"";case"cursor":return Yp(t,bn(e),r);case"gemini-cli":return Xp(t,bn(e),r);case"vibe":return Qp(t,(s,o)=>hn(s,"vibe",o,bn(e),r));case"antigravity":return em(t,(s,o)=>hn(s,"antigravity",o,bn(e),r));default:return tm(e,t,bn(e),r)}}function mn(e,t,n={}){let r=Vi(e,t);return r?iR(r,e,n):n.fallback??""}er();var $s=class{constructor(t,n,r=()=>{}){this.limit=t;this.receive=n;this.reserve=r}limit;receive;reserve;header=Buffer.alloc(4);headerBytes=0;body=null;bodyBytes=0;closed=!1;push(t){if(this.closed)throw new Error("reader closed");let n=0;try{for(;n<t.length&&!this.closed;){if(!this.body){let s=Math.min(4-this.headerBytes,t.length-n);if(t.copy(this.header,this.headerBytes,n,n+s),this.headerBytes+=s,n+=s,this.headerBytes!==4)continue;let o=this.header.readUInt32BE(0);if(o>this.limit())throw new Error("frame limit exceeded");this.reserve(o),this.body=Buffer.allocUnsafe(o),this.bodyBytes=0}let r=Math.min(this.body.length-this.bodyBytes,t.length-n);if(t.copy(this.body,this.bodyBytes,n,n+r),this.bodyBytes+=r,n+=r,this.bodyBytes===this.body.length){let s=this.body;this.body=null,this.headerBytes=0,this.bodyBytes=0,this.receive(s)}}}catch(r){throw this.close(),r}}close(){this.closed=!0,this.body=null,this.headerBytes=0,this.bodyBytes=0}};function kn(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function nm(e){if(e.length<16)throw new Error("incomplete captured header");let t=e.readUInt32BE(0),n=e.readUInt32BE(4),r=e.readUInt32BE(8),s=e.readUInt32BE(12);if(t>255||n>3||r>10485760||s>10485760||e.length!==16+r+s)throw new Error("invalid captured output");return{stdout:e.subarray(16,16+r).toString("utf8"),stderr:e.subarray(16+r).toString("utf8"),exitCode:t,truncated:(n&1)!==0,stderrTruncated:(n&2)!==0}}pe();var dR={"claude-code":"CLAUDECODE",codex:"CODEX_CLI",cursor:"CURSOR_VERSION",cline:"CLINE_VERSION",aider:"AIDER_VERSION","gemini-cli":"GEMINI_CLI_VERSION",windsurf:"WINDSURF_VERSION",copilot:"GITHUB_COPILOT_VERSION","qwen-code":"QWEN_CODE",crush:"CRUSH",droid:"",trae:"",junie:"",zcode:"",grok:"",kilo:"",shell:""},pR=h.object({protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),argv:h.array(h.string().max(32768).refine(e=>!e.includes("\0"))).min(1).max(4096),host:h.enum(yi),sessionId:h.string().max(256).optional(),restoreDisabled:h.boolean(),restoreMaxBytes:h.number().int().positive().max(10485760).optional(),timeoutMs:h.number().int().positive().max(864e5)}).strict(),mR=h.object({kind:h.literal("pre-tool-use"),protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),host:h.enum(["claude-code","codex"]),payload:h.record(h.string(),h.unknown()),claudeProjectDir:h.string().min(1).max(4096).optional(),claudeConfigDir:h.string().min(1).max(4096).optional(),path:h.string().min(1).max(32768).optional(),claudePid:h.string().regex(/^[1-9]\d{0,9}$/).optional()}).strict(),hR=h.object({kind:h.literal("post-tool-use"),protocol:h.literal(2),version:h.string().min(1).max(64),token:h.string().regex(/^[0-9a-f]{64}$/),home:h.string().min(1).max(4096),host:h.enum(["claude-code"])}).strict();function _n(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=Gs()}async function sm(e){if(!/^[0-9a-f]{64}$/.test(e.token))throw new Error("invalid processing authentication");let t=process.platform==="win32";if(t){if(!/^\\\\\.\\pipe\\tokmizer-[A-Za-z0-9._-]+$/.test(e.path))throw new Error("unsafe processing pipe")}else{let f=lR(cR(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=uR(v()),r=Buffer.from(e.token,"hex"),s=new Set,o=new Set,i=0,a=!1,l=e.maxConnections??4,u=e.maxBufferedBytes??48*1024*1024,c=fR(f=>{if(a||s.size>=l){f.destroy();return}s.add(f);let d="prepare",p=null,y=!1,g=0,m=!1,_,w,E=()=>{i-=g,g=0},R=()=>{clearTimeout(w),N.close(),m||E(),d="closed",f.destroy()},$=M=>{clearTimeout(w),w=setTimeout(R,M),w.unref()},F=M=>{f.write(kn(Buffer.from(JSON.stringify(M))))},N=new $s(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,M=>{if(d==="delivery"){if(M.length!==1||M[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),m=!0;let H=(_?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(kn(Buffer.from([1])))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),s.delete(f)),o.delete(H)});o.add(H);return}if(d==="hook-payload"){let H=e.getRuntime();if(!_n(H)){R();return}let K=JSON.parse(M.toString("utf8"));if(!K||typeof K!="object"||Array.isArray(K))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",m=!0,$(e.processingTimeoutMs??5e3);let z=qp(K,{inferCwd:!1,deferAccounting:V=>{_=V},resolver:async(V,me)=>{if(!_n(H))throw new Error("expired processing rules");return H.selectFor(V,"pro",me?[...me]:void 0)}}).then(V=>{if(f.destroyed)return;let me=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:V}));if(me.length>20971536)throw new Error("hook response limit");E(),d="delivery",$(e.processingTimeoutMs??5e3),f.write(kn(me))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),s.delete(f)),o.delete(z)});o.add(z);return}if(d==="prepare"){let H=JSON.parse(M.toString("utf8"));if(H?.kind==="post-tool-use"){let z=hR.parse(H);if(!ra(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n||!_n(e.getRuntime())){R();return}e.onActivity?.(),E(),d="hook-payload",$(e.prepareTimeoutMs??1e3),F({ok:!0,protocol:2});return}if(H?.kind==="pre-tool-use"){let z=mR.parse(H);if(!ra(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n){R();return}e.onActivity?.();let V,me=mn(z.payload,z.host,{recordUsage:(ve,wn)=>{V={sessionId:ve,routed:wn}},claudeDirs:{projectDir:z.claudeProjectDir,configDir:z.claudeConfigDir},pathEnv:z.path??"",launchArgs:()=>z.claudePid?ir({CLAUDE_PID:z.claudePid}):null}),O=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:me}));if(O.length>1024*1024)throw new Error("hook response limit");_=async()=>{let ve=V;V=void 0,ve&&le(ve.sessionId,ve.routed)},E(),d="delivery",$(e.processingTimeoutMs??5e3),f.write(kn(O));return}let K=pR.parse(H);if(!ra(r,Buffer.from(K.token,"hex"))||K.version!==e.version||K.home!==n||!_n(e.getRuntime())){R();return}p=K,e.onActivity?.(),y=de(),E(),d="capture",$(K.timeoutMs+5e3),F({ok:!0,protocol:2,yolo:y});return}if(d!=="capture"||!p)throw new Error("unexpected processing frame");let W=nm(M);e.onActivity?.();let ne=e.getRuntime();if(!_n(ne)){R();return}d="processing",m=!0,$(e.processingTimeoutMs??5e3);let q={},P=dR[p.host];P?q[P]="1":p.host!=="shell"&&(q.TOKMIZER_HOST=p.host),p.sessionId!==void 0&&(q.CLAUDE_CODE_SESSION_ID=p.sessionId),q.TOKMIZER_CCR_DISABLED=p.restoreDisabled?"1":"0",p.restoreMaxBytes!==void 0&&(q.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(p.restoreMaxBytes));let J=bs({...W,argv:p.argv},{env:q,yolo:y,onMissingState:ys,deferAccounting:H=>{_=H},resolver:async(H,K)=>{if(!_n(ne))throw new Error("expired processing rules");return ne.selectFor(H,"pro",K?[...K]:void 0)}}).then(H=>{if(f.destroyed)return;let K=Buffer.from(H.stdout),z=Buffer.from(H.stderr);if(K.length>10551296||z.length>10551296)throw new Error("processing response limit");let V=Buffer.allocUnsafe(8);V.writeUInt32BE(K.length,0),V.writeUInt32BE(z.length,4),d="delivery",$(e.processingTimeoutMs??5e3),f.write(kn(Buffer.concat([V,K,z])))}).catch(()=>R()).finally(()=>{m=!1,f.destroyed&&(E(),s.delete(f)),o.delete(J)});o.add(J)},M=>{if(i+M>u)throw new Error("processing capacity exceeded");i+=M,g+=M});$(e.prepareTimeoutMs??1e3),f.on("data",M=>{try{N.push(M)}catch{R()}}),f.on("error",R),f.on("close",()=>{m||s.delete(f),R()})});try{await new Promise((f,d)=>{c.once("error",d),c.listen(e.path,()=>{c.off("error",d),f()})}),t||aR(e.path,384)}catch(f){throw c.close(),f}return{activeConnections:()=>s.size,close:async()=>{a=!0;for(let f of s)f.destroy();await new Promise(f=>c.close(()=>f())),await Promise.allSettled(o)}}}function oa(e=be){return`processing-${e}.json`}function ER(e,t,n){return`\\\\.\\pipe\\tokmizer-p-${e.replace(/[^A-Za-z0-9._-]/g,"_").slice(0,64)||"user"}-${t.replace(/[^A-Za-z0-9._-]/g,"_")}-${n}`}async function im(e,t,n="processing.json"){let r=process.platform==="win32",s=kR(v()),o=Cs(s,"run");bR(o,{recursive:!0,mode:448});let i=yR(o);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=om().slice(0,8),l=r?ER(process.env.USERNAME??"user",be,a):Cs(SR(Rt().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let u=gR(32).toString("hex"),c=await sm({path:l,token:u,version:be,getRuntime:e,...t?{onActivity:t}:{}}),f=Cs(o,`${n}.${om()}.tmp`);try{return xR(f,JSON.stringify({protocol:2,version:be,home:s,path:l,token:u}),{mode:384,flag:"wx"}),_R(f,Cs(o,n)),c}catch(d){throw await c.close(),d}finally{wR(f,{force:!0})}}function am(e,t,n){let r=null,s=!1,o=0,i=null,a=()=>i||(o=Date.now(),i=e().catch(()=>null).then(l=>{if(l){s=!1,r=l;return}let u=t();if(!u)return;let c=Date.now();s=!0,r={...u,signedAt:c,fetchedAt:c}}).finally(()=>{i=null}),i);return{current:()=>((!r||s&&Date.now()-o>n)&&a(),r),reload:a}}Z();Gt();var AR=6e4,$R=5e3,CR=30*6e4;function lm(){let e=Number(process.env.TOKMIZER_PROCESSOR_IDLE_MS);return Number.isFinite(e)&&e>0?e:CR}async function OR(e){if(!e)return;let t=Array.from({length:200},(r,s)=>`-rw-r--r-- 1 user staff ${s*97} Jan 1 00:00 file-${s}.txt`).join(`
|
|
155
|
+
`),n=async(r,s)=>e.selectFor(r,"pro",s?[...s]:void 0);for(let r of["ls -la","git status","grep -rn x ."])await Qe(r,t,null,{resolver:n}).catch(()=>null)}function IR(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function PR(e){for(let t=0;t<2;t+=1)try{return RR(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{let n=Number.NaN;try{n=Number(la(e,"utf8"))}catch{}if(Number.isInteger(n)&&n>0&&IR(n))return!1;Os(e,{force:!0})}return!1}function aa(e,t){try{return t(la(e,"utf8"))}catch{return!1}}async function NR(){let e=ia(TR(v()),"run");vR(e,{recursive:!0,mode:448});let t=ia(e,`processor-${be}.pid`);if(!PR(t))return;let n=am(br,Yt,$R),r=Date.now(),s=()=>{r=Date.now()},o=ia(e,oa()),i=null,a=null,l=!1,u=()=>{l||(l=!0,(a?.close()??Promise.resolve()).finally(()=>{i&&aa(o,d=>JSON.parse(d).path===i)&&Os(o,{force:!0}),aa(t,d=>Number(d)===process.pid)&&Os(t,{force:!0}),process.exit(0)}))};await n.reload();try{a=await im(n.current,s,oa())}catch{Os(t,{force:!0});return}i=aa(o,()=>!0)?JSON.parse(la(o,"utf8")).path:null,setInterval(()=>{n.reload()},AR).unref(),setInterval(()=>{(a?.activeConnections()??0)===0&&Date.now()-r>lm()&&u()},Math.min(6e4,lm())).unref(),process.on("SIGINT",u),process.on("SIGTERM",u),setImmediate(()=>{OR(n.current())}),setTimeout(()=>{process.title="tkr-processor"},1e3).unref()}NR().catch(()=>process.exit(0));
|
|
156
156
|
/*! Bundled license information:
|
|
157
157
|
|
|
158
158
|
smol-toml/dist/error.js:
|