@tokmizer/plugin 0.9.68 → 0.9.69
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/dist/bin/tkr-agent-hook.js +13 -12
- package/dist/bin/tkr-codex-hook.js +75 -69
- package/dist/bin/tkr-copilot-hook.js +12 -11
- package/dist/bin/tkr-crush-hook.js +12 -11
- package/dist/bin/tkr-cursor-hook.js +12 -11
- package/dist/bin/tkr-daemon.js +134 -128
- package/dist/bin/tkr-droid-hook.js +12 -11
- package/dist/bin/tkr-exec +0 -0
- package/dist/bin/tkr-exec.js +83 -78
- package/dist/bin/tkr-gemini-hook.js +12 -11
- package/dist/bin/tkr-grok-hook.js +12 -11
- package/dist/bin/tkr-junie-hook.js +12 -11
- package/dist/bin/tkr-processor.js +102 -96
- package/dist/bin/tkr-qwen-hook.js +12 -11
- package/dist/bin/tkr-shim.js +85 -80
- package/dist/bin/tkr-trae-hook.js +12 -11
- package/dist/bin/tkr-zcode-hook.js +12 -11
- package/dist/bin/tkr.js +267 -263
- package/dist/hooks-host/post-tool-use.js +94 -89
- package/dist/hooks-host/pre-tool-use.js +13 -12
- package/dist/hooks-host/reducer-stop.js +1 -1
- package/dist/hooks-host/session-recap.js +1 -1
- package/dist/index.js +93 -88
- package/dist/native/manifest.json +12 -12
- package/dist/native/single.json +12 -12
- 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,141 +1,147 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __tkrCreateRequire } from "node:module"; const require = __tkrCreateRequire(import.meta.url);
|
|
3
|
-
var jd=Object.create;var ys=Object.defineProperty;var Hd=Object.getOwnPropertyDescriptor;var Bd=Object.getOwnPropertyNames;var zd=Object.getPrototypeOf,Ud=Object.prototype.hasOwnProperty;var He=(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 ae=(e,t)=>()=>{try{return t||e((t={exports:{}}).exports,t),t.exports}catch(n){throw t=0,n}},cn=(e,t)=>{for(var n in t)ys(e,n,{get:t[n],enumerable:!0})},Jd=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Bd(t))!Ud.call(e,s)&&s!==n&&ys(e,s,{get:()=>t[s],enumerable:!(r=Hd(t,s))||r.enumerable});return e};var Zd=(e,t,n)=>(n=e!=null?jd(zd(e)):{},Jd(t||!e||!e.__esModule?ys(n,"default",{value:e,enumerable:!0}):n,e));var L,bs,w,xe,fn=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})(L||(L={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(bs||(bs={}));w=L.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),xe=e=>{switch(typeof e){case"undefined":return w.undefined;case"string":return w.string;case"number":return Number.isNaN(e)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":return Array.isArray(e)?w.array:e===null?w.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?w.promise:typeof Map<"u"&&e instanceof Map?w.map:typeof Set<"u"&&e instanceof Set?w.set:typeof Date<"u"&&e instanceof Date?w.date:w.object;default:return w.unknown}}});var y,Gd,ne,Xn=b(()=>{fn();y=L.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"]),Gd=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),ne=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,L.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()}};ne.create=e=>new ne(e)});var Kd,Ie,ks=b(()=>{Xn();fn();Kd=(e,t)=>{let n;switch(e.code){case y.invalid_type:e.received===w.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case y.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,L.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:n=`Unrecognized key(s) in object: ${L.joinValues(e.keys,", ")}`;break;case y.invalid_union:n="Invalid input";break;case y.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${L.joinValues(e.options)}`;break;case y.invalid_enum_value:n=`Invalid enum value. Expected ${L.joinValues(e.options)}, received '${e.received}'`;break;case y.invalid_arguments:n="Invalid function arguments";break;case y.invalid_return_type:n="Invalid function return type";break;case y.invalid_date:n="Invalid date";break;case y.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}"`:L.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case y.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 y.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 y.custom:n="Invalid input";break;case y.invalid_intersection_types:n="Intersection results could not be merged";break;case y.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case y.not_finite:n="Number must be finite";break;default:n=t.defaultError,L.assertNever(e)}return{message:n}},Ie=Kd});function Wd(e){Mi=e}function Rt(){return Mi}var Mi,Qn=b(()=>{ks();Mi=Ie});function _(e,t){let n=Rt(),r=dn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Ie?void 0:Ie].filter(s=>!!s)});e.common.issues.push(r)}var dn,Vd,V,R,nt,Y,er,tr,Be,At,_s=b(()=>{Qn();ks();dn=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}},Vd=[];V=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 R;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 R;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}}},R=Object.freeze({status:"aborted"}),nt=e=>({status:"dirty",value:e}),Y=e=>({status:"valid",value:e}),er=e=>e.status==="aborted",tr=e=>e.status==="dirty",Be=e=>e.status==="valid",At=e=>typeof Promise<"u"&&e instanceof Promise});var Li=b(()=>{});var v,Fi=b(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(v||(v={}))});function P(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 zi(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 dp(e){return new RegExp(`^${zi(e)}$`)}function Ui(e){let t=`${Bi}T${zi(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 pp(e,t){return!!((t==="v4"||!t)&&op.test(e)||(t==="v6"||!t)&&ap.test(e))}function mp(e,t){if(!tp.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 hp(e,t){return!!((t==="v4"||!t)&&ip.test(e)||(t==="v6"||!t)&&lp.test(e))}function gp(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 $t(e){if(e instanceof re){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=fe.create($t(r))}return new re({...e._def,shape:()=>t})}else return e instanceof De?new De({...e._def,type:$t(e.element)}):e instanceof fe?fe.create($t(e.unwrap())):e instanceof ve?ve.create($t(e.unwrap())):e instanceof Se?Se.create(e.items.map(t=>$t(t))):e}function xs(e,t){let n=xe(e),r=xe(t);if(e===t)return{valid:!0,data:e};if(n===w.object&&r===w.object){let s=L.objectKeys(t),o=L.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=xs(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===w.array&&r===w.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=xs(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===w.date&&r===w.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function Ji(e,t){return new pt({values:e,typeName:$.ZodEnum,...P(t)})}function Hi(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function Zi(e,t={},n){return e?Ue.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=Hi(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=Hi(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ue.create()}var de,ji,D,qd,Yd,Xd,Qd,ep,tp,np,rp,sp,ws,op,ip,ap,lp,up,cp,Bi,fp,ze,rt,st,ot,it,Ot,at,lt,Ue,Ne,ye,Ct,De,re,ut,Pe,nr,ct,Se,rr,It,Pt,sr,ft,dt,pt,mt,Je,pe,fe,ve,ht,gt,Nt,yp,pn,mn,yt,bp,$,kp,Gi,Ki,_p,wp,Wi,xp,Sp,vp,Ep,Tp,Rp,Ap,$p,Op,Cp,Ip,Pp,Np,Dp,Mp,Lp,Fp,jp,Hp,Bp,zp,Up,Jp,Zp,Gp,Kp,Wp,Vp,qp,Yp,Xp,Qp,em,tm,Vi=b(()=>{Xn();Qn();Fi();_s();fn();de=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}},ji=(e,t)=>{if(Be(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 ne(e.common.issues);return this._error=n,this._error}}};D=class{get description(){return this._def.description}_getType(t){return xe(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:xe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new V,ctx:{common:t.parent.common,data:t.data,parsedType:xe(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(At(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:xe(t)},s=this._parseSync({data:t,path:r.path,parent:r});return ji(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:xe(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Be(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=>Be(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:xe(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(At(s)?s:Promise.resolve(s));return ji(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:y.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 pe({schema:this,typeName:$.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 fe.create(this,this._def)}nullable(){return ve.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return De.create(this)}promise(){return Je.create(this,this._def)}or(t){return ut.create([this,t],this._def)}and(t){return ct.create(this,t,this._def)}transform(t){return new pe({...P(this._def),schema:this,typeName:$.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new ht({...P(this._def),innerType:this,defaultValue:n,typeName:$.ZodDefault})}brand(){return new pn({typeName:$.ZodBranded,type:this,...P(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new gt({...P(this._def),innerType:this,catchValue:n,typeName:$.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return mn.create(this,t)}readonly(){return yt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},qd=/^c[^\s-]{8,}$/i,Yd=/^[0-9a-z]+$/,Xd=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Qd=/^[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,ep=/^[a-z0-9_-]{21}$/i,tp=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,np=/^[-+]?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)?)??$/,rp=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,sp="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",op=/^(?:(?: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])$/,ip=/^(?:(?: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])$/,ap=/^(([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]))$/,lp=/^(([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])$/,up=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,cp=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,Bi="((\\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])))",fp=new RegExp(`^${Bi}$`);ze=class e extends D{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==w.string){let o=this._getOrReturnCtx(t);return _(o,{code:y.invalid_type,expected:w.string,received:o.parsedType}),R}let r=new V,s;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:y.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),_(s,{code:y.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?_(s,{code:y.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&_(s,{code:y.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")rp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"email",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")ws||(ws=new RegExp(sp,"u")),ws.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"emoji",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Qd.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"uuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")ep.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"nanoid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")qd.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")Yd.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid2",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Xd.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ulid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),_(s,{validation:"url",code:y.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),_(s,{validation:"regex",code:y.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),_(s,{code:y.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),_(s,{code:y.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),_(s,{code:y.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?Ui(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:y.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?fp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:y.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?dp(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:y.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?np.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"duration",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?pp(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ip",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?mp(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"jwt",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?hp(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cidr",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?up.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?cp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64url",code:y.invalid_string,message:o.message}),r.dirty()):L.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:y.invalid_string,...v.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...v.errToObj(t)})}url(t){return this._addCheck({kind:"url",...v.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...v.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...v.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...v.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...v.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...v.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...v.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...v.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...v.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...v.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...v.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...v.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,...v.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,...v.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...v.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...v.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...v.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...v.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...v.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...v.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...v.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...v.errToObj(n)})}nonempty(t){return this.min(1,v.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}};ze.create=e=>new ze({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...P(e)});rt=class e extends D{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)!==w.number){let o=this._getOrReturnCtx(t);return _(o,{code:y.invalid_type,expected:w.number,received:o.parsedType}),R}let r,s=new V;for(let o of this._def.checks)o.kind==="int"?L.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:y.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),_(r,{code:y.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),_(r,{code:y.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?gp(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),_(r,{code:y.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:y.not_finite,message:o.message}),s.dirty()):L.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:v.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:v.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:v.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:v.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"&&L.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)}};rt.create=e=>new rt({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...P(e)});st=class e extends D{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)!==w.bigint)return this._getInvalidInput(t);let r,s=new V;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),_(r,{code:y.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),_(r,{code:y.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),_(r,{code:y.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):L.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return _(n,{code:y.invalid_type,expected:w.bigint,received:n.parsedType}),R}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.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:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.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}};st.create=e=>new st({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...P(e)});ot=class extends D{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==w.boolean){let r=this._getOrReturnCtx(t);return _(r,{code:y.invalid_type,expected:w.boolean,received:r.parsedType}),R}return Y(t.data)}};ot.create=e=>new ot({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...P(e)});it=class e extends D{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==w.date){let o=this._getOrReturnCtx(t);return _(o,{code:y.invalid_type,expected:w.date,received:o.parsedType}),R}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return _(o,{code:y.invalid_date}),R}let r=new V,s;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(s=this._getOrReturnCtx(t,s),_(s,{code:y.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),_(s,{code:y.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):L.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:v.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:v.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}};it.create=e=>new it({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...P(e)});Ot=class extends D{_parse(t){if(this._getType(t)!==w.symbol){let r=this._getOrReturnCtx(t);return _(r,{code:y.invalid_type,expected:w.symbol,received:r.parsedType}),R}return Y(t.data)}};Ot.create=e=>new Ot({typeName:$.ZodSymbol,...P(e)});at=class extends D{_parse(t){if(this._getType(t)!==w.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:y.invalid_type,expected:w.undefined,received:r.parsedType}),R}return Y(t.data)}};at.create=e=>new at({typeName:$.ZodUndefined,...P(e)});lt=class extends D{_parse(t){if(this._getType(t)!==w.null){let r=this._getOrReturnCtx(t);return _(r,{code:y.invalid_type,expected:w.null,received:r.parsedType}),R}return Y(t.data)}};lt.create=e=>new lt({typeName:$.ZodNull,...P(e)});Ue=class extends D{constructor(){super(...arguments),this._any=!0}_parse(t){return Y(t.data)}};Ue.create=e=>new Ue({typeName:$.ZodAny,...P(e)});Ne=class extends D{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Y(t.data)}};Ne.create=e=>new Ne({typeName:$.ZodUnknown,...P(e)});ye=class extends D{_parse(t){let n=this._getOrReturnCtx(t);return _(n,{code:y.invalid_type,expected:w.never,received:n.parsedType}),R}};ye.create=e=>new ye({typeName:$.ZodNever,...P(e)});Ct=class extends D{_parse(t){if(this._getType(t)!==w.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:y.invalid_type,expected:w.void,received:r.parsedType}),R}return Y(t.data)}};Ct.create=e=>new Ct({typeName:$.ZodVoid,...P(e)});De=class e extends D{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==w.array)return _(n,{code:y.invalid_type,expected:w.array,received:n.parsedType}),R;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(_(n,{code:i?y.too_big:y.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&&(_(n,{code:y.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&&(_(n,{code:y.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 de(n,i,n.path,a)))).then(i=>V.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new de(n,i,n.path,a)));return V.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:v.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:v.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:v.toString(n)}})}nonempty(t){return this.min(1,t)}};De.create=(e,t)=>new De({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...P(t)});re=class e extends D{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=L.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==w.object){let u=this._getOrReturnCtx(t);return _(u,{code:y.invalid_type,expected:w.object,received:u.parsedType}),R}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof ye&&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 de(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof ye){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&&(_(s,{code:y.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 de(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=>V.mergeObjectSync(r,u)):V.mergeObjectSync(r,l)}get shape(){return this._def.shape()}strict(t){return v.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:v.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:$.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 L.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 L.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return $t(this)}partial(t){let n={};for(let r of L.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 L.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof fe;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return Ji(L.objectKeys(this.shape))}};re.create=(e,t)=>new re({shape:()=>e,unknownKeys:"strip",catchall:ye.create(),typeName:$.ZodObject,...P(t)});re.strictCreate=(e,t)=>new re({shape:()=>e,unknownKeys:"strict",catchall:ye.create(),typeName:$.ZodObject,...P(t)});re.lazycreate=(e,t)=>new re({shape:e,unknownKeys:"strip",catchall:ye.create(),typeName:$.ZodObject,...P(t)});ut=class extends D{_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 ne(a.ctx.common.issues));return _(n,{code:y.invalid_union,unionErrors:i}),R}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 ne(l));return _(n,{code:y.invalid_union,unionErrors:a}),R}}get options(){return this._def.options}};ut.create=(e,t)=>new ut({options:e,typeName:$.ZodUnion,...P(t)});Pe=e=>e instanceof ft?Pe(e.schema):e instanceof pe?Pe(e.innerType()):e instanceof dt?[e.value]:e instanceof pt?e.options:e instanceof mt?L.objectValues(e.enum):e instanceof ht?Pe(e._def.innerType):e instanceof at?[void 0]:e instanceof lt?[null]:e instanceof fe?[void 0,...Pe(e.unwrap())]:e instanceof ve?[null,...Pe(e.unwrap())]:e instanceof pn||e instanceof yt?Pe(e.unwrap()):e instanceof gt?Pe(e._def.innerType):[],nr=class e extends D{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==w.object)return _(n,{code:y.invalid_type,expected:w.object,received:n.parsedType}),R;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}):(_(n,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),R)}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=Pe(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:$.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...P(r)})}};ct=class extends D{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(er(o)||er(i))return R;let a=xs(o.value,i.value);return a.valid?((tr(o)||tr(i))&&n.dirty(),{status:n.value,value:a.data}):(_(r,{code:y.invalid_intersection_types}),R)};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}))}};ct.create=(e,t,n)=>new ct({left:e,right:t,typeName:$.ZodIntersection,...P(n)});Se=class e extends D{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==w.array)return _(r,{code:y.invalid_type,expected:w.array,received:r.parsedType}),R;if(r.data.length<this._def.items.length)return _(r,{code:y.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),R;!this._def.rest&&r.data.length>this._def.items.length&&(_(r,{code:y.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 de(r,i,r.path,a)):null}).filter(i=>!!i);return r.common.async?Promise.all(o).then(i=>V.mergeArray(n,i)):V.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};Se.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Se({items:e,typeName:$.ZodTuple,rest:null,...P(t)})};rr=class e extends D{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!==w.object)return _(r,{code:y.invalid_type,expected:w.object,received:r.parsedType}),R;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new de(r,a,r.path,a)),value:i._parse(new de(r,r.data[a],r.path,a)),alwaysSet:a in r.data});return r.common.async?V.mergeObjectAsync(n,s):V.mergeObjectSync(n,s)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof D?new e({keyType:t,valueType:n,typeName:$.ZodRecord,...P(r)}):new e({keyType:ze.create(),valueType:t,typeName:$.ZodRecord,...P(n)})}},It=class extends D{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!==w.map)return _(r,{code:y.invalid_type,expected:w.map,received:r.parsedType}),R;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new de(r,a,r.path,[u,"key"])),value:o._parse(new de(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 R;(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 R;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};It.create=(e,t,n)=>new It({valueType:t,keyType:e,typeName:$.ZodMap,...P(n)});Pt=class e extends D{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==w.set)return _(r,{code:y.invalid_type,expected:w.set,received:r.parsedType}),R;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(_(r,{code:y.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&&(_(r,{code:y.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 R;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 de(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:v.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:v.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Pt.create=(e,t)=>new Pt({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...P(t)});sr=class e extends D{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==w.function)return _(n,{code:y.invalid_type,expected:w.function,received:n.parsedType}),R;function r(a,l){return dn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Rt(),Ie].filter(u=>!!u),issueData:{code:y.invalid_arguments,argumentsError:l}})}function s(a,l){return dn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Rt(),Ie].filter(u=>!!u),issueData:{code:y.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Je){let a=this;return Y(async function(...l){let u=new ne([]),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 Y(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new ne([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new ne([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:Se.create(t).rest(Ne.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||Se.create([]).rest(Ne.create()),returns:n||Ne.create(),typeName:$.ZodFunction,...P(r)})}},ft=class extends D{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})}};ft.create=(e,t)=>new ft({getter:e,typeName:$.ZodLazy,...P(t)});dt=class extends D{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return _(n,{received:n.data,code:y.invalid_literal,expected:this._def.value}),R}return{status:"valid",value:t.data}}get value(){return this._def.value}};dt.create=(e,t)=>new dt({value:e,typeName:$.ZodLiteral,...P(t)});pt=class e extends D{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{expected:L.joinValues(r),received:n.parsedType,code:y.invalid_type}),R}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 _(n,{received:n.data,code:y.invalid_enum_value,options:r}),R}return Y(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})}};pt.create=Ji;mt=class extends D{_parse(t){let n=L.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==w.string&&r.parsedType!==w.number){let s=L.objectValues(n);return _(r,{expected:L.joinValues(s),received:r.parsedType,code:y.invalid_type}),R}if(this._cache||(this._cache=new Set(L.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=L.objectValues(n);return _(r,{received:r.data,code:y.invalid_enum_value,options:s}),R}return Y(t.data)}get enum(){return this._def.values}};mt.create=(e,t)=>new mt({values:e,typeName:$.ZodNativeEnum,...P(t)});Je=class extends D{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==w.promise&&n.common.async===!1)return _(n,{code:y.invalid_type,expected:w.promise,received:n.parsedType}),R;let r=n.parsedType===w.promise?n.data:Promise.resolve(n.data);return Y(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Je.create=(e,t)=>new Je({type:e,typeName:$.ZodPromise,...P(t)});pe=class extends D{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$.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=>{_(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 R;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?R:l.status==="dirty"?nt(l.value):n.value==="dirty"?nt(l.value):l});{if(n.value==="aborted")return R;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?R:a.status==="dirty"?nt(a.value):n.value==="dirty"?nt(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"?R:(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"?R:(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(!Be(i))return R;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=>Be(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):R);L.assertNever(s)}};pe.create=(e,t,n)=>new pe({schema:e,typeName:$.ZodEffects,effect:t,...P(n)});pe.createWithPreprocess=(e,t,n)=>new pe({schema:t,effect:{type:"preprocess",transform:e},typeName:$.ZodEffects,...P(n)});fe=class extends D{_parse(t){return this._getType(t)===w.undefined?Y(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};fe.create=(e,t)=>new fe({innerType:e,typeName:$.ZodOptional,...P(t)});ve=class extends D{_parse(t){return this._getType(t)===w.null?Y(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};ve.create=(e,t)=>new ve({innerType:e,typeName:$.ZodNullable,...P(t)});ht=class extends D{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===w.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};ht.create=(e,t)=>new ht({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...P(t)});gt=class extends D{_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 At(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new ne(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new ne(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};gt.create=(e,t)=>new gt({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...P(t)});Nt=class extends D{_parse(t){if(this._getType(t)!==w.nan){let r=this._getOrReturnCtx(t);return _(r,{code:y.invalid_type,expected:w.nan,received:r.parsedType}),R}return{status:"valid",value:t.data}}};Nt.create=e=>new Nt({typeName:$.ZodNaN,...P(e)});yp=Symbol("zod_brand"),pn=class extends D{_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}},mn=class e extends D{_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"?R:o.status==="dirty"?(n.dirty(),nt(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"?R: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:$.ZodPipeline})}},yt=class extends D{_parse(t){let n=this._def.innerType._parse(t),r=s=>(Be(s)&&(s.value=Object.freeze(s.value)),s);return At(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};yt.create=(e,t)=>new yt({innerType:e,typeName:$.ZodReadonly,...P(t)});bp={object:re.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"})($||($={}));kp=(e,t={message:`Input not instance of ${e.name}`})=>Zi(n=>n instanceof e,t),Gi=ze.create,Ki=rt.create,_p=Nt.create,wp=st.create,Wi=ot.create,xp=it.create,Sp=Ot.create,vp=at.create,Ep=lt.create,Tp=Ue.create,Rp=Ne.create,Ap=ye.create,$p=Ct.create,Op=De.create,Cp=re.create,Ip=re.strictCreate,Pp=ut.create,Np=nr.create,Dp=ct.create,Mp=Se.create,Lp=rr.create,Fp=It.create,jp=Pt.create,Hp=sr.create,Bp=ft.create,zp=dt.create,Up=pt.create,Jp=mt.create,Zp=Je.create,Gp=pe.create,Kp=fe.create,Wp=ve.create,Vp=pe.createWithPreprocess,qp=mn.create,Yp=()=>Gi().optional(),Xp=()=>Ki().optional(),Qp=()=>Wi().optional(),em={string:(e=>ze.create({...e,coerce:!0})),number:(e=>rt.create({...e,coerce:!0})),boolean:(e=>ot.create({...e,coerce:!0})),bigint:(e=>st.create({...e,coerce:!0})),date:(e=>it.create({...e,coerce:!0}))},tm=R});var h={};cn(h,{BRAND:()=>yp,DIRTY:()=>nt,EMPTY_PATH:()=>Vd,INVALID:()=>R,NEVER:()=>tm,OK:()=>Y,ParseStatus:()=>V,Schema:()=>D,ZodAny:()=>Ue,ZodArray:()=>De,ZodBigInt:()=>st,ZodBoolean:()=>ot,ZodBranded:()=>pn,ZodCatch:()=>gt,ZodDate:()=>it,ZodDefault:()=>ht,ZodDiscriminatedUnion:()=>nr,ZodEffects:()=>pe,ZodEnum:()=>pt,ZodError:()=>ne,ZodFirstPartyTypeKind:()=>$,ZodFunction:()=>sr,ZodIntersection:()=>ct,ZodIssueCode:()=>y,ZodLazy:()=>ft,ZodLiteral:()=>dt,ZodMap:()=>It,ZodNaN:()=>Nt,ZodNativeEnum:()=>mt,ZodNever:()=>ye,ZodNull:()=>lt,ZodNullable:()=>ve,ZodNumber:()=>rt,ZodObject:()=>re,ZodOptional:()=>fe,ZodParsedType:()=>w,ZodPipeline:()=>mn,ZodPromise:()=>Je,ZodReadonly:()=>yt,ZodRecord:()=>rr,ZodSchema:()=>D,ZodSet:()=>Pt,ZodString:()=>ze,ZodSymbol:()=>Ot,ZodTransformer:()=>pe,ZodTuple:()=>Se,ZodType:()=>D,ZodUndefined:()=>at,ZodUnion:()=>ut,ZodUnknown:()=>Ne,ZodVoid:()=>Ct,addIssueToContext:()=>_,any:()=>Tp,array:()=>Op,bigint:()=>wp,boolean:()=>Wi,coerce:()=>em,custom:()=>Zi,date:()=>xp,datetimeRegex:()=>Ui,defaultErrorMap:()=>Ie,discriminatedUnion:()=>Np,effect:()=>Gp,enum:()=>Up,function:()=>Hp,getErrorMap:()=>Rt,getParsedType:()=>xe,instanceof:()=>kp,intersection:()=>Dp,isAborted:()=>er,isAsync:()=>At,isDirty:()=>tr,isValid:()=>Be,late:()=>bp,lazy:()=>Bp,literal:()=>zp,makeIssue:()=>dn,map:()=>Fp,nan:()=>_p,nativeEnum:()=>Jp,never:()=>Ap,null:()=>Ep,nullable:()=>Wp,number:()=>Ki,object:()=>Cp,objectUtil:()=>bs,oboolean:()=>Qp,onumber:()=>Xp,optional:()=>Kp,ostring:()=>Yp,pipeline:()=>qp,preprocess:()=>Vp,promise:()=>Zp,quotelessJson:()=>Gd,record:()=>Lp,set:()=>jp,setErrorMap:()=>Wd,strictObject:()=>Ip,string:()=>Gi,symbol:()=>Sp,transformer:()=>Gp,tuple:()=>Mp,undefined:()=>vp,union:()=>Pp,unknown:()=>Rp,util:()=>L,void:()=>$p});var Ss=b(()=>{Qn();_s();Li();fn();Vi();Xn()});var bt=b(()=>{Ss();Ss()});var Ze,hn=b(()=>{"use strict";bt();Ze=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([]),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(),on_empty:h.string().max(255).optional()})});var Qi={};cn(Qi,{OutputVerbosity:()=>Yi,ReducerLevel:()=>Xi,Settings:()=>Dt,slugKey:()=>le});import{createHash as nm}from"node:crypto";function le(e){let t=qi.get(e);return t||(t=nm("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),qi.set(e,t)),t}var Yi,Xi,Dt,qi,Ge=b(()=>{"use strict";bt();Yi=h.enum(["normal","compact","minimal"]),Xi=h.enum(["off","light","balanced","max"]),Dt=h.object({enabled:h.boolean().default(!0),telemetryOptIn:h.boolean().default(!0),outputVerbosity:Yi.default("compact"),reducer:Xi.default("off"),filters:h.object({enableAll:h.boolean().default(!0),disabled:h.array(h.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),qi=new Map});function Mt(e,t,n,r=t){let s=ea.get(r);s||(s=new Map,ea.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(le(l.slug))||l.matchRegex.test(e)&&(!a||l.priority>a.priority)&&(a=l);if(s.size>=rm){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}var ea,rm,or=b(()=>{"use strict";Ge();ea=new WeakMap,rm=256});import sm from"node:os";import{join as gn}from"node:path";function x(){return process.env.TOKMIZER_HOME||gn(sm.homedir(),".tokmizer")}function yn(){return gn(x(),"install-id")}function vs(){return gn(x(),"content-cache")}function ta(){return gn(x(),"restore.json")}function Es(e){return gn(vs(),e)}var B=b(()=>{"use strict"});import{join as om}from"node:path";import{mkdir as wE,readFile as im,writeFile as xE,unlink as SE,rename as vE}from"node:fs/promises";function lm(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function um(e){return e?.dir??x()}async function kt(e){let t=um(e);try{let n=await im(om(t,am),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=lm()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}var am,bn=b(()=>{"use strict";B();am="state.json"});import{createRequire as cm}from"node:module";function dm(){let e="0.9.68";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=fm(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 fm,me,Lt=b(()=>{"use strict";fm=cm(import.meta.url);me=dm()});var ra,sa=b(()=>{"use strict";ra=`-----BEGIN PUBLIC KEY-----
|
|
3
|
+
var mp=Object.create;var $s=Object.defineProperty;var hp=Object.getOwnPropertyDescriptor;var gp=Object.getOwnPropertyNames;var yp=Object.getPrototypeOf,bp=Object.prototype.hasOwnProperty;var Ue=(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 y=(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}},gn=(e,t)=>{for(var n in t)$s(e,n,{get:t[n],enumerable:!0})},kp=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of gp(t))!bp.call(e,s)&&s!==n&&$s(e,s,{get:()=>t[s],enumerable:!(r=hp(t,s))||r.enumerable});return e};var _p=(e,t,n)=>(n=e!=null?mp(yp(e)):{},kp(t||!e||!e.__esModule?$s(n,"default",{value:e,enumerable:!0}):n,e));var L,Os,w,Te,yn=y(()=>{(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})(L||(L={}));(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(Os||(Os={}));w=L.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),Te=e=>{switch(typeof e){case"undefined":return w.undefined;case"string":return w.string;case"number":return Number.isNaN(e)?w.nan:w.number;case"boolean":return w.boolean;case"function":return w.function;case"bigint":return w.bigint;case"symbol":return w.symbol;case"object":return Array.isArray(e)?w.array:e===null?w.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?w.promise:typeof Map<"u"&&e instanceof Map?w.map:typeof Set<"u"&&e instanceof Set?w.set:typeof Date<"u"&&e instanceof Date?w.date:w.object;default:return w.unknown}}});var b,wp,se,ir=y(()=>{yn();b=L.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"]),wp=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),se=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,L.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()}};se.create=e=>new se(e)});var xp,De,Cs=y(()=>{ir();yn();xp=(e,t)=>{let n;switch(e.code){case b.invalid_type:e.received===w.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case b.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,L.jsonStringifyReplacer)}`;break;case b.unrecognized_keys:n=`Unrecognized key(s) in object: ${L.joinValues(e.keys,", ")}`;break;case b.invalid_union:n="Invalid input";break;case b.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${L.joinValues(e.options)}`;break;case b.invalid_enum_value:n=`Invalid enum value. Expected ${L.joinValues(e.options)}, received '${e.received}'`;break;case b.invalid_arguments:n="Invalid function arguments";break;case b.invalid_return_type:n="Invalid function return type";break;case b.invalid_date:n="Invalid date";break;case b.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}"`:L.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case b.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 b.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 b.custom:n="Invalid input";break;case b.invalid_intersection_types:n="Intersection results could not be merged";break;case b.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case b.not_finite:n="Number must be finite";break;default:n=t.defaultError,L.assertNever(e)}return{message:n}},De=xp});function Sp(e){ea=e}function Ct(){return ea}var ea,ar=y(()=>{Cs();ea=De});function _(e,t){let n=Ct(),r=bn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===De?void 0:De].filter(s=>!!s)});e.common.issues.push(r)}var bn,vp,Y,R,ot,Q,lr,ur,ze,It,Is=y(()=>{ar();Cs();bn=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}},vp=[];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 R;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 R;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}}},R=Object.freeze({status:"aborted"}),ot=e=>({status:"dirty",value:e}),Q=e=>({status:"valid",value:e}),lr=e=>e.status==="aborted",ur=e=>e.status==="dirty",ze=e=>e.status==="valid",It=e=>typeof Promise<"u"&&e instanceof Promise});var ta=y(()=>{});var v,na=y(()=>{(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(v||(v={}))});function P(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 ia(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 Bp(e){return new RegExp(`^${ia(e)}$`)}function aa(e){let t=`${oa}T${ia(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 Up(e,t){return!!((t==="v4"||!t)&&Np.test(e)||(t==="v6"||!t)&&Mp.test(e))}function zp(e,t){if(!Op.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 Jp(e,t){return!!((t==="v4"||!t)&&Dp.test(e)||(t==="v6"||!t)&&Lp.test(e))}function Zp(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 Pt(e){if(e instanceof oe){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=pe.create(Pt(r))}return new oe({...e._def,shape:()=>t})}else return e instanceof Fe?new Fe({...e._def,type:Pt(e.element)}):e instanceof pe?pe.create(Pt(e.unwrap())):e instanceof Ae?Ae.create(Pt(e.unwrap())):e instanceof Re?Re.create(e.items.map(t=>Pt(t))):e}function Ns(e,t){let n=Te(e),r=Te(t);if(e===t)return{valid:!0,data:e};if(n===w.object&&r===w.object){let s=L.objectKeys(t),o=L.objectKeys(e).filter(a=>s.indexOf(a)!==-1),i={...e,...t};for(let a of o){let l=Ns(e[a],t[a]);if(!l.valid)return{valid:!1};i[a]=l.data}return{valid:!0,data:i}}else if(n===w.array&&r===w.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=Ns(i,a);if(!l.valid)return{valid:!1};s.push(l.data)}return{valid:!0,data:s}}else return n===w.date&&r===w.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}function la(e,t){return new gt({values:e,typeName:$.ZodEnum,...P(t)})}function sa(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function ua(e,t={},n){return e?Ze.create().superRefine((r,s)=>{let o=e(r);if(o instanceof Promise)return o.then(i=>{if(!i){let a=sa(t,r),l=a.fatal??n??!0;s.addIssue({code:"custom",...a,fatal:l})}});if(!o){let i=sa(t,r),a=i.fatal??n??!0;s.addIssue({code:"custom",...i,fatal:a})}}):Ze.create()}var me,ra,M,Ep,Tp,Rp,Ap,$p,Op,Cp,Ip,Pp,Ps,Np,Dp,Mp,Lp,Fp,jp,oa,Hp,Je,it,at,lt,ut,Nt,ct,ft,Ze,Le,_e,Dt,Fe,oe,dt,Me,cr,pt,Re,fr,Mt,Lt,dr,mt,ht,gt,yt,Ge,he,pe,Ae,bt,kt,Ft,Gp,kn,_n,_t,Kp,$,Wp,ca,fa,Vp,Yp,da,qp,Xp,Qp,em,tm,nm,rm,sm,om,im,am,lm,um,cm,fm,dm,pm,mm,hm,gm,ym,bm,km,_m,wm,xm,Sm,vm,Em,Tm,Rm,Am,$m,Om,pa=y(()=>{ir();ar();na();Is();yn();me=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}},ra=(e,t)=>{if(ze(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 se(e.common.issues);return this._error=n,this._error}}};M=class{get description(){return this._def.description}_getType(t){return Te(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:Te(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:Te(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(It(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:Te(t)},s=this._parseSync({data:t,path:r.path,parent:r});return ra(r,s)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:Te(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return ze(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=>ze(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:Te(t)},s=this._parse({data:t,path:r.path,parent:r}),o=await(It(s)?s:Promise.resolve(s));return ra(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:b.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 he({schema:this,typeName:$.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 pe.create(this,this._def)}nullable(){return Ae.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Fe.create(this)}promise(){return Ge.create(this,this._def)}or(t){return dt.create([this,t],this._def)}and(t){return pt.create(this,t,this._def)}transform(t){return new he({...P(this._def),schema:this,typeName:$.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new bt({...P(this._def),innerType:this,defaultValue:n,typeName:$.ZodDefault})}brand(){return new kn({typeName:$.ZodBranded,type:this,...P(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new kt({...P(this._def),innerType:this,catchValue:n,typeName:$.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return _n.create(this,t)}readonly(){return _t.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},Ep=/^c[^\s-]{8,}$/i,Tp=/^[0-9a-z]+$/,Rp=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ap=/^[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,$p=/^[a-z0-9_-]{21}$/i,Op=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Cp=/^[-+]?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)?)??$/,Ip=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Pp="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",Np=/^(?:(?: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])$/,Dp=/^(?:(?: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])$/,Mp=/^(([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]))$/,Lp=/^(([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])$/,Fp=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,jp=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,oa="((\\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])))",Hp=new RegExp(`^${oa}$`);Je=class e extends M{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==w.string){let o=this._getOrReturnCtx(t);return _(o,{code:b.invalid_type,expected:w.string,received:o.parsedType}),R}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),_(s,{code:b.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),_(s,{code:b.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?_(s,{code:b.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):a&&_(s,{code:b.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Ip.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"email",code:b.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")Ps||(Ps=new RegExp(Pp,"u")),Ps.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"emoji",code:b.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Ap.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"uuid",code:b.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")$p.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"nanoid",code:b.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")Ep.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid",code:b.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")Tp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cuid2",code:b.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")Rp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ulid",code:b.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{s=this._getOrReturnCtx(t,s),_(s,{validation:"url",code:b.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),_(s,{validation:"regex",code:b.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),_(s,{code:b.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),_(s,{code:b.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(s=this._getOrReturnCtx(t,s),_(s,{code:b.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?aa(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:b.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Hp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:b.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?Bp(o).test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{code:b.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Cp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"duration",code:b.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Up(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"ip",code:b.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?zp(t.data,o.alg)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"jwt",code:b.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?Jp(t.data,o.version)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"cidr",code:b.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Fp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64",code:b.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?jp.test(t.data)||(s=this._getOrReturnCtx(t,s),_(s,{validation:"base64url",code:b.invalid_string,message:o.message}),r.dirty()):L.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(s=>t.test(s),{validation:n,code:b.invalid_string,...v.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...v.errToObj(t)})}url(t){return this._addCheck({kind:"url",...v.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...v.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...v.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...v.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...v.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...v.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...v.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...v.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...v.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...v.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...v.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...v.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,...v.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,...v.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...v.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...v.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...v.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...v.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...v.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...v.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...v.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...v.errToObj(n)})}nonempty(t){return this.min(1,v.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}};Je.create=e=>new Je({checks:[],typeName:$.ZodString,coerce:e?.coerce??!1,...P(e)});it=class e extends M{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)!==w.number){let o=this._getOrReturnCtx(t);return _(o,{code:b.invalid_type,expected:w.number,received:o.parsedType}),R}let r,s=new Y;for(let o of this._def.checks)o.kind==="int"?L.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:b.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),_(r,{code:b.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),_(r,{code:b.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),s.dirty()):o.kind==="multipleOf"?Zp(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),_(r,{code:b.not_finite,message:o.message}),s.dirty()):L.assertNever(o);return{status:s.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.toString(s)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:v.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:v.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:v.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:v.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"&&L.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)}};it.create=e=>new it({checks:[],typeName:$.ZodNumber,coerce:e?.coerce||!1,...P(e)});at=class e extends M{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)!==w.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),_(r,{code:b.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),_(r,{code:b.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),_(r,{code:b.not_multiple_of,multipleOf:o.value,message:o.message}),s.dirty()):L.assertNever(o);return{status:s.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return _(n,{code:b.invalid_type,expected:w.bigint,received:n.parsedType}),R}gte(t,n){return this.setLimit("min",t,!0,v.toString(n))}gt(t,n){return this.setLimit("min",t,!1,v.toString(n))}lte(t,n){return this.setLimit("max",t,!0,v.toString(n))}lt(t,n){return this.setLimit("max",t,!1,v.toString(n))}setLimit(t,n,r,s){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:v.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:v.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:v.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:v.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:v.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:v.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}};at.create=e=>new at({checks:[],typeName:$.ZodBigInt,coerce:e?.coerce??!1,...P(e)});lt=class extends M{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==w.boolean){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:w.boolean,received:r.parsedType}),R}return Q(t.data)}};lt.create=e=>new lt({typeName:$.ZodBoolean,coerce:e?.coerce||!1,...P(e)});ut=class e extends M{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==w.date){let o=this._getOrReturnCtx(t);return _(o,{code:b.invalid_type,expected:w.date,received:o.parsedType}),R}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return _(o,{code:b.invalid_date}),R}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),_(s,{code:b.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),_(s,{code:b.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):L.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:v.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:v.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}};ut.create=e=>new ut({checks:[],coerce:e?.coerce||!1,typeName:$.ZodDate,...P(e)});Nt=class extends M{_parse(t){if(this._getType(t)!==w.symbol){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:w.symbol,received:r.parsedType}),R}return Q(t.data)}};Nt.create=e=>new Nt({typeName:$.ZodSymbol,...P(e)});ct=class extends M{_parse(t){if(this._getType(t)!==w.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:w.undefined,received:r.parsedType}),R}return Q(t.data)}};ct.create=e=>new ct({typeName:$.ZodUndefined,...P(e)});ft=class extends M{_parse(t){if(this._getType(t)!==w.null){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:w.null,received:r.parsedType}),R}return Q(t.data)}};ft.create=e=>new ft({typeName:$.ZodNull,...P(e)});Ze=class extends M{constructor(){super(...arguments),this._any=!0}_parse(t){return Q(t.data)}};Ze.create=e=>new Ze({typeName:$.ZodAny,...P(e)});Le=class extends M{constructor(){super(...arguments),this._unknown=!0}_parse(t){return Q(t.data)}};Le.create=e=>new Le({typeName:$.ZodUnknown,...P(e)});_e=class extends M{_parse(t){let n=this._getOrReturnCtx(t);return _(n,{code:b.invalid_type,expected:w.never,received:n.parsedType}),R}};_e.create=e=>new _e({typeName:$.ZodNever,...P(e)});Dt=class extends M{_parse(t){if(this._getType(t)!==w.undefined){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:w.void,received:r.parsedType}),R}return Q(t.data)}};Dt.create=e=>new Dt({typeName:$.ZodVoid,...P(e)});Fe=class e extends M{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),s=this._def;if(n.parsedType!==w.array)return _(n,{code:b.invalid_type,expected:w.array,received:n.parsedType}),R;if(s.exactLength!==null){let i=n.data.length>s.exactLength.value,a=n.data.length<s.exactLength.value;(i||a)&&(_(n,{code:i?b.too_big:b.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&&(_(n,{code:b.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&&(_(n,{code:b.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 me(n,i,n.path,a)))).then(i=>Y.mergeArray(r,i));let o=[...n.data].map((i,a)=>s.type._parseSync(new me(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:v.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:v.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:v.toString(n)}})}nonempty(t){return this.min(1,t)}};Fe.create=(e,t)=>new Fe({type:e,minLength:null,maxLength:null,exactLength:null,typeName:$.ZodArray,...P(t)});oe=class e extends M{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=L.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==w.object){let u=this._getOrReturnCtx(t);return _(u,{code:b.invalid_type,expected:w.object,received:u.parsedType}),R}let{status:r,ctx:s}=this._processInputParams(t),{shape:o,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof _e&&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 me(s,f,s.path,u)),alwaysSet:u in s.data})}if(this._def.catchall instanceof _e){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&&(_(s,{code:b.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 me(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 v.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:v.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:$.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 L.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 L.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Pt(this)}partial(t){let n={};for(let r of L.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 L.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof pe;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return la(L.objectKeys(this.shape))}};oe.create=(e,t)=>new oe({shape:()=>e,unknownKeys:"strip",catchall:_e.create(),typeName:$.ZodObject,...P(t)});oe.strictCreate=(e,t)=>new oe({shape:()=>e,unknownKeys:"strict",catchall:_e.create(),typeName:$.ZodObject,...P(t)});oe.lazycreate=(e,t)=>new oe({shape:e,unknownKeys:"strip",catchall:_e.create(),typeName:$.ZodObject,...P(t)});dt=class extends M{_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 se(a.ctx.common.issues));return _(n,{code:b.invalid_union,unionErrors:i}),R}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 se(l));return _(n,{code:b.invalid_union,unionErrors:a}),R}}get options(){return this._def.options}};dt.create=(e,t)=>new dt({options:e,typeName:$.ZodUnion,...P(t)});Me=e=>e instanceof mt?Me(e.schema):e instanceof he?Me(e.innerType()):e instanceof ht?[e.value]:e instanceof gt?e.options:e instanceof yt?L.objectValues(e.enum):e instanceof bt?Me(e._def.innerType):e instanceof ct?[void 0]:e instanceof ft?[null]:e instanceof pe?[void 0,...Me(e.unwrap())]:e instanceof Ae?[null,...Me(e.unwrap())]:e instanceof kn||e instanceof _t?Me(e.unwrap()):e instanceof kt?Me(e._def.innerType):[],cr=class e extends M{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==w.object)return _(n,{code:b.invalid_type,expected:w.object,received:n.parsedType}),R;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}):(_(n,{code:b.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),R)}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=Me(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:$.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:s,...P(r)})}};pt=class extends M{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),s=(o,i)=>{if(lr(o)||lr(i))return R;let a=Ns(o.value,i.value);return a.valid?((ur(o)||ur(i))&&n.dirty(),{status:n.value,value:a.data}):(_(r,{code:b.invalid_intersection_types}),R)};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}))}};pt.create=(e,t,n)=>new pt({left:e,right:t,typeName:$.ZodIntersection,...P(n)});Re=class e extends M{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==w.array)return _(r,{code:b.invalid_type,expected:w.array,received:r.parsedType}),R;if(r.data.length<this._def.items.length)return _(r,{code:b.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),R;!this._def.rest&&r.data.length>this._def.items.length&&(_(r,{code:b.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 me(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})}};Re.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new Re({items:e,typeName:$.ZodTuple,rest:null,...P(t)})};fr=class e extends M{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!==w.object)return _(r,{code:b.invalid_type,expected:w.object,received:r.parsedType}),R;let s=[],o=this._def.keyType,i=this._def.valueType;for(let a in r.data)s.push({key:o._parse(new me(r,a,r.path,a)),value:i._parse(new me(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 M?new e({keyType:t,valueType:n,typeName:$.ZodRecord,...P(r)}):new e({keyType:Je.create(),valueType:t,typeName:$.ZodRecord,...P(n)})}},Mt=class extends M{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!==w.map)return _(r,{code:b.invalid_type,expected:w.map,received:r.parsedType}),R;let s=this._def.keyType,o=this._def.valueType,i=[...r.data.entries()].map(([a,l],u)=>({key:s._parse(new me(r,a,r.path,[u,"key"])),value:o._parse(new me(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 R;(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 R;(u.status==="dirty"||c.status==="dirty")&&n.dirty(),a.set(u.value,c.value)}return{status:n.value,value:a}}}};Mt.create=(e,t,n)=>new Mt({valueType:t,keyType:e,typeName:$.ZodMap,...P(n)});Lt=class e extends M{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==w.set)return _(r,{code:b.invalid_type,expected:w.set,received:r.parsedType}),R;let s=this._def;s.minSize!==null&&r.data.size<s.minSize.value&&(_(r,{code:b.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&&(_(r,{code:b.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 R;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 me(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:v.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:v.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};Lt.create=(e,t)=>new Lt({valueType:e,minSize:null,maxSize:null,typeName:$.ZodSet,...P(t)});dr=class e extends M{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==w.function)return _(n,{code:b.invalid_type,expected:w.function,received:n.parsedType}),R;function r(a,l){return bn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ct(),De].filter(u=>!!u),issueData:{code:b.invalid_arguments,argumentsError:l}})}function s(a,l){return bn({data:a,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Ct(),De].filter(u=>!!u),issueData:{code:b.invalid_return_type,returnTypeError:l}})}let o={errorMap:n.common.contextualErrorMap},i=n.data;if(this._def.returns instanceof Ge){let a=this;return Q(async function(...l){let u=new se([]),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 Q(function(...l){let u=a._def.args.safeParse(l,o);if(!u.success)throw new se([r(l,u.error)]);let c=Reflect.apply(i,this,u.data),f=a._def.returns.safeParse(c,o);if(!f.success)throw new se([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:Re.create(t).rest(Le.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||Re.create([]).rest(Le.create()),returns:n||Le.create(),typeName:$.ZodFunction,...P(r)})}},mt=class extends M{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})}};mt.create=(e,t)=>new mt({getter:e,typeName:$.ZodLazy,...P(t)});ht=class extends M{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return _(n,{received:n.data,code:b.invalid_literal,expected:this._def.value}),R}return{status:"valid",value:t.data}}get value(){return this._def.value}};ht.create=(e,t)=>new ht({value:e,typeName:$.ZodLiteral,...P(t)});gt=class e extends M{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return _(n,{expected:L.joinValues(r),received:n.parsedType,code:b.invalid_type}),R}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 _(n,{received:n.data,code:b.invalid_enum_value,options:r}),R}return Q(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})}};gt.create=la;yt=class extends M{_parse(t){let n=L.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==w.string&&r.parsedType!==w.number){let s=L.objectValues(n);return _(r,{expected:L.joinValues(s),received:r.parsedType,code:b.invalid_type}),R}if(this._cache||(this._cache=new Set(L.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let s=L.objectValues(n);return _(r,{received:r.data,code:b.invalid_enum_value,options:s}),R}return Q(t.data)}get enum(){return this._def.values}};yt.create=(e,t)=>new yt({values:e,typeName:$.ZodNativeEnum,...P(t)});Ge=class extends M{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==w.promise&&n.common.async===!1)return _(n,{code:b.invalid_type,expected:w.promise,received:n.parsedType}),R;let r=n.parsedType===w.promise?n.data:Promise.resolve(n.data);return Q(r.then(s=>this._def.type.parseAsync(s,{path:n.path,errorMap:n.common.contextualErrorMap})))}};Ge.create=(e,t)=>new Ge({type:e,typeName:$.ZodPromise,...P(t)});he=class extends M{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===$.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=>{_(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 R;let l=await this._def.schema._parseAsync({data:a,path:r.path,parent:r});return l.status==="aborted"?R:l.status==="dirty"?ot(l.value):n.value==="dirty"?ot(l.value):l});{if(n.value==="aborted")return R;let a=this._def.schema._parseSync({data:i,path:r.path,parent:r});return a.status==="aborted"?R:a.status==="dirty"?ot(a.value):n.value==="dirty"?ot(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"?R:(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"?R:(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(!ze(i))return R;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=>ze(i)?Promise.resolve(s.transform(i.value,o)).then(a=>({status:n.value,value:a})):R);L.assertNever(s)}};he.create=(e,t,n)=>new he({schema:e,typeName:$.ZodEffects,effect:t,...P(n)});he.createWithPreprocess=(e,t,n)=>new he({schema:t,effect:{type:"preprocess",transform:e},typeName:$.ZodEffects,...P(n)});pe=class extends M{_parse(t){return this._getType(t)===w.undefined?Q(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};pe.create=(e,t)=>new pe({innerType:e,typeName:$.ZodOptional,...P(t)});Ae=class extends M{_parse(t){return this._getType(t)===w.null?Q(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Ae.create=(e,t)=>new Ae({innerType:e,typeName:$.ZodNullable,...P(t)});bt=class extends M{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===w.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};bt.create=(e,t)=>new bt({innerType:e,typeName:$.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...P(t)});kt=class extends M{_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 It(s)?s.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new se(r.common.issues)},input:r.data})})):{status:"valid",value:s.status==="valid"?s.value:this._def.catchValue({get error(){return new se(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};kt.create=(e,t)=>new kt({innerType:e,typeName:$.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...P(t)});Ft=class extends M{_parse(t){if(this._getType(t)!==w.nan){let r=this._getOrReturnCtx(t);return _(r,{code:b.invalid_type,expected:w.nan,received:r.parsedType}),R}return{status:"valid",value:t.data}}};Ft.create=e=>new Ft({typeName:$.ZodNaN,...P(e)});Gp=Symbol("zod_brand"),kn=class extends M{_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}},_n=class e extends M{_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"?R:o.status==="dirty"?(n.dirty(),ot(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"?R: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:$.ZodPipeline})}},_t=class extends M{_parse(t){let n=this._def.innerType._parse(t),r=s=>(ze(s)&&(s.value=Object.freeze(s.value)),s);return It(n)?n.then(s=>r(s)):r(n)}unwrap(){return this._def.innerType}};_t.create=(e,t)=>new _t({innerType:e,typeName:$.ZodReadonly,...P(t)});Kp={object:oe.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"})($||($={}));Wp=(e,t={message:`Input not instance of ${e.name}`})=>ua(n=>n instanceof e,t),ca=Je.create,fa=it.create,Vp=Ft.create,Yp=at.create,da=lt.create,qp=ut.create,Xp=Nt.create,Qp=ct.create,em=ft.create,tm=Ze.create,nm=Le.create,rm=_e.create,sm=Dt.create,om=Fe.create,im=oe.create,am=oe.strictCreate,lm=dt.create,um=cr.create,cm=pt.create,fm=Re.create,dm=fr.create,pm=Mt.create,mm=Lt.create,hm=dr.create,gm=mt.create,ym=ht.create,bm=gt.create,km=yt.create,_m=Ge.create,wm=he.create,xm=pe.create,Sm=Ae.create,vm=he.createWithPreprocess,Em=_n.create,Tm=()=>ca().optional(),Rm=()=>fa().optional(),Am=()=>da().optional(),$m={string:(e=>Je.create({...e,coerce:!0})),number:(e=>it.create({...e,coerce:!0})),boolean:(e=>lt.create({...e,coerce:!0})),bigint:(e=>at.create({...e,coerce:!0})),date:(e=>ut.create({...e,coerce:!0}))},Om=R});var h={};gn(h,{BRAND:()=>Gp,DIRTY:()=>ot,EMPTY_PATH:()=>vp,INVALID:()=>R,NEVER:()=>Om,OK:()=>Q,ParseStatus:()=>Y,Schema:()=>M,ZodAny:()=>Ze,ZodArray:()=>Fe,ZodBigInt:()=>at,ZodBoolean:()=>lt,ZodBranded:()=>kn,ZodCatch:()=>kt,ZodDate:()=>ut,ZodDefault:()=>bt,ZodDiscriminatedUnion:()=>cr,ZodEffects:()=>he,ZodEnum:()=>gt,ZodError:()=>se,ZodFirstPartyTypeKind:()=>$,ZodFunction:()=>dr,ZodIntersection:()=>pt,ZodIssueCode:()=>b,ZodLazy:()=>mt,ZodLiteral:()=>ht,ZodMap:()=>Mt,ZodNaN:()=>Ft,ZodNativeEnum:()=>yt,ZodNever:()=>_e,ZodNull:()=>ft,ZodNullable:()=>Ae,ZodNumber:()=>it,ZodObject:()=>oe,ZodOptional:()=>pe,ZodParsedType:()=>w,ZodPipeline:()=>_n,ZodPromise:()=>Ge,ZodReadonly:()=>_t,ZodRecord:()=>fr,ZodSchema:()=>M,ZodSet:()=>Lt,ZodString:()=>Je,ZodSymbol:()=>Nt,ZodTransformer:()=>he,ZodTuple:()=>Re,ZodType:()=>M,ZodUndefined:()=>ct,ZodUnion:()=>dt,ZodUnknown:()=>Le,ZodVoid:()=>Dt,addIssueToContext:()=>_,any:()=>tm,array:()=>om,bigint:()=>Yp,boolean:()=>da,coerce:()=>$m,custom:()=>ua,date:()=>qp,datetimeRegex:()=>aa,defaultErrorMap:()=>De,discriminatedUnion:()=>um,effect:()=>wm,enum:()=>bm,function:()=>hm,getErrorMap:()=>Ct,getParsedType:()=>Te,instanceof:()=>Wp,intersection:()=>cm,isAborted:()=>lr,isAsync:()=>It,isDirty:()=>ur,isValid:()=>ze,late:()=>Kp,lazy:()=>gm,literal:()=>ym,makeIssue:()=>bn,map:()=>pm,nan:()=>Vp,nativeEnum:()=>km,never:()=>rm,null:()=>em,nullable:()=>Sm,number:()=>fa,object:()=>im,objectUtil:()=>Os,oboolean:()=>Am,onumber:()=>Rm,optional:()=>xm,ostring:()=>Tm,pipeline:()=>Em,preprocess:()=>vm,promise:()=>_m,quotelessJson:()=>wp,record:()=>dm,set:()=>mm,setErrorMap:()=>Sp,strictObject:()=>am,string:()=>ca,symbol:()=>Xp,transformer:()=>wm,tuple:()=>fm,undefined:()=>Qp,union:()=>lm,unknown:()=>nm,util:()=>L,void:()=>sm});var Ds=y(()=>{ar();Is();ta();yn();pa();ir()});var wt=y(()=>{Ds();Ds()});var Ke,wn=y(()=>{"use strict";wt();Ke=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 ya={};gn(ya,{OutputVerbosity:()=>ha,ReducerLevel:()=>ga,Settings:()=>jt,slugKey:()=>ce});import{createHash as Cm}from"node:crypto";function ce(e){let t=ma.get(e);return t||(t=Cm("sha256").update(`tkr:${e}`).digest("hex").slice(0,16),ma.set(e,t)),t}var ha,ga,jt,ma,We=y(()=>{"use strict";wt();ha=h.enum(["normal","compact","minimal"]),ga=h.enum(["off","light","balanced","max"]),jt=h.object({enabled:h.boolean().default(!0),telemetryOptIn:h.boolean().default(!0),outputVerbosity:ha.default("compact"),reducer:ga.default("off"),filters:h.object({enableAll:h.boolean().default(!0),disabled:h.array(h.string().max(64)).max(100).default([])}).default({enableAll:!0,disabled:[]})}),ma=new Map});function Ht(e,t,n,r=t){let s=ba.get(r);s||(s=new Map,ba.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>=Im){let l=s.keys().next().value;l&&s.delete(l)}return s.set(o,a),a}var ba,Im,pr=y(()=>{"use strict";We();ba=new WeakMap,Im=256});import Pm from"node:os";import{join as xn}from"node:path";function x(){return process.env.TOKMIZER_HOME||xn(Pm.homedir(),".tokmizer")}function Sn(){return xn(x(),"install-id")}function Ms(){return xn(x(),"content-cache")}function ka(){return xn(x(),"restore.json")}function Ls(e){return xn(Ms(),e)}var B=y(()=>{"use strict"});import{join as Nm}from"node:path";import{mkdir as RT,readFile as Dm,writeFile as AT,unlink as $T,rename as OT}from"node:fs/promises";function Lm(){try{let e=Intl.DateTimeFormat().resolvedOptions().timeZone;return e&&e.length>0?e:"Etc/UTC"}catch{return"Etc/UTC"}}function Fm(e){return e?.dir??x()}async function xt(e){let t=Fm(e);try{let n=await Dm(Nm(t,Mm),"utf8"),r=JSON.parse(n),s=r.timeZone;return{...r,lastSettingsRevision:r.lastSettingsRevision??0,get timeZone(){return s??=Lm()},bonusActive:r.bonusActive??!1,...r.bonusResetAt!==void 0?{bonusResetAt:r.bonusResetAt}:{}}}catch{return null}}var Mm,vn=y(()=>{"use strict";B();Mm="state.json"});import{createRequire as jm}from"node:module";function Bm(){let e="0.9.69";if(e)return e;for(let t of["../package.json","../../package.json"])try{let n=Hm(t).version;if(typeof n=="string"&&n)return n}catch{}return"0.0.0"}function _a(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 Hm,ge,Bt=y(()=>{"use strict";Hm=jm(import.meta.url);ge=Bm()});var wa,xa=y(()=>{"use strict";wa=`-----BEGIN PUBLIC KEY-----
|
|
4
4
|
MCowBQYDK2VwAyEAj/kMlXlhTIGHRKxOKMuGFa1S1ybxxwgdYcAE0YM9fgU=
|
|
5
5
|
-----END PUBLIC KEY-----
|
|
6
|
-
`});import{existsSync as
|
|
7
|
-
`)});function
|
|
8
|
-
`)}var
|
|
6
|
+
`});import{existsSync as Um,mkdirSync as LT,rmSync as FT,writeFileSync as jT}from"node:fs";import{join as Sa}from"node:path";function Zm(){return Sa(x(),"network-off")}function Gm(){let e=process.env.TOKMIZER_NETWORK;return e!==void 0&&zm.has(e.trim().toLowerCase())}function En(){return Gm()?!1:!Um(Zm())}function va(){return Sa(x(),Jm)}var zm,Jm,UT,Tn=y(()=>{"use strict";B();zm=new Set(["0","off","false","no"]),Jm="network-notice-shown",UT=["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, your computer name, OS and CPU model, a hash of your network card address and of your user name, and the plugin version. Command contents and output are never sent.","Usage stats (command names, token counts and install health counts) are sent only while they are on. Check with: tkr telemetry status.","Turn all network access off: tkr network off. Usage stats only: tkr telemetry off."].join(`
|
|
7
|
+
`)});function Ea(){return wa.replace(/\\n/g,`
|
|
8
|
+
`)}var WT,VT,Fs=y(()=>{"use strict";Bt();xa();Tn();WT=300*1e3,VT=120*1e3});import{createCipheriv as XT,createDecipheriv as Km,hkdfSync as Wm,randomBytes as QT}from"node:crypto";function qm(e){return Buffer.from(Wm("sha256",Buffer.from(e,"utf8"),Vm,Ym,32))}function mr(e,t){let n=qm(t),r=Buffer.from(e,"base64url"),s=r.subarray(0,12),o=r.subarray(12,28),i=r.subarray(28),a=Km("aes-256-gcm",n,s);return a.setAuthTag(o),Buffer.concat([a.update(i),a.final()]).toString("utf8")}var Vm,Ym,js=y(()=>{"use strict";Vm=Buffer.from("tokmizer-bundle-enc-v1"),Ym=Buffer.from("rules-bundle")});import{chmodSync as nR,readFileSync as Xm,writeFileSync as rR,mkdirSync as sR,renameSync as oR}from"node:fs";import{join as Qm}from"node:path";function th(){return Qm(x(),"bundle-cache.json")}function Ta(){try{let e=Xm(th(),"utf8"),t=eh.safeParse(JSON.parse(e));return t.success?t.data:null}catch{return null}}var eh,Ra=y(()=>{"use strict";wt();B();eh=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1"),fetchedAt:h.number().int().nonnegative()})});import{createPublicKey as rh,verify as sh}from"node:crypto";function Bs(){let e=Number(process.env.TOKMIZER_MAX_BUNDLE_AGE_MS);return Number.isFinite(e)&&e>0?e:oh}function ih(e,t){let n=Ea();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=rh({key:n,format:"pem"});if(!sh(null,Buffer.from(e.payload,"utf8"),r,Buffer.from(e.signature,"base64url")))throw new Error("tkr-daemon: rules bundle signature invalid");return JSON.parse(mr(e.payload,t))}function ah(e,t){let n=ih(e,t),r=Hs.parse(n);if(Date.now()-r.signedAt>Bs())throw new Error("tkr-daemon: rules bundle is stale");return Us(r,{signedAt:r.signedAt,fetchedAt:Date.now()})}function Us(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)=>Ht(r,n.values(),o?new Set(o):null,n)}}async function hr(){try{let e=Ta();if(!e)return null;let t=await xt();return t?.signingSecret?ah(e,t.signingSecret):null}catch{return null}}var Hs,kR,oh,Rn=y(()=>{"use strict";wt();wn();pr();vn();Fs();js();Ra();Hs=h.object({bundleVersion:h.number().int().nonnegative(),signedAt:h.number().int(),filters:h.array(Ke)}),kR=h.object({payload:h.string().min(1),signature:h.string().min(1),enc:h.literal("v1")}),oh=10080*60*1e3});function G(e,t){Aa.set(e,t)}function gr(e){return Aa.get(e)}var Aa,ie=y(()=>{"use strict";Aa=new Map});function lh(e,t){let n=e.slice(0,t).split(/\r?\n/);return[n.length,n.pop().length+1]}function uh(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 A,
|
|
10
|
+
`))}return s}var A,St=y(()=>{A=class e extends Error{line;column;codeblock;constructor(t,n){let[r,s]=lh(n.toml,n.ptr),o=uh(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
|
|
13
|
-
`:n===102?i+="\f":n===114?i+="\r":n===101?i+="\x1B":n===34?i+='"':n===92?i+="\\":A.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&A.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);A.x("unfinished string",e,t)}var Cs=b(()=>{_t();});var Dm,wt,Is=b(()=>{Dm=/^(\d{4}-\d{2}-\d{2})?[Tt ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|z|[-+]\d{2}:\d{2})?$/i,wt=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(Dm);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 ue(e,t=10){return t===16?e>47&&e<58||e>64&&e<71||e>96&&e<103:e>47&&e<48+t}function Ns(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function Sn(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||A.x("document contains excessively nested structures. aborting.",e);let s=r===91?da(e):fa(e);return e.d++,s}return r===34||r===39?lr(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&A.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)&&A.x("invalid value",e,n),e.p++,!1):r===43||r===45?ur(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?Mm(e,r,t):e.s.charCodeAt(e.p+2)===58?Lm(e,r,t):ur(e,e.p,r,0,t)}function ur(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)&&A.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)&&A.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||Ns(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Ps(e,t,16,s);if(o===98)return Ps(e,t,2,s);if(o===111)return Ps(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:A.x("illegal leading zero",e,t)}else ue(o)||A.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Ns(o,s));)i||(i=1),o===95?(i&1||A.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)||(ue(o)?i>9?i-=11:i&1||i++:A.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||A.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):ca(e,l,10,t)}function Ps(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Ns(s,r));)s===95?(o&1&&A.x("illegal underscore",e),o=3):ue(s,n)?o&1&&o--:A.x("illegal character in numeric literal",e);o&1&&A.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),ca(e,i,n,t)}function ca(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;A.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 Mm(e,t,n){let r=e.p++,s;if(!ue(t)||!ue(e.s.charCodeAt(e.p++))||!ue(e.s.charCodeAt(e.p++))||!ue(e.s.charCodeAt(e.p++)))return ur(e,e.p=r,t,0,n);if(e.p+=5,ue(e.s.charCodeAt(e.p++))||A.x("invalid date-time: date part is malformed",e,r),e.p>=e.s.length||((t=e.s.charCodeAt(e.p))!==32||(s=!0,!ue(e.s.charCodeAt(e.p+1))))&&t!==84&&t!==116){let i=e.s.slice(r,e.p);return xn(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&A.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(;ue(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 xn(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return xn(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return xn(e,o,2,s,r)}function Lm(e,t,n){let r=e.p;if(!ue(t)||!ue(e.s.charCodeAt(++e.p)))return ur(e,--e.p,t,0,n);if(e.s.charCodeAt(e.p+=4)===58&&(e.p+=3),e.s.charCodeAt(e.p)===46)for(;ue(e.s.charCodeAt(++e.p)););let s=e.s.slice(r,e.p);return xn(e,s,4,!1,r)}function xn(e,t,n,r,s,o){if(e.ld){let i=new wt(t,n,r);return i.isValid()||A.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){A.x(i instanceof Error?i.message:""+i,e,s)}}var Ds=b(()=>{Cs();Ms();_t();Is();});function Fm(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)&&A.x("control characters are not allowed in comments",e)}}function be(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;Fm(e)}}var Ls=b(()=>{_t();});function cr(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||A.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||A.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)&&A.x("illegal quoted key: multiline strings are not allowed",e),s.push(lr(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?A.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));A.x("incomplete key-value: cannot find end of key",e,n)}function fa(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(be(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=cr(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]))&&A.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&A.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&A.x("trying to redefine an already defined value",e,l),be(e,!0,!0);let c=Sn(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),be(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&A.x("expected comma or end of structure",e,e.p-1)}A.x("unfinished table",e,t)}function da(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(be(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push(Sn(e,93)),be(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&A.x("expected comma or end of structure",e,e.p-1)}A.x("unfinished array",e,t)}var Ms=b(()=>{Cs();Ds();Ls();_t();});function pa(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 ma(e,t,n){(t===null||e.uk===2)&&A.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function vn(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++,be(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=cr(n,93);u&&(e.charCodeAt(n.p)!==93&&A.x("expected end of table array declaration",n),n.p++);let f=pa(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(ma(n,f,o),i=!0)}else{o=n.p;let u=cr(n),c=pa(n,u,a,l,0);!c&&!i&&ma(n,c,o),be(n,!0,!0);let f=Sn(n,void 0);c&&!i&&(c[1][c[0]]=f)}be(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&A.x("each key-value declaration must be followed by an end-of-line",n),be(n)}return r}var ha=b(()=>{Ms();Ds();Ls();_t();});function En(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 Hm(e){for(let t=0;t<e.length;t++)if(En(e[t])!=="object")return!1;return e.length!=0}function ya(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function Bm(e){return ya(ga?e.toWellFormed():e)}function ba(e){if(jm.test(e))return e;if(ga&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return ya(e)}function Fs(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 Bm(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return zm(e,n,r,s);case"array":return Um(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 zm(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+=ba(a)+" = "+Fs(e[a],En(e[a]),t-1,n,r)}return o+" }"}function Um(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+=Fs(e[o],En(e[o]),t-1,n,r)}return s+" ]"}function Jm(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 yr(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)A.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),m=p>=48&&p<=57?p-48:p>=65&&p<=70?p-65+10:p>=97&&p<=102?p-97+10:-1;m<0&&A.x("invalid non-hex character in unicode escape",e),c=c<<4|m}(c<0||c>1114111||c>=55296&&c<=57343)&&A.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+="\\":A.x("unrecognised escape sequence",e),a=e.p+1,l=0);else n!==32&&n!==9&&(l===2&&A.x("invalid escape: only line-ending whitespace may be escaped",e,a),l=!s&&n===92?1:0,a=e.p);A.x("unfinished string",e,t)}var zs=y(()=>{St();});var ch,vt,Js=y(()=>{ch=/^(\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(ch);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 Gs(e,t){return e===32||e===9||e===10||e===13||t&&(e===t||e===44)||e===35}function $n(e,t){let n=e.p,r=e.s.charCodeAt(e.p);if(r===91||r===123){e.d--||A.x("document contains excessively nested structures. aborting.",e);let s=r===91?Ca(e):Oa(e);return e.d++,s}return r===34||r===39?yr(e):r===116?((e.s.charCodeAt(++e.p)!==114||e.s.charCodeAt(++e.p)!==117||e.s.charCodeAt(++e.p)!==101)&&A.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)&&A.x("invalid value",e,n),e.p++,!1):r===43||r===45?br(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?fh(e,r,t):e.s.charCodeAt(e.p+2)===58?dh(e,r,t):br(e,e.p,r,0,t)}function br(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)&&A.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)&&A.x("invalid value",e,t),e.p++,NaN;if(o===48){if(++e.p>=e.s.length||Gs(o=e.s.charCodeAt(e.p),s))return e.bi===!0?0n:0;if(!r){if(o===120)return Zs(e,t,16,s);if(o===98)return Zs(e,t,2,s);if(o===111)return Zs(e,t,8,s)}o===46?i=2:o===101||o===69?i=4:A.x("illegal leading zero",e,t)}else fe(o)||A.x("invalid value",e,t);for(;++e.p<e.s.length&&(o=e.s.charCodeAt(e.p),!Gs(o,s));)i||(i=1),o===95?(i&1||A.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++:A.x("illegal character in numeric literal",e));if(!i){let u=(n-48)*(r||1);return e.bi===!0?BigInt(u):u}i&1||A.x("unfinished numeric value",e,t);let l=e.s.slice(t,e.p);return a&&(l=l.replaceAll("_","")),i>1?parseFloat(l):$a(e,l,10,t)}function Zs(e,t,n,r){let s,o=1;for(;++e.p<e.s.length&&(s=e.s.charCodeAt(e.p),!Gs(s,r));)s===95?(o&1&&A.x("illegal underscore",e),o=3):fe(s,n)?o&1&&o--:A.x("illegal character in numeric literal",e);o&1&&A.x("unfinished numeric value",e);let i=e.s.slice(t+2,e.p);return o&&(i=i.replaceAll("_","")),$a(e,i,n,t)}function $a(e,t,n,r){if(e.bi!==!0)e:{let s=parseInt(t,n);if(!Number.isSafeInteger(s)){if(e.bi)break e;A.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 fh(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 br(e,e.p=r,t,0,n);if(e.p+=5,fe(e.s.charCodeAt(e.p++))||A.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 An(e,i,3,!1,r)}if(e.s.charCodeAt(e.p+=3)!==58&&A.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 An(e,i,1,s,r,"[+00:00]")}if(t===43||t===45){let i=e.s.slice(r,e.p+=6);return An(e,i,1,s,r,!e.ld&&"["+e.s.slice(e.p-6,e.p)+"]")}}let o=e.s.slice(r,e.p);return An(e,o,2,s,r)}function dh(e,t,n){let r=e.p;if(!fe(t)||!fe(e.s.charCodeAt(++e.p)))return br(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 An(e,s,4,!1,r)}function An(e,t,n,r,s,o){if(e.ld){let i=new vt(t,n,r);return i.isValid()||A.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){A.x(i instanceof Error?i.message:""+i,e,s)}}var Ks=y(()=>{zs();Ws();St();Js();});function ph(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)&&A.x("control characters are not allowed in comments",e)}}function we(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;ph(e)}}var Vs=y(()=>{St();});function kr(e,t=61){let n,r=0,s=[],o,i=e.s.charCodeAt(n=e.p);do{if(i===t)return r||A.x("unexpected end of key",e),r===1&&s.push(e.s.slice(o,e.p)),e.p++,s;i===46?(r||A.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)&&A.x("illegal quoted key: multiline strings are not allowed",e),s.push(yr(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?A.x("illegal character in key",e):r||(r=1,o=e.p)}while(i=e.s.charCodeAt(++e.p));A.x("incomplete key-value: cannot find end of key",e,n)}function Oa(e){let t=e.p++,n=Object.create(null),r=new Set,s;for(;e.p<e.s.length;){if(we(e),(s=e.s.charCodeAt(e.p))===125)return e.p++,n;let o,i=n,a=!1,l=e.p,u=kr(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]))&&A.x("trying to redefine an already defined value",e,l);let d=o==="__proto__";if(e.uk&&(d||o==="constructor")){i=e.uk!==1&&A.x("document contains an unsafe property",e,l);break}!a&&d&&Object.defineProperty(i,o,{enumerable:!0,configurable:!0,writable:!0})}a&&A.x("trying to redefine an already defined value",e,l),we(e,!0,!0);let c=$n(e,125);if(i&&typeof(i[o]=c)=="object"&&r.add(c),we(e),(s=e.s.charCodeAt(e.p++))===125)return n;s!==44&&A.x("expected comma or end of structure",e,e.p-1)}A.x("unfinished table",e,t)}function Ca(e){let t=e.p++,n=[],r;for(;e.p<e.s.length;){if(we(e),(r=e.s.charCodeAt(e.p))===93)return e.p++,n;if(n.push($n(e,93)),we(e),(r=e.s.charCodeAt(e.p++))===93)return n;r!==44&&A.x("expected comma or end of structure",e,e.p-1)}A.x("unfinished array",e,t)}var Ws=y(()=>{zs();Ks();Vs();St();});function Ia(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 Pa(e,t,n){(t===null||e.uk===2)&&A.x(t===null?"trying to redefine an already defined table or value":"document contains an unsafe property",e,n)}function On(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++,we(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=kr(n,93);u&&(e.charCodeAt(n.p)!==93&&A.x("expected end of table array declaration",n),n.p++);let f=Ia(n,c,r,s,u?2:1);f?(l=f[2],a=f[1]):(Pa(n,f,o),i=!0)}else{o=n.p;let u=kr(n),c=Ia(n,u,a,l,0);!c&&!i&&Pa(n,c,o),we(n,!0,!0);let f=$n(n,void 0);c&&!i&&(c[1][c[0]]=f)}we(n,!0),n.p<e.length&&(o=e.charCodeAt(n.p))!==10&&(o!==13||e.charCodeAt(n.p+1)!==10)&&A.x("each key-value declaration must be followed by an end-of-line",n),we(n)}return r}var Na=y(()=>{Ws();Ks();Vs();St();});function Cn(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 hh(e){for(let t=0;t<e.length;t++)if(Cn(e[t])!=="object")return!1;return e.length!=0}function Ma(e){return JSON.stringify(e).replaceAll("\x7F","\\u007f")}function gh(e){return Ma(Da?e.toWellFormed():e)}function La(e){if(mh.test(e))return e;if(Da&&!e.isWellFormed())throw new RangeError("key contains illegal lone surrogates");return Ma(e)}function Ys(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 gh(e);case"date":if(isNaN(e.getTime()))throw new TypeError("cannot serialize invalid date");return e.toISOString();case"object":return yh(e,n,r,s);case"array":return bh(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 yh(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+=La(a)+" = "+Ys(e[a],Cn(e[a]),t-1,n,r)}return o+" }"}function bh(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+=Ys(e[o],Cn(e[o]),t-1,n,r)}return s+" ]"}function kh(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+=
|
|
16
|
-
`)+
|
|
17
|
-
`)+
|
|
15
|
+
`,o+=qs(0,e[i],t,n,r,s);return o}function qs(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=Cn(t[c]);if(f==="symbol"||f==="function")throw new TypeError(`cannot serialize values of type '${f}'`);let d=La(c);if(f==="array"&&hh(t[c]))a+=(a&&`
|
|
16
|
+
`)+kh(t[c],n?`${n}.${d}`:d,r-1,s,o);else if(f==="object"){let p=n?`${n}.${d}`:d;a+=(a&&`
|
|
17
|
+
`)+qs(p,t[c],p,r-1,s,o)}else i+=d,i+=" = ",i+=Ys(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
|
|
20
|
+
${a}`:i||a}function Xs(e,{maxDepth:t=1e3,numbersAsFloat:n=!1,strictTemporal:r=!1}={}){if(Cn(e)!=="object")throw new TypeError("stringify can only be called with an object");let s=qs(0,e,"",t,n,r);return s[s.length-1]!==`
|
|
21
21
|
`?s+`
|
|
22
|
-
`:s}var
|
|
23
|
-
`),
|
|
24
|
-
`).length<6)}var
|
|
22
|
+
`:s}var mh,Da,Fa=y(()=>{mh=/^[a-z0-9-_]+$/i,Da=!!"".isWellFormed});var Qs={};gn(Qs,{TomlDate:()=>vt,TomlError:()=>A,default:()=>_h,parse:()=>On,stringify:()=>Xs});var _h,_r=y(()=>{Na();Fa();Js();St();_h={parse:On,stringify:Xs,TomlDate:vt,TomlError:A}});import{readdir as wh,readFile as xh}from"node:fs/promises";import{join as Ha,dirname as Sh}from"node:path";import{fileURLToPath as vh}from"node:url";function Rh(){return!1}async function Ba(){return Ut||(Rh()?(Ut=await Ah(Th),Ut):(!ja&&process.env.TOKMIZER_DEBUG==="1"&&(process.stderr.write(`tokmizer: disk loader disabled (set TOKMIZER_DEV=1 to re-enable for local dev).
|
|
23
|
+
`),ja=!0),Ut=new Map,Ut))}async function Ah(e){let t=new Map,n,r;try{n=(await Promise.resolve().then(()=>(_r(),Qs))).parse,r=(await wh(e)).filter(s=>s.endsWith(".toml"))}catch{return t}for(let s of r){let o=await xh(Ha(e,s),"utf8"),a=n(o).filters;if(a)for(let[l,u]of Object.entries(a)){let c=Ke.parse({slug:l,...u});t.set(l,{...c,matchRegex:new RegExp(c.match_command)})}}return t}var Eh,Th,Ut,ja,Ua=y(()=>{"use strict";wn();Eh=Sh(vh(import.meta.url)),Th=process.env.TOKMIZER_FILTERS_DIR||Ha(Eh,"..","..","filters"),Ut=null,ja=!1});function $e(e){return e.replace($h,"").replace(Oh,"")}var $h,Oh,In=y(()=>{"use strict";$h=/\x1b\[[0-9;?]*[ -/]*[@-~]/g,Oh=/\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)/g});function eo(e,t){return t.length===0?e:e.filter(n=>!t.some(r=>r.test(n)))}var za=y(()=>{"use strict"});function Ja(e,t){return e.map(n=>{if(n.length<=t)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 Za=y(()=>{"use strict"});function zt(e){return`\u2026 (${e} more lines omitted)`}function Ga(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);return{kept:[...e.slice(0,n),zt(s.length),...e.slice(e.length-r)],dropped:s}}var to=y(()=>{"use strict"});function Ka(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)Ch.test(a)&&!ye.test(a)?(i.push(a),s+=1):(o(i),i=[],s=0,r.push(a));return o(i),r}var Ch,ye,Pn=y(()=>{"use strict";Ch=/^\s*(?:[✓✔√]|ok )/,ye=/✕|✗|×|\bFAIL\b|\bERROR\b|\bFATAL\b|\bError|\berror|Expected|Received|\bfailed\b|^\s*Tests?:|^\s*Test Suites?:/});function Wa(e){return e.map(t=>t.replace(Ih,n=>{let r=n.split("/").filter(Boolean);return r.length<=2?n:`\u2026/${r.slice(-2).join("/")}`}))}var Ih,Va=y(()=>{"use strict";Ih=/(?:\/[\w.@+-]+){3,}/g});function Lh(e){let t=Dh.exec(e);return!t||Mh.has(t[1])?!1:!/=>|\bfunction\b/.test(t[2])}function jh(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 Hh(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==="&"))&&jh(e,s+1,o)&&(r=o),s+=1;continue}o==="{"||o==="("||o==="["?n+=1:(o==="}"||o===")"||o==="]")&&(n-=1),s+=1}return n}function Uh(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 no(e){let t=new Array(e.length).fill(!1);for(let n=0;n<e.length;n+=1){let r=Bh.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 Nn(e,t=3,n=!1){let r=[],s=0;for(;s<e.length;){let o=e[s];if(Ph.test(o)&&Nh.test(o)||Lh(o)||Fh.test(o)){let i={inBlockComment:!1,inTemplate:!1},a=0,l=s,u=!1;for(;l<e.length&&l-s<200;)if(a+=Hh(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(Uh(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 xr(e){let t=e.slice(0,4096);return!(!zh.test(t)||t.split(`
|
|
24
|
+
`).length<6)}var Ph,Nh,Dh,Mh,Fh,wr,Bh,zh,Jt=y(()=>{"use strict";Ph=/^(\s*)(?:export\s+)?(?:async\s+)?(?:function|interface|type|const|let|var|def|fn|impl|trait|struct|enum)\s+[\w$]+/,Nh=/\{\s*$/,Dh=/^\s*(?:(?:public|private|protected|static|async|get|set|readonly|override)\s+)*([\w$]+)\s*\(([^)]*)\)\s*(?::\s*[^{]+)?\{\s*$/,Mh=new Set(["if","for","while","switch","catch","do","with","return","else","function","await","yield"]);Fh=/^\s*(?:if|for|while|switch|try|do)\b[^{}]*\{\s*$/;wr=/^\s*… \d+ lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/,Bh=/^\s*… (\d+) lines? folded(?: \(\d+-\d+\): Read offset=\d+ limit=\d+ before editing)? …$/;zh=/\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 rl(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(el.test(s.replace(Qa,""))&&!tl.test(s)&&!nl.test(s)){n+=1;continue}r(),t.push(s)}return r(),t}function Xa(e){if(e.trim()===""||/^\s/.test(e)||tl.test(e)||nl.test(e)||Zh.test(e))return null;let t=e.replace(Qa,"");return el.test(t)||Jh.test(t)?"\0verbose":e.replace(/\d+/g,"#")}function sl(e){let t=[],n=0;for(;n<e.length;){let r=Xa(e[n]),s=n+1;if(r!==null)for(;s<e.length&&Xa(e[s])===r;)s+=1;let o=s-n;r===null||o<Gh?t.push(...e.slice(n,s)):(t.push(...e.slice(n,n+Ya)),t.push(`\u2026 ${o-Ya-qa} similar log lines dropped \u2026`),t.push(...e.slice(s-qa,s))),n=s}return t}function Sr(e){if(e.length===0)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 ol(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 Qa,el,tl,nl,Jh,Zh,Gh,Ya,qa,vr=y(()=>{"use strict";Pn();Qa=/^\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*/,el=/^\s*(?:\[(?:DEBUG|TRACE|INFO|VERBOSE)\]|(?:DEBUG|TRACE|INFO|VERBOSE)(?!\s*:))(?=\s|:|$)(?!\s*[+\-*\/%&|^?]*=)/,tl=new RegExp(ye.source,"i"),nl=/\bWARN(?:ING)?\b/i;Jh=/^(?:DEBUG|INFO):[\w.-]+:/,Zh=/Error|Exception|Traceback|panic|fail|FAIL|Fail|SEVERE|CRITICAL/,Gh=8,Ya=1,qa=2});function Yh(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 qh(e){let t=/^(\d+(?:[.,]\d+)?)([KMGTPkmgtp])?/.exec(e),n=t[2]?Vh[t[2].toLowerCase()]:0;return Number(t[1].replace(",","."))*1024**n}function Xh(e){let t=Wh.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)?Yh(Number(r)):r,o=e.charCodeAt(0)===100;return{name:n,size:s,sizeKey:qh(r),isDir:o,mode:t[1],owner:t[2].replace(/\s+/g," ")}}function Qh(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 il(e,t){let n=[],r=e;for(let s of t)r.length+1+s.length>ng&&r!==e&&r!==" "&&(n.push(r),r=" "),r+=r===" "?s:` ${s}`;return n.push(r),n}function rg(e){let t=e.endsWith("/")?"":e,n=t.indexOf(".",1);return n>0?t.slice(n):""}function sg(e){let t=e.filter(l=>l.trim()!=="");if(t.length<eg)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(":")||ll.test(l.trim())||al.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=rg(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>=tg&&u.every(c=>!/\s|"/.test(c))?i.push(...il(`*${l} (${u.length}):`,u.map(c=>c.slice(0,-l.length)))):a.push(...u);return a.length&&i.push(...il(`other (${a.length}):`,a.map(s))),i.join(`
|
|
25
25
|
`).length<t.join(`
|
|
26
|
-
`).length?i:null}function
|
|
26
|
+
`).length?i:null}function og(e){let t=sg(e);if(t)return t;let n=[],r=[],s=!1;for(let p of e){if(p.trim()===""||/^total\s+\d+/.test(p))continue;if(ll.test(p.trim())||!al.test(p))return e;let m=Xh(p);if(!m){if(/\s\.\.?$/.test(p))continue;return e}s=!0,(m.isDir?n:r).push(m)}if(!s)return e;let o=(p,m)=>p.name.localeCompare(m.name);n.sort(o),r.sort((p,m)=>m.sizeKey-p.sizeKey||o(p,m));let i=[...n,...r],a=i.every(p=>p.owner===i[0].owner)?i[0].owner:null,l=[];for(let p of i){let m=`${p.mode} ${a===null?`${p.owner} `:""}${p.isDir?`${p.name}/`:p.name}`;l.push(p.isDir?m:`${m} ${p.size}`)}if(l.length>ro){let p=l.length-ro;l=[...l.slice(0,ro),`\u2026 ${p} more lines omitted`]}let u=r.length===1?"file":"files",c=n.length===1?"dir":"dirs",f=Qh(r),d=`${r.length} ${u}, ${n.length} ${c}`+(f?` (${f})`:"")+(a===null?"":`, owner ${a.replace(" ",":")}`);return l.push(d),l}var al,ll,Kh,Wh,Vh,ro,eg,tg,ng,ul=y(()=>{"use strict";ie();al=/^[dbclps\-][rwxsStT\-]{9}[@.+]?(?:\s|$)/,ll=/^[./~][^\s]*:$/,Kh=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})?`,Wh=new RegExp(String.raw`^(\S+)\s+\d+\s+(\S+(?:\s+\S+)??)\s+(\d+(?:[.,]\d+)?[KMGTPkmgtp]?i?B?)\s+(?:${Kh})\s+(.+)$`),Vh={k:1,m:2,g:3,t:4,p:5},ro=1e3;eg=12,tg=3,ng=180;G("smart-ls",og)});var cl=y(()=>{"use strict";Jt();ie();G("smart-read",e=>Nn(e))});function ig(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 ag(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 lg(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):"",m=d>=0?f.slice(d+1):f;if(!m)continue;let k=r.get(p)??[];k.push(/\s/.test(m)?`"${m}"`:m),r.set(p,k),o+=1}if(o===0)return e;let i=[...r.keys()].sort(),a=i.every(u=>u!=="")?ig(i):"",l=[`${o}F ${i.length}D${a?` in ${a}/`:""}:`];for(let u of i){let c=a?u.slice(a.length).replace(/^\//,""):u,f=r.get(u),d=ag(f),p=d?f.map(m=>m.slice(0,-d.length)):f;l.push(`${c?`${c}/`:"./"} (${f.length}${d?`, *${d}`:""}): ${p.join(" ")}`)}if(l.length+s.length>fl){let u=Math.max(0,fl-s.length),c=l.length-u;return[...l.slice(0,u),`\u2026 ${c} more lines omitted`,...s]}return[...l,...s]}var fl,dl=y(()=>{"use strict";ie();fl=1e3;G("smart-find",lg)});function cg(e){let t=[];for(let i of e){if(i.trim()==="")continue;let a=ug.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 ug,pl=y(()=>{"use strict";ie();ug=/^\s*(\d+(?:\s+\d+){0,3})\s+(\S.*)$/;G("smart-wc",cg)});function pg(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 mg(e){if(e.length<=so+oo+1)return e;let t=e.slice(so,-oo),n=t.filter(s=>dg.test(s)),r=t.length-n.length;return r===0?e:[...e.slice(0,so),...n,`\u2026 ${r} more lines omitted`,...e.slice(-oo)]}function hg(e){if(!e.some(s=>ml.test(s)))return e;let t=[],n=[],r=()=>{t.push(...mg(pg(n))),n=[]};for(let s=0;s<e.length;s+=1){let o=e[s];if(fg.test(o))return r(),t.push(...e.slice(s)),t;if(ml.test(o)){r(),t.push(o);continue}n.push(o)}return r(),t}var ml,fg,dg,so,oo,hl=y(()=>{"use strict";ie();Pn();ml=/^\s*\d+\/\d+ Test\s+#\s*\d+: \S+ \.{2,}/,fg=/^\d+% tests passed, \d+ tests? failed out of \d+$/,dg=new RegExp(`${ye.source}|\\*\\*\\*|Exception|FAIL|ERROR`),so=3,oo=8;G("smart-ctest",hg)});function gg(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 yg(e){let t=e.join(`
|
|
27
|
+
`).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=gg(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 gl=y(()=>{"use strict";ie();G("smart-phpstan",yg)});function _g(e){if(!e.some(n=>io.test(n)))return e;let t=[];for(let n=0;n<e.length;n+=1){let r=e[n];io.test(r)||bg.test(r)&&!io.test(e[n+1]??"")&&!kg.test(r)||t.push(r)}return t}var bg,io,kg,yl=y(()=>{"use strict";ie();Pn();bg=/^\d+ \| /,io=/^\s+\^\s*$/,kg=new RegExp(`${ye.source}|\\*\\*\\*|Exception|FAIL|ERROR`);G("bun-frames",_g)});function _l(e){let t=e.trim();return t.length>bl?`${t.slice(0,bl)}\u2026`:t}function Tg(e){let t=[],n="";for(let r of e){let s=n?`${n}, ${r}`:r;s.length>=xg&&n?(t.push(`${n},`),n=r):n=s}return n&&t.push(n),t}function Rg(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 Ag(e){let t=e.filter(p=>p.trim()!=="");if(t.length===0)return e;let n=new Map,r=new Map,s=null,o=0,i=0;for(let p of t){if(p==="--"){s&&n.get(s).push({separator:!0});continue}if(/^[A-Za-z]:[\\/]/.test(p))return e;let m=Sg.exec(p),k=vg.exec(p);if(m&&k)return e;let g=m||k?null:Eg.exec(p),T=(m??k??g)?.[1];if(!T)return e;let S=m?{line:m[2],content:m[3],context:!1}:k?{line:k[2],content:k[3],context:!0}:{line:"",content:g[2],context:!1},O=n.get(T)??[];O.push(S),n.set(T,O),S.context||(o+=1,r.set(T,(r.get(T)??0)+1)),i+=1,s=T}if(n.size===i)return e;let a=[...n.keys()].sort((p,m)=>{let k=kl.test(p)?1:0,g=kl.test(m)?1:0;return k-g||(p<m?-1:p>m?1:0)}),l=a.length>1?Rg(a):"",u=p=>l?p.slice(l.length+1):p,c=[];for(let p of a){c.push(`${u(p)} (${r.get(p)??0}):`);for(let m of n.get(p))"separator"in m?c.push(" --"):m.line?c.push(` ${m.line}${m.context?"-":":"} ${_l(m.content)}`):c.push(` ${_l(m.content)}`)}let f=a.length>1&&c.length>wg?Tg(a.map(p=>`${u(p)} (${r.get(p)??0})`)):[],d=[`${o}m ${a.length}f${l?` in ${l}/`:""}:`,...f,"",...c];if(d.length>ao){let p=d.length-ao;return[...d.slice(0,ao),`\u2026 ${p} more lines omitted`]}return d}var ao,bl,wg,xg,Sg,vg,Eg,kl,wl=y(()=>{"use strict";ie();ao=1e3,bl=200,wg=60,xg=190,Sg=/^([^\s:]+):(\d+):(.*)$/,vg=/^([^:]+?)-(\d+)-(.*)$/,Eg=/^([^\s:]+):(.*)$/,kl=/(?:^|\/)(?:__tests__|tests?|spec|fixtures?|__mocks__|__snapshots__)\/|\.(?:test|spec)\.[^/]+$/i;G("smart-grep",Ag)});function Fg(e){let t=[];for(let l=0;l<e.length;l+=1){let u=Sl.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=Pg.exec(e[c]??""),p=Ng.exec(e[c+1]??"");if(!d||!p)return null;let m=Dg.indexOf(p[1])+1;if(m===0)return null;t.push({at:l,hash:u[1].slice(0,Mg),refs:u[2]??"",merge:f,author:d[1],date:`${p[4]}-${String(m).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<=Lg&&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 jg(e){if(!e.some(r=>xl.test(r)))return e;let t=e.some(r=>Sl.test(r))&&!e.some(r=>/^[|\\/*]/.test(r)),n=Hg(e,t?Ig:Cg);return Fg(n)??n}function Hg(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=$g.test(f),p=d?c.slice(o):c,m=Og.test(p),k=a&&m?null:xl.exec(c);if(k){u(),r=0,o=k[1]?.length??0,a=!0,l=!1,n.push(c);continue}if(/^diff --(?:git|cc|combined) /.test(p)&&(l=!0),m&&!l&&!(o>0&&p.trim().length===0)){r+=1,r<=t?n.push(c):(s+=1,i=d?f:"");continue}u(),n.push(c)}return u(),n}var xl,$g,Og,Cg,Ig,Sl,Pg,Ng,Dg,Mg,Lg,vl=y(()=>{"use strict";ie();xl=/^(?:([|\\/ ._-]*\*[|\\/* ._-]* ))?commit [0-9a-f]{7,40}\b/,$g=/^[|\\/* ._-]*$/,Og=/^ {4}/,Cg=2,Ig=1,Sl=/^commit ([0-9a-f]{40})(\s.*)?$/,Pg=/^Author:\s+(.+)$/,Ng=/^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})$/,Dg=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Mg=12,Lg=5;G("smart-log",jg)});var Bg,Ug,zg,El=y(()=>{"use strict";ie();Bg=/^[\s=]+$/,Ug=/^\s*=+\s+(.*?)\s+=+\s*$/,zg=512;G("strip-banners",e=>{let t=[];for(let n of e){if(Bg.test(n))continue;let r=n.length<=zg?Ug.exec(n):null;t.push(r?r[1]:n)}return t})});function Jg(e){let t=[],n=0,r=0;for(;r<e.length;){let s=e[r].replace(/\s+$/,"");if(s===""){n+=1,r+=1,n<=1&&t.push("");continue}n=0;let o=1;for(;r+o<e.length&&e[r+o].replace(/\s+$/,"")===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 Tl=y(()=>{"use strict";ie();G("squeeze-output",Jg)});function Zg(e){return e==="compact"?.6:e==="minimal"?.3:1}function Kg(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 Wg(e){let t=Rl.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 Rl.set(e,s),s}function Er(e,t,n={}){return lo(e,t,n).text}function lo(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=Wg(t),o=!t.preserve_exact&&e.includes(`\r
|
|
28
|
+
`)?e.replace(/\r\n/g,`
|
|
29
|
+
`):e;t.strip_ansi&&(o=$e(o));let i=o.endsWith(`
|
|
27
30
|
`),a=(i?o.slice(0,-1):o).split(`
|
|
28
|
-
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>
|
|
29
|
-
`):null,a=[...a.slice(0,g),...E>0?[
|
|
30
|
-
`),a=[...a.slice(0,g),
|
|
31
|
+
`);s.stripRegexes.length&&(a=t.keep_failures?a.filter(d=>ye.test(d)||!s.stripRegexes.some(p=>p.test(d))):eo(a,s.stripRegexes)),s.dropRegexes.length&&(a=eo(a,s.dropRegexes)),r!=="normal"&&!t.preserve_exact&&(a=Sr(a),a=ol(a)),r==="minimal"&&!t.preserve_exact&&(a=rl(a),(t.slug==="vitest"||t.slug==="npm-test")&&(a=Kg(a)));let l=t.transform==="smart-read"&&n.smartCode!==!0?r==="compact"?8:r==="minimal"?6:3:3;if(!t.preserve_exact&&(n.smartCode||n.smartCode===void 0&&r!=="normal"&&xr(o))&&(a=Nn(a,l)),t.transform){let d=gr(t.transform);t.transform==="smart-read"?a=Nn(a,l,t.slug==="read-tool"):d&&(a=d(a))}let u=t.slug==="read-tool";if(!u){let d=no(a);d.some(Boolean)&&(a=a.filter((p,m)=>!d[m]))}t.mask_abs_paths&&(a=Wa(a)),t.fold_passing&&(a=Ka(a,t.fold_passing_threshold??5)),t.truncate_lines_at&&(a=Ja(a,t.truncate_lines_at));let c=null;if(t.max_lines){let d=t.scale_with_level?Zg(n.verbosity):1,p=Math.min(t.max_lines,Math.max(Gg,Math.round(t.max_lines*d))),m=u?no(a):null,k=m?m.filter(g=>!g).length:a.length;if(k>p){let g=p;if(m){let S=0;for(g=0;g<a.length&&S<p;)m[g]||(S+=1),g+=1}let T=k-p;if(t.keep_failures){let S=a.slice(g),O=S.filter(I=>!ye.test(I)),E=S.reduce((I,D,j)=>I+(!ye.test(D)&&!m?.[g+j]?1:0),0);c=O.length>0?O.join(`
|
|
32
|
+
`):null,a=[...a.slice(0,g),...E>0?[zt(E)]:[],...S.filter(I=>ye.test(I))]}else if(u)c=a.slice(g).join(`
|
|
33
|
+
`),a=[...a.slice(0,g),zt(T)];else{let{kept:S,dropped:O}=Ga(a,p);c=O.length>0?O.join(`
|
|
31
34
|
`):null,a=S}}}let f=a.join(`
|
|
32
35
|
`);return i&&f.length>0&&(f+=`
|
|
33
|
-
`),f.trim().length===0&&t.on_empty&&(f=t.on_empty),{text:f,droppedTail:c}}var
|
|
34
|
-
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=
|
|
35
|
-
`))if(!/^\s*[✓✔√]\s/.test(t)&&
|
|
36
|
+
`),f.trim().length===0&&t.on_empty&&(f=t.on_empty),{text:f,droppedTail:c}}var Gg,Rl,uo=y(()=>{"use strict";In();za();Za();to();Pn();Va();Jt();vr();ie();ul();cl();dl();pl();hl();gl();yl();wl();vl();El();Tl();Gg=20;Rl=new WeakMap});import{readdir as Vg,readFile as Cl,writeFile as QA,mkdir as e$,rename as t$}from"node:fs/promises";import{readdirSync as Yg,statSync as Al}from"node:fs";import{createHash as qg}from"node:crypto";import{basename as o$,join as $r}from"node:path";function Ar(){return $r(x(),"filters")}function Pl(){return $r(x(),"filters-trust.json")}function Nl(e){return typeof e=="string"&&e.startsWith(Il)}function Qg(e){return qg("sha256").update(e).digest("hex")}async function ey(){try{let e=JSON.parse(await Cl(Pl(),"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 ty(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 ny(e,t){let n=typeof t=="object"&&t!==null&&!Array.isArray(t)?t:{},{tests:r,...s}=n,o=ty(e,r);if("message"in o)return o;let i=Ke.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:`${Il}${i.data.slug}`,matchRegex:a},tests:o.tests}}function ry(e){return e===void 0||e===Tr?null:typeof e=="number"&&Number.isInteger(e)?`schema_version ${e} is not supported: this tkr reads schema_version = ${Tr}. Update tkr, or write the file for version ${Tr}`:`schema_version must be the number ${Tr}`}async function sy(e){try{return(await Vg(e)).filter(t=>t.endsWith(".toml")).sort()}catch{return[]}}async function oy(e={}){let t=e.requireTrust!==!1,n=Ar(),r=new Map,s=new Map,o=[],i=await sy(n);if(i.length===0)return{dir:n,filters:r,tests:s,issues:o};let a=t?await ey():null;for(let l of i){let u;try{u=await Cl($r(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!==Qg(u)){o.push({file:l,message:`changed since it was trusted. Review it, then run: tkr filters trust ${l}`});continue}}let c=await iy(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 iy(e,t){let n=new Map,r=new Map,s=[],{parse:o}=await Promise.resolve().then(()=>(_r(),Qs)),i;try{i=o(e)}catch(u){return s.push({file:t,message:`not valid TOML (${String(u.message).split(`
|
|
37
|
+
`)[0]})`}),{filters:n,tests:r,issues:s}}let a=ry(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=ny(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 ay(){let e=[];for(let t of[Pl(),Ar()])try{let n=Al(t);e.push(`${n.mtimeMs}:${n.size}`)}catch{e.push("-")}try{for(let t of Yg(Ar()).filter(n=>n.endsWith(".toml")).sort()){let n=Al($r(Ar(),t));e.push(`${t}:${n.mtimeMs}:${n.size}`)}}catch{}return e.join("|")}function ly(){let e=Date.now();if(!Rr||e-Ol>=Xg){Ol=e;let t=ay();(!Rr||t!==$l)&&($l=t,Rr=oy())}return Rr}async function uy(e){let{filters:t}=await ly();return t.size===0?null:Ht(e,t.values(),null,t)}function Dl(e){return async(t,n)=>await uy(t)??e(t,n)}var Il,Tr,Rr,$l,Ol,Xg,co=y(()=>{"use strict";wn();pr();uo();B();Il="user/",Tr=1,Rr=null,$l="",Ol=0,Xg=1e3});function Ml(e){if(!e)return!1;for(let t of $e(e).split(`
|
|
38
|
+
`))if(!/^\s*[✓✔√]\s/.test(t)&&cy.some(n=>n.test(t)))return!0;return!1}var cy,Ll=y(()=>{"use strict";In();cy=[/\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 je(e){let t=e.trim(),n=t.split(/\s+/),r=0;for(;r<n.length;){let a=n[r];if(dy.test(a)){r++;continue}if(fy.has(a)){for(r++,a==="timeout"&&r<n.length&&/^\d+(?:\.\d+)?[smhd]?$/.test(n[r])&&r++;(a==="stdbuf"||a==="nice")&&r<n.length&&n[r].startsWith("-");)r++;continue}break}if(r>=n.length)return t;let s=n[r],o=s.includes("/")?s.slice(s.lastIndexOf("/")+1):s,i=n.slice(r+1);return i.length?`${o} ${i.join(" ")}`:o}function Fl(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 my(e){let t=Fl(e,!1);for(let n=t.length-1;n>=0;n--){let r=t[n].trim();if(r)return r}return e.trim()}function Dn(e){let t=Fl(e,!0).map(n=>n.trim()).filter(Boolean);if(t.length===0)return null;for(let n of t.slice(0,-1)){let r=je(n).split(/\s+/)[0]??"";if(!py.has(r))return null}return my(t[t.length-1])}function jl(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 po(e){let t=hy.exec(e);return t?je(e.slice(t[0].length)):null}function Hl(e){let t=fo.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=Dn(n),s=r?je(r):null,i=[s?po(s):null,s,e].filter(a=>!!a);return[...new Set(i)]}var fy,dy,fo,py,hy,mo=y(()=>{"use strict";fy=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),dy=/^[A-Za-z_][A-Za-z0-9_]*=/,fo=/^([a-z]+)-tool(?::\s|$)/;py=new Set(["cd","export","source","set","unset","mkdir","true",":","pushd","popd","alias","ulimit","umask","echo","printf","sleep","touch","rm","cp","mv","chmod","ln"]);hy=/^(?: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 ho(e){let t=Buffer.from(e,"utf8");if(t.length<=256)return e;let n=256-Buffer.byteLength(Bl,"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")+Bl+t.subarray(s).toString("utf8")}var Bl,Ul=y(()=>{"use strict";Bl=`
|
|
36
39
|
[YOLO: omitted]
|
|
37
|
-
`});function
|
|
40
|
+
`});function by(e,t){if(!t)return e.split(`
|
|
38
41
|
`).map(o=>o.replace(/^[ \t]+|[ \t]+(?=\r?$)/g,"")).join(`
|
|
39
42
|
`);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!==`
|
|
40
43
|
`&&(n+=o);return n+(e.endsWith(`
|
|
41
44
|
`)?`
|
|
42
|
-
`:"")}function
|
|
45
|
+
`:"")}function ky(e,t){if(/@(?:p)?\d|\r/.test(e))return e;let n=e.endsWith(`
|
|
43
46
|
`)?`
|
|
44
47
|
`:"",r=(n?e.slice(0,-1):e).split(`
|
|
45
|
-
`),s=r.findIndex(g=>
|
|
46
|
-
`)+n;if(!t)return a;let l=new Map;for(let{cells:g}of i)l.set(g[1],(l.get(g[1])??0)+1);let u=new Map,c=[];for(let[g,T]of l){if(g.length<40||T<3||g.trim().split(/\s+/).length<8)continue;let S=`@${u.size+1}`,O=JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),E=`TITLE ${S} = ${O}`;T*(Buffer.byteLength(g)-Buffer.byteLength(S))<=Buffer.byteLength(E)+1||(u.set(g,S),c.push(E))}let f=new Map;for(let{cells:g}of i){if(u.has(g[1]))continue;let T=/^((?:\S+\s+){4})\S/.exec(g[1])?.[1];T&&T.length>=24&&f.set(T,(f.get(T)??0)+1)}let d=new Map;for(let[g,T]of f){if(T<3)continue;let S=`@p${d.size+1}`,O=`TITLE prefix ${S} = ${JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;T*(Buffer.byteLength(g)-Buffer.byteLength(S)-1)<=Buffer.byteLength(O)+1||(d.set(g,S),c.push(O))}let p=i[0].cells[4].slice(10),m=i.length>=3&&
|
|
47
|
-
`)+n;return Buffer.byteLength(k)<Buffer.byteLength(a)?k:a}function
|
|
48
|
+
`),s=r.findIndex(g=>gy.test(g));if(s>=0&&r.slice(0,s).some(g=>g!==""&&!/^Showing \d+ of \d+ (?:open|closed|all) pull requests in \S+$/.test(g)))return e;let o=s>=0?[...r[s].matchAll(/\S+/g)].map(g=>g.index):[],i=[];for(let g=s+1;g<r.length;g+=1){let T=r[g];if(yy.test(T))continue;if(/…|\.\.\./.test(T))return e;let S;if(s>=0){if(/[^\x20-\x7e]/.test(T))return e;let O=o.map((E,I)=>T.slice(E,o[I+1]));if(O.slice(0,-1).some(E=>E[0]===" "||!E.endsWith(" "))||(S=O.map(E=>E.replace(/ +$/,"")),!/^#\d+$/.test(S[0])||!/^\S+$/.test(S[2])||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(S[3])||!/^\d+(?:s|m|h|d|w|mo|y)$/.test(S[4])))return e}else if(S=T.split(" "),S.length!==5||!/^\d+$/.test(S[0])||!S[1]||!S[2]||!/^(OPEN|CLOSED|MERGED|DRAFT)$/.test(S[3])||!go.test(S[4])||!Number.isFinite(Date.parse(S[4])))return e;if(S.some(O=>/[\u0000-\u001f\u007f]/.test(O)))return e;i.push({index:g,cells:S})}if(i.length===0)return e;s>=0&&(r[s]="ID TITLE BRANCH STATE CREATED");for(let g of i)r[g.index]=g.cells.join(" ");let a=r.join(`
|
|
49
|
+
`)+n;if(!t)return a;let l=new Map;for(let{cells:g}of i)l.set(g[1],(l.get(g[1])??0)+1);let u=new Map,c=[];for(let[g,T]of l){if(g.length<40||T<3||g.trim().split(/\s+/).length<8)continue;let S=`@${u.size+1}`,O=JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029"),E=`TITLE ${S} = ${O}`;T*(Buffer.byteLength(g)-Buffer.byteLength(S))<=Buffer.byteLength(E)+1||(u.set(g,S),c.push(E))}let f=new Map;for(let{cells:g}of i){if(u.has(g[1]))continue;let T=/^((?:\S+\s+){4})\S/.exec(g[1])?.[1];T&&T.length>=24&&f.set(T,(f.get(T)??0)+1)}let d=new Map;for(let[g,T]of f){if(T<3)continue;let S=`@p${d.size+1}`,O=`TITLE prefix ${S} = ${JSON.stringify(g).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}`;T*(Buffer.byteLength(g)-Buffer.byteLength(S)-1)<=Buffer.byteLength(O)+1||(d.set(g,S),c.push(O))}let p=i[0].cells[4].slice(10),m=i.length>=3&&go.test(i[0].cells[4])&&i.every(({cells:g})=>go.test(g[4])&&g[4].slice(10)===p)&&i.length*p.length>`CREATED suffix = ${JSON.stringify(p)}`.length+1;if(m&&c.push(`CREATED suffix = ${JSON.stringify(p)}`),c.length===0)return a;for(let{index:g,cells:T}of i){let S=u.get(T[1]),O=/^((?:\S+\s+){4})\S/.exec(T[1])?.[1],E=O?d.get(O):void 0;r[g]=T.map((I,D)=>D===1?S??(E?`${E}:${I.slice(O.length)}`:I):D===4&&m?I.slice(0,10):I).join(" ")}let k=[...r,"",...c].join(`
|
|
50
|
+
`)+n;return Buffer.byteLength(k)<Buffer.byteLength(a)?k:a}function vy(e){let t=xy.exec(e[0]??"");if(!t)return e;let n=Sy.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 Jl(e){let t=e.endsWith(`
|
|
48
51
|
`)?`
|
|
49
|
-
`:"",n=
|
|
50
|
-
`)),r=null,s=[];for(let o of n){if(Object.hasOwn(
|
|
51
|
-
`)+t}function
|
|
52
|
-
`);for(let n=0;n<t.length;n+=1){if(!
|
|
53
|
-
`)}function
|
|
52
|
+
`:"",n=vy((t?e.slice(0,-1):e).split(`
|
|
53
|
+
`)),r=null,s=[];for(let o of n){if(Object.hasOwn(zl,o)){r=zl[o];continue}if(!o.startsWith(" ")){r=null,s.push(o);continue}if(r==="untracked"){s.push(`?? ${o.slice(1)}`);continue}let i=r?wy.exec(o):null;if(!i)return e;let a=_y[i[1]];s.push(r==="staged"?`${a} ${i[2]}`:` ${a} ${i[2]}`)}return s.join(`
|
|
54
|
+
`)+t}function Ty(e){let t=e.split(`
|
|
55
|
+
`);for(let n=0;n<t.length;n+=1){if(!Ey.test(t[n]))continue;let r=n;for(;r>0&&Zl.test(t[r-1]);)r-=1;for(let s=r;s<n;s+=1)t[s]=t[s].replace(Zl," $1 | $2")}return t.join(`
|
|
56
|
+
`)}function Ay(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 $y(e){let t=e.endsWith(`
|
|
54
57
|
`)?`
|
|
55
58
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
56
|
-
`),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>
|
|
57
|
-
`)+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(
|
|
59
|
+
`),r=[],s=[];for(let u of n)u.startsWith("WARNING:")?r.includes(u)||r.push(u):s.push(u);let o=s.findIndex(u=>Gl.test(u));if(o<0)return[...r,...s].join(`
|
|
60
|
+
`)+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(Kl.test(u)){l.push(u);continue}let c=u.startsWith(" ")||/[^\x20-\x7e]/.test(u)?null:Ay(u,a);if(!c)return[...r,...s].join(`
|
|
58
61
|
`)+t;l.push(c.join(" "))}return l.join(`
|
|
59
|
-
`)+t}function
|
|
62
|
+
`)+t}function Oy(e){let t=e.endsWith(`
|
|
60
63
|
`)?`
|
|
61
64
|
`:"",n=(t?e.slice(0,-1):e).split(`
|
|
62
|
-
`),r=n.findIndex(i=>
|
|
63
|
-
`)+t}function
|
|
64
|
-
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(
|
|
65
|
-
`)}var
|
|
65
|
+
`),r=n.findIndex(i=>Gl.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(Kl.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(`
|
|
66
|
+
`)+t}function yo(e,t,n){if(t!=="compact"&&t!=="minimal"){if(n!=="git-status")return e;let s=Jl(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=by(e,t==="minimal")}else n==="gh"?r=ky(e,t==="minimal"):n==="git-status"?r=Jl(e):n==="gcloud"?r=$y(e):n==="oc"?r=Oy(e):n==="git-diff"?r=Ty(e):n==="tofu-plan"&&(r=e.replace(Ry,"$1 = "));return Buffer.byteLength(r)<Buffer.byteLength(e)?r:e}var gy,yy,go,zl,_y,wy,xy,Sy,Zl,Ey,Ry,Gl,Kl,Wl=y(()=>{"use strict";gy=/^ID {2,}TITLE {2,}BRANCH {2,}STATE {2,}CREATED *$/,yy=/^… \([1-9]\d* more lines omitted\)$/,go=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?Z$/;zl={"Changes to be committed:":"staged","Changes not staged for commit:":"unstaged","Untracked files:":"untracked"},_y={modified:"M",deleted:"D","new file":"A",renamed:"R",copied:"C",typechange:"T"},wy=/^\t(modified|deleted|new file|renamed|copied|typechange):\s+(.+)$/,xy=/^On branch (\S+)$/,Sy=/^Your branch is (?:up to date with '([^']+)'|(ahead|behind)(?: of)? '([^']+)' by (\d+) commits?(?:, and can be fast-forwarded)?)\.$/;Zl=/^ (\S.*?) +\| +(\d+(?: [+-]+)?|Bin .*)$/,Ey=/^ \d+ files? changed(?:, \d+ insertions?\(\+\))?(?:, \d+ deletions?\(-\))?$/;Ry=/^( *(?:[~+-] +)?(?:[\w.-]+|"[^"\n]*")) {2,}= /gm,Gl=/^[A-Z][A-Z0-9_]*(?: +[A-Z][A-Z0-9_]*)+$/,Kl=/^… \(\d+ more lines omitted\)$/});function Vl(e){if(Buffer.byteLength(e)<2048||xr(e)||Iy.test(e))return e;let t=e.split(`
|
|
67
|
+
`),n=[];for(let r=0;r<t.length;){let s=t[r],o=r+1;if(Cy.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(`
|
|
68
|
+
`)}var Cy,Iy,Yl=y(()=>{"use strict";Jt();Cy=/^(?:\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|$)/,Iy=/^\[tkr: previous log line repeated \d+ additional times\]$/m});function ql(e){return Ny.test(e)}function Xl(e){let t=e.endsWith(`
|
|
66
69
|
`),n=(t?e.slice(0,-1):e).split(`
|
|
67
|
-
`),r=0;for(let s of n)if(s.trim()!==""){if(!
|
|
68
|
-
`:""}`}var Wg,Vg,Pl=b(()=>{"use strict";Wg=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,Vg=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function Bt(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 wr(e){return qg.test(e)}function xr(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 no(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||ey.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 m=Yg.exec(d)??Xg.exec(d);if(m){s=-1;let g=m[1].replace(/^file:\/\//,"");wr(g)||(r=xr(n,`${g}:${m[2]}${m[3]?`:${m[3]}`:""}`,r));continue}let k=Qg.exec(d);if(k){s=-1,n.push({kind:"code",text:p,num:Number(k[2]),pointed:k[1]===">"});continue}if(ty.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 se(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function ny(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=Bt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(se(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(se(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=no(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(g=>g.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),m=d.split(" > "),k=p?{file:p[1],name:"(suite)",loc:null,body:[]}:m.length>1?{file:m[0],name:m.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(k),o.push(k);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 ry(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=Bt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(se(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(se(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}=no(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 jl(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}=no(i.get(l.name),s);l.body=u,l.loc=c}return o}function sy(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=>se(o.replace(/ \(\S+\)\s*$/,""))),s=jl(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 oy(e){let t=e.findIndex(a=>/^\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=Bt(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=>se(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=jl(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 iy(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=Bt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(se(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(se(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(se(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 m=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);m&&!wr(m[1])&&(i.loc=xr(i.body,`${m[1]}:${m[2]}:${m[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 ay(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(se(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(se(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(se(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){wr(c[1])||(a.loc=xr(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 Dl(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(wr(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=xr(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 Ml(e,t){return t.push(se(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(Bt([e],/(\d+) failed/)??0)+(Bt([e],/(\d+) errors?\b/)??0)}function ly(e){if(!e.some(f=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(f)||Nl.test(f)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null;for(let f of e){let d=/^={3,} (.+?) ={3,}$/.exec(f);if(d){s=d[1],o=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(s)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(s)&&(a=Ml(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(f.trim())){a=Ml(f.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(f)){r.push(se(f.replace(/^!+ | !+$/g,"")));continue}let p=/^_{3,} (.+?) _{3,}$/.exec(f);if(p&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(p[1],o);continue}let m=Nl.exec(f);if(m&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let k={kind:m[1],id:m[2],msg:m[3]??null,inline:[]};n.push(k),i=k;continue}if(o){o.push(f);continue}i&&/^E(?:\s|$)/.test(f)?i.inline.push(f):i&&f.trim()&&(i=null)}let l=new Set,u=[],c=new Set;for(let f of n){if(c.has(f.id))continue;c.add(f.id);let[d,...p]=f.id.split("::"),m=p.join("."),k=[m,`ERROR collecting ${f.id}`,`ERROR at setup of ${m}`,`ERROR at teardown of ${m}`].find(O=>O&&t.has(O)&&!l.has(O));k&&l.add(k);let{body:g,loc:T}=Dl(k?t.get(k):f.inline,f.msg),S=p.length?p.join("::"):"(collection)";u.push({file:d,name:f.kind==="ERROR"?`${S} [error]`:S,loc:T,body:g,exact:!0})}for(let[f,d]of t){if(l.has(f))continue;let{body:p,loc:m}=Dl(d,null);u.push({file:m?m.replace(/:\d+$/,""):null,name:f,loc:m,body:p,exact:!0})}if(u.length===0)for(let f of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(f);d&&u.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:u,summary:r,reported:a,counted:u.length}}function fy(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 dy(e,t,n){let r=Fl[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&&fy(o,s.map(p=>p.text).join(`
|
|
69
|
-
`)),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>
|
|
70
|
-
`)}}),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 ${
|
|
70
|
+
`),r=0;for(let s of n)if(s.trim()!==""){if(!Py.test(s))return null;r+=1}return r<2?null:`tsc: 0 errors, ${r} files${t?`
|
|
71
|
+
`:""}`}var Py,Ny,Ql=y(()=>{"use strict";Py=/^(?:[A-Za-z]:)?[^\s"'<>|]+\.(?:[cm]?[jt]sx?|json)$/,Ny=/--(?:listFiles|listFilesOnly|listEmittedFiles|showConfig|explainFiles|traceResolution)(?:\s|=|$)/});function Zt(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 Or(e){return Dy.test(e)}function Cr(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 bo(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||jy.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 m=My.exec(d)??Ly.exec(d);if(m){s=-1;let g=m[1].replace(/^file:\/\//,"");Or(g)||(r=Cr(n,`${g}:${m[2]}${m[3]?`:${m[3]}`:""}`,r));continue}let k=Fy.exec(d);if(k){s=-1,n.push({kind:"code",text:p,num:Number(k[2]),pointed:k[1]===">"});continue}if(Hy.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 ae(e,t=!1){return{text:e.trim().replace(/\s{2,}/g," "),minor:t}}function By(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=Zt(e,/^\s*Tests\s+(\d+) failed/),n=[];for(let l of e)/^\s*Test Files\s{2,}\S/.test(l)?n.push(ae(l,!0)):/^\s*(?:Tests|Errors|Type Errors)\s{2,}\S/.test(l)&&n.push(ae(l));let r=[],s=0,o=[],i=[],a=()=>{if(o.length){let{body:l,loc:u}=bo(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(g=>g.trim())&&a();let d=c[1],p=/^(\S+) \[ \S+ \]$/.exec(d),m=d.split(" > "),k=p?{file:p[1],name:"(suite)",loc:null,body:[]}:m.length>1?{file:m[0],name:m.slice(1).join(" > "),loc:null,body:[]}:{file:null,name:d,loc:null,body:[]};p||(s+=1),r.push(k),o.push(k);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 Uy(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=Zt(e,/^Tests:\s+(\d+) failed/),n=[];for(let c of e)/^Test Suites:\s/.test(c)?n.push(ae(c,!0)):(/^Tests:\s/.test(c)||/^Snapshots:\s/.test(c)&&/failed|obsolete/.test(c))&&n.push(ae(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}=bo(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 ou(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}=bo(i.get(l.name),s);l.body=u,l.loc=c}return o}function zy(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=>ae(o.replace(/ \(\S+\)\s*$/,""))),s=ou(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 Jy(e){let t=e.findIndex(a=>/^\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=Zt(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=>ae(a.replace(/ \([\d.]+m?s\)\s*$/,""))),i=ou(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 Zy(e){if(!e.some(i=>/^test result: /.test(i))||!e.some(i=>/^---- .+ stdout ----$/.test(i)))return null;let t=Zt(e,/^test result: FAILED\. \d+ passed; (\d+) failed/),n=[];for(let i of e)/^test result: FAILED/.test(i)?n.push(ae(i.replace(/; finished in [\d.]+m?s\s*$/,""))):/^test result: ok/.test(i)?n.push(ae(i.replace(/; finished in [\d.]+m?s\s*$/,""),!0)):/^error(?:\[\w+\])?: /.test(i)&&n.push(ae(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 m=/^at\s+(\S+?):(\d+):(\d+)$/.exec(d);m&&!Or(m[1])&&(i.loc=Cr(i.body,`${m[1]}:${m[2]}:${m[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 Gy(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(ae(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(ae(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(ae(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){Or(c[1])||(a.loc=Cr(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 tu(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(Or(f[1]))o>=0&&n.splice(o,1);else{let d=f[3]?.startsWith("in ")?` ${f[3]}`:"";r=Cr(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 nu(e,t){return t.push(ae(e.replace(/ in [\d.]+s(?: \([\d:]+\))?$/,""))),(Zt([e],/(\d+) failed/)??0)+(Zt([e],/(\d+) errors?\b/)??0)}function Ky(e){if(!e.some(f=>/^={3,} (?:FAILURES|ERRORS|short test summary info) ={3,}$/.test(f)||eu.test(f)))return null;let t=new Map,n=[],r=[],s="",o=null,i=null,a=null;for(let f of e){let d=/^={3,} (.+?) ={3,}$/.exec(f);if(d){s=d[1],o=null,i=null,!/^(?:FAILURES|ERRORS|short test summary info|warnings summary|test session starts|PASSES)$/.test(s)&&/\b\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)\b|no tests ran/.test(s)&&(a=nu(s,r));continue}if(/^(?:\d+ (?:failed|passed|errors?|skipped|xfailed|xpassed|deselected|warnings?)(?:, |\s|$))+(?:in [\d.]+s(?: \([\d:]+\))?)?$/.test(f.trim())){a=nu(f.trim(),r);continue}if(/^!{3,} .+ !{3,}$/.test(f)){r.push(ae(f.replace(/^!+ | !+$/g,"")));continue}let p=/^_{3,} (.+?) _{3,}$/.exec(f);if(p&&(s==="FAILURES"||s==="ERRORS")){o=[],t.set(p[1],o);continue}let m=eu.exec(f);if(m&&s!=="FAILURES"&&s!=="ERRORS"){o=null;let k={kind:m[1],id:m[2],msg:m[3]??null,inline:[]};n.push(k),i=k;continue}if(o){o.push(f);continue}i&&/^E(?:\s|$)/.test(f)?i.inline.push(f):i&&f.trim()&&(i=null)}let l=new Set,u=[],c=new Set;for(let f of n){if(c.has(f.id))continue;c.add(f.id);let[d,...p]=f.id.split("::"),m=p.join("."),k=[m,`ERROR collecting ${f.id}`,`ERROR at setup of ${m}`,`ERROR at teardown of ${m}`].find(O=>O&&t.has(O)&&!l.has(O));k&&l.add(k);let{body:g,loc:T}=tu(k?t.get(k):f.inline,f.msg),S=p.length?p.join("::"):"(collection)";u.push({file:d,name:f.kind==="ERROR"?`${S} [error]`:S,loc:T,body:g,exact:!0})}for(let[f,d]of t){if(l.has(f))continue;let{body:p,loc:m}=tu(d,null);u.push({file:m?m.replace(/:\d+$/,""):null,name:f,loc:m,body:p,exact:!0})}if(u.length===0)for(let f of e){let d=/^(\S+?)::(\S+) (FAILED|ERROR)\b/.exec(f);d&&u.push({file:d[1],name:d[3]==="ERROR"?`${d[2]} [error]`:d[2],loc:null,body:[]})}return{failures:u,summary:r,reported:a,counted:u.length}}function Yy(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 qy(e,t,n){let r=su[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&&Yy(o,s.map(p=>p.text).join(`
|
|
72
|
+
`)),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>Wy,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 m=p.kind==="legend"?"diff":p.kind;if(a[m]>=u[m]&&p.kind!=="legend"){l[m]+=1;continue}p.kind!=="legend"&&(a[m]+=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(` ${zt(d)}`),f}function Xy(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 Qy(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 eb(e,t){let n=su[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:qy(u,d,t).join(`
|
|
73
|
+
`)}}),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 ${Xy(o.slice(u,f+1).map(p=>p.f.name))}`:Qy(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(`
|
|
71
74
|
`)}
|
|
72
|
-
`}function
|
|
73
|
-
`).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 cy){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:hy(s,t)}return null}var Ll,Fl,qg,Yg,Xg,Qg,ey,ty,Nl,uy,cy,Bl=b(()=>{"use strict";Tn();zs();Ll=/^(?:(?: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|$)/,Fl={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}},qg=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,Yg=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,Xg=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,Qg=/^\s*(>)?\s*(\d+)\s*\|/,ey=/^\s*\|\s*[\^~]+\s*$/,ty=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;Nl=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;uy=12,cy=[iy,ay,ly,ry,ny,sy,oy]});function zl(){let e="DiTLS15Fkw0LO7TAjtXEzWfAFHy9zGdVPVhLzDmgtLzJc_TpH_1N7u3y0wnmoGqi8Gw118152ZQEgDJyGz3x6dNF_q7OUBdLzeeKuYwykqeQb76IObXo94X-wg0J66gMvUpbkN0TCtLWJwLR4g43P-JMapEzQ993vYTBGoWkJZqTGFuYQ_v3Tf1u05cofhzNExCxlPiaMjYO8lFGc6nAkhnFgB6SMoFUSg_VKYfrIyWNvneq2TrwnO8oLXuVrGY_OzFwj7SXpbwiLUkaiMgavFwaXTVaGq7EGk0HtVvnn_AwBLbhQXmMA7dpv1DjHp4jhIbGV0NMaa1YqxiKbtJnnTGXkekw4D9dk6LPlf1cElJJqa2aEiXcTsM1ahHCKhx3hp4YliBfvn6CzyfVZWuTFeg6KhkykBh0BpV7xb0bdUM1l9U7mcsWRosAGnVvE6Mz5Jy53eUk9aWS_bhfImfGiM9bvMgMfWK0PSR7NtaqzahLuugBfofZ0FOVs6T45-ZsW3NLjpRjZJaM7t-6PyjAOzpad20B9n_PyJGmd5LsatBqpwNaBj6aSu1G4cwBdm_-2q8KZ8nLF7tS6nVlX2NLj1AJDVSJ_5IXKc1XL7xuf1TTEwfyNGRQrpeHZYTWGtmggDAxsyDjOrXFuzqlBcyllsPYMTD9FF4MWg15x_FrwfdlFkkd94V1RUxQqAJ4vK63egTISCkAy-hY2i7DqnNNsqaAFZlJAtx-G8kX7WaMJIPNNVa2KR3677ANMR5HJTQEiur33g29qcwjRf92FdquJbVNWzs647lzd_MHdoureoU1bv-LtwKGvP1PAEGaQZsTLb3DDeh1eTnksf_xCGdFYg7fG8KAsx7Gd9esmgH8RoCwz_xJX39UdvDxBs_Dvg3NmtU474d72lA9zr1AisGapnStda3YO323EeQta4DGOEhTd60UDk8ZHUHU620d6hjue4uAuiwf_wWF76q1Mi141s0wqynngAnHKQ5ufSU6_x7R-lYb65CHwJ2v9UJVqQCY5pidO4voiTWgL3kFw5_gXQd-CxQ7xE2CXlrEBB2NBujPRmUc88sQ-4juk_dmRd0r5SQ7W68ZMzgB7LNSkyl-jwF8fV2tZCUCR26sT1HAgPKKShrMEAdoYrLMhiwIFFw2k9pYcHY6dCd6QucQLgeRaiCBjMrqPCkSSScgQ6t4ysJjoei17Lg-9QA6bAfrFWfwljppK9ZDNCHvBcob-K-dHlBnRXh1dJg7oNa0gt4Axqjdg9e1V0P55qosHV4dHNiGnYQFaD6KBWG1ECm6HF01c6UT4sf1Hn04R_r61Xn-KrztLPlanul4a2I7VEJDm-C68P1UXeCemJm9NK1s6vnD397tPzmBmx5_f1QYEmCFkefr8uf234qFqccJSP26O9W6z6HzDKavZybdPZxZboEUbjjH5tglBVRHI68A1QmjIa2GS3DPoKYjcPuMf1YVvQSXlG3PgVm9tLzhj5SR1x0-IT_pafgHhyDcy02Q4o7qVCsvesMIK5Zv2fOH_eAaYCyvr3RJ-8bqWneRxLPId3w79DRkCd6-2WMvKCDsfwD1BzuMD7ueCEiq6eW883kQ7FbDnDdEIZFunbpFstr0a8IUrwRg_4vsHlQox7iw6b1rolC6a55K_t17aTbzpN0F5fgDAnH2_upWNvDRPPP4jXI_OaD_jddGtp-GBOiSfqfgK-rRC1mj0LOEgOTMn5J1ulomF8XXVlrh34LSUnKSVQDeUloBc33ctiQE1I3w1ETqAxA2N9jVES5OOqYY5gXcGmOB3_yazQlXHXycbc9tE8Q3IpbYP5EkOCudStHUT_yY0DolKrCP60T_rG3LMrKmNCXtV23eovr4IMG3RdjQfWoC8vT03QAWHZ8jE--CGvoxS4_beBApiJpLkwcvBSdrVfyS-8d13pjA8iQOFwkNTynzuYVFy-Gap9xVfOewbymthbGgD0_1NHGTgxiL5uXlsLgOppWYdwxfTnc1GSditDEsfW5fie-2JcuTayJ3JgtCNn-sQM6b8Lg2i1IXxbG21VyPP2WMS-E6oLQywyqQsaRnXYT63VBtMGvMk-sRqE3xeHaKdEzMD815FOJaAUqFNzOGOUl6mSPWBaqNyfm9rzGtvZddNtWag0Sh4MnewRfwUcbIHXPnmKvNo_WzQBfwsDu_D6kuqp06DoTpSVtUwmvQtgKU4kaY-W1B9NORVPtq2bV2wVHpOg8D2xhsGXGQZSp3edJqeVL3ELGRUkHcWX5Fs6eFEnlcvjRVx73lUokn0HaSRE-WLcxadEC9RoEk1c-YGPB1eRbONmVn1VZpgMgXXk7GI0gvrVxT-I1Z4rNlArnmGtQgAOVKPAfglPdtVNb6QL2wHPo4JMgSjkhwIzCqMCtTTE7WDStC3WefHrjgfv_rBrIidMnaVeWwpCmpxFkIaAv8btjbzBHzvMxP8NHO5Sgy19rj7HMJTQuiiQWet5syV-fxbkVI2g_ZA0ES8AF_KEKMtB5mpBmWHgrOdLaZfbRORWGxrLc5GWVinaIg7robq8mBiGrq451HOHh8DhJ0heSZFOpY-Vu81ZNGb648G9008dck144T-sMIzNMIIB6MvXCAp1j3xetU_Zlnx3dtvrp9OuriUfZAFhW_unj9ic_fldoQy7e6_8UjMi6FjRSVO_ZKqbgahLY2Zv3_lgeXNA85fuWsFIfDHx04zl-V6i_ITXTq8PffLzLfGCMjt5Iop5qnLh6FjEha3RhJ7kWmZ9Nj5kJ82fdMOrIZ5TcW6poDk7Yoo5eo8mIBBypAZH3lVMot06Bc18Q7VSIbzV2NdOwCxqF4u40WXKDmu40_MPFXGK3Qkof2jvrMrZAmDkbcLepIWJzsUvZL3lKtph9Y3gay6fSi7cW7IIjHR3w_CK0eSYB9AndxAasS4V0965J2lvLSOXiF4EqVhzWkW9V83yOb8VhQEeA2tk8vI8Quwv2dukNWOkzDeO5yAwtzHt_biVer6rPT_E2XuZnQNZVj_XYk4xJF_k43hlNhj0QP6TvfWVTAWXlRF4MPhgTFsNf_YLG-R9_4bpDbtxpZuV6MxE8SN5OCq1Kgl88MhrlGYwIVc1uCYiUo0_iiuCPgwUfQKnXDNZ_qn3oQJxP80a1907i805WuAb5-cjv76jFGwtWgB7tRudpCPuGUA8CdSijD41JmraUAtyGukuwMyvqBB6suc9tdSUYIBQ1MA5x06gEq-VCflomlelTxBIWafqqdFv6tG857t4J0ZKcbjKzpeboZQpaoFBhUW9x_1ebA-JzLtVGgxyt2DGcGL8fnWt3BNRMXEmWvGf9X0cwEuAClSmNl2rYW9VbxvTbEXBAZcUOtMUsJLPHPrVMzYLoCMpK7GdfC__l3_6XeOxk5eIjFdey11Wwh1S9u9Wy6JQgk5oOX38_8jQNhd6-oxfbI5HGKT4xPDLnO0zfDFqO69KxDp3i2nh7HcIC9Cas1plJ7EdqOzCDZEA0NqJH3AZRrNsVq-j2Szizycwl-uosPQk19HZ8Yw5-zncf_BGNQ6g9YbTp-EkAafvsagIW0DY7VZfdSc4-eQ0RBs0RJ_5fHgVSM9V4KMQ7IVFKJVKPeb_HkE7XkvPD_F3Pam4i9-oWSX-sfIyr_vZP9v1Na7iIssoVO0e-dKz27WtPGmBP0x3iAB4lyRgNIy9ECq5ZLG_Dx8BvKMp1PmSrtvjw1ORWgRQ5JYVCGGlGEGEjI-yzesJRPhfjbnKYvKoJzPdBxK4JSwWt6uhnYV3RbMSZwDQYtaVIWJwRa08oVYXEsKbVYyDCDQ-mNCVdIeUBR4KQn8-ivRwKkSCZGcdiJ_xrT9VVZE7JHqgjF6Nt0LWux1STt0sgNZDcTksrFgjBrEZzF-aEAJ8gMSF1fdkyyVedR_Om7nz22PWw6Dqz6902eS3O5nv9q7w4ubCZyEDzkD4Rhm3tY941rv5PZ-EyKDrah2SWFGpkG2sNwPV3UVLMS0zM9TCphmmd42B3XTXwr6RIv0KYIhrXryVUCNXyH-nF7f_wVWbSHIjhtIbZZJjWOkLs3N0HdxGM26Y4PmvhBhyIeEuma6QWU1QDvkTQLT7rfbgcOmEAZ_P2SCHEDnwNKk56oPZftLpbYoFyovC18Rh4pIMPn9FldmNulY-2EzVGMW013ehrsNkJFeMG-swp9SAG4koqfKGKXTg-_4mVdkvSBAS0RW6JlwMLTP99Tf3L4zsVBaQN0edM0wscoOwmeWda4g8POcR5oWaNp_oxS73Nwwg4PkUGESzCQKT5UQu7ZZNCd1AngZmbNaN92IsvmDakT8rURnB5MZ6T1-MXXY6I7hgmZ8_dZCT9ffool6duR4wy2bCEiY0YO6jj9IjvrB14OxQZGU5gn1mC19GABP8R11aa-K82A_dfkv60uo62GnbHzt7gF6PlPEb4EddsX-ghEQLaR_FdahGH3g1iVsFd6SeuHFIaDy5yIm71Vco26A8vduZhLyDf-qe2pjk7pIIBJAKxOyktmwSSTIznsl4g9oUvdg2fJc3bSVnU791KFxpbkc92wF2mqypq4g7jUyaatFzb1KIj1fKV6c_G7TbvhTsndNxhvd56jbmPCl5tb-JWF67h8hckpduy1U411FqyVIUTrvA1QD-maMKtkFB_NQ3e7KjRMEBh-e-K5DlT9L_Caxf19rG-orM02gZJTn1g-ddHHFsClQQL5vyPWioNwjF40V5D5MaULbJquiNs5cCAVMdwxYT5kOoCIPSrmh_25-PqiTmF_nOSXnx2EvEePR_PcPtBf7h2h970QbNnr6T5OQwMmahE09k2B74YNBMAeN0O9lLONY8NWU4BQwxRyeRBykoZNoH0E0eGZTb0WUmlypM_IvgobL9v2dY7lMw4HVNtD49jPRhyT3EHmLTKPSajfohTh18gYTF3OGuaz729iBxaGxQ_s9GRBL88ed_8UaBByONkeJDrFQeYlyyrrZp3BFtj5alAz_CYYGCynz8Urm_a4AGjqETnPjl1nv2e8V4InZBpmQpFKs90WnmrYhRF_fzDvtr-SigIZtauqbR6j6MRq3_r_7hWOF6OIq4ky8pfTIiGwsLPKqLzb2TZxdiHnf3JmK7GwrC6ZdvX6c63emdr9HNg-UgPO01yrC3qq07bQrro9qkjiLQfR0oZ9SexOJ5Itl-xgYmH9b0fgnrUgitR4oWAY2YjF4oXij_FM5Vhv_9yenI7_KjfRB4bC8Q0MPc1l4lcdzijCxW4gejqpV-OT6O8TdRtgtQcxnRRWNNrgoNg3NzqpMNH7O6WweXPnjaEXZqFGeIIHmtjLhki_tuIgiCRBzkrfKcHsZDupgSTgBgoESL4zVmxoX_jxoDpXcxvBesKzVyqRspXI6eQYn7T7_7l2Aq_t8Fc1fUN7xE02eQKjvVVbUXczEVfLDcW1RkxDTjCw09b6YyiXgyj61iwlNzysZtYAxpNm41xEYmI3HdbEGOOLgZfSf_gW4OO6Xf-drY198Ncdz1f0ujrQ8qqQPfy50biD-nyILBFI_2xjBkROIMXnFTXoL3Vtr1T4-eUyV0vBqg-VJ-HofGMGZ-BxRGMQd-BvAHIgcNDFX2CtGMFZxy95SQcI2qKPWxc1dHr-oKjuxYjfvgEdIIbppXGj7vuL9Q4pGy-dvVy7YLcbpGVbWB-UQaoNgI-Ai8V899DeEaAWWrRp4IlL_7AX-PbbFroygpA6d4XME6YkU9ozvoVUd6JYgq1v0hjhn53TgdQXIa3gSgMneXsdgWX9S3tcTA6qKkUF5DFNIZpwPDy6elDfMBr9mVwcOXlB0LVgekTlhf27OV912jgtJQDxnaaZoHDI_H1se9LzstVJosA_WdkZfaqPyEu_HIZoWltpUlikuRHQOkQenFKQ2bi0wqjk7Ht7VuuFyolTDFQ_iRCy-OUwI10nvsGCvA1UX8PZ1-9L6c83mbllinU3tnzB8tHPPSnIblG1rGj1LDfRmjbAWxVe0S74vyvbfxe5VuvW7DY1dDY0ilc1KL_xX0sllx78-oDCRLc6FoRmdGGCWENLEeJH5ObWrmYFQ8qF9LQYKNC8P0hi_6XxJoq704e7sb6TeeHI1P0yxEg7zKFygKpo9GJXqgbKVwSqa_YiIwucfddULf8j_Zn_3DzY8L7u7Keg8KqoBE0JSfp7Ytd6xBUdmAclopl67uUzqzEHcytlghvy3MBSIvhlkAKjS2ec-ofD4QqpdfN5_FamDT-2JXFR4eg_6ZDUV_kTOBQpmLjxjjGag14KqioK8BYJx1HBvOhP2M5EpBX8IjtlG4YjWTYLsNIAN8dZny4Xj_xO9G7u2kplsWn2MDYb1lstqvQkcH4j1dg2B2inmYRUTnlB1pSnHAKZMG3cd2kOjYjl-yMZfC5XOBCYITMfor98_GXYHjIv9VFZq7Im-CA_sJGG3NrVRpbmwpRspZzt0Pn8czCpccLftURoldIATAE0n68kSpYhYQuzrohWHOowx_Si2utOJ-gSXxat6vrpJajzYn5u3Z4ChnBSQn82rbDZ89PV4mnk3BzNQYjSa0v9kbaRtVx2yHp4QXZVQe99ruVyBUiDXpd4idMJo5slfu6XPj5EtP5bkXLWvlANH6APIJkXD3U6_EEDs8Kdtj_SO9sia6klskUz_p4W-mdYtlTSM86GX5kSMNBTLcl7QEr3dIa1BK7rheYG1_NsTe79O1yFHjfao5CMftYpC4Ksq06VFCuqmKbGMgqUr7ICH_9q2A-ittdSUGwJ4lw4MItYLhq0pxl08POiAyf2xa6RdHedEZgmHewsMe10RZR7Vw--f8-6L5Wa7OLCQ5XrKnHavfX-TM9W-EBok2rd3u6_FiEBxfQ1vQNcEa7xLMf-sWSuaO7zrMEWIHSqu1PBcMO1bTgmTM5EOyiUWL9Ar8Rfkr3QpBvEvJfcDlkGytIG19sGLZDPON8czPa2cJW5hq1ezBvhPv38d3yE-Be2hqir48bDZYB3Zf6jacy8jJ_5rdvlMSLwS0IZ0x-JBzQI7P_Zg-1vn-o6q8hWIVuYTx8hIaFNh6H9Z1zugYE3NwUMmTyThrHXDLYmFcyfO_YHLTH8qgp5yv-PhIDQRyKiJ0k2-gaXGxee3vkMNdM8PmFX0SE2mSHM3eZWaacEOL9fLtj7knXO1H44sUd0L9yt8vcxsG5TUd98bV3MUvWhmovGpvs7Twc7bCWf5wYGo0drUN1e8NHjp5n3njxKuqjO7kzPn20AvVUsZxnkt_JGYypAfXqLIrXy4ok32xgGBjSWqBc1vSp6c_hO-O3Kv5RaxgTMk_BRkkKQMZyGNxpaV7GueCywTRvD4mBinuC1kFDyrtm3OA0Zuvnws4_oo8Nw3FyU9EW_hzGwDg9ish3gVadWfw6XXkmr28DV3wS4rWTTWGzyEuc0wnFHPyxCx9H18q4U6QiwvqIx8sq_rB4B7x-5yygnTS92TSYmO9E5C1MT3KPyszqKI49PNHrjqBXB98O1XUjvXlHyUEKZ4IKby6rggzD_NAy-a3UVa7Thk43iS-rWYEdEj9pjMWeDIdMZn6ceNMtLAkLcar_VGMHXNX-hWPQt5o94_oxZNSLEu6EbteTRGzYMuWDEn5v8Ndqfoe3mc4hFhXegVfUxL4KPVYRQ5guYkq82o2XOpwFwcCpzBqYkAHkhAh4i5ul6BtlZQWDtMa0zaGgONCQCWsCbOKKDThXOswQ2SdJ0O7qCDMxWAyexA3TPsYeQZ2_TMszASeJQh-uL6WeaAalClIqyskX0iP5bhacJPowSm9k33yIaU996PSnsD43wIV5t6Fb7dcIVvKJqG3m4ZbjDdVxl4YlB61JZIYHmmnc5Rn1juGgOaXcYY9lwVgP4_kbu4T-cI2HWAhtVmEUIwYMRUVKN5CMvWZCPk6PwCR_CdWhhEzVP_6e7NzkaDR34BkaXltpTMLu1n_elLfd8zJdez17b35CmdO9w-11gkBhqDi9rixItmSIUgMyO_BkVIoV7mCvBqXgKVcF_NCcCJeIZ-aDNGoSykwKwcM9ZtG_I1pZhPqShYnBTTlTopBAz-ajdiTiGROOokXTtPo22VFKTmvtB1dVbM0KNray15wNntD43U7Oh0IEO5CjuXMCiZhlm6991yYNxiIJ_Be4c-FTdGVBiRS1weP7dXYCNZbSs613zQIiStPf6Pzq6vFEYknYON64hoA4XP6qS_52co1CU6PgXqotHGjRRJCL3Fg-o1Az_1oB7N4FsL_mXHrpIvog142v5BpTh7OvvfvPOBhmMx1OScoaLGQTZ5l4Zklw_A0EynE1ie91S3OqCUAzxyXiECMrzYPIa9NHdcgce8imD-gW4USIsKpQ5U3R6lqpGL_7X3xdm1kIZ5k2QNFX-eKZCU-fHZQJFacYqChm6fmAO6bcvz-MCGzuG5lgmYk2PI1sP7HhJgwxnHAE1BjqW1fct2ApRjaGH6P4Bn4EHTKR7OJyuDdo6vVIDJFHP18kuOlf4rwZhaj_4NPwvuaCPcvmNcGm7yWYiahxI4Do2WU2G1QO57K6_xmWCvpETLRRj4lSZ5sjYPamDeSzHMeq7Z_AOq6RPWMrJSKkn-I3t4oHYSifKsrgyDW8i9FyJFaBoFXqRLWVApiZ0gSqisHEG9xECAJCEf17C8sBuT71qRmM5mrBKdIE98lW_GBdMHCt4t8uEWyaL508x5tESVda0DQwE20NqQTaKnKhTZmj6mt8ElzgMLYRCaIMZki-AMAE10450gdeY0OiDzwL133utM0V4SnJ6DtJTgBJ17heN96z3Xi8_JFH2JYOIeXbCgPVkMCjkaZAbevFet0NGtyun80yjnNGsY3PAOdlqO8yeOhEA7k7O5tK9cbtw9qVpwRQ1kd9drij7m6UcXXEZndZS5ybTj6N8cizXz0GFP_pQjD3eYqWdgvbf-0_0Zxb4U5HcjVCsyA6F_LrO-d_tGD04QgtoVNiIJ9FXY79FPj1phiPXYr000zujpQ87AYG_XQ0_87vttbGIKHnZVWnXLhO2PreasnP54By4BJ6xYEqxulzYVWTJEY6oG4iuVoWxtHM33ddocvRBPXjcBgh14VPNY_qr-AaZDM6P47lnDvOr9HSv4z_VdVsAq9a8JIAjOt3FzcdeOinSn9RRhXTYSzobsH5a_anDTHJO44HHCQfrm_8FUtePp_wD7O1ycC_RsjXcDYAjXTUmDiRPkHER3CVG2OylkO_t9uWnyO3-UNdplTXAhLoxrITaFp1GnbDFmP-WkJ5QRFHFEEep0om210VyEQviiPfUNlhwcWOqBq-97jqJ4ykcLPmfH73d7sOEAe0Pn9fXAFmnTKwQk7cyKFMv2babShvd8K1ASu51mlrvR9LhiagF-eUXxxekkjEaxRxDZer3VRJZJDLG1mllD3mtdFf7t8aGRDajoRstP8htD1WGwKTOdc6KGYtssADZaVRhKfWWqxqma891D3rkwqcaxWcPXaK1BTW1cHw0z1wXGZyh1m-K-Tm3RuP2HlIaAYv98LA_BW3c6Zeda31MVpTRZFWjTUQAsZePervxDnanUZ84kLbknNDsVkl_0HACCeQuIFwzB4MeaAYhGB1VMc8a2kTyCXtFG_iVhcUO56N_-QWyl_TrMQh1-U7mnT0sueZAGi3Guo7sA404sFQSod9L9oTlm0S1boZvaC5FgYgJGA-2EAqjCFLPqpVDkBTwwSHgbjqheTk3biPM0W3rdQVkJihZ8I2m1YPeuOdDthjb62blFsZINzsWQjXl6uj9JmRv_bK-F6yiLPuHfYmwcMjkSPiqrSy6dDCPL_tz1DScKWj_FRM0XQ-yPM0V5JiqZIgF6k7Zx9bsRPY5aBXrZ4LFuLD_EVfzjZ0_FFkkz4ixWozXG7dtEbe6VOsHnH-cy2raWRjQ5rlxXUN7U2SVnhq5-0hoqBO1WtBhim7BpjtIpUXPrn1fNHGIHwp9K7-GLXPVzmr4BeMJfE7DHzyLMk_KA37wm3IUD2eGbgHwMVEkqABiah6SjAE38UKQzS1WWyRDz233Pi9E8v0SH4iCzCcmolpcn0NFlIs48aZKJZlm99d1lbHT704WWGBBk1pwkR-_Hkr6ZBjQeGL1kMK-8p2OiBtLFiuV8wPDFrD9enI02LXk8qI0-QrsX4HndgMjnFKVpz4uwPV6BBhHwSyX1NBGpDDqx4DSC0qOs686ADQlVA23ZddQtNeBI09xfWSI3w45IDDa8Av5rtPpopWk2J2v32l5qdofKvpOwrDCju6NNGDqgoxWpiE1djv9DTtNDPGGw0tFSo7GaX24YZ8hA1qFaiIJv80uEhFsyhxCpWt-uj2ECeFdFDBPV8B-0XlGlB7PV52GX3osycYyclIWqgbp5bgc5VNs7DM9cvQEpoHlkmwJcLWb5b6W20cDr7WSjROm_O_K6TxupKM2lhdblvYa_FHAfDoXaiawQ_Iuf2TPbmfnV28GrSa7fk7x7XgRf8u1tlA1L-kCGndM8KViAqJxg4nx7wnhklT0sq_amK-JTxZCh-jzug55KSa77JffBxx1kWwu5WWaL1BADyP0RvCtElPXRS_-awYgXk8loP5M6yXMO6BX24SgWdDd6ZPitioUX0mncxN3jBH-ZDTQ4sEHbiSexpxd6lhiD5N3PkvKE2I0ggGMixC6qm0EDrLQ7HDFvp_rPSN0njtBwHBHUTMIEDOQL9xCCGv8fx4h21RQVq-1D4BHgXQWHCyEgeBBUm-OMv7rn0i1Jd5fQTwOUEATdpRcuriGtsefAyP8A3otIPuTUhcjZO1l2lMmKJsEsaRrzOYOyHfOWGw7-7IkEsTpSg5QNgQZiaVlBz5SHi36E_Hdy-O5sQjDqPAz0RrUc49ZdInTLTWYXW37BQ6H9st2gWjuy6w9yLSF9qAz61cT0sJcg2oPgub_tchSwJy5Eoy0_GDDpgFQ2shyhBDIJ65zzeq-Qvoz5q_LbvvPNy9rbzGfR5mRKAYGwsdQqTIXJcKIJMHBFgBZXkItJH6iKXyZS-u1S_xHsi_zZUvjD6BgNZRJ7fFuEKvczbzjMPxlB2A86oL5fmb3NztOPnyWAJWPurykfNBcMjzjeFgRcGZP0vUYCvI8awSOfUj4lQyGhbarHqlc6dQm5KKnZXLd4Wt2VusbbhnCbyEg374Qkd3XcXwyVRIA7AllgmXk_9SQHAdh0jAJpX0Lmijj4uDYdvkNnCFygVJBPIg_pffWrqs2jI2IudA-HShrSO0xzT8lM4rZZFg7exaTlphgZuMZq753U_T3QDHR7-bIGaiuAg74AFDz5SS4-xDHRaoW3GEp9JfqN62VCq_-6DrvkDLzsLUUrFw2RXNAS42nKGDb5r5x7haXDa37vOyWnQSHs42mddejtTuKl-5WwhNewhX32DVX1bKyQbA13ZTzt8WgUkYcwjmtcfUPOh0xsf9u16Z8-SxSHxP-VuGdBwyYFlxdJjx5Kx0kIiJykpGnaYgVh4OubBKZlj8j7_mOUecbWiMnJ4nk2kVqpRyae1rHDVjOaDlaAjcCcsHjschjEEYxSmG1dgwpufmiggYbkQ7ODuSqQDCPKTlBj5OVZSv8TXgqllWUBsSJ9QXMNtXRsPi-6yWXDnsNn5k2LuC3eRWRn5oAGOWIoWpLo4KNAZJezwQvYwY2GpIlfeEJ2QRR2r6dwCTvhZIw0UcAluD_d19iJIDChGhPS9epTe1B7Id5Q5O2fREnJvWTj6JCrxjrtsaEOTNBUnt6g9P4PJeSDOI5DA2dU6QdTpJ8RJ4V01Ddy521GE4cjfMiEehCEG975JwOu03ONBpKVeveXuQ8R48jRUhflAFoGhSom2gci_pWUiG7Ob-_t9jvuCj3fV9FusNyKMvEP4ve8mqMF1eR54V67DS0hr6oWJXJoOEVoD2BSoKZQJ48q7QC82Y7AjHQzaiPASRavbVtVqpHQkI3bGBeiY36XiPlJ0yJfRSHmWm6GWfEiwHcjcwEUYhqXrSid1W9pMze8tBqD44tGAPNzKh3kU5YTvD79xVOCsppLxCUbdHaFx-Fv1PlzzxQtho-7XtRVoiNlIdHfw5L5FFHYgYIB3nXEc_Fduhcl4oVjfD4eo4Ne--c828dX5QROJ-BCdc6W5tD_7QScgZB5WdgYxDBg-vdSCLgl3W_Elktjg4DcLgN0pFLn4ZVP-1YhM033PSIB1ah_yGFDqpZtCI3B0SnzyrtJljMuJ4KaFPDrQnbfF3cHhGlGJpn8xZs0F9VRCSCBlXRFopP3p0gJy76Cp2HWm1DeWMwYI5m3r-b0thlqSH8fBpuKOsNF2sclXoefF6Krj3_MaInVh0P2_FsQv7h7AmHJueuE1ewyFvBYkP8OJIYyRfX0bUifmKT29OSrX89MQAiQjMw0iO0lznLtd_JbjHlCW6L8S-7ezqo1qSOTYj2vztvmosSFkML2ZaO3RBfJTlI5ItLfwbdjSDv83t6nsS6Yx6OwCyZEqyQh71LpB7Pqq-kbObdQx7SB5oBm7xr7VB5lM65Klz2YRVvm8ai_silXVL-eSVbU5nMirv4IqOAYh_GXItLeMonFZPj-id0vYnDdpw1H5PJxV3azhj8FUDHNp925PPpAl2Tgx4o5o_DAesvAQgNsD61zya-3SY9ZkXraf0tRhFeOhe3XZ8IIPnRprZQv4HzVGFbbllYLtADlXtqiBSVo6zWCjK3Qv4inxIX9SfE4UPWsEwfvlnnXGGYFNBIKwBtNrDbTdtwgN5shO3vVMQZpMkG8ABX_OpfhM1pV-jLyIeZs_Y1hvKGyO5YlkHD6gzvM8dW5DJxjYlJRehoUPAQn3o1-yGkQyMtoNx5OlgKjnZV07rusCqYR7TP5D_PdQUEj3SxqwDgE7SorTQimQ5ZrIOcS0sPgGiZx31UoIX8Nbh9_RyEd0NeXPsv_ypCZCCPsoaFFBn-vtEm07bwGcmiBJh37dw2mEk--ugBma9mb7X-MDdWefYy3t4NdeF0qK2rkGJGFMcmnnns2GoVh_n2LyHlaprypquVAeZlfiaLitfP3tDhsgUmoxjJ8pauWZnFVS5VBY1UKbdMNP9itMgk-NWKijOyTOCasqss4aIIybxWxv8O6BEVr2HpxvEmeFcFi7ZeVfB8Otgfy-5HnFxwosm3cxmlMXNG9sKKflGQfNDbNfPIzc4kMJZdzgqsH_QfudZPpYEVvCzepJlktNidSrBy5mL08inwGebvjNR-u4v0Be9q8krHNuYIBi1-Ix7lMl4aViWxskn5PkcQd1keqwMs35z6TpCwiDEomNqtzngiTarZbumIOiGtBW9jpaKcyOWhEET5fSQthhx2DW1Zsd3wdbSk8OYBbOsD-uavi7NDDiEIcRIqCRi6JzGvHqZNc25DKaJNtR_JWuHbXHd0-WrwZBeMr2j9xr4CLTWPOoYgM1oYHIo2DQRdCp1FG6JWQNODBbOhwMV7LpWRSo_zCcADkJDF1t7QQpYHxWGpoIA9tErKAiTK67_F5-U2Y86goFBkUfTQAt7IBMn-VNLuOrfFLfgX1Gm23W0ZbnaiUYt8EWpwv20W6SRoLM4tWtPzrtv55G-ckvi5cHX9cYDcJPvFWeC2OHObfxt3RmxyPHs7k_DUgzLwOrSBioMM5YZrv-RDXbRiVOjS9vWsQUuU6fkXMCCGXwM-IQR_6Y4XaUOqDfkeraVGnNwfkkjcTWJFH5Tfkz8I5CUhnUK7sBaS_aBTw99HgDn6XHuaDb_hZ2nOuMbYnhK_Am3nVv1ASv09sVnhbMcPV2VEliH2hHpBng4jaAUspBKwqpxvPe9jdZnJQFmwl4E2ifGKJUOmqjymmeYmPwa-0apnVMEEBIR4ng1bO5ycqZ-7_XljcBWgRa_LGP2XfCbwQJVdVtzwftREE5_Wu-C8a3j1fs4TsnDIvl63IPrpW8Lg0Px09CxR6juF1d5T9_2vgjuerQ3yyAAL9s_-qRC1UPGj68b1lDcgwphZhgnSvRMWYuW_nrTdL7Ve_7rvVJIVN_WA8acPAJRjLxRK91yAJey7GO35fAV3Dx-n6ejPW-5V28Jmj_Hb0abOJm5zKdteef_STo3j_gvf9CryRma7Bzr2pxJ3naSwVEFJ1eYOA-oIx7sGM6pHWi0V61vDFrFAyq-jF-34dexta_h8086eHmROAUDqQ14rQ-ZTOzpisetna2yMyCNtPtbkhI1tyyCh6exxeRjgL-eTgh5HdQmJAoFMBok5QLato55gWsXjGA2Xd-LpjjKwvare2pCNfDhkprjOekZZfRtdQbqa5C6azpIanatDNJd31mC-ag804BEijthu1B98LfTa0f0LemCIPl_ysF35578j4UgoNBCwmsqb7MPq1VmKdbKLqUHFOgaV2JCsOzQlxQz8Hwqdcwoke0Lyy1p9DR_B8yxvbqd68TeuSv4wiq4YfVF5Z3Ofr4-JPqOOqiAADgnuXbSfo0OrcTpUUz1ieLTdsZplL8k2EmMcFvUUU4Ai2MKzh1kVce4M4VgTzOkW_kZwBWbgEa7MT98Yto0gphdkZCLZGkgo8y50bZkT_H0uVX7Vvr7K7Ri2AwVAVrJA9pWrZe7-joAFDTagKoUqG1_uR2xalFqC98NVWpUEP6_g2OYcuAdXVV5GSOtRp2h771VZX_InC7ovV9XkSbYS4C2VYn79xjQxOBna2KTnsr6VWXntrSGS0s5DhiK094o5WXCLyMsFJsD71bsxnuL9onf7q9AT3M47V5Heyee_aRaRlrVDuCjS7zVM4SyomMoRcEA2DXFz20bk5Pn9li3-x9j3dGFIEcDynZO-05ZX94VFkH28p__Kz5-rL46Eg-njSpARQajR9yVuNUzPuxYi6exnvvySWH-JGE-tSf4SbD_BOYxzeK-kXsI3pFlRE9uVT-aavrICUBtwcCIfNxDcrmUF3l2Oe11jIpUeVdwJ77tPMwz8A8QjV8igemfenFvyb1X4pWKh1BWNGsiH1OnzrlZgSUZRk_v3ZfyjO0Yuxeq1zBjW0wrkRgWbF9vmklcpXu8uqdVqFbxryTdiHMGOF89oyZEDXht0Hd5O9JxbYUPjvvggAKhYRebtZjpnzD_iMqyIlUZ11JamlLN_peSbXKg0dv5spgwV4V_DYl1UWdP5zz8qQNd4jy2T2TEg7H3HPYkXAQgUjwqNI_qwrwCZwwhmqU3fgX67u0wcK9h596BzRjV46SRvFmj-Sa5gZhVL-fvlOl6yA6SbdNFvgn0Vb8MBgvLK7FTD1TcVuenScaQ03XnKgAKCvBtmhOP2tupgjDb6p9xUExucyUZ7clPdnnN5geAfdTY2B0F1BZzUP3ot0xYZdQ5FTO3zn5FUsUcRvrgM2Qc70v70cQ8Q90SMeoeeSYwn3-9tc3l2JAwtZfrTnzhmZUm-PDSYOvXNNojO-VDw-dO8Bsgth3LVd72ru_zqDWqVjLBNFFFW3mjHoqOPCnSHaGRQNAOaXNt_XnpAuoDJGttBErfzkMOgFfn0vyC6L9RtUdTvR-6QQa3Ri9q5jljVwcjvduVQlX4fa7hHMUjpuSS1e5kjjIcTHxPjH0Xd4CvvaB1U7hNupe-DILjPP0yTmGPXMUIgQECX6yCgRnc7p0d-6QwTkycTG3hPWhHYvt0yEo7hbOUMgYOIORPjsYrHcvQrDvEdyrsW18OQ7d48nUe9V9KFPEL4397LNIbsnWJFIoLNaAkuuyr3RCqYUAAIY9Q5LdIaLSVS7SNas3BffgKvUbOFpWPy3koMFpW0XSvs1wd14x0N3mvqTehEGuOgpqueTb4gX6qpiPeMdQ6uYAVk06zXPv1RnQbgJDRmzbvem678CgBHftTpAGmElmNKTNNkOnPWtxIlyHzyRShIEu_gYZkKbjzROGEbK07LJVuG2TTFrKPfbAP0GG7fW_SIL0fCOLygwdzklmmXewSXfVBuNczOFZ6Y27XU__VsQD34Vp535IVBJlShMvGJYQcJ15meR_6GGetKWhbPW_GO0AIJuNoZsZfYa_N1m7d2P6GQP-nIP8jkvD2dtNgNNm9BXP884IX260FLbddY4HGzMHznQ8MrTsffXYKJouvk1GTvd0xHyIclrwKt1PbiK7D2LrOWp_3ci3dY_qqsnG8siG4OarNDPEfT76-xDOvMefW04VS6eMltFDxjToR6gprIvwNq0qQmDnKrCRwCoMq9qu_2uyeR7kI5AXQxAGC5-6xtXgWFg_DEqqa6Zj0AH2lnfNIu3QNc6bjMSAvGfdvR-GXTnM1VFfye72pTlp85UTS2oSXwF9Nsv83Qn_5wUIFzIYPcvkAHHYcPvCcexyVFP7x8FGx210HqqW4ARUve9AunyyqBLW34irsWRSLp7SFqd9oJ4tiHzUgmrg1edmU17Y5bNYqFHKzDK-mIrwKp-C8VE6RLWDTDe_XoGZdzfK_CnZeyFj8A2jZ4SGs47qQV2HtU465P1KgDlX345H9qsQx_zKPIslZhuS6I-d5AGmiQ3v1ItB75Dzf69udkbMJ6XmCVyDoVuBXIvvSZX_YpchbDYqBz1Cxb0JBRi0Y9gHldKx8QJPkq3lrNccmdL1T1OYf9_odqwfFo_dqm5ZXNw0Cve80AChU_YHHp0hyq7b2O32rJR7lCPa3Nbx_ZoAnf-p3Y3dKAwggJtB0-4gwez3ze4RffUtZKQz98TRgDk6KvBQKKQ7QbPG1mKAQCQki5HaXkVU4dnAKbSBMuSxaagjwxS8C7I8DCCBcKD9aEIW5HHjXtcx62yKK2Ty7uypyn0CS9wpM4b4Ak4boAAYJ9LEHEl4gHH2f5tLQEE-i0GymwWPa7hXkRVe3SY06vxwweUUFYm4OdH9fEWe17ovLgaddNjuvtj-7dqBe8IJdsoeHDRrRMv9-QLGGvgPf4QhRvTMVr3PDKVzKnb1ggtH8s7wCKG7buIUvnaaxtuxi1q4xXCAyLzWenmQCekqAAYIsCS2DTM56K5xiE08rCHsOGmMhZqWxSvtKrR2BO33R6IzvNhWa42wJcwKGK68Frkob6vw4fK9aOhbChG1j70FNVQK1JOQglM3PpDur8YjQmZ7CdmbcMMmEYbKYyVweXpe1sW5apXFCzZ6iR4n2Xx6sBeJ_upl-1KhzBWCmfqxCVi3cyMZckGU_Hp2zfRCpRJkbGSvj7BNlJwKpRrtqg20QYQUFg5pVEIHT7iYS7Kb9bZftyttV_DTiCSr-g-0mI74hPN-VSy5RFzJtcJ5py0fz4OhOTSnR0KNws6u6Y69H8hI6Dk3tIdAMOruZuF5J4BzZcT8wm6FaCbWtk2Zx3xLbLvCiemO0ZsDMjQkNJ6Ah_NNGCISmS17fVMWK1dLI7-iFzUjYiArXG_p6ctFb1gAvo4ulxTKR8MdrwFCSl9v8DNhLjRVZhw0QN_GyHX3yGlLzTCF1wjY60yNTD_NAs-WnZu_Ory4r2Hv6eoGBP1opL58pWEG4aF1noAnyBgqf2nK5rhxqmIdEupjr3LvzOHBqgKqDUE8Q2dazJaCnVDm0fgiAdl3hJYxcAxCWM-DkMUn9QEftLXQW6BAyWB7Xw4FwCN_C5kXiw13Evwz4oQXBjN0Xfyg0tbgm7Gt74TLvAdApWZ32NTGHFd4yfhst_yzldHvPEZswmetPet56X2VG-fVjyDUNaf88F2Jb9IzuyRBTF7nMrh2CXg5iawpwsN62xlAwkCh_nvf6hsuiReQUMnM2LiZI8Tye9R7mor9ouEb8bbnHMmaniVnMo2mZXEZB3F00LNv2KNfJWbyHo-l3FIHKGs00avPXWiOhdNb-9u3PVfRmtYT80obyxxMkzs3iW62dFacffXUp8wEp4AmL2-jEKYIsxs_Wo4v2AxFoKO7rIT4ZvB7rdg8b9Do5KwAO8S8mrRD-xMETvnde_K_p2Z66ZN9PdmhNKY5OSYVw9lwogiq841NfFSrXf05V6qXG_sPh-N3IwxNPZkylgGmeeX5qO2HhuJDeRMUMQv_OjLKCAhO5u3XE7vuNilGIHAy4zTBPfHobiTEKAXkgxzpwAal_BR5NTnl2d9e1mXV1HpejrO0Gcm8Y0kuQlqG8_Wm1kuv3X6uP5cJbkLPB0Za6O1LWP8QUS9BZ51DxjNmBAxVD8Wluzrarw_WmbTIsPsSO12DuiqDUx_dBbzJcw03yDJxe0uW50KgRrd1L8XvEiifUSFoFF_lUZ8cdfSlfk6ET3PYrdnFxy24bzpktlhtRd_83H_ScVBCsWdb0u_pDk29wtgUXniHQsij_foDFPA13rq4KiVpXkbG09hFtRxMNE4Aakcl3FIOgqRLWa7iDN_ZsNIbAFM3qnWY3v6c51OT_uyRpv4eR7l6BKUjRL7eAL4ro1yWiBE4vY6Qt0FiMjNwVj7bxUxjXNRWIcZLDfTgMVBj2K8gpL0WhoVRJBFxYQEAsHhhwjy8zuXBaa6CSnbdafja9hV2vZO3XqNqCP1qezEbno2tSEGfvKlJqXe8nohqbNRUDTP9kv0JfolVVPh7WNzJnicWj9TZDJDhUdR0HrbgPQr0C9LfcEbOpYbtV4EKbdXfCFS4l2rX1y6RkTL2F9RQc_eFZlCwuH3t_wdbNzcfmV6rQrS2M-4lC4Ndy2eS3RhWCw-Up_ApnLUIt1yQxNqcGiR5VVbHhx56Oe5fh7Bg3iqEQDYpTNb43A_dldHHZRRcb5RycDtcs2I6Hc_LUKuOheZ6Gz9wJNvLBRLzxEyi6HiEnW-OPd64RNfXKs0EtbqK-krHyPm09pHev111sK_So0UZcNcw7LwvikS3ohe3C3PfACe1pWcCuCzPcBEHnhSzOiLrx1CV4p6hm9P-quBcU02XGUGvU5SMYzU4fzEIaUIh6uKKRgDKspnPrmLEunNLik6js_xcfuUq4sn0MRcj8etgf0YDI8M8x0uY1eMqaYebjgImOsWCF8uHFyW2w2Ji1w__xZXNjUNNYZhtaWBkddI-H964M8CPZo7aezqp528XXTrGmAYKj91REEQq64n_u9rynw3yB8PNua8q8VjX0fd08L95LSipiBLDl3kGE4YE6tx6ZlavQ0DybMeml8ziAFXx95xVDdg4No7illufdRsV79fuk8Akmz2cpuKt89c5aIhmZ_WesTql86GZgp9awyv6uu7VI_118iuv694sNiJWZUB5jMaccWn6wEYAaeCjJ4HZcE2gb_5lkno50fSmxry0xOnfiFdLtC1-5iQcXtoI7UOqUFfKwhtKhCTPkwbuMxw6mLiVfj5j_cVMtsHHkXKt3eNFM483F37df_IvxR1TTbCUMlzyCaS_Mo4aLKXsdESIiC5CmR133yBZn0stLBVIP3CCRG9qPYdWosxaPvwWYro9MuAsUPvwv3Ml15cUPHwMDPgoaGzNIpm8EQ6BRSCBOgkm5RkaNX6XoqiHmE8ST-dbI5goq6p0JxXPxC9G0TatFWBlI-IS1vzVw-gZ_V45GwFJUvWNZVrBQoLZVUltPmB5uF5iNt_Qn32wOcpuq6i7hNEPwYEIQ-4cI7sXzWaqRFpRxWfmE_6A19mjx9uWh-_wwvpMyTYyAomXgJvDgP38POVCUR5AYmHzbH49j9MOOefA4-mVCUVoCZ9OFLCCNh5gyAdb80SOf9_nQItgCUZbU1BP5rNe48Qv0U74IbEurL4Gk5bw13JGaKhjbnFiCF9wXybWyhUW8WNT1W0Juaiw941VoaV0VSR3zyWu_hI49fFS49QXAT2MtMA-IW2aVeibYgSiU0hAZtMz3VHPS-N9q-eE5s0W3je4fue-w5B7afBFtzQjmcAqtohSSVjO0riIRUUZ5PAYDdb_NhjIOotLJgaz_apkRAtT7ab5H6rPT52xfS84RwxPcFdLyqqAYiPwkMwr8fSfa9zxceMFKe9UWi6Z8Yrg1SHHwbvlPAgBfl71b_Ehqr5cviVARu4nAOZ-F20GlXamEHY0KWwLNFDszjI_cDxdQKM4AQSObEooZvtD7YMAk2UcyIgCa5XCE4uCypwFxkeA5MiypGmCtMgoeQAIn0djIgmgYjbCETz1TyNQUfO-VYXlMJOY4pKxrQuehzoOzGQ5h-aHtENM2fzt8qQ0M84OCdxFcqUA8GipcaHzkxteCnbaSUfkyjWm8vZKjACdX4m4GTOF2JkuJlvN04PGR3ZoBJgtGm7K5GHyf9BAeXn3sdKo2ErWys5vkTYLi87yNcyiUlr2Vdbb7EHxkvRp-1W2GxJYY6QsJA4psKUGSAs3uBMb_Ydst60xuEEfOsTS-zXWaCNPuCN8YPnDWZWiaGOPJoQAu5KqtpdegIOw_TxcusOZ2EmuENT5PKQK9PrsAJymUjYYBJEc9U9rq95zSQAy2ZfM0R-tZ1ifi_Keb5CLjQXzgPklUW2WLzBkSjnAvRDLUXQiCAqN4HONUz0he5ouFYsRz6MM-LoT7sNHWHYfhzaUY2D2Wtz5GXRlUVmh4zDn7aU-7eBekeXiBNWo-U3NVPu4V-IhQ6hYwPgAQSaiEpy_LhiM1MJ_UJy_nAh4jBpNb8X5focmuCCqNPYwsTAPt6eGJz9y6fePbbnOKrOLUXR-pNriEFokkpnFkpu_Yr3KgjU8joFBB34O5uETtCJEpUBHBSlVBZD3cC3iedDehpzzFYYX7NU-IdXjdONdKqZ5fAPu_fJ1onXfAV2QywyVWSDJh-ilnO7xIeTHvqplahIO9b-D5eaW206sFCg8xtK1xjvgl-urpZ3hsWeiyzjra0bhYCTtGW7sS_1yAVDNQKV3-NY4qZaW0-c92fMpeLOElO-mRLKdLpeJ664gwwBKYz3s5QTuURb8rMuyXa33mP8S6Ax-Oi21AC18sQNbjryuPxllm7enmI0AxaEVdjL_dgYU0vViHhHYfX_ZHsp3VpIBavslqdgZozu7Bhi4ZsM07m_U5E-RV5UMh2Vm5L61dq13CqSKqtleTK3P1FRNKoVomkPJX0T4UKzTqFcPHYYBtLkPhtOZgGry-WHv07nki-1-5QXCQyuWSva7DFSO7Q1CXI0fciY7gmVzwnFRAfQXDAtsDO8eFyhm3JP3h8gXhKzrGrwUed5PhZvsGk080xa5Qpt1VDxvePlGjWQSqBXt5vOb4R6uytwSSW-P1TFquxU26FBLv0qp7MWI6QgnslduXenpUcdvGdCGNHkBozZ191gKydk_cATxHtihiprpwOYCZVcu_L7KGANdWyL_iOCLNQ8a29BBCaGcwjBZtBTFPw1pMV7wFVzu_gGw5MVrpQHKQKB4NjZtXMPOA-xJ9nX4WyreIpIUiA9bp4hb-tI84DH9N6QvMjFbsgVPqriBKD67uS86rlnTIaWYv3EZeXpthYiAWsispkjL06Ug1shAGf4ayEMIbBcRibGUeRv3-Xz8gz_B18IEAgGHbFCNdy8Sg0x56hltJxUHyNuwYfmiAIeghM3ZxwJacT3z6SsLo_AwwCbGVmFzQlIHHG5-22TiZRTWJWC7OUTuZ_07AYxTTi1XXq5XfmPLzVSj938HmOFLaaiL9YzARcimpvT9tB9UfkV6A_k1JupVfAZkNfDCJYc5YDsIJCeE2jCakeXrHV9Kk8aSBBa4fJPKi7VNIlpllvbgZcBo3VQHVlDXMiZq8Owby2pVBDu-RTjOt6z1yhXN2T4urwUIAZwkOn6uuZW2E3SXECAlJdl3Dcne1mRdriCFf5_914TM62lFTUymNT_7fMA8UNEJECPZQ41leiZuDdjqAv1xRdbE7hQA78-7Nf0MfPueVDNtgf0FwdVjts4sjgIwjb7QavySCm7MwBVmTjFQBKFfV6V-aLY45kqF0_P4-SdRuL0KaJuaIlI39wg2j7S3ADcu29QZgkWtmRVjtpDYzdWuILWBByXv-Ghe7_XHdf1MkEowc3sli_6EFVLu7vY9iRXEpzTSC8vYe6TdYDRwurSPQkIYuaJTGjxqlJa9ZTbfcERO-Z58uf5zuuswqA0LSbAcBbGr3EE1kV2eIdqFPsFrZZs2vfqTAddcHQbM8ic2Ed9b6N3HI4aEuv47QCB1N0BfWsxJiydjPgQJQyrYJnZeH0Y_IkDL3djtoUgA8TDs2U1wuGDMequfItSqpoHlPii_-MVK8iBg_gwhf2xGdGggbFi1f1CNO2wDtSTnxTVpqj5Sw5q7jzsKQt0-rBrWQbuGrc8rdOpGraKjjTs-OWnKiUKrFd3W9xsjb50-ZChJrmXeDn6sxfRwtmgqO-05yf5v6-L5rJT705rc_EeiL6INchzU3n6E4Q-qz8sKU8oq5oE4qN8ocZ89LxvPdM2tEHsvf6C0JxlhD9ZIY03RMqoYfbBxnxuOlKFZwRaL-WmsIuyif_iB5tVGt8h9nQpEk6wK4cZbjy6fnyazstuspzeMlK83GFRrmUsCPLH6wJ5nA_9k-8tRPpmfgrPamGaQLBeGRmgzZ3KytHChrqPHEW8pOT5h-qFGLmKDqw4Uw9H67GCoXkhHvbZblI2LyGijlqLOqiSXJCGiCPZ3u793znKhFd5qORD5d6nHcsKo8G5y93G61l_27vogQHPQGCEkzOBOshYV7u_cvaYpZRokipYRAX6wn5_dnJs6lGuWpxUdQltyzG2THVXIzi0CkDLU5p_BiXNu8MbjL3Og_JF-1FHppEh33jhujVidGsfL2gYlwAOWkxAU7sg9CdSMQ75IEoJY6TQmtbF-lfmoN_nR8Aja3Ea71oFoF3pkzU0gWedxdZycrBJTqDMnXEYeqPN8vErx2EfRVd1Idrbbw8mRFx53QAOO9IJNZ7fH7Cb1PXh8HhwVH7mqFYA7aDVM93tUMf8ySU6Bi-6wiPD-uMVgLNjOUnk0T2VxKyhfT3GXTePFJlrdoO_WWzTlFpVV628T5Idsd44rxq9f-IWr23XYq3qUyKoV_tasSlnfGHdZ2oAXDUnBPEeeNnxYWC5M570kQUzBXydCJlF5rIbInoZUMzssqL4XHIO1YNCPokRgShCKFYRsbWjJplvKJbhhve5AnctV-dL3DfZ6jcFTvERL-NC84m7BSl8IbGGf-uoivMGq8Os0Vq43zn74_v8IwZfd4cPldMg_cvtRvFbAJ390RT7KP82KyWrKeHK0a7xG3zFEt_Q7hiBzVN4fYzzyfg74QMnZ3b1ddCngW74XMP-lXLhGpuTxbOjmGB96MaIxWOhAU3z4hT38XmRqKbB4A_rGYesztizxzvZrRJorqIY350Y-zKhBYcpon-SAkJEVQWM-hbthbs6V09lbpLVqCp7XOeLzqqA9OqxRoZmssrxglX7sVWcRUoU6MQ1HSh7-rytl9MGLapjlk-dGNmLsmsvpIcCyzFWw6NghKLk86zprpqnQvTnSe88iIObZ1p2EjjzfToDdJ0juRIeRibb8vho6YFMDY7XSDlVAjWjVhfv9J9LfBzS4Dt21kbNFrPRuB5FUwHCqwH_G6XAnCvKaLxHFe60mjJEml2962yARChr3tQsKPwdJmhRbXPO2zD_iO0OsmiCWEUa1KRxV6EdQrjMyQOF9Brhy6K0Uk8y3HVKzdn8fFmJwS9WdzJuwM0sgoaFtHc8Cn6hrRVxvn9cAT3_uQEuVUnscXcXcSkJ8UihSJn3Ae9QgnpuwwPre90oKshXUygGw24rznm77t_8GHWeGxRSE-ql5teQy2TNd49jnY93hHgAfWPq66DK9Gif5XOPYbYLps7WVoMXiJmcXZaFNt5SY8UdHes9F8Bf7YB8BR3W4SLIm-ZK5IoDPA_rsU8Yw8xUwwwgIJwyzX6ehxl0dGqab8-ww8LQLSnRN6erNY_muT6UtaHn7ws5jZN7Hjj_Js3j3ikzo_JgyZK-kj2m1NSPnFzhnJnD5Bp4bmXlL8guqWoFBzjWPtR8s2LkoiANh329FD_q4MyH5Xx62v-F9fGo3v6tanolJZoGZO6Id2hGgzQz4yoVz5-HjrER9AT_nJ1D1kqH-BlszEd0MAflEbSW6TOH_gmyRkAjHVPXhGek_S4MTrQh82yHH02HAk0Acs3Csnr9IjRA7mPGUC8R8BOB11r6-iyh2N8gw7IB2tIGO4j5u2g7M2TSFRivJ_LaohfYdXSPd4H5lwjRwt2UZVEEfsrDswN0TITT9m-lLVP1TfcHljBt739vjdHkU9GXfw9mqL0c94hH4DEWUb-R54gZhVfQ5RvAhj-TQMdJPvzR-m6rVZM84s99bMJ_mva5s9wOYr25it-4vh4JaGitHzvaERNjjqph86gcYk29ATzgchPPcxYw7Y0Y6qyQx-KuqFk8vKghUnodj7k9BlRQPLbrXDBYXe7WcUCBsFY06ikC7dk9V3kncR32QaP6d5JRQHERV_-0opCeZiY9F1nhKXoRmEeXr4I5L5UodcSRSSi6fGc2z4jHzJQ5P85R7FY8jClitguUoY4rfLCscK1GXFDDP4aFs5uR333ppL6vMzHtohsDktrzZ46e0QLrPHLhzJXtoU0IV7Ki_hhf8ywW47vRVwfib85_WDjAd6lV2rsgYRG7uT1arHe8UkFpVTljTOfkDTeNASd_3Lznwk-cT4AcNT6qh16lKvNLsctkPb-yhi2gYH3c2oWc9ZToKQeOfj2fz1tHdWwrTgjmALFqrFQ4U74iFpDYhYx5fxvKFst_4cY5Fv-AuU0cFjC_NZekV7NRZEQKAy-brSA-a9HCbXuKZ7KDxgy1ux5vzGHw91E9cRgnWlrO8xVYWl_vd5Mrooj1co9Hq_skEwt13zoMnsqJP-hH7t4Ld4ro4MoAcq6vjBn2yC4a7YeG29RumhmAzcm7t2S-zH-6-lBIenHv8ChsVyQIhPSeX7WCn2qBStwKsPmmypoi7FotQVxVwnYcb0uaXKuZvcQYhTqWRmWbdC2TU31xDrxMwvyCPaWI9EvB0EUfPfc2MLv_PUbbCVFITzy1M1USRykZb6GW0FfQZy2Xvfew6W8lKjV81iEGwW0brb3rCIX1NR3yTPvvi0R3Iyb3W6yKk3e6byl70eU-m4kvCwFJ7nI8Vp6Vg3lvE8srWD7zfL-WYARG8ZwDKAX-jG3nO08QjanNvX3M8GncX5UdjLO-HA6t7w4fpmgBb1CEzKqHGS1xaVBzasa6Ca5gzHJr_3HjimEOb1yuVxaczHclwKPDAQDRnL9hpcIYqsOky3hjs7EnREYmmad3zBcVBOkayeqwHKBE9XRbPdYUezAXw5kDq55EpdYMbalnh7hGu7YQG57g6fnzwolC-xW94Gj5YAO7FMsmzfXxpdbIhU2aBpRRmpDMAQCPyrBMvY68WzhlETk4Bsea3afpSo78BqeTCOIwKNop_pBTkvQHEXCJzL6UYImvDZwxtbxMu0Yf2tqnGet5r8DzWZfITb97bY8MUDFT7sTR8N2ALcn1UMuhcI0DFn4z5BrhX9dZop4I6BEAOe6jkXJtVeVfULJ77t-tmvhytu_6M3Gid6klKwVPzUEEW3UrR4_q0GaBLgLC67lkMXGpL90jYBq1VRfOXZUOuS2yeXd9nUOheg9rvkAwWpZORt29PMhUtdzQ8QATvbOhr9rQf1Fbkmjf2Tzoo2DD4Q3SaYEth6jbiUQtv1g7koNn7sNv1rjmyZ07NqxGdxkJS9co4WH_jdBbX2B0w3W5W73XN5-CaFYZIqGEXWg5_4tN6P3cCaEE6QX8HlXQkggNIejeaLhWxOHvXIVCBhtNHnfWKzqqZHiYhfgAMOqqdsRXTjBNxqTbMf2yvmR4deJrb6E99FiFC3QJ9NwpxQ0pav3fPgJ8S9hK7HlT6ZDUJ_CL7VH3X-JzHn2tJyLJ2yHx08tl16aItzRbeNcFenz8zC-iTocEZ4MhAouIPqdUloa9lukjjid7_QNsRnlAeyUsFn8pCiEz-roA0SlilM2DKlBYMO6epSKx6pslpKW4WNTFrla3FLFAd6MBUqn0RcTz2zGF6jQ3_pOTcxzsr5mbD6ATYIJKCwAecuuoBqyv5-exBrlKzh3bzULXwMONruEd-tvonZluAacZUqiRkyKi0EaZCyEvn02r4TgSCOi_BSw57Jd05knZL2TQG67IJkDE-5eUtHNtLp6BDjqoM6TQQIsK4W3HUQocsboTZ2Ok32LxwpIkMXjjyEe1cdS__0MU-jPc-0L5xqPmzDhwKOWDfQrsRNTKp6CKIj01Zq7o34PVP0TXTp1S6I7YfoTNo38ua9FEbpGadPOILuaWTHdyZgcaprq-xyVlk49rOqFITKftvdmuvGgl6rUlCC_RKQsq-DTj-A4I8qdn2zkgGX4uLi9sUiQOPp8Zdpy_YVPHSmz2XP3Lg19U4YCemyeQj3RBGUCa8raTPGNrNlS9_5DIMR-kw99WnTjEbbAR4mHzAXlkSjlGm4PSm7Xc5tWrhM80URfvHLEOng8Wo9WF2FZodLyt4mt9Hc1tE_zd2jl_b-CcfKdCSh_2C203EnIvZn17nxx3CLkdIeN8_g6UxIbqYY43zO58fv-p_NmFkz0YqKYasS_HNRgInzEKOWr-YFU52Xh2L9ij6Zg3Qs7ckWoCLqOxaG5_UBdra85emD4KAlaV5Nnkbu_KdT32Rnu-7f8rtBENSuAyuwMj5xTsgIyIMUp5he9be7h6sajujxVM2fTrBahJfv50f4jd8516i3zCwyWW65E_-I__T25qEML1UR340JNkMJzgvtckmVunXiEhIM5SSeYOewkaL22iZDbMoPkOwYE1L5O7ogi8LLvhjggh35K90CAEfJvnbWiAM-o-_UJsNVRHXA9qz_0GbcMgXnbc_3QSju6KEfdLAZThGOO0sgLSb4rzGoUwJNwLFQRPTlPn0lH-8Em8Cbndn65jJsQ5l-w356i1bvjvYo1vIKOgoC7Z2C5dM9KpTCxPM8SPVjDWM4FoLv3T0k40S3oMegsiSM_hFxpYNp4uxGX0BcLfNCbC2bH4Xw4mhFps1N9Hc_GLHGn6D6FPgXTcoZKYiLh4sl2lAhHLBOfbEqLApLniUakc_j8b9za070OP5mq7SsgMLPQ1JXAGSX_Ux-KhFvk5_gn5Ctj_5sb1_8UROMirtw6LULmjxeCpGnPc0V2j5FGBqmYTDjnjX2nWKBHNRN9y6-SgOCA2HcH_men_YiJzrxBiLky7VbxQh29d6JMIc6k418tcSJX_EVWxpJXO6ZW2wt4AGiBgDCZJBXUCBx0O6UlOdWrNreaOvOPgy0Ocgndn2hRO2WC9HvDdlVqXt0Rui3aVQ1-ClQ3mvRhx07vO9vwtuu0TMBFulrX0hQlGYMVnXV-LEZBk7f7Vqq7KwlNl2oMU-PdNCdyZsp95HrLMVZ4rmiHE7kXwUoWt5n_F1WG-hU6kRyC6bUeOlMJcE4NhPYupeiG3QISw3gWQ6zug5F-CqxSdv_8EDeOtbTZDlV2SEiMg9UQr-koxsVGBm8wbZVelwD249emwvhDH5g1UXkIotbp035YE1TZsNMEY_Izz3N6YWbolWPLRLiwigD6igdr5291-rR9J6cU2jGdLBogs7EAhuK77fZKSNiRGHv4nsP62ezn6UCQMxcrM-nUbmV3mTeq8uYEJCnN47oi56_0IxXrV4FMW047-020n0bLSeQmIWALTgvYhHm9VIeDjJJlH7a8fvOpk8UhX8sZmVXl_B3HnetwV9FXiGBFW-ve7pzqxyjZ7GylcKTUrkGkISzxj_p6S76IIFE0K7VGMyqE6ELBfQKA5OhCxmlxV1VFOGtlE2WIGeWSX1R2VP2fUEcx3m2vwozUzxVs7syWQZHyP2hJN2HAn4i8Ybb8gnJDJdm8bd9QvjKdNHGNc2HChkHDJyDQeLgzPVRzUyu2kmQI6VRqLi3msjXvtrMeILjHVZSihoJ1Im9N8sS1aLOjsTsyeHldULXqj57zi9_9pe4gyskKsj1lvsy00u79BGZQklePsDAfWEYE6Yr38PbPEBEXrqrY_gOKujl7ifLZjhC5kGMeh2DpttaZMj9jfCQuLNCV99xdxPnr_nFss3MwEnElw3cKZw3a7d-q6_-ITq4fmx_k5i7oNjwmWjmVjW9RncORPVqDyq74_t1ENIfnCgXRoeGxu8MUygNCXUM5cjCNI9L_Kh27hpaShztqKD7dXOwQVYED4rcRQZxojxqPCPEGNAbhaNoLLii4neoqXJZsez8hTU22rUXK1AKAERHnFQO1EhVrjGG3L-JzZWrRg93A8yO7iUhAYRv8JxHT8q_NWgTGoWUOzX5gmib4Tpo16Ug2ZVSSdeqKaX2Z2weeJkcONCziDofvJY8zyy571j-A8OWTDKKK0tWWPCka5YBSGRgEFhBdbZKJI0g6SMJ08hb4FwsAT0tcGY9vaXEOA8Cnwjlx4C-WF6LqMiZljh0bfnic9c_zNTnFAqaTnFDH6yBRUg2oH_706pZIV6-HSjmmdbo94sJkH_V9Y4oAzeocuidA9_eFmDuDPYfvlQulW55nL9faGA8qlcPX2nMeSfBphcXeFQEQ-lnLuwcJ1L2OLbozqLb9U3RVUef4FuWjMg0LKt3f48SAyqC9VS2injsMxzESjNtgFYIfcxDYUNQEZX_kqC5ZKGTs_k09a1LsDRqMhS8ZgE5hnPJTzyj8BSfZi9ANNTQ39STj39ysd8bi3pEvtyYN8_o7W9pXOT5CwSjO0HYTj9Zmf62RQ5UyS-qKZpOgOI5yYjDvAkgaJ-ELjrA046CeNyRzNmloF-53kMqnX1jdjyL35gSBm440xPdHdyE9BVvnpw-RcOcsDMLwcbm89cq3sbUIGP1uol7-MMDb4XAYTEQVJWuioGxT85tpKV37zKeXHX57jJTm7fQwV8h6EL0HfHy1IDMmorQtFmXFyXmvvtSGoEmpKCqK-_HOIX0o_vhIEz2IUX3HKNr1G5PRgElf7imA50Xm9duvy_Qh9MIl--sOILn6HDLjVoSgrDNdjuskWTlXeFue-g785vpJT5NlF-qNLp10OcJBSE1u9_y30EkOo0Yijl8fZ1BWLz5h4FbKpYJz8b5hSSdiQuXiBeq-P6qmYp6uXoa0-nNregiwRS5OqhB6LfTAnSDRHjJKfsRPRY9reA8WlTbva9id5Y7GMn3oQ0ddS1jc8NztxEX8Tfdz3y2Pk6pwTUXqNAqEH3ADBpbahVihqMymS86WuCH1WNkuDc60aXwhpDRn9r1dq-x02chXNKTW7kHsIAxbRUo6MHazHz_iAHauK21-dOE9gQAiPi_B-0JM5ybEHpfhJ9Uht2l0uwdwkWF8JpqOnF2ewcaPsbaWQ-pDqADTRdxH6B3755ZoNzky_JLlFmDp7d8eqzhosA9bODQPI9ixAp1cJX5tmZ96jP8hHYJPQL6OMkhVXRsni5lf5cAykwFk79Q3x3aPRZInDUjZZeHYkCkMRUdeHqw8oi3lTs4LX8ZJVbHViv9bMNOxHxS5abYX4m-czi5tQAPpC-nI_BPVeesUl6fHhrhyqNMfOIuKKXSzd_OELR3ue7rNZ0ugbJDM0SNKtqmN8uiNZxMqk-NYj1S7z6WtrgtZneEe1f6lZ1pRczNgWNbVMa4IW8PVmgow_PAfkBbmw0RRla0ysDsEo-cufNp3rm5Y1m4ZMjt-Z3rm6i8Ne4e2LXCDCL4YiX9pldsSCD6n1zRP0gEjXiRwv-pIkbvlnhSyEIAAM-z_LGwar7bgfWKxvkcX8Kg-9F37sBc8fG_bc6lNbD67shJvsgiRae-Ifi9pkcGDVo9-n2-7tnrIfWWjsITrk9-mWJq25ro_DuGuNI0uts0x5wAkU1DPuWF6eiO78pRA6LXs1dsl4ILEdt_VojUb1Nr1wlMXH9S_S8QQajCDayPx1MNEQin4D4Jby8eDxKvxdV5Zv-Bn4fXxU4uLGIIMDChxTsPeJ1Cu5COtDONh2EDbjiPBE52wtYIBoDfH3JbKhYeV1aTgfngSPdSlf2H09L5smArooelnPU4N1ysjvvKwKC_ACFw9d1E8i1ESgSYhK2jevLpVMx2L_8jXG6Qy13oG05T6QrcJb1lQ6BVlgAVwupAD1cX07dIttqQpDrS5Om-cxWf5fRovVdKYnWu2dTpkvAcaMilqcndKGNitKRAp_03Q1R7aQJr2AM0JzkRLSx6VEzyh2eN-7yve2A7yBLjnViaLmilMAqWrsnZSpAi8qUTnSvP7J7SPQOKCW0us9rqRbYExrQEnf6t8hb6g6QfQzmkw1zXtEiCqQpgA8NLoGpu8MFVo-7KU3UURg-UInc_3gU02RKLM-dCxKfiGzdxO044-U0d0MU1k8RQtlw4t21sORD0MlddTah4whpBrKQdDoU3-aCWynx74KRurDMcgEFNQKp4q99Q0Y-w2P_32t6Qehdalv7X3xOSyFCGwlJ9oCOStlKgQ9ol1__JmbLxZWJh0ySw3fJ65yJBaZmBLH3jd26zfHRNhRvXNSvpTkTtTFAGGXqPrHIhkQjzhtdzNJb9xI12kvVEEDeM9XoWYdpYR-80zk6uaPo8BRxzYyo5Z6NLlWw4Gm7pE-BryFIQi4EZwvMCnYnRj6HqhkXHR4WX7leFyr3JCiF3W88ZXw4_vkK7FpGoVjzBncxqFoyqSnu0D2PCudACNHSguTZMmi9XizhbBZ0tAHnNF6E5EFjLkBhIv5BfOIErnhotLSxLCvt6IBgzr11xJXqL-okFseyNk77fiGBmqkwN6yr-xcZdVs9JOJCyqGoiic_0M7MB8RxfVBS8C49moEbMxnSNkQLv2ScLhhwdQP_frWREBtuVP1vNnqMdazhCiNXyh93QrlgI7gQQ0oO3e1B04UQoOkyAxXr09Fc5AI8Iqt0pVlqTc7T4ifqC_QrGKiiqovSJRXkLe4rElHAnPH654GX6sqe1aKnH1qc5IPfPRb92LoFnJ1y5l0iSCntjNo2l9JG6qp0wOQb695LNktXy8LH1EP6P3KpXleZDGm_b9YfWYvm5h96M9PHW9U__j_fJ2BsSsm0ozKPCMOjX2E2VN11gWbnjXbwF0IsaCvK2_6rgs8uCJp5ZEUp21XRMWD-_XhSuZnOPLIQCYpYPBCsuAAPGBs3jDOcpej_v8moLhBB7uYywmH_zrCdaghYl2lL2a6tHPJ6AG535yRYKSshQ9GcrlbrP-MctnYJA3Ce8TV4h9mePx66aRMgliJefXh_mGVVMlLoGh-z3wkoLqAIXWf6sSldC42dU-ePwgcf4xjcJMChIErfm2pgmrNbqF5qkz1lSgKF-1h9ISD6RRjhTH2eojBljL6mde49uzQTeiQ8qt7CqHVuum5Dbq6pT3Pibn4zHMKM1aXxDyA7oQqBDxuhsaG3Jum2RSFQxW9Q8S5R2dS0G3oubWhsik0GaX-7noxRp84skTC3FSKxSIDjg62MR8mzH6eGTiuH_jmoRswkglkTQVJgWVFO2Gj9lC-6gJxDRHuqZiNkh2WcjOss8hFmzqQ8HHGGOzjlsXZKF4jEgGQNayC3YE_EZTJbEsHKLCVsy2b4FzrMDjFzPSOL2FnCt9g8UfHGwlmAUKV6ErAuDg6lqpeyJDd2h3YDMsbGzSTw-c7MFKLZRuj9PR5gZDaHafShUtcCpF0lrsIpFkol704guQnF21YVi0GV3KC6eTUDYOyWvTYt2OQWQ_SqKb2_pmiKpw7whEnE4qumpdUg_M6ADjsEzgVRKxBhftfUTnnYzPklaELvYl_EZKZqGO1L2UFSzye2yGXq7MpuuvtMIuPkaLhOK4kdo3Pq_w5h3J3XUXUN6imEv2R3F6-fOkZw02AUxz_EutW9HV8xdqJIwFBLNjTOOzbkj1AAuOw2ytQaG8G1tCQaUuNCrpM_07bcetyw_axwk4xVIXfXkhJcW1e5HfjjR_2lGtUCcYEpMouWqbNzxBkfxfuHpZBHECmpLFRApari4iGfGhAEvsoOi3ULLGUC6MMLPQw-N9xlH2jxOqR0ecEiLlwyqQNnpP3SjqX_kjEOX82WTM_eQp16DbGk7AdaudSwzUceslNnAE7viP8rHhupd6HGTSlVzNUUEHfCNoDOngHnZH_4diYnkQPQsrlvf5Peiyx17CmrqywT6lCRf7pBxrMK9pxHyugxHj1bMyTWi38fj2m3C0_DRFEJdmYiMJrEZLMIy8xsRbNMrSLHXbns5RqxVChaSLFKXDv0kfuzeocIsPeE_yGydio2bcOx_jToUSAiwnUw9yTwtsLW-sFW-uVI-BqMgZvS4HyiHsZj2vqA3Yo-KH8HYI_yJ_H-OnUqnnsbIurz8YsVkRChZ-2ui5CobSTeaQ-iiyp1uZbP8F8pmwTK8B1W9U0UU0DdmsEQoskAZrqmn8zS1QBFHEq7ovQxV3iUzKwOqby7UcIFhBayXzCiqPDVV5m3L5g2KZgQdp1i4M_eZN0bvV2q_6ZZkSw98lCWo_bax14Zm92KY7dLaUd_j8VFw0LgNPosA10-p_RymMC5Nvop6riSeyrDyn8Wq3Lew9T0CeT0bpBMSe2vSwQrmVGG-78YWjRvGZK4-Y_79Sb1Zx6klX837nK62Nm-tbI30kBShL4Zp8mI0zXhDehwaAxPPwwNiHRsG2xZtSQLqaVcFrNbs-XU2Ewm1Iwvmfg0DB-exmsGXeG7VcIjVtRnH1oyKZqir15upZpLzSd53YaaGMHQj0xmsOiwR9YHABIyd0NMLvO_6k-urHkGZ7OTWYYZWDP5taKBDsdkcezgy4SVAk_m5TdZ-cO7oIfzlKsNfWg7colOE4FYlQI76W0VfbS4Soo1nmb05u3kJtVVs4T5CM1_TtxOR0BamdaFTpkOiBKOS_qq2puxHX7q84wnybwyOtuWpl_4hUw9VuXEF28T0u9oYrPlgfp0y7bZFU9R73UP96iVquHYD8qKlAH6JcC7m1O3wQfAQRqENCwsKV2mPZOt4PcDxHUezumVlGu3EMHSnyJblY6E1e3kq70-otQQNYo_KttFyf6CpAPnXuOJHmxIqc8rWbcEhkWIK6SYgrOQTIuIaHnkFFDnHW8pQ7CiAop8K8NX_VOqj66VeDEkfekidFtrojW_Kwg41igECsJH-TPlEsbKMC_I-UYJRXvL-h0oMN3mhXTwS8BHcGvOTFfu9c3WJq-5EY3UvAQB-zbHLfyda0DCiVuO6KQHaUn5qlETmEF1ToUCExkIYihFu0CIY09hWNsHSE-okx2PHsy0Kvja-cJ8GNVrbGVzey6WzERgYnupLTUmI5ioOihqsp0akddkJTN5qredoQA67Hu5LG92VQ96pUqesq-PYLVQ2062YL7LjLwqDxK4TxNg1tk2HnLF6WOClDPd7XdJBnQsA4AfDkilBny3SK1QDnsZg5rLbg1tfIv8uCgdybaM_MhoYp_kXBRQIHCHpN4jR54V-kvw0qCrycgVItPgqwHhEk1_azRp5fmC2gsbdvHUrkNxddT7O1ipCRZ3GKKgBe3xFKtK_qUb2svlKmy8DqsgJ1OGDicJAm2EV81rUGmOHPstEr3XsKAcoHGEvxk_snVza43u1aRGgaI-0DCAFpRjyENcA45sJpSZyCvCvCf24JYQqKROSV50CxTlV7_IVqvHMiLeizP6tOTdQAV3o0C9wa4NWCLEMTafdw4dUsbiZNgq1QB4gyjQJZyiTlT8gCgLG6I-fyRZEXaexndMXRUNT1WqWGNLKYOXCz7oxQ5cFHmq2tSJwaaau8LQ8k2AnFHlUuoXoTgpfhAj1Au_8WvSX0h7vew9kBbVGuoMNM-tzMevDLy47x7AGerTC74oodopbNKLbQxBkp8Tj0qwpLfge4xBZp-06YOynDVBn5UKn4lj1E0pKOoscg7sZ7_bVwxo7C5iO_iQn-JiqX7ifMyI4tC5MenDiiRiu0jOrEuweS0RhnA-y9TBI78nV7_IHIpiMns3kHIIiyRATqX3JFx0E0jWlIK-B0FZ9NYhTd6k2SzUBklknurS7Td4yJaaxCQXe8yTv2fraKoXTcYbG9corVBQAINFMqXoR9eb86a4DqRhQnrTd3xIcW-yfXdTBYdHfSXKcB8URVT2clqvUTQKnj3MxobSR6JPwSMBky8GVRVC0ha6de6dJ71L_pL3n5kvS0-CVSR8Yq5pcLlMexKuUR-DsaqIvW5xbdodO_ewfohr98aJiJ-C3FQS-9QgoZPM6uH5xqDUUhocDTulxcbRj3MS2ytuKOM5gznLnW2SJw4PsToTQe4Aeqel_wU8hyTKPMAR2sv1UCprWkmPb2I1A1Ih4tNus7b39xQnpaz-cXusLYx_wvSIEGzf7IswRf2R6RT5tojnSqjLv4YRdM62bwaVMAomCU4POn_Zq8JKzvpz4gK1KyML9-PiWr89CRSuN3fwT0Z8PQsA3zPw7GLG9JWh7vAVk1gEYYLeVJeq4ls4TvSnvJT6Ll6YVu1Kz95ks-r1p5DITqr2-gs8lWaAhF-ewxIL5ghb9KTjfbQcFxRjqYEklVgZDWVHWNixNQOVK9SaelYUPBYqp7mQi0zKpRQxOUKZ0l8Qkr3sOhAo-1MbIOjEKDXR3Pz1hZtFPL2wji2VNtqMVnZ6HevIAfYixDpXRxccbSm-OVp3OIHZsKeNUjgEckaKQUlQCDaheeYMeRumAHMz-ajXAwnweAJNksMaSEm-NAEn7_lkrp5ubjSr_ULOX96lkup65koLPNDycBTZ6XdliFXgFoXJgslP4-zeIXrgKSx53oaYiuPQ6A2nZoA_D-jwVpK5nUu1rLTV2m2kXGgDOu2a5io5Q05BZ_YhH7V5D-eLiacBviZGC4AIB-FeZ3Pw9dipKxQewi_5YosRpw00tWHG0ItOGwVVLaacg0F67x_YPOvAmE92fPnsPwyDAdS2MBCoY6hQM4BK3RAArcM828Kz8SWgC-u-Lp40rbf5x2HYpWHqShPPI5UfhP10czj8qL5Y6pBkJcUses7UVCVr_doPorwucbcHO6CvFq4-uL609seQYyKWh20Rg1-ZnwPJEXguqzAsKeIY7EaFN3OnAJpM8Qgh3cLTY6YqoWY13ZCAfjRD2Rbs7PxPkjZ0byN2zzxvTbSC2KmCot6Zk-lEr1A3VF5ag-SDtQZe4sYDauHdMEFFQoz8b-b7_zR_8XKzwOVtlUb_7V8ZVrU3KUZ7YfUm7-jskrr_gxCw98M4NcRbqLkTWh-NW49jqmlFtJg0jPTNAJgfU-zSjGCFL7wH1mgmaw1yaqb4r1UzQDiV-qaZJBBFXCrsGqkR4JaMqvX1DkqEkcZt3a4atKlbZ6jNvXc1WApxZGDakokiG5Gy0-fRV_L017eCnuVPbnyPTb3J3gGMlkcveMpR6RQOPE8LzWX4124tR0B8mPfXbd14pWYIM8GRio47UXbYtTPow4WjTeIL1HHFDdGb7-5yCHqCLMsFuvUkGZ0kKlBtFwvfXOHdOgylsiqkemA2uBro-HD216ftH9DpI6durEkoqQ5Z6Yr9nmRzY5VA9D3w7vdZQJLR-2CH-zmJl7Bk2TPnpam6eYVzaBx3d7S7jTlgQZSFBp9WvDftFUWWnGfbIl_Z13K_B-MlvrsQHUJdskvtOrf2LSgM_plO458GuAOcV62QYQ7BSgEoKBuR5Xs8ljjkPtohwo7XgFUCeReWRVmBQzIGYmxAb7IKSrXEZDIk5-4hchIABOsB8HF62Gtx3PnHLYtAAb1WlAJ60Nm_duTbe1VRuucBaZqKT-nxL2-W6RVDWbhMbsMNZReR2JJYcGV9dDQVh1_i6buR-jgayzS10FMAyzww6e0EbhMCWVgIgQF5cIpOXs1CYHAkM05ZXW0e_aXlj-WBgNrr7tSXN1N2ci5w9FCb31RYnHA789eYEVeitL-6KCZv36m4YloTLGQCGLDq3pc2559OZClq2X2N6-o1HhIp4G_vt22XzBK1Ktz4y4CXHZrw4p3boWXN3aUuWsAHX8ftN9Vk5yiQpyY1fhiWiHjk6YTkUoVQGbtTjrwzBdB2AEUvJgEWPppw6a87QYq7ibavJNC1fdujXHHvqujyaAQ1xg8YEuEtK2qapN7_rUex01eeg5vBgfUA2GiKto8CoJi7JFjiE52EbZwDM5_P1Mc1MHvBV7NN9QefIyutxmZh-dNul1_dY-uaexOkSvJmvoKe2lzFi1TbN_iyotE4nGIuEs3R3oahngMTHp5eSGDyM6uoZmmYUYmchR4JcZWYJWgL8ZzYNfO20y6Xheadg6ddYWD_AYs5CNWgIozBx-W2SUGMuNkcc_XoG9ucjwxg8HgTvr4skfBzw_eBQ5SqWHO0urR3sSqUZLwrBNX4owbzgOw-ap6JjUm01SbmQfwiuuqjuvN6uGzC-1wV5-uThBLyH2PvJkXk73BqxkBI-0JzGr96C6y5pJtJzFxHZQZRj600aAJsFZN8C9fyWRImAeCV5v76sGAq0-DEShAasr58TdVa2w_LIyem1Uqh6IrLravHGwgL_5yAsEuPS3FzJtTtP0YwUl8jcL2MicVX60YCD-zteltXur2cZ4AZPTyzUWvWN8c5pSakOZ9deelGHTW88CwWhzs_0Vqs7pZC06H1PxctVpIkSUv-B3NzBj3Mu2oYT-2cU4zwU6uhemeQ4Bt3IQ-aA6vgBP6FwqEvGGl5Kp8GrPq6wDwx2U9qjUFYm8hzXP3-4pKykZYn0WP8o1Lr9nfry63yxIX0babrlqbbZ9AxKNSpPid8kDv8la1DvGpuYUXVpsDbLKiX0vTYC3y1MJgmKgHW4iQtuoG-dn0m6WXbWFx9dSrecfgk1k5-0_QxjrW3oBpcsQmZ8tRxUGZwCNptseY0RmJTYqRg2Pn0LAl7Yf4J56GkpKregsWOx39hUWAuMrL4RMWY3rFp-zRn4ULdHvWaS71JvwrBWa7TOSz2YYpYAw-OXWlBjGNj1f342U9J3-vcugwbdEARzVxUuX30luoyYJ69cJWK_Q7a7LdxRbD_Jps2rrzfQgagUXXEaHY23g1XCkBTdEWjzQt_6wXIYgH9f7ush9-YsKVCR27gKvXaXbq-uyvQZ4pnRfIErNHvsqBAOseja9ljmpkDcdwf7CSy2A5zUCvBwBaDVj2N6CW3v7OdPJHirKNr6Od3h5Mx0VvhbtIH9Fq4VeBWT8Q-BQ-OlP90tQboXCR9HegTaj7vTBKDVx_K3E9EOeE8cBNRXG2-2RvafSVDNEFTNc3yCmaZfPiUf0FfANeQlfprPGfcF6diNJwUYEORdnnvZnOZO4KiNk4LD7MRT5lYQviUbY6fyKt4vqQVpqx7WUMhcQArUcdOvvTEQt0QMCVsPYy8-E2c-z0YiE8vzjjlvT76ZWPtGfN5W3nOdr4HzwnrQJEZkWbLsXKcT47Bl_EcyB7rg0JlV4XRab90p2WfJWvkMa2ZO6l3lA1nC-xwGVF5Vqf5mVwORPBRMI54w3f02_T8KZ71kuQv4RgEGid_h8X7kw6a_-TkMl6xuaokkT-faXRQ7g8x7LMVcs6WpZ3oNxFWwUd3298Y-KLxTMhKlT7eq9CeVcY29mCijQIv_0oe4Hj9EVJrIzDIOLcdGGE5Va-T8FoiUf_ikb1w_xFDzVYY4Gfoj0hTv7U7TOJGJQHUcvbgVmI2-pt-CpKvisK7SRPyskqHxMkRnXM6Erkg-cS2Lnc16CaIu2bJZZ4Gi5xQTqHDsDpewbgngNY-NkPcAf9DIXl51ZjcC9Q3FNUxLQ5f-35fQXTd-QWDjCvCkMgrNJuFfIo76JvNWRfR_yp6LTX94mSs2uqut9k34vNpaNTOhPbSd_Hh8Vi9bK5wYNMl1huc_Uod3IlM6SsG3_l5Ry7uBhwApPebLlQPd72D-uviIdeMsqJrfCXQx483ldg2OD6lNH4e1v_9nvfMHEfw-1XS31tjtbD2hKe_iGjg1oXNdmNUKEUTPvfB9VWsDequ6hDKuXduVGGSCqR6pTvGoEhWaS9ZcxJ-LqFWkXRNWmzqxHxtThq_OU6cfSbPzbe8QHtJBACAZIIr6iBGpJxI-NwqGbLl-qBnZMC7DDt6BfpQOdBPwz-i2xXhWJ9yGnZYqbNXgxcphbTBRpvPd0Yg5IqDh_KSgLqjhRQ4_6FqZgPOoyRdKt7nC_VbBDAI7SuOVDLgWYiO_btiSU6qpxdSLfo1pCpTWM_mJ5HHKQ4nGHAsRs6qR7_lJmJrvtcCsRB2y_9bQKYZOR30q8nHnN8JQC95zyEcVl1RdhP6-Z8s8K1zkVLigGgxnH-zqE9TtSpxPBSTFx4JkoQhLnSD9k9aAzybbTV9iHzmg8CzefxkSVlBQWJY28jXvF63HuR1x3en6REMuqF5Goqr-LYT_YFSj96GfkzOhRhLv6wUBKHtDtsKdzMeeUeADEs2UZy42nvoy88rs1AoFAeaSBnI9izk1-AOVOhUodmrjbvbIvuCxMIOwnYRg2bxU2j3DijyVm-f7RqvyUTEhrEF6Mdup6OzUahegFxozs4qEpre09MpwbLxufwyPelFim80maXw2Maksgn0zGJ-YClMeMZ8sib2z9NDooovsz9AYJG9Fs1XfJ2S3-k6K-6vvKA7ydBSBLMq3kfaNTjO-505Aux-cX2wR7iTRelh0LQLN-ATNkNpu-x0yujcpFjHz9pOR-cQV_SyXO4dwAY3qyFIRFNtc2uP2wjHGRHCJzkKiyQdVa4mFArKMZbTwuwE6oNZ1TwLlvHWxpFfV2LbLbYffAMfAzspMH8XD6jAoVJtlaMbaTxWCz49JOFOoFgU8OPq1UtDB-_ZxxmDPh-xz2mImbQVIGXfdaD2bnYnhO4_Zqmdlb0Q8n8qtc9aZ-xlATf9BoEfy9460lNbwVt8vYA7PTYvfk2xDCAhEm2nxvGWK6CpTESt-CnER47k7bYNpudhMsQ-P4aJt_X36zqn8sBlAnXwazCaPytc4CzgSL6k3798Kis3qvRXHm7ue54-YeSq7LjC-yIsFGk4lHmngvQCfmuEHk2rG8OAWDko4XYY-7UO6JhNjCMasuazFpfSeEPnoGRAF-sYImFdJ03PNCwFymcy-NauQvMzyBhV6jjZn6MRgfrnIU-SYuz5Hn3cYBLo5GbPus72pUILv1GUhGW-id_pYCpH9DRGpFDuKN63HlJahdrwKqmtLmkEFvUcilsusC0677lToxCDklYezUWSJZy-YihuNrNOEIG_Ppme7PRBaL2SV3Y0al0Rim1O-AzLf0BmRX3qtCZTGt09oiMRtjTGreayVzPCfkg8xPveaK9gHVxFQnTfwDL8ZSIuXIdP2XvF7W_R-EM92a2a3Xh7xtIvQvtF6xSKJIbB4XhxiftWFxSpERipOySCJcR2YXHum6Y8UJf7PpLoLEyl6AirB_JAX1CpJdSOJCD5k4Tfqxu0L4cM1fbvFE3RewtsWsiqR19Y2l_JHiMN-fY4rSsIU9RNukyniKkgaidZHLL3aEdeYokW7epJMr1QwsZ6g8oQvwel4FTgPsGv6BJ_wyBfgtJ8Riv72Q43u0G5xa0YvuuRarSwcjkRR9hBWL4Z3xO6oBRVRLneIx5W6pPL8GiTloeplF6Nhv3u9HomTyQswE3L-QCYO8dCWtT4IrXEpbDmyOkHBzkU78yLN3FXxA1JYarNX0iUsUzsXjJf7VGwBEG4YKlX0o_ULU7Delahs6o7oN0rm7A_REUF4iztqMSue2hIkLqe4BeseMuoUZqmNO_b_9Cemw6v-p439eR0wBl_qUlLrIujBJN7Jwskve_lCATpwcgK53OQixL2rUDAS_C9xO9znO8nv6kvpN1lBP59aM15476jGPX_IcOkffGNVK60-_8wxMpKcGHHprKemaa11y5HrfMNXbPORl1LeHwPD7lDcJwiKIbpOZHx-FiPVsRUElswXjl9DFdY_l8DNIb1K61C65gUVH5yxW3r_alv7CgG9Sn-5_hdYg-CmqlS7uiEyxns19nvGrnKKAL4Ol7EE-KKHnbv2r3t0hReLvetm1uJON8SDiEKr0KBgfOzj4HKy84f8bjS-Sz5Uz-JBMwYCbojuyWWh5Q6_NX1oa4HoEUTefK2n53XMqXE0F5XNQTmaJqbQMiozD2Jpgz1vG5rhE-mzZ0j0Kr8IqEB9pAPwpvkYiiJ-WX-kJzooWHHAn8uXfaQcfjWzPdRgXNu_8LR5QloziyPFHKkasQ8F0JTz52kjI_MXZ4-QUrg_WTZPFbbN4vxTzmGyJglF3wnEHIIWuxIWT9u7arNFFZlPNKvMkUqz30v1SVSP33dEZNfXQ25bqob4jU17_lGMoNibg1YVwbcg8ZyB-G1BQU0YWvHEv0awkkh-UBsYGuV-amaudYBlRnnXqwc-3dgLZJs96-w27T5MRCz4hKX5TR_6oaZc33wnY47egCxPdRqcTbOZYUJ3tTn34_C2UT31BNCEvfhuH5Rf5cTWQnrm4tEbD5W99IVT96b5bXXVrlf6LT76U0agN0V78W_fR8vEfSBKuUfmno2SIzwzzQ2J9t1LWUuZSzTuWPv27A0hcJrOf449m1BUI5jevJX4GknynBSyIshVXNv21ZJbhyK_6yRBBf3636z-q4ur03IERH_Xx0Cb01n8QwcRmvhQ4FjH3TlqIBkg-Me6dfCLlqFJjjAFHEOkR2B-OQc6gsbFGBYqvM5EPTlaGfylcl4bjKt9tW8rt3S0oTMctgBrtpT01OKMyienqUcjtcHRstUhBhxkoV7VHQ3MHczYBnopRVSXB21hS68DlgwBsMrCCt3w2If3h2eVC5X1lKaIzpkN-lQeHm0BqukeNHxnQZ8cCdwg-ia9x7O2IBYdnHAEb65z0XUkIKNsIwGbz1e_30-57op4g9OboP_P7gOh8gqO4qXvdO9Q2KdGdMOBJt78z-GpaIPl3VsYSLMpeN2uolQGzVQ4g705JSqFiUFkRkc_TUrPHLioawR1WtE7rh7ARJ8Zm-foGznbbUi8kUu1ciIyWY-WZUqo03gG9vakzTkqJ7lY3v77p4lX3WrpwRUuidPaSfOQh0kk22a4AK34LhfjP91MF5729QmfD_9eHBLfLL7lEDeR6En7J_ggCLbfmQoGeEIfW6HsdixIndQAkRV3uHuEy6GszDNioyKX8QtATVy3qP2bxkjACCC0tAr66dkR65J-BzxZ4X-tNsxBPISGW5rdArQZ55tnlR2BJLKesLw4IN0ncMXsQRgVef_8TEUbDyiqXUzaz33UNQFxo6DuSpyDfZligp5KMl2zaRrT9yUll-W9XmfqwXolO51uxrtYvmUVRmb2PbNoqLd4rs9H3RfM7iwTXe1dDLix-O1WkZCs9wghHCVMIRJzPKIgTAp563Sr-q0Jum7_E-eZycVWABOa1SL2fvpkmDXQDFPPdaAlw4S-SoMN4qlvk6Ov_HMazQo8b8lp0q9VCIUhywqsUyzyVef2GhnC3wGXH0dOoajzcO3wvUYOiEt8OwSaYosOz2gO7IY5r2AflbQNN7D9Xt8iRVwh-dTJeqrrsGg7qShG0g-StYkd9mI0wZVOoI65Eng6reJPMXG_SpxFItTFgEZTt4PQ1YdGcS0r71yN85uyriGAg3JBZgnevXgDrYgGBzKE-7DKqnNuy82nxN5MK2kJh_Nq6Sfm2g1LcCIa2qXRNWJvGbmzXWuRi29PC9erlSA8dMN39tSAtvIX_hWnzJMQTjFSz_7sCn-f5d3_ewsqb768ncnNTP9FTE_07tE9KoyZN2uK7CoLqfINWZncsfZvG5PSja-9Sw8BkwRJeHkx-6LcU2Ty0b9NtBmDuVvwdD3LifRFnufvKhGDZRbLsBFGjkeTsiDCOSbkOOHan2ukwGXqAK8YjhrnQy4dAefrb7yIULcdFYMQenMRhYwcgwGRX2hElT9hUCLWHiPbXj5HXssOrb15rg02jjy_mUlPh1SbpIcQMFDpLXus83g9OQonVLeMl2r_0rCmgr1BFWQVrM7TMsLcqz9rQxkcZ-Ytc_M94vcXzMbUmUDHxFd93Pzh0zUL7azRRubE61dnErXZn5pf6DUAxlTmEPfS9VZWYJBhIdUZdNHBlkghXsnTmX45sF3hN6ew7JgcM0u63sepxwplDETQa_ZXmPa2lBNaKfa_h18_svrA4kdiEIsRdLH64V5TpdQsQSAcZLVuFMPuuYb4eIR0MilJFtQ_mL-BdLAVFZqrJUKPzAVgrBzCEBy8Ssg17sGfQqmxAX-DejoAC35ul_os4yv416146mYJOvOjq8qPZWEFaazhLDzMg10ncQSZ6SLZT84i8VyP_sRC7zJM2Wst6WEj4yV_gkczFjR0AJZzbPmNuurkBiwDPF0K-_wEWYD3jdVb_9JYFjVw4Jdb200rkgKRIyngA6IIesvXUzMh_PUNZ8TNOUYVUI_bl9a8-fm6ir-rlsmEnvPhZyKjHI2A1QpTVl1MOFwG43lDh0NX2Toeet-Qn5xpNZOsjnSpoemmJggVkpXh3RJ-Eo0N6bCwiqcTPGfDNqTQgvgqDidCRllzXc8uCNMKZufdRr-l2wetCJlLZDF9UFsvazne52GiOO3iUV5x98vH4P5ELGz_szxLP-vXGtu2jovFEU6OORt7T3nSrIZ7CKtuxt8Yx3Jg70ALd_fs3x1ExmwmidTUDwSKADH6DO2tSKqw8Ie199C9GakZ6HI32ez-P-RLt5UZZaB9a_lqaxdPLCsIUiwY4ZAjIL6c8g2Vp-ymqAsNH4YDrn9MHdeXZsVifG8txaJHZlzFKtAp7_pyE9yB8mC_iMkctxlmy6SNw7kWg8fYa8BgKLjMokMbZDtTimUeTBaX1I2GPwEG7eIbybHC7axSC4kEddWZ_FyiG_WPpnlg8RZKf0uexdqVA3Jnei_Rd3BOEi1-upgzEBwurTwyhLph8Txyp4U_Gavz2zaq8alPbmILHLlMXzM-qAvp9zrqnaIMaooBZVv2LEBzA8GL5w3QxDwUd6iJ9aJAm-uRxxeOPJgACHMdTOcsc3PyUtvTAMIa9L9i7S2MUrjFAF0TK4HKKrCoFGDmkgE_93cae56u1WWPEKehlM-Lacohai9OYow_Ddg2CtTdAEHvmt91eGujGOQLEZ5qLhbEoo2SPDvZ7JkPm0QhXN4OFmPs-TYRMMuowqV0DXX8IyAI3hpkISVhCcAIwLcat43jtIWLztcfPEvesZ8wi70k9xmCpGFFy1XMFmB-FYG76HMC4es8hUeb3QZkqoyfgHGvNwHI6xEM_KE65zpC4svm5k7FG6kXE8b9CccEPDZH2nm8ojAAuqqg00WuXcChkpyXSXreUx8wNPoOzhK6Z_sdXUteUolGj0lyAS88FqB9gMCvHI8MNnZwWqsK8pzk2XYQvEYDTttliv5jIjKdds_lrIUEuKDReJykkskAmv-vxNnG50yX7fCxon7rLm9PlbA3ucSFEyR39NXp2CGft-r6g1KFHgydjTabALLkgBIA5FtANUmGCljrWTSOXSV4wzSlLM05x914fK87GC1T4m9jc20fyR0jQnUty_AKcbk4b6z_R9Ow3SVSTfuNYo-t5O7EVToc7jh3jc_vPSyArGKf672fSZpUx28f2an7Qg_BEZ8ITn7DyO8w3FHv49PMrLMoMFDon1aowGPBghqBHSf76G8xW__85WKCSy6idIjTyu6axAAfDb7Ki4bMXHq7aZhM63bvjXWx4Rogrob60FydCfRXY8cVzvyy3jj0ZKYOf1dVEio7z_LifeXtUJl7cKrb1owEMi6IX4l1VIiZlRi6BPjwicx70ny9A5y_gLW--T9IWU35oWPmd2dv7yRTy__maTKYL05tZItU018qMNeFTyGeXvizxU8LIUijdtfFhTjlBCD5ZuPggPJud1M9MzipcvVEx_390kFsvIUSTF9Rs8RvIp8mYXiXt_t0vNYI3ccBFraupMSrqmSNShTnUVVPIPHCz6N1IZ_v9XC4QvTtwVRxVKmOFSPXRKaAkndw0FdBQOwhzc81bh2bsnD9p0HngLsxEzb9iHhxPriKxPThu0yTBSkEbbehAv-wbhYwydWcFcx-aEJe6qPLHYghjss2dq_J4q91auSwvMbh7XmoKNAMi1wBe9cq9KI4QGBc9XLJF0C69pcBlgTFhn_yGFbTTnEHze_KUuwZBd5KgTkBKJ_T7PzowhvhK7pF4a0IZGZoAvVheEAhaAEX6aFnLmK4hITgdN69XuSKN60LB5Mr5y1RLMNYMQbmnuu8el2oPvlG_qw6OPj3dyKMg6zQqR375LOtgkozLibtM5j-iHcjppDXSOdQegIXnrk7oEtnoVPb3cBrn8PSAO4HNyXdyOTraTxyHoAoY73FwuV_eVjtbNwFT232AL396iFn7VPPayIT56rRAfbt8cYKh-65C_stf3-8cd17NFeBE7BB_urcrFFwajZQUVrj_vtwLeW5JUFrRh6AkzeFC_-QFlzqgM1cY8ZyScjqMjBj5zC64I2m3vt5oCwO_E5Cs1oyTKTNedm2Y7HiwIlcJT3C4HwQxUdsvnn256KVOYDLniA0aWrqJdBX59SLYLbxuM6l4uNlDP2GiIUy_5SFulKr1Ulf9sn53wFA1ynf5sAWNO96TisR4SyI65OmxYbP2eLCWDZ69VxxqnT_gDY8jMkg1Bc3lLIxFommrM38XUAlYgyx6YUiXE3aAH-L0i_wjM2m6s8X0GrHCnHd-4TjVNrh5rafKIc00Oz_c9vrnRUipw8uO7Y2ZAvcqViNqCioKZUoZH274iBOdxMSCvv9GYXPkJG-nJcOgam27XRvHd6V2x0w9_-nSkTyuSfuT1_pFgD5HobWsz8qpKDiRwZDRjrJZ4UnB9ZHbn0y1N6KjLNhXT39jF5c8t2Emiw6zkZRev_CsJnMINC7O0gyF2U0UeXRbYATWWlO5lv24I-FUKM8eJnbXi9ErjB6AN9nX_eTB8a8RXOocp27GhIHbMbhBu66jqtCQXBcUgrNB0iLnYsbMjusGu9z7dW9CGO9QYOXzeyggZg0hA6FNXUV0hxvfHdnx4qND919nJTcJ_SLwg36MkYhgsrSKMIaKtvIIuurXVX7E-tY83kyvUcg_qqsl6ubdKa7DXCWDDF7ApN3U-2SUCoFL45muPszYo7XKGM7rj3d9KoA3xvdJsZkz8LGbefl_C1scyWsaFEctHfeQ1-1R6sWNssQSxWKRbmMp3ruXkZvDHsyEWbC4YzRmx28c9TNzU4OieX62N8cNBc6uJV-KwF4Be92wmMM6iMdwa0tRSFq96nZ6raGrppH5WWklb1rzNyPFCyAkErjEwpCOYYj4zPC_Mp6IDV7thd4TayvwiZmYRDofyfoOaIk_zyUSqpHfoTPiD6n8JHW_k5TKWxIDDpV9yGL3t4hx8ZujUqjJtsFUtLZghLKvUIjfuTpKFlYYGpLzazvsz4zLag3bxTrj_P67mcw9uFBakBYhoMVTcU7fnebm_nCR-9X1YjT3srCks7-lmzgHyt4gto97JYN0PJAo_Y0XDiQ3X8wRyX_I8bnIM52n67INohYpfk-OvLI7XUM_1bdMZCBpMrL-hSz3xSqL3mR4V7DfbqCCFDyI7vEqHyahCxPyxG3LdgIXHK1I7O5MKN0RoYFSQeFP4myvGgJu9MV2lNouZYec6dXt-vCPzT8YWOx7_jvcdtR7AB1yHC1FnmtbtcwDgZTPYnp8ONiVv7AEcS9XbXeefKyBhw0X8wYoaK9gwyzBADEyfJKZJORIuAoJRUsfAxRQauHaoDWeFwKrfQNSVYqg0tUucFIot7xjTLRUyjvbtt0qEpEFSrDwwNvVcL4zfjtyYRhpcoh8G02lY5mLjRLvv3MNnkCrLsqC03b1RUZ-aROqiTtJLeEawygAfG0lG3HFScKjtMCTTyuSO1MN5FrprQtc2txsHgsSW1a1DXmP0iB0jqGQcSDNlgs_okMdDNFTxniKsXv_r_HrmFLtAw2mwbOstpztDxLpT1ewOTDo85CoN-XpAsxrUQxVhp_E4gcGf3ePpwwdU04FGL8aKQr9BQYgNgRH0BTS72Fb98mL-CkdExNmxB7QnYgQ8x7W6PRfHPfzDupouevgaXUtsSApPcCdRRqzLIScoUcM5lIcafwG6eYxRFoze_xdCxbEuqGRGxyNRLVaWTPmSHNE5NA8EbxOyF5Ua2Zln6bBzareNHktwZL1UFJQT8pjPCf1ujM-jzQ4ITX37_7FdtYFDHGHsRAucnAmVy12Pa2xi239Hc5viekvHo0GQjpdLSmNoS7hwGqd02A8xLskhKwoYYY2bnsPleYxKUETUcrmbjrAR5tS0Y-0aQiWDlsekXNpJL16oLrZBBqzb7kS7uRKJNeZfkzU2pGmuvbHoNW-HDBSJcSOoaau6T5NtKbizZjAr_2aszVy2RYWIh4uorwezcjas3hqNPEDFgOmf4mfFOZo7USzwJSPoOiCjsWZi0TkiGbjJF2w_duTMe6pJRQHHKxuvAUOg9TcYqdKzA2TXR6xHUd8CfgPt0QPbHssZbUpbzZ75JwDlFoC23mq7nHwKuUhSo3BpfdkXQshZUFslr79ScNIlvugIk9N3SlMm8HY0yLwPUAeR6MtGGd_3y6ECvfRh2MXyVH6JMrs_uorqMqC1Tf1BppRSvV5ZWj94AdXIlgV5LNsQw6bJrkYOHeldCG2JAkoVwmDkpclnO15WOYYDdgB7xkRLmORA1iBJIGBN8Xh55bY1ZhO-kWoX416hkkxE88tppCM_f7Fq4XS2iFbOnGOtu0w4p4dfWNJPRqDok4FbGhtOipXhzMu2PItBWTaX2b-13v-AHnVCBQZM1nJiIOvkkd23-zD0ajwiF5cwA5SDefjoU3kt-iOjXSsoq2uPwqaq0XrBa6MI3I2steKsrrD0X9CLZz0Sra7_odo-iHo0rPkFyB5QsLL3pTm17WTZTmlHOjDO9MPWLqOqyZF9gK_ng6e9ibY8MTHf6b-np0ZsIUW1MDXA55CVCNIqCHcLleMrc6sg3u77WTJk3tHmhNA0XETrqB0tM_86_aUtnUIvyc4jwTMZuleEi1hdH8X5S1xmaLsnOIPYkaxAkYvhMTaVaCocB2l6baE41-E6Tb7IFlHrb6rv4DnV0kFVpFcx3PsC6S_JJDhev-JDe_z_Q7EWsogxZKRRJLelMFpuSjUYVfISvk7XeyBu76lCYnrDob0v5dpQe41Ph_8dNym-9l5fEqYmh36DWGpTEvMzUHQOsWgLaVUk_MS9FdDhuGjyj5rR5reAShekFpNseVN32yqv2vXqv5viBOZA8O528nRXDqUjxh7iV696Lvf6ykXU7NAuLbyeiFebubVU2qjgBvi1kOkZlglwemdzM-MY35hJLFxTAL0yYAcWYWvPcXQfF6l3EY71tSNPPwiJcnUPKBJf6RFAkdgXKKTxHE_meRu7dVTZhlOvUpCELf6rkEp3NfUFX0yBBPPwVGvKISh4j4k53PFxkt9pf1E5HB1PDOSajqg88TV8tHVEMj5q-3ppRizYyAT8yJwmM9YzXSLUaOf8_c5mlYUzUAWuxfDTADYj8KAQQDpUsELSWdutwFUIlDAtJJwXrEGY27nSFiaIt6UdMrRb3Wb_WJFMgztwoegVFwDqS4XQbySIj5_bXUSYm0toY_P33qvbz0FIVELR6i4q5pD5zR9lGG3tu6y5EgremLEZ1VqW70pk3Eq2_5gULiDIJzuksUTmMjtUfZecuIL2A8guEcb262ozGiSHXhmW5NM1SrMZvRsgEAJRS132zufKqZtuCR9fdlR1oAWcfZVkcuzqR1Znrgr5u-3gE5eXCrAQ3x2ZNh-q-EslZ5E2eKxMo3FVaQLuNGxWhzEdTE6V-NhAhzG5t0ivGBcSzm-ehHdsARbeuc8FRThI92XEJSBRyJIXYDqKCiGcjFVFIFq7gdhdG5shEDzWigBiufPnzvxJmY7aiR12go3M0j8LjNQph8Gjl8M9_Au2Q3zZxCYX-dl-vTPEizXDP6gsjixvIWwx_lGgG1UIU5VTmQPz4SWu53O20HqgdRLMd6KVlNn-1M3Nv3z1pSRzhY4U_XC6ubgxJ2EVMC121x_D23HFUEc1uCE-S8dW_DJjP2puwkkxVOf5-O3SEDW5lcxoLVeww74g9YpoA1hwBzhxLn-4tD92qOE2q2Xr6N3DoHm0Uu1G9Co9uVoITVTIJbTe4TlAa49P3LRPyWper9u0Qopw7ux1eAiJ2VCQu5G_-MIm__3ypcGmz6r2IR_CI_G098Yw4YrcSM8nYM8Mgtu7zpuu6BH2zd2qLGfuBqoghE8LUsFz2wLWZB3pi8R07lLLh-QJ3h4smAwxZSBbSvw3hT-VXGyI1vlktLDKp4p6MGqrCc9nh39WpwL60FWBYFZvx9WD0mwYLsvfA4fGKm68wCVBVpEItDemfVS_NOFTmGDXmb6flmj_VxfTcBIr9rF4Y96aMeaSdqdvSu6yOXs-vH0M-GHwyHTlA3MlH2OqymcIGsmsibvjo7trAOGFGtd6YDpqpVqlfxGTZO5HG024_n6cSNv_GsSPktHaJ2Ea4RpzF_scZuAOs9JRgLWQx5YAbcUe7kJQQxFwHa6YDYSGkAubEwKs_guhDDlkEmfGuOV92gWI5zuh9DnYjPEEEoHZIuc6URheUHOwAEwUOWqw5TZv-Tmz8s6hUTKhHVzelqn2a9lAKu-TlVBMCQkUuRo2p2kpywOHOPtfOSppeLWSSOoiFqYneVGulSK8buIU0wet74f9n3x2i3EDoFJUBrnKdVCWNozn2SUXLfD6Urjmy61KToZANoVezSnxyp644oFVNycSlC3cHMG6Sj8bf87cTTzeqZZ4D-tRVUu1e9tyNGI1wNRYmtx-YVjbCoTbjrbGcrtX1h_rk88nEyMEze6j5HWDRm5HVyu45dduUJDwGYuzw-pRddckq5RO3-ZPBYpblAGBgfkCV_CjrM9KtZlbWnX_N0y5NzpUATV3X6DbI-znw3WECD-mkddMOfk6GmGm4OqsUGFNNtODqHmJDOyiiSrBDNuD281qF_KZVMgNlL8z-D5hC6mQ_uFfZCcyF5V7EEqoZCfloPUPK6mTVL_bTBhhadkXK-JB3IvbnHhm62F69YA03sENsYL-gXbn61LZzmDL_yZwIMXjtc5F7HDcgS29QHA4vyZ4RknBryrMOVIEVYcwqFJxdo-lCUa2Cfb8zJ4TfqpTsc9lP2Iu4veg9k_o6dlaBnSQaMUTvtStlVfsNwTylGt3qyQ7Nnkso0Q241hg45e44UMO48WjwpGaEWUTDEdnKqH0Kj1MaWcn7VB87eGWktcNmWPNLf1n8dQdpCuxdSnP77MY4j4c0cMUzs6SQD-31Fyq49MDAueSNTQ0mvbViDKDXtQgsG2v4iK1GWkUs1eoQYJTwFUvrw931fZ5keK5-ZABFwhFtVvkKt3MsCSxTatl-DbqhHXOSPhUecDcfIGRq1_hKvnAjNabCKY7ABgP4ea8SvbmeeevFgqcbLFYK85hGUq4AswKEK1ggX82lRru6egUlEoKt9c6aIbO73HX9swpDtoXkWW7-E07_3W2HtZwedkQPwJVw7ySLmU2ZngYWkhHyNTOG_7i8ET-bClwUrMPJx_LO5uaTY_TLLkTH5jYnHE_AZuNyBW7ykEURiQoFPiXg9LOk0h28Vc-vAydHcjXn9bfL4E2P9XJgGvWlHL2PbaX-dRvI5KCO9aW0fYWLt9hdh6Bixnl21gDSNYxw5O279a7FiMYkBPEWWyhcCycC8iWSlD0kpv9xzf4MX1-7pUcPk37d-VBrDx6J6SxQxTsm6K4Sxj5tM6zmH3227hxSkbv9nsHKWfjcObCklPAzgyKfUmOOavSuw7TJVOSw_0VsCE2-tqjj6LvWZclSemBq5j0yLc7MVGn6skxOZNHsAUgfSw4XNRuuAOrLfwGKiQ8MHUguj4I8sULVeIN9WiLZpcQw_-IHsWVrS51mKKqbEEomgqgIHj6NktMaD-_47hmKBC4BN_2Np4MH051M4jOSme4Z0dqQYO38CxhByJ3z_XKNQQ2S6lZhczHeIRwz_EGzjyywD53m1pRUUUk7jJZ-TAP0L97TwywaMeGs-A5x7ySPIOZPohkk8Kxka3fhvv6Wkn6d-MeBSUqLiXHHcvRpFifuWdZRmNCNqGNMfErqv5a6TF_-PNtQ2mnRZbY4i_ODoT29muwkZoyvVp_0bDfuGwtgzGCDs_PnozLc_mK_VJ54iNcHy-X-fpIMVaavzV3Cf3QgMnNXKFO1xsIl4y3HWerSE2VWwu0rwLb6aBW5CCxPGYOQCi25dPbbDLxN5M9S3BpnOuyQq84Cl-cacmwgNcLRd6_WYzViRwTBNCudzl0Ot9ce0bSrnNnLcz7uIsw7DbcOxvOTkpLxljPnusQnZjbX3agXazDhXvystOpfPnOsbucMmGw5-dPZ5tjVhToq5mGxZV6QDAAbB7PCuTDuB-9wdyTtMO3fqpJPYPC2yuBTgLMtux-JcGs-3RVeqMxAjPDjCM4f_vv2sAYgxONXVAdsFeYA7UxOJ436WgJSsWN2wfEOILiiddiDg44YNQhGytFmi6Z6sdH8pddBIW2tPTe9jwNWKhNtmpKu8ma_6p9baDHcmyj60QfKyLWaG9KjRrUU8oOb7caUs1Uti3QdnF4YHO5Eal7OLkg2xBwAlw6i2SiPMtkeR1_52IYz9pNTbztP3ON5LC80RSj2FO8QPrCi56eUqL6dZ9C1i8kavcUSqB0LRGt_A4BmSy-fe7sIql-QWzz3JQuQMtO0BhVFd6O-oq4QGxEpTAT9KThrj_rHNNv7puiqDfl3idqrqwpSPwwhMVx0Zck8ZW6ev9DzBzGjvRwwxtg7liVbNdK6GljwAAYQ2XcdDxMOCQgp5eZrm0dBTMyDfA0hWN9HvLQ8N19DGftv3fK_VqaU1F0DvoBrbyo7o48EzbSTxrmoM6edwM2cxGgPTWrM0bIQpDxHmG4pjrmmflJT3Ohst70muCRJ-Y_-cbijMQgj9B_UaQODxJrbpe9JIK89YeFYQ2P7SnKNJlzbewUaFzctSzzG7lOBeHep4ooVmsnFvf6avjnE6opfCmPAgOxeY-_5Q0OecNlTQxHdKLCfgGcprYgkLtLsbIow43u3j-NKCL3sU72RMPTYMrtYW6vr_ip5au17Ytg5kBSj90dpluo3vbWdUep1ePUU6Ft_jR6pD-t6F7f7BbMiqss-nZve7UPQO1hIBZfJksnr-OqmaEL05tMxIFhq5Gp4tORTZ4z1jLgfd00SOjfC8Mve6AO6h8mkg_E-KVM53nFiGrIYNjYSfWhmCq_qafTVgXw7yTI9dxmiWhcg_rgSU7lSsDGBYTHctyN0-3VWZ4Hlc8zMbpxr2MCtahoecIuKCORKJq0QIxXg7Cq5ljD3MZgGRTXUOyb6YBB33y0wpPmK1shjd7tQFJxZhydQC-DfiFnmSFLiiLUh9QpLUNGNx3PWuitoF_FyH038-i7taAarCM58OS0eRg3avR0mIzOiPQYMkVyR090UC_wZMIhZEKyJauiFMnvSJUUGqT7HPUWiXZ58faJ-yf3J6omi90MBsXUiaBDhGHhUTLPjbX4oXVi9KeWRes3es1hvQbg_JQn13czebifGtDhaP_Wo3vlqesrPvpMp9GGqW7SMWRvf9vKOIDeCpIprL-gwE5NTrNwdGcUbTxh1-sNTbQs7LejNAF5BqcGmQX9JSvpd5fePC7pMMiXp218Xdc-_yqBaePJeU_OujYG1ObHNJwSgfxe3hGEsz0qstgOHOx8gMc6UwUSDp8bYyuC7jSG1M1zSiDA0x1zoCTq1wjWz3dcBrQY2ziKvj-jkANqhKyH75Gd-QOwnSXULLgXyiqpTdAWICWHrwPBlVWquEbFckLE_NRqm0DxxPMoa9BXUXU-Gy_5bChR3grM6f0oMkpVCXvFYiOpd0HQNXIX-hIVz11VzqzF0JtmiVjSSiwXgJVz3hqQAamZq2O1jdRnzwmwyXIKcn-kpY5thjYon7USIJgerlC13w2pQVzqF1UHf4yXwQ2WMLttiL4S5ZiNRV42z_URuUmPCGXS1S3gz_qgfVX3iSNdTGB-X0y47HVx0xAeWyEUOtMKOSaGlOk8Juh1oavSTxWN4OlNzPY6u8j6O-t7l0kJoSX7Zwy-eUEQ5FQTJszqy61xLWS7BncdVNVoEAD-Zfg16FA5pytskxTQKmsSpw1Z5SKp8QqVtxlpuaAQ9VEpMiCyAotbYlR2gJvE7EOZg1_K-gqwWko6BBYf0eRZPFmmdd7TP_WIK8fmo4dpfiyG-RIriKr2hVgYviXXc0NW28BGsUxHN1y2X9DqyHs9g9XlNjQPSAr9fsfoq49iara0GDdU3VTlgWOehANhzKYg6dB3UpqL4QGC0QWiiY_2rgmrGONG2Bdmd6b8nOsgHTF71vMo-ZCKe8Vvi2kdZs40XczwLrfqaD1rsNhFekSvl4eKF2STj44kNHUbpwrUPjGj8oRDyOShbLaBlNJRibvQ8eFOGEk3fYnAQu2LU0965wBPMBv6L1lgzit0E6yAX1j60u1_EkxULj3cAfDrM3z9eTVp0A1QYTN93BXm9VB1ib2U0z5Av0a0NMyVDLf1CRfaEmwQKEpGKPh555KUQanEbAWC7ZCKieIYAuURcRYDT4yvtwg1niSmCcIxyPxeABKEqVDd3b0oU8gbEpuxoocz_Z4mYFPqZQYxr9SNOXJodgy1l89-JH0QrMPtSxsxMzVIhnOWHrzubeVPDfiyTMZ7Hk1-4y83Kwu5YFtNZLQJrLZ6Hq7n1jkHhDDi4JGONJ5yXgoLLvJVfUh0ZEIIvxmL_MzLJiV0OBSH3vRNpGxfrGZBs6r4IEeA425HpObdt6L4xaMEIP_ofEBpobPgzH3pUEAQ_XS48GJ4FI-oIbv-8IObSC4Qq11KP2qZv-o7hMryDadjvlaqropohYaek5gANpWFYLoNY1bc--466ZyL-SGr86rqnwicXzV4ipbgBUjd-pHxORGk9Me86gyAqoh1GQO1E05mnzXtbjiME2UAyC_SjG5HQC8Yyg7m77O6yIxoIWLWFSSh6dKzPzy_Xs2te8vHXJ3MIFaXtL2LNsutKnzIx6WE-8yN3M9yFQicLa43FKKF1i7GjwvjJGATLxySYsiDDltfpUU4a2Ea7W9keioy1D7a-FddGGJysq9X4cOGN-4tclnB4PqVULd0B3ZsmKN4QktYL_Am_I9Q16Ew89lFu8IPB1N9G7CVbakvF6Uc0TueWxxSDa759lX-MuHLlL1OMTrRwD0gud32w91P_xvjL92kbko52tsVMkXghJXVeCQvmf89P0ADWF_6B7vUS3thk_oMmV-yxwGdFudnuQQelZZLaw2i4Yg0AQBGCJl65gxFVCwPmcbLkWfv490pdRVp2-V-oEPzrUzDpblhXPInrFL3TPWiyoMlBJzKQ4HqW9rVa_WcpX--s5Hi6kuUMwaZUBJooSIXqBUZOnVOM2bPFZ76btjGwhfpRHiWJRqkBGqaim4zbdhCo11li4n58ob-RwyLE85FP1UabUZ8H-AzzTTPT-4lEYQCRIPFIaUnN6XuMRjB0Qb8DqT8PgJJopz8JxkuSZhU8mRd6AAAEXhbbxUxX5fEFJFr-DUhjWV3c0HWK-y4re4vRiRLg0o3aOBoYZIs4g48V1b9gkS5qwTW0GuFxUbHHshwWWcVnNILpRevgDykP3pxb9Fhuy-ASjxF8aT_Nuas6joSgEg2jDcraZS7HHa4s8kHbPQ9Nw7aa8NerA-fRuSJK2MagcXqqUr9y8TNaUmoB4WwRgVx2OibHbdawdRg9sVcAkO9lht5MBqZHL1Vbet7VeXW0QBG_g1nLtQH5GXDUsrcvhJIJCXHkBIBHSjNUqu1WR-s5hfLHxz7ORYIf58HXiKqRPCgLAbfaEDTNxiw5NSk1sctny1-chH_WcvtvIvKnfH2kB2rmB34JZvMvr0Yz8EtroVp9vCB-2QLMb_3_9a4Vkyjy8BPpJ-go8I8l9CgYK0mI4i4lwXuRIGPH_fR8N0vOQ1yM91i406YJj4oAw-L3HwLX7gs1vuV2iX7A8-FPfa6MZ69HUE1H3CWxrIck_ckaE4ka4XGn_Q06q93-vJmkRu6FMocUmWL0e_UhtYb98yUBQbemqU55UtqesfW-NmyjY7nVzmCq11F0m-IBZtN5d7vj3OmIIbQWZW_MXloDpByn3CWHM_6OBBenDMMF53s8TyTgdWiHYCCbzdZDfwZgDx_wEoOMfFRSwGnQBrdopske5qx9yrpho3I5b6dWpPBqTn1R_EkDVr_oL09fdeUKIvrksm9Ewrey8nmjEZ9HB7cfrBxLLFxHpPJl03BV6Q5tLUQu7Qu1j30ZrFSTONTF4bN5fLpxnZu7bUB9CzT7FriBsboOaTJdl49kLfgd3psXK7NvGcQSsczX3qwHfszq22O6PWF3zrWqwJc3sEzDkGKamRabZFdAIX_I5LUZYboJzz3Vb2tkU2BHGBkKzoLRn1wkMZ5BPCAgfGiV6jG6XtKriN15_oNGbW2mhJNnNQ1IY8JqPwXRWxXX4KRxnd5Y0nVgks5NbhfYaLoxlTQiN9XSBk2Zc79NNeDLDyh86W3J5CfgdBT2W_Zkm8pohFXW0yv_OMziad0b1qmbbwuy_S1U69Fxi9vrdFEYYs5qNl7G2GcSJhGnmWMxrAD5e4QKTihY5W8rRvpU-N7cZ6qDuk4r6AKS9gSu3oO62ZAZ2_5BkITRLHjIqkqfxMxUz1PD3XaFHH4cMQAXlkhW88C-1qUSH_nND-bNZCHKjUUI2ErCSlwBxysBhUvAWdvLhcTZN-hllscE-H-uNxqyn_n_9p46Gz1uIwpIpY9q5hZg-zI6hTnHiG-AAlZ7S9yqeFEI6tQRCkxEVaYaS4WlktwkjgCB_I3m0Ts6Fo6xuZwTLQVGn_KVfa1D2CAuNcCZBY1PiqgftyuVocDZsCa3JSRxSK9YlxLd_tYdRY28L1oV0-p7XSXxTja7wJjMz5n3n3qh2BqqEMFg9Ygvc5Nng7lL8prhtY6auU36bjROZgGbbviiLUfdcn9UWdKmbrrlzyLbnfkTID4fWZu1B7cbO1c1xiVoKP0eACAuJ5FXqkhVGmw0SfupkRWm5RYg31QpYKy8bwveecBGuQkKuNwAXP6lNM2I720ZLbcGfSH2VkqJ9CYLyL_zDGnrqkPgqGixW5-bVkJ-M3bLIHwtX8nftFTldqENi1vEv3hsdUUJ4IU1C-MUo-CG_ojVdUtmn7srXLyJthVS4RZtO28Wm2G68RM8CIxSq7mGyOji5x-f0eiVCYY4FIMGYNt7whI2Wz87ztMvbW6cx6u7vum7DaxJMwsyjhRIxbNw9mAV29ITRb_rKNqhk0tpUykldh9-QiwkczdLrneWUT3KFXezZti020GVjQ3MynJJivk0tcdUOvukw-0lpOMKCjipwOk-3sPtOSPNj3qIMz6zAE_uXFxOkNPpN7boTzv47QCCX8Ru21S9tzLcdci0SQh5LHSBbWfSUaG6xkBKAYflFS4uEVOczUSRXac_3ybhhOEv_CW778erjAcsahIZubcDU3bF-l7J8BIpRXPLjeGV5i09Pgp7GVFg8eBBR1GPEGXtzUHdwVvxlT5t3F0NH5qJ8WcRTVNJuYupXd5l_xSzQoglZzfnaEe3b9yPC3ho8Y0uMM2bJiNVUHTc9nmdSrSxFPyYdQgqXYFC4yJt4kYdDvzKtrvSo40pNFL0uXsh7LP46pjz0PFFNysoQQr7eivTHIJj0tsYC3d1rdCw4XgAJY76lpxo64Zo6ACBKo5m6qOBf29Gxxpkzr4diVC998az4rlLcCPIUUEKzeT-OHZquOUvXKZY3BVUwi4ID2jJUquWPG7mIW6EmUGaenoeg0VYcLbuOAoPbagUd6rfIOV347wD6OlGLnVMKjBnKNORNAo_7WpJQ89AK8Mp4LY4CBidgA29dPue2sOC8ymZnxgiR-aP_kp-XxbIC7ojFpXnC8zCkTuUMGmQJCoUWxKDXMfHUgNxLsapTYzRVAf7rTB1XovpALvXrrCs3LmV9KfEWqNX5-PTax6IUDUSafATwznM-DqxUq-QkNVy6yJjJZ8wMqUvFre3C_dNSTyze_hN76MDShWaiil6ZZckedztKRdpqex-7DWcD2xaO2yxRhh9BC8h0bt7jHzqWLFAL76L1Smc9FWzkbaT1OTdsDCqRN6SV0GmwPJSB0R0JucVg9W3smwNWBL7jaOtIvVNGSdcLV2ztjzdO_4oEAbXtinEegrqun-oT6FFp-cu-4eLfCnDtigbjl6eXNggdIEeoHk-AUcGQDJU1kXHOhf_RVZWTzVOD0GmATmXn-xlu861gC2zLu1CMtLfI_KGjaIIT_FF173Y5SypB1teXiD6z6I7fhGjgaWtecLiRiqH0a9PKFfgS9BRFZic4dQnFk6M7RzR19mrnUltdDv3a3q9_n2mBPl0bayTIVIouyIP2vFemmI2cJ7JWaGT3U7pjcEIcPXIwR4reYKH56g6r00sa1WjvQaPwBVs6bO77tFTaR0I0gJTbZvoe4Hktmr8bFQg9QopDKnu7vwDXuDAEImgOOIXxENNSLc11Yc74j3a10wo2q9nIn8o1KddmEyBXBj7gXrjU60TX5PkVHnq1asI2AND4yzIdttfHou0m2o9J0Y1JMpG9pM7SB3yIi0DiJNLJ7HtX2u1MNpibigJPjtp1krgkLETleppYkYPPXdgM_UbEmaucEZc_lT569WN5XrjK45u027ShPnALRJwSfSYBd5CuJ9DMhdDOcvZfXybisNnApjfGVvcsybfwcZze8jLfOn_oPws2hG45SEO8uxhD--dXNYtFxZqUfVlR1OJbPYOeb5H1gd6Squv9XPHPcCviIELqW32u8R2qrNYrZ88snVkkAxjk4XNSlNIZriE0Hk2naz_V4HNDjI-XkcCh-nQ8o3Xf_MGhsgQNpE-cWPWSQISQl1xu_heGl1X3LvYHPiSigv4ovVh-VIbFvPO8ZcacBBA_8KaasZx0IPlGzouuxPH21Jc5K2mH8hofLtDOjA_ZdozeyfDhnH4Vjm4Rst2NQebYpK2db5CIjNWwsMKCJRnpmdrfG0fzl0cDJIrYngJU71B4mllnxtcakWXO48HreWWjnHNA8i1GWedFZ9yKksNetlC17eYmuz-4neBITnGyMUFWT3kq6h1AatS9N_M9b9Dk0KcXlYcGtXAYJGV6_aJwvCeNVc36diC72hYRetyTu2g_ZzRwyojzDnhmYQTYJMDSd1RL9IAd5HkOSGkkvTZBfawP0Lo7qjXaDHlX4M4fh2f0AREw0ARhyoPO9N4MvUCwAe3_JhiHlzrFi4oH5AceqYkJaE5Q7jZGBxxi2ibJOGiSK3dP46eaJwvNTRfCLaraqKph6WK7P-ZdHQnn4G3u-IfizOxiVyrLcA-t4mXnyVs7OVuoFr7IvMRFVgHTG7Jie-4BwZYEW4bYZ_d200-8suCk0UWPAru2rxqqzSgJPq7xBSoh1AnZYWLSeT-1gu6sGF8ykQe6oaPaeD-SRlNUiwX8PR6B4Qw4bkAp0t8OsI27H5F18vpXS-V0FhHNNEPDi9_HLq5Tlj_XfEi2WF5eUwgz_VxgYobOFzB-TWVKgZnIIbLdyjoGM-uvQgJWYlLiZ1YkmgkuErqdy-RBlO6kVyscMcSsMND1t1MTgND_xTPHZMjrVJbkPaVwQ0Jn_vla1YCU-JT8y4oTEDQQJheJMULN9_LtN5efrq0jVmTwOz_hwV3nAu0_DDOxA0g7xyfJDO4Rj0fEwbYK1Rh--HK77ShR2FpVBVpzmsmnxW7AlC9krYL8XkvxsTYI-VZeoQsk5bFgIlYT5HZEruvn_pXEzIfzuEQ9BBfEU8c9F_0F5PLbb21NS1Hydr5LEdvqQojOoAUVhPKKuMBEXb4KsvUOGuRFPXEHqevzbYfO5ESu45v8AtCkXqc-dTht0SGRwwwGAPpu_JWWZlKc_ANK67H9lMYc-pmRxZ_IXzb4ZwwCQ2d4zL5Ie0DC02YXsJ62QEHsPxPMknvU-1VIe7QMJPeXWXHSE82Zxcbm5r3byshpWm5OGY0mWmBhiCFRTKpFYzrB8oFx03Nd0gEgAoZJfxfIbKu4qjpujMtAyhgjwn-50ChAv2mb0b_Q8irufVK5gv_Z4kTN7YjckRIn6oPfDLUbkaUT5QhDEwccwvCkDXhQtZ8p2Rb0Aq_ghR9U-VaCNdOOwWR8kMqeLmfo0KKAV6sYLTiT8pPMA0JLQxNRwMsC4OOVqYdmU2pb4kfOEY7bVbfQsmkbP-0YhgZgEhcd64fdvHNvT3UzEMm5DhcA36Mn5x53n6ZT_OpgP4ta7VTnS29ThMA1C1ftr4hpadIjW5FZQLbHoFOY9lTJ2kSik4XQi31TMrPlhFutdwG6zYNI38RzXy_hAJJImv3DXFFxpzR3MnlhSxcS6PUd_PJj0s02ChLl03R-NZfSB9BbW-e9YOQGxOvz8RBGI9y6nQSVKiPL9K2FsXlTbjhSj6RGzA4n87fcf6CSA0GvGF6JmDTmf21c1PZ-UTPCzqX4NabPcdh6b3Z9ekxLZE6fIfQCCPFbtSpyd58Xo6dXCITKIQosrPRp9ljgM0ELOfR5rs-D7UD9Ff8NhVyN9pXSPd0tqt3E4jvYIsdtjF60DdAqz2HTAUBfh6B8GnSpppQe23j-tkSmgAx904g67yIJBdF4etlNto6aGywBNOD1ZIenrtlCJERlrXwGhu3fPxcujQTgKiWF1P6hv62j1E-uisQBhDdnWPAJJ8924WNw55G1nADhw_lGOuxbttHrmoH40pY5czGOzFoJbG6ozFEqnldoSlhyDsu98VnFOmQciwh-mrhjNu2zmASZPqdbS4WS3CDDfCQx56H7poekbRst0-YsklizdsiOMov8IfCzw3o9yY_b_IPPPnwQaambD88XavhEX0c2xVB5NE-YI15Xn2EhnjFlE2HBuOIDi2Iola0mDrTzknXT_FDQ9z21RzH-hi2WU41qmSVDArxYMsyaIoP9DcDR6obSADOl1Jhc5bQdDHTQ4QTnG6cmX4Z9emm0MfiDraji6M5tenF4KlLus9rKW18gPgnoTZJ57SG47Q7jMpVAcRByRqbj7KyZMaCaOOIXY6hCPEsRGoOjLie1Pmto-ZDpjDMZPs_c4dtOUOHIbMWgLNGL-fLwgxBSvC1wfy8o17ZHh5iSD_1Y_pKeC8I2KsUEr1Jjdp0nG2HoLErGOlU3eqRHWl_1tsNd_qeB7cHYoITp1JZiB4cObxFh9-xa4JGzyLl_zeHh44QLvz4lCSf1waLl-6SpPiGr7ztjOEU6RXitFjyXgvdr0CDEsZUwuycj9mOjFFNMeWsJp43wVf__7qkPY2jh0ea4R4yWoGbusK3MyYTtSqt7eX6-6PxOa6hat8q4gQ1B8BPpjnnHY1U8guHRsFJbRQX0DmJ_D0IwPHRENQByU053CZQuCWc3VW56YfiVN5_3GzeYSb63j3HGr4XbC-h3kgtH_SXwAbCutvTZYt7TOkC0tFH7hR_jGzKw5kKl6DtjkRuKilFUrP-VpOsZMJHmzjuDjrXZvJMLaz2xn1Jgtk_l550r9jIWmhNwfEpFezcOa1ml4MB3_twXvIi1V33-k8fP-trdUPYoXZAJUtWlrWP2t5bNJMoMoTCCxN9SGySM00uf19CSJlFx57B63FDzPnkZgTrCcXQloDH1hvBewJMNslsRJyGi7i1KxwG5BivqpQhx0tcEZXV0IB8tDR1Da1ScjfvURQGuiEHRnXRBHQ-N95oPsXDN_TpYqsyrquPW4AFF2n68XmSExhfl8KOeMv3NGHewH4TtP3hlEMy3ulvQ2OvlK9V2pLhwZHx2ChixC6zYrYkA3ChpuGJKhizZuprFl8poaxsZQfuXLdAKbEuHbgC2t2GcM7BUvxWH9ph474CB1MAnT5GU3ctrw2iu6auRh2NW_IBRROkk62jIeHbFWPZWUQ5fxRRXENS4hGNvTQEC71xA7WX_03t73th74F4rbxTI-6xlgUz7PNs3KrGNzgZf4h5A2numtanz37rxeGn8qmmRUMjXFakPDTUgTpqV1FhqxjP5IK9gLTJI9G923m4XqVVF7suD9iCev6qDdDxa1PgrNL6ZccBi_Pt0ze7SpTH__Ra3hp7RglPys8ExtsdE0NywQoAcDlSRLFGUJBeLI02_ZU937baOrAi9aumrrFY9cLTnhLUfKiJy5JJPLpNrLzjaDOrF-zzkb4Ax-fan3LtYQguuzj9s_B-R2RaNwG1ZJHpyYJO9j3YT6qHAX3obX6r-sEFxONh9XXtN9Ww5gP3gBGra-QBscZodMOHgpPrfeDtS_18ujiTk4ocZXGCJO11xIHuxU0mN8AXyzjHwnhlInBAOEW4vJk7offwWCXCmfgNzhtZITUT5iF_M-VVv0yqnobxNFMmvfgxLvVzgbppAbm5J0VxpO4QqTSWy7ZxLJ89pvB5rSi9DUw5KUxsixQdKwYpGLKuL2TAsAQjFWlaBhXZjhH6fzt7IxAdZGq4bc7jBS6X8x8xwGjY8kV58-Esqw_b8ln4TwXOSVbLAf33UMNlyMR37VOfrKeV3TBG3eMJtxXXqp5LyRlVmjtg2wpYnFtU81tfA6wwatGriQGnTiIxm9TDZo9QGmTlMq1LbVHLXDR0Fnj-cMGyAPa-HiHEcWB7trujY9H2Ov-UPMlZ-H5ZwJTX2AV3PoCja5f4K34DAKGAyc_nXw_DH7u-IICGLlluVvnDBapVu6gBVoCeqhHLAkGJuZlQfAX1jwuU9-u8ZxtF5BDaGagPWA5TqiDlbJsKfzrCdPNIJtGOBdr3RD6UiHcDaT0tP19soLr-Qg2uMQxWlJtHzxSkA0DLk8CVii5IeM7e1MVj1fqaduLD9DPV9xAlyL861Rq0ySfVtYJkLEcu17xwwB8TUJyFLU9MPsYc5TeFSmsKgH7L2YUzpoCnifiV78DNzVABNzhYXzUkOrGbjPumGbBc3cKZiVibMp0bXlFD2P31Wp-jKWFdJ34CQGPN3NQ5fk1FFQ0ziJ3tcSdHw1F53DIKXaMXhNAEx228mBGjtX6xHE72Pn7a_-hXAoy5bdlv8taxNg6cXw1ZZMRLH6yIQvSHkA5iFCs1V58G1pZWOeiX7fOD7d6a58x-8pFUP24gpp3oTwmtbb8j-jZmLDkDG4-w0ljwoVQruYhMj-I3UQPeOnEoruJ1pXErAX2ndqcqCY9wg6APdcWQf1RGAxsyNQqUNPwDv1oJtS8-SFAKoduupcfhGz0OApzuFMA3qyzW9eUqKRkOfhejGXsoyMjkNpoYm3FyzbkeXTuK0Ae90xgkaRkVcxS777mRquN-Sy2uYuNY8Nrs1wXfk-KeH93ebjsVSe3ZFs3mhpGqU3AMwtNwMyQ3e1xTuYS3Vey-8a4g5VvuRDfA78MI9jByAS4YW4uCz3By_qWA2_Myrh9l7fIB6uOfcQ6V2x68SEBfY3xaFZi4r9Y0LgBXAnGj0319SI40xiNxdUx2rZUBRuyeCs4Z7cVfRVEdjVcJPpl-pCS1Auvq4HU5xua97bTxyDNd50QMrLDLrWQxXJO8TQzkKSCFOqi0EKJnf8oaz_lnfjSuDSqFb0gtW4FQjujJ5bX6NFMGgnRlV3cxrl6e9rEN6k-GmJItIJMI-8tIQgfC82DIUVyru_BkIkZF7xu9tj0VdeytUmHfAzpq1jj2-j0_0goB9WO1Q7-TEtR2TVcIgMlKMrbkc9_XOxyd_haTZkFdedbSeBGeonKaenWgoOTnNs3igX34wW1Qc4CYvpGggsGuiJtOpVgsUKgQwVFH2AhlTLZjBGaG06kIL7ZrrLdvvH81ZoPN9eP9spgOeVTy0GRGUOFgXLN0vNsqugsuOaUqAz6hIHHdTTJgSo9BonP7lpD46IygAzA-cawR2oXNd9grZGJldYKjSgPw_VUNBExAZU_iugviRJ0Rw2LR9-0YKU0VtXLXkh3Ha6SUEGGQUMl-SgYi90JeDgHau66vNoreU8Z_pzQNSO-dzO_xwE4bXn7gxjVWEuGmH9qYsyICXvzhLR2nzHAgvb4cNBVbPJ3liPZwbFTGhEZLC0doPLFMVQemKq0ITKjrl0tVZVIbXJjILfiSNHxVxnUioyYgF9eNuIJ5PgjPxqYq418MCSIcZJCTxE6G_L8De7CyMG586LMAULEOtI6E1Ir1GIbgEJsY8BbX13UX61CD81xvFi7v4m_CxrMI1aQN03eXbgorshZ2JWJhYOFONjj5WTlXfdFqwzkECH61QJQAuNttNmf5KlFubSow6v9NuZ0PZ8TioUDFLJNiHRAvcP-p81cSquQQ9R3TwnwRlIhxKrJiibfb8GKdho84rYAOGCtG9SDluWQ4ybirSfsvEgCby7A9gExKyB_Rtf-g2KumxSO2pUWVvTDfC2_Gb9PWHGKM_OIb11dTZYtqnLvUFte1S0nDeL35Ip95s8XpkGX2kf8zxka0AP1PbTCgBckE4WM65soKIq7VlCnUTrEjtwJPWmnRTcieDkPIl-T8CPCu1OEfutc3ZABCnQ5zwp5-Nvc4goWbUOH91qrXcsgZ9E72uXw8SJfJqT-MAeoW1TTdbA20Fv7c6cGOmoc1jDB45WNJkJqOjBtV1_sWdc7FM1GDOduqDNGtecM8wGR9mj1nYmiDA8si6tLkrWQ6MBzwmeaAtX5miQuA3RNbFOppB84bu_cXhig4hKme52_VtFk8LWuwQN_Gtrd-WVZVq9IHe6E195YLjXC0SNwcP785DvRe1SBT7w0km3O7QKMC_0xX1vCERBAEdp8rCnaSr6ddF1hErlwYMd3qr3zz4X5pTBa6FJ6PkrqYToZ8_LOuuEYWCA9GW_qRdGS07yHwFnswSccZwYEm_uXuw3j-WJYJkEG_ugaQyFT3La7o6vQ5gfQK6ah3VduclvE14BikPfs19C5qZmHZWyk_4QxyW06MYML1pUxAprQiBFXH2Jl7crdf_DYm9jUX4j3lxL13Org-3b7z_F7yu-hMuQ6kaOG9FXBG4c42vJ0-BhLNTtFdhwTLjAAgdNtxa5V-61ppY7hMzqZWVxZAVgDFW8qdtxJCUfG2eI78gRQzJhSwz97WAnppsa2kZx1-63eEEt8JDnBCL2BbFj7iEzomtdd2Gc9SdOfGGpI_ooGIyS045niQilQhBujyzdhIIolX8r542aFhdxvW1rniXeg1mtA7Dt25aifCgfxPsoNTDBxLSGCP2Y9Sn5MDkesKDH8d0rOwvw2TIeEmx0M2gXYK5FBX8CuT9XdnrPuNHBmW6nvZP3zC9j_X4br0uNqNBnehKj8weqdsO1wWKxKmADBegg8s1m8uTBrVgoKbAGLI-BFPUxxkOXthjCZOK2quq1zh9m5JKj1j6jSEljotBaE2k0YBpfBuh8zTwPto3VUKCRyKUdHrZLkWP8p6xilOqxbSMcMsOl-jx7ruZPlkmhiN9pU8vlZzj1NyswXJzLOxbUKICXeiNx49FdxOR_CEeCuLY7kV0tAO552HK7TxkJrbJg3Fjgq4YqiDde7_s0Our-FxU-KRFn570RGNwgg9uaLvH39ne6_RfRH6Ki3BawS4uejTF1kmpagdChS_7CdwS_E0FMQ1-UkPF92wadJno0Yp8ISGn8k2_YXPSH1_Jmo5Sy-KWlq88tUMyo3rHy83d3BcXWXwgb_iVTI2S6t-zsILNREijVexVgaNFDELQtFgntAx1R0AQSk8sg88PYwZ7gzsIMuz3HK2CIJs2cahzz7NLpzKy_yiuXoOTd6-j780TbcK1k0v3AvVSQXUHtq-8_v-YdsoUJxbsuT2Yq-cz3TcIXPPDBiXuxFKTAlp4JI4kLh3wSDWr_KroKmmuTg832eQvfaTJxbFS32U_Wji-qZ48Ix7xUmcP__YstJj1L9FsF_x09kRKVZA5dG8_HP8nQutXc76NJA2mKjYx_UnNzjKs8rNClMv90SGNVI5s7DhOLVX5u_V2O4TUxBgSnnZjDIz38IAZiDdxvjeA5aeV_MuokwdTzo0q21M1SAE90C_EfQzSY1hEvR49chfihowzt7YffNlC8X_HugAcAdH6dOoJsQwn2-FD_acreWcMy2VBRNbmh65mgbwXMu3USEBHIQ6_X-3HiyP9GULTQqH66dHme23OImLQ0j72x-74VesoB2q9YLiK2vr0c1LZEIXCugd1WSaBQ76AzkIc9y0nu5CrSgGxz9_0SmNyh7fGTtey4Y3x4lbkowYrLf3n78GLni0WJtAmhsjGx_k8WRCHoK-lRQA08J2A4LBaEh8L_y0N_E7PAYgfK1BtpiM11qjBfxm9EUQ0wtfDoKtNtzpbCs8izPQoZ8qXUe9RMPOdc2NomO70CBIdy4RZRuEwIbV6xQRO0zeo5450pFSBkmJJxSsh9VGgYrUhnkuQgXUSsN5ijWsg5Zt2tYofyA-C4zmXUr1EwHHsZlwx_yNayid3S-_KY3buSlpvUdgWiShaUf773YBWPygNJ9yOH8FqPFqoyVXCwPSDCVPOZ6N7FLk3Oo54j7lOyi254MrsYYKALBaw7eLj7XdnzZLpRP5Qaf--sQFLZX1tARWjL9w0A0LKrPmoaZn1nNvd7GkFTTDuS09l7Ugo-AqbeC0jsz6LtzmRMpyk8F6lCdXozhBSs_NUW4GsF43sgBXMA9gIkwCAms236-Q8NzkOkupklAQDcInWZkt7HuLSsTyG45NQuOPA00DejEcmJwC707UuuSk0dJkEKQS5JEnnCvHZUkoMlu4pF6olHvO-YXA79vxdcH4_A5yEWWr9dW-yZlBMiSMWPCin3MiuA_ZwRYTzfnlmJ5fFMjZNbsP1bkFuwTxDw5BtAh52GX_erQb1R4JAjdWFOsTAKJoLHdJNNKqlc92AhG5ORiYl2_tf_k9BceuIbrMlJ2RVUy9Sq7JKypsshE6rWw2aPFpIWsIiuqfZyrgkZv_g-gt2vT5EqqV_8KB6p82mJb-dIy4JFVTyYN6HrzcQqEyY2zzrVaxt6wcMCKAXqI4MOuPmP0Cw0Uaa7M5hDA_mNFqkQkA6grofMNnX_zpFABEFDSnTD4WFfqsJD_yMHHiPdae2vI9vprcdLiHjOGnJ5urNOL4lPcpJh8MCuijTv-AB3o-jUZfSwZVLZ8LrfclBlxuwD_HerVnWyzvIKtK2dRclbPx2AQQTYwiZafHAYxPB4GQMR0M7UHdksCRp8ZfXEztjYNQeqcdar-7cfKD-smYPU0tIfNyaKfztAA_kXB2cfGLAGZDVynoON55O44SSEEvcmURaLfte21DJBLm6me6Nhdu5qes9Vm_-HnifOjtga_MF0Cgb9NE778lL00hKmHxoLcqRU7O4PoYGO8tcLEdWIIFyKqSJ88wJITKzYzfrbodkKg2Q_gQicfBzkQo36qcHLDSS0g2S_MU9LEpQk_2rX2gtUTdi3O-eQQoVw4PUqBncMFLMAnkC6Tk7FFUuS86yslZWphDrLOM6aWDEWWc5GoQwPVSWU9p5zU3fJ5wYerQiwwXfM_9C9BhrsKk1OIPn49uETcmZYXYoDD_sMm2ZO7nJB7CO8wxMO4SyUQMQMCeBhmAvCfY6qKAN-2Y4Osr2Pjjmuaeur9UkVc4AdkWkWS1y06MbUYWmKbYMwONNSOB1KaApxjyIkCJ4_nyQOTGuyNje6HofsNCrSXKtPeMR6L0nWBE-odOB9subgdrOIChbpxEZC8F5uQ94rDRLlAc45R_8UsCvm5F-9AsbS-k-adAnwydbqbjUxOlGUS8RN0qTfdRhb8PNngnO58AxJJDZtO-xyQbM_jtzQLW6Mpe18JTItZ7sTutam41ejmidRqM7FNEklpKPlbP9Azwg8mHaxAet5JQ67rVdN8uBJ4A-vkH3MNYlka1oN4qMfb9RWA0DkYr1qVmQ39jIDK7UQ3NVSh4arLIbMbTYrowyZ-9eWHsi3S5Grs0LrAUKZHGiID2MvwcaalY1jbXP87xaYTgPix9mvHz3Re4EkViAesmvX3G8z3qhFmHYAiJ2IryjcrPFdXd1jqkokmu1SbJC2gdTFf5tMspsSbXE7ZvTM_AHoV1Nj79Mfp6oOv2s-3R6nOTuvbhikDFgCXraEpI8LSCbk3dqJSoPnlX_oFQErzxmEl4REZcFBaLFLCD0wQYYTuzbQhBGsKXKbWfyN8AIcxjVKpna4PwClI0v_yPf1eFt6yV5WsF0xvGCAel-xOQwhr-mWdG6bP-dk4FXbXbjb9Q8Vj1HxCMGWQuP3gXZUn7tuM4RVeHzAj66eLnR39bRg0VbnlR0-GVR9BBbpUv9QnQUtkdpkBVJVA2liUoFiLERmz-cQOL8f1h4bDn0V55srJYfcU_HBGWJTwXI0YKw2xOE5OmXqz5VZrL_b3PkawyBZXWHaQTT4SJfZNszIbAYqt4A2N8uzDyyQ3OcaJECYsOWcZWMjZZ2Fp2ILNYO3GK__5jw5QU4d_GesCDbfBUWlGVfiF2X06tZKKovd9pkrsXof95Aj5ddgnzw6QW1MKSb5pRnYRkHbzSs71DblnFnd3hpkBrxEL2ytDB0AIuh99IiqfVpa_OjiQTjEAzQdL2lfVOdwCICeR925mCqYtjLS7vcN35NlyApZ8UzAZu6BdpOwfSL0MIZhtR69mPuIGIEzjOzeAZirM2inGSOvw_87LchbLt7117TkT2i_kAprjQ8C_2aiCjWdXInIb9qQGyl-SZjsW9wsz0qF-G3T5AmtJWShpIcrFnH0TDoELkGtqRY1J3HOag_jaIlH2cQRUmoxp5ZumNMYJrWu3HP2F4Fb9f0dAP7BZQ7JigqUf0zjFJ6Y-970u83NOEdHQn1YYyO8ZprXnhSVAZgzs0iOAH_TXDOgUTCkwxu81XZD9CjjU060srVPqHW24pLCX4d0HqTKHDEraME_hY93WebQJlKrTKYv_CiAJMZsDGBN3O8JXYlenPymebVqA7LhtB05R-UVrPUtKky717KtOKswIJPGig2_ak8wCNP0mQw01kwDg2DYTsT4ci5yHM866hD4Mca5dXWy9j6W-kwCN63VpBUaHVP-YAWjveaR7DrwnZitYXEB0z06qA9g4hr4iLuUJKIAeUCxsAo73yihTYBZ9hzD-JU7-LdgWVFapambSw5F-zKftaWbFgW_NNklJqWv5vefTl_Z3CZ_yDsQVqM_XBKCG5KySEGaXOpgBGNeeDXGFLrxHM-ZUE7Zve9IRaofAgs9dJ5TtloeUMK6F3kKASTLa8s8NMKT2g9gCzxzEc2zXZXPTvAsVUb48Q3dQRXQDVS60Ki4LdDOKt5e1aPyxAtiETnte7Z73h8KyjrlY6luNsWdtPJAR1Bg5bOF6-GmRpo_qIDiXJxTNu2MsDHwRXPPkuRFw55e7l2u88tgERM9eIzNSI3u6h76Qf_zc93dsZJssF6E6lPvWzJQehDwcswmxm0y867GOOfdW5YH2ulq-KHg8vhTnx9CGjinlw3WhThxYzPHqG53t5tT9HzRT-rPlvlzaMmTAAgnpLpg678S59xNPthkpWzcwMlz11emPig4cbNdW6CbsKyDKE4NZmAdmUUT4dfGNSyPdKJXqYn5KsTSBKMjFA0wVNjLWe0BbjAz5a1WW0uhYFkiZOW_gC1Jm607P427QaQfQ3sAmahWww1q5ofku8CquPjH8BEOnxLD7ktUa4rjkDsodM0vr9g5ULEYAWQ3TPFHe5mEvir_PTfafJOksJ-NDi5n_cg2P5OFisgOAHK58xxDycavbEwFS7tV3AxVizmx29Ut7tInHOHkYs5s6clCOY090pxMEenKTGEu2Fn8VB_hEdi5aR0NKP1ml0RPH1YNYTlVhRd1wO1fOXWzS-ISre6NWUUwe0ay8ARtUyNFJMt0bdUPGaCFq0e0Tkd6BmWceoQtOXRoX6mgr9gX1yKOkr3gUNtTpCKVPFnDunTut9P68Qgurmicc0PhSYETOr7-zSz01L_kazun3YFY6SKrZ0qYXtlFuhycpdDvxJhbblooCTXIJqhREa_2X0aBZHITycjsmaiwS7FGu759_NuGmYldi53GK0A7TbByRHyGUaYE4vckvkhPNE4UTy7F79d_5aPyO5bob_1HAZlkIigTP6tCsYj_De3rIIWqotFZvvYRr2-y7A5YKp3ITu_QdfH6f1uU4BcnOM2xyiV9nPUqjjFbc3eJYTMc-sLu2GrzIwKRcCXOsAmqzr1NFeO3AgH3JTnYKZvDSW0hgXOLFqsxHikGkyS0kmW9pXJCU_8QIXrTczWhylBO2RaZX0_ji3pd0Ff9LMyYQyDWIAn0DGD0LtX23baFyxuOvDW7EX_PyMIzfdRm9eRZouezQUnsqsssLREWuKaIQjZEwI-8pk0lATTU387rnGhWLBTcbFVfCB2kpy7_RgT_JLaTuSLGP4JHCuGqonu5QmqlBUVw3hJay9YqX4WUd4QkoHl6lVucfqWSLigBRFnQKvBh7P97xls9u0SlWhUB1V6PcGhjxI0LW8rOQekWljzs0OqPKDRtKFllJghhG66nG-6S-VtVsKpqj8pE8EORxWpwBs1zt-uoTA_VsjWiPBf7OAuYT86ejnHjbG-K2FLKM7h4QkjXxVIRsaL7L8WCBeilJBoJ9axmlnEb3zkNhifmhkjCJKb-UA2ENMr2bDFWNC1kEz8PDiqQ9Agt5UP7EzmyO5PhiUnUrIZwd4jzlCxEcjDQ81rKg6c9QAZ1BG1hp1KIJ5ZwTUZgSnOj7hSeNLXTFwdTntbDElEC4PD6FoRxwEfpPoa-Rw5N-Bk249QtpD47jUNojVAJ4rHOo-74AGUvUXqUQtx3i60FGsboAazJYyvVdWEgPZhdlCx3WNvxmip1jid8Ng0uQ2kdk4QG6NwTU1fGpxa9cfBZgvQooph7d3FABWL855Q4xM-1iwDLaCN36semvcvdLCFIPHHPgSe1Sdo-DJgXastIp_SiZHajyMvTOCrTwVC6hIJ0h31QDtj2kzSjvtxXtQvxd_TAUsNtmSozoO79GIu_Je7oU7KVHnCtI4KBiZN4hcFBFUDUzGGTDFVxkv-EG-Sq6SX9m9x1hsVreq1nyfKLDNvijOSCOc9kvaYh88jcaGGk0MUsiqCLIIkrpiS1c1_m3m-mfYuOSY844h0nfRMHKvaeI_GslZXg89rtzxGS9A8T7oyFQ3-YRN3csOup9xtIn9g8W_v-w9tQ2Bm0AH5D8ms9pjgCg7F58yxHIN_EWRBnk6t7I5mPbtfbyWHtufT5cJqgFJH8TTFdIHGgEcSIOiSFYbB45gjc67mnpHvoJSTkOGCWufZA7NjVzAnCLXqwiH04MFWVtrdgZyePy7ibAZmxUyUQUwa1hcQvSCpBPuotDWLgUKjEymUYuuaP2JqjyXof1adFodwAVRSkVqxy-KsUd7MsF4_SdOOtXbGg0aSXXoeU9sKeftRcExemd2f5QoNibtAKK0QCaeUd0Fcwr42c6ahxSAP-gPn5gIVuz6Ghzuh9Y35fLY1j4L7icQQizSFQr3JyNXrFnTlGkk82Eh_2xZ_-4vCqLsmV1e7Vj8FO928DPTJbNssZB1hdX99D32Qr8-JngMG2nvFhBtCUNAT_tBI3Tb-cXAp0MNr_J8-TUduBtaGZyLa5FmELNJQDAQSBk09SAH3m264LAfKImMGYu4zCU_cFP9jFlbsap2qg7Qx0eNVd89lvWAvRLKxHYOTrVdrCb2NPP8SXfVauXaVO_Lv_gvvOCgX4uhorsg-DhcDkG_lHbm8CWGqsI_1huMd0e1xwD1YRGM6bczH7UEAX9W3ZNlf3vtobiToHhOmsXq56Xk3-YAcw9OtEsuDKLm5XqPp_95XXtA-BGwHKToGYOMIh6FPpw1e-EqTBjQULo8m6SbhLjLwEhU5kv69n_k6iLwRKzdf8Kr6KQS3ip14-ZTF4L4u18kTyTKYoMu017Ca1thg7utXwTy-0nyNsAdBwRBbFld5P7r5rvkYNko_pN7OOKJG8vhri4_uoJhBsdG1TGHytPxX14co__QFyMk_r0-i9aBpOs19Im4_6dWv5-s6KXWgmUXFy6zcf0CYZK6XqOQmdjKsONUkCJ_ACh3et87olc1bVtQA989n2mQyuaYFAnRXtqS9cFU9OXeQo7rUdULsimJk_8hbOQ44TWF5OabkHf7KYjnLRB_sJsnUieAP1y5qt3wJC2_E72W7mEYcp4OnqFBXZnOC0RD8gO2r2FUOQrHURAZfCPuF4TqoNB463zgx0h_F_Vnp93xKjv1YNDIj4KkQOT42eezHAVVX5UER6yhqGxVgG4i8Rrvkx7UYhK2QDyx7s8e7Bbns8_7W6A1kiAocXnsmOM4gM8ThYJtxIEeuyKBHGTfxC0QRusLP1RxLV2ikKTp46o5SNIwdVZ83A_EA40PHIG8qvmTyhScGYO853b8NnCwa2rUzq65UEl_hPnnvIwET5da9xZvIp5zwzTm2onQ8E0s2gc6MBCeZ8cJNedyustg_bPi9rECxZ7FGq5WGuxDlx7M08PuqQhhQtdRYlXRg_s2938KNY4QB4qmYOskCzmQvKmMcCGhbQUZ2NX0JIfk3obCHGWLnYmIQ-ar1YQd_PZpHcGMC89TAt5eHnkWZ-5nIFZkYiiSmpnGcIq8Uxs8AwYWBSBX3ACqwuzqgMkbep2C-JGv1Q3ZVpo17e8s2IHenldjcr-oG7i1CwqvT2iK-uTa3KM5JUmBZKkKQkSpb-C_4GnCaDajMp_Ec15jQthGzUoIe7462Yd-5GGbvn7G5JUUwPFDVlwGHbLsrsq1nWldbbnwvnl75EKOJPKl_jdDhRJ4vLVFUiuBlaitjdDZ0l9Vo86MT_TD_xzIwViDvaIx5uB3Guly4QEUD5dhVBLw5drah1WbUEfCdP8kk-LQbd8IGR2ESbgGqdZOiNbsq3in_UwRZwek7Xrl0jg3BVBQVaGedctC1K7g5-h5m6Oj2WuAUltFxiqGvJEvZv6tUHKwykTqF4TZBybA-mYWjrIpMq_Qyf3E0qqpcGna2FNrBo9lnh2XhRApjsa93s115sbc0QFGqTMXm-gJrBVi23AYWAMuglK4C0nqyQCO0kEH_mmAknXiPvMpsQw1xh-pFcHlIX3ymmwpvjmRa-AHqYn66yC1Q6XgPsQuJ8csIkz36zUxvgdnl1uy7GUDKHImP9DEmf7CiRy-FvCaY6hSYAlIvEUTzCtyIT_fjgTV2RaGRZc7E4bY95vmTm7-jSIC_fdQPFo62x1En3YVI6KHth8pJVNx4TtdnegmlL6gMyfTFUdvqkVzP_pbdRXU5DynwQspjZ74a-fFElfaPMoEXQZgyxd2UNMT9VXUnOFPkPZ3aOAJDPXpr8mJhuF5q1Zclbd8mNTQn0dTIu2Emye218f35ztLNQFQeo4gEU9inFQhF88StFWDu3G6IaDwhoMa-xf8qpiWnHa5eAq7Irfc8TgTyPkWEV0EpGbh7JZAgHbz5qx-5ap4cR9ymtnmswjNRErSnBPPu595VXyBF5ITQHTlu7W5goJHgfk6CFSzrl6qTF-C_J5CmyEfS19BVx-ytNySXaX-xu53eGAUNU9HuqQhgzrcAIJgyKFMHDZhaK4ilJQHSVFYbcdqIVMJAbnvNCu5fg-LKd7zv4JMUvtjDKFKbmARmKaEx6J1tkrsh4Cd9JYyTXSWedz5hRULVm2zCvVe2LgN9DAk9DRY0B-nX96cwBHDnKmWPI0lMZ_qjkBbpwP9LUcxve1PsPvibdJyq3BQe4WoEoNcGYR2u3Z7TTkMV6PfDT1kcb4SvZ_5H8EjM_ZD7ijyFoxRetJJZjJ15hu4yQLCFDw2uJtuHcPOdFA4gf9Pg7W-ZXROVLNMFg6M3eoRLDjqTsfhoNdO63DOEPU7cz5q4BZunykxmGQVF3Zc5ol-WbX9sc8-C8wf1T16bWYGgmMYt4TVTomHZ807eD2XtsrIGxfWvd4AH5j-elaUDP1ennhevj3oG-kX3Xo77ZYws9oa9kySTsezIcUy0r6zylRE7RFkNjSONEMEDCNiL8a2j2OhTs8ntxjP3BkjjFS9bk0iHC12o-JFEksVt3GKnxb7wggHjLfH63ZdSdG95RdnooHkjc07ajSFM3GGWpalNpJy0H-36AhAO3cpEcZmVF52VHKVoC7PN2tDlFTiDWxRZWz5LKi5mquMw0nHStm1-rOXy__iqkdR20o1QgbnnVtPp-m4y0-kt63UaPCD7p6PLVbSu0lDi7dyOQsfj5lP5W4whqRnSAH5WI7LlG0tiL-aa4v7bNTmOdYq3M0er_ZYWpRkKnpW-55wUiHIGerqol-MtC_oI15Yx4ERbyuiFCti8iPdU-p0FBJG8I8fa-3gGFnQDuDTY5eFvnKaGhOluSbYNaqVfiHqVZEMTucSFfj9dUOElH1GmFjwOH9gPkvWN34ISsADlbYY9TTGcgF53oHpBj3l8OkDrBYgi-T0izxFA-SeoGcqQ-_GjrvyJ0Vqp4zdBwxQmg15-ry2zMfK5mcwJvVp5BipyXjyrZAxQ6C0M3UzYYaV-inN79yEbQOSP3dNK-X2AlF2G7cfMW1XHVaEJXzUCmFvGiKW9_nHXaYB5k1kIV6pz82RY2RoT3iB2rT_rwVJjo7749zNCfozFZXg51ByCRF7xD6UHKy1ENSM0AjnlwBp5GEaEFvibErCW3cOPUywXiz9nhTODioMurth2pQxuaEEB1z1Y7VwGZPn2wkVg4GbJ-4ikjV7KL7zuGMWwBQLjk8BPw6fVbQo3sZDBbhCglCLhgrVqzb7MCvwYsDk8LcxQRVc7PUNRueF56cxiSGufmmTjv6ajARSBBo14HtQe45jL0hIvyW42Dkt8fwtN_K5lANVuaVlfvEXl0CMJREWRIUP1GV2nYuKzHTpY0x22E9I1hOQnrCrgYVBz-LVK61q1nK7jPRSXIJ5sahrNrJB0o-qeo29rioEyLN2bR_SLFJ7fIgb6kAsS1YqAfs4bct1W807IRvC5bldoerY0YjNL9g1Lr13METZUjCT7EHWW702HIccRH6hqX62H1IPhJTEUodGPefTrk-a0_qDiOtUNNvDOt2ObgA1jWb_pwkGAA4a2DsCank8v4ILALrikKOgI5Yf7MfqWvP8QHRdfVjDFRGRra9vnwx_Qn3Mxh7kZwoiHJNd1UqyhnY4qUFsGAP7M7qxeFuvK18IS5kSyUaD1yhvmkoDpcDmsmxSbHcsm3Ib4ehMEB_m2eQk8dbNkFjnDVnOkR6eXDH5riV3VEdS286b0iX1aumxxuPH7Yye4mN2xAMUWKm3UxkMBkjLq9PqcX9zUsnheVYqHpymCkqcJE9GuTAQIPY6xXZtYLU8li_5FQMgmwys3OjhpYBuguKJCQeXh7RK9-OjqTs6eG0iJWoWAkNXgnV8tDk5Woz4zAlfkM9ZDbrcxlMxNppCSn8d8t5XE2muonI0CbBPAzCCKq_BnYu-o1gTjgDuPuBJZ1SxDd-E1NlwgENPUd8bVlneYx68ZQvQ9BTEFFq1U9CPhWQ89jpfavnr8Ft_NmNAcp59ogs_yqTn76KdTEE1d4lcKhCJyCJ1tb4iv-1j3zc8yd6_2ookahb9G6E9Ot_CTFVsHg_rrbGpBpHIiSF1T6iAhYJDfqdRLQt3Bp2tPoi4JERmdp_Z9XAvIoRptYOcRVN2XynbO_mjzeT5lnYZcE_9e5xDNzBq33Myi0hvEpXr9p4qlk4VT7Lu6hkbPDF2mwkaZ0LzXH76-USsR_pxHnk1Yqj8bNos4-OemixAhAX4ngtU9ER3rmnoBsD4iJN6awuJ8-EssG1SiMqYma8Kp7VwL-5DYxdbg4tWL4UhxRQtCYf3BbmB9h98nQ2xZvzWfup52cVRlJK3x6LB7tlkjRzXBXGNqTDhaTgMhYORbW1DGVP-Mv80cUnCBQjLkjt4RlP75HEBFuZAcfjTwrDQlAKOHlCQGfo1U1rcZ4YKL2sn8IJyg4EFCbVrPUC53bhfBJeXM2vYen49w9fhshtGu_q_SnyVrP0NQAhJqVlTUYx523oIPbQb963KhmQEI83J2bvqwmJRNdSQnWocg6YfOrA28cL7gUp243X4pmQN_urDD0LpdJInM98uucW2PsFuXnXCMyc3hadGq_TFUSowXEGgP4Y30yKwcC1zXwem3YmFLgxpQ9T6udO7rW9aOiFVY-B1M9dKGTGXbRThaXo7t2IfRbFEIsmk1o27k5KXs97tlPmIZ1_ndPgc7ZwtbSawYy9xg73Vzy46U10A_VSHQbWPUPMB1HPMa_4U3RpdaoQcFpGee3VHf7ZPkr4zHaVd_2xvNFL4ypBr22dRRVTXe-T7XQe1frCtQYtxt5lgv7-8BWDjJLQuhKE3hI2vJW-I8gE19VjjuyLvQW3hPVIahr1vK22VcsgFvrRoe1NuF4JWiQCQU4WDUExp10XCTOkuf1rjp8mj64flhJ6ITFs4q2QxZiZZD6kOJEx9Fv03XmuqUCImz4ihgQxGK_FGs64ZpyHmgGtFzfoxi00iN1eGwGEbGpJ5kiJr2M0dZ8xSTBgiWvaZHaylus0tqy4lvE9VscSbln1DZph46QiQaIddOmsfImQTr5pIoBwfmCQN1sOOHX0B_Oh5IAmuvz49wEaP7KweAVxqmn1bgTCi7DJkPa0hcCqFFOQLxPaIXqSvI2mkacsB-Ueb2w2jsYQlJU19ECS9HupnHigUn3NTglkis0A37hY6T37YE9gBYWWZ1UxYDdZNIJhoExe1Wpy8Ev7BE0BR6ttumXBDAVFspE6YI8KqxKJpV68Gn8CZYnlLq9W3eZAtfoeklrs-Ce-F7spqoe9pMOhbA0CN6U0hfQh11SmwdlFlAtTUxbhvghYH9PQZljtXxnd0d_YloST58UrGIZCAK9XVSw5wyYu5D7uTZE0nXv_tlqD3w6NzabDNkHV_fK6JZo0j6eMHn7zQj2CD9r-I_7XZsZ6oJxyQJ9RB1o-NBa4dygrCEr4jujKC8ENcqOZH7Blea5kNwRNBVBu_8SwRztnT-8nRMCk-Ss9hNU7-_OXYtMd0oLFXjuPH3peQzbm1fKNR9JcLa7ocMvvqGjPBizSSvEFuYJlLoJW-Uvlllnpg4XFxMS6ZqhLWvrAdEHSvD1RteXbQmkZbcC52j2Zd5WiLq2H9P_hTtGLGgk1_bDI7m3nm0yBmMNj66xP-qKfWR_EIsJSQ97FVLKV2irILuJ63krWi87hd5vBPEH4TTHIgqFEJr7mGB-LQAVVQadB3EPnykgkrKvQdHuZLDU7vNrSlVP10u34EN6w79PQbjV-sGCphddfAH7Ge88n3zhCrkZrFia5xIoH2iJVtoEevH-XLd1uhloC9bEePUggRpL6eOMaQgJJqBIX7YS2JJMlc5gDL13zDYVHw8qsbThD3hk58l97TWj9WdVIxWYWQosanEKKd3EFg1ovaiAcUMtNiP0LJd3wqJ76Q-XuL9zHrproqoVl6WBW7Vp6gwoZDQC5QcjRqyAoFDLRqiyHpoSViJLCAKUnyYYDnQivocDY3Kv3NOsuVnXtx04VOlolzGG1QmP-tDbKAyssUCACMmv00BU556Eplx90ZFh7isY8WgaJBCi0qgvAQ72q0WnOmx_x9S0oloppX9kN0KxTUgrrU94HwCP8gaDYflFU4QVGJl1K-F1fsvLlSPVeFIyqlpQVsIx46onRh0VkemFQ_1BKAnhBnNHq57a3DGgjgs9AuWSKNMq7gYv-kYnsFnRhyrwbplO-yxXm-gDxWEWrgrnkYBgB45iY7t5EJFXCBnX21JC4JmT8AVWRr0Z81g8EB0GlYHk3WY7KW5KPHCeQjy6ElUtTRtESZ3whww3SxYq02DCzi6DDrvUw6yPXzhSSc_3SpLlgP17W4k64O1x12BlPVTU5dN0S169saBIGh8-nQHnIHoWTF51csIFmGY6_ewe3jpWBffTgeuGBeJmN51TOK5yeXv8WTWUMHqEYt9J5DxvN-uejfuoj5weGmP7Qa3BzwWez3f5sg15lSU1bHMZ4ED_mAG_Grs0Fg-3f6ygT7ouEFQ6sFnwr0RDy6kwbuFJ--HmAtED6-fLMcEQl1TLV4cgOj2L6Oq2X4WLmQgmQWf-s1yLzrnS2VdyS5XY19iUoKb1-_2xoEVWpWooGKfoD3PCE96Bk1b-dPPuLLn7QjMo5kLchaTNG6IUIUZNvhy4jirNWLOl_Kb2ftR0ajA3kqZYO99PZE1ISOqlPUaYZzVnvCTzSI3LQdGUN_ACpG0Bt6BMPCRMT1dVL31DyliurPfPbG4OmKmgDTigZLmFVOIKpCOrh7c7D8MWBkVw-qAYNSKuahqTI8zXZ6oAtopVvhce1gmLsHFFSHS1a--PI6eBxNKUdXpiSB6WnWwQd1huhEqN5ueEPn-TErXBMHNfBrBMuLb7wJtOON492zVLGQHypHlPjQMKW0wawwv4BjMRbSMBvthqKvbOLNKfgWxsQic_heJLkZsAY2jyaQcwa4jWvqgQvAmBs3WlfF7g-ueRcRilldGcS3JI3E4Y5uxIedzK01wzq6co2E7monGsawHtgp_ZvEuf1JmuGMV82vgyWfMO_z9eeSHFYrq7ob9cpRstF8OjEYcxoSns1h-EOsD_ubdmQeeFzCcJ2Z_6yCIhTCOhUS--EApfkfhDdYm4HxCFKGQXIPwnnHzhGMZLrPA0zZdUMndS6Jky4EFS-rX1yAW-Fil2eSUIUeIR5qzCvnwMmJobWD5xqwDEa5O-xz_cqchMH87bbYzGfGWZXbMyMlZPhLB6GSE2d2Np9VPKWv7hiYU6SmCB6vUVwlsmk7v30Ez9j85o3PK4EjtQBq7uPFn5fz1PfTWP9wEtKLf8uk8VcZG6NFd8QsBWiwZCuCMaN32VSoe68f8-hon6B5fKFzf9IIe-hcrLvFzDINqiBWwbxPXV4On0bXnzI3gw21r9VOg2BpSxqDyt0bRjeNzexXwjgpEtgDdkEvh_I4ALxkJrPF40qZ5nNn6-KYRF0-PG-wMxGP9LiLvJbEa7_BUZLhZygpJkkZfotRgsPqVygyaJ42Vic_JScZvEBU7E3rjt1muPf59jVLxt90TRlzta5PfxUOxjwcSGDvJfYnVw2X0WuNsEsdA_byiVTkKE2Uk-msY62T-RE5nMnNEzJCZOUDCYx9z9gYCTCxoahTuxIhQozCXuXru3wAkfvbtFAJzV3pcz8aF1vT7Oh2-5zGAbISumgJLAPdTHb7xlmmqhEIHOOXKU84UW_gjowL4bACZmXnE7kbVxeCeMQPqlRiFRWug7qqdBksBQ2fZ7WPHUQyT0JVFmRKf39wtDYIue7XSAy-MACJ2wKOpwht9r7FYyBmmv8Q0k089DelEDhSouRjWgLmEuhSkpNqsvT-tg70tvDI5-8qBVsO7tSGlf2YEPJBa3sEjHASVzsx8WU6qlzjmfoXaPPwA5IpJQ2Qvi3kFavDBfvV-DUafbax716UEX6X24ntLkoDT-88DhQ73D-SL5BSfyAuobwx--_5_2FAhUJDqw63RcjT3KPnxBgNeZotm2eoOqp3hnEiSp3dAvpnRjHOiB0XYCxEFqcrMDEKmdyhzN-CPRMxnrhCDkuRm07es6H39ewlfIJKqoOVR4w8Sz5uVud5jjdGlsIH-rjK6bhGsC35x5lkGF_FTm26oU0bsZlywVzu6ny72Bs6kyZZSkjxr9QroZK5QPqAC1ddfrsv-NEFC8M-sP40qdpCgwSPBoQB9Y3F1flw4yx-GINz1oPagiW_S0MkoVgaa7vb9HSnloEUj481S57YiCoFM-xIXpTcN35_Y3E99R4wFSgkAF1At0X-7LVl3W04yH7zCMPJDdxnsPL5ruwtEiUkMm51Y2OACXSD_8uMZC-ciGnSSRHeGDrLh336RyQ-kshs2zaOmmkNNk-BvwhPKFAzPyVvt06XcD4eLsQ-_fCBlQDzvmOVn7X19_wXu7oIX0O54GrxOuAGggzszDUQ5d8-hFAzmAriX2yoptv--N6cuwIPBqMfKAdsg3FJv6X6KWbpL_7INTn70Sn0Qi5j-yhViIhLsVD_gnf04d-EKKeaMVOvMLBlmnjoOt22bVGCSsodxVZeTur4XeTts7S1M6CWFZVECshOTEkK8g7qkY5bMotH-INE8-7Mglba9BhEjrCYBXfihGmH6WqrkckxoG8EDfQslAe-7LLFasYtViSSSsmsD-W9eRK_vuJSzadtLsrn4v75v8wP_5BmrcPp2srYB9fnJo7bWtyEz1pulVNrK5aDWwSPoVB0uqV36SCyLihHSvPN1GBm-W2_ClDZdRgZd9GXI9dmnX9M8_dJCn8HjHWpLm70vFxSWlpVNBqFTXDw8sDl2FhWOABaFYUO1_UyuZ3fF3fbZOWMLt-_Wl3eRtpOkGhGvknRuV80mRXmaJz_7bbXpGjHAowaLz-FCfUflEC1E_FFq-9-IQ4OMKOPYaRt68NzHgqaTC9y8Q4hFSTDtLmXSJTDWvdIjC_4zX_M1xY1QWXParr76JB2bDe2yq7_TZvJSY89tziahmKJMlaKnbZXxmQTBrpvKFny6IkNz1e2e2GrSmaluOFIF0Q7vV0r1E0g5bVZ91avoCEP97RS4UAMNQlxXV5oBLslfegKiSa2GYVa3wkBC4iSAuGu9S7Z4v4uw19fnAKT5jKgH9lx7nzHPaafsu21lldZc5UKsFKrhqlBilkJ2H4yetz4A5iGAwU5goT-xj_RuQx2yZaoZ2tjKA7kQ6QpO6qpSHTgBjwQwpMsIy1lfmtKxIFT2nBP5XW3CCLycHu-gEk6IpGtj6rHQD4v_x94VPxM9pxH1yD3VP4V8keCXYpeb1xkWlNj6pQ6x7YelclG9CKzxsxa5QI1uBFbdsG6MywlhZAaAFKlUvthwWWLKpePV5r5aJ-bPe3b5sTbzwNKwFMxuvC_zKF4aECn0b4Iyg7JZlewXcSVG9y6zd-ecrVDNQpsV6YnV9l9Ddp5Kz9q8gEaJ9CEmNodn6pGS6n23Ju5luP5NModyq-sMUDWp9o2lOQUdrK9xiEMlY979leLWPPXWlwgBOyeYKj2kM7_FfHTeFA-0TlCLfII-re-TA-fv6XQ2e54m_gCn5TSa8jNdj_eid8KXLTXkOeeZX389mDKZ3GFt9w8uJNpI23w3kaeL2PoEQSY1RnfckJOL9_suca_P-BJkt9kr7fM71nMchA3qZUAXVTfbOXATiULbGvAqQzGf9WYZFXb5prypNWFzgiLC6eXUl0HpbwWsSbUeq6e_g03mQDFasUCt79Dzg5HZbO-1aHDXFDae_yjfc1JDDFyiICFuNP6ZHtqDZfDyGcUfKCxUHWBgJaVSI8V-E8FkDuKJEiYpXPeLPfAMRzEMFT1bDkR7CPTXeJSl1lPajqlPFx_ccKcd7vAxYlCyqGpaiLXk4Ob_z1to1Iwx-S_Vojq6uu5PKzPxZnKrLKLVVOmNiGgSjDOAW1PfFF4duODs0HaXaixGYpj6qH-KF-QpdDk93sw0BQbjmphqNeBDTMRT94LgqzTUnbXNzm0-bv9A6-Ri1rTXDlo6q5OStjwcH6YEdh0iyY4Oe64LAylQY-_9gRVQSJCo2gsnSKuuON_lU6lLoEmm0AvCeNPgXV-CZNLss82lmGUuvxiVVDEKDuP1lFoR04jYUNAljb4OEQee4STIuLdbpaqxMcQ8Rekz9MuXK5lmq3tsGZpL1AhZO2-yFxjJhIdxWvlUYskFKqNet-ahjNCSzElN9zn6Vgv99eG1K4z4GJsaOE6OpHA16Rb_skzUHO6XYQFVzf1K8xT-ZDmNJT97MpYHTVxQgb4Ams0OR_wzOU1jbJ-aaXIBXVkX51gExFp-h3PfpkWnBModjNIdX5p765v89mC8kzekUMv-DYxajK01zNYEQCAYp4tJkJawXwRmTONZVyi64y3cANm0gVGPOdn_wbVoyRWhLb6H7hZ0raKbk5Klto-qMyBZenHRzMxvYMjSRL0qwKR0q6tPLIVG1V0L2nW_yXO6EYF3fcg7IDoLW7ev4youTakb19ddrSQN3oNaZOpWlnWFelKbUfT4vXx5hSSvgrCSCDcbTMqMiZCgCTMIcyvamjsf0uCDbZ9_GBIYNuw9ZXhe0CaE_osNQcoLb6-e6P24Cx4pWhoGXwAJP9js2fD74ZhYldqaYSGMO6QPcR4G3WH7Vk8mGYz6H-qk0DZhV2gpromGZvK9ROxK--gnC_t6ZK19n6ewrAKbc9xSXKaAHseoKw_NlggN0vz2E4kDfmWFj8akQ_e1I2RnQ-YiHxLsaB7olDuzTfefBj3DlAExOKgwgBcjpOo9392lgOrTJNxG8VHyfA_6Bbvev-Qyr0e1xSVQ8aM19IKlC6pzdf2P6OpzpTXbWyUvrFlGrxhooItfyXwY-iKi0FCxzQD37Vaoj71PKCLzeQwebSkn8Hb75zCt9mDUfYtrrIVZEfpgMftFhC4gMRfEodTCTO9Kw_gYX25cccTnljWgCtODyuh_D05kW01K6haNxJL3oCjmibWnWwOCg4yEvqGdHtnrZ2StA3rK6FZxcwFvqvNND0TfWGik5GlxqBVxX9raJhSzd7_E4BLAjI8OqHnSVDcYTRIonmZn_XiUArYvK-ljxjdbUloMiGMqrA6uQKQqYFVBoVHKg5fTB7zs_Z7prVgk3eB1l20lVVNkLkSCB3AuhEI8Iyk7VMbOx0d34L1kk1aOLXom-qZPxLNnpvDXBzPghYR_DEvu90zuNjQRMeQ6ATmhIOYlRMcf8rx_yxGopRezYH0daJTkPJowT9WlAONkWC64-YtCWrKmI4ejaU_-L_Ta0MAte4XDZw4SCgo7COCUcbAgOSq7WiPlsQkRhCMGTVZZTzb0YPuGnO1vSUFJ-oFWi0alHFXD7T4jwcsnbsbietWJDKI2BeWCRweeMXHwhS46O2y2ZkUMCAexVVJjV_pIky2pz57ARnh8wsHUeaHUEWalhOs772N5p1NdA4jUMJoDl_JSaNPWqSuC3BdTt68Qstixj9Hr8UQ3RFBLg6R-0M0vBcMLCawjM-a-0IJP9CNLkMeZInP4JlCZuWmGHhrUstjVD5HB7RdTiDymI9hn6G3twyAXxJNSqvJVNt7lGEjSyiMCt0SdxgPtdlmRbS1-8sCpROHf78eKxsw-t-IseOzgYl4Au4urdfPHzq5VGM4to8Wo3RDgfARzvd-LU-EhD_8DB_VQG9ZTg88baNe-ewftFzViia_Ht1tuSb1KoI8M3CLSUJo8HuFFYD8a8cETA9OsSL5VsV_rJdldTAnyscpYIS00s9VjzwSBKIHofgb66SPVsXf1g8JY0KUqzMkrBO4s0qcWhX3jWjrS_Q7Opt-SEdrrkr6oRuCa9UO42nvFy3RnB5paszfXo6fkoep7yOSw5hwzCoeKUbcJ9IeEeJb_jCPwQVas_RkRm8cnSuUb8LJkToH9WNpUEgnVvbp8hotTjWh8o7NePJZ_zTdr1GJonxrPr-Jck3NwaA260FoRywlWOeKkW1mKW-2OAPy53CHjaoFAxBVEHfm8JDHTf0HO89FpYPusEc2pIdBHKa40AZzrIMlsQ7yELaY8pYs2V0PtfuvXJMx8IOZrJoJ9QeVO7j4z0ApZtMGJf7g1JYUZxkvY9hvKgSznXqSTi869bWD09n-rxhryTgKl1zuSD_TaEjgy0lXsg49fGB8MVBYnkuEBg4fUiiprGWq9ZJec6EHzC-ltGSaKc-NiQRTlvWuwmM6XJeSte_Odx1rY_V2S55-kLQsEGkHerUgRimk1vBO7V1FLJUrf9LCQzTamwojhXxucVfLe1pckSl5CrM__kQNR3ju38DxjAjh7FW62iZDJGmyvFm1e1RHORy6fO0iT4qo-B4sEsxE4Kg1KgDd-c9dp5qUhCfweJwY3yUT3qAu7OaUHJPQoHrsLp83lqy8zLlE_Y3ZAiQedN-WwX7Kiq_ilffCI";if(!e)return null;if($n&&$n.sealed===e)return $n;let t=null;try{t=As.parse(JSON.parse(ir(e,gy)))}catch{t=null}return $n={sealed:e,bundle:t},$n}function zt(){let e=zl();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Os(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function by(){let e=zl();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>le(t.slug))),e.keys):null}function Ut(e,t=!1){if(t||!e||e.length===0){let n=by();return n?new Set(n):null}return new Set(e.map(n=>yy.test(n)?n:le(n)))}var gy,yy,$n,Jt=b(()=>{"use strict";Rs();Ge();wn();gy="tokmizer-default-rules-v1",yy=/^[0-9a-f]{16}$/,$n=null});function ro(e){Ul=e}async function ky(e,t){let n=await xa();if(n.size>0)return Mt(e,n.values(),t,n);let r=zt();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function vy(e,t,n){let r=gr(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 Ee(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
75
|
+
`}function iu(e,t="normal"){let n=$e(e).split(`
|
|
76
|
+
`).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 Vy){let s=r(n);if(!(!s||s.failures.length===0))return s.counted===0||s.reported!==null&&s.counted<s.reported?null:eb(s,t)}return null}var ru,su,Dy,My,Ly,Fy,jy,Hy,eu,Wy,Vy,au=y(()=>{"use strict";In();to();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|$)/,su={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}},Dy=/node_modules|^node:|^internal\/|site-packages|dist-packages|\/lib\/python\d|\/rustc\/|\.cargo\/registry|\.rustup\/|\/go\/src\/|\/go\/pkg\/mod\/|\/libexec\/src\/|<anonymous>/,My=/^\s*at\s+(?:.*?\()?((?:file:\/\/)?[^\s()]+?):(\d+)(?::(\d+))?\)?\s*$/,Ly=/^\s*❯\s+(?:\S+\s+)?([^\s]+?):(\d+)(?::(\d+))?\s*$/,Fy=/^\s*(>)?\s*(\d+)\s*\|/,jy=/^\s*\|\s*[\^~]+\s*$/,Hy=/^(?:- Expected|\+ Received|- Snapshot|\+ expected - actual|\+ actual - expected|- expected \+ actual)(?:\s+[-+]\s*\d+)?$/;eu=/^(FAILED|ERROR) (\S+?\.py(?:::\S+)?)(?: - (.*))?$/;Wy=12,Vy=[Zy,Gy,Ky,Uy,By,zy,Jy]});function lu(){let e="SmptklvA_Bng4_0L1orgqxAi-z1lgaQeHP_2q4Ru_CdyDMPJyTPXmxoPDNrHWUo3mvmfeGXcsVodrfX_NuUytixne0FbBVOCGTqg48ANkHe3HHfnOAIqqw_jIzPKCQodrZj2_WwY-cPfBDRCSqEf-bhNoHHe30TYjLN4IhLRFPEH0QMPlObef6Du8bJ6CyDqTqepULPiCWeXcvsx6RkhZz5FbB76PeqmWZSQIPuS4UR5JPLDTOQsdSvEhSm6G33fHJxFyT0nfqh335E6LkzGtKTwSOE2hQ5ywZt2wKMKgB53DhcfROvki012I0pJAcmSQy3Jg30Z9jS3YDGNhezR88OFy3wionVFRYimbXYi1Qlr6HL1Oy4Fxrcc2jcwEYIQhORWV4H89EMf0lhSL399cID5i4bSD4WQ7UiwIf8bkdk-Mq7d5PhO4ZLz1QNqi1bLxfMCKWIHcA8KurfdblE4zAEnzgPC8Pnat8LG9rT1VC5sbx1hb8L27BlXFwIsWblo_XVWGv3OiOAIxGaQ3enluOyah6rq9i51CTb4yU7u0_xOg_9HyVvu7ZKfJlVUOIatrtzlb9-gElr2IpYo9z_GVuw9RGrJb8pFSLR5UiMi_kntR8B9JB7OEO8B_1lmYwvGEMJVgDRRoJhnwQFUMbkdlaBW67PlwZZaMG3Y6Xnwphfzk721EAPxxEXsMTJBNqVvKZ4uN3Qk5oirhoe0e_HoLOBbZRQoT-v3fX_8unFeZxARplkPl423tc80keXuYJmmf60fv5bsuGpThn2VnW5ZIrbvcc16GYFTykyA0FSnIiJYhMfPCuNYnjOCYeQxPgfUU94ZHv14sWvmUGmzTsHwN_7Og96QQtGdCJHvGlzJxs8bOERABzjRBdQuiyUK48hGahSyPqQgw7RoqfR8WlTxsqdAn6rsAZuylcxt17Ql1tlxSIAXm1sp5hXfl0hogAmX-YZcJlaDJAYjzNQsi3zG0aHmcI2PE-OdkJOmTfl28YivR5TgEVdgEJbOtklt3b7Y8f32u2KcljJrgFxcQzcdygdtkbfr24NFBAgLsa0p_ibNyZ_Y8ZijXHIqw70RVsETy6zpeE3QeE1KQdiUEaxXeBfnZQt24J6NSefc8J9RyoA2YrqZeoKVAHcKgN_Fve6IXAZTeE2LEMjW4HKUo0lSOPKw3upAPDw1zOm2sHQd3BRr80mt1qjmOfArCV8rrlWhkVPuRcFrCkg35t3gHDmC8VN6W11lagsfTFqJJvJRJQ-e4yeCjvXTbohK_sYwMOJ9z92niqRj_GIJjQs2ezxp6xb0v0daJseV_ku9Kk2ha2Qfcms6kpu5iY_GJO3HXfXvjzaJOpsqH06X6leOUlYS9QaiygRUg4cqi-gezCCQThojiY5TayABvcAv0TaAkKxdxH6kYPB75waQjppBicokZ5-XhesRJnaunJkg3Y2qfWrLu_qu5fTl-nH9ub3hSyqwguwGjDwoBelMQFJwtWd-DsqVwgIB9z5orD0BOgduJ915CKd4Zeb-K7etAw5qk9hmc7KmG2PVgtThsu8lsG-Fzj9-Z9crlBTcMZK4rCQNWc8cln3bN7W0LACWWtbjYjaLE_zmQCDaR_IHj0CMBFLFV62bE1J1_2upOcV939k40YhG2spNPSE2Cr6R2Eq3XMZzPTvcWO1yZhKk0ba1c-Nyfa0BTCFOfA7yvrCskx6E6vIixXrjfH5ct2M-svIiXR1sroYeaLfT02dgo348im83p78MJSWcqZoUAe0txV3IKvegGk4KEMkExSqFDQwCxUKOAS1fDYQTtU-cSPx82jlQntPYbnc0dBBwpgdZqFt6xWxq4bZb6cqbDgcSbp2bbVxaMdIggsdZ6HFEeO8Rvf2CgEgE4NpTmWxi3KoGDUDuBIgA7sRQ_9ZqfJopUhoGIS2cgGMz9NOSSaRUrV9wUE8vGN_5pUSiosdI2-yk5uFdfTFraL2m8PG44evshrtkRS4uKsKloEDudACNe8LFao4xzHktH475-5NAM3u1kFrR88NavqAxxOkVQTMoc7ir1GfoHpdTxBRZnYm2D0zBSjR4YBlXIJ_NBKSSk-KPW4L7kQAj6Ndv9eAVCtT4s1l4ixxQ5tNgGq0-3CXmwlrV6YlQd_IBc6lTpPZkWTC8KvXU95k6l7s43p8k8JQacmJ6t5F8Um--S3UeKvsKReVlx8M5PpeipG59FUbVb3OHYHiMYC4dk7RT_5Qnj8ZxXvF6S1_vnzMOFYH6GjQw_EZMeHEi6tD2HkHCNjlLqeRvFZdKPGuaVUHTyE866P__P1Z4_V3zcAuhwlCIawFpKOss6LQfQTfvqeYxk5X6Bf7apvzCGOFYXLilvfDMhP6T-XRYtb6K5tWy_pElMJwNxi1DrL9kbq2YEDebqg1j3Wn0JZzBRWk9i6b_qs5n0SsozZ1ailmkK0JU9xaGK9ax53kUCWs4yPPdJmjGcgjCqyV5h9OyDcHI-7Wo53lsY7Z_4mA1S7EEmCHoD1DLj6ci0zFY75ROtAvfFvFh2c7hbJOJ03oZF9oVa2utotbN2UxrCKHaaw90g2tqXWgjnAvG3RuNXrEbcKop4uXoAVnMZE_XqYlU0chH3VS2do7Gi_M-pe9bFZD-mOJo0qI6uQZjrdr4NhSC7fn2w2ugAxWhZcH35tMw2k1WDn4dEk0jAhLF8ND4dN4pOqeD87EWaWEkELmUGHRlefBNCR0QDSiTRFAEMj8_yZYiLYWIjM7O1EwtamIUU0-k2wCCX1gPrgb4g84ktU8yBPseeLSxIOgHJoAP4NX6etHrgNgAgbqT79sl9yp4lmaMH_XHYoe38moZQ6V0JKC2O_SmPAj7fDZsO90aTNnP7BmQ1uBOwtFfFf8GDrqBh-ubv_jQgL8g6ODNAaIz8fBesIorEKCUxIjeelAwnD7WQS-miAbYJNWL-emSTcBNsv50EdXgoqA5Xc5a-U6GUyvjDXP6ObU8iXqnNAR64t9R0rMoRNXfcqvWoKJrrVHV8sMDTQuf5yUF_kOrXYfl8cyCB3Wpx2A9_YgeFlx5DZyNvrLeu6cz-CVGWcUtMzv6deiM9wAgUzTL1UaQLP1jRaNTWOKV-qkEdES7QeGm-__yi5wDZyANNVKbjAgDcOAeZeas-hPjFeMTRVDmSz7VMbz3iUUlo1VaqkG7GUC8nNOKKAbcxEZlWu05qFgx_sAEFflXiF10OFIKEGI4Grz71ofiNiFUCWyGVwbXcB7zHhHkbll-LlA9SdytpLzvmjD8M_yUWUa5wpfmCbmzO1PCO74dayg08pt30CtoJhB_wVqhXRs8lWyOgw8ZoE5Jhu_BFbZBLGm0rVPibwuKZyAy4qrVpfEitUukwjcKmvwG6nlVyGBAsJPqxXSU5q0smRsNnSu_MB3w2Pn9p-Ag2og0DgZnJ0ROxY4y37X_uzSy8yxu1x18dPOuxAoKumNlxzbJP9frhxWcV-MFU9I6NGTJpTqWZnb4Z_zSVj7iVqgG0wACy77YTgv2gNxcGlE-fEna-mnJXzNqiiRfWJQwA55sMO65JVLLUl90p2XmVb4IuPl-j6IJcOiErDYvF5CT1eHaDgELQ9022iui0x-7ykr12nPsTjtLjUZ6kzZRi40JN9VPv-7tDvr1ijygLz4kngjbTJulzJ38BA_LZBVZzMoenkB9hL2P3b4hL3ihJhcZCEf-lvBqThGDEchgSmQYqODIDWQ69jtAas8ojkuQdU7W9ZnQ8X0FfO-UEf3gl7APWOKPu8TDhVpdwOTg6yoEgQypAX5w6YaRjQZcPffsaL44bc64Li_6Xj7UOfxKfbs75DYk89YMpki8_7OnqZJPPAegMGXOMiqIR3ynFNLqAp3KmH5QXBHPqyehVQh8XRITQ2tnBbvd2-zMrBUo-BNH9YR9PYOibfkp7GHplbWj1iZQO395fEzIiKT_IjESIfsVt54gDqbNVAtLJ66u3GG9QV9PUWZrsqBNhw9gQEuHvjH5cTE1ugRkTwiQfkPsm_8Q77SOIguOxczJB4-rBrOXQKJOeSUn_wOcvvNpU-hi1Wt4Zzfrz5Amfj7wbbNndMPc_LMZ_MA1rVPSf-sIQ-9fV0ikqeV5peRnguWTRtM__6tvzSUfibNr3gZiIoWtpalV3Fe5wpTHy5c8keWC1Md2MafxzuEPIUl4eHuDPxfIXTnm7958vOiTvZ8fpyp4X8T6t-daUt7O8xrTD_Z7FudqhpVCGIF-YO_0qPCK5L3VMliFz2rKoXRyzweG6yWPlGz2JF3zvCqmpmEugIC0ztqqeyXPH_PvsnX6BsWsiXf4fiF-4DRSCytpmZ3u67DwiWwBuheGAMVcRJlXMUvOa41HWYrNVQKrcFcWuIKevTiY4TejJpe9iJOTChjAqyjg9ZEPoTYA1tTTF91TwvwBD_l6kUlOiFENxSiiz7h5Dysy8cA5MyKQ7caniFsKs4TK6Ta4FLNrPSgyRyKqi4Ucn86EWueFOZG9kP_Zf-3YDXDB5VGi1e8h4B-SBE0mHr9VVGoT-tpnCIboN1-ccSdfY03VvgbVUjmfh9QlfLt8L8oPkNG8XCxAArrpVEx4alrK1cPOT6F87QS5PP9Zw5394080oDQ8oYkY2Gylre7eWQusHYDxSyvulWozh_33vcl85ovDRhQMZI31yujw3r_33ZrDCJGXx8cNAJqCNqzmiU6MgcdLL-L2sq13Np77vf_8MiJAZOVAJPZtUDgpRDF9SacsuCvZcTzRDMIpeBGySJxJHEQillNc7Zc7Oi8wA_mq1EYpRmKVvzBYK4Uqp2Y8KKOhWVEYt39UJcIkjXdBAyWcY2tV97QcrbqlK9bVgBw92XLaR9LgbR-C6pUb4LmLcxO9SGwx19ksXVmt12uePjEtoAV4d6b5EPoxLR3GrCh2FVL-xZ_WFg84nHhs4LdG5bgxnANnxmIcNbmVwv8K_dzGQiTSvZ5ihpgCDKPT_oz0WAyE2jIoUErEBPks_jABK0VoLMguzgQevAeNgasWDoiuyw6aEM675hiYalzV7C2q8HTdhMjwmW57k7Ke0s3sCf04WVewjZDvAc4i2yBfFF9H9ApC5LoinUgtNkPkkkShdGVHnzYeSu4Y-_JtVF5FX5phLnrcHw6g42sqnHi8uQJyExidl0zse0SuCoEfF6k8Lgu88keURE7g0yI_ffkdoEIMVe0oiyL-GeIIMAYQ3QMIkUmGYlLGzjOfWuMRhQ9VxNOEZCujKggAoCqjID6bW6TDgTauJfQRn1gRKGTXo1NLq5_ERoSV-Sq73xA5ZqpazU6QvBG6qwgUqQNWIP_v12vV-xFKjZtGEytx4fkx2p53mhNHkPMWMS4QXsLeTx-w1il3dwEOhsp2ZmDJv-fwCDCmQwa3PiBmkt1jD4PkBHcytRDDlYrPd8Bl2j4NXDIphoRY6wKScQCm7hgEEzV5Bpymmk4r90OA8nhnObB9hJMuMR5wbBKdVbYBAsDCz1kzwePe__oUaNXKe97_I9yLLT6DveQ1_UMx8PXw90ZpumgpxrJscXDy9O9N-IaUXoh7D471xwGNd1H3NDZQD1qH1ZomgZFVbWfeYxwX93GDyz-4nChD8fgMTC6Qvfv-tlAiz3plIIm31LVkl6Rt2sWQHphzuveBnW3bSA1PG4zjeYpDT2uaMRUAGuwMr6xD0gGjphT3DLVkba-veHrGCxfllOATqorsR7z36m6z_znEhYmGpa_GAKb3JfOFF315T-U6n7hNGdw0V8SbHCRNsQOf3HfpmAAb1KETy-SHh9ZY8oIE_n735ag2--LHbmVcTfr9yKe9t6tvPl_yK7MPOk0djmvErkACH9IvzKu-DW3TbF3d95w_AYX5pk9_HryvL_RLyTgra6dQurD0SzRng-ElGBusTkx3ssJ-DGqWKeZkmlMWd-Sz6zSwZ7YIahAAdxC6FC4cgUXFVbVk8pzNnxAkHm7yhv97579iuYSkNgJbWoJCBL3eDXj2R_BbsJKT42u3xogQVuOHRLJ6JbH8oGCdlex3tsdTDsFdkeaE1ljPlt6sac5Ehny39dL1OwIuR8GoqnZ_3mlf9m3lKVUiTc4a8uKdkV-z3_PewUPNhaE2LG-3VpGeAm8dguq0Zc-IZcVsSoZQqcoEHkKMSXUP7Bjzcl26ki4_501m70oCUG3Xbl8v4qei7difgA75TtALuV7zU7I-UvQRBJTxq6iXclhTn_4J6nRfUf_d-ni26MB9m8sfZU1yhmsFD_tLG5eZbyqmHYL3bUkBtXL3tZXZEKbIcEOZtyIAg9ELu6Uy8YiOsvkQF_7mF0Vw6HrTUhcqL5MXNmbpebanGfiblXG8dsCgLF662NVWw2KoVJjwVl8TlaUDtTJ-GBSajBvrA7zVRXUonBsW6j1_0byeCLSjXgYDotQR_OQLQiK6wa85z-KTzT9dqsBNY2yX3FHd4JPCizgRKslyjrl3bxxtuMPBmjixQFE3drF18MNZVTykscgtW51RHZnODknDfEoCRe3PV1vF38RydgvbnjEz7--j88Z71tUMoM-et45tlvEDGpM5cjci9dmileol-BBHvC2FULjZBLu_9A4tZV2P5L4u2Ttrh7hiCRcjPJmAcLuoOo-6c8I316Os9eBOToQ4DofZYBtBUfTqaIAylCGoxFwPGa_hWY8gRXBy5dqKVjp6tLX5H9-GNX5EaRwXS3ZNCnVCfQ68-GlSuoxLj3U2K216CGJIjj7CCInHrQN3gVZXMthsq4sd2ZFBPH0UotHOqmLrbEbnqnVvPemEl3inTzbFFFyKzSrWWkDEI_UouX8gvpHORYyZog8p5x6zsRhoS6YP6Ydnq6ly9sKbP7-mtRGaHmSNpNyntdymKtfe83jl8crNPrnsHkX1TRmWXVr9iUWoy9HpGw6-zGT0iItcVQDPWBJRP_9TWZBQ4PBHGHtfYKAzGL7gNe140I5O7WDv2HaBEriofaI6E-vvwRFBvVdwXojkehEuWrOcgRr5ykc8x0icJM1KWrq7YhcbCLpJPT9lgvL0Jtau88KGus8scUNwEq6HLK87Trbmvq04eUjd4jl7vmefDtbLP0kJK3RYWJvEfKOA5P8rXe-IW0n0F5HoWr8gcriGFJwuEPyChq4T8X26bOgMFBFRvgbzRgAS6OV7Gn1_h89KiXhloarhc_zm5VhnFE5EKiigvBNKo52ST9yiKqsn08HE7kkUqRc9x_ivumHZov9XhFgx7hHt7DBdxdybhcoDiDy_aLK-PGI237bLAT8Cj_XMpa_CQR2htRsKZLBezRyof_gLvUxe6NAJuWK5cUyDL_IzefX0525OpZ2Fa6Pf1Q8IEgar2VqnE5VKsGdgI9R9lblWLuQK1v9v4CNB_V_r2uHqk4cQEDluF5I1zKcd0YcqGdcqo2YLM6nTVEvZHBxUIbZD-trilKplBQGJ9-c5pznt8RrSlbBI32ZzyXwHxIJoTBgh14sUY-j7QRnQxE0lANC5_Q-cuNG7wZQ3cVuhFWnsAJFokZ_Sut_Cf0YqbKzyaOMOx919Q-Ap7LQAHgMpHqRJPkSUBjw0M_iQKwUia-tmWhmaCNKXibQ5KaQ2nSc884ywoDVNFQrn5v44MLxGC36vVMAzYnUEhhTYFB-BYi5D_Ku9KtYaKsXEeECvXg1R8zk2uDRi6rEaxtALTk952jL-6a9-oDToPC37uexUJd1oLIFEi40ITPgNakJVPAU15yEHsCh782F0Kj-heuZEK7GE9ihKPTNfQgt2t_Ziz7c1XE5x2RE82VzCFysYezrZDgTM1paHBQjIQBMnP1-4omIMxm-0GlyIBQnlG_KqSST8XPp7ZTbdKvbpkclkIKXe54LGBjus41BBG7FVlmdvZHFF1IhyGWndAvhh7QeS6s53At6Pmj7sRVdD_P5uWxrQeFB1yMMM1z8TuTk81nJdD_fnCHrWybZbOUw4KWxU_t2qeRZHCtdO8wS0NVvoJdM_caGAlZdMpzpMwzZB6KgVP6zAxxTRR0w9QJaCTq0FW5QA0cZXIIDq1jBXaxORGn-UIr30tF7F_O5LHcn99NArgE3Fm7y8nbpwDURKjwdgNTeDotL5aNE3bgIVrtQPDY1izwI9XxwGhX9tVgHAuX7QJzRMqF2cZB1fYGRTq1mbTXdv-OnUe-fW1IxV12Cawb9oHe10Tij26KazVotZWZIY-urEkdTaXpP_igxLa3PD7Dl3g0pxIG60opDF2mW-hJi8SuG4E98Xhjp_7bOzYo-_FRw3BZjjk8zUHfMC4TLsVWacA8WblBWVHPqjTTwIGwWRbKbwQLwvn9xECQvOhuyIvHEg_aoJn4gHaq_zduKu53NKg5bGwrsuAw9x075HtHMa3gRWkjziB83ls_Xn5XENAKjpwebDRKQs7QJn7xRUZCgSs1vIyxyW-2j_eftj4bFRHC_COZhX7mP8JvwNrY4LXG7f2ViWcn9bT-uR6jPBmAMqIl9Tp2LzqcBSxG_XHzsqMsGER7nKED2IGwMDJ7s6qK0lxWI0qUpkB_y4kIxJyVM6xQu3Mqrh1U3H6cGUChUYNMCjZ2RqXSuA03bVotWaI6aEzTvNw6QGkwoWqgAR7nxQCqD-gmPw0Jbik6qxMNyFtNXr5SNfV8lKSjHcIB0GzY-xO41GeNlMLa8PzUJWVSZKB6sVPBBqn_lgvWxiDE5XeVebixDswrrk10n-DgIMdkaYvU2S_sY3Gl3PTho7ue6Zr4SgQatsUSiC4s6RO2D9oT1w7LhUiXTtJRafMglVUfttnLwXdNHGjN9oC2WM1wlEg5ZAD5UfGJhvj7po0PqLqYve2kQx_5vITK2JUk38EJvJVX2KV3ZTXXoa7TaJle0sZNAaKRtGn-HXerYiWzkvQeY2l2rYBJTuro3-_lzaUinTZOkoSE05AYYtiuNsyTTRVxreDKp8VSzd1__gg51mUvUppLMrgGEN8Agygf_jPfQYrw3GyiqIZkXraq-F7QyUEKyZzpbbf28kuOS6hUrW8DVI2eDSyvRxX9IgPnhMjP3czaWHFjvt_vGtxl-KD1YpnaofcNHoLHt0FVhSWBxRrt8hwmjMnODBfAVuUgxwlJnjQr6wa5g_hxl5faLtlYooCNIphr2RYnYmvslYJCx4CoU1S3dH5U_Vu2aAYJUKcZ9XxUgJtx2nxBp58Ukl16mNgavMbP2BjMhKJ1EsyD8bWslr6YpzsmwVOvIG9MEcbvA4MK3w9Hjh79RMVKrk4-s0xD7oEcPfWtNvaH4Jd2f9wDjWDcwE1fA5SB_6e-ddROP64Th5DRAjhnR2TNJB0keJrQSgmbRLTDI06S1gbF5ou-whv3qi3lV3_9qnnVWIDeiY1iYrgXXa3NSH5iJDfrVzq5lUwd-lD-mOstxdSuoaeGMVYFiWvPUir8iIC3ojZP9iMU3MoOxnqNHOhak1Wr6WLvYrnzyygpEByvDXqsDBPOOw0ulPTAewg4KvUPFVZ59ZINojR2Zk6GPyZg7IDYt5CFo90jZC2cn8XBI-KNuEoW86gAdz6dNvCGCOKjUN0pZZrV3TeS6pXYpqinsBJNk2JjTvOK-sX1u9w7W5vV-DdysHQa41g3H6ceQSAMA9MR4DSnY-wgGbF93M-5iykD_ORUznYJoI3vAFbVdVn4nykyr3HIZ7SrEYWzIXKsgB_L2kz02wIsVUjE91RBZdbWEaZdUUFLzTNHGZjD2wIg2MJswODsVCqKVNF_eedT8anagkpgkY1-mULeQJQxyTj1zea5sdlfuIYk4inaUNrj8CX-Hpuie_uAV0GUf3uVYtfwpRgzQRDixLjWEkFfGrKmTbLLKq_RKV43GK3CDhnHqSupv2tqkEF1DEzi2s3TlStruslQ563mwepfupEz-9B4yt7UwuSyLU_Phjvn3IZ9tBTtI5UAVLDc0cfqugkJ2Vr9Rgw4GFAIABd765y6-uHX7DvCMWKJjf37cu2JS0rv6WrqdHKc_z2Hx4xMiCFURAzxYq6sKIGGaRfej63GuV1gWma6n94wtv0vW52oEVeVLr2tX1Din05mMPu6WbR5RecwvKmWP3BPbQAmi7nJU1_FeqW7BF3nxjynmVzS0OVgvusA6T1j18vbN-7icCbNKSuZEMm2WGocqMfoWxa3VsimVMdE29qlZpqofvliwbruqWn-5s4t-ghfhUmPLp37MpDxPKFJXzhTTRGzvkRtU8SVlMzkTo5IBPUVl9myX5hPCGJP4P9pJWe2PblBMp0PTPDdvZr388Wa6NmCl5HW8EsecZ-qofohvKtcfHYt-Fb5KuYlskCytS_wdNt3N47DxfbW1IEGXv0vXtFVUtea7-coEg2HDDgSnpryhY40INqPO6y9ww5ZmkRpZO_iCDRDIMAyap2HiqysG2DP9rHIJ1Qe2NyT6jQ7ClN22DayDpziVw8bM_f-ESoh8eSmAregwm85FxOm6l-1i6ehyh1stDjQfaWs8Tz-E0LAQjiiuG4HlGgT0cuzsZK45ohIqNwsZM2FAqa2lJzzmM6eB-taBP-2JDajWnkHcI14WXpgWBEFuzQR-eee_8E2F8hQcTSL0zCPnPjex7LQtHMB8qISxGPPB2sMOMT8MHRXY52h44AvQZQDeanp1AThhvpxpJyLTMohS1uzw17QcQBIhjPZFjrYnBlr7G8Z1dx-pxfCgcJNgxwVsuUSy-Xw6QqC5ZeeVl0ueAbPmifCDN76XEx4cepg346lfbI32jQlav6tcp7D3QtxVoFTC9_SL59LKvV1IbwAYK4yWFJmZqPMsmIoDNJOwpvYqqmOBAi--2vBQak_OeT_RUOCLE91IBttoel9BVhzuKhVKeBkg1RqJ9QkAn27EneJFvKfIKsDCHmRE8ZygQLyi_Gxo99ePK4AX06DVAQjJ05LC1vDUvfqScbNrVKuIIMw0Qjqj_0yeq_3Nz8t-sooPltm8sTXpUVTNT0GT7YD0rewCfzwcZeKSiKNo038WTTk2NhWWe53glJIL71zD2WdDy047p_mmmFgNxRbdRrgN_ZGDe5R40R5YH7DiJdK384ISDdhKkUkVF9NcvtD-FfVwAcl_fZ-HQKTUOdYZr0k51AKnM0N1Hx2f6JUG4BjnICcEWggdj5SFMPi2hCoUlW0zIW6GCo4q0G_FRkpu8KQhzFyl6hZBZvGvN86QQM5lvCrylYJBrveMVZHUlLsLRAQTZI1hPRqht9EW4_IsQA5togC285j5KGaIyx6RkP4hmdv8ptvBXleeiYNqkT1d8-4d3TB2CrVVM2I4aeySkSKyfC-3SCAzrhJ6T1X0zTkql1GlEANTQGyB0c-UMKjk2XwHmSjPIQuEm_zhQ-KHaVOqj5t7LYy0YIG2a1jaDOiQUGr-Jjos7vUZAp6gXilgxJt6Osevt40bARzlfrRaLr959QVD_au_2EPZZOJzbW3Sh5T4LgbMoVrMc8cczwskGSbAd2DWD2l-PpRDKLNa8vElJktOxSIAtT6-BYK7pwsWis091vPI4htmvkmo9odwB9fzHGV62_1552c5sDtJ5t7GRxFQ5jageXPhld8ritjXgbvRZ3D25TGEqx8wXG4DeiZCLWBvRDu5_ZBKmc-p1-O0PVqtD5b-7CFc6oL6c0kZg546Ps1qEmHQqqUlgKLeSXDqCVh8bFoecn5F8k4mF8vPdnxGMy3qPI77yPhjV0Gx_qz5TsT9ivjn3Nj40x8FSwjuJB2UCjjKzQNfBGoxOI51AQhosTTwT6UcXAInJGTywsldFMi8yXmS0TzVMm-EGXgEgr2719OwTfX6EMemI6uyy19xvLBmrEjcKv90KbD0otOFMGTGZZIIkgg_FPA9MFh3YHsIv4h_MvZfNu_DGhxTmn6pYcfwe3SFAi7KBil0YeXvCR-uejL7vfCCPoySBPLG2EQyeIvAtRGecoSzMISGmCTpEMuhWNmGY9HvWQ13ek9QB7DBDTrNWWEldzxI7whNEKwgZ2qO503OIpFMDfUskAc_u9vEr7BJeleE1t-rIk__DHhXErm_U618cdzyHr2PHvm9Qbq_NJInLuQg9-vvrAEcQLhoh0fLt7ixgr2-_ywLrawnJzBUGKhS5y1GS2tpWwfOw43Cr9R13LAb1ePscUreAC2GGgodL-Z6t7LzRmh5-RJe743KqJY3xg7h6dmxvaxDzwhm4It-YD73HJgjqqqtIclAZB0zyNvErpWnokErrBddr5IFz_h4rUlZCBTdpPMwU_S4RdOBcas2aVDGGmiXp9COpDO9GNas1nuL9OTOTlfMRdivQMIBYltq25UtHz3vVlEiRSSgu1PMC7_wfwa3uZe3wZd7s7C39DKHdQppZlrWd550vozNd3rGN13huW7ngM7rdJExMaOcXlJeuIEH__fmYVVw81YzYB_D3Rr8aLA9W5XJFp-JZ9z79kgNXBtfDOKF9hI8JVnLu7q0MKOTY2vp-QwN6CDPznFwwa8dsd1weo1x9iueR8EXNIwb85Y4Xjanx1JevTRLDhNLKu6Zgu67UwPcfCzxJjL5DsOno9GEybp2HBAR07h2d26etAJmk8GNEGLrJD-BvmDUgj9G-LN7BeRJ_I6pgjFR1Tmi_kpY0noA3kc9q8BVMwdgVYgouuJchsPj34XTmjQC4Opk5vb9na4MINW6Hv154LGr5u2FWNZ1hC9Wx90v5NTWDwsWUa9kgienEnUfFIdaxbsLGhPIEkAJ-QBgU_lJLBjTVoNrUjwTrsmtkZozqMc_fM5ncE5oKGpvgq6ElIjD-PO2yNRQCiLxhhIeHKEk9Yr6IP91nwHWw2sqIyI1Ss_meSYrYPJI9o4hvsy907m7dhtDsSC9RqYxR8IeHzfT1teje4cpB0T1PiPoOA5jET9BOT9zEmUnXRRpPagrU33EbpQSJBablHRgg0j7iP69PmSZjctv5r8ZNGTZcTJA5DhoJQSg0LSi7lU2OIl4MgmmqTh4XTxKg6l_Ll4uNeJsZgfbP2fZahpO2SY7tA0lI-AIkjzhWlcgx2R5JZqPpmOUI1NlK97-OS27zFL0ZmOpYu8inHgIdR5VSspxWU7ioOaz_jWvyELS5OqU26Gc2gB18ekm8N6KE20hKi-tzfjUceZeB5shEmzB4L5QG78kgXHy7H-O4IrZpoZqZEizziiKcW3XzPBBqwt-xX-_XYD4JLqq9LkDjw4z3s7rwrB8nCMYYembeIcsrAR80bISuYL_vNq-oHgf4Z55wtvm5kemuaVAS61ux9_1ahDVxmpHqx66aHce5akFQY68qtn67TJYOgYr91IEwmxV7lUsWdhM86woqbtVakyGPr09AgUuwWN0hozVuPfO9KluaXseRxJf7jgFXdUEAq3xXcreNabRpQPr6fuJJ5tyPR7J855ht7SKqRQW0huk4n_T9DBTOWX_Um0ZBIZ1DOrizrqtzDJvaxBVf360KrxpxxdjwhKs0-ReWuvv_Yy4HxhNcruA_9LBlis1xqCrIqDGcHkpBEh7cZiuooMbmsO3gs9y8AB3VGZZ571PjHqL7iAO81vI2EX2IL0PvslhAQ00FhsS4vtJfmFQM2SAW4J0YLwjFvwPPUw_L8xxourQu82V-5iE4y2JI2LK2VFeP_0-2znzx21jUOwjhHzy6WAAOZIZimQZLWeFRvGzDgLbPFsoc-Nbg70JlTdKqFzc3wEvUCN-a1mpGqxKPnelD6zgznsTnKJ8ONzlPNn7kvTepkTdMwFOfQmzk5hxY-y79gvKTiXunxKzJ3q5zRA13aNjUDCQR5fPySc0yb8JJFEGT7v6GopBGZ0VSNV5CtDQXgMIZMoOFTeEUeaG6Ca0WKket0Vo5JfAJfJlxWwS7h6vbr5Y5tS6XPZUHyzQdFJjoXxuTynW4So_Xa1oRCAQPson6h138yO6EQGPEPgQFosSBT1owVWcGWurZDB-cXX2i9awhIwb-0sYspYlmUzuU316rcNjj-9mjLGxX4dh_A3r5fPfxxyA5siKDFwavR2fmF9bvYPEUb2bb6FrkYnNkK8ZLf4t6_yU4c1hwpv4O19W7lZ4az0VJ9QwKzo5VYaftL_ZjJtcRQJaZyDgfYDg4JaHXp-grgtJV4FlaZQNyKQ0ZkFfOs3e50iwIXiF8mMbuilWAXHbpFiIecYtl10_BtE-T2sa4rrmdO2ju88PquiyhfjHaaLtNXcSqWI_3DsNEfcTWUV8mYW2_YGn9JWGB-3QVQK85gc5uQP4fyxBMcGzfL4WHk6FmO-quMwC1VZW3a79WhZYVNAalvMqI75Ip6Xpr1ydBbJCef2ylS1vBfYEMb4gXsI5X9X6XcC-0lthixB7ggwGskmjRe0FXEycacz0zBtfLkbbBdr3e3VEAcd-w1eWFl1YvQqPHffWZQhIZprloRjuT5U93CHHXUfg5a2iK3FloSo4M9oW_E34QwKNDQAUDkpqSL435IzIEHcgGq-j0oswHlHKVZvjQ9JsTczCpMzX7lD-czPAzUviKhbSLz1mMIPB5LlEcI6gq-674BHloa91mBGAkz8yYkmgcE7PdFzCzQvGlxdnC8XEWA9kpnI3k8c00LG10pWKCSZ4PsBhTnP666ifOX7hTYG-B3UgY_kQfPDmQ6PWUlXaNcHunOYfKk-N_YBZDWH8OBiMoB_S1LkPOXWnqvn6IfsIBYz5qYIJZvT1rJ0ofVSnPyeGWKsXELO0YevKAjqedYU5kv_YuHM1bLS0CIL9UxdccIpChRzYbZ8MO2cWjxbzJXb-s0p5L-gbGKTsnsWS-3dbN0VGnFiwW__vO3eCaxCT2hHPsfzHtRHAYsNS-o_nxE15q-H4ApNFX5OrXXMlI190W0qRecvCcaQ6_Sl99T4sh8bjG5LvFLYnKfJibk89rT_8XRkxN0wZ8nkE3yaNLIMMAFZwzLYlRaItSoQBtLluPncniX7YsJzOJr4JyQPZp1mh4i-rhLGb15rBmRllJ3Jz_Fc7hLXtwFubmUWXJmA2ai10yuXiEIOg3xCxZV1qSm_VzfTjufACnfi0zgl5rT7Mgh98pUC38_Xz0oFXmid7VYCX32ckMZ_6jDeiClcxl1d_BPmS1LzukCAJu-YzEJWaq6BeBgfJp2EwPxGgQkH16YJxWrz9M8Wv0Q6ePgStpTOPR07PFB3SwKONlJn2Z0ZGLX-aYZpyQAiUXBKFlReFx6pCfzLgp3xUiDtIRVhV0-ZdWhBuLoS6vYlB7T5mDdjT4YnLLOCRap27kdEpheiYSHc7nL4hLcTJf7CJB24XJ9VZgx9j8DRP2gdns7yOJDi8AeRVSFXiVxpqdPn6UeNwZKrJy-zGPCjhSQBQUrmZagjA8r2aJ_FX2yiBiuUg1pGxAmLhLb0Y74NUadVN71MMrqFvN1B3YG7YARy3EqUMRmZ9F5EABqSMLZZSP4ay-GCaVhU0pTZ4mTmRKPCB-O9rSlyb22pfqH9h5_050bvyXiv4kd5UzWUhnxO3_gldnPXBA9bYL16a7K70i5-YWL8zizQdDV-fPkqHHc86jcKL-jRZ1RWn6OfFmF0H9JgUl81lBMaHRia5K6-GY9ICyybK1STAFesKmR8iScFpjYPBXBpMlEF7ks8Lodg8C69HMIfbLThH4_otWuVzr6Z41PA392B4ItqV_1MwfRhmfqinfTf-ccfqtRrwKrrfZYRF0z1yh5PpF87BtjnO3hzodvIA1LOxCWBGlcDKNISB9yO73PrqDoKC0vXhWCBh5w52jTSBakcDZXuG_whR9Dh1WRjG1_BUIihtG7twISCbZcv8-uJHCgeR2Mew2Oo66Esgw0NvJHecEnzh9kx_a14RlLr4W0tCnOQw_W56ncMA82igXzNzV8hswqsm-RTqLM4WVAzBsB0AFaHbS_LwIVurrfNqmWhGguAgWEcAw1PiNcwLIXtQmNZFvP5BuFv0yNm0yHEwGwXMT5NW0H46PjNKzdhAV4zezbCtGcf-zTYHwxqdwrmzWo1lpST97AWFfnkeKuoEFF0YWexROZReZkEwM8indNadajVverxFNeRq13jjmxjFj6Gp-qcE8IZh7eUzLaE9gERNPMVitnHGPqXvm17Z__jfX7w7XECB-10En9IoTApFXc_vkIxVm13Omji9j3StNXSVtpH6DtVePhNNm4YATTqCGTtEwscgxnoI4A1d7p-iBgmvMhoWrPffsXz1JPTANj5xcnkwknBovVTJGD5ZbnBjtwQgUyJu0JfAT-SqLkvxYDhvPZaJBkZiV-2NXxFjG3wAg42am_ClgRCH5sHKNuVZI8x6KkqeUaftyQHeehRIZTWT7ckwb1AJsttt791YhWoJYacbMRaM5WqySCvpUfXCTJExs4licTT95MGPAhufroYoNqleS5Ik2OcGXe6r3UYfB-Zpw3M1RgFOc4-pibi3_jAerlSUrn2UwRMOedBbN6D-C1UNtKH8J-XhHna0iDbteW5kVjrihnURTYN3PDeCbMcf7LwGTi6gRwpy2lplJKdZYzo3E0TTIIkxQy62pLvhcbsMRtt6WH78W9IPfqYVjSyNvkOXgQbONt6epARD6VWX86awo5i9z8CPMcv79iORL45o4_8PVLNbNNj_xWEyW3VSmcATMy_nZm4CT7ncixQk_OcJ_YxYTmhfVTSB7QLIJwx15mLoXkvBlV8c22-HjByXYxy3em8KbO0o5TTDbpGXg2iTSN87EsoPZQrK3-wYfmc6go3LwYo6jhb_bYLzv2GnqNqg-eN-zN1WCLM43xubwRbbpCGmriykFuTp5Y8tLQGRd0u8kCgK6UDinKeZFRKynMWOV3bkpHKV_F5ETONxVld6hurlQkHJHTefoc35C6hYDRNFdWRndapinPorU_VhQUkoJPXGs01KWfNleJTkb8usK3WzvNch70mGi3hzN3gbyjXAcvc_JsgHunAjtYEM2O20G2sQLr2F1hstnr1JeMKI0oQu8_UL5KaCuOBSoPSZMpr2fJcGvNZ6kQ5E02n1OugPTvcdQ3f7t64G8zF5ht2yF60uv9DSP1tmtksF45ONkgh6Am4SXq0p6pt2vPQ23EHwxVY4ZyIh8H5ZozVej4yVRgf8yMyMj1tf5HwwxtNwQ98ZsRnmgJLbhNJ90W_4noYWoZLFGKko5B12CJ5CAxseFHzQ_nIYlgZSXgcANw3GQ_rvXvJU2pEMaDWKgCzGWovoKf6TrXp5WHyydFLpemIIoj5EbY8XWrd_jkn_QNZcHvOuiJRRr6h2n1pBLcJQbaJjqB8PS-27BrmbDKAboxZyqEigP42yoFHjmbcLQfT63AgiRiM6SaiyPeviJqg39XViaiTgvNchlA9h-rZiaQDetQB8N0_X1vyk8FEmwH2HN1j9neo3Xo3gv3ecpVv2CNezeDQgCLtaw4H9iuqNATXCj2aRUmGeZaSf2FIBo694Og6XywR0wUUyGPHJq4mwMlmdL3g-Gyt_K0n-eK9X1-OSK5obOznoyibvy-JKh43wQpP9cjOEPF7orDZt-_EhrW8hQ8JpdAHb4hm484UVZeAfj9GCgeikvlBFaTLczibnddSxpFcZtiSlMnM5AhKBbEZNiJBf0cGALF_I2SdlxHU_B39Avwmer1Ox7AxtOvbpDDiiCJz---cNCQVGZ07OZ5WbA_2pF2afvJzGqTkBjj55Rn2tFvYXIxNGl7ob0tB4SfYAJ9IHwoFoKqsIv6xYBjzPTnL6cJ_HDaToCGLqbvInLsXXcnZZqxfIq02PWaTOLjmlVv2CsKxe1nYUKwNwSWfQk_h_H2Tp0fQrj8_DTTPICZIm2K_1pqc481XODfOrrzDXDMTMb30U6rlRvL6TVjPkSGPA7AS3V9-hCADVNYtOdriVltijyS1Aa9VGunCqXG5UxpolZg7JC2cktVG66yy_DL423wqolVXtdtrRRfqYxLnUBFe6fO8gKIjD6ZIIwWdjx0r09126Joon-fhMBIt9BbOqYbTBseZPBhpsdaeZ3tVubye-qjbyq35_dlvPMt6T-WOCk-KJeg6tLgeV1kDh19VN8Lx5J4NZPkYcietUqYyO82tB2_M2vGVmAke8acDo82vut6yn82BQ_Jd5onJsey2mz2vMxZ2tsd5QKkMiMrNgGkMnBBIDTgz_FnDm77RxGR_8rwe8WhOckiHrfwSa1mauuk0z7Pd0YVSUi80_QskJCMA5PwLhA6PhUdraXXxnT2_kFA34CNB8oEl6c9D6XHVhYbj334bJvBUIqmwN3xO_TTIncoMe_zMIgvXJWG5vWpBthHYHpwVbUkch7mMjBn0zAO8foAvRC1XIGn3NKGLiLAgzM9q8goJ6ZFTsGLWfHwOlrmMYCItIjoz-VB_BNV-mDOMZ0uH_UMAwR6HrX_oHGwD5dVqjMmOxKrve-9-3G9zhJCvBoHwTzyC3HFo2Sxffsd1kIYFiqcZWCRQnFVlf-lKsZAqOjhSIQZRUk271tJXAJSlR818sovSUDxkK02lqadvfPW7-qUjEE9J3s0ZEOJx5jzCo2l-W8Sg3SwF642NXYpxbd_dQwuVWO8o54Vb_Lnzv0WkE5HMs0S8K4UMP3gAFVsO_oaaMOe2kDsR8JTaoMTHqlsdgZv64YUsvtPTINe9JPr58XICL64DoDLLUNcQqHshWmLeVNRqXW3HDN_3fFy2VElad7PG2kRtBAbk-cq-rmb_2Pur6k1qpVbL6Uh4MbUVGIi23XLYxym0Am3lUdENmnOjHzqKSQeEGZCZ9Zquh1bAnRlFTzXoPV2LBneoyuN_W5Ua6XZxksR3mUGOUQqLV4deX0vqoRnqDhnAiRhr3UTTxkAVL-2D0Xb70NB8ioJBas49rl3I4HM9TRfFCq6JfMZNtulDAlC4LadtXxx-U1BdY2k30bc1MkMZrhtLH9lyfOLf9cNi9m4lgjrMe7VTjkWaz1r3TvstSI4A1AWs7PewQJhjW8XIlJ29IK7yfujvQoIMoKEqg6iqKO4ZCV4UH8CTUQstdsGoffo_HyVaq7P-ixjZCpNp84JYQedGH5TB6stIIiPLIzXm2edtSmBQr819vLeir7ErdQLqY9DBnM5tjHwl1o6-GxoJPQkVQ6c3BdRRXlV3OeVoaeQr8d8b5Z0mUpZGqp0FqBvOTeVF8zKvIqXZR08UHdrqXjCiPP7ruOQZKlROBcmoJLYvHhe8UeVEvtizy0yz0ZAkhFPMQTQELAC_DjdsZTcHHU4qL7auF16ZcJQGRmjUpLPh16tjJKvX3havYk_kwHc4b7iMN9XgcEdeN6GzSs2nS9sca9pbzvNaSdZaRuM-HNXiCAF4V7qKgbKb1uDYtixDzGXI2DBC8u5MIlzv7jqyRQ7Sumg6ZtwFZn703oM0834UO_D5gLxeG_LGf-5M2y3LkHr7y7YxSQX2r7A7T2WRsfRr5D1xGbCA1LxzRw887aA0pTYiKDaR-JZ7dDdc7X_LWEfMVoLXCgL2RwnRp3hw26CvaBRz-95e2higxg14OShfkekw6ufRw-mmfgJ-urlTN9aevh_-jeqMl7I__S4I7F05lVe3rARNTZqS2-2J0jTUFa-LjnHm9nJOExx5mCN8nPIqOZTkHjzKsex4csEURrfBLfB6XF62fgkiZO1MAIX4S0oT2euKUChUA39SSavXbs9h1u2TCjeEaWa873Fr0J8vl5uNjXyY9Qmk71WTlXpEHPTfGjJUGznYUUKf8bMiv0UCtEo41u6NAQANxGuvPGPQqrMG4fqTztUHN7Hzih5YDJg9nECGVEx8iDlvM4iSRHohZ-ywi9SoqsU7YDGz_E56CO5jLpWgJU8zTYuqYgs3Bejb85fFqj4zxfgtiuXi0cBAtJT3OVVu9Ylf7kFVWBAPANAMTVBqBqUzG__9BstbfWvWTvwCPJmXpsmhisAnBBRK0TasNKAI7iwux92KNwc2iHIKfPKfSjaltDETgEQpFv-IcGdyEIPkfqzKop39I8xmUQZlugPKh7SOUGjow9eWrGy80-Rpg16aBuhnKHrNto0ehooXd8y4tkyLDKifHvfz1E2J3eyUj0b79LLs8hdoaHJ_0ehJrv7AOkq79O3znVdP7Od1zaMR42uFcQzx7DXuzCVTQnjtZ9jnM7bNGfzNWPLGNr_VPZbm5ATmuTRIghb-VM6cgzjtshjBSSbweuNATbIlaCn7fznu9ofj3goJfcTOK-6EbfArGhIveKD4GmRgDiOxeNrnV0GBWaFdwc3To6k9dQeineLy_rqQpEqtVhH40DX7PJUCmL_SP_Soam2XPHSFY6ppl7_Tn-oQ6BodvKXdkmfZxptlFQZdFKYQs9zHMMwtLK3U1_LIUN9U84Dqqc_pXt7CeBXu7vpkra3RLKYYIgXh2TxgTt6hPlGp-6RjEaLxQq_bkdIeRx-TKQTRGCjL2XcoF2ghQMLR13KsDZAEskOCtFoP726k_KokTJ1ZT-MShzQ-nS5BlIlfI2O0Vfv0JVqyyEhsUmdoNXdaUMLX4T64Jxic6pI42S0nwUSw9yCe5gZ9jtdVimp0M6PoMCS0GHaAzgDpd0JoM6ImNAatuiniqEFiBpQD35ptRMB2RY4MvEyHqETLDIbkYosxgy-6BGVdruiTvHa6s0O9QjYTa0LeUn_XGsuuY0GNQtG0lHWQmoJkCJs3LqhgocYat2avVfTqfflwr6JGRLALl4QoU7lQr9528DsLLGkkiHA6Vi_E-F290_4_4ChvbBxdIX5VMeogYbKljIR19A6pBI4xIUBpmZIB-XqtmoAx7X0UH_eqhVd1tqBSjJGAVRFMWcdwcjAA4ADhP09-Fb6gxiqNTCmTT-V8RdNjpY6JHzDriuOHbc8m9ramNcY4ZaFOck_DVYElgXVCO2cKPkI7PX4b-TCgjfkV8rTbbRcFv7myNLJv5kx8myHov6h5AIgY9-wBXey8U31c82WCS2KU8BB0h1nwwBf3Um19iJTMiv4ZBSmN-SPZM-ibXbdFBorYst0hRE5entTbeVL1j5hGOqeVokxrj7OwE7GBDz4yTxPNrVz5e07AQy44bZC-w9UkLY5xjP-TExHN778aWmVc6TwnR-VNhKd0wv5zbyIFw5h3MQzH6NrbWFACgkNQ_7F_w_FkwrbYdncxOjf-2AyCRTk3hMhk4QU8ZHHde3r_YKvXFr3lxE9UGPBlXlNezWmetAG4l_YzHZyf2KyPnH6kdW7RwUEs1B48qA1uFpa6O3lfEKGlIAzg3HQ6pp2IKmbLcfBUK4bkCmmPhQx0Sjghh12UUrAvgGiS5X7gb6w8LPizUnq1nl6WFfYe3OMcekxbdkIip0R-YG4VoqMGDKSOozILo-yFeDrO2Ag61nT35oHUNpybmKUcQAleZsmaUg0ul6USKjNsiNrBgiwEMGbBCvrZzZbgzclx0adrsQDjZ2VDXJa94LYI9dq1XCrNdXaQXbaVknH38wM1bupeBrZXWAYl8Y7BOPC_kklQdGZc2zF9eahsjXz_crvK45h04Oij_VgbbfSyPb5m-e5AqaJ0lf5EGALRDlpaQJC1DTm3LRLiGISyToczWSWdDpPgIF_pEcIL2rvZShzO3shCCmCbVWPvHYrq6tp7_eORTxX20E-rROFmN1f42EjhoB919AO3Zz_jYpr7TbHcknCT6QWctt0Z7_doI56SfIthz53WB-gfgEGspR1ZdJCrPC3xIlfPkuF6ftZ2mlsdNvjR7P4iNVM-Sr1ZGOHCGmjFd42zJy7u5W4qY2p4s5PkqBPLokS7HUjNRJTqlFCEHBjvdq1hMDqWnc7Vblv_aiwaTEWbkCnr38VrRKxEhMsIyZwpsOLV06T2klzUmn4I9y1Gra04zmPWOaDhNDb6AipWOFrHtcORTZwc-sYbhRBLTPDkwz7voFirH6FfwjfSUfNUyrhG5BqJpnNWCKbq_B5zk1dJ6Q7VWHElKTKx8c52vkK6Nf0W55nYS1wieZP7bkdL9BYkQ8Z_oNiYj7kg9GrBXPdD-mcR7saGtXWyT-_dXGsm20eidFMzR5NcuNLyMXxcs-Q-jdZnCcrjX0Kb_0nquBsoz1NFE3qn7OxFldPn4Cyr6caJujEViNCf6o0VYD5yps0e7toHZO-AEXQ3cs4oTDZ6Bu8NG-FQA8PFLKORQpClP7Xr528tADWofPqwSfHKWnKpYL7kkU0MYRhIK_FryJKdB1n0BVjPokMsPLQrl9fRZrMMmXJfVbT1CoJK__OdY8mvWFD59XkdwrG1lmqRh4yhpV-kBZ1qt1Iqu-An-kv4jQv2_06ebH5BKU11c6WnGh46uEFKx81VPEy6oxZXIgBwGgWVrUHgWoKhLwC-I4hTT7uZYiPp7TQETpIorPljhc9LAoqjtowETJS3JNWypNjc5wblfZWfG0NaxdzgkA8Eq8o7xl-A-w7UsR5lBL7B3AovyH-Hgz-NPG-Kbs8hUvlgup15MsNR_fyrBbwcGGEBgDMquvNva945UC6PKWwaonfrr0oZAyOnxeQ22rx6IjG8C86SdlatB9GZGfQwBUbZY4SwkcVxPXbaFgpTuO2O267j_eoQo4q-f8cMvMRCPM00UZsEDxyYDr_ai7rCx-F6V2mpdqx1M6x-Jwahk330LpL6C9GXSccezz4m0w-eVs6vA3ufc5sQQJKazWoZhbv8cn1Yl3OFk2sX3XsufCgGOUj-CczujnuI838Y--SarHrDRoj2vMCaNZSzk-BVZZcckKMv3DYsCefqkxDpJKdsnjfrHsiWtGF0ibdBmY9hciEFrLfwxYUuRUjHnXOUJZMwT99OripGodkGjn8u-tDxe9Vr23f87aVV-nnkG8s98n7gerfzOHroLvPvh6mEpEbXqdX5D_x5_A1BDJvEcqBxHzOxlD81qwDoRsJtyg-P4RtSOTnKFl8RnyCQgQqAsK3AkJXm8WodOr0ago9ykO2sLb2zL-iqeNzH9OoPxwN9GRnDnGofj07I_o7XbhizXejAOpUaJ63RGylTDSvtEX4348SaKF6_yOHt3hZMRY9erB7oJMm4ZSJ66mY_CqsPyE4L2wFPerViDHMiM6cNY39tE5U_WvO9u6BpzNlMqN3_97nQOY50AXu04puigOlc0hcqYddCPAEwpumAWUN_kUi7kCvjGEkEwQD9dqoFjJpj9LOgI5zeEp8AEP_NK9971DLiPb_nwjGY2PNxSPlbYOpVebBT6oRGZTS1jCux3YtjadT2KDqAOsJ0ivYAlILPpj3NDcUW95BHRPXo3Bhnr6jO71X-j7hpKUJ90VepcEAp7rYz75T-AJK58F7QpoGzNy-KvxE7PAW_wrw5U89pdrkHH_wpTxt2avn1_iMEGj7sLbhd4FZ4WvzHSTsRCSFjTZoWErTQ_bU9lSttYmCwxa9FV5_cTS3brsCLB7ar6Tz53trHnNMy1I2_gexnE5a3_8aGoihx3QTQUiK7b5MDyt0CNk_AdvVGnwikmGm5vaJjcFrNl6kFqC6-U0PQ1tBs9UfNjcP2X896TtYk3smOoVgOaruU_OTQ0SpFIP9E0WUUN3NjIhtrVmCkmMuXsMLF4jZSr8oAebFbMvBr9W6zM78_kYpjZj1Y-bYjQxzORqSW24DdqOzhystS7piHNunJnUN88cEaBr8Pa2K6HwLFa0gE9LisjJTV1bAIPa3FMV2LAbfLFVhQ621wTg8k3nK-yKFW3TDoECVngK5y7MUao-BBn1KTzxfSNbkyzEFnKhIbDsKgG-xplBjsDFLt89DminzLh8fmaEakYN_Neaxn4zQZSY2HB52jUD9UJyNnoUnF-Jm_V2fYFVplQzzO8iDIa88SsY6aIvDFqzWjFjbirBMTrq-UQPRTbp75lw0NR4m0ujF__FW5NloLjLeif-WB_cmUSVj3odwYmAw4E435KIC6pd8aiu67mZ0z7jPES_p5ZPDmh16Sv0dPQFaoHKM9_wLYOwxtK7Xj3ouD3QhpvS4RFnMtgWUkXgf-T-eerKWNWIb91qKOH3RYEFnSpx9Qhq7kHJXx3rWZvZGOOcuKDm7-kTVnr8hoy83h1QV9cDbL44V2-dOcLCKE_vzaqE9_ZKIJJ3f76En5191oxkoxykHR6gk7bqOrJZaPraPDArItxzkb9H3mwCVeQJt9pbCDkQxGuEZUYlTctY_cK-PTQ3Iafo768FDxwMeQlAjg9_wc3kJP_l7Pm8qr1Tu6IQWeWbwwFIuNZqi1-e7CZbnfRu8ZwSQYf77qcGVHBBc6yIPZ8qIG4yzhnl7vVi4fLywkOBYo0yvW7JP54771-UXdiIf5e0LSFk6PzOnfsQnoU95pNMyR_YNClhl50NbxEjvLa25XSTAPMNpYszH2zxULhiZvAh2BuFiKJoonCt7nSGxoOOU5gVwsFX8aYyUXWV1DP-eRI27OLov9OmAW-DEIf_2i2-mrs6YOgF9mpGmIL9leRzD36_oQRzbTnQZgzYz4AZHa4C2rpJZqpZH9Z3HIBuYwbHE_Y_8LyYRilMIdmO86jX-XqrpSggumcV-mPnXhCKdCwcMYzuz8NoUyYM1IsfUNRfeQjUBUivyr84jCc3PxIFi-Ubn-c4Vq2RCPrYRGGoEWWzG9Qh8I931mRCQoP30V81-SxVc5SCg69OMWLcXFHKTKWpRUEYaH8yURJOL3eCBk0LcH1YiFggP4g_pzUFeEKEdkpKLUv-crQXUSWOIOK_-IbwXHh2kCATTJaL0Rrd5SGog1IXeruBGe6KYffGj6nxiLezBs_KZV0evVeQrvEyaTbqnnUCzDZ-TKysCwc84WyZkAZqAyGzDVqyt4r9yZMwDsXJ4qEQlH6hZ13F_l-gsO75sMI5c3lYnsc2e8VLNn4BiggvGyvY-2zIcP0TOr9lqjVANpntcxwyev5tO6NzX0x1Mi57NjfU3ttPmT8pZS3gG3oUJneJNOZYI4Y-OSnC-M56V5LmuH4vDfeMkecFLW4Im9pD56pMUOyMjHXBhEoCPZHKteqc5wmHIxPXaGClY8MLSByDpm43dzTiX7JuBkKJG7EYraaxqJ-kkoxGaUAAiM7qaitEI8Bs18lWntaD9Zq97dHr5ohUczSERgT3wn0i1ILn7YwqKvI_1WOWjarVX9bo0sEnnTtUA4EG9yGSTOLEO8s7xpq1elhygnBOQ_gkfUFfRKlpHIOhT1bGNAEnDaa1KmyILo8yuA-Hc9NWE142uIsVoHyGTQCA02IRBU2GX5o1pOs-SMJuaiUmk2iFH5VFVbl23ayTczuG9Vga4NK4Zw7q3EDJMFUDibVpmFBAlmHbtIQUnzH2xTO6hwkPNZSXF6KEewrjuHSiYRhZNkKVTZ-zjy3TWojsSqZWaKQ0uyS5dB56kFEuQ0pZfs_BOZOFjFjmlJU1NtcFNYSfNjESWl0ufpOLKQ-DF0xvb8lzCNLcMo1muotxvRr-C72tjUHUwfZxQ8S_Khk8zcjWEZjd-sU7iRIRR5wvcUjnPyC3qPKJYgYoLf0R8iDz47yu67AflkQh5RdihO8dxtM3BFTOTT2i1jUUizGLqekmYxpft1mtnuhIcWU1uBNkarQmlno2NDu1Y1rcIMKVzze2HgO9TS0mboegj4--zwdAiSIs6sNeCIuPTLjCpPBgYkV1UB-UvkauY3zrzMRkfegSf-pr3ftwXKQ1V_m_hEiNIu87H3Uby-xjv4zjarKRP20TDfzUQBRU8q1UxFVVk954lw6gpLtsUL7jkHirSRyzVmq4SQGzySajHEFMeWqWwkmSZsf1PKZCVLgEPreUZB0K5W342oq1I_KGgK0rGRJqbyuXXOH4FFRgtoQp1mKevFUysz3UoAYcde6NaFCWcvtB8s0qrUNhRx8VPJf2h5Qx0wZEsQnrxorJDdibXmZEtiFG12YUpjo3FABVOAQfUxG6yGzKJT8VyBHwLj6jOnAY3vFeiweH3l8MhxKn1zlo65Y56RzWRVmpeHxyJBDDkgavevL0Mh0pjtdrcckdbHRClpoHZjAaotZOnGWl6VqvPurEJ2DqWAxovaesf_8l2BBbBINHPwxsQRtRVEVxEakUs6TndEv3VN_2CUzwDf9Y-b3fpci-JgXbypXu-JvTBl8PT4e0Bwev8r5-JwUF-lf1jmefb3jpjuf2PD1pLdXMhS6RD5phlglfheyz5nNvAV6JP47bnhVxsC7Ur38MSH9LKDQ1kUl4_ZCql8aM0AWiamssKMRLQC7nrEoedB8GWndEuqMnzf_av-QpiY0cMNgrjSgOcNU0Y7WGzGBgMUSGCxhpFheHuCof9l6y6_ha98Vrw-B68pH_bs_ASiCKzsunOH9Vi3a-f1IQQJdgAEaS_nloHLNfZMnIA_W6rY1LLTvrTpoCNpEtHiXDegL7IzZzFAT5qgIOl94Pg2vnjXf8AJeIDue503CsvTPoANhNQf9naAtGsquPgVLPSgAyGWpefFau_2KTqHdapjBFwGluWxjc0Bo8LxnW6-WIC3WEtsF5QZFf2DRSF7Y58Ngkz4JS0n6VpUaBl4czjwmBPlG6dXVphkT4OO9_TkuFCYi83iusSHIeq9De-ifCUCRhkhudSofiRr9h1_HkPJyQowssAlpt9GyKaXNhtniQYUj5jAwI0iXTgrHjsUZq52MUuOTClygtMZLmD5Ugrc1bf4qcxAfgFF5c90pTNUsXkh8XyxDsyszWDPR-TeFCwCcv0lWgSgJYjWY4PaK7g45rbOxWB_MhbQfKv78wuSTHBa6-PWHIWpImkuIMa8MQZmRAjfmtqNex5oH_veZ01NLCNC1BNV4RM4xBJodHAmvcp8RO3zDnCmBtpGlFuLRN64MZszinK8jVXGOgYZOVvMskwaRjpsVlSTKpWUP66HjFV7_-w9NY9ipGYF2nE1CwrEEq6oqsytmOpqmT_rBhr94nxZOg6WmoNEvjQNH4_p3MsnfGAcxGcJYOKD-If6UU15LhfMgkA6iTaxBq5xCvaRqnvGCpZnmzG4c1uDxSe6_d7XilNTo1jp-uoXwSvzmOf6AIUfA6w03U779iW5_sA6Ggt3BiG1thQu_AyGFP2YcJU2DAI8rnFIAZJ9JqLC_TBVchaVbjOBl_4oNFUmxzqY1ZLSf7UWI47Jnp8OKjMBueUWbbLVR7BAIp45fS6FXJIhG1UoRHrYXRDZl-WghKMMJzCh_aqufMOCTil3Hgk40gleoX0j0bPuPh-Q1BqUmHt2r4vC-wOYUZq8ad1EOMo31EFK0OljsIItOCkoq3N7i-bvwYgP6IE8NrLin5xtjdPEzQnzN9X5P2dmKAik6xyT-RquS-GVg2-JRtEwl05xN9krPxvol3CNjl-0qT2_9yolso5Vye4_dBEpKiCkvezu-hA-N5WkadRW15q9mz3L1xToulFZCACAhUEx3exwcfq-chBKaba-FqhTdIs3fDRv9DFHrHTMUhmFSM7bFmROgnuEMg76Ru_2jaUypWvJRapw6QxjQXbfMYiiF3Xw80poIQVtUCNYjrTXDDXqQNIvv7WFFKYZsSTpJG32Bbi-HT8BXn4rpi0jZPUZ7Yx31b_2ZGxXUDHv0GeaIlT6sXV1IS8pq31KSv0ZPOF5BnjOUJHn5E33zk8TXFLg61z2DT4UMKccj7vK9TtQ9fnRP4OziEgRytkOaB14HQ7CIh2E33P4AdlAaD4bpePMhYrjp7Obz5mlnUzRwwxHKxIpGdO7J8IY4MuvmrSOeZ0lHGMINXGaDp7-U7XH-Sj-XAn0lKHYq-5CfUJW_WxBzhl7rkIrYb6jA4ccIa_45rYcxw5zgSXOq9Wc1yLh_G8U6CDvAyYPNC4p-4qoveJA0zyDdwHBNDa0RPmvhZeyXBy21dMhPJr7v_YzRw3LKfJ8JDROuVxfxqkUuvstDB7LeJvhb1mRKFqLF7lBaQW7LZEHvXkYFHQnUHrdrazm0qPqKhUr91Wurmy3QIhiP_bjIiATS0piNzSRP1QF7ByZWWfxD2oYEi8EcxlQvztk79Av2dAkMVPKGomxtcqgjfybQD0diZ6OhfOnpUucfw3fIMnTKfBiSCY_pJ_1MmYwju4OsN-QsrD0_CQaN3i7scz1a4uCzUFKJ5BjgWow6fNcafSj2Ky-XGZa1efHKw47s8DZuLkZzZofPjSZYt7s8xJ_er1-3kHS14ze5LkJKhRRu6Poy-jid-JM40VJ63NniQD1NkMgsNkP9J19mXB6s-Z7nZZyNqklW48NvXwkFwT8-vtO_irD22e35OjT2hA0VNxWiTD1nc8zmSHb009M2J4bWBp_wpEzFtjBqaFknvLNvXQ_vyQzQ2C7lpbLxDm3hs1j26l1fLdtFtzMKwOc9Mr89kpPtmjWzClWHtEdUJE6zux1l8nB5fyT2HO0JQCSLkTmivVK3ZHZco8KPJz2nC5Ffph4F3a10w2jSbULm4Y9n5jZ2qAWZ4n4JevY4clYqiBeLX656uX8O-euHKnIg4PecvGf4vTIZQGg14UO43VlcwpMIy5fOJDZRbCH9WaWG5_K9Yny5CmxEMk9ThQdySQFVRKofXsrVnS21pnI4fBrefsCSH6Mxu1zUPtoFLLTnr0OMLG5qOFoDQj79Gdyzby9pke0SUM-g1btDxZOlLQCDBYLXgghIEyx_uP92Zt6Xqn9SeBhfJyw938wVkXByUxO9Sm9iaVPPsuazMbazDFEMdF26YOyuP0DahCmeGmPHxAW1fn0eMon9_85QTVLrpNnnvsU1Jw8h0KQyDl2Y7lFPrkTq1W4Hc-bL5lAIIkJ9GUyQwhG7ayUDc_90XPu97otWLM4DC2bYHrz-4z9MVzbBjpLX4oLck4bY8lz9Fe6gRUlGo1Drlewulws_tSW8nfsIFutL3ccOVK6TZYE-UZbvH2zRUHHemy_SzhERHAI770sTYJ_dKxWaBcPOAmCFb0VjZ2C1utxi11318-i2IcRnGozGQgN_fnzGeaIvhE9RNT1mW5_EAOgFScvZ2qKv4vAlGhjOIwDztEPTr24IihvAmDRw56CKe0MzmLIDyHs930whuKjLwLVKwZ_TQodn5vD5QhhI1uQWJ9tfxIoqWShweNRwANwx61v2N7bt-_2kO9MfzXgPJvFnVYCXbaLXJpE3wUHap8vNhaIuIv0mGYteRQ0DQeCnbeUXBikgxs72k5odmmHsQbzp-JVJAs0_koQEdQfSPH1GICcFhWpVgPuUHcFV6CjHT25uEicA-l78VFfjaIxgGp_6AN8gXBWvldT37nfSPgsZKoBuC64aOpQPiLsDCeIhSoqXfcboeqlHApgMgDP4ZJrTmaLwDaQK4NFvHDeEs0-9uIIiLlbukk_X-Hsf6MXNO4nBJU5PTJCfBTH9fm2DvHHwMopw58iGJOlsJnteUX0d6b7vJCJ4D00nqLVeZKKSH8qHia4W5zJ223G2L5mW1GMYM08Yf0YGfYRe-VzK4cxEoKeTPO4dkb1zdzV96Bv-bVPpghlCPghLQCM8bMZnYDqVrko4dq2zvriuLVHwjuKJ-XYdsRHKkg1lY2d3uZnSML6Vkb1lgAzWLwyKmTztCDbja6KTRNeBvhMnQHEK5JBEVkcTw8ThnxaN_tYT_PElmCumlzjgUquLG-SCiARvGFcoHz-5kHLLQ_ZXgkUmRIzxF6YZwD5zUNjGci07yEbOltx3xIGSkFHfN18VgUq1rM0HvR88281Qmxb0FjikZ0j5KA3RTKU5ohqEA_AF1GdTb-96gPkP7o5CwCXfhcsW3n2Z38gwY1LH9L7SNly8Pl96rEJQfRiI_gDtZ_KRIAuIfVDzNge-QWHROB2dBUQIc2h4yGSr1iSG_isHG4-vTFwFYqFbb7hj1eYtYY-VIYczpkPsdsAbKnPTGjUD-YnA8XNuJ8MZz074oPEsBMvDm6CCV5FoI5bbDH9u36dMxQdmA9yaEGnGvSgdzd8d8ckDWmlV-nQUQVF2n7mWBUH2cR0WU1cVPcZ5rn47dH1JVZXZm4t4iXUjW80nv9klJba-kJ6TLlroIwqRCOtFsFmYes6YEMPS5Or5pdIX372QmddjvspBXXPl8BxzuBon3MXpdfQETTkNAse_AYE-mNJUZSfVvsFnQwMMlOP1ypQJMn3C9MQTh3HFS1Jmz70dSLwgHl6kmYBGWfS4Wrd0VFa_3886egvHcE_gliZeEcoj3sj6irFZ8Pn5s9yiaxac_5CL00EqRO-Z9I4s8L9WIaKxrcV96kF0fbsemx-_YU6xIHrV27U-Y3s748LHA2xDMyD9xMRvMqt3qvXPFV5_3w8f0PAoCJnhjvA3QgW17q4OW4tG3nPxxzOsjjrqjjzDhs3Cs3nUdV4s-B1FfWyyZJc58HCiNI8ZHOhDLv8EskRXb297nfCzKyTPD3VWk3QegElAdu43J0sOPIu6TKX2Pcl7q_miA0Nty-bEwJvlgjboS8whGotL1WlBuEP-28x1502xIDsqU6SFPCXGKq2eBdWwLS11DMfx_w2Xyqzq0ndN-5L_E3mR6naKr5skBUjcXwumpTYa2lZdC86ON2iB0Ncxg_XRSi_gkBN5QgLfYs8Q5v97ldid2ie96bxLnfXyKC5imrXXJwluu3s55orDPRtShf4-7JogpsSWgFy_pZPSL9i4trWrhOWRy-MA18poUU0FwDVR_Y7g8LRAF_KgeXMKcwxdBDUTPMe2rAzYoibhtO85qnKTKNPxU97z8gePg-Iwj0dsG1aMXT16HhswshYIzsmFEo5EAZmPbfZLmYM59qmH_u3bYCcqg3ID_QEDN0ICADfRlH7dnDoIS07fx2hXPQQ_H5n7T18qlDtgMVo43s9aIpnSK1zctHQWUVZB3vb42M9E0TAAm6RCpT5UoGZTNWPQCAanWN-6VLsT-Ogc0b1QxP1lvXLCtQbBydDqqqrUTfuG85dpSw7kNBRKkEHnTBkoGsi8w_ZYXpKBLjAYyS95kSmtplQOGhF756y3K-YHawHIFzVzS9zwFsxNmpQ4A5LC0mb1xXUzYFGMyqC-AzbRP-7RI8bRICLwA_OL3BcgON6HyMkSS-YD16wkqU2i8KhfQRxegXzEu8HZerrolW3Ck-jOl5NvkBAR-cUiC26s4fBKJPIUXSwf1SQLwhdFzzzoh23ZInX918Gn373z1_IoBo6j5uDU0okVu6X60sN2yzwfJNLOVd8Km-Pvgfl3G2GM22gwjQ1ptuuQCJNM2Db8sFkQbBmZ-Z_O_LniQVGlv1V-n4TQiLP7S2t0SR_91KyLxb1OA8ZclQUVCAHoRb5OgnfDXUBqGwgscClYOSDpu1gjKH0cJLLh3Tzf5rZGE0NJrygrOLe1VOlw9Wlc6C4udnUW3S8zkKrV2LGoT6L3838-yQ-Wa1DzyyRzeoR9vbWLiNqjgdXpAPKj4BHkDnhFNT-IXoztv3iKBdsH0z7oExUntDnhulLeLvyfHYhv21UoZ26RFjkwgGrVADYBFLCTYiN6EMN2wyZYaO-lVAx8jgvBb2_PZQUWEHoxwkN_7ekQUPAxf79Lbu03OmmOXaoWr0RJAYTIMYQVfNioxruVR-DL6bDSeY70pWZiNSTdBAwkYjf_dCWs0fAWmVT479wE1Qslzb2DsIfinSmIDSAtfncuEPIzqXWgcFro1h1dMzoEj9mQs5iaqTwyiCUeSCnKYugwlisusmYioH4vJE0Z31PRdtPj9r79pENBlLvzl0YuD4jWIhi7CGg5pLhY3lhmYYwqnU23cX-sv04PKU4Hxj8Mio9yzhPhlp0f3GQ4XJnt8AHK0je6z05uj-HB-e6qhas0Cvs9nS9Ttu4Zt4gnKLE5syNuAlSkIFqobj7K8YSeTZwLXyWqEEfF8fAwRvTpNc8PBIOnLKFIAnvPdmQ4MFvRt4P4C303a3M1_BTBM97LZlZ1du5sTU-kiXhlYH2hr755HPbRdBxHunUnL8amjKJjacVEOaxU4tH85_LEiAyrnOpfTSTF8TEvCNPuLniYq8DBLXXmRDg1V_lrXmAh2-KEnSi7p6lF--1RBaIcQT-2qeQwgHAqPDEJ_gI2wnj5TdCVw63unTB1ZkmDis2KUT5ZDawjfV71rBI5OuJOGL3zvf0TKc8gcK1iY7pS5hDcHCo0EUnhWQeQglijeRyCnQoaGudCtjRV8mK_t-XHzsy2KHyQ_VhELEJ-tp3H8LFp_GEbHoWaMjbya87SdDN6lrv_ZSu2poDkdHHpiLpR8obPBSWo7BT25rfdP2PElfiNlAwm5YwBrvZc5ympaPWSn8HJD-mwDEWsw6SMAbvDLfDVIT0vYgUQUbzERhnU-LfiTWjE3ucZxNlAn00OndhULIBFCW7BeC7ndS38TeUf77P-aFdzSHEkjeSdlHb7fuSJF3HGy2TQiHh6DUpflffIZb3ikKEjkdJVx1v5kUsIv2H3PaUyg5XA9k4Ox_4qAMsm5glQhd3UbkIkXPxdof928Y8JoURYdN0sPy_4LFvlgFDSp2vPjGIy4cdbQ_znXhDesglvh8dIq36bTBm9sYBSV8-X5vTkaPn1K8fiEmn3GCieLL4eib3ptZvkvc2_o5EdRqL7iRH89dPfzZDUykjbjI3iiAmd-SWWDBLPHhfbAm5G6chKOS5Qv1Wnh5pBsZXEIKfdViw5unXrXtQxUnhy3yynEI9EGxNnKiya0mqllgJCTVK3T4KzNgNziCCI2fp8Jm5ivXHyQvOLKkvQGTkv8Pp32td7blJHBvpQlP7g-kRz8SUrvM5qIr8IHjSB3WYYWe-LySyhG9Ex45O883X7JEvYT5RoCm6rvO_Mrp2dPpHqNdmS20CjwPyz-cmhBPQ2lDqVD1bdVPiW3w1BlBVxyZllyWWj37wd-3jGc4Q-yjzpaYm-pza7FHf9tZSpMnTulfEAoyu40Qddxzj6JJqW7FXg3QJiHaGsvpe7qGZCdAz6cwBJVtks9mbRC4_jT5qe1aH6JaH6uiTui9_cm1kCwRv_Wb-PK7c8bsIhjLAJeV8a1gZnzayRG2IJrQYvFSN0v5ArHdnuHcPHcYqcTrj_dvn9qZPYbCANpVGD1wX5oUBU5FI3qXSgW7iJxH9y0y0O-yuoOhuTS8cyn24BjPNubdW--INDtOU2oI4U3HJ4ACcQHzSdqNi9f9ZJ8irY1PdF_JU5D8Teooh4kJz-uPNeJjnvA_qBIlIvC2ow6BCAzghxIPlSOic53zFtLpGHRxqN9PSE2SXTBQBCH8NaC4gu4M7CoUlWPtjIfdPHgRH3yPuyWcFAzFPWJaKHkSo7xstOEye79cE_8NQbGOMjsqTqYFAg-2AmK0YKS2Oh8CkJt2QoCd_n__cnfhfLI_t1Q5uJFiq_ZulUlKuTiEtNqufw9BXCMuMMkEd3VUrLifVecilrITiJ-8FCSfkt6aA-6jFpIuJ_vyBu5cR69cibj3rxQqru7S5vQ8LS3PAUFPYhF1cBNqWvhRFnJDMMw76mJkP18M4yBM7ShQ4qlwMAmjrLvBPOwMZYEyQ8wFCOMlDcUrWrAZ-85sqMOMX4_Ve9YFw3S8F3fTIne-RvXOJ-T2zhNzidO0Qpt7UexQ-x2sZyJ-XGxTJOuk9563eLNBvGQxBuNr0qVtqetnn0MuxzyktXxV-hQZaGcFPeIE940X3_N9kFtqikwLXHFidYEdiwSqWYAq0j4I9m38hvW7I1Etvfkm7YQu49wB2NDa-W3vUs06E4I6GMz5j0IKyh1hcEIN-GQwb6hq9pPVP4hm4iEGKJVG2OswWerDyW72FAsqY--gdgSPrvq4fock7rI-QxPnmTVzJOUoKT38X7XPPMvapv83eD9yvBFB0ckGh6bPpQXxNt9RSWBY1TNaiF-JmIKve4gGS1n8Dy8LNMzQjfNsgnPdWIPRD-ldsaYeRoLU010wfkYnf-giob8E7tJir2Qc1fPiqHFbQa9hxcjR8eQ-VtqmumAjMkMHtNyzSWJs7PdEv14Ow9o4acx2DmjGmaX0XXg1nrg9O3jRVFpMjm7Co4od1-7B0XAhOAr82ly5rvLDsO7--MyPDvIWugDhQxdCNCC5ibUmoJRObIrkzzXEUHk6K22wNDp7cWro3FpCi6_Bx5xB6fc_9PRs-FQJC7JNVZtX8PblIZEtrTBt8_RS7spCRts1_O-1eaxPnPPFrYFMWUVqs5okrM49VrKSJoEAIXO5zBzaa2FAUoTWRzZCPiFqNMbXmCOw4uYEvtFWdoWErpNb-Nos2nXLvSbIiwX7zwteTP9nd4K__i2JQxYzz5BtErxV16hXJi9GFj-GrmD3cVJlXv7wyPCeoTHDfPBSFDi_9hMbIrSwccUXnZ-yJMzRZhSAEQjoj0ESnfwAciCoiHRNk2n8SEagU9nGh_BAKfy6l9ZDIxciB5ISJfGyExwYzv7AL8Is0hYyX36VMwyEKlQrJ8AC3r_Z08pZS5bUqTiZDcGyTfDZBwc26cLuJry4N_dV9w2fX1--V3WRzPTULbHqRyXee0GaPKsJE6Ql9NgV33HDtd-4G7mbbytFmr2M80ZGsBiXb-V97VV4vO8wmz4oAiHKxx2SFUZQH7YAqTGPOAG7QexecbW3HqW6eGFG9GhecVHb2bHnXJxDAo8WmglTHQKSYhmToNvNnu2lIW4peFZltNcSrjs7E5w2I4oOH1rRFWgl2kkz3kZ16MstgdFhoEbUF53SoR5k5XpOcPiWlEdCgypF-Sx11BTaL0lDIgqMOavRdWz0jDWh2EOHs2fgg1_OFpuW9b457BiM10vTJNsdeMhFy-rdCcMda5eMoavfm3H0DIUhf_zkBKq3yR3EyWJ447mLVpl8EsiXCysHEbTIP3sPCCJp-VSjO8gj0yvpLTnFWbiQWhWwCMMF_iNNdgzCkvaHFteXQFtVUYQMV-aSXpgpACIf2tDbLhjMi28rXREIPjsoATzxrBG5EZuPdhkIaX3P1FqB1jWz0hnD-lWT_UVoJ-poBu68nSNkKO7YaWUIMsyaFIQIWCx0jk_azIGyu0ChWghKOC-yGhgYsc-XLb85cPgIzDpWZktRTx2vP2SoF4q7htdHqow_vQ4-MXAPeMqOshbAXwVH6ET2WKvUFRi5TUYcS6gMAFPz-PnP3Y0QJ6h-IVg8wlBPBHtlv4xoW_OVuqOI_KELG_Q_YMu-iggXu_revS7Lp0wTCg1-PfMens5nNRiUeVzGL6AL0FNfLexbu5ge-yvqbB65gbrM_Dp1svS5K5M__jkIUDbdJy84GgFeexofwwPItkWeBl_PKax1g4mViQshW8uPnWhJvKXGm_r52om34Lm4qMuGka4GXtIM_vYsq3wPJHtJBrQgYF4xSBZWLlxJ6UxTuevrPfyaHK7rv2ffcCHq6lQz69iJkdE6cs15m2T7m0GvvrlOTjXUR5zy6TXSB3FznlW9S5iFlExKNU3TQbb8u_lyHo_B8I5kOeJkb4BjAW0GNzpaGibWV1r2bphPjhEE3uQTy6IaXH2hEHGhqNeCoS46_IbXFj7bt1xrPgt5byw6yYm7aTqcXstWCk4ddhsZUrmT5myXRmF4huOXHsEaHsvtc9JFc9D7lkArkGJeKTDZj7e3vIcvOsVl90lRSuT0Fe3F_dOLg7HneER_e3K2x9usNkly1veV7bnw_h69IAUPh84E54mbh0N3Q0cPMhJknZY-umsJJ9Pe8Xi3ZdMkmKriQqJbMU1woNOziHC5yb5uT8ySpkcIjjzIQbIjPyZ4DDVWIrrwAnthJGcW3LeOsOfKo5beDJKpOiTiguWnfxe0TqQ1Uj9j_XzZBgQ5IESaKivNxR3hGkRJ_V_heSRKPqqyy3hewJQ9pVrxH6wU2jBYYUyk3eh8DuunXyIeaYZn707-wQxm1iToLD85l-I7Z9Sb_DF0gJIJydMFy5BEG7iU1lu31Ygc7gTbLfue7ILFqf2QDSgoNREFxqgjN4T8UoYrOcfrddtwgclyf-puVnV9WfoZnyL0rtvc2n-tI4KDKazmq-68TARm1OdTZFE7btUkB2X2tW7CIcSnkd4AS5cQug4TiJOb4na5kKUyT6FdOw3__Qwsar_XzOWvvxxfGV2hCl3_kPHtXMh_dGAn7b2ENDasIspYdpGXhNbfQPo5idlNOi1hcXc--3zlD3jhVZhjxzvFsNuD3Yo2CXemaLfWQbRMN7RzGewdDolIJPf8ZYs6wQCpAX8wlNPj00se2JzJhr3vFiqzPx3lCMSH2Lj2IuloyJTIFMNg9R8anqkGjP2AJ4zyX8dgmGneJUyHJUAeBeDg4Z0gccd2CfE__g03EGI4DUg0yxtL9CB1fYRVH28ArjXVbQAFK-ZVDOJAhdercHU8mMjVaOmjBjhB94JDq5bTPWhGrSsJUXon2MCJc6py0rWPLvfQ0Wt2XK7VeMHv1dTKDAhtBksnwMceOdtQsJD-s_gltm8J1HRsxO3Hbq5cdkWv7y6FY26Ove5GahMmoURuyycFvdOYgQr8hF7YZiTDB_YdEwrSmJL9iLa7q4mAckhtcUNdXCZIrEbGkqiy0Me2I8ACOkeCu9qDTtfVV9I3ahQsnXsIGP9loS_Wop0tcggdHbZ5m3JxwmjSAKZzGkMjMneQCnh4_PWH3pOeMxPRE4zKN8TvqzAryxFBnKYoRnnVuaNFye3Cn_r5o9iR12d0HB78q03nakPu_yv0voyHXQTUOG5oaaEHD1Tul3K_53M2TfHIZtWnuHqDHBTK_euzKvGBNkSqyNocpQ6O0LRzVptSOmGpDHa-tem1qWdfJz8qyMZF52S2DWPgMaeo4RIsRmMbaz5CKiSswAORG4qGqy_KzWL8qhM_jCs86wX6UJaIWAEWtGZiQILSfPuQEmC5-AbiI3c7-SacaaCCN2Qm4Fai68wwOcn7JPYbQ0rCIyHWFtSO1u_hf12r7lsnxzhfvIqP3spSZv1YGN-qLa8sFD_WgUODEukPiWjCCzn3DRYvmBtW1DIAoeqm4XLuuWSvpunvxc_vqCw1EtSE0yraotKGrYyBL-GvAsGWyYooiMTabFJIsx1UtDeAeuojF2t2fRyDuX7Vhhl0COPQm0PjqmN9LWoa5JhbciDcWRvFFQRDcu-JFrfqLSrqoKwAmQNKZGTrQ8Pc27dRW8ZMJbrkIB8clB-LR5arBAWJ8a5Y5UOzYl2_brrqeQKEvRiEf4lz6V_5RS-EjO6A3Sr_XoCugtFUg1I8mqrHtCclBMbP3u59fWt8R6oGqtqZL9CdWrvYs8bohej_IIA8qPTt7xdrqEIVzuI2w5swP7774uKUBvyzJWRoavd8pqBg3sAhEwMi2BfCvFJ2akFvBQwfS7FoNUoEvoQnW0bQRR2Q2ugdbQMJIYlnk_yrUNSXQo5t3pJxizloZSktQw-rpBk6D-U6o-T8Byw_WzYYc-s7LS_xgVMaMTutbKcOtRqTM_TIiV-HO9EF7S52XQudaOmLmWY2XhQ7jZj2s_tbDnTYjDRJqpfvnqpg8_PLI8GhZPIng_SoS5t4KKHVxGkGUXqghplm1Prt8pQLOFu4sR4h1A24OdwS7BdJHdYr1h4avSGgFD2Iye-So14jOTVec165OOnvKRRHAZpBAWYQ_MgmQn6W3_8pB6qfSzPBqelIGyb8kTVcyykjHDOmlH2Vns51V52VMRxckmuNs3EnLE9VU9CPdWEodQG5ZxFIy7dJivHfLFqcp6s2jgWSpdv14TJTw3GEy8eTTdnwF5dUiYCWejYdo23Xd62jvK5g0gVu6SV3LUQrdVjJ7XGxEHXOcRgEj98p3pckVma2xW-6rafN18t62_wABXC-qMLGMX_C4yLyH0wHxYowv2XNNwR0tWOGn9HmX3esIWNS4dW2qAfypO2hx_9ooJ_2IRdZ2s1RHkDe8Q_SJIUdd86xCruCPhrmtL9o8TXSUik8E_gOr4g9ifyzVBzw9b3I9dMQaTkJF2WkLuPb-Hs-wfBmrlsVrZMBwUuWKinyECCn7Mii70wr4B13MJ_MoasTs0n2icVFlXfg05uDi9-YOvRrzZKFlP3Tdf92ND91wMo9IHIsThKOo0t8XxUD9KG4kVcI5vuYY0kp_gKYi1KjXEYZ36mGhIST3aryLiKx1jXomkW75wNb9AXVN5fZPavJE7KQT-wo8asSuELcLSRvK5i8Sa41u7t3goNSo6d9OX6K9i8-D5axck1qv76LcjP_a385ONdh0GRDYn_bVoYIxSu_4S5mwvk6nCsETlOWIccZdLgKdo4BKEVAmXG087h6GAAmD_KW9ZLrwq_A3Jfnp72q8xMEM13b6YSH5fccMO7cnE7TNzpShAlm1uYUa0oBBuJloZlstNqvAe_xrb6308hcWf8Rre72r7Mzp6Y5VXmT2ZzfybL3j_e_CdLM-K8ScI5jRxOug2WwXUbifpSOZh_4_8DUrVzGWQBDjZxGaBg3Fa-R49sbNiu7H9yv_TloVhaWfj9ojR-FdA6BFfjkvaAk4FTaORTvSjMCXgEk3lN8FgLsTnTzDCXQKXzIR-_BMD8lXo4-0_vkC5d32mQskfrB2SQBOBgCKcRwE2jzQXeglfWVdJ22nVwG4Si-rWkMwd6cbuk0_Jg30_h5b-pJ12LHmaT-jadyodgnulMq9w29CT66vk0l8Q92XR_1xtC4o6zyf14W7NVdPoB6ul8zGhQEbv_kgiE_ccH3nM3iz7ZcpfAIX2R7o4s-phQiSyQK0lnmaPrYjVNfX2-9akcZ-ccBRUYjjQX87gjxgyJwZi3mJKW2Jn2HUai0YVxYQ_M8NG41VA9yJt_Cc7Eg5d7SUNC8xtEi_CVv28HtD4ZFCNNu9hwrOxp2C79MRAt66KJlZAXwqHA4Vx9sBylU_OyVHDNO8nL8jinJIbIRfRQrLJtfAiNdYWC22wXJPGkIFN-HZr1gA5Q6wPzzK72seHTaPic_l0U7DGE5wuXuu4PqVw73S-Pt_f7rKkyOGMVC9qxGdSRJVQUA-4ALDAdIMFOlTrN9B9FaYJqn9bNjM27QjUgo_aWpQ8wn1dGM2TVGTTHKAiwoJbw_GUSqj9nyfTTYcJ1KggjlF02JVyLbAp26GbcODsmFl_GDN4yT6RqyyjR-agofRwrwTsOGP2STFNjApdQj4Aj6or2e_pmE7LVkmZxDTWp5IXSg7P9Qvo5mLotro7b8CvedGJ35sJyexDxZ3HgHYL6joPAiChgfYCXi7pJ3zr5c2NZn6pdOt-SYO1bAO3lWjVnS8lb4BmdiWzcEv6tU-8gG04Q4y1U5ftUBJZrIJu6bSQgjDqjCAmZwiotddXT3J-IMUvv9qvEkb08fuMj2FzwhyCLYHM5zaFzbAO9OSTXV3AOfQZHWaa2ularqP9DcvF3xxE05rktuC8J8xT4W3wZer4uIU0-HjYAnu3IJ9GuZeP8vLJkzSux8UyYxsi-7XQ5v-6iW-0fa91L_ikwRwGiV_CFsWy2kxLk_IBlv1tedDobYr3EH1w8A4-9s8CXVGGx1obcEf5br6ekCZtSUYrTX47xHwzgZoeXQEPB-ISslvM_KwuJhDxRvVhYdRshInzbafUpP4PSwzBkCrLAeBLyUekgQVN4D-OxsTST-8iUU_1x4E1A5rZOM_l32P146UdRJ8Lh35VKPGnVRiBapiuinKvFOsbCMuECR5JBx6M8d2zAAcyZCKeT7uXVX5_hotY0x3LFSKcOZNScijECj5MfBQIE9X4RMk08YcrmdkSR5F7xaWn24px57lcIF3rXnfjOf9UN5cL8rPhCl6Iv-aFmqnTSm2K81RalZhU2S8jA6Lm163KDjgbBXqi7SMvgJFgXIghMNPGGixGZouoEcyr2S1Gx9keFjE-MfdRMREXicHgdp62h3pwSzsDMUM0vE3K4vosAHXn5WIavhs3VSItyWJ-Xfg2PNAB5VnnvK87tPtrt_IW4O7tYi-YIlk1384heYrTrQUXhoO1uZnpWHrElmm6-xvSuAEG_KYUJZIesxi92ZsMdItq9LdxkgLfRmQYXtRZP0tF6zj255Ak2rVcQpQ6Tev21muhD2ZGDA7q_Fc7O6ues_w9t8XQDf_PbZWopFnGqPaJzILm8GYl5EzuMQ1j7YLyNpEOCjvqL-NJigyAupyCeVQfEwR5R_C-gNqsqvMA6WIJ1JIzGna36WpVtE300UN3sm9nt_NcFHDGStTLlzOFK88Gj01JDmPTC5N9Oogk4y2m2P_M0iL_YCYxoAUe9ln9jsD4OzsGAJrYm9r2E9sRkYAz12wcP_WKduRPXQK8UB4XO0_ApRmOnBWGR8kQDF9GZ_K0cy665qxLrASIhnv3f3LbDASvOVvvw9d1A4rD6Srv50sl9EMIGs2eh1Ht5xwpKwzSsqvmID0MMIu8oHDBjv_xCGajuT2XGAoGmKDFSWdE0BhJ5zaasNzjA7g9xzUjb88x0ZBWCtfHlhEFxVgKfDyy5ORNFc-ATDoXuFevDNsMOJoXZthXY_mMnr5pe3zOhUbNUiqDHWRZ4FOhsS5aNWzD_isCkBqoseac36hUEs5HzEVlGshfL7KVWyAiHeb_bgjOqFg4DfBoeU-AQIWQ4FA38VRsHRS1bq7SCODMkjuAnhErRj8S6RaunfVQc9kqesmCXLV3Vliiu_U5RGSmzaw2p9ALUkzeGfWS2YFrFzqR1jnIOXtTAlekLmecVEoI97nf2YgjSeCnmVp9_C-9UN8vHsETMgXsaEeJ6tHgNVSo10UySa0qFSdA_0HFAt48_2eLu7IOMCChSRal_XP57vQD6ynHG4DyMGsC6nd0x7LNoqSNfU15gPPHMbERYwy0GcPTKnvTKxpnVP35lVniTScJk8pafRvQH6os8FDJ_eyhsKF5y3tmho6_9RubPudKArCHj9zyyqKhX7MRtIfQJfJcaPy7L42CfrTUNBnfDNQEQ646DtygSACHhv2U2ZhGG7NBdLu29VP5QUwabk07YouCXrfD-hmCGHRPq19cEXPCFgPbYBS2aUjaS-YWuvHbu1GAIp3CRfzMl2ov1sTgBTkYgsrPwWKZX6PFuC4EBEYGsH7Ew12ddWlTK37_9xsYpO8WVcVt28FJlBzhnAHUQNCnTqT9y2QboHvzjOM0IOaUrZAvyYbTx37GcIzzrFTlKmlEnzsVULzeUl-LUKSFI7ZeI1_gnWzfvKlgSO_VbGl6c_9fDRSiXSn1wx8NoKRJte9macZZlgJpUcUdTdSYuSFuAaRnoR51zNYhYRwLreuPaAvoltiwzRIXlS2AJL8kJX1iWJB6rRBBJQPA3qr2sOtre2ZDSk5qFDBU3-rCaL-CzdEDS0AOyUdNGZoXVvSJx0SS_F019YYDlPFYVvMqoptgYe-r9gjOAcduEFv3xbf4B1dxdH4c8RRG8kMoEHGxep8-F9E5GzgjprqiuOsz0FcthX8o8_TZrZgOsf2UA5w6rIUbmbZgX_OOq1dyyy09S9meutPkv9yUKO9MyB3oTiT4FUxHG-rXt0-gPLS3FOwQZsHdcSEZ1hQBHC0Tp9xrqKPpLgNGG-dVVfFJ0fOH5eIJnTW0-g2tuTF_RLjkvExE-5NPz3hZDvpqyTEL_tkTeNTlWLkMXpZ1pn0D6RRjnOYpRtxFVjT8nO1rHnATqj_zhMCsO1FuBIxfjooFz6n-cDKBXAl1bOITPUsjz4QBWBokI3JgeLa3aqoJs6d4laUMlOEta4iVejs22on9MC_cClelkzeynZDvf9lmMcHQh1PYkFr3BKbuZk3jDVrE5lx2SHwn2IKOKXpfFg3OtbozpK04gnidyuPKQSwlWTpEq8HUJpgf6UbEUMjANRBez3IVR3on0ikYCvJu2HuBnX82SEyz7Bn_fqLabkTWuOnPZuer5M7u2Q8nhGPM5WIog9an8puMUurgOHz4fCi04xGF35qIKp7-s_oiOzNwyIbfza6FTQDZCu7IRbrRIflLcSe7Pn_XRf071Kb5Z4CKm7Xlf-eIbVis5JnwuWbhmOUBM4xLCk9J_ZnAnC6nX88mdnEHL9rJGr1RN4WPk6sd6oCEsS5Oa2l6d8atDT2Mo31sed7yOAWyeUezByW418iNtYpHWqwuEkWa1PCGeHvBbNMDWqbZD1anz8ujZFZUcHfAaEPl65ds3IVaVWH0iOMZnEFJeicifUxIGHgO0O1R0t_AyL9FbQvgYNv544Ae0N-CtpCT_x9c9N9FwcV0_GlZCP4aCmmTq_sbUVUyuPc3ZocDldZjOrLkAnVKrRlMu54kQOSqYKZ8WK44BqLPWin14BrHFRBdxfAgb3B6G-J2oPqPA2rqn2kuGUj10DEcjgnWV4w33myN25a9SRQk0_XjCTaHYyulSf5hUT2hI6dKu2h11uf9RmIUgYSr114eU_x8CGjheyoXBzZxbz4X-1Mu7oVhPblCm5vuxyNslS47Yl1Z9DP388ej6S96DYpYCmyM3GCYXOq15ClN-eulB0w_-PeYIeXGtI9a4HwlHW4-ozZgBlh_f2RUIuzMzoiwYFZP5qfqlwUXYq0fLdNTjsvTEXPsgl5AzoFdT_XrVNAKexpWKhzJ12FUDvYY3K9c6bhM25g57PtN7CNODxFWhau0KwiAOuhhh6IWwZ9u5qW_yyCNVD6T8vc2l1d19Wrhi5WZ8GIcf4-UyoMM4g2I8z6JmttyXRcQTyC45sKuhX-_mrgrqoNXUwOtTBPR4QJIMRsfh40ZjOsPImFFTdShmVrvamE2bCGalXfPnydxIbAFJpA-eK_8MvIJO19JWDywlsZvhdOZO7xX2usPsfqbdN86_AWtpzF3tus_qD7PY_elcl7FCWjcumwWu0m-1xLgeoLfYebnmGBRQsUtajtnBVxVaFL6IgeijY3KHxpe6TB5SRftUmoNax4AwVcsABN4Yjiyq0AtT3aF82Ol5Sm3p77vozuP_CsfWVIWkqsBYsj34nrWx2ooTGmT4Wy6GEzz4r_jbbIFN2bWgj5l_H-z6pEYT7SfWkBAh0lTmeFoOQznney6xU9kMso4vP9_WBjj6Bg8v0aMtrSNTjF2pQ85VKHr34SIddcZg4ciurdUIZF0_2Vq0Ezkm0Kh2LPKkmC3yfySGu-91-z46NO-YpxH4snYDngFkbrKzv8tduVQgNd8zNGwnryxDpByqYQ458KS8HbYu71uzIWeJzh3Jm391iamWPOuTIiXzHlgmkF-kG-fNye7vsLOBpwHiD7Dbm9Q1Fdk2L-5-jfTg6q1X4jk7SprzLD1dq3Bli8-Ku0HZITp0SDpogcDb10A5sc5wBM1uMp9014RPIH_lsk0T30RojGTHA2vwtV4BSGOu7TBYJd90PHqAiIrRI3ZhObFQkIxsOv_XvOWyheIXaU7HBoA_bwuX_97bxidUILWFA0eQ4V5TiKI2aP8lOD12R6eDm19oBLB0kQWS_xGHYQNh4Up71dRXDwdSBLkbKPS2MkHQP2tGYOF5lmJ4g2G23c6t-gMqk0tCa7WS8rwzg4mxz8PyKYiOsDcs3E0L0GDzlIjSEwWa36xjMUlTwRZ_VnH7Z53HIAY5BLzQf23UjpWhw4JAcLhKEzbvixPz00W9vxtOgrWaEiuCQRM9K585HnaA4l_wzhGRkcq4vqF63n0CDMsJhXfXx6Aumc103apE2sNCHdqfx-NpBo2WnzLTu_2hXr6ekWzl133g9fo6wMNwmZ041oPGcpbnjGwT_-Q_GGGvm7tliN6RUdEBn1GLzb8I9ynlkRDHHApC22MSOGFC6d7pmJlBbXqP7ym2kZDQAaiI1dupYYXJOx56BD0v4EjfdN-LxXchO9bzK5UWXzlrgui4UhEdGvDmo7P0rqMQ_FAJCtVz1aEOHkfNRBn0VTHOo9tVHhHLWR9pkQ4DV8ey7wxO4PumKzTBcnLzV9fZQNGfHeeW5_LnIKXpo0dHs7kXJZ7sZiEs_HJeiIzPpGtK3rsn7rRzYK21Xj9xCcyYecuUqIPTB8LSGzF9lohsIGKNTB1BKsOO9k0wj939PSSuhWTCMz23HKJAhGeuisXJgeKwhR_H_KOygYxhYXXeE--BodaW7eRq1j-L0YruZg0zILFKyOo3TjpDnYcJVd71lebEiDudTgXCkHm7d0lE1RmBJu4c-ffoXpwA-ThMvEgq5hDnMR6932ezlb0EpRVaRWTL8rnOMebAGV3BJFpHgtIEptG0P20DpT4xC6VYbmmB0tQZM4QK2k9_n_bVTYS3KSHuRrynDTemWSWDO1UQG4YMvkMjqOFp1yoi31gUnr8GhOA_wENxF9SOnL2SPJfQ03Esx63_gXWGFtoaYZ0LG8LGg8l4dAmPoS0ppH7pJxAfGe6nyX6xf47UoSCWycmjut7elkS2yREPDc-cbKA_4pz8XLzJoHMGm4nNUMK7iEhKLZJ9Cri3xkIQvtXBu-CUqXcnw2Si7jU7mKUP31hME92QhMtJBTEuAyWKF-QwpAVBYRFqj2vynv2Mao_xRTFVALi-viq9sO0ZT9PBWSUP0L7tzF9Sy2wltRU5Nvy0wPV1HTgWW13nqsPUILz_RRAvQrzvbnNDEXa6b1GsLjk4CyUOuky6_PEH6lU5RsSR-u-J9XNb3BpRW0EPjxYEgveYBYED2tmfKkVLKF2Dqw2kdx6N8d1v4ShxysMXz79IXZ77NGGQffEYMLXIDo3s_-6opjqStXKP2-rkcwZdu73WI4bc2A1brGDbIGkgSZDhKjjNk-O7RTedCmCK_HoFhdAcyiIzRlU4AZysCrwDdVO6cyo-nKaUt_SicY71PG78CZRTa_Z7bM6hb2u-uBZzBqGDbPVIm2Yi5SAvuOUmzAd3KyJ1Yb7Qnsi542pcy_Tca3tHFBoJ43UFBBVlFgSqrbcq-aCOhzw6Q2ASEyf4VcPj-FBtNWuc-pFQasg6nG8tfo-BmLXc77bQJ0qTbt_SD6ptNSIUndQRaiylOCqvbEXBUZnosEywIKwES3zFxIB1jTfP-WzVocrOAdV24cIrVRAFc23JSD5q9xg0hCiT0SNYHuqi85M9S-izCTS3QltTuLT3-B0bjhSLmrVu8Ls7XLxDOFIRCBMo9fqP5Bl7n1mzS1Fk3khv_ri2zaBE-wNC0-bpoI3mJ7-jOXx1HUQ0AMefimLf7uy5urgGBcr1ByZTbR_5w_RDtJ7GKoFHoEt9Pbwjhs-XJ8nTwj7Dnyb6pCx7aIgT8hsqdAihRD9BeAGKJRBvyelJ82_2FIuvZWx1Stkt1yjbnaEgn_x0Vtf-cMPAJ96h3vP7SmYntNtkHPFXEwID9O0H4-FietsPz9DTG-NqeoeE8aLgRs1zR8Kj_wnxa5p7Tn3I3gLwEyMOJXaIWLDXIg-zVRH-GIj-joflVQa3m80rJQkzh0VVGwzoOeL4bmxuf2OrrSY16vnkAn5JesTpcyFa6TonY8fQ1eIqTpuQaMO18qk_fMsHjYEeUJCS3KUVeEQQwVTbj2nq30BCw7zL4kUD85Wtxtwy2fl0ysOUXLsv1RGfxhnbTM7D83QzMWJAn6XcIJIfm4NBeerlrc1RXY_8ennxvRoDAwfLYfRjnEVRiA9-nZTYOL91gvSPaR-5oSHucv4-JD8YiIGVi1Ncvh4iLxhbeK5v-V8ol0HXhiGuJzy0IKkqWbaJEpmB_AYkqf9vs6BRychbQtkCpdBZPT1SA1EC7bA3XK3ydY3W0xp12wwKw5cQW7ic7O4jiATZ-VSVBpLgzusz2dsSMl8inFgWo1ECA2snoPkO-KNqxpiX8AXNeuN9fflNeSK3HFU9FAYdWslrpxpTi8e1D8y5H5VRe97lfhPj9jmwWql5UTCYHJeDSmssJZZgcvEznPfWCrOZkwINoW5OFMlNZGAqC3JHPT398bhGRN_MonjyPAiNyRWXIMXo6UBIJwP1GPUEZkR4ZCOxw5n1fVrjzPBDGUi7ESBJ1x3O9i6JsySjw4t1zU7zo8tlYXzxt19VVGKUz4J3-nvyUq0-kMn4FC7m7litX3CuiSCLFEpSNiGvOq-G429542ZLd7X6DMui3vCCwIkgur3VuZ9BA8LqffOWgFzjdagFUoYzSybx3bh5ceRFHgMT7_kGULuj21RBNpMDoxryq21AU-Qdy8kcgMn6ud-1hRe8d89K3-t17OlKc0GTNTW2K1MhkS_6uORRR1GfNCdiBYGW5IwryRYu-26t31mqUFlVyXdeL_O_KkdkfJ0RM2oQQJMQJj-XrlHGsxvW9x6MYvJRvNWPiZ8e52qkJKbBEsd5KPyVOC9xlRGbKOo1ipcU_9qBDxRfE9WnsZ8KzMs_5s70LZebh4LjBeBz1RO4URUXZIfLTma3ZrHJGGUNHkCoVAGoXXR2XOCLJO6jIbiGKM0NJWekeBvSEOX8C7Arit2MjlQgzxBMJNvUVfLte1qk4D3mWdr1IgwNBcooJHZ1dvHY5I_hibiK-D17Kyt68OP7-pS9HuoDLDUsWTnSeUopILJjXENxsm5EF0qZ9yasmFLTKHhtXqeJXmFDr-QyjpKq_c1VawQvPhOY9bclUaRWlKwNdmSxDXuogVslfrRHd1oEsvK9II7x894jQrw1gjQagbYA_AIUZcrcrXiABQb_pCunFbXIXJh2ysjanERx90JVDSSfQs-hzT3T4wv85LYu90SkJ3a1EBfEd0bIsrHW-NqluIjvpvSSdaQcHVqa7MuOFIUlOJ8usc78xFyQW41Txf4AkRY2G0TV2mwZDH4LqG-CbIIn9P1PSL9WRByvyibFfTaVgqbUvanpMMrWZ2JS64jtWilYnUVxeGAS1RAXK0dptGjbO4akXOuyWdAEnBg7Gg193DkCNDLlnq2S4XKLazM8QEg4z2Vt-tI5M0bI2LARvTML44iN_iI9BSqk6jHopByvcwHi8HZaywFGSbWSldQeiEt39ndKSQ0luFlC5QVQiXjH52GIT1Su_XVPtigny8DhyLE648uURNnam2pO6C1CuYg5mQ_UDnqJ6cK3TEFcwcUQdwnGjwdf9xfxrac0RtavdqADpoNg8ggW5e-ctR9q3zUEoASkvZBLucR2ddAY-uRFr1ICvAIPcamqSAcuMnUp-jS250Ds0yOPwV7NHtmzfnCoL2bG8NHezpfVQsG1Ff81G49rbA3M2NvrT2IsXHK_RojsRT-6fHXqK3nR9z7GVY8ghiFKZiDSwNRxjQyG_8s46LZIRZesx-qFFFkezjizFP4NZmukNzXiiWk7xid5dmKTwpL_Wb784OSiDwiADn9Jh00JPGDC7NTq5_QzCI67JYZMkrMKDEXlMJ40yWZJm7UcoFcKkqvXaFlnjFAiYhfYPrOyD52hZZFK-m4PAS2EiA0Dypsfz9YhsDYDhjuTVt7Y_5sBxKyMEJtzmEo1GibrTrLdVaK3u3j8UbaAlHYJvQ3EBNxyvj7MQJDauQxY1Vz7oVjh_V_qzRTVsC5lkrLihpD3151Tv9Uyf0xlFqE139l1cu_9bp9He3ZtdA93An1wkxkkcbHlqq-p27l1UoitBNShjAuOTaRVjRzJ1ST0GhUHkfcIybr6KjAyKbIWk-6OMrUhgBl4OE4VDKA7mirY3qor_3ZmmD_EKa9BQaykNkfxe-ozbc3VuKyaTwmxu2uOPpyF8N0rbCYaQ_fPoiWrl5ERTToamGs_jyU_tB5NxH2A6nEHjSmmTTQE3B081MhsjJlsr6QHyUhXsQgWRN-fnOD6jW0eXwFTPpW4W0Xano0d13mxp0Ujyb2z7x5ZFqVkjRjrSrFKv0pfB80kKUGB42GofSZTgFvpp2sBog9gGIL5hYUxCq6Eh16LnidA_fo7NO8fDYOuId3dxSTkmbCKQ86WhCQ3UZFtS18EJXPRWD6kKfYHnTHgGGDOKyYzO1OTh5PO_h59RtbBocH-_rmKLAJIwrz2k6bbkWhU2jmZCddM0c1ABElQe-1ssVdNaYeRya7ulj1FfabdE_0fATklus0f_-mt6OkaW8cLYkFY-DTDLlvlCgOrxP_SnVzkE9w32v_7_F0gOgvf9vlLmtSL6oLM8wpwCcPlkD3vfSAdbWchQLBQ7CKF7jprN5cBWR84QD2ugi54hHNHsMZwgvvrcCaYK8yFteVgmLKJGeRNLJT29fVf7zwasOBbyoTCpQ7I8a74u1Oji-rlVI6d-3672PVz2yhZf3LwrtVpoxGSAnCSicwlIm0B1nchUYny_bIFq41NQMhPl_LYAkZaOx8d_kkYyimFkiu1kvJA2eDxJehYIdWKvaB1ZMvKP6GyJXTQVm8UPsLOkc58QmP1N63YfRsLBhYKE_cJJNOc3A-ORHPnY_zz1Pt-1hzKpNR-a0XY60Yve5d7B3n6ueWRddDAi2VogX2C9WjN7Mm9wR9ri2pCo43K_SL-nAyD5HNsDGARRzfJ-H8pij035x0HxFUbR4yPE6CC9_FQZfXGA6D3gHVQ4bTZulRWK8u1YmzIAU87wtVz-6PizUC5TUWUb3C-wABapYiRwhvQEwKtxvu1lRL4ariyltYDhLLQHM3BndOtDwkrTNbpuvI9FL0hnkLho-L2UGum1yrcX0EDCC01NF2SpObv5cxRtw9zESfu_NvIcjQl7alnNV57CByqFj49Stc4QJ1tlOAo6UuF4r-53P1U3pPCzmvuWOzWY8bI25vUubu6C4ZI5Suo1LzSua9eW-Pxm8xa9kqjdNviTG-ZJhKydN8k8IiFABtl2hl81DxckjEDrdcXwUt5AdHLkWwz3RuONJg2OSRZby2a_DCzVXw2_4j6YpJczC9egqDZkXw6ImpbZueXu3UY9zSJyEddeXA9bYJcG45FvZmTd9F9DDmGsMzJLmkJgjPVHlkmarEz0GbNSLiSGUHl3PceLiywAWiGC7PmpTgKi9XS4q6ePcKXL3QFvaRaiyUjle2mjI9E6VucuumFdekNkEH37X8F3lRNaTnuAMFrqd-Dz6dIjf3hFRi7QWyYNCTawHE9nb31L82d1llZud0-L_LH1dSEpk39ii5R9H51Lrn-vghib4hH9BLyN5g2ov2PrUdvZdVVrZsijViumEyXt78dI4j7n1pZT_H0qPLbXY-phCY0oKkcXHFk_PiUlew9xZg50P4dJm6u3HLQi7C4xRUGvIwNhP8Pfx7enoqp3YY1i2QRXNtoTfxzqvCL9zpWtJYfS_U2oLW08YZrK81ci1Ofo5ekOzA719Pm6Ls5NSoqk_5VOWtJ711Hqkf91U1AwGJQ-6tLtgVT9N98d2WUerR3SRGyi4RqOgk0EGcyqy4w9mgdVElXzIG3q_hQ4IzsXHJWVUvXF79HyZl8A4w2AxQNPU41RDHVeJhPgbz0bX6BzXHgGL27ANly94AkrteSgAb-eWpdcLxQ1IzJZyb7Xlts45sWMj-zt-tPofpmme5hDHr_z1BzucGjEteWPquPGOKNf1cS2AwDM9y43r_YC6Tf_R2q499qo_aEBVdEiRDFGVsd1gxyf7VyT5xd4jNStQ2DmoqZV_2M6KCA6ylgxCsYhRjWd-scZLTttrS7NmXTOJe3lgTX7jV7xhrJO3-icZQluDspCUiiA1Vq-Vgo6UncuaGOmVWaeZy1k-v7kKlLhpuuzTMNfxz3ug9GqokL2GDTlFEF7HNxKuvF3C2QT8a2UVFJQULjRtX4tb2DgQEWZXXdOFV3Jwn6dLao_Gh1pBr_bd6AC5uXKWpofpe_mzwlv7RvTmiio_TIwz_cvJ67M_vv-JWx_VW16M056VwB6IQYaN5ABuJfPaUosrXcPbTrJN5KWWl1ebHs8kSd49o2g4BOriIsbau-lSBiGs6RlC0dXw9RBN2L5d8skhalI_SV1dAFn8TlsdxTOlzfB1hWq8PzkUt51v77_v7hkRubjkOo60JGz39YNmxUA8o3jVUHbqleHSUYOwi3fD96HlMNcda9KHxg8AKX921PqKK2gsiSmMK-vVBQ-J7ozJHd-JMZJ7wMqLSA01vzRhN03FuxPTJ28JPSPP4z1YkxZqf-2HrBm5ijEMORL9U374eAIVs9utBqv-Zjg8DMcihnVuZbqFFsccXtBYipkd-2--Gp3nBjToKigTG6m_oHR6D7kqSpXQbueYFY_rgUqweTeuHJQnJYY1w5wKR2Wum-vFVTQCGrl_O-sT-l4lY6FtGNc8gHOl2mUumGUEZlg881AjY3t-9WCEvrgpWnzuizgV_VLqMDdqrnqz3ELyC5muhr4uG3eOOCOUVDqnnIMLtKVx_Z3WN0vaeCRjkPKXH_kg7bI0u6zOMlFF_g0zYQMdu9Fz9fuTY7eNhmOLdk1qX_JDWW4pWrRMQW3zbi0KPtB7k8dd9zkt3C0qnV9u4d3Q3hFdRRtijD62YZccUluCxi_AoJQd6AZBFFkfCEPaKNPaIJIVQFo1VXECBpVVgQ0rUbovKcdQhVPaoEyFQ6wbeCoPD4Sbn795R0bNEm81lTaCzdA7AUDVYHvptrkaflyy-u16kCcEgVfV9CfTFuKle-zoaMLP5Go_Ft4qXPmew0Kl4mEQPrd3rHTwJ3hsEloMD-3qlrekbIXEzI3qC3tAg658aVNCNLCrH_dKhiY4C8giur9_CAKVul-rzQ8UqbNmB4kekf2iE_RS4dGCXgsgH5ooG4WOuMtApY1PsLoYOHgMRvAXDR1Du_7IWQ9v5uYeqmZ6EPY6RuLloJPbstCzn49bcXLbqWAYmhqMFggNeuBqinIiK_fZg0uVvEM1sPeELrqWc2r9tkxFyRHgJW3c-MjtIgSftI1mGCjCserzVFrDyQgGCN3FqxFqEwEQS25ytblt0y48pOU3mOkAPevjVURofW09AvXwo8HKQyHvgt8T8P-nrjt3BkTXyVD0vjJ5dkbxfNO7INnLjopm4kRxhq-KVmOyx0gTZCfBrIIm3akbaL01JdXDJDvqi4K_HhBHUoSouGXe9rYllA6O36elnQvjqEeXlIrO_f7tgEGiYmJzQKbJ5G7e2aZAfABeGIZL-Xa39eAPEQigINQ24ZMInAX1usau1TQjlQub9khDRGfLMWw7x25swyNzL68lIZawlPFV7KutRH6dL2ThmiYqLt3Op-X7ErKfDR5_z0fVFtdiLEjfevbZiZB9nODftiSoHEZW0wvh6iWsGfZ2CC0qqgfSJjaTMsX4srf-to35DoCi5p8-EyBzTHkRDmcscUlqn9LBHJHnMn1zmqQOPk0HaeURs5D6xixP8CFxUfDuLj-3Mx2xK5oheZmHJGxrSZvC3BT648zbVVSu-JwZ31XHVv41F_6uDm3row2bouN4U4tQLG_2JWVisQiBOHZpy6IVfrrQdhDVoB5Hz6hhngjm9oGhBkDxaW9fytMH15paXq-fVjO0p4nJDqJ76fcBVeZgt_wT5yb4j1k_5_38llzAk1IoXAwfgXhFCkHFs7sZ1ARSqpjzx6KqPx9rdfhYhrJNqfctn0bDVjdGZ0DR_TGCeEyQPgCyxfncS4GC-GjLh3q2sAuUYaIydX2ZtbVQVuIoRpmRZPTOBs_aUkfjPRcGsVhPQ6Gz8Z7CfRIABnhO2QP7cXen6KZ5whvcNNqb86pzSelf-xnpCamKaaC6JBTmAXIwPy0_E6TjMn9PmTnH-d5xUcKqSo2v63Uf2B8PK7Uf2ueofJlg_xpuYGEHg1fHn-LsCos_oXJlnnZKSrlPizCH4jkbi9RJ9KzXRgyFDRBjV3lZgwex2hWwSRDAKHQ9AOL5Lo2ygWPNAYWaCCdsxrliylLhdhJraqwA0wjXKAGhdeSKkM5DFZ-q5UN_HpWdC_PYBsTAO40XsMbdRKFEiEoN1nkGnadGLON2kQvBuLCFwaACXKSmUOa8u9YwMgYuqJuwXc6jBGh9DAUexBAHFnSH9_aB40HzVBSJPlp1EKkxFN8axfc1-KNzB7GU5IcJQYWxHXtuuUtKQA7fJrJDXJDp9e_zpolol3Uhfg8DzDJRCSE5uKaZITmTiVWr1XW-RbVJmT8JM4ZN8ZIL0tDm0kNb-09kvoqVobMhIUPf1QbYZW7dVjlM4SjL-jaBwSyGtO1qdQeNgKPRScfXHH9p-EFPH_O3v52HzFVf3RU0Gx6dG2tff3IF8cdpaFouHTf3tnXuCjhy0tW0GQ9eKfGmHD9RmpZ5cfSzDNvb3Z3JYv8RIKStnVI104pAXpwG91oPrpFmAQichn1N-4GmS8H9I5n202irF501wRwdU5elhzb-p_XBkD2OO58bWtlogj1u25bYTK82_mw2ASTM72Qo7Uqa5aUFVwTQ5-347kBLVZsAWCnVzo5jZGsIM2oVix_pDzdPg4fVgY13Ejbki69KUasKppazYSAl52WQyRW4-H2Z9LHclPrXY_38D2s_KyN4No4rG1WcFazaX1gA-tcIVQIvlP7u_10X1T_I2_zxciCB5ERadMWzEO1C72jYf9Qocv_PgEtQnmDycaQvJywxwTYDYLFtWB7lJwrI_l4xbTeazeJ7Kk_rE8e6uZqmyN3rdmoUhIvrzagaHL1E8DId0Rf62YqjGaK8aohe4U1uc2yBM8NgszqlPt7wS4dowf5OIaBMC_2YnTQaSJdkPzo5_jHC-5yNJu7kAdV9ZgMW-DgDkfJ5zjoUX1YbYiCV9LffP8eK5-JX2XxC1DYDWNoz39rnup_4oN4gJjxGWhv4gosb4TbSRCu7p8KYGhGSN2Xaa62euF64-_6id_DCOZrr3re4SeYax0ZEbLlxD3oHywLSDtgsFnYyr7q7bfN-s4bcJt80IMym5ciqifajcHJw16SRSxpgH5IFgESCcvVSyeREZrzDJGMDg4LbNZLnOG3AlfktLvRnS_pjknEzaXvcKkpk9EuM6Kr_1OQaXGKP9EvZc4VpMQIxkLYGcEiWm1D6P-vciMMs3vGOs3eWtbVB80UEL8pQlZhlHRek-ZoWHzE4_zOD4kfQJzhwKKQVj5ypQIZIWBLayej7Gq_CwXHXLPsqEY8B_d5AbWkmzvAmSdO9Sm29qPrIbKovSDQ8G26f8tUywBAgdDgpsGPwvEHQPVtArchPIy9KOucX1g8QN6BtP_eErDoBC_n3_h4F5X8pVAq9iXm0NKh6RVBOBpqYku12r5oUrqXl1a3ZZFXY92V2sO2lqyORlvaN5PTnoBnLZOwhxv2M_CvGLxWnzrwL7-2g_-j2BCkY-byrhZaxk8v5cCg0yATtK6QNBWAFPQeFeP2qDnj63XWgVPG-OU96DwOuZD92_MbvlqXc5kMFdAbujtiyAVizzBgJs-TRMI3I5EZdrV3I_ulCiNrI1e_eIeSdmzk_kI-AdiXJ8hjdouXd4MH179zq0UYuELuDhIR8Jcu0fz5ye5ZMxUmQ-6tjEVp51KOGllBlp9gYdAPo02vgEYJiTtC5mhOj0xE9WKbRtAH9H_-oMzFao_3IU3Vzm4b6TPTjwZhjQiZ37qb9aEHpjJOpW-ooO9Xe43JNc_2XbqkIKD4z4Iopezx50i6QbeTrSg6LMzg-zuDdxRCQpigSydb70xpOh8kid3KW3-RotN4MjEizen-YSuYrneYmtp8WJv-U_3Dh843LdD_wXDwYD2qblQxzDmRuK5jEyC3GZTOYqsSiXzli45e7_Rbu45oFuCsuCmRhbKgIpAYDli67--q_vCO0hkVoaCbRG6l3AqznRfEyqz6MPrmTXy2DBWGlx46psHJ-TgS99XiPF28_Tyf9Hs7RhitBYFIGUdK5d3MuZSGEO87sw45LNCW9H5cRtYUQdKp0i8fuGg89GaGh98Des1nI1759m-J_MRAKP8n14BBpHE8GAB6fg1eUt5IgyC-a87sM_sMCziOtmI9r80l2kgU8pIJU5HRAtfk7rhDlWG_94hUkDGtmYsU60nnJfLRNhWiSn--sGdp4EFRlOcoilE7U3dlpTygR3cC91r-NtTgl2VJvaH3-lXuzGr0sgxgeyhSaEfBpEGmgakNS5xvj5ZHFweRxDXv_fC6QTMTY8G2EeonxsrSObw2f-6Tnwl-4nRE6H_h2KqDJS7C02uJxNWYSIXyKXKgCtzou7sNbhkmOI2TVnFyfp17drpq1MBxaFHGQIJ9lgh2qK6hVAvrbhp1YXyCpULAWqPi--g1WNrWPm9qbpnwj794ERTMrpktKhFuYt0t-lovcVP6sV-WFDleeF00-KJwuMnmK_81Bw3oySMJDq2UCWM6FDai7N75HlQhEKGA_hXVo34oZA8lF1uACukIFiSkGRg8g3TZjWZEWq25gvYjQVLQgMmXI0haMH8Tcf0NdcPfJNZRTOEERYmrAiCHJnC43ojG_AZ35D_yOE4IY1-9EyW22H_30WTWbok5zRKODW7oXHMIOeCTwJ6sh_JdV_L-r_a9BbUlqwCZljdsXvq_JkVv3zfRdG7b1acK3ESVWqiJSfwKyBUOwALzdJU7-F92GtLU_mBOvaGYLIFr7rTtde9tuDKI5NXdWJd1n_rmZ5MtSuAliQFKKHNPzExwoONm5rZM8P_CKyxejFOKB_X6ijeNctuojv4vrq3lQ61cPwBlke4eLFrC3LjlEdYjCjyx_3Ih9BrZre-aKOkxI4MseMxlJZbycfl6vRMepkaqkq3CEH-2uec-l-Rxckl3YPWi7HjJDflJkJWNWv1_dOKekAFtJJGoJxW6rjfrPHR9IYswtqQJkrZ75kRecvEq5DBx1UfnKsl_kpGQLR7sKx7GPK__U6WUiSo_uB8UWxuWdKwatdl1G5JZ6998WGpuUppy5mv_Xdp9ph2eJqPpmGp6yLgJ8BzBLzj06OP4WO3hs4c7HhioLcsOm7sUJmkxDUUtux_gjLGWZSCxLgrtmW_WjTtjs-HPUZcFIPAtpE-IWVRE224_KsFTxquinH-wHSycAEZj5V-hPggTjNM-yA1q72fq0FMHeBVy8qZgEN5MUoHUzn31iZxB2jX-xKa8m0n4rSw8IUijGEPUZslL26JzSGSCHEzt9w-zaPzX1KQ4xeS00pICOwbQgekTfeYerSWtN1B3f23HgPHLDtG-c3vkMDLLUIcYSGU-zdkHtZpXCarZSfd88h3zj8J-acTm-_qqkETKPM8NuVEdoyczyg_cKH22t0vYbDSztsEzqgCle6JjtbszwWutmQT2MhC1VghYlCtoZ7kqNuIboO6AYD1nzGnLjrLp5tLqcDAt2iEbT2ezwAub_-FZn2gPOVflGLvmw34ULCm7YehgdwJS_2BsxTdQMoIHlstdLsuk8lXfcWXUx2mHNOiLu2lCICjyeMooW445313TR1Ju9xJAC8uTliJH6N-u9YlwOrsoy7wDITl7cMIpepnJbzH7DGiWEwrABRXP9Lj5epRw_EiSXUGOTTIj_vhSXebJwVTZ7xTIrvGEbTTZ56y9dzeuvKsg5hV22e5cr_uoW7cE786AQ8BHg2BJToxPe64juVK9LGrpcRjnFX-Hwsxsr9p73hmelwbM4i8fi3rq4B-3xMSP-H3oABPjEGPI9j2iOOHVcc78Ir5HQ5AX33Xy_KpPGZtGX_1yZlODM0LdwkmBUVBc0Ugs30JnC_xEU-swLMBy5ySxlw4DGOdPOxtF4x7n7hS_OnlyQZYJvrxltfBkMA-2fVBDjgc0sxwW0Kc2Q8z9d_4FBeNsZSc1vNWoC2cXJ2eThDkgZE-V5HmM-JnwiAGbNRuuUC-2_BblF_SkNylcNDAAbFdWlU75rr-4ISTpU7yI57yY8og7FI7bi_YzTzbGcLxz6zKbiGmXxZsrMsBA0uYPXTfk79Kkd8r0uJYZXu1mr7VxS9RMoHT-zcdXWp02CBr3LqntjAn841pPUtfbZBqHHVIdrhJiw8JHrg_V0tC3rr_-0X9oOu4h3kiu8gSjUXZyg3mtlT-mhGXgGalZsGxEgI0HhaGTD_IT_fgWur0Z2b7K45LEQCeCofEeVOspTPVkfwiczIlWmT-gwfIzxILBhmIqRQNwlVE6AnKvjUqZtwfRZ9dIuvllyqJlzfHM5nCQcrTRNUSnTM1YDvaLiSw7nz18cYz5gAyqgsXjzntbG72QoMCJ1yuvAySleaSSOUt5zHE9kg_Adv0hl0u-qNQ_Qjw6fhbUSW4hDyUwyMKV6TMfT65pWDuWFJP22gTSFW7EgD8mw0sVUslzLbhxQE5paF2Z_8e1KRZPOUOcSs66QoCj47xy5obZL_26M4vex_7E7-mIRU-pF47UYir9wTRWETbok1Rlcz5KQmi1qFpZ1Hde3BiEu4hwR-8cqiJ2h4jMMBh53Vuyb1U_3_nVCpmTlDg7ulQJaQ1ErUIT1IldzMbw80sHD0r1D5R6g0_lC_lQq6qKztys8Y1uVx0FkQzkyyp8HrNIrMvh2ZznopcjgKZmXnSLowIJv6xBao9T6Qh7xWxcSfcM4sDmlL6eok4Gw2xwYXNP1VavfvjabGk3F3cWIFWdvFtTLJZpqgl1dqzZF4WBfa5QxqYRd7qG1WWkWAThg_od89AUU9n9bpBxHkCU5QsMDBsUvajac4jmygQMd4TE7bqdGIJzz7uhB7x_psMDQTXKM0xDIOJoGlgY_PGZGmUfg1YYs3_RJDZtEevzY_YlBn1jYL1KDBpQsfi7gOIk0Cdg8eU-ruUfO9yvLF79tQ2MF6AzGq9-66T8tvFlHnx7qectbcJ1Js0k73457Cn78PoR9Sq07RiP4NTuyBbx9YWjy-hkX5reu_lj2IUcp0EUMHJncCauGcdJrqJwUYVKl6qPRLTIdJdqK5vC3_xk0N3Tr8K_3FZg3Hdyq_nNsYAiPzep2rRbKfct5PSh6IUEOgwyhs_k5wLbDiFxaDZX9aXqckmrwRvwBg_0e2WM1OJAddkp4qPpugIEF5xU75nO4shTGp_sQ7a_VVvX8tr_vx5CtLAJWP1OM2ozJJW_2a6c5auyjYLTghoEMhZC7Ggyl1yXYKJgeqCVTQjVkNbHZVJN9JVoDgubvOeFS9HPbXrJwVOsJz3x7TwRlBl8M2EVc_tWZ7xPd_fU4vOW-aA3F7FmFEa7KGvOM3ahm53mAETMU0QlohTeRDGUp4pBwsUjUvzcvEkmpdxzCexLh54ovhpM7gYhqFlXHDa_5YFK0DOesg8lI7P0nyS93nzX_Yq96oLn-pLXQNPkdg5vYqnaiDVfZsYyg_Zyc-PrSzYwhS2GDgeIfUSWAJmPXOqq_JTdHM-1OGsc5JlucYAB-zEudinPu0YrPCtBwCUA5-eemnRVP_eXwj2sXpv3LHsVVzhVK0DZAz7HSmBzm1u2RiDvKybny6YkHvCY8IxPiKrNq964WKn3wqmAw_41lG--LhIBV6Cn2mlj6vC5ckTBVst2sM6SyteKYP29s8yIOcjH7yV9HGlpigThcaLu0bmE2086L6DAJrjx8pvZrjX24AlerTLanJR3TzSYBqkvUZSimvssbvxv3SLDdK2FVAEPF9eRIpEkehLhuQnK7VrjbMixUfm_zHdT36-yMNL5YcheLXzHjrnUGjteGrDLVgRpPZn7UNIdhnnSxBclMbh8OulOwDCgdzZy3i7MsVl34PqWlksYnonRLCYaxST2ThiPulrGO7GQlNbI2nX1e0MhU1o4pEhWHrNiHmtJu3iTPEF7qhoHI351IceoDh_rPxG5FdvtT6GAsANU54xuGByHxzjq9IsfHx5n11mIslHTpq-uLA425Dxh2zPTAVeTTCVqGH1y_4sozDncGMAaf3sHkzjLoWXjqaS9RTOJWLPgoACJebIyS9ZU9Tdt74eQc_n9ZQoablW-aeozktnk6NV2mj8p50bCwGd9lrFCMMFxTx42YJLLrVQLLMlWEl7bZKA_u71uyXJ6Ke92PeiELTPwIIjzPwcwr554nfqr7VoXwAh01EdndGLBX8oUeLSL6Sb2JS3oTKSyNjudhKXzD30qVgouoNiMO2CjP7MCYqpIkOzn4HDeijISANp8miq8KsoEh7CKD8VcX8_0NjZFjMTR8QozXW9lDxpDyTdPpfh6KrHEIwZg8kFFoYRouyDl6pYsZemx5HqghN1qh1LIUnqkkYpd7P4b7deMpOn0GSo_SN3Vtqa3jmmIl889kBgxy2ramrml53ZjHNUq3CZEX_o_RjSuinZNVOxvU6Os2loG6AfzeQv3YgegczKQO0yjDvQTulrvyJJ1B8p3V8nyzFaE93CYMbqSpiq90tAqzZz0o_yJrp_ipAUMWCpxTdMDEramTK-Cg0iY_YnMzhpejKbpe1lfoKl5OAC4GliGrwfxna1rYHybWoMCXubQYuu8yWIeU6hwS2ASbBKXrgRSim4ekDj21XhDiUKhUTtlBnWjTGRNQ3GhfcRlEEfQ3RFFib3VlnS5wJP6e_T0x40GJ1I4lHTfpIujKQ47mEKkz9zb4WpQcETPZEhq39IKXJAf1Rp7iROS4u8I6Lp2E638ngKTTNvRhBcnfs0DTgdK4pKKumOowM26wHYfMpzLkbfNtByhFYOd_9UtartX8AduJLPT6gdoeNUE7wTK_K7t63AmWBiYpeKRnjl3ETMF_KAgdAqJuiju_HuUUU1bkh_zYs95TyhY3QdjNQh2AvVg9zCuCSAOmZNy3TK7GotAw8DnTRi8aXULAcnVf-6VlEyPnZRbOznUsmNnAvE7T8bMDVsXPpToV2P4n87hb9_OGOof2m8oqDvw_pjlp6LMjxkt5kKuWxYUWjKb3Pqa7xOziAARp0CPM3QnnFwcYMW1Wm40fKA9458kBcNJeVLV_7Rl16LrnbYyMFhfH2XV_l5vExHDLpRCRk6QEOexpAWiAOEpmDqCPGmyPlRe28xjC11J0lJq_jkxzlOX9kNIZ-qNKeYq90EJxCGsj1e1pYYtvlomxKS6GSIgUu_A7QaGXy3tdFQpHc3rrHakcg_fVaDFZ7ts9AS9c7pjexSHBT5lCB0EjFz9pNr-8IUP8PUTKeptw9KcbPDoVxTkNv5xvyq1C3h7Kf2EXYxNZL6-n1yTg3vpjCFdYmdTpUxwb5K8NGMP-WAYKTQz02R9X6k55BURYhOMSe2QQ0NXnzzHxTzU_sU1Kf0aP4SNuAv9shabSCgUXMUkZ4rTL9RAAvpaSzogsDpsYw8NH1_OTqCFAS9xcH7kkbs_fgS-kCXSISVoOkArWnCYB6hqqIh4ELf2_9BDcVkSwK6a_6s1Usu3VGsGagS-yqFSP6ey2LnFOt2SWhjKZxdOf8C50VaM0Ivc3Nd44vMzUPKY8eWOwFJmBqJ5iAqP31LlvN8h_4_6WpBgenqLEG2rE8dbEjZhLEqh1SOcy5JBxDi0N19s7CqRpuLFLxnTz7KIwUulB84UPt1a9FV8TEaYEz-e8JBgu5suKi02h6QxvYpv3TkwFQ8EE_41bkqpc6A2EzXcpCkSD63w9OK6OLqqX35VwAq7r8yE2UEqkQc0p6MOO6QMntlT6T-W67sPwWcPxN9GASnhsEKpcOApj6zkrcWMHzm_MS0ImpLVc5lPKe8BCj5zVfHoeGFhAzpEm0v_8v7qyIYftOosaLQtqfreMgM49CaOeA6VxZMOSv2Bf1Q8_1ylSOi4lrujHWQa6RO5VPv29r9dHLQ5gsIuw9Vko3r71YZVgFajW-U5wzuWfzkdbSQPy9MFOmk_CrfBMmXxZPqrSzi0qeCzdugJinnYd4K8M5owPYMrBAIvb6ZM9K4NshygsOOKUY5qsl9RKaKJEcstwOJUZWB1Ck3ZohJyZm8R9aTEoDH7fRSHCx18EXkyZB68nSCKXKUzN9--2Vk24AFqMfarQFkzMRTzW5pbpbQkpuCxuFFqhBUAAoYpbVEKU7wv-_MBWdnhbJkDm1kyaJ0ZJGJ4ziBegqDN3WoUqni0zkVnCz1OZFGfYM-v5CA0PsoQqx-5DAwhPTsaKEgfFwuckdu6y03T3XFjoAbMiP6jRJN8dBLTO17sZtQqyBdaJQCSAu_CtHsdKu_L2Fe1GmT30DKWkYGdtfQdfsHjd83OQb-0BIBFzzOeFODrMEoUKAAK4ZbJDwX4FrFos-O8DpN6Jnqiqh4VW6njAddWWQ3b81fMluncxJSwA7w8ade-sCr94sybSQcq-AHERWeFpFE4-icslZVThQfHaVLnmrnLYgYREdULEutXy5nyvUpHKlQ9C9W9KdeMlrSnSm3515XIFUVLLe4fp4zvXuLys9EFcA6k60Xe__B_ysz6Y9a95b21Vr5klPJH6brlFOK2GzrIuiAWRPjKnC-g0-A89e1otNStjnrJba8xJvZ3d0qicwVUuD3MeqLnpvpLQwEJxYJ28gqfVuXTGZ6fqJ50lgxIGY7Rs02KizDP1O3k27MxHZpD9XtrI3RJ263wSqD9zObG1r19t50WkaK5Xp3SqbwW40U6W6WlUhJuzdGFuYoC3rmlXqWVCee53BF6O-qtRRkWtz_0uUp_uHGh4d2OrhawqBvff9FGWn6jXNytSKH8CTtQNdbZY_uYUTruCLdleDvLexYX9UX4V__-7iRr1ILAIU7fPaO3_aUSso36BtgwlETB7vYFlgimnKg6aptky-mj4J6QYR6MYRLQf8Po1Z3DF0fa_CJpQYH1J_5SwT6U4CXEKDarmbqJUMIsuzVAmyfx6uoj5QGbsfxesmxM0f_0rcyGPvXnI-mCBVUDFuD2NeZz_Fan3NHGXCoXCrhJHtN1QePkppUSkyn06khGAcU-y9wVB-RyI0hoqfC2TNU_UW-K7PWryowh4qJqlp1nKbif79Fys8ZiUTmpAa7xGBYI23pXObZ5_uPS-RyN7HXYy-x-mUEcOchF4xP57vnVvzo52UvmnGb3P711uiwVpGGdZpSIe4L5Xnq5L4BAUmBCpcm-9_uVXYHkM0klcN32oQo766SUnH9J8h-ODGyxAgrkSAOZ_UZwUQrXF5x1KZc9we3CxAAQ_6gt-iKt1iCPXjJm_rQmwM9H0Fhk9GTJ_PYyBI9Vtw9bqCUDxa80D6wia-USh5gir7GHL_d9l5zEsKl1jxeVAM2rGEemIDTHp3PRWSW7_QnEq5_jDb1YAiewwDs7IiEDcaZ1gDZVssqSONtQg_rS7kyXe1MgEKN1OnBG__PmddpZEp9gPO_191B5rVnnY35mrDDj7-unhkQX_JcxHLZtk-QP2-Bc_g5Hpxh4AVtIU5Uq6twDUy9Rt5V1KvquR6l2s0f49yP4pzw9IvZXbmuEeC7OkafJ6xbqHNxfilOZxgPRXgQF9QdI2cT4okgzss7WrliU7l1J_JdjPqic8XxeQGRWxESiThfbPF5ezNMB_8-iWg3bTdUryJkdk3FSm-DTYlejCtdXEr1-N44ouZq3ARSHsnJKe1vBnL3PrghI1u_bGFnHYoJ5w73DTismiLZ_yo6Ma4vfKMn6RD26pdY7N3SgfY92X9eV_AMFaslv5_HRJS7cCgXwJSmQhu7jxQCCDCP3_fnedBkMwPnYcFnp0eFdgUn5soGDwIg96pIrDfEiYfkfHeXBdCShNAZmGDrGUjkCijesZ780rx430VJt3j_s7tyiWIvefLQZDQuot03QTPib8h5Q_WdWEeAfJ5q4lkuDWTW0rHcRjcIZq5R3tFNLbDO_tOU7phRJiiCB5d1z-BnjfKKpXohCxNnRWMyWh2FkpjPes6oe4ahvVGDXizCXcIA2K_EpJ9S_T9SpvqI5_379BY18i_9xd3gC5RU_folbvzfEoT7FEZRX98TF89nzzc7ohn0VGvrhekwMyc6S7iLvtmcSoh1ArvWRFfibPvF6erdF6UtOloZC3pshEYm9P1XD4Kamu3O0UZm1rcJaLyYTrCdqbEMBMCUMSm1Ig-tbbBkt6apfk9qZ6YOTuInMxdBGKYWJxkZOrXnYU48F1xGEnE5_Ace3upHJzY8A22Mv8uV704oZt2cZsRnIRokWmcQF-L_66KiNV9juCWqgegFV9ol_sKVCpGi73YXR4KDLmsVkQGvHERGPpQ1VXdmOxALPPq71kWCfnrqHdoKBYXFGuOenE1xPkxFniOp3oWvn1GyMzX1wBUe-BDch-tAUTcr3nk62ipyXTiBrAJbfP9fWPw5VVXK_DzH8T65toLecLeMC2HR1ifs06ULX0Cad7bjTBNnu4nuVvvDeoc8vuRn_cKIXVmBa_9tB-qP-Wf5L3cGgOMG5T7N_Ds9adCHNfyi2_XqZD-oUP1YCFEzCr4HO4L8eMQaMcsKZPGRc6XFnp8qr3Fv6FICpPK5Prts3ijEfcTb_QOhbUkHn-DqH-WMl-0Zegfu2ppY3aYAN0It0D9PW4SQ_XVNcwnehlxwVwx_Lhy1IXX4BkIjl2e7ejfXCxpalMcJxXGrnEa0s73Sa4c9vZNTiJiTdPKWCak90rcaOepDSJedOD4_iC2bdroTdBh2FPWPxL5VTMw3ZqgAJ_Qy_TmrmbrLEW6zdQST6r5nF_hIqSsfmNICFthu3kV7OG1ynLc328Ljbkcb6gwSlIj54_Pr5WJCq1W-HPnAdoviTFHPeDt2G1fAEOxDIfMTWdutQ0XDsK66uU3mcBSAfvXh8TPr7zhz1YfW6aqowSp8RjHMu_5Xg1twT2l1P1PfbqHSpjclR9JRibVhLD01dRo10rhRPfJqGSNWYxBWdo1VPtWJXzEM8uSxXt8OK9RgCs-R7A1Ru5JNYM0tKZj033lTUebIJZ9L0NqPqxDM5R08ZerJiCjNQ_OrGEch9yjlwIhIK8SBOHN0QkVm39yLy7nnI_jhdF7B3Oa36z6QXutfVlapdNNkBMqsyx-o7MAOcnduiNRRx5aLr5VVqBTuHZgk9EnvxepO1t33h9KIqBvM2UZaXVmjGhCVK8aasl7cEAYqBJvwqu4OfaoKrxB6ypqe4LqvDo8RkHquecnsjchh-AbGIys6Jzmkz8Iv0R3fZuXdje3hTE2PTJzGIdl-SL_Rds1tghhrsZ0f5-iCME-91P8DCJnVVX8adWX-64pBBtfQcCnVnHg0MK_0U0gkhn0bLpkDp9lTRKZ_asuhXVvbRJSVrBke9yaOaYR0XfZ3Japrh-rkLRj5rKsq_kw5lSn1ulK-JvimMkIZ2KECt8D0eYWhaE--y7pj6ei_ikxgvkjop5PWORzeWmIVusFxCoxp-YXuIY2-tUGX3fyUGRL2JdSavTWUe9wK2hDJeXxjj4KJcQyGiV5wsOM1J_yiJiVX9bcBimZ_LLpBiCX1GDoTRnJMEZNoeGkuYdhLwtXEANaVOIUoJESU7TgWxOk1l6tJABJ-HvyfHV2b1wxrLmwoOUL6Ctm-YiYSs1gsxnZh18tqdAWZy9CeW57KzlaWk5KUPFFDSItWZxvAEDZNwk5MpdKgr32MdsrJ9fx4NyqjDhnyliifkwCO_gg5tlBSPY4K84Nc0xp8MTZA5qs24DV8ircUkSQ6OZ_nqntscx37Ws7pOSN9frLboC1cyPIbJItquDIGME580MOxWZjRifc72ljY_USE17DZ-iAC5yDvhwwC_eRlagFqPdU0hFErzC9_Sckit83N3CsRJ5Cubp4psjLrBb_mpGoMP50-F9hQBcocKUiFdW9xnSQQmI4kLCkEDL4uk75icbZlbidu6SVCpKwr9VMuWMq6mwcVsR5CRnQAoe7ArqBCGZOK9S2Jd8gK7s3zJQ8mIvPxm3g9nKLnEE08G0ub0rB4Vqpjnfr1JFj_bCqScaDzdJzjIzhxtOWpthfteeDqxWApEhT9q8Sw7kncZLStyZbWbdTo3ahwWsYaYR4F91X0QdDK0HR5_63I9qq5UBuZLdlxYZdd2IIbP3Hi64eBN2c2Ci8FFlQx9BSggiEozGOHpYOozxcmZgKhTlVKNmQnz9-1AwXdhtBU3i3PA5JwhVqQSADBDVoZlwd96cbvccvasiIdYObVTPGhkVPJzXRwn1yEUBVJHVe5elfz_tVL124hj3v0ewjiq1f4jyoAa5n8bb8h-7phubWaTJD0SRHghtvE9XcgA9e5pte70w9zW61ENfc4ndDiR-W-ZCjYyW7MeAXN-Ptk1mSFoVn45X1aLb-wnl7ux7uLaMJVVxB4SzA7lJvJ8TKQ1TXJcv2Mk0TlDQxxfohdZxz3mOV4O0XxoFl1oXrOfZsK4phDAcRX0FUrAyq_gLLlsy4A3vS8fkgXRXActwfUCrcvPMcB6W6wWbXiZlTAbi_7NrYhOb1TBjbooz0ubr30O9hryugGyirgnUfQ2lpgOwlH9yLdAz8U4G1VLkRyg0oHRe7mvQY1Pd8OSKii8waOmPqyH9ozjGz11SoXyw73WuCBOlHvtr3bAgofkNKodrUuH8aT_g0ZqBg4pV4mEcWhJ7Xc6EFCioSIVcMHwloeCjytlGL0JHF9-wkn9nAwIENMJknpss6bYDPS55XQnqBhKIoH33dovyAQhihB626ex2a3hUH-1QZSvdtRyW0zxSezrM-gD_42gYu8ujk3a05zdsl-mOg_wOTs3BiwalkAPBdOIHUMwfBghUasjFEwLbp-hj1VAc9jmIto31pvBjjSJribPzT9UBxlBcs48fEqvfLp55XuKuMFkYgB6913zzvIcMiABUL0jfNORLyVGs_k7kSftJY2eCmtMzh190vvGork8to-jOvhNbJTsb6wwlgqeXzvrtZDz_lo2AC30y1BcL2jYkpm4UCHTwkAwM3AcJPCHnTyLksD2ovFkx2hfSLS3wHIVWStPDYZ9ve8Ren5Oio7d3wWqD3Kk4IbdCB_avE0PtwZl1yv7NWfIcNZ66ZHeWcnII_Y6VQ0lqC8Jnlg6WMM47vbuGpzO1abTSH4YA_X8GHMkXqMdt3rx2nlMMuHsdm1FKfvGXhOrYjmZGrUoFSvWIXlfk53i_bSFzlX1xr1dSpeULFrh0vDuQZ7HoC3q-Jv8ajtC5sE-h9Oy8yInkGJI6HuDnGgTdvfnGEbXEUJZ6euyNDWlwOpvt4CpMz_WmKJ-Fx9yGzElJCJbO0Br5_qS9G6NBZCOut5ltzmUv_WelTsKBdFM7wk1hhxX0iJVg4wINBfiOPqWKaW0cJSuIXGjkcHggJvhxPLo6dq4AZTxcHEGPytlGlxwY1VhITin9puzWdmGuMq4zOihWlNnBtwTyEkuyd2DeUFF35cxMVMllLyRHn7IDof7zdNAw7J37ZXZ1ZHk5K78iieP2hLMp-vk3ShIB6GGfjXs2WmfDEyqQ_iFMoRuiRaD40iGgFbz7dOW-IpfM0KJC0GNom6mNB3ooqRAu5p6_2MjZKPH4TFgkPTluC4IDfqpvmnKjA1rbWRFAU2EZsGNZ2-RRC9FABRb_QAzpQBD3iG3lCgHyB4JRLa2EAPiAHKI7BHycfkn82_S7a19Q55bsoX2Akt0HtC_JVm-l2D9Rnr_HZKJsiWaCzNYU7r46AcWTipmC1ACP9UkX5zXAyO5-g7O9OUPaAmN68XRp6_vT3j0-sP0YWyuHQMM5yDL4LRPjE5Xi1skLKSN_jq96ITZG1chJ2ucerr1KiM3Wix7vBw3sFvxA7hSW4m69vHii4iHB8rvr7ufB7mRzocbmQg3nBkGJQZIgET28jUsh035N2mnW5CLNRR1rkclHEKqWBaqxjZ2fy2LqCKR6ciO8lEIeZoM3IYNf2zKiM75HcK_xdy2iCAPynfLbCU_43zUkYUWl3lTItRiAbkxRu2ZJApxIVn77NTQ1bzNtNV6T-9DnWql_02lSUzNJHxf0MddxhUBtgFs--G4awqm0vOtHZt5oi24p6mFwtZAhIaJptCXerQE1PqOf12Ak01UBDi5nTrLBWA-FYb7zamdCCkETNWV1NQxnUjgyyKPSNeU0tRaIjiJT1Z0RgKQHL5_esmcO6OZdj33UGdp79T-b4oy7PDvypgHpbAMrx6eD0ZyoOjpgFQAA96zsy6Oxo2Ozh1E90GW6KdqIap3jFeW7zBtgQnM97O7WPWYASPZh-2u5KmFSQlzX1PZcc31IJfUsGaxU5VrVCI2hyAhOjuERFZ49JAL38-dGyfdrS9I5fXIlXYkp3RXPWG5LovRtokyqdWgFa1AQ7DSiaCaDDqm4u6M9rf54Ytg_cqBd9FO0EyIaK1tsYDKa1jWGEKR7eTN-ck1ngAYHG2xSC4sIy0p3-pdUCyCXfVjfZo1N7wX-hPSCvQAHK06FXIG4CIk_-ZFNTH-F6QBD7r73lXwhhEvh83Slc8WSIqtjRDUps9NCMNLa1gX7Rbj0MCTA7p0nyh8_dPoYTR-IzFNKGZec1Q38pBz9XXtzthUoVDSeljjmdSEDhLF8UFHWrALlVE_0qnYetrG-7B2MvMtCxhpV3BL4PZx5Mf8qQjunRlzs7vI5l6N0FACBiYaBWLb31Mt7jFDioLxzyFF524T3W4Wq_QCSEFGrqdQAlwKY0s9BYu2tvBQDtk-ewWghPVJW4Q76-GeWkJGXTJv2mlE8lZkviod2uQ6KjiFAnSoHrpx3bxb4BfF5rSw3heXLmUwp9wTm26hWuaJ6VBYgl-WSvvwY2Ol7NFI0kGC9XsGukYMYsarop_uKyqKCY6vyz7-gwIJtZPxlywLVIGfVa2jHo6sPWumGlnlUb8mlT0DFduChiTNHNWPK-rXi5PgCPeo98tMnzRwr7Pf1cH2icL8VBnhvIOzRS0Z1j7n4JLH6NzTKG7WzX3Gp-imgFNYJx2gDHCZwHiFH1XS4zae903QqHw2ZRJ2m8AR4uz0RJMdcOR_ABBSomykzCx23_Sl-pXqULLJZGh6fe2xmZWfcFdmFm_rZQWMYcPRjw7-ioC-Yc2byuZPFuiWnSv3TSJZsEoFEKlnHk8nQMmC_BuAXWExwEAOkimhcDMGk4i3uN0CYP4HULBxfTg6NAPhDoznJSyi6nNIZBfHlG9fP00Be2oLjhtWtbg8ZSaUClr56snIUDwClNn0ppKYuiSVCLdCO5tWdyZROlnzQTxQHet0rxKyLI6HHq1yrMJ_FjE_PVYGqoaRA2Qzf2StwTe-d6ZtpiT_x9X4V9dZeD48vhei1jkwB1AWRrlRkpvz7TFjpn4PuNuNETOxX0coTrLFv5FmbuDJEdzTvonD3JxVREpyR4Lxe5sZCvwGidBDbODcK8eaNsQNk5VVdteFu0Cyy4QA_NrTRLkrw_PNECsPCpruNvBCvjJ3cIbsm-k6pIT1OVvTSiwaq6hp7szVtkFB3czqcZuvuLIUNCGpsHnpZehHI3dXBk_dW0ME4Z9alxcsPSyRs7knwfEmnwVY6X6U24LASpEJgLLTWIx48lXAd-u_OSwbNs8wUr1aKvIzqVZssCuW0P4Kz3a6T2bMFodDjp42v8zS4xFjFvOzlCRiYx0SS-3yioW3_V5BYdcltbwnClf44u8MdhalL4rWTCdGSrU_YeYKO5_5hSsdsu1pNJkZSl9orGq9CTI0B_Gsm5cP94QK-78G26OVVjxVafHV1iKHAD3r44O1CVSG6N45k8qAUyW9IbFYrgOFveBw0yql0P_1OiNiA4FZ3oI-BPmVE_ub9ZQ5EoPvhcVPyAyzKd1dmsWPlZJ91y3LdFYwDC1Yi2dFiI8LY6g4YBmULbJPptFLNwD-Pi3XMLx32RAnSp5O1nNg53hLvPgQu4UYkaK89GqEf3nUB2mM0ln5adoE3UfYZhgBSxLg_yVG5hvrR4gcV-E_AvWmHaZP5DGLPjttFG7UnbbQIRf8SdDWHzDbJ95nr6HiNdE4Cx7-qin__XcMFGFRLri6MJ6Pp-w1xsaUZVzjjfKu43QpCwVCYBq2cxTBRGDJL4geVHZ_JSBd92xtDDKQj4Ohlgxyu-EuJ9a4XeWImzUufAEMGBb8MTNPfBDhPt4n8Ztys62O0Sm0mvCGZupfmF55MnUeGVgqq7tENq4yn7w4G3JKpX9sTLCXDu04sCoklI82RX6hZLM0iVpvEJ8FTebcmpQWbyOymmxkNqxxBFrBZz2mtJKjhJFq9LtYfUbF8tF6KrhUqCz-UhiqS2Ns4dZ79aWZteDZXTyA8HkPMieVsbcueROMbKsKH-VUpazr6XOJSIOQLp1lxOD33rKrnPzoV7FQ2layE7VsAXudPHNHPGfoz6GXbE--cSGB3_T0Jq07XZFiOpVFrL9MhjTHECYsKR5rQQEiwyb0Ec44oZHjOcnBQr0WFrlaM0UMz6HRZh_zC-HTSoyjmkPsMYlY9iDkgdO1Zz1vBbhkZMgjgC8eCpFwA6eHncK7_tzJGDFXKO0uTXVpC-pEbSkdMG-GriCHVwBjVCJx6akC9BoUGAUmBMGlon_nhRUq2_N92Ea1g0DoMAcgjL4ZVeQttM-1b6VT16DErm8yXldYPJlg8APfWda7NbnK-QO4o1Hw32TqeC78P6HdKb_R8kzmiB9SYvGu1uMftiTR_bwYzI8KD5Mqu_j-4BgQSwhVazQDMkSfQ0NdSEwGsUYkZUnLBvgjDOXJe1sXVGbIgmf8VDMVD3PiwOhSuOo6WumEEXwwKzyqabPEJAMqDp5NE-N0VDQ275F2HItWVcdw8eS6ESnyAoE8JeasxTwG8fB2XUgIPQlxpyTJC-7sWqWWgNPdk12tDSGOAdqxOtcnUnuDdcano5sWT9WD62yy4qjCFKnGeVo9NjIiI6NFYVg4epS-7N9liu1StL_0u9-AKlHqluISO3KbIt_UPDPvNHKY4vqYocFe0uCbH0fMrcDRRph9HpCjMlwpNXLLZGLh43YyS5tw24BbBb7579LGikY7e8-_45g7sH3do09RJHnX5AokTkNXn_DgfFvjyJCExsycdG5qMD5Sgw5F_PbBh4le_NmV3A11swTCC2nIMD0CexvDP4QMkg5KXlRN6Vd034Bo_ynU9zLFjlWr72XtnLnn5Pt1sRxmHeW-Yd8Lvu_ifng2HcGMlpbH-KVuCrV12uO1a4vLCgivG1hIRk6pAYPwqZwP1u05GvjfunuJm19N-D2RbtUQeB9kKQu6ABF1T968R5eCatIXOCpiMZwmPpuT_NudVh32vh-HSv-DJT3JgrEVqhAWW9u_FDkZ9hF1-1s7jffEDLSiElV_gmQkHd9IE1mbpkvdLdt9sE0lq0TcCZk8pNVgEm2givX7QnO9rIWOx8sr1K0acqO6oBDEFBxHR6oPvDLJvUFA6BPU0oS8RKOuziAgbr8uBeZXWbHvyYO0SHql6ZFTGWnzOz8oxk1yLpLtd9KOPhlgHATCUYKYJ06QkhFoZOsOq3SeVjNYzvAGXD3gvZ2py5YX97GDR5e-FXLgKPeWiVlxX7yesK_6G87iTZC8dJAjHO_A-TsI3fyuvIzGRJIZLCVmPoOgJ1RsfBUWICvlP6OOxwfSNlGtcgwfWx2r2seQwJHzIKlXU2bdcP9URpjD4zfKhDD_nBq-sJz88dxvSG0gwHpkRUVLQ4igG7SxT8nCUwI40fCoSbPqMFUYiCVtkaIrqefHX2C2xVCOVC57EOcpLZS1ifKRdFxe1EfCjbNnMfNczLss75sJsFRGr_b7FmQaFaZKfM0lmgOSC9N30nu1rkcitqeuNIy9btMlEE4ItD6wQ0GJ57CIUYRr9zClXeY-Tit0G58GnxogOCYz-ADIFkRPmaHpSoPEb0f_paXNVNUWWr1Q4dADrxTHoFw-L2H9wjXcZLV6X6CWqNCNUAeRgEY0uilfNC2G_nG5BR8Ahz6Pv8c5q6KD_mV_oc1nYMcHALZIl0erdhdMHnjTx7OItng5kg_W68Gy4gbLaY-u1DDq7uMeKiUbSK4rcA7uqSzIcdVvkP_rkT8-LRKn5XQ5QJnMJAfLCHcr1nkGTMv9fVU5NrWTgNiADu9LF4vuyJ_j4QSSMWKcCAL7yYkBv_wdkSYyzHUAPPrkGI9KGPTygnWVfPFvWL8Urvhg7JeWtfJPCxYnPXnidWc7hZBh0ZaTDt77YessnNDnvkNwsdKqveyp1SO-fQ-0rUgrwAwpG0JNqsoAJBv6n95r2vylfN2jl4nyOqMEabliF4wElnktdgD2jynnTltuDVNIvBu5SpWtUC9ZZWWX0e9mNmuSd8LaEWbJKXZpvwHvk0E6iwDsnQG6j-7HGkuDIyBX5mKMojvCVFXX_pwNZMAZ7WY0Hp6tsiQnW4mM6g_rrP41pYzhJciV5OpbKdTdWWF3RO9AvqY20lrbMul5leCwZl2bR67FQdf0RRB7YepaTIpky23Z4MHz6bAcRhYwYQBqy9X6WZ4mdwaH37XzSW-zaV6KIWJDsrZ9NGjvlrah1eGrZJmg3kmeQ0VaySaWZxVQppL0akWv2CCAKBFRHV5yXl9P2kTAtbDXjF2UjnBrldgqPT3nSXUkp-C65HF9P1yVSsaimFbFHBmQdCkmQmWtOn5dnj4KjyUnGvuqdRrx-qe0YMLK7tQzalIK5faC8cD4kSFm7b117zFu3pvowAk-VXrIk7UtX0V7KieLPS6WtoOhON1sqeIT_IsVkuiyeegTtwmd-TRP8atnYGpe7yml0uBq3we29iNsDHQe-eZ8ayrAqW0zysxDcSyVGyl3aSvFCSZ7fptxedYeFhDLGtxF32oBwfpjbdjCBxcFYsppIt8UfVYLUeG_bvgFoWMlFofMp9KsCrooVlH6Gcf-MHL1etdxJS3C8RyKId_Z4jXzIn_POzGy8gBE3ouLqvFqoqD0Z8GAns7ETfGkZFGPEZR2FEW_kTQyKh3aZHH1DHg5tk8g-859uEbiQnzxd04rqaGuDzjN4aYfVdWwiP1uKYp8Dy1osjKqkYf9ara4pu0NJrGlPj3mhoNgayq4mdCPETnYd_j5pcIYFlRHfVEhW6LcWyRiOqXz6vWfzB24gunmkEo811C_0iRNNdw5bk2yiG4khPckikBuYBSAbtrd8-6ZGIAmnGxijohpv_XSE7rUGZqWVbNawhehr--tZ3-KKYSaDvmNu1Rzn_M12xqyzth-5yGhRYi41yVLgE8wKv6LH-nDxmMgTl1TWRt4xCOWIkOY05dnDpUmGxFkjoXiWCXKO80wHYsHa0efr-NcHfh5eEvGXV5JPPIw2y6Y-ciCgscKyBWD3BSuFHSfG2twgYPXkPkrwaxjh-vRA26JtuOaoiQi6kGUFW8T4kQlMQ4j2VKJBFDmbVS8oVl6Ea8OgswOWZ2rgXvOrXKM_UzYePyVZZm8VjtwMGBZAEgqCYFmkG1Es1-OX2-xzX6REJSJ4khGO10vWySnovCnDgFcsJJob42DAwyiYw7SOkh46MGY7TuKH7uXZnG-IvXHvNApOKVDAwrE_td0SuJAxZe2-w59b76ueW9bE_yE8C2pl_8ZCOtLJruEWqqYhExyBzfDWHHcUNW6tvupxmcu1G3tynmmUiJHua3jAbYd61QGQZkNbrcun8CD_DoCE76NYMY0T0yMM_OBaAqiKyO5mMUyeKZ4SKpZk_9OOalBGNAlvg0RR4f6Q_kqrU-FtFP0IcOS6wVgekfv4D_AqAPWdSxkqcWV7EbrqvQa-hj_Qj9MmbwIe8_6qOjj6LvPuofJm8XFdr7vImiQ938X60NxJmboo5WKv9CcLOVqEEFxrOyY-XPxiok0VU5tDGkB5T2hOyRF2SXaVRQIXEGTP4J4IcQH_689z-l0Ym7wA-R0sWpQPz8rDerIiVotmB4_tBZ1c88pQm5AW9q4hosQ7cZPsjTX2VwiErQ3H7mJQTaC_gNOlgNMJUTtFx6WJb13PSyxR8whO2TUDYIlgJWkFyQH12FYeDuNnYMjmfQs7taCE4C9Miy-_whj9qF-z5Uo44yR83cMpNUjopjMoppa_BOhpDCHULWYWKRy4FYKds5xJ2yQmRWSADm7tace07LuhsNAq9zJ6YGGbgUiOMS-lHu_mX7f_1tCLhVL3ZiUv3oyP1-p8y5g7HUiNWhXhy3VVFbJ38hNhY4cpnMpO5CmGWpogya351j7HsOtRmo1yrI1eGwibFze18kZtwp9vHfAlFclIfHrEy4ZT3ul53LwC6dU2MFZXAbOGCIb9ib_1HsayJk9lvJtpwrtxTNLF1U3UOwWGyh7U_PlRu4K1uH3QSOF49aCxyrNR4yBOnwfTy-gkJT0ilAiIOC1wRJUzWcwHLgZC3TytbecL9x4a5MIdA5TLT7_kEoAsbgsOZB17TyxkoMvNAS1LedDLzJogqOjXgpuYbHultiIWhnzDG1pcB7ogwUhc2-YOGavRUJIGqPLHoEMpUgvvunQfapQAhUFd1N5R8DQAGuwxlNSM2XKstc_gnbVAY1fjzAf3YGDXVCnFx431YAXAlQsq06RKcAFdgckOzSsVwLmdYyD4MatLN2sC3bWws9qjWHgpRU5XWxm12PNK2k6fwfLoUxRPJDDs4uYhp5R0WaiapzHh2eifA0efZkypeRPE2t7w_wY_7gAT5TBq-i-i3Is-7vYFz0YPYxM7iMlLA1LXgPB0ITsN7ciNYpmkHB8TFyQvIuGWU2VuOrv68FJsTG4BgDgE8cjEUC7_hdIGY0V2a_ri_Cmyc5QJ7leAYO3BeASPwDq54Ajhv-r6-caWr7TVw3Tu-uSJdvNBQ5CPpbNG1gTfEp0x5GPfLulSiNNh6V0tqjqLwCKEf0cOXnHbrGgh5y93d-1MbuwY2rc3ckSFOQen5dclDAuAPvQ3FNFaPzwb-2Wp9dYt8WOYtPcFEUbGtZ1McVkxKs7P_twKJWzdDZMJZUiBkaSraUddzFI7dQMfNKQmbLsRPrZDqewKVkvTYJcN76TOM6FUhltu0csaWd8xvJVZ8UXL7azb-7AI_GtaJ1-TjVOR2IBvDQRn2dqGrIebv-w2sQjg_Mf4KfhUXtqTxvdPuHbPW9UHf60K2CV8TB3TacZ36P-zVZ5rDofjKadn_eS8gtq9Tc8h28Cbuvmd-mZDK-hFz7TqNkTZaNClP_LpFrsOnwtEaHOVbSpVbDlrRBOM0lLpYM3nbcTsHk5CmwjA_l8dTzRFG8eyMMkiArsVPoHCJ-GFMvVQZZGDQuBrrxW0oipz8KWneOzoe5B8o6vrQywl9JY5uGspwCejxZnAKkYbKXaTlIBN_mdS0dlcsVUG1DyJoC6gJf8G4Z-u4rq6F3JJxkG84OfBw9bJiYAnhFkUQNa4YLX_jSsv652RxEH00Ljz62oSvQpKG_DpVuX3qmFyP_vE6mhGwiM7O-cw63Bn_pTHXjkv24Nx-PyZZX87nhHIRZd5ba3rlhZi56ZTHAsrs25_a7WrK5WdCxYSmDBY_P2sPufNzNDQg4ZT0BDCbDqiTLXA8INDpH2STuBONNcL3-Pt3drLwrUlb9Lerpt5WkLwk9Xk6MEaMFtBeCuHK2D_GKBOeHIo6gab5uD6BVcazoFoFEdqs5N8AW0VWFfWAbPKzxqkwj-K4m2nInWnEIjX_b7LScodGCGxHBKnFbaFtjclD6wyZdvh3l30udHoDLmu8Ivf1tyFIH_1zzy01tK7PHjSmGxKIJCgTvnBPJyMjG34EZXXr9RnQ7q_hA_iPRbbbJ3xq-eTGgb4JNHvEA1QopeFehulzo2CRF6vvv3Rn4JA9Q8n39Ev0HgAZxri-AR0pZNxFJC3kCYLrnzShVLosfuSzM3Yg9uJIg-tnDG74NUHEYUESzky72zavBw78s0izL04hBtQFrXO8jdtzOln2AN7ve-CaYFz-3pz9EMMUTJzYy0bl40K-BrMU08h5DTj6gLa-OvQ2TCWJTwkERDB68bJ8a2ms4QgBumhk7Wk1mke4mrSIwro5pCPIbErBUfdkfU8kJ2rKEVTRkxvlhanFhR0LSGjBzNSrE8sXKi6zLoLR8KpNyNDHpZveTRgUOTWOsQKuE5_grrzPCcnyRqMXjzCmtCYfV-z3-ptD_WcqhoMhfk6cSfd1jfTDFj9VRtVEZTCYlqkmhRPkbCp_sx61l6VhgdBGxPbkF5NWjnu56m0F0MN10BQR7uLn2tM-v7d433XW9KKaSUMnB0MEGpOf7ucHV_XjU-uxeS26T3MMHGGdlgwV9PfyDVUU-aEaLCDf0GIpEjHMCsl9k_N_pnDq11paChuZjLk3TxgieYwFbsK3qCnDbTeZaSIXXdcVzjKIm5ZUE0M8PzYhwKou0STwNxjY68rZra0uyL0M1VIwdC7O4XOKl00nNlhJjX5nxPkR72mxVQe_k22DfBSzsw-fAvPm24haEBqC_TMhwhiLu11_riwZuTkqyKJxHrJ4-AyaWhBpRUYw1-vXFzyzWgx4JS5YQhyynD_meadNwXr7-chzAUPYKWikQorcqhpDaOGVlpTQjaewtX_-IsbfedQAe0b17cjCI0BlCrzjXQ4tgwAZR3cvYgc7famXweyaYqdlxmnjXg0GydMQiMdp8y1povCP4DG8-GIp4YaohZW_GMsXnMGKG0NNTLL5ss4VNohzUdkeBDxzBuvlGBT2c6ZHKbTdx5RgQmXBmUGxwlDsX40YwfNnFrMg3zBVIXDUrpA6bYPV9VVc-lWhC_KooLl7HOaKZ82gYdF5aYjsE3iwP9w_31GXynr4FuGwsqg3fFZT8j8nlZDqK8hhkaMYJqisIHdi43lVD9CpFUZ3w5cMc2stid5stZG_qiUKXohLXYkfN9HVunGywP3zAwKqBMXRIadxa1nrrcaQD8E_5tZ-8BuBLzNRRPGRoOAJlxNm2WuwZswGA93ICeOLc_KjzBKRdW7CO97HPIyGRhfzDjKO1lQWII56I58yBufKF4Hk9D4pZG7uGO39ZpNMHXctDxnVewfypoxvSrgLmqXT5MbA4MHRJ4HvfUa5WC1YPGAkMkU5AgOsVF3TTKs1qbPwfd-wEB3CRaqKok47my98rrrr4zifkNcLTnOmXG6vM0LagCfPAT_KYDMt1FY28aQASyUFkfKXKOsSsnDuZf814bTqgs7x69-uIhoU5Q9y97W-7CWlDqx3oxNAKx9Zez9xoElcEq6lFosDY1amarDrWZYcIAJVxxCpNtjaADqssaexHEopRt8bb7w7sD6-4i6x5qkyXdcVMTDnNuri-lMLJeIf2GOuHkoZMv-JmKBsi1flOYsCmf8l6DwLDSeEzHpwahpGX5KzFdUAozawmzPq7ml-2YgXKU74IxNIn1Wa85PYbsGAvAjYTFXdS6LVB0Zgcf5rUAZw18uSpteNle-MJQlA1aQ3Jz3Jxk0iTxm_6v4lO5GBD7guaLF2CSdq2WDNl63z4S0ndpzt1k61J0ClGRLtNckM762NAMuqst4V8XIE6SPVfWETkR48IRLDFTNMPO58bn_MdXgfMz1VKwHKiwOlxDjph8ZxT6qvMDGPAk9dudBH5lr8WVkGOAOnuP6jN-mC994XhM1fueD6NPPVGfW82JKaLfuWAwYnAgupnRs_V-ZR0IydyXe33N6oPdc7qHs2wubKLa3klGL8loRBgffccoTPLMdOeryXVX6_sCTimeVvjyWgmLM8iQ7yjHvnKbzi4wgOLX3hLwu6n-3rUlJ9K6Ze27_wuLPsJ81ffGNzNhES-OkajAlUIujjDOXDczKwo10k7KWyXFaDW3rYD0lRGd0b4X8nrP2uhhksodqdJc67_PUue6ggYxu7eEJdF-Fn2d7ZMhcqC5msXHWg1Dq-mVwprV7Pnh7G7XEX1dfFyTXAxeAXXTgQkvgxGgY40K17bHyhV7_zyB6aVE8alA6DPzAO8n-2dZqYynjsVYFG5uK5MngTymg4zRs_sfrvcgzWlT2DPNGAmjfeYxiQ1IPjrb2LwfwSt2VbMDZ76CkuF3iZdjEY7t7018cC6EzSchdkyR-9Ss4rGAIJPd8eeL9idkAKB2cQCxmDASARirbZRP7L0HJjow5eH0SwOk3Dqqtb593QbhjWHUi92pD_8xUkrfKdZDy2Jw7E26cU45xBv1E5zO6VcPOLAkkOFbAWav7Wr07cDGEX_gfdEjkUVmDdCoeFn9TdlRpyPpRbM_Dz_w7FcYM1o9v_xE_sROifOAxFH_Ypt41ysg_BjBgK0HYWUeFdG03s_Sz2PXqvQ03Y0cYm0KxdI8w0dljooqkBdrHPT0BPQUvqRqCrDeuxwYLfHkc_LQp0-tggdmJ2Ur9q_n36FWrPRuF6uDiTcQoCrFFp6SucOVu943ijLzgLYpr4XmQYtbDOOpzVn-1qFpfRg9pA9bki3ZMzihpxANinOTfvFuqS_UVWdQrEh3UGd8JjY_hD3tNtcNsTQqX1qWpkxszS9kUP4_NN1phFPQNKobRiOm5QBwsFiKgQlWqhWqpCIUHoS9Z2Bxm8noid_hE6aIhzRybf5cQkvFao7Xu6FyD6_gQFSVv_pR1j6hyoPxJbRhb2O7J8nH-eaj8Dxl8dD4VAv1rhrl23JDBUwXx2_bvgvJUDXvao83mV_XKYQcGszxAkA723XrFAzN9L-K4q9krp5Qatgff68GyUac6RRoZoH-ItRvRa7b7uM2vosDMG5y3v_pZYvlzTUDnBn8zYdW5FnLJpAQgYC7akiZwJdb1MGPeWZUfy1RJajqlODDC77vgrCv4U_2hvjTW_aL4bdbgf0rXLvhHptrFFQf4jyVgNmZnZDha4IeEEx4eGVW2H2W7_3hBYhOSPMM1K_0a3_xemKOtEmQxiSXvVDgO9gkJZP8Hw_YLDPCdbYYM33N7XttNBhJTxGfFnbICBdvgligsN9bNXkjU6P-qE4fl3rjctf_Ig1eZxgERIlhQyPcle_M4EBP6xkKlIuLTsuf_V452cEtkTeuy_VMwA-rRkm8Syx5CrdTLfRD3yCYAuCQsITd8U_qE4bm0WlqC-fDiHURs9a_ftmt_SVTNko8kGAsN2JuWuTL80eLSRiHspgpFWEiT2lPA0WJ_a3ATEVgDjjTxciJtOq1U5jIxwkMKttfKeybvcUz48buYVNdW3BrnMlyvoaPoVpOKzYU9F8SBQwpeq4-iPIPZ_3IvLNhYKbQsAcplOiOActiOp3w7tSGXaeeCCaN35fIvgFR1gtPWoXwYO7Wj5PRKYFGvnUkGmSSRP5Vq0xHe8f7Q-ITk9jDE4EdOs_8UtgQxFJz24i2P_u-oR8QVkCBsd9JDpYi9HSHIRa9iB1YDMkG5V5ywAg8nUCRTGoDUACrdRs3hZFcG_y4oTVi9pTSiy0JDdd8upC_6bt5qPkBWT5gSNz20u5LbKE-MI_2UEAYlzBStyeCrGZAnt9IBcTC5iuvYcWzkyvtohKzAPsUZHSwyhpuv8xBGwIYMr6IswpnVH7dR9PLh7CS_nt7-XGKZznY9a0v5pjsXh3EaSvyAP1EcuKLl4I1LvJI2U-j1owsBBQ9MLAzsS4D27JKEoObbm6IS6NM-oe8sl-y9RIDLD8xJCCXpEesWsm-x4Lk4fJMUJVQonF_fiUYet_46REcmLDJ1-6o-RuuM6x6ISwDbGApYpkLDlqcvc0RpjJLKErIF6CLU1PrtQwFJsE5R3HHwEo7kLvwx0-Gr2MNHgnsxtx474USiD22sxrrUQmTuQH2O9h5vhAGiP6tjqNQ7dLPo6h-DWflcINtoywaT8hKVTPwRQPaqvAR5Ze-wIEpP5iA-9Tjxt4kuDJENKPjB9cbJCBn1QwhMbbDEf0iace3ke54hbXMvHklwdBhJRBfk3JX5Q1i2zkEdCBWAYWaTcjJiJf2j8luFF4JkEX_7DH1HCuqFjlzaarZqYb6rPxt2011j8YmJYvXUwrimGUC6dV0Hj7f3AGtPwhTxSo-EJT0NgH_KBg7h3UeoAadCuHvgrWXovT8x4Mzl7r8vU2qGYCeSL4BHK2gwwUekYpznvROnJ7w_bEHrpdrtbIvT0e2ooY2yDGqbk7ruxwom5IZKUtReAPIE07MFLCBh-gRaKXbMDUikG_TmwfvUx24Mlf1IAFdtnChMfiRl2hjPfoCR78nyY9PzhWlXhONwZJnnKWWuFFXHgPZaPZgjuUcL1r270_TH6j1xFgtNRhGA-eK8p2NgGpeWGEFdl6Hlgw5HfN91R42O8h0AJmqKjdDJIEYYYko_eull9dDv-pQCdOA3kr4MZr8u4evJMt0FH-9Rw3M-MB8sbUqe_VzLk19jwl_kAoNSBQlYIwKoOpZXmXvEaYAN5TUXv6ALaVauvDl4fO4PfGvY6Q56ahAADICIsWV6wJQ5TZTnz8fUY7gpdlTiTR3UCFzcBotqCIomzj3AgEXpjWAiLRKDRcv3NLvg9SpH2y4IFqAxS0TXuM2hen_scBfRorzP75l9T20EfhSfuNunspA_fG1rR8dm8RVTFZtenes5HJ_cz6_0PmgqGGgE7ocvUuFC0NukLs-M5K9w8rXpe_sK44VQEDtY75xtyo6cNIgK4TIAKwwda_ZPEBrtj14C1WhMHPKUk2p4FuNXzfARJvnEDrL24L5Q0VzRKNw8ezBjWiSWnwR2xZ6IVkUJAhLHfuqHt5xY8EPs40aPeaKZ3zbx5KDSskTMnAOAxgWWBmVolCDDxpHc5EnvfjdUpRo2PDlKbH7nRxjmCyr--qpzH-Je5WXVEaM77LWVTCL02yYKT0ie0M_S5yTw655wLcPiwAdvDO8MFElwdcx_r6LtLyVi3IGjSFgJz60mK7NbtBxhkhu45Krf2_Ph7oaEqogAJENmwtsIj6BUaiZYUuRdBPrKUMfY7ycXMW9xNr0K3hEWgbAEhAR7rxDcnkJ11hleFSY4AAB7fHe6zbc2-FDfuTbmZeU1eBBb9aoqkQaHaHscPXaU9MGXU7fkZwO1-0JTYifvBlwxRWIXDR3is_XmWyOM9JT9LREBFX-EYc0GnTyYpKOwK7ZeszvmmZ0bR4iR-cxx5ZOqMJHoZUgHMSEq4ynsClBxqbp3FJoCHLGfIrYjyFKUI1VfHSKV8dwZhZDA3z_7FQYCtPwJ0MBZS8pxg40RyBoXzVHywRv12Ztz7Xaytrvo990BpxXDps5CmxPVY1McsydTPpXtg83Z9oKSLVO51tmA12btPu0Z2n6XWJMpEkUZYwL1FBG5LMsmdAmdO988YNQqRVjSiTN9hireplLaUOCfhnqDEFzESkxuaBsqcMMhkEtZ-wYYLkRJmukIM41Di5xSQGfJIES6LzGzzCWNnF1J-FdEVJi0nMM8CrWX3qy-TTKEUcSAUZLADQwyYzHjkab7pvQVWI5fvCWJhDadmnkRfC2lpLw3zC2km2Nk0I_k8678WSGX2laoALPmsvuIFx2v8qZ-v9-ExvHzACziz6kmPrsiFx3VEH_wabvUTv2FAD3sYS8Ix_XMLFbzionCrOAeM0k2ILAV0DH0olv9zk69giXv-a-e8GmVZeSzBpd1dQFn7UqPYnbpa0zl2cmxP18A1nlL7MYR7B6EVQyhFo0yc5neTG9yTNruNoHKoj2hn5aR4wWH-r8h9za6sWzeeHTwECey9H_DfnSdsB3zf6_OiV_75UY8g5MDcokQGS_aGAiRxncyL3OzJewQ9FYSS79bfnT8CDfHsH16EcX6FQVDolcOfvQ7avw2EeVrSiL_87ATuU7nIF6WBOS82lRXq_foNSZpsGC3HQj6ZQQ2KoRzwDta1Eq9UowDSsLNt0J0qdoJvMXz9ek5eLxeQ4JUvT0f8rynPbTOK3I3PNWnCfsfVMAu5rc8P1tEQ3ikirBxxjQCqYHK0veS349PClEdlD0uH9bVzFuSTj3hxNFPzC4pdIfHBbvXnvotrabl12nKagLIN3aec43AdkEz5tWkm5NNINYyDtsyJNqI4IVzKumL9GJkOFiKaa8aBqK29jV390NOlyVrkVSMxKem8I0y98E0YCqN2fs8mLE6MSIT9nlF6wmcyntMMHpuWo8OP-bxYNoVXSNUo3-mEJduhLUR2Tt6kPw0z6QwYQighd7EXvYHT1OkopW_tnrhvQsSnL0ZB0112jiH-15D8BEVIbmpPudj8FqYl4qFr91Z2FVYaCiti_4F3wp_HqEvTMe134JAyrSuVOxiuA5lIwwwM968pmIewL3xZshYmleizICfjwGZr2Nd-SMEMYvVvJfD11EMT6Xd_Dxy_0Gwti2hWwbineyewtMoUEAGMZ8zQXBL5jh3GQjqWsNyPN75kqAtyaViEP_mAqLOPwfG_fD8xr5oJlwmU6v9MOJEj0mCshw6QIUINJOAVCY2NSs6yL2T3LPRQvWuKtZI_vOABhM8M-uhUCH8xWdfGgE1o7TOf2yPjto5Yaca6CamAX-6TVUquCDvnqW9on3yTB2-UpvKuFbRHPANUix6FPKaWNDij1xY7rpMLGvGimiwnFcJRLWRsVeCkO3YrcqqoAL6f3fAT99ACA3fQxjWwvRuPj-NwmikaNTB76gMZ27QCe4Weuzv5EAHBCzz0BUhFIcREqOcCk0HUbAMplDNzEp0siV6hFPmJX2SpTR9e8n7b0xc5tZ1X_MssgT7CHs2SoqCU9nmryWpz374mSZwgb7GXcQ9QMnUIRp1f-PrTgD5MdGLqHij5YINwmUwiRjiRPZzF2zzhM8SYtvpMkufI8U9W_klAcNk_x5SDMxNiJ82pkusSM45CaZ5JxU6k604JEPaGLkc8-HtiHIIr5H9EtmqDnKemDtUCHlxXwwN_cmCgNd81hwDIqrRurJl9oB4aLUuH1MKRQrztRIdfKutKD3wWNP6ek915I_CRnwpUDi-uGvrlKPSi9sjOaw-Q0YZQzBAP98Bl_ala3c4l_4wkJJRuDNIWXJ9XMps4E0rhhUeqXLuYFefw0oIsMy9qRyEylGz4Ea6PVlh9mf0t5fjn2GrNdHh0Zn-6wniKOVYUku6K8uoOPVbcT1mlyUyddKe3knGW8ybVp-96X2JfuIz25hkE2wHvXZDjexVlkNhiaJHYVLprP4Jsa6MCIeuC7gfcMLeE6REUoF7VxHQufT1FmfqFrggbPWnl6nIoYbNgf3lN_JI72b5i1SmH8cWSJqHDHjteFDeZ6e3t2dpq_Xkl-F_LZ6S5wljZv1vG29WKwhILvWy-C5k6aiOLvbWDSRkGn6ttFwOdwGDjy5VFb6K7n_4lvoGjg8VcfB2s4FHQNMx80KAJR4cEAo1z3rgDCPMK7zfYMQLiCobRHPRu6P4rTPdfCA2c6Q98oFDSPzoUcZBkNhlkcX8w4bWHehs2BlPc3A17fDs8u4b5sCHAkDNGWhrwc3DhOiPaIX8Tk5QwJkLrFDL24Y_WnSGJMs4PwnljouXWZVxeAVGdgLdmY0xd64bsUQfNL7lLfq6pHgOaq6ZhdKJtq-E6D8JuhBYhfrQ5pbIf0rmx60t95kmEoGWP-IY7JBPgIr--7zqyLijb6Po6EKii5jWwydCMlFBHdccfifFvGvBEOUr0yIntHgVv22SthLu1jJwsvC7UgdjK6G3qILdo8DBo-RHmXdubRKaVN3L3CiHo8fGfdiinhfgJq_Pd0mCfEcpYb7JnbGKtZh8dSSPvufvqC5fu9Z8q7BdKi6hmz4BWF6krZEtjK7yrZORl4FAK3pmeOh27z3Cbsu2g3tegr9rp3Lz1B4gC49tXw_8V10cSjc7uPxx_dZkTeQg1r0YO951XF41HDdyHcMMnHUCTDtqyi4SvVcIQAPfKxichkY1S7VJiCOQQPHRHY6YCHApon9yObONLKW5ov_RANI7wtzVuae2zxBKYIghTlLtl0qj7bL4LHUv0YRUN--Nm_VwMey72k6zafI6ndvhFUHdDb1YEuPfzTrgEi5Fjt7pV0PyUr5RH3HdxxbRtqoemwqoolup7NrF-K1ugfjx3HRWJIeLBrkxmImgwgLhRPU-Ue676UOC37e6LXdDiY0iFHaA6dKJ29ARO-SUT_z1PwahaOtF5SI0VRAHAuferH9f2CcE-OGuRyVUJEwYvsSOcia7aM42zPQ1m5ShYbmNQ7th4oDBD_MP-3xGD4IMTLC660PMU9I06nIS6dTS-VHgC8LUaiEURONQOX764ok4KR0WJuBdkARiIOCZZoAD3RpamvqwFaSANlmSXzbFruP_6p3MuK7Q8pQ2t-CD3YZYWav0_w2HuS80L3yz3fFhD3NdlBF4CSp_9jOnFI-hgL9v-wRBDyJBIHPnW3tME3UagF6lpzOV-4W2RfxeyE7ldtV9V58347Wof6HHDQBAI0KBjKMMPcxJTvK1U1wzcwk8nyFBy1xGltpJSSngBXE4nmcE3vAjmcmY01eovQURm7qCKjEwULjAZImDywINNqTjxGaNtQDJP18WyH1VqaKukv6KPLYx8njOMFhQP78AB0sO7zmRslKgJ1N4I85jqTikgUzdw6PV3rsPu_cORaVcPzwU0kz7zJNqOvgJ4_4ojnGLLp3fbeASSbEbacfcgiAtG0n53vVhBPDYTGxBk1rE5rvQButkt-MtyZ5vU-mwP0GvyowloQNvsVDV2WLp9WdnyzFcvgS7u-qQyXjK3F-OZ8ckClNkm3gCA6PBQGzKKKRo4YTYu4penTOC5nfGdgcLA4ZLnr--_2a7JvlBKRvFjXxtGts7dVCHUzRgcU82a6Cko4HGjZbNtyvpem0RHrfe4RvC8SzlmjaUVLhzwTKHvqsqbn7QiLpy51Q_gCJY1Kc19baFFG3xNcRaLMpK6pzZEX3JXzoVGmT1zW-LnjtFGQKgHoBD3YEFFDYhRhPws7UbYUsgbRXaNCcT9Nn8fBCtSmsthBHPb2FjtLzOvBUtki9KGwW_vAdXZt4wrZeLqPI-lFYzRnN72LVN1_HbEjIVIr4kHDUsjcd2Zqsd9rWXDLypES42tfTzqT__1wgqJggRaDIHay1lm5q2_897goYCEfmDYwHft4HcMepq1DaIpJQfkIJi87gRHAWWYpert7UF0JNawQXdtLMUL6T5mtKwTMx1kYqBFuNPtz9ERyD7fQEqhwxUlU7mKxwT3RyZqwcfNS1d5QtsMWRXCghIsBPz1-7nOiRPNFqxGRlJNcrMuOT71yvZs8szeyiec7L_zq8inmtlYH6QBUIZAcLtt0blcwvwHpZrRa5exp_GXlyRRuJSiWs8odCG1uIQ9cJgB4bBf-ne4Tmu0n9SzuQwaojOY71LyKKmzNKV1GPsaZsXiDzG1Yo_WrM2yW7QFisixz99v49xy9Cf2MYt3TzwyjXfbl_xj4PC9_8B_9On_UUWSTRoApzecIm8JSzdJ3wbJukg2JGHJDFfm1YR9_xSWusTRSD7th0MPUFjvmplB77bxomu7ve0sLiWbZlwce5NIk1JBUB7FwEkmq_ZSbTN4TpEutJZMQIQIpyLpSqZhIca8OBV4dCjwjZwbW1dMrPaFGQFrU-Vlw39G266_35KrUm7RzV1qrozzP_SRzN6oGEg_b0EP_9zrvGmkbsNWj7G1mYaF09Gr9W9UcxkBYKCaXYnumQ8cO0rmkSYvuRcDbDDCM8FQ63P2LsfB79wgZQVX80g6XVET7LHrYmX4EMs2DfI7evP98vyF63TsqXaZpAWS_GzxjrDCQAOLRZ8FTUxU5-l5apXcHaExMVj0OZXny1gWm8poiaTJPrRJ8k3y4DcpvY18qn3Htc57GSr_WyV8MlWoNB_ZMBib0p0WBfKKZEDnKzDhPQI0wG3JUlzkxjOp1i7UY_94c49OZw85H-IimpLOVdM40IoJz-5gmfLWofsj-O0M9uiw6FLdzOhTjuNem28IvmH97aBs_7CY61tPrm4LqPVq9L8_jtamsddeZCAsE-qbHVSPdCZ4JuxdC0XiJVL2rLDpYsVpwBUutvdJWPvHm_IPPrkSLP-OCuhGNt6C3hZi5KH8q7NITB34znBzRs3WfqmluYh_XLVH0aKggBMFyItwp08898s0B5HwNpyQASwH7Sx6WN-qkEwZm6wnjVITAAPwBmJwav-ASLHOuqtSK04MaqF20qeqj14n4ou8dx0jm96SzA6naDgJySwA2TGYR_p-12icycx-9Wq8F1j-g9IyUzSaO_fb0ISM554KtyYty6wuRGiNyshRX8tqEOZiNFiFVbYpvDSJoN4Emo27ZadO56Lv42Xndl3uVeUt7Ky9jrYVfiwK_7hvtFICkX14ymCfs_57PR6JBovVTb7mw5BI4zf2EL3M6Vr5sfg_TRdtAHFhl--Ctgey9iFMU6fFFQBJD4GLH2yinFANICZYrdk15lSP2s2JVcKOnq7_PS11mEK5xHWDQbIWj-lQtkdld1tyi0ANqviO9NKgnFWsN2MBa6YwuVUP4kZU_81XJYdyoeJ5cqRICqBziwm3pjXIEmlVZRNPWjYsUVZ-genC542jQYDN5vuhiiRBNG3CzoI0U2XhizAO9bsN6IZsoVBGFJmmpzJE9YaOWAz_hgScA4KgYUNyK8E2KncFvIfrv8b48rPy3y6swkZP8sAii0nyp3I1BnzEXEeEOzCppGSnTSogV1vnRmIOhk1EBswSrzLaAoUoByYebG7kkXkQoHA4s0yD7n8DGpoqZ3eBS5ZQvUpvSdzOxvIRKFUGHPliX8DiYL4_9pxS9rJkIMRCgr0fhBrnvPreh6ZbGrg55kn7LRLJUYKmNhDEFtyTv-knC1Bv14Am90o0p4uVtjdnaMQ96xLcdZtgUWQeSeZ7QAsoi6LzNAcCqKO8gr3Kig7EURejU2WPXh8mmohvYNtQaBKetqgAJn0L9wyXdQy2DazXttNq63ow5neMjvGZuJ9xSI2cVFoh2KuAVPfz74OI9Jka186jOmsaCm4w1-skqzHPcW5hdxWgAcgn_8GX2xWyTOvHcgBwGSuHJvx4-xTNLkd3URn8kvPVJ9uhJBrYQM82_QhDP0Yv-htqjw0OJvKfYFM82AhFjUhlbi6-44huctWWAVIN1w8ddXfZjGfb257oMzgoh2bQR-3ARaAFxrwp-DEBgF8YNFGC9o41JH9I1_EuRSZ3iwBp2wFHHcxf34nUegcXsFwvjNfwcEpePzUNc95Xup7_YXCVVLhnoRvT8y1JK7ZCmtuiXFLgQWOZqTdFPktQL05YYHB-rbvkL2jxbOvoybNCajggxMuGQIH4_fV2aa5hrWsu__OsMlh7kCoZOa1_v_-GxxTEKKaoF3cV0jPCI-VnqXiBOZ7IXP3Oxm9szWRhd8Hg_tfB5kNlPLYag_IqQBF4t0GCx3TM_IdVcrgd_07w-dHdAQoar5jHKHnHwYiloVJpIds4EdJV5gNW4FaLLcmQRqgE34nyo5fgr-Xg-fqyUf1XQ-snoyAzMWwuyoeXIAf8v_S8YOoS3UMRVjURxYPClMIXdjxJoW7XAFop3P2d4uCJdWmTl0QBXWPbXwdiLCYUTipreLbfwDYrYW9L8ojSgo51ZBFqHySWF9h6U7n4GJuXR1oWoGOjuwe4bQ00q8_MUPqLp39xMMJsIYJy4UHnH47CGojBzDbUMEUK2D2pB3SemRq4cmzHAGtUhIrOYfIQMsCBpOOnyxHsMsZcIkE80fC4u96FJG0KWwqfEIAIASi4sSbTPhWQj0n78nnrjuWfGfPRCX23rc7AoUmLlnoatFXKsAzhjcY_7lTNrTNBVmfyy2IXuon8o5nvMiiXGLvxPE4wVSHkSIoISNod1L_Z--acM3YuyEjZ1-WcVFHozZrLRAAoKFo_sDq286E4MdU0gz0gLdnoWKAYboJdFRsShRvGiezT6TT1_ahx8BLEKFADxu4x-uxTHdauwx_zsfhjLzZhsHgJaz6uY2IrZdKNx9JqftiWjhAoZ6-LEHXhVb_IBer0J9D45w1tDbL-UJVxh3Ld05JE4zJ6tKUDvgqnp4k0AMRhNj_OQLR0BVYFPZHaQbxEnFC46C30mmUjVipHzkLROxJXGlBF7qTv3uTgEh26A80__ZWSOu4O6Zg33BQjL0yUCjgQezlNxwAVzkPQvSFA9kdJB0So97uIfbgaHlIMw2wzYop_uHysPT8hi5ywgJ17rq8bvhTyFlfMjr8zCY1vjXVw-v2pquoMiGW-XbznNP05BckdPku4UM6ZBjL_oWS6nmPWRdw2KR4TYdsJ4o_xeExtO76hr5ltYcPFI5jr8M1za9HcAlzp-yiort-hh96hSJuqmzONav7SH0t1yeFYVVhSvGu7lw5y5C66myKNqma240INdpruMxZHI4BavPzM2mmNbxBjMF5btSTc3E9VykHC9WRP4HiwetOkHePM7Y_nA3qFRPjWv4SHPYNfLkfYrHcZZ5fzFJBcguNTJFhNuVWQRPEWf_E8wQph-iGQlXLsD8wk0-Xnqp3EOwSsnDMRMIjhkkkka6DqOqESUTjsGELZQ4KXvau25XPhcOOUSFLNb3ufuA39BZovRM2pR3TvvyiiVByaxZe_zPeYcj-FTIgLKtY1WRCnKO1spoyPlm_dryvDwwGLd4WKzH2DSLMQL5HAqtSP9Be11Dbxm02HIrJWzfM0MeHzA1J6TqljJimQicp6-DibyuDzx-Nx0l-ODlipcHOe3fguCQUhhJiNGzDk7rgc7E4m-AYY99bxxRp5wCIxCq2PO9vpCwTTHFozBjSlO1niKJbAphWWTa1BdLT4fjYshexVNi8VO0z5EdMIHhsAlolEp6MxEW4GMcysKmUga3OqcgA9sH0Ba_9XXEuYjJwwEmuvfXjErc4ItgTIkba59lD-lzbe7BCHYChFI3sGbAN7iv9vLXL6PimKaEdrqTw2B7bWei0auwN9u5ONqI6dYSlfR_AkXXHugRFDXyysTjADnuB0iam8T_8FpXGKL1UDzNqXL-_gMdm-UIOK6rxLw4avNOzCo6AT_3DwlrdLuIfzSuQzheYaJh9yBOsIsOlHST3zhN0fNRkhqKSBYWAydiv3YIsckx_SbFAAzBM_D5_l8i1ln44ObJ7-bRbqVx_PBc6BxA-uSnvlhkrk6GUHP71hzlD8Gb71eJsseJHFTZdovUqqGHSAlPWDbXSXusIeCkTpvW56xTRmc19pq0tQe4_lgRPoT-TWJfv8sEWpr7potjqA8VRW3zPuav6_GnxAFe6Jhn2kFqErNFl5GMBFHY42gGCVy5eDj-p8ETlsiYVH9ify_Epchkk9DtKYiJy-0u9HiLB4bg9uAUGagi66hg8YbVYpb8SdfqcJmqrx2BbbA4XaQjHf8JeAtyJWeZfXrYdDcDx4aR_jZNErmylp9k6UpG_0yHwVyTnk74F5XxsfQU0hhb5QbWJo8MXToPqK2grnOozype9IM7yrTeTJypPgfIa4fNbZzOcSH13KIHpw8dUbBT1mCxYt7zYKtDkj1CQSm1gH5WVDjt2gZiOXwHKxkIiJbZe99lfuQJ_ljSEIdVUaVXgI9M_R2wrNHBdJvCe0E4c-W-bJcTMZ4Qy7YOMfKLI4Hn7qPHy5rnAi_pZzVju8IaP-v1f9ufuL1xoJ3sDSNz3ZE-qPUEmz9gDsKE9lksCmrEJe9XrRI9AqI2Qd3SfvasiJjBGFcJPwvQoZHoOljS0mrCfRcEuRlUDbVlABwn60jWxTRxcMJ6u3XMA5_FecBq9fW83Mtfbw__iZpF2IoXIiy0XVILM8XsnDMjVMXyHEvOviXji_fVIBt78QYaLa8n8LJvXbXl6na7XnGTe0J8FpJv1OlIUH-vCQw8GKcH4YjcmGuoU-B6uipXSEzuv4BGQ7B1veYEYd2FnjeXvf56WvjUJQ2CxW0IXxsCIv9LTz44NIgo5OchFvj8KQmV3XJTddHYdXpPbBAo10OHfhnIwbrR6u0hEpJBqZ5ZMdUov7Vwbi_t21DI0ACH2dcQfEKgfa7EFOO4N9TfA4KYR3NIEEJCmhHHIZiGgdvFLM_mQkY4HvIcFOT1DLB9NTBc212qW-2JCWr4VRtC3ODNYrk0WstV8gPB34PgpcI7Qs4W2mvorgkTpaX5Inlbgqj5Yc1bj4tnTrITBtc3FfCYU7h-Udm-11tKxgfTk5E3yIII01bti-maBgGFErIdNdad3GSPx_p3Fa3PceHzDByEJkBRijBGowNNqUUgpp5P_e6HiUONwOA4201gbuCNcYyz9DgAxySa64-ynrYhP956rM1BZVrjClSK5T0ZZijg0UdNyO9qplVMaUQXYJd4sfgeKlPhXy6vayjVjzV0NuYKzLKy8n7GPtxgc4jTqaPORH0w0QcyZxPYDMLYUSo-TXYTpDVoJWxl2fHMlh5uUQRxJsUc3gSR-vZB0ILBMKw4hWKzq_3WP7Fy7rpjZepG6IAIUcnLyTcPw4N6jM9S0rw5LHfPSU2vedptE5JY7BGvRmH9ZDK6sbPlYeyBTXhCnkEaOLFlQ5DVQIqwbtFthJBEc1F9hsswDFKMDgxgklf_3aa55bF0Cmd-T7rzRO2gGvRzpFSmjpJlenkTTAwvZhvlPcf8K3dgAuEU5Js9GIc7MuCdNxm8yT7VAet8ZyYCLv9lhAJbD6Co9QH788ooOdqRsQq3FjpWPxQZeiaT1HOW29Q7MdJ0EOnAWotLcMEjPhicBu_YivOZdsy3deF4Q8gIHSGt-3oxY8kiyXUWbDVIIMTlt2jjYhEph2aowb9e37Y7R8Gdevx6SLCCgXvQubNxfh4hNCcjlWBpOGL0lYhp3tJmYLJPfqQFqY7S1qBndflTqZzrcdFZYqnRHXNJ9oRmt_rvcSvXxqJFqwX_JRtJreqowQHZCBwux_yNWS3YuYqS4EC2ALim-EkJRWbcWBtAnr4Zw3ZhFG9X9vCNXIlefJWbXBo9PSl5wVqdduCq77oruDlVEURzSUb8VhPCq3Mb9hRseMHk_UqdXZwXxaDGyjsjCzG_KwgohYrwJ8rAdF2FUm1Tg5fTGgbw5FMQ8uDMvkkZVjGZ735_latc_hXsA50WXa_Qfoc5c_PCW4Jc-AkHc7AdYZjE4hyZi3QWqwMMTbI7Hbvw7DmrRBVBFtLeAWYV99KI3LqESGmQWLOSwKrug-p8ZxwK3xkKjoPVn-wQncaNGmZQum73_1dcMDFsicHaT9vN7tEkHI837vwgD-gQBiC8ORlWWF8df_14fpxaayjb40GoEbPSVw3uP_-MAnHRzAxcg-5O1kYAaTLiepcgB3-E7O1ehsTyCrCgEM5QnKNQUzKDwHMKXl34U4q0x35MGJ9vbaBRVACDAtNhjKg8GU40hyAbTgty0qi0CS3KdlMLiy8yBIodIUkeOWDphjgtEcLq-65bsitjsO5pEAxz9kpBriRJ93eAzH4xNhaZGrjUdz6sYpkha91jlrDLpHcQpL7amzKmuAWLLs9iHaf93SAwek5mkwXu0M-sc_5q-X9xu5gd56Rw30ivF1o25wjWzmQILd2elqHgp2kUY6WiOOGDFKAStggNhSh1XvoF9naDN4ju63Ka-r78pxRjHXzq9wbH5rdFlh8WhbN_5teJ3bmrrS2xuXvOFu-4kOJmvvK0Zt7Bup7mjvvJs5NyKj9QmmJxuZ9p8N-SR-J5u097kqSwfu08pAKXp89-A_7dKPEMBxGq3myJtK8ieq-wJbI_POO3zcZ8CNAlaasPqXuUVBoXE4DBameSU29pradUeIhE_-UR4QBk7GdcWajdHo0f8hXKylCFloYJ43JQW0y0XkUZUHhoAFhGzAf0W2iHFhi0OrQpdDH92mGA0zpkkr9VOS22TULQ7dW9cJBZSRqBvuWJdsCvd8CbsE2Q6kECnhJvtumDjD-dWY13GIW8krLcMRgZTgWNj-XMtGP-rsTOchxwn8R9PFrkT4ObtovPcci5JL-qgJXTJkF-nfd7mSQBLSqKqbKIhvG8RJq505X0EpcVX0shF-MYOQZZpG4BJgleWLxMEN7wAKsBDtvv3sF2q_DMkHvjd1SDkdsoq5HalzfKMwHJJyHgiWOOccwbbzeNxeF5R2QYhtizPqacJbZN2KZLrhFZGgYtbssAtZw4jobZyezoZ219LZQwbw_9jVRU7Vum39xX0wE8yhMRjQJYdGR7PN_nxIOlQxWt_WOKhjc54qf5la9LolWYJiV7ajDXHPetOvYmGWZKCySDko4Cj-P76i9CNB6cbCestvjpsSa6gwOUNqD0QKGSa7KYLCg4vT0ezBHeiFncmmNbaFRNCmyhKyiSgR7ba1c_I_vGpv21hGIFGkABSrvhIYXCNJoSuXZmO4DJ1xefXfBCca4ZD58WPaqOSUW_qsPATm8RUqRPK6xatGJVbGzlrNnp5QJus5jCpAnwQRTjOx9wkLb-lvHdanxGwmabdY__VvigJH8pfHeNiag9Rn4B0jR9DAXwqUUeU8Tv-5KiKKbpghJo-mE_R0HOoC2FwrcVO9e6AiGjJer9DK2kp5MqEl4I-zfCwnHxi-WzCUVjWHkDfuQhtsStLbF1H-aCHD_BOsz99eG2iK3JH-mOyl2yd37nyQhB3mrCbzZ0zjFLCPOKmEHqUSw7wkocIaQ36iFxw3L0i2HYDnwk0KgcrmAntPDhZvoqcrn47qTYKX_0yI02SVOcw5QtdZMFVmSk9SuiGi_5pijijYXqepbfJRxzzh-76reGasRdCw2KQxm1_-JRnZnAIKvZgD0lTBnMs3039NZYVjHkCeNWm7uVJcPDxSvJhw2PMRO-DMgNNun16cRlUgjoo1RiK4Wo5CFpPpCqLVLR7WeHk_8iL66JBfQCZ4t-XIJAxSAZo9vCtGLfEo2LdDBanrvDG-ZlNYdcrrrtBBXjO9BAO_eBZt14o80d3jMHPoC9EfzrEhOVuo_c3wyX2FS6KnUfRDtfyxKnEfIGUtlR8nOegz9mCbg77AH3QJUEHK48DQj8RKoevn7ob0WhXdqIk2pYgQtwwQUBpbmlsc1PSj1ODD2uh6h0PJ9SuxU0jfM6ha6J-zWt13D9-INqKZX6XQ9nL0-21dGSKUDQ7wBCErgoCg-Zdtnmd-dAWtq3Ow4Vk4l05-3jWngOkRwvA0lS75fx3EDWHVbMPs3OPFIfaEzpRVkfBWMcY6kk-y249DNgS49yNmOdGSE0f9S1LHJw3gk-S6D6PgJMRbQm7wcfhlLOYuoHIU7fZZ9h2s_6tTh6e2Ub6-bc_hAGINPk9T0NNJ_yptfeMusviKQxR8ZOPGc-VGDUfo1pGRKD9ZNy6KwPrxFCAfXVxz0KXPDoFscW1GzEf8G3EaXsFjE_vGHVWOMr0wyY0TLSsBT4yfcy1qTl17RclTmDP2OWOYdtRX76GOZavopvR9yg7IOTUTqqX_52rCuZg8YD22_ZaIdQy908NgfdGI9dHQ1o99i5xAxX8QQAiNmY3Iv_ztT2QmlSnkd-dBFkDb4raext3Azw-6SR1BmNMsAx0Gp_o0u3d1OTyJgOHW4XDlbDtcr-MplvgyYED71dZg9Y_JYScsPbpzyxJGRd42jszuYdn91WO0EzZKLKZfNCz7gLMxPxRDi6JjmMnUMcZBlhc7HBVJNvLBUJ-MKFbjeQBV2H3xVgDBJt-YSnpj4LnMF-u8yGWHbhBdiv5RrH_caFuYtTSBTNR4K7r3Nm4gISquaaxT7p-UYtq3b1fREMv4w4KgeVqUEJzK-GLkGDSNgG2obMwyl1Hvgcwh8bqKNyNMqTZtqegdh74ZjEPikOdxpm_OSpA6W_YbSOHf49x5_Lb2H-MCFpEOOO2flKM5SdmfH8A_kEtuitwmH6oWl_vIlu9af1KD72SiL6e9hWpjIy77iaC_Y99DVORHBtWjYKHhLnXLnZcyQMwqnOz9w1J-t3XDVZwdm0xydJR-TJKyLKNlMvwexk1fjmdGRX7P_m5MXApBMmCeTKVaUwytkWO9jsL9HnN-uMjTzmbG-76vLX5BUvJY80ExcXo8zceE25VHEFDoUdRMoSZNKgupmzVCGs1fdW3g4QgOMYWdzqhXli_FjVWV6ltTi-H6nsBy6GCfNbZKXAkVz_s53dC3mkc96SMqex4h6HoJJCAn8R4dZAeGjoVfDGQoujwEvhmqQ3lw_V7_AcOA2np4iUw2TJ1tWAQKmXkxIkjuptK24XbNziM_7LfBFeQUknPJbL-qRM1PlPhAj9ypOd40zHPf_g1EaL-n3fZr9qNzTuhX8uhkyQRcNQ-rE6ySJQnOwWvutQ2DqfS5B91MhFUv1NfDY5ZfNrrbj4MZeeJea0V6vIZaoaeb24kQYcxyQb-V2ZcI-B5gda1EvA3goD9D4kd6QAviXfnSV91ARZSupOCS7FvZ0jE2h_SPMF7PcB4rVnoFabWRL4LU4SUdrsIPp5S32h2BHN-bnbCgJDTOc5OJbowhfJAaSCmmjewKQIFherHmdTsJ2UOwfGVUGBNQxvpKv2ss4xPTX1f_xLiEW4J4gGOxqOIvV5V09Af093T0CFJVlACpXMCKqxqjR3oKiIwTFwWo9OUnsG25Ec6sbgtx1rauQnOWnhzetx5m230pz9h24WjEVhgfBwI7yvGjNb29svTFp7o8jSNNqYGKKhwVc9KX7KuWaiLeWgRvhfTB4lK39KcKOUo0DpRvakO1KNAr-_ffC0ilwnKjb3gs48uoFe_VH_FcZ2ItsHQwiiL-jDxY5mC1TdLvGbc9KkLeaKoY2UrRI1IP3Sh3osWHuRnpOze9lxO7vmeKo6KFKciG2PguTD8l7C960lLhBCG-T0xkrH3KcyIXQixh6q63I1PpOWvgFWMrjXBc93dICfw3RtQUruocrmxOtruC7smtLJCWMhFTH0bj9liJeXmJ5UGQfijgT3yYZ7nXq_x4WcSXIAxbttqlpybHu46uv3OYoFdaYm5NL-RlUamOLOsLALQtSzWpMxhXKyOG_fi4BiCEE5SgD9zPDvQQUvr1bLSBU9UqJr7pfiVHCvp4zb3D14t_TwyuY2ezgk8OFyDCY8pQYugJ3lZVXMpy7QTQSQa5HQjB3yfzHcMrq5pBLmuXQPU-JcaLyG2MuuN9XIwlsfgTn1RQFSufYdfkrcXT8aG7L0MtkFMN7KRb5Fq02vAdZuqvmNOynaOUdhHK-JRFLEYTn15OgvoeWRnOHupwYEZNVBF8dHHGjyRpFtlJ1KnSzUO_Ap5uvUwXs6rtsyLFfs01ZnKlB8AABlhI3u0z2z-_6xRvcpG2Jbmm0_CqQUxYI7O7_1hPk__DNsck950s291cb1FC4M0UwFKa9TlicDSVoaCBfkS5RwOdLM_3YT_NKd0kAAGY0ery-EBzDKGqSn4MKKVDraUClxLhcz5pooYdg2ZvU0mQtxNT7kZjBm1_CusTe6XtFoLVAj0oL4LH39p7QfY8fTGJsVvH2ZqcUjsLhkZL5CaKbY-E0zUE9F5BSS32dxfzoaj-0TmrDcHRGhu2Xxr6Rge-rO7TPQ-j2g6SQ1XMeOWnV8E2UP_eowZYPmO9yk9gfwp9Aw1gmNifFNtxJZ3d_-aVQkSD7VkJU2WjpfSt6PRI4NhWhXn0BpzwR7jnoyrbLdoeEaO3NTtbLEVFwtPmZaCtHBMJl7sz5gQHiP68A3L209PTbF_MefOvAKr5rm9YIhoZ9h-LYXw41qwbC2YEBbQOaZPX1S3ZVKThcFRBoOj7cIOQlOib7J8K7J6AG2byd1fkgPCoCqLxhatmn0Jba-8Wgkdm3wFxOl8XkI8XNm9UOLDYfcDinTnVtNxvu0AoV1bN2OmkWYRoo4lY5LdE1E5vmpZCc-v7CE9SKRci9QmetBhX_t9mf6BAqVyhTw-QRaXaEhzmf-sQmkcugF_n7FBvpgYpDpTPSkSq-xoTzYSSrtEVPXpr8dSdqtopbeT9WyC5tEk4BPOjRI-7oZhRGvSVKFPaS-KBOWNyVyFw5ZoQDp9EH9jZejMxoYVR2AfUUiyqhQeYVIwPhIFL8qFtSeidNB_JapHLQRftSzReA-53imllVRYN78jcGJpabWy-F2yeAP2V23Yx8N8uB16AaQDdKnxAxYLOG2XeB1I794IOzGWuX0xc3lRYgFbifZWkn9jdknwj_x9_RfIG3WAU7yTguY41OTT3Yca8BnA-l903mZX8So47bNMydDG2K_aknbmJS462Y2vAToG_9PK1ubLo3eTmc_yrcBM2cLdeQzO7lu3SHooqKKKNvq26Q0kMwaZXQyPKtLfUVhLgMB_2fNGQw-UVhzZ6mMfCm4IjCoJp5oRlSi1SmDbWoYrUklDALuiPlxLYXomgMIPkrG9Q7ciKux_y7Dd4bAUN5c-gzJfl8WBBEorUshVOYv2PVD6Z2XEGM6Hm5cMz4xim_KKIx3ukYm6Tn5SBJ9hfe2zei3XHHsnKbxAHpsJ2_Gp-eisr4NP0ZGEtImEz8C13Qop8Z5_afVmWN_eO3KYkMTGennciPIhn0DiNOp_AV8AgQrlcQiSIm0KOmeokw8izhDpM3tkJ9lciO-nSXjfZgHWROtnS_QfDCHNxVVaYf_sW0c1rW8CWwHgQpg7uDzI_wr3IgoLgH_gK5-IXsTT8ijG9hDPvg_xUehozVH4q36oLsHv7rIvkGXn35-VKMU6yh7VNf3LP3sPO_RJieCqp5OtP7P9iCLogjqafv0pVwhbkjerm7O8Omuexrrn8fUTQdSA2AgGynIQ-lB3mKsHgKVoWvCH2t96uufa7ghTrZ3-2mSBCveMoqrKp92tnoktXvZmDgMRqvoescTwwbzEhKb4ogN0PRCVKfNDZXcvCEdO6Fa7q0dobWLUSLHCCPVzOaBGY04WAQOQPLu2WLoB32gGyxY_Ek7RPxjEUIz1SKsXR3giDHUV55UXlYTOAYPGYQ_TmlwbEriGqnUBv9BBjK3VvPZAuhA93jqN6IQ4T8gMP-kMpKwdKD6kjzEzsFHF4xk0FGEPc2c25LeFCSBTEcH-arI6tf72iyTMLHcWOE0tNtn1FaKS18ffsi-P731MqvuJm-b3QOi6VlTfOxhz4KEWWrAvEhNSqy-1ZDm6FeGBjv3p7SSZquoSYkWrw6x1hM3JdhIl-oe1gNG-_YIapNLN_rXTwkyNSYkqud70qFmpkWA862tQxjKEjqifIZQwfboHHjVpGBiqCE1ZsXPxuYnVGArBiTAvV4Yd9xniPugMk9XludJKAvsBKOgJ0L4zjOCJwUhxNcwtGX42F0SeHosHo3RM94S9oFPsxEnId8SBmy3z04QEDFO4e8L0ZAHEg4J7DPZnJdCSqKhZgRouOPzcWhVJbswAcXoCpcO5d_jttHi1ISy9aDkb2jUaR9PIxtRhE2bd5PiAQRNWLrY6NJhXGEaLMjmj4ys8FiqbjKcMPb-9mFqd_FBOggGCiAhpiEdR_4cUK6wCvsxhldaomNC8tO3pU12n9UR0mJiRA6-pwI1ZPrykArGdWiSU1JRVSkgONOfHsAmNDPbIM-9ZhmR_Ozd_huijCAcxmOdggyL_6xN8uBNprNjDwmJ-_SKBKmXpmUKqcLwzRFS6rwfNhGM7Jo3GBLCod4g2nqHgZevqrq6hhgZiv5n4GOtAmJwnTgICSogL12fSirSstTesmOQAa6IxAP-YPTrgaDnGZJsfRk3_bkNDlBm1CDlUWdqrMqwZgPJu0dWIEJhAs5Y8xeYPEPytMMxRPg8X9IrCbncd0n5rRAYmDHyOmsaapTrAnfSj_e347vKUntPKHtHz27qvfXCJm_ufm4pA-0iQfUaUiy1NOf-tBp4YZUHimTHTfeMZgFwDVrA5cx570eRiR0sbf55UIG_W7LLs0FlCujL3qSR7colSzpy_tCxvEaKCx_vpje4ky5H4ubhBr9advTRYXkEP0vQKpKYgzIkcDumJdcJsrN6Epu2bXAHHdEHBEU8lddZDQLCpZb8oF3VDJhz7FwGlz8MGEOYBzTCZSYUd9kqLh1q91TC_D0ANHf83QQzxzaB9GDVpn4YJ1-wyzeC8AQgGtOcrZFXXcxDGyam-aslX06ouRJAt7TmhIEwdK1MJjGa9dMJiJrdAS-tBQ3mF1SewjQgdm4j3Gny-6se1UcIbLq5YLlo3q6DXCOs48cG3-2rwg4r1X-2IrlnivCW1Ae7XjHuNo-QdQKiUv-JYeryYVrKtk3_7yj1QzQRVCimKsjuCYJHqtY7kKQkyTH28mmJXI-OyWep3CBZEyxTCiGNguxAhyUXWV1ziKXvOhFr5T5TcU0pJ2hOrUeYzA449fP_ICn-5rkMa2JvLJlCT0-xgxg06dd-s0CLN4MHyJEfuKmyNepsVYeutn17YaBf9kkiBnGQppvO4pLKUzn4eR-1a4COptJuTCDtQU6O1ACAsPGgLcxV_ja0xpZXpiDnbg9m7nVaKNHNkIfFMMN5QEgm3wsiBj4J6TnfsUKu1u5Iuk1MKNXms5elrSXQoRDSLyyay2V-VUfoFnkZl0cIicRDnIZInHlqxPGaTxoKfZEXmLRawFFXMbG4B7Cd7OgnB36lw03cWDYKXB7xAdKOwV51OQJYIXOUFI7t1uRfXIBLr5hvoLuYLVjhokaxNPL3VzE6t6b6YDb1RlQglTM8yifp57NXOYrROg31ZqvR_Gtj5IoScCDgFVe4j38qXULsZdLW5dLNrc8wIMZFUtoPc3AIxPp3htdQ81fd8mWhjiS7ce8-5bKMKzNvT2ojvVgUsob2APolkrKKcHlQrNHHyIUljmoP1uoRCYcxcs1iPacp_u956JidS2M0QpQCp4yV7Y8xfQG_hXa4ghtSPpuKO8kvZf5h0_MosJiczCydegPek68o9oWSEKsLhQotcg0mFh2_0AJC8dhQBul72355BK9qB7IJ490ZOCnm3T39Gt9R1zuZtNqORCOGsvK0paWCFoBrkXJckWtUib06VCTB1-D-kpyh-YdHY7t5NfXLHoPDKh5FSpI-0RA1vsr02mxh2_exvnlutY3jji3gjoA5VDav6fJprFtbsw-yItXSnBlDmoXW9q6Gc_EwO8D9LiFj8TP-Pi05JnAs3Zl0I_5KcgkINct-_5UjMxtjkxa1-4Ls_FOGhl8yb0PCELoFEdW1YFdUS4HI9s_djMQCW6PBoDF2xTN_jkpktTxWEQYXri4Ysha1Q1slU9nfZ0J-Ag_bHspXpxjajpcoSIi86T2YnmT-pd65Hx8qlic1NCbD2WwsArfi8rCVVcIMJ2Fk63rHJgbTaJ3jjilYc9miCmdWxi3JmObh0mK3SgKmWygwEy9eC_22ugyR8vGTw_lmUQk2yNLawf0i0EgCoBidHj_LIC4LqQ2TUeFpgY8BWBrO0L_DPSOdnQhUbczosd_ZPmZwX0jpsLG0Dvizt9UjdhXjRVmM35URZiYaRj1dbeVAKM1-qsAisnP85jfUMVqV5TT0lEHB1_ECEctwO1UgZgNThSHN4oV9ZPDY-5_q__8xICiWnqBVEn6C-RYOriFgDT_6wlxVSypcj0wcOOQPQAgOhdbrEAyfRdViIFC2sX8GtrjpRzKXhA1UbVd78HPennAeZIfdvX_sk5dQqZeQM-y4T8DFm9WDjb93r6hw5TgAo-vgJ8DX49u9tei8KY9UfHRLC-_u8HEBZUF6-FE9g8I2sDgvgdpmEXqySiT79yuXgHJt5Yh6HB53SM7ZlYh75W7TWIIGN6-43B94KEifrk6Re0Mg1Em5ONYzn_CG8x4yU1R8Qq6Pc-fG9sLwuj0WAP49Y6sIfTyjiGdSs4hqzJjxv_pb5e4HiHlYOrKO_S8eh29ZoLwTctj_NecCYOfUrM1WEVZPQZLM9UBCYPKHKJnGGON-vrLnJMqFo-ttFSgrR-L0cAGCGG9QAZ66fxe0KkFlcaquJryLPaG19nR107fL6BS59RNA58oS72SeJpIHFY4terQj_cxH95LX6WKvZK4AGgnU1KimWocrgPwQSeucgS42H2oX6X5I2yALL2aaJbVs-KGNvivQHvH62yvO0Nx5RydzLBeyYEL5uhtxPscKVa7udkSeg-fpfZRbfXRqWGXpWLuIxttK2KRkh_PeZ1l0bRg-goWjPQSoIYldiEqSsFXgMydY0b6zdAtFRklUT-skc95K4_hwAjjPZ0UH5lINUNsKz7h-wqGiZJ2HYKGFwSnNep1";if(!e)return null;if(Mn&&Mn.sealed===e)return Mn;let t=null;try{t=Hs.parse(JSON.parse(mr(e,tb)))}catch{t=null}return Mn={sealed:e,bundle:t},Mn}function Gt(){let e=lu();if(!e?.bundle)return null;if(e.runtime===void 0){let t=Date.now();try{e.runtime=Us(e.bundle,{signedAt:t,fetchedAt:t})}catch{e.runtime=null}}return e.runtime}function rb(){let e=lu();return e?.bundle?(e.keys??=new Set(e.bundle.filters.map(t=>ce(t.slug))),e.keys):null}function Kt(e,t=!1){if(t||!e||e.length===0){let n=rb();return n?new Set(n):null}return new Set(e.map(n=>nb.test(n)?n:ce(n)))}var tb,nb,Mn,Wt=y(()=>{"use strict";js();We();Rn();tb="tokmizer-default-rules-v1",nb=/^[0-9a-f]{16}$/,Mn=null});function ko(e){uu=e}async function sb(e,t){let n=await Ba();if(n.size>0)return Ht(e,n.values(),t,n);let r=Gt();return r?r.selectFor(e,"free",t?[...t]:void 0):null}function ub(e,t,n){let r=Er(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 $e(e);if(n!=="compact"&&n!=="minimal")return r;let s=r.endsWith(`
|
|
74
77
|
`)?`
|
|
75
|
-
`:"";return
|
|
78
|
+
`:"";return Sr((s?r.slice(0,-1):r).split(`
|
|
76
79
|
`)).join(`
|
|
77
|
-
`)+s}async function
|
|
80
|
+
`)+s}async function Ve(e,t,n,r={}){let s=Buffer.byteLength(t,"utf8"),{exitCode:o,yolo:i=!1,resolver:a,...l}=r,u=je(jl(e.startsWith("bash-tool: ")?e.slice(11):e)),c=o!=null&&o!==0&&!(o===1&&ob.test(po(u)??u)),f=Dl(a??uu??sb),d=null;for(let N of Hl(e))if(d=await f(N,n),d)break;!d&&s>=ib&&!fo.test(e)&&(d=await f(`bash-tool: ${e}`,n));let p=Dn(e.startsWith("bash-tool: ")?e.slice(11):e),m=d?.slug==="git-log"&&p!=null&&/^git\s+log(?:\s|$)/.test(je(p)),k=o==null&&(m?/^(?:fatal|error):/im.test($e(t)):Ml(t)),g=d?.transform==="smart-read"&&s<=2048&&(t.endsWith(`
|
|
78
81
|
`)?t.slice(0,-1):t).split(`
|
|
79
|
-
`).length<=60,T=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(
|
|
82
|
+
`).length<=60,T=s<=16384&&p!=null&&/^(?:head|tail)(?:\s|$)|^sed\s+(?:(?:-[Eru]+|--(?:regexp-extended|unbuffered|sandbox))\s+)*(?:-[Enruse]*n[Enruse]*(?:\s|$)|--(?:quiet|silent)(?:\s|$))/.test(je(p)),S=d?.transform==="smart-read"&&s<=16384&&(l.verbosity??"normal")==="normal"&&l.smartCode!==!0,O=d?.slug==="read-tool"&&s<lb;if(!i&&(S||O||T||g&&l.smartCode!==!0))return{output:t,filterId:d?.slug??null,rawBytes:s,filteredBytes:s,debugBypass:c||k,droppedTail:null};if(!i&&d&&!d.preserve_exact&&(c||k)&&ru.test(u)){let N=iu(t,l.verbosity??"normal"),W=N===null?s:Buffer.byteLength(N,"utf8");if(N!==null&&W<s)return{output:N,filterId:d.slug,rawBytes:s,filteredBytes:W,debugBypass:!0,droppedTail:t,failureSummary:!0}}if(!d||(c||k)&&d.preserve_exact&&!i)return{output:t,filterId:null,rawBytes:s,filteredBytes:s,debugBypass:c||k,...i?{droppedTail:null}:{}};let E=N=>{if(!i)return N.output!==t&&!N.droppedTail?{...N,droppedTail:t}:N;let W=N.filteredBytes>s||s>0&&N.output.length===0?t:N.output,V=!N.debugBypass&&!d?.preserve_exact?yo(W,"minimal",N.filterId??""):W,ne=ho(V)===V?V:ho(W);return{...N,output:ne,filteredBytes:Buffer.byteLength(ne,"utf8"),droppedTail:null}};if(d.slug==="tsc"&&!c&&!k&&!ql(e)){let N=Xl(t);if(N!==null)return E({output:N,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(N,"utf8"),debugBypass:!1,droppedTail:null})}if(c||k){let N=i?Er(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?ub(t,d,l.verbosity):d.strip_ansi&&!d.preserve_exact?$e(t):t;if(!i&&d.transform&&d.transform_on_failure&&!d.preserve_exact){let de=gr(d.transform);de&&(N=de(N.split(`
|
|
80
83
|
`)).join(`
|
|
81
|
-
`)
|
|
82
|
-
`)
|
|
83
|
-
`)
|
|
84
|
-
|
|
85
|
-
`).
|
|
84
|
+
`))}!i&&l.verbosity==="minimal"&&d.transform!=="smart-read"&&(N=Vl(N)),!i&&d.slug==="pytest"&&(l.verbosity==="compact"||l.verbosity==="minimal")&&/^={3,} test session starts ={3,}\r?$/m.test(N)&&/^={3,} FAILURES ={3,}\r?$/m.test(N)&&(N=N.replace(/^([=_])\1{2,} (.+?) \1{3,}(\r?)$/gm,"$2$3"));let W=!i&&!d.preserve_exact&&s>=ab?sl(N.split(`
|
|
85
|
+
`)).join(`
|
|
86
|
+
`):N,V=W.length<N.length;return E({output:W,filterId:d.slug,rawBytes:s,filteredBytes:Buffer.byteLength(W,"utf8"),debugBypass:!0,...V?{droppedTail:t}:{}})}let{text:I,droppedTail:D}=lo(t,d,i?{...l,verbosity:"minimal",...d.transform==="smart-read"?{smartCode:!0}:{}}:l),j=!i&&!d.preserve_exact?yo(I,l.verbosity,d.slug):I,z=Buffer.byteLength(j,"utf8");return t.trim().length>0&&z>=s?E({output:t,filterId:d.slug,rawBytes:s,filteredBytes:s,debugBypass:!1,droppedTail:null}):E({output:j,filterId:d.slug,rawBytes:s,filteredBytes:z,debugBypass:!1,droppedTail:D})}var uu,ob,ib,ab,lb,Ln=y(()=>{"use strict";ie();Ua();pr();co();uo();Ll();mo();Ul();In();vr();Wl();Yl();vr();Ql();au();Wt();uu=null;ob=/^(?:grep|rg|find|eslint|ruff|flake8|mypy|prettier|biome|black|stylelint)(?:\s|$)|^git\s+(?:diff|grep)\b/,ib=2048,ab=8192,lb=32*1024});import cb from"node:os";import{join as Fn}from"node:path";import{existsSync as fb,statSync as db,lstatSync as cu,unlinkSync as pb,mkdirSync as mb,chmodSync as hb}from"node:fs";import{createHash as gb}from"node:crypto";function yb(e){let t=gb("sha256").update(x()).digest("hex").slice(0,8),n=Fn(cb.tmpdir(),`tkr-${e}-${t}`),r=Fn(n,"d.sock");if(Buffer.byteLength(r)>_o)throw new Error("Temporary directory path is too long for IPC");return fu(n,e),r}function bb(e,t){try{let n=cu(e);return n.isDirectory()&&n.uid===t&&(n.mode&63)===0}catch{return!1}}function fu(e,t){mb(e,{recursive:!0,mode:448});let n=cu(e);if(!n.isDirectory()||n.uid!==t)throw new Error("Unsafe IPC directory");hb(e,448)}function Et(){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&&bb(t,e)){let s=Fn(t,`tokmizer-${e}.sock`);if(Buffer.byteLength(s)<=_o)return{path:s,isPipe:!1}}let n=Fn(x(),"run"),r=Fn(n,"daemon.sock");return Buffer.byteLength(r)>_o?{path:yb(e),isPipe:!1}:(fu(n,e),{path:r,isPipe:!1})}async function wo(){let{path:e,isPipe:t}=Et();if(t||!fb(e))return;try{if(!db(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{pb(e)}catch{}}var _o,W$,xo=y(()=>{"use strict";B();_o=100;W$=5*6e4});import{readFileSync as kb}from"node:fs";import{join as _b}from"node:path";function xe(){try{return kb(_b(x(),"yolo-mode"),"utf8")==="on"}catch{return!1}}var jn=y(()=>{"use strict";B()});var gu=ue((e1,hu)=>{hu.exports=mu;mu.sync=xb;var du=Ue("fs");function wb(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 pu(e,t,n){return!e.isSymbolicLink()&&!e.isFile()?!1:wb(t,n)}function mu(e,t,n){du.stat(e,function(r,s){n(r,r?!1:pu(s,e,t))})}function xb(e,t){return pu(du.statSync(e),e,t)}});var wu=ue((t1,_u)=>{_u.exports=bu;bu.sync=Sb;var yu=Ue("fs");function bu(e,t,n){yu.stat(e,function(r,s){n(r,r?!1:ku(s,t))})}function Sb(e,t){return ku(yu.statSync(e),t)}function ku(e,t){return e.isFile()&&vb(e,t)}function vb(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 Su=ue((r1,xu)=>{var n1=Ue("fs"),Ir;process.platform==="win32"||global.TESTING_WINDOWS?Ir=gu():Ir=wu();xu.exports=So;So.sync=Eb;function So(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){So(e,t||{},function(o,i){o?s(o):r(i)})})}Ir(e,t||{},function(r,s){r&&(r.code==="EACCES"||t&&t.ignoreErrors)&&(r=null,s=!1),n(r,s)})}function Eb(e,t){try{return Ir.sync(e,t||{})}catch(n){if(t&&t.ignoreErrors||n.code==="EACCES")return!1;throw n}}});var Ou=ue((s1,$u)=>{var Vt=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",vu=Ue("path"),Tb=Vt?";":":",Eu=Su(),Tu=e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),Ru=(e,t)=>{let n=t.colon||Tb,r=e.match(/\//)||Vt&&e.match(/\\/)?[""]:[...Vt?[process.cwd()]:[],...(t.path||process.env.PATH||"").split(n)],s=Vt?t.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Vt?s.split(n):[""];return Vt&&e.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:s}},Au=(e,t,n)=>{typeof t=="function"&&(n=t,t={}),t||(t={});let{pathEnv:r,pathExt:s,pathExtExe:o}=Ru(e,t),i=[],a=u=>new Promise((c,f)=>{if(u===r.length)return t.all&&i.length?c(i):f(Tu(e));let d=r[u],p=/^".*"$/.test(d)?d.slice(1,-1):d,m=vu.join(p,e),k=!p&&/^\.[\\\/]/.test(e)?e.slice(0,2)+m:m;c(l(k,u,0))}),l=(u,c,f)=>new Promise((d,p)=>{if(f===s.length)return d(a(c+1));let m=s[f];Eu(u+m,{pathExt:o},(k,g)=>{if(!k&&g)if(t.all)i.push(u+m);else return d(u+m);return d(l(u,c,f+1))})});return n?a(0).then(u=>n(null,u),n):a(0)},Rb=(e,t)=>{t=t||{};let{pathEnv:n,pathExt:r,pathExtExe:s}=Ru(e,t),o=[];for(let i=0;i<n.length;i++){let a=n[i],l=/^".*"$/.test(a)?a.slice(1,-1):a,u=vu.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(Eu.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 Tu(e)};$u.exports=Au;Au.sync=Rb});var Iu=ue((o1,vo)=>{"use strict";var Cu=(e={})=>{let t=e.env||process.env;return(e.platform||process.platform)!=="win32"?"PATH":Object.keys(t).reverse().find(r=>r.toUpperCase()==="PATH")||"Path"};vo.exports=Cu;vo.exports.default=Cu});var Mu=ue((i1,Du)=>{"use strict";var Pu=Ue("path"),Ab=Ou(),$b=Iu();function Nu(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=Ab.sync(e.command,{path:n[$b({env:n})],pathExt:t?Pu.delimiter:void 0})}catch{}finally{o&&process.chdir(r)}return i&&(i=Pu.resolve(s?e.options.cwd:"",i)),i}function Ob(e){return Nu(e)||Nu(e,!0)}Du.exports=Ob});var Lu=ue((a1,To)=>{"use strict";var Eo=/([()\][%!^"`<>&|;, *?])/g;function Cb(e){return e=e.replace(Eo,"^$1"),e}function Ib(e,t){return e=`${e}`,e=e.replace(/(?=(\\+?)?)\1"/g,'$1$1\\"'),e=e.replace(/(?=(\\+?)?)\1$/,"$1$1"),e=`"${e}"`,e=e.replace(Eo,"^$1"),t&&(e=e.replace(Eo,"^$1")),e}To.exports.command=Cb;To.exports.argument=Ib});var ju=ue((l1,Fu)=>{"use strict";Fu.exports=/^#!(.*)/});var Bu=ue((u1,Hu)=>{"use strict";var Pb=ju();Hu.exports=(e="")=>{let t=e.match(Pb);if(!t)return null;let[n,r]=t[0].replace(/#! ?/,"").split(" "),s=n.split("/").pop();return s==="env"?r:r?`${s} ${r}`:s}});var zu=ue((c1,Uu)=>{"use strict";var Ro=Ue("fs"),Nb=Bu();function Db(e){let n=Buffer.alloc(150),r;try{r=Ro.openSync(e,"r"),Ro.readSync(r,n,0,150,0),Ro.closeSync(r)}catch{}return Nb(n.toString())}Uu.exports=Db});var Ku=ue((f1,Gu)=>{"use strict";var Mb=Ue("path"),Ju=Mu(),Zu=Lu(),Lb=zu(),Fb=process.platform==="win32",jb=/\.(?:com|exe)$/i,Hb=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Bb(e){e.file=Ju(e);let t=e.file&&Lb(e.file);return t?(e.args.unshift(e.file),e.command=t,Ju(e)):e.file}function Ub(e){if(!Fb)return e;let t=Bb(e),n=!jb.test(t);if(e.options.forceShell||n){let r=Hb.test(t);e.command=Mb.normalize(e.command),e.command=Zu.command(e.command),e.args=e.args.map(o=>Zu.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 zb(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:Ub(r)}Gu.exports=zb});var Yu=ue((d1,Vu)=>{"use strict";var Ao=process.platform==="win32";function $o(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 Jb(e,t){if(!Ao)return;let n=e.emit;e.emit=function(r,s){if(r==="exit"){let o=Wu(s,t);if(o)return n.call(e,"error",o)}return n.apply(e,arguments)}}function Wu(e,t){return Ao&&e===1&&!t.file?$o(t.original,"spawn"):null}function Zb(e,t){return Ao&&e===1&&!t.file?$o(t.original,"spawnSync"):null}Vu.exports={hookChildProcess:Jb,verifyENOENT:Wu,verifyENOENTSync:Zb,notFoundError:$o}});var Qu=ue((p1,Yt)=>{"use strict";var qu=Ue("child_process"),Oo=Ku(),Co=Yu();function Xu(e,t,n){let r=Oo(e,t,n),s=qu.spawn(r.command,r.args,r.options);return Co.hookChildProcess(s,r),s}function Gb(e,t,n){let r=Oo(e,t,n),s=qu.spawnSync(r.command,r.args,r.options);return s.error=s.error||Co.verifyENOENTSync(s.status,r),s}Yt.exports=Xu;Yt.exports.spawn=Xu;Yt.exports.sync=Gb;Yt.exports._parse=Oo;Yt.exports._enoent=Co});function Kb(){let e=Number(process.env.TOKMIZER_OFFLINE_GRACE_MS);return Number.isFinite(e)&&e>0?e:6048e5}function Pr(e,t=Date.now()){let n=e.lastHeartbeatOkAt;if(typeof n=="number"&&t-n>Kb())return!0;if(e.subEndsAt){let r=Date.parse(e.subEndsAt);if(Number.isFinite(r)&&t>r)return!0}return!1}function Nr(e,t=Date.now()){return e.plan}var Io=y(()=>{"use strict"});function Hn(e){let t=e;for(let[n,r]of Wb)t=t.replace(n,r);return t}function Xb(e){if(!e.includes("PRIVATE KEY-----"))return e;let t=e.split(`
|
|
87
|
+
`),n=[];for(let r of t){if(Yb.test(r)){let s=n.length;for(;s>0&&qb.test(n[s-1]);)s-=1;if(s<n.length){n.length=s,n.push(`${Oe}${r}`);continue}}n.push(r)}return n.join(`
|
|
88
|
+
`)}function ec(e){let t=e;for(let[n,r]of Vb)t=t.replace(n,r);return Xb(t)}var Wb,Oe,Vb,Yb,qb,Dr=y(()=>{"use strict";Wb=[[/(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]"]];Oe="[tkr: secret masked]",Vb=[[/(-----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${Oe}`],[/(?<![A-Za-z0-9_])(gh[pousr])_[A-Za-z0-9]{36,255}(?![A-Za-z0-9])/g,`$1_${Oe}`],[/(?<![A-Za-z0-9_])github_pat_[A-Za-z0-9_]{22,255}/g,`github_pat_${Oe}`],[/(?<![A-Za-z0-9_])npm_[A-Za-z0-9]{36}(?![A-Za-z0-9])/g,`npm_${Oe}`],[/(?<![A-Z0-9])(AKIA|ASIA)[A-Z0-9]{16}(?![A-Z0-9])/g,`$1${Oe}`],[/(?<![A-Za-z0-9])(xox[abpors]-)[A-Za-z0-9-]{10,}/g,`$1${Oe}`],[/(?<![A-Za-z0-9])((?:sk|rk)_live_)[A-Za-z0-9]{16,}/g,`$1${Oe}`],[/(authorization["']?\s*[:=]\s*["']?bearer\s+)[A-Za-z0-9._~+/=-]{8,}/gi,`$1${Oe}`],[/(?<![A-Za-z0-9+.-])([a-zA-Z][a-zA-Z0-9+.-]{0,31}:\/\/[^\s:/@]*:)[^\s@/]+(@[^\s@/]+)/g,`$1${Oe}$2`]],Yb=/^-----END [A-Z0-9 ]*PRIVATE KEY-----/,qb=/^[A-Za-z0-9+/=]{16,}\r?$/});var tc=y(()=>{"use strict"});import{createHash as b1,createHmac as k1,randomUUID as Qb}from"node:crypto";import{readFile as nc,writeFile as rc,mkdir as ek}from"node:fs/promises";async function Po(){try{let n=(await nc(Sn(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(n))return n}catch{}await ek(x(),{recursive:!0});let e=Qb();try{return await rc(Sn(),e,{mode:384,flag:"wx"}),e}catch{try{let t=(await nc(Sn(),"utf8")).trim();if(/^[0-9a-f-]{36}$/i.test(t))return t}catch{}return await rc(Sn(),e,{mode:384}),e}}var No=y(()=>{"use strict";B()});import{readFile as tk,writeFile as v1,mkdir as E1,chmod as T1,rm as R1,rename as A1,readdir as $1}from"node:fs/promises";import{join as nk}from"node:path";async function He(){let e=null;try{let t=JSON.parse(await tk(nk(x(),rk),"utf8"));typeof t=="object"&&t!==null&&!Array.isArray(t)&&(e=t)}catch{}return e?jt.parse({...sc,...e}):sc}var rk,sc,P1,qt=y(()=>{"use strict";We();B();rk="settings-cache.json",sc=jt.parse({}),P1=jt.partial().extend({filters:jt.shape.filters.removeDefault().partial().optional()})});var oc=y(()=>{"use strict";B();qt();Tn();Bt()});import{join as ic}from"node:path";import{appendFileSync as sk,chmodSync as ok,existsSync as ik,mkdirSync as ak,readFileSync as G1,renameSync as K1,rmdirSync as W1,statSync as lk,unlinkSync as V1,utimesSync as Y1,writeFileSync as q1}from"node:fs";function ac(){return ic(x(),"spool")}function ck(e){return ic(ac(),`${e}.jsonl`)}function Mr(e,t){if(En())try{ak(ac(),{recursive:!0,mode:448});let n=ck(e);if(ik(n)&&lk(n).size>=uk)return;sk(n,JSON.stringify(t)+`
|
|
89
|
+
`,{mode:384}),ok(n,384)}catch{return}}var uk,Do=y(()=>{"use strict";tc();B();vn();No();Fs();qt();Tn();oc();uk=512*1024});function wk(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 cc.has(n.toLowerCase())?n:""}function xk(e,t,n){let r=0;for(;e==="git"&&r<n.length&&n[r].startsWith("-");)r+=_k.has(n[r])?2:1;let s=(n[r]??"").toLowerCase();return t.has(s)?`${e} ${s}`:e}function lc(e){let t=e.toLowerCase();return t.startsWith("git")||hk.has(t)}function Mo(e){let t=e.trim().split(/\s+/).filter(l=>l.length>0),n=0;for(;n<t.length&&mk.test(t[n]??"");)n+=1;let r=wk(t[n]??"");if(!r||!dk.test(r)||r.length>yk)return"";let s=kk.get(r.toLowerCase());if(s)return xk(r.toLowerCase(),s,t.slice(n+1));if(lc(r)||gk.test(r)||Hn(r)!==r)return"";let o=t[n+1];return o&&lc(o)?"":(o&&uc.has(r.toLowerCase())&&pk.test(o)?`${r} ${o}`:r).slice(0,64)}function Sk(e){return bk.has((e.split(" ")[0]??"").toLowerCase())}async function Lr(e){if(!e.telemetryOptIn)return;let t=Mo(e.cmd),n=t&&Hn(t)===t&&Sk(t)?t:"other",r=e.sessionId?e.sessionId.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64):"";Mr("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 dk,pk,mk,hk,gk,yk,uc,cc,bk,kk,_k,Fr=y(()=>{"use strict";Dr();Do();dk=/^[a-z0-9][a-z0-9._-]*$/i,pk=/^[a-z][a-z-]+$/,mk=/^[A-Za-z_][A-Za-z0-9_]*=/,hk=new Set(["gh","glab","gup","hub","gist"]),gk=/^(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,yk=24,uc=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"]),cc=new Set([...uc,"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"]),bk=new Set([...cc,"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"]),kk=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"])]]),_k=new Set(["-C","-c"])});async function jr(e){if(e.plan!=="pro"||Nl(e.filterId)||!(await He()).telemetryOptIn)return;let t=Mo(e.cmd);!t||Hn(t)!==t||Mr("learn",{cmd:t,filterId:e.filterId==null?null:ce(e.filterId),rawBytes:e.rawBytes,filteredBytes:e.filteredBytes})}var Lo=y(()=>{"use strict";Fr();Dr();Do();We();co();qt()});function fc(e){return e?vk[e]??"anthropic":"anthropic"}var vk,dc=y(()=>{"use strict";vk={"claude-code":"anthropic",codex:"openai",copilot:"openai","gemini-cli":"google",cursor:"anthropic",windsurf:"anthropic",cline:"anthropic",aider:"anthropic",shell:"anthropic"}});import{appendFileSync as Ek,chmodSync as Tk,mkdirSync as Rk,readFileSync as yc,realpathSync as Ak,renameSync as bc,rmSync as kc,statSync as _c,writeFileSync as Fo}from"node:fs";import{basename as pc,dirname as wc,join as Hr,resolve as $k,sep as kO}from"node:path";function xc(){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 Mk(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"&&Nk.has(n.o)?{o:n.o}:{}}}catch{return null}}function Lk(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 Fk(e){return e.s==="b"?`b:${(e.c??"").split(" ")[0]||"other"}`:e.s?.startsWith("u:")?e.s:e.o==="n"?"n":"?"}function jk(e,t){let n=Fk(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 Hk(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>Pk){e.ox+=1;return}if(Lk(e,t),t.k==="restore"?(e.rn+=1,e.rb+=t.f):jk(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=fc(t.h),r=e.prov[n]??{r:0,f:0};r.r+=t.r,r.f+=t.f,e.prov[n]=r}}function Bk(e){let t=new Date(e*1e3);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function Sc(e){return Hr(wc(e),Ck)}function Uk(e){let t=Sc(e),n;try{n=yc(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]={...xc(),...i});return s}catch{try{bc(t,`${t}.corrupt-${Date.now()}`)}catch{}return{}}}function hc(e,t){let n=`${e}.tmp-${process.pid}`;Fo(n,t,{mode:384}),bc(n,e)}function zk(e){try{return Fo(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{}try{return Date.now()-_c(e).mtimeMs<Ik?!1:(kc(e,{force:!0}),Fo(e,String(process.pid),{flag:"wx",mode:384}),!0)}catch{return!1}}function Jk(e,t=mc,n=mc/2){try{if(_c(e).size<=t)return}catch{return}let r=`${e}.lock`;if(zk(r))try{let s=yc(e,"utf8").split(`
|
|
90
|
+
`).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=Uk(e);for(let u of s.slice(0,o)){let c=Mk(u);if(!c)continue;let f=Bk(c.t),d=a[f]??xc();Hk(d,c),a[f]=d}let l=s.slice(o);hc(e,l.length?`${l.join(`
|
|
86
91
|
`)}
|
|
87
|
-
`:""),
|
|
88
|
-
`.includes(i)){if(o(),
|
|
89
|
-
`;try{
|
|
90
|
-
`,{mode:384}),
|
|
91
|
-
`).filter(a=>a.trim()!==""),o=s.slice(s.length-
|
|
92
|
+
`:""),hc(Sc(e),JSON.stringify({v:1,days:a}))}catch{return}finally{kc(r,{force:!0})}}function Zk(e){let t=$k(e),n=t,r="";for(;;){try{return Hr(Ak(n),r)}catch{}let s=wc(n);if(s===n)return t;r=r?Hr(pc(n),r):pc(n),n=s}}function gc(e){return e.length===0||e[0]==="cd"||e.every(t=>vc.test(t))}function Yk(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(`|;&<>
|
|
93
|
+
`.includes(i)){if(o(),gc(t)){t=[];continue}return t}n+=i,r=!0}return o(),gc(t)?[]:t}function Tt(e){let t=Yk(e).map(a=>a.replace(/^[({]+/,"")).filter(Boolean),n=0;for(;n<t.length;){let a=t[n];if(vc.test(a)){n+=1;continue}if(Gk.has(a)){for(n+=1;n<t.length;){let l=t[n];if(l.startsWith("-")){n+=Kk.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("-")&&Wk.test(o)&&Vk.has(s.toLowerCase())?`${s} ${o}`:s).slice(0,24)}function qk(){return Hr(x(),Ok)}function Br(e,t,n=qk(),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?Zk(a):"",p=d&&d.length<=Dk?`,"p":${JSON.stringify(d)}`:"",m=l.s?`,"s":${JSON.stringify(l.s.slice(0,66))}`:"",k=l.o?`,"o":${JSON.stringify(l.o)}`:"",g=`{"t":${Math.floor(Date.now()/1e3)},"r":${e},"f":${t}${r?',"m":1':""}${u}${c}${f}${p}${m}${k}}
|
|
94
|
+
`;try{Rk(x(),{recursive:!0,mode:448}),Ek(n,g,{mode:384}),Tk(n,384),Jk(n)}catch{return}}function Ur(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 zr(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 Ok,Ck,mc,Ik,Pk,Nk,Dk,Gk,Kk,Wk,Vk,vc,jo=y(()=>{"use strict";B();dc();Ok="stats.jsonl",Ck="stats-ledger.json",mc=2*1024*1024,Ik=3e4,Pk=3e4,Nk=new Set(["n","g","e"]),Dk=256;Gk=new Set(["sudo","command","time","nice","nohup","env","stdbuf","timeout"]),Kk=new Set(["-u","-g","-n","-s","-k"]),Wk=/^[a-z0-9][a-z0-9._-]*$/i,Vk=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"]),vc=/^[A-Za-z_][A-Za-z0-9_]*=/});import{appendFileSync as Xk,mkdirSync as Qk,readFileSync as e0,writeFileSync as t0,renameSync as n0,statSync as r0,readdirSync as vO,rmSync as EO,chmodSync as s0}from"node:fs";import{join as Ec}from"node:path";function Tc(){return Ec(x(),"sessions")}function l0(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return Ec(Tc(),`${t}.jsonl`)}function Jr(e,t){try{let n=l0(e);Qk(Tc(),{recursive:!0,mode:448});let r=JSON.stringify({t:t.t??Math.floor(Date.now()/1e3),tool:t.tool,target:t.target.slice(0,a0),...t.fail?{fail:1}:{}});if(Xk(n,`${r}
|
|
95
|
+
`,{mode:384}),s0(n,384),r0(n).size>o0){let s=e0(n,"utf8").split(`
|
|
96
|
+
`).filter(a=>a.trim()!==""),o=s.slice(s.length-i0),i=`${n}.tmp-${process.pid}`;t0(i,`${o.join(`
|
|
92
97
|
`)}
|
|
93
|
-
`,{mode:384}),
|
|
94
|
-
`)
|
|
95
|
-
`)
|
|
96
|
-
`)}function
|
|
98
|
+
`,{mode:384}),n0(i,n)}}catch{}}var o0,i0,AO,a0,Ho=y(()=>{"use strict";B();o0=96*1024,i0=500,AO=168*3600*1e3,a0=120});import{basename as u0}from"node:path";function Rt(e){let t=u0(e).replace(/\.(m?js|ts)$/,"");if(t==="tkr")return[];for(let[n,r]of Object.entries(c0))if(r===t)return[n];for(let[n,r]of Object.entries(f0))if(r===t)return["hook",n];return null}var c0,f0,Bn=y(()=>{"use strict";c0={exec:"tkr-exec",processor:"tkr-processor",daemon:"tkr-daemon","shim-run":"tkr-shim"},f0={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 Rc}from"node:fs";import{delimiter as d0,join as Xt}from"node:path";import p0 from"node:os";function Se(){return!1}function Un(e,t=process.execPath){let n=Se()?Rt(e):null;return n?[process.execPath,...n]:[t,e]}function Ac(e,t){try{return Rc(e)===Rc(t)}catch{return!1}}function Zr(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"?";":d0)){if(!s||s.includes("node_modules"))continue;let o=Xt(s,r);if(Ac(o,n))return o}if(t!=="win32"){let s=p0.homedir();for(let o of[Xt(s,".local","bin",r),Xt(s,".local","share","tokmizer","current","dist","bin",r),Xt("/opt/homebrew/bin",r),Xt("/usr/local/bin",r),Xt("/home/linuxbrew/.linuxbrew/bin",r)])if(Ac(o,n))return o}return n}var Ye=y(()=>{"use strict";Bn()});import{rmSync as m0,statSync as h0}from"node:fs";import{join as $c}from"node:path";function zn(){return $c(x(),"shims")}function Gr(){return $c(x(),"fail-open")}function be(e=Date.now()){try{if(e-h0(Gr()).mtimeMs<g0)return!0;m0(Gr(),{force:!0})}catch{}return!1}function Bo(){return`[ -f ${qe(Gr())} ]`}function qe(e){return`'${e.replace(/'/g,"'\\''")}'`}function Oc(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 g0,ve=y(()=>{"use strict";B();g0=24*36e5});import{accessSync as k0,chmodSync as _0,constants as w0,existsSync as Kr,mkdirSync as x0,readdirSync as S0,readFileSync as v0,realpathSync as Cc,renameSync as E0,unlinkSync as T0,writeFileSync as R0}from"node:fs";import{basename as zo,dirname as Xe,join as Ce,sep as Qt}from"node:path";import A0 from"node:os";function Dc(){return Ce(x(),"bin","tkr-shim-launch")}function $0(){return Ce(x(),"bin","tkr-run")}function Ic(){return Ce(process.env.CLAUDE_CONFIG_DIR||Ce(A0.homedir(),".claude"),"plugins","cache","tokmizer","tokmizer")}function O0(e){let t=Xe(Xe(Xe(e)));return Nc.test(zo(t))&&zo(Xe(t))==="tokmizer"?Xe(t):null}function Jo(e){return/[\n\r]/.test(e)||e.includes(`${Qt}_npx${Qt}`)||e.includes(`${Qt}.bun${Qt}install${Qt}cache${Qt}`)}function Zo(e){let t=e.match(/^(.*)[\\/]Cellar[\\/]([^\\/]+)[\\/][^\\/]+[\\/](.*)$/);if(!t)return e;let n=Ce(t[1],"opt",t[2],t[3]);try{return Cc(n)===Cc(e)?n:e}catch{return e}}function C0(e=process.execPath){return Jo(e)?"":Zo(e)}function Mc(e,t=Se()){if(t&&Rt(e)){let s=Zr();return{single:Jo(s)?"":Zo(s),js:"",cache:Ic(),node:""}}let n=C0(),r=O0(e);return r?{single:"",js:"",cache:r,node:n}:{single:"",js:Jo(e)?"":Zo(e),cache:Ic(),node:n}}function I0(e){try{return k0(e,w0.X_OK),!0}catch{return!1}}function P0(e){let t=null,n=-1,r;try{r=S0(e)}catch{return null}for(let s of r){if(!Nc.test(s))continue;let o=Ce(e,s);if(!Kr(Ce(o,"dist","bin","tkr-shim.js"))||!Kr(Ce(o,"dist","bin",Jn)))continue;let[i,a,l]=s.split(".").map(Number),u=i*1e6+a*1e3+l;u>n&&(n=u,t=o)}return t}function Uo(e){return e.single&&I0(e.single)||e.js&&Kr(e.js)&&(zo(e.js)!=="tkr-shim.js"||Kr(Ce(Xe(e.js),Jn)))?!0:e.cache!==""&&P0(e.cache)!==null}function N0(e,t){return["_tk_t=",`if [ -n "$_tk_j" ] && [ -f "${t}" ] && { [ "\${_tk_j##*/}" != tkr-shim.js ] || [ -f "\${_tk_j%/*}/${Jn}" ]; }; 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/${Jn}" ] || 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=${qe(zn())}`," 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/${Jn}" ] && [ -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 D0(e){return["#!/bin/sh",`_tk_f=${Pc}`,`_tk_s=${qe(e.single)}`,`_tk_j=${qe(e.js)}`,`_tk_k=${qe(e.cache)}`,`_tk_n=${qe(e.node)}`,'[ "$#" -gt 0 ] || exit 0',`if ! ${Bo()}; then`,' if [ -n "$_tk_s" ] && [ -x "$_tk_s" ]; then exec "$_tk_s" exec "$@"; fi',...N0("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(`
|
|
99
|
+
`)}function Lc(e){let t=$0(),n=Mc(Ce(Xe(e),"tkr-shim.js")),r=L0(t);if(r&&r.format===Pc&&Uo(r.target)&&JSON.stringify(r.target)===JSON.stringify(n))return t;if(!Uo(n))return r&&Uo(r.target)?t:null;let s=`${t}.${process.pid}.tmp`;try{return x0(Xe(t),{recursive:!0,mode:448}),R0(s,D0(n),{mode:493}),_0(s,493),E0(s,t),t}catch{try{T0(s)}catch{}return null}}function M0(e){let t=a=>{let l=e.match(new RegExp(`^${a}=(.*)$`,"m"));return l?a==="_tk_f"?l[1]:Oc(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 L0(e=Dc()){try{return M0(v0(e,"utf8"))}catch{return null}}var Pc,Jn,Nc,Wr=y(()=>{"use strict";B();Ye();Bn();ve();Pc=1,Jn="tkr-shim.stable",Nc=/^(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})\.(?:0|[1-9]\d{0,5})$/});import{chmod as F0,lstat as Fc,mkdir as j0,readFile as Ko,rename as H0,rm as qO,unlink as jc,writeFile as B0}from"node:fs/promises";import{createHash as Hc}from"node:crypto";import{basename as U0,join as Bc}from"node:path";function Uc(){return Bc(x(),"backup","config")}function Go(e){let t=Vo(e),n=Hc("sha256").update(t).digest("hex").slice(0,16),r=U0(t).replace(/[^A-Za-z0-9._-]/g,"_").slice(0,80);return Bc(Uc(),`${n}-${r}`)}function zc(e){return`${Go(e)}.written`}function Jc(e){return Hc("sha256").update(e).digest("hex")}async function J0(e){try{return await Fc(e),!0}catch{return!1}}async function Wo(e,t){let n=`${e}.tmp-${process.pid}`;try{return await j0(Uc(),{recursive:!0,mode:448}),await B0(n,t,{mode:384}),await F0(n,384),await H0(n,e),!0}catch{return await jc(n).catch(()=>{}),!1}}async function Z0(e,t){let n=`${e}${z0}`;try{if(!(await Fc(n)).isFile())return!1}catch{return!1}let r=!await J0(t);if(r&&!await Wo(t,await Ko(n,"utf8")))throw new Error("backup");return await jc(n).catch(()=>{}),r}async function G0(e,t){try{return(await Ko(zc(e),"utf8")).trim()===Jc(t)}catch{return!1}}async function Zc(e,t){let n=t;try{n===void 0&&(n=await Ko(e,"utf8"))}catch(r){return r.code==="ENOENT"}try{if(await Z0(e,Go(e)))return!0}catch{return!1}return await G0(e,n)?!0:Wo(Go(e),n)}async function Vr(e,t,n){return!await Zc(e,n)||!await qr(e,t)?!1:(await Wo(zc(e),`${Jc(t)}
|
|
100
|
+
`),!0)}var z0,Yr=y(()=>{"use strict";B();Ie();z0=".tkr-bak"});import{readFile as K0,writeFile as W0,rename as V0,mkdir as Wc,chmod as Y0,stat as q0,unlink as X0}from"node:fs/promises";import{existsSync as Q0,lstatSync as e_,readlinkSync as t_,realpathSync as Gc}from"node:fs";import{basename as n_,dirname as Xr,join as r_,resolve as Kc}from"node:path";function H(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}async function Qe(e){if(!Q0(e))return{};try{let t=JSON.parse(await K0(e,"utf8"));return H(t)?t:null}catch{return null}}function Vo(e){let t=Kc(e);for(let n=0;n<32;n++){try{return Gc(t)}catch{}try{if(!e_(t).isSymbolicLink())break;t=Kc(Xr(t),t_(t))}catch{break}}try{return r_(Gc(Xr(t)),n_(t))}catch{return t}}async function qr(e,t){let n=Vo(e),r=`${n}.tmp-${process.pid}`;try{await Wc(Xr(n),{recursive:!0});let s=384;try{s=(await q0(n)).mode&511}catch{}return await W0(r,t,{mode:s}),await Y0(r,s),await V0(r,n),!0}catch{try{await X0(r)}catch{}return!1}}async function et(e,t){try{await Wc(Xr(e),{recursive:!0})}catch{return!1}return Vr(e,`${JSON.stringify(t,null,2)}
|
|
101
|
+
`)}function en(e,t){if(typeof e!="string")return!1;if(e.includes(t))return!0;let n=Rt(t);return n?.length?new RegExp(`^\\s*${s_}\\s+${n.join("\\s+")}(?:\\s|$)`,"i").test(e):!1}function Qr(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(!H(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 s_,Ie=y(()=>{"use strict";Bn();Ye();Wr();Yr();s_=String.raw`(?:'(?:(?:[^']|'\\'')*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?'|"(?:[^"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?"|(?:[^\s'"]*[\\/])?tkr(?:\.(?:exe|cmd|bat|ps1))?)`});import{existsSync as mC,readFileSync as o_}from"node:fs";import{join as i_}from"node:path";import a_ from"node:os";function u_(){return i_(a_.homedir(),".cursor","hooks.json")}function c_(e){return H(e)&&en(e.command,l_)}function f_(e){let t=H(e.hooks)?e.hooks:{},n=Array.isArray(t[Vc])?t[Vc]:[];return{hooks:t,entries:n}}function Yc(){try{let e=JSON.parse(o_(u_(),"utf8"));return f_(e).entries.some(c_)}catch{return!1}}var l_,Vc,qc=y(()=>{"use strict";Ie();l_="tkr-cursor-hook",Vc="preToolUse"});import{existsSync as _C,readFileSync as d_}from"node:fs";import{join as p_}from"node:path";import m_ from"node:os";function g_(){return p_(process.env.GEMINI_CLI_HOME||m_.homedir(),".gemini","settings.json")}function y_(e){return H(e)&&en(e.command,h_)}function b_(e){return(Array.isArray(e.hooks)?e.hooks:[]).find(y_)}function k_(e){let t=H(e.hooks)?e.hooks:{},n=Array.isArray(t[Xc])?t[Xc]:[];return{hooks:t,groups:n}}function Qc(){try{let e=JSON.parse(d_(g_(),"utf8"));return k_(e).groups.some(t=>b_(t)!=null)}catch{return!1}}var h_,Xc,ef=y(()=>{"use strict";Ie();h_="tkr-gemini-hook",Xc="BeforeTool"});import{existsSync as RC,accessSync as AC,constants as $C,readFileSync as __}from"node:fs";function x_(e){return e.includes(w_)}function tf(e){try{return x_(__(e,"utf8"))}catch{return!1}}var w_,nf=y(()=>{"use strict";Ie();Ye();Yr();B();w_='"rewrite", "--host"'});import{readFile as sf,mkdir as S_}from"node:fs/promises";import{existsSync as Xo,readFileSync as of}from"node:fs";import{dirname as v_,join as qo}from"node:path";import af from"node:os";function Kn(){return qo(process.env.VIBE_HOME||qo(af.homedir(),".vibe"),"hooks.toml")}function rf(e){return JSON.stringify(e)}function E_(e){return["[[hooks]]",`name = ${rf(lf)}`,'type = "pre_tool"','match = "bash"',`command = ${rf(e)}`,"timeout = 10.0","strict = false",'description = "Route shell commands through tokmizer."',""].join(`
|
|
102
|
+
`)}function Qo(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 Gn(e){return/^\s*\[\[hooks\]\]/.test(e)&&new RegExp(`^\\s*name\\s*=\\s*"${lf}"\\s*$`,"m").test(e)}async function uf(e,t){try{await S_(v_(e),{recursive:!0})}catch{return!1}return Vr(e,t)}function cf(){try{return Qo(of(Kn(),"utf8")).some(Gn)}catch{return!1}}async function ff(e){let t=Kn(),n="";try{Xo(t)&&(n=await sf(t,"utf8"))}catch{return"error"}let r=E_(e),s=Qo(n),o=s.filter(Gn);if(o.length===1&&o[0].trimEnd()===r.trimEnd())return"present";let i=s.filter(l=>!Gn(l)).join("").trimEnd(),a=i?`${i}
|
|
97
103
|
|
|
98
|
-
${r}`:r;return await
|
|
99
|
-
`:"";return await Pc(e,s)?"removed":"error"}function jn(){return Po(Cc.homedir(),".gemini","config","hooks.json")}function x0(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function Lc(){try{let e=JSON.parse(Oc(jn(),"utf8"));return H(e)&&H(e[Mn])}catch{return!1}}async function Fc(e){let t=jn(),n=await qe(t);if(!n)return"error";let r=x0(e),s=n[Mn];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Mn]=r,await Ye(t,n)?s===void 0?"added":"updated":"error")}async function jc(){let e=jn();if(!No(e))return"absent";let t=await qe(e);return t?Mn in t?(delete t[Mn],await Ye(e,t)?"removed":"error"):"absent":"error"}var Ic,Mn,Hc=b(()=>{"use strict";$e();Fr();Ic="tokmizer-rewrite",Mn="tokmizer-rewrite"});import{dirname as vO,join as ge}from"node:path";import S0 from"node:os";function zc(e){return e.kind==="hook"?e.installed():Tc(e.files()[0].target)}var Hn,Mo,Bc,Uc=b(()=>{"use strict";$e();Rc();Hc();Hn=()=>S0.homedir(),Mo=()=>process.env.XDG_CONFIG_HOME||ge(Hn(),".config"),Bc=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:ge(Mo(),"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:ge(Mo(),"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:ge(Mo(),"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:Fn,installed:Nc,ensure:Dc,remove:Mc,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:jn,installed:Lc,ensure:Fc,remove:jc,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=ge(Hn(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:ge(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:ge(process.env.PI_CODING_AGENT_DIR||ge(Hn(),".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:ge(Hn(),".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=ge(process.env.HERMES_HOME||ge(Hn(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:ge(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}]});import{existsSync as v0,readFileSync as E0}from"node:fs";function zr(e,t){return H(e)&&Vt(e.command,t)}function Jc(e){return e.path??(e.nested?["hooks"]:[])}function Zc(e,t){let n=e;for(let r of Jc(t))H(n[r])||(n[r]={}),n=n[r];return n}function Gc(e,t){let n=e;for(let s of Jc(t))n=H(n)?n[s]:void 0;if(!H(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function T0(e){return H(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Kc(e,t){return(t.matcher===void 0?e:e.flatMap(T0)).filter(r=>zr(r,t.mark))}function Wc(e,t){return Kc(Gc(e,t),t).length>0}function Lo(e,t){try{let n=JSON.parse(E0(e,"utf8"));return H(n)&&Wc(n,t)}catch{return!1}}function R0(e,t,n){let r=Zc(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Kc(s,t)[0],i=t.entry(n);if(o){let a=Br(s,u=>zr(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 A0(e,t){if(!Wc(e,t))return!1;let n=Zc(e,t),r=Gc(e,t),s=t.matcher===void 0?r.filter(o=>!zr(o,t.mark)):r.map(o=>H(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!zr(i,t.mark))}:o).filter(o=>!H(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function Fo(e,t,n){let r=await qe(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=R0(r,t,n);return s==="present"||await Ye(e,r)?s:"error"}async function Ur(e,t){if(!v0(e))return"absent";let n=await qe(e);return n?A0(n,t)?await Ye(e,n)?"removed":"error":"absent":"error"}var Vc=b(()=>{"use strict";$e()});import{existsSync as Ho,readFileSync as $0}from"node:fs";import{join as Q}from"node:path";import O0 from"node:os";function Oe(){return O0.homedir()}function Qc(e){return e.version===void 0&&(e.version=1),e.version===1}function C0(e,t,n){return Promise.all(e.map(r=>Fo(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function I0(e,t){return Promise.all(e.map(n=>Ur(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function vt(e,t){return{...e,installed:()=>e.files().some(n=>Lo(n,t)),ensure:n=>C0(e.files(),t,n),remove:()=>I0(e.files(),t)}}function N0(){return Q(process.env.COPILOT_HOME||Q(Oe(),".copilot"),"hooks","tokmizer.json")}function M0(){let e=[Q(Oe(),".trae","hooks.json")];return Ho(Q(Oe(),".trae-cn"))&&e.push(Q(Oe(),".trae-cn","hooks.json")),e}function F0(){return Q(process.env.QWEN_HOME||Q(Oe(),".qwen"),"settings.json")}function H0(){return Q(process.env.XDG_CONFIG_HOME||Q(Oe(),".config"),"crush","crush.json")}function z0(){return Q(Oe(),".junie","config.json")}function U0(e){return e.hooks===void 0&&(e.hooks={}),H(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||H(e.hooks.events)):!1}function Z0(){return Q(Oe(),".zcode","cli","config.json")}function K0(){return Q(Oe(),".grok","hooks","tokmizer.json")}function jo(){return Q(Oe(),".factory")}function Jr(){return[{file:Q(jo(),"hooks.json"),spec:Bo},{file:Q(jo(),"hooks","hooks.json"),spec:Bo},{file:Q(jo(),"settings.json"),spec:V0}]}function qc(e){try{let t=JSON.parse($0(e,"utf8"));return H(t)?t:null}catch{return null}}function Yc(e,t){let n=t?e?.hooks:e;return H(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Xc(){let[e,t,n]=Jr(),r=Ho(e.file)?e:Ho(t.file)?t:null;return r&&Yc(qc(r.file),!1)?r:Yc(qc(n.file),!0)?n:r??e}var P0,D0,L0,j0,B0,J0,G0,W0,Bo,V0,q0,ef,tf=b(()=>{"use strict";$e();Vc();P0={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:Qc};D0={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:Qc};L0={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};j0={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};B0={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};J0={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:U0};G0={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};W0="tkr-droid-hook",Bo={mark:W0,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},V0={...Bo,nested:!0};q0={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Xc().file],installed:()=>Jr().some(e=>Lo(e.file,e.spec)),ensure:async e=>{let t=Xc(),n=await Fo(t.file,t.spec,e);return n==="error"||await Promise.all(Jr().filter(r=>r.file!==t.file).map(r=>Ur(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(Jr().map(t=>Ur(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},ef=[vt({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:()=>[N0()]},P0),q0,vt({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:M0},D0),vt({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[F0()]},L0),vt({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[H0()]},j0),vt({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[z0()]},B0),vt({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[Z0()]},J0),vt({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:()=>[K0()]},G0)]});function nf(e){return Y0.has(e)||(X0[e]?.installed()??!1)}function Zr(e){return null}function Gr(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&&zo.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!nf(o)}}for(let o of rf)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!nf(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}var rf,zo,Y0,X0,Bn=b(()=>{"use strict";xc();Ec();Uc();tf();rf=[{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:[]}],zo=[...rf.map(e=>e.host),"shell"],Y0=new Set(["claude-code","codex"]),X0={cursor:{installed:wc,setup:"tkr setup-cursor"},"gemini-cli":{installed:vc,setup:"tkr setup-gemini"},...Object.fromEntries(Bc.map(e=>[e.host,{installed:()=>zc(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(ef.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))}});import{existsSync as qO,realpathSync as Q0}from"node:fs";import{basename as XO,delimiter as sf,join as QO,dirname as eC}from"node:path";function of(e){try{return Q0(e)}catch{return e}}function af(){let e=Mr(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=of(e),o=r.split(sf).filter(i=>i&&i!==e&&of(i)!==s);return t[n]=o.join(sf),n==="Path"&&(t.PATH=t[n]),t}var lf=b(()=>{"use strict";Nn();Ve();B();Bn();_e();Ro();_e()});function Uo(e){return JSON.stringify(e)+Kr}function*cf(e){let t=0;for(;;){let n=e.indexOf(Kr,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function zn(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var e_,t_,n_,r_,fC,dC,pC,uf,Kr,mC,ff=b(()=>{"use strict";bt();hn();e_=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()}),t_=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),n_=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),r_=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),fC=h.discriminatedUnion("op",[e_,t_,n_,r_]),dC=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),pC=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),uf=h.object({filter:Ze.nullable(),cacheHit:h.boolean().optional()}),Kr=`
|
|
100
|
-
`,
|
|
101
|
-
`)}catch{}}function
|
|
104
|
+
${r}`:r;return await uf(t,a)?o.length?"updated":"added":"error"}async function df(){let e=Kn();if(!Xo(e))return"absent";let t;try{t=await sf(e,"utf8")}catch{return"error"}let n=Qo(t);if(!n.some(Gn))return"absent";let r=n.filter(o=>!Gn(o)).join("").trimEnd(),s=r?`${r}
|
|
105
|
+
`:"";return await uf(e,s)?"removed":"error"}function Wn(){return qo(af.homedir(),".gemini","config","hooks.json")}function T_(e){return{enabled:!0,PreToolUse:[{matcher:"run_command",hooks:[{type:"command",command:e,timeout:10}]}]}}function pf(){try{let e=JSON.parse(of(Wn(),"utf8"));return H(e)&&H(e[Zn])}catch{return!1}}async function mf(e){let t=Wn(),n=await Qe(t);if(!n)return"error";let r=T_(e),s=n[Zn];return s!==void 0&&JSON.stringify(s)===JSON.stringify(r)?"present":(n[Zn]=r,await et(t,n)?s===void 0?"added":"updated":"error")}async function hf(){let e=Wn();if(!Xo(e))return"absent";let t=await Qe(e);return t?Zn in t?(delete t[Zn],await et(e,t)?"removed":"error"):"absent":"error"}var lf,Zn,gf=y(()=>{"use strict";Ie();Yr();lf="tokmizer-rewrite",Zn="tokmizer-rewrite"});import{dirname as KC,join as ke}from"node:path";import R_ from"node:os";function bf(e){return e.kind==="hook"?e.installed():tf(e.files()[0].target)}var Vn,ei,yf,kf=y(()=>{"use strict";Ie();nf();gf();Vn=()=>R_.homedir(),ei=()=>process.env.XDG_CONFIG_HOME||ke(Vn(),".config"),yf=[{host:"opencode",label:"OpenCode",command:"setup-opencode",kind:"shim",files:()=>[{template:"opencode.js",target:ke(ei(),"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:ke(ei(),"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:ke(ei(),"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:Kn,installed:cf,ensure:ff,remove:df,next:"Restart Vibe so it reads hooks.toml."},{host:"antigravity",label:"Antigravity",command:"setup-antigravity",kind:"hook",file:Wn,installed:pf,ensure:mf,remove:hf,next:"Restart Antigravity, then check it with /hooks."},{host:"openclaw",label:"OpenClaw",command:"setup-openclaw",kind:"shim",files:()=>{let e=ke(Vn(),".openclaw","extensions","tokmizer");return["index.js","openclaw.plugin.json","package.json"].map(t=>({template:`openclaw/${t}`,target:ke(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:ke(process.env.PI_CODING_AGENT_DIR||ke(Vn(),".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:ke(Vn(),".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=ke(process.env.HERMES_HOME||ke(Vn(),".hermes"),"plugins","tokmizer");return["__init__.py","plugin.yaml"].map(t=>({template:`hermes/${t}`,target:ke(e,t)}))},next:"Run: hermes plugins enable tokmizer, then restart Hermes (needs Hermes v2026.8.16 or newer)."}]});import{existsSync as A_,readFileSync as $_}from"node:fs";function es(e,t){return H(e)&&en(e.command,t)}function _f(e){return e.path??(e.nested?["hooks"]:[])}function wf(e,t){let n=e;for(let r of _f(t))H(n[r])||(n[r]={}),n=n[r];return n}function xf(e,t){let n=e;for(let s of _f(t))n=H(n)?n[s]:void 0;if(!H(n))return[];let r=n[t.event];return Array.isArray(r)?r:[]}function O_(e){return H(e)&&Array.isArray(e.hooks)?e.hooks:[]}function Sf(e,t){return(t.matcher===void 0?e:e.flatMap(O_)).filter(r=>es(r,t.mark))}function vf(e,t){return Sf(xf(e,t),t).length>0}function ti(e,t){try{let n=JSON.parse($_(e,"utf8"));return H(n)&&vf(n,t)}catch{return!1}}function C_(e,t,n){let r=wf(e,t),s=Array.isArray(r[t.event])?r[t.event]:[];r[t.event]=s;let o=Sf(s,t)[0],i=t.entry(n);if(o){let a=Qr(s,u=>es(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 I_(e,t){if(!vf(e,t))return!1;let n=wf(e,t),r=xf(e,t),s=t.matcher===void 0?r.filter(o=>!es(o,t.mark)):r.map(o=>H(o)&&Array.isArray(o.hooks)?{...o,hooks:o.hooks.filter(i=>!es(i,t.mark))}:o).filter(o=>!H(o)||!Array.isArray(o.hooks)||o.hooks.length>0);return s.length?n[t.event]=s:delete n[t.event],!0}async function ni(e,t,n){let r=await Qe(e);if(!r||t.prepare&&!t.prepare(r))return"error";let s=C_(r,t,n);return s==="present"||await et(e,r)?s:"error"}async function ts(e,t){if(!A_(e))return"absent";let n=await Qe(e);return n?I_(n,t)?await et(e,n)?"removed":"error":"absent":"error"}var Ef=y(()=>{"use strict";Ie()});import{existsSync as si,readFileSync as P_}from"node:fs";import{join as ee}from"node:path";import N_ from"node:os";function Pe(){return N_.homedir()}function $f(e){return e.version===void 0&&(e.version=1),e.version===1}function D_(e,t,n){return Promise.all(e.map(r=>ni(r,t,n))).then(r=>r.includes("error")?"error":r.includes("updated")?"updated":r.includes("added")?"added":"present")}function M_(e,t){return Promise.all(e.map(n=>ts(n,t))).then(n=>n.includes("error")?"error":n.includes("removed")?"removed":"absent")}function At(e,t){return{...e,installed:()=>e.files().some(n=>ti(n,t)),ensure:n=>D_(e.files(),t,n),remove:()=>M_(e.files(),t)}}function F_(){return ee(process.env.COPILOT_HOME||ee(Pe(),".copilot"),"hooks","tokmizer.json")}function H_(){let e=[ee(Pe(),".trae","hooks.json")];return si(ee(Pe(),".trae-cn"))&&e.push(ee(Pe(),".trae-cn","hooks.json")),e}function U_(){return ee(process.env.QWEN_HOME||ee(Pe(),".qwen"),"settings.json")}function J_(){return ee(process.env.XDG_CONFIG_HOME||ee(Pe(),".config"),"crush","crush.json")}function G_(){return ee(Pe(),".junie","config.json")}function K_(e){return e.hooks===void 0&&(e.hooks={}),H(e.hooks)?(e.hooks.enabled===void 0&&(e.hooks.enabled=!0),e.hooks.events===void 0||H(e.hooks.events)):!1}function V_(){return ee(Pe(),".zcode","cli","config.json")}function q_(){return ee(Pe(),".grok","hooks","tokmizer.json")}function ri(){return ee(Pe(),".factory")}function ns(){return[{file:ee(ri(),"hooks.json"),spec:oi},{file:ee(ri(),"hooks","hooks.json"),spec:oi},{file:ee(ri(),"settings.json"),spec:Q_}]}function Tf(e){try{let t=JSON.parse(P_(e,"utf8"));return H(t)?t:null}catch{return null}}function Rf(e,t){let n=t?e?.hooks:e;return H(n)&&Array.isArray(n.PreToolUse)&&n.PreToolUse.length>0}function Af(){let[e,t,n]=ns(),r=si(e.file)?e:si(t.file)?t:null;return r&&Rf(Tf(r.file),!1)?r:Rf(Tf(n.file),!0)?n:r??e}var L_,j_,B_,z_,Z_,W_,Y_,X_,oi,Q_,ew,Of,Cf=y(()=>{"use strict";Ie();Ef();L_={mark:"tkr-copilot-hook",event:"PreToolUse",nested:!0,entry:e=>({type:"command",command:e,bash:e,powershell:e,timeout:10,timeoutSec:10}),prepare:$f};j_={mark:"tkr-trae-hook",event:"PreToolUse",nested:!0,matcher:"RunCommand",entry:e=>({type:"command",command:e,timeout:30}),prepare:$f};B_={mark:"tkr-qwen-hook",event:"PreToolUse",nested:!0,matcher:"run_shell_command",entry:e=>({name:"tokmizer",type:"command",command:e,timeout:10})};z_={mark:"tkr-crush-hook",event:"PreToolUse",nested:!0,entry:e=>({name:"tokmizer",matcher:"^bash$",command:e,timeout:10})};Z_={mark:"tkr-junie-hook",event:"PreToolUse",nested:!0,matcher:"^Bash$",entry:e=>({type:"command",command:e,timeout:10})};W_={mark:"tkr-zcode-hook",event:"PreToolUse",nested:!0,path:["hooks","events"],matcher:"Bash",entry:e=>({type:"command",command:e,timeoutMs:1e4}),prepare:K_};Y_={mark:"tkr-grok-hook",event:"PreToolUse",nested:!0,matcher:"Bash",entry:e=>({type:"command",command:e,timeout:10})};X_="tkr-droid-hook",oi={mark:X_,event:"PreToolUse",nested:!1,matcher:"Execute",entry:e=>({type:"command",command:e,timeout:10})},Q_={...oi,nested:!0};ew={id:"droid",label:"Factory Droid",setup:"tkr setup-droid",bin:"tkr-droid-hook",restart:"Restart Droid, then check it with /hooks.",files:()=>[Af().file],installed:()=>ns().some(e=>ti(e.file,e.spec)),ensure:async e=>{let t=Af(),n=await ni(t.file,t.spec,e);return n==="error"||await Promise.all(ns().filter(r=>r.file!==t.file).map(r=>ts(r.file,r.spec))),n},remove:async()=>{let e=await Promise.all(ns().map(t=>ts(t.file,t.spec)));return e.includes("error")?"error":e.includes("removed")?"removed":"absent"}},Of=[At({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:()=>[F_()]},L_),ew,At({id:"trae",label:"Trae",setup:"tkr setup-trae",bin:"tkr-trae-hook",restart:"Restart Trae so it loads the new hook.",files:H_},j_),At({id:"qwen-code",label:"Qwen Code",setup:"tkr setup-qwen",bin:"tkr-qwen-hook",restart:"Restart Qwen Code, then check it with /hooks.",files:()=>[U_()]},B_),At({id:"crush",label:"Crush",setup:"tkr setup-crush",bin:"tkr-crush-hook",restart:"Restart Crush so it loads the new hook.",files:()=>[J_()]},z_),At({id:"junie",label:"Junie CLI",setup:"tkr setup-junie",bin:"tkr-junie-hook",restart:"Restart Junie CLI so it loads the new hook.",files:()=>[G_()]},Z_),At({id:"zcode",label:"ZCode",setup:"tkr setup-zcode",bin:"tkr-zcode-hook",restart:"Restart ZCode so it loads the new hook.",files:()=>[V_()]},W_),At({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:()=>[q_()]},Y_)]});function If(e){return tw.has(e)||(nw[e]?.installed()??!1)}function rs(e){return null}function ss(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&&ii.includes(s)){let o=s;return{host:o,source:"env",os:n,arch:r,shimRecommended:!If(o)}}for(let o of Pf)if(o.vars.some(i=>e[i]))return{host:o.host,source:"env",os:n,arch:r,shimRecommended:!If(o.host)};return{host:"shell",source:"fallback",os:n,arch:r,shimRecommended:!0}}var Pf,ii,tw,nw,Yn=y(()=>{"use strict";qc();ef();kf();Cf();Pf=[{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:[]}],ii=[...Pf.map(e=>e.host),"shell"],tw=new Set(["claude-code","codex"]),nw={cursor:{installed:Yc,setup:"tkr setup-cursor"},"gemini-cli":{installed:Qc,setup:"tkr setup-gemini"},...Object.fromEntries(yf.map(e=>[e.host,{installed:()=>bf(e),setup:`tkr ${e.command}`}])),...Object.fromEntries(Of.map(e=>[e.id,{installed:e.installed,setup:e.setup}]))}});import{existsSync as yI,realpathSync as rw}from"node:fs";import{basename as kI,delimiter as Nf,join as _I,dirname as wI}from"node:path";function Df(e){try{return rw(e)}catch{return e}}function Mf(){let e=zn(),t={...process.env},n=process.platform==="win32"?"Path":"PATH",r=t[n]??t.PATH??"",s=Df(e),o=r.split(Nf).filter(i=>i&&i!==e&&Df(i)!==s);return t[n]=o.join(Nf),n==="Path"&&(t.PATH=t[n]),t}var Lf=y(()=>{"use strict";Bn();Ye();B();Yn();ve();Wr();ve()});function ai(e){return JSON.stringify(e)+os}function*jf(e){let t=0;for(;;){let n=e.indexOf(os,t);if(n<0)return;yield e.slice(t,n),t=n+1}}function qn(){return`${process.pid}-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}var sw,ow,iw,aw,II,PI,NI,Ff,os,DI,Hf=y(()=>{"use strict";wt();wn();sw=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()}),ow=h.object({id:h.string().min(1).max(64),op:h.literal("ping")}),iw=h.object({id:h.string().min(1).max(64),op:h.literal("shutdown"),installId:h.string().min(1).max(64)}),aw=h.object({id:h.string().min(1).max(64),op:h.literal("reload"),installId:h.string().min(1).max(64).optional()}),II=h.discriminatedUnion("op",[sw,ow,iw,aw]),PI=h.object({id:h.string(),ok:h.literal(!0),data:h.unknown()}),NI=h.object({id:h.string(),ok:h.literal(!1),err:h.string(),retryAfterMs:h.number().int().nonnegative().optional()}),Ff=h.object({filter:Ke.nullable(),cacheHit:h.boolean().optional()}),os=`
|
|
106
|
+
`,DI=64*1024});import{createConnection as lw}from"node:net";import{spawn as uw}from"node:child_process";import{existsSync as zf,openSync as li,closeSync as Bf,unlinkSync as ci,writeFileSync as fi,mkdirSync as di,readFileSync as cw,appendFileSync as fw,rmSync as dw,statSync as pw}from"node:fs";import{dirname as mw,join as pi}from"node:path";import{fileURLToPath as hw}from"node:url";function mi(){return pi(x(),"daemon.spawn.fail")}function hi(){return pi(x(),"daemon.log")}function kw(){try{let e=Number(cw(mi(),"utf8"));return Number.isFinite(e)&&Date.now()-e<yw}catch{return!1}}function _w(e){try{di(x(),{recursive:!0});let t=hi();try{pw(t).size>bw&&ci(t)}catch{}fw(t,`${new Date().toISOString()} ${e}
|
|
107
|
+
`)}catch{}}function ww(e){try{di(x(),{recursive:!0}),fi(mi(),String(Date.now()))}catch{}_w(`spawn failed: ${e.message}`)}function xw(){try{dw(mi(),{force:!0})}catch{}}async function is(e,t){return new Promise((n,r)=>{let s=lw(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 Sw(){return process.env.TOKMIZER_DAEMON_BIN?process.env.TOKMIZER_DAEMON_BIN:hw(new URL("../bin/tkr-daemon.js",import.meta.url))}async function ui(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 is(e,75)).destroy(),!0}catch{}else if(zf(e))return!0;await new Promise(o=>setTimeout(o,75))}return!1}async function vw(e){let t=Sw();if(!Se()&&!zf(t))throw new Error(`tkr-daemon binary not found at ${t}`);let{path:n}=Et(),r=process.platform==="win32"?x():mw(n);try{di(r,{recursive:!0})}catch{}let s=pi(r,"daemon.spawn.lock"),o=null;try{o=li(s,"wx"),fi(o,String(process.pid))}catch(i){if(i.code==="EEXIST"){if(await ui(n,5e3))return;try{ci(s)}catch{}try{o=li(s,"wx"),fi(o,String(process.pid))}catch(l){if(l.code==="EEXIST"){await ui(n,5e3);return}throw l}}else throw i}try{let i=null;try{i=li(hi(),"a")}catch{}let[a,...l]=Un(t);if(uw(a,l,{detached:!0,stdio:["ignore","ignore",i??"ignore"],env:{...process.env,TOKMIZER_DAEMON_INSTALL_ID:e}}).unref(),i!==null)try{Bf(i)}catch{}if(!await ui(n,3e3))throw new Error("tkr-daemon failed to bind socket within 3s")}finally{if(o!==null){try{Bf(o)}catch{}try{ci(s)}catch{}}}}async function Ew(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Et(),n=await Po();try{let r=await is(t,Jf);r.write(ai({id:qn(),op:"shutdown",installId:n})),await new Promise(s=>setTimeout(s,150));try{r.destroy()}catch{}return!0}catch{return!1}}async function Tw(e,t){let n=Date.now()+t;for(;Date.now()<n;){try{(await is(e,250)).destroy()}catch{return!0}await new Promise(r=>setTimeout(r,100))}return!1}async function gi(e={}){let{path:t}=e.socketPath?{path:e.socketPath}:Et(),n=await Po(),r=null,s=0,o=!1;for(;s<=Uf;)try{r=await is(t,Jf),xw();break}catch{if(s+=1,s>Uf)throw new Error(`tkr-daemon unreachable at ${t}`);if(kw())throw new Error(`tkr-daemon spawn on cooldown (see ${hi()})`);await wo();try{await vw(n),o=!0}catch(c){throw ww(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]===os&&(f=p);if(f<0)return;let d=[];for(let p of jf(a.slice(0,f+1)))d.push(p);a=a.slice(f+1);for(let p of d)if(p)try{let m=JSON.parse(p),k=i.get(m.id);if(!k)continue;clearTimeout(k.timer),i.delete(m.id),k.resolve(m)}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})`))},gw);i.set(c.id,{resolve:f,reject:d,timer:p}),r.write(ai(c))})}let u={filter:async(c,f,d)=>{let p=await l({id:qn(),op:"filter",cmd:c.slice(0,2048),plan:f,...d&&d.length>0?{allowed:d.slice(0,512)}:{},installId:n});if(!p.ok)return null;let m=Ff.safeParse(p.data);return m.success?m.data.filter:null},ping:async()=>{let c=await l({id:qn(),op:"ping"});if(!c.ok)throw new Error(c.err);return c.data},reload:async()=>{let c=await l({id:qn(),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&&_a(ge,f.version))throw new Error(`newer daemon ${f.version} already running`);c=f.version!==ge}catch(f){throw u.close(),f}if(c){try{await Ew(e.socketPath?{socketPath:e.socketPath}:{})}catch{}u.close();let f=await Tw(t,2e3);if(await wo(),!f)throw new Error("stale daemon still running after shutdown request");return gi({...e,skipVersionCheck:!0})}}return u}var Jf,gw,Uf,yw,bw,Zf=y(()=>{"use strict";Hf();xo();B();Ye();No();Bt();Jf=500,gw=3e3,Uf=1,yw=6e4,bw=256*1024});async function Rw(){if(tn)return tn;if(Xn)return Xn;let e=gi().then(t=>{if(Xn===e)return tn=t,t;try{t.close()}catch{}return null}).catch(()=>null);return Xn=e,e}async function Aw(){return bi||(bi=!0,yi=await hr()??Gt()),yi}async function Gf(e,t,n){let r=await Aw();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 $w(e){return e?{...e,matchRegex:new RegExp(e.match_command)}:null}function as(e){ko(async(t,n)=>{let r=e==="free"?"trial":e,s=n??Kt(void 0),o=await Rw();if(!o)return Gf(t,r,s);try{let i=await o.filter(t,r,s?[...s]:void 0);return!i||s&&!s.has(ce(i.slug))?null:$w(i)}catch{return Gf(t,r,s)}})}function ls(){if(ko(null),tn)try{tn.close()}catch{}tn=null,Xn=null,yi=null,bi=!1}var tn,Xn,yi,bi,ki=y(()=>{"use strict";Zf();Ln();We();Rn();Wt();tn=null,Xn=null;yi=null,bi=!1});var nn,us=y(()=>{"use strict";nn="[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 Qf,mkdir as Ow,readFile as sP,writeFile as Kf,stat as oP,readdir as iP,rm as Wf,rename as Cw}from"node:fs/promises";import{existsSync as Iw,readFileSync as Pw,realpathSync as Nw}from"node:fs";import{createHash as Dw}from"node:crypto";import{dirname as Vf,join as Mw,resolve as Yf}from"node:path";function Bw(){try{let e=JSON.parse(Pw(ka(),"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 Uw(e,t,n=process.env){let r=Number(n[e]);return Number.isFinite(r)&&r>0?r:t}function zw(e){return`${Ls(e)}${Hw}`}async function qf(e){await Ow(e,{recursive:!0,mode:448});try{await Qf(e,448)}catch{}}function Jw(e=process.cwd()){let t;try{t=Nw(Yf(e))}catch{t=Yf(e)}for(let n=t;;n=Vf(n)){if(Iw(Mw(n,".git")))return n;if(Vf(n)===n)return t}}function Zw(e){return e===""?[]:(e.endsWith(`
|
|
102
108
|
`)?e.slice(0,-1):e).split(`
|
|
103
|
-
`)}async function
|
|
104
|
-
`).map(o=>o.replace(/\r$/,"")).filter(o=>
|
|
105
|
-
`).map(o=>
|
|
106
|
-
`)}async function
|
|
107
|
-
[tkr restore ${i}]`;if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(s("0".repeat(16)),"utf8"))return t;if(r.raw){let i=await
|
|
108
|
-
[tkr restore ${s}]`:t}var
|
|
109
|
-
`);
|
|
110
|
-
\u2026 (output truncated at ${
|
|
111
|
-
\u2026 (stderr truncated at ${
|
|
109
|
+
`)}async function Gw(e,t,n=process.env,r={}){if(xe()||!jw.test(e))return!1;t=ec(t);let s=Buffer.byteLength(t,"utf8");if(s>Uw("TOKMIZER_CCR_ENTRY_MAX_BYTES",Fw,n))return!1;let o=Ls(e),i=`${o}.tmp-${process.pid}-${process.hrtime.bigint()}`;try{if(await qf(x()),await qf(Ms()),xe())return!1;if(await Kf(i,t,{mode:384}),await Qf(i,384),xe())return await Wf(i,{force:!0}),!1;await Cw(i,o)}catch{try{await Wf(i)}catch{}return!1}let a={at:Date.now(),bytes:s,lines:Zw(t).length,partial:r.partial===!0,...r.label?{label:r.label.slice(0,40)}:{},project:Jw(r.cwd)};try{await Kf(zw(e),JSON.stringify(a),{mode:384})}catch{}return!0}function ed(e){let t=e.TOKMIZER_CCR_DISABLED;return t==="1"||t==="true"||xe()||Bw().disabled===!0}function Ne(e,t){let n=e.replace(Kw,"> ");if(!n.includes("[tkr:")&&!n.includes("[same output as "))return n;let r=t==null?null:t.split(`
|
|
110
|
+
`).map(o=>o.replace(/\r$/,"")).filter(o=>Xf.test(o)),s=o=>{if(r==null)return!1;let i=Ww.find(a=>a(o));return i!=null&&!r.some(i)};return n.split(`
|
|
111
|
+
`).map(o=>Xf.test(o)&&!s(o)?`> ${o}`:o).join(`
|
|
112
|
+
`)}async function _i(e,t,n,r){let s=Dw("sha256").update(e).digest("hex").slice(0,16);return await Gw(s,e,r,{partial:t,label:n})?s:null}async function rn(e,t,n=process.env,r={}){if(t=Ne(t,r.raw),ed(n)||!e)return t;let s=i=>`
|
|
113
|
+
[tkr restore ${i}]`;if(Buffer.byteLength(e,"utf8")<=Buffer.byteLength(s("0".repeat(16)),"utf8"))return t;if(r.raw){let i=await _i(r.raw,!1,r.label,n);if(i)return`${t}${s(i)}`}let o=await _i(e,!0,r.label,n);return o?`${t}${s(o)}`:t}async function cs(e,t,n=process.env,r={}){if(t=Ne(t,e),ed(n)||!e)return t;let s=await _i(e,!1,r.label,n);return s?`${t}
|
|
114
|
+
[tkr restore ${s}]`:t}var Lw,mP,hP,Fw,jw,Hw,gP,Kw,Xf,Ww,wi=y(()=>{"use strict";Dr();us();B();jn();Lw=1440*60*1e3,mP=30*Lw,hP=200*1024*1024,Fw=8*1024*1024,jw=/^[0-9a-f]{8,64}$/i,Hw=".meta",gP=["usage: tkr restore <hash> [--lines a:b] [--grep pattern]"," tkr restore --list [--all-projects]"," tkr restore --grep <pattern> [--all-projects]",""].join(`
|
|
115
|
+
`);Kw=/^(?=\[tkr |\[tokmizer\])/gm,Xf=/^\[(?:tkr:|same output as )/,Ww=[e=>e===nn,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 id={};gn(id,{CAPTURING_ENV:()=>Si,kickBackgroundEnroll:()=>fs,processCapturedOutput:()=>ds,resolveExecTimeoutMs:()=>sd,runWrapped:()=>ix,signalNumber:()=>od,underCapturingExec:()=>nx});import{existsSync as td,readFileSync as Vw,writeFileSync as Yw,mkdirSync as qw}from"node:fs";import{join as Xw}from"node:path";import{fileURLToPath as Qw}from"node:url";import{StringDecoder as ex}from"node:string_decoder";function nx(e=process.env){return e[Si]==="1"}function rd(e,t){let n=new ex("utf8"),r=n.write(Buffer.concat(e));return t?r:r+n.end()}function fs(){try{if(!En()||!td(va()))return;let e=process.env.TOKMIZER_TKR_BIN||Qw(new URL("../bin/tkr.js",import.meta.url));if(!Se()&&!td(e))return;let t=Xw(x(),"enroll-kick");try{let o=Number(Vw(t,"utf8"));if(Number.isFinite(o)&&Date.now()-o<tx)return}catch{}qw(x(),{recursive:!0}),Yw(t,String(Date.now()));let[n,...r]=Un(e);(0,xi.default)(n,[...r,"heartbeat"],{detached:!0,stdio:"ignore"}).unref()}catch{}}function sd(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 od(e){return sx[e]??15}function ox(e){let t=Dn(e);if(t===null)return!1;let[n,...r]=je(t).split(/\s+/);return/^(?:cat|head|nl)(?:\.exe)?$/i.test(n?.split(/[\\/]/).pop()??"")&&r.some(s=>s!==""&&!s.startsWith("-"))}async function ix(e){let[t,...n]=e;if(!t)throw new Error("tkr-exec: missing command");let r=xe(),s=(0,xi.default)(t,n,{stdio:["inherit","pipe","pipe"],env:{...Mf(),[Si]:"1"}}),o=!1;s.on("spawn",()=>{o=!0});let i=E=>{try{s.kill(E)}catch{}},a=()=>i("SIGINT"),l=()=>i("SIGTERM");process.on("SIGINT",a),process.on("SIGTERM",l);let u=[],c=[],f=0,d=0,p=!1,m=!1;s.stdout?.on("data",E=>{if(f>=sn){p=!0;return}let I=sn-f,D=E.length>I?E.subarray(0,I):E;u.push(D),f+=D.length,E.length>I&&(p=!0)}),s.stderr?.on("data",E=>{if(d>=sn){m=!0;return}let I=sn-d,D=E.length>I?E.subarray(0,I):E;c.push(D),d+=D.length,E.length>I&&(m=!0)});let k,g,T;try{T=await new Promise((E,I)=>{s.on("error",D=>{k&&clearTimeout(k),o?E(1):I(D)}),s.on("close",(D,j)=>{k&&clearTimeout(k),E(D??(j?128+od(j):0))}),k=setTimeout(()=>{s.kill("SIGTERM"),g=setTimeout(()=>s.kill("SIGKILL"),2e3)},rx),k.unref?.()})}finally{k&&clearTimeout(k),g&&clearTimeout(g),process.off("SIGINT",a),process.off("SIGTERM",l)}let S=rd(u,p),O=rd(c,m);return ds({argv:e,stdout:S,stderr:O,exitCode:T,truncated:p,stderrTruncated:m},{yolo:r,env:process.env,onMissingState:fs})}async function ds({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?`
|
|
116
|
+
\u2026 (output truncated at ${sn/1048576}MB)`:"",p=o?`
|
|
117
|
+
\u2026 (stderr truncated at ${sn/(1024*1024)}MB)`:"",m=()=>{let k=t+d,g=Buffer.byteLength(k,"utf8");return{stdout:k,stderr:n+p,code:r,filterId:null,rawBytes:g,filteredBytes:g,truncated:s}};try{let k=await xt();k||u?.();let g=await He();if(!g.enabled)return m();let T=a.CLAUDE_CODE_SESSION_ID;T&&k?.token&&Jr(T,{tool:"Bash",target:e.join(" "),...r!==0?{fail:1}:{}});let S=k?Nr(k):null,O=k?Kt(k.allowedFilters,Pr(k)):null,E=new Set(g.filters.disabled.map(ce)),I=O&&E.size>0?new Set([...O].filter(C=>!E.has(C))):O,D=e.join(" ");k&&!l&&as(S);let j=await Ve(D,t,I,{verbosity:g.outputVerbosity,resolver:l,yolo:i,exitCode:r}),z=Ne(n,n),N=0,W=0;if((i||r===0)&&Buffer.byteLength(n,"utf8")>=(i?1:nd)){let C=await Ve(D,n,I,{verbosity:g.outputVerbosity,resolver:l,yolo:i,exitCode:r});if(z=Ne(C.output,n),!i&&C.output!==n)try{z=await rn(C.droppedTail??null,C.output,a,{raw:o?null:n,label:Tt(D)})}catch{}N=C.rawBytes,W=C.filteredBytes}else if(!i&&r!==0&&Buffer.byteLength(n,"utf8")>=nd){let C=await Ve(D,n,I,{verbosity:g.outputVerbosity,resolver:l,exitCode:r});if(C.failureSummary){try{z=await rn(C.droppedTail??null,C.output,a)}catch{z=Ne(C.output,n)}N=C.rawBytes,W=C.filteredBytes}}let de=!i&&j.output!==t&&ox(D)?`${j.output}${j.output.endsWith(`
|
|
112
118
|
`)?"":`
|
|
113
|
-
`}${
|
|
114
|
-
`).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}`;
|
|
119
|
+
`}${nn}`:j.output,ne=Ne(de,t);if(!i&&j.filteredBytes<j.rawBytes)try{ne=new RegExp(wr.source,"m").test(j.output)?await cs(t,de,a,{label:Tt(D)}):await rn(j.droppedTail??null,de,a,{raw:s?null:t,label:Tt(D)})}catch{}!s&&t.length>0&&Buffer.byteLength(ne,"utf8")>=Buffer.byteLength(t,"utf8")&&(ne=Ne(t,t));let J=ne+d,Z=z+p,U=ss(a).host,K=zr(j.rawBytes+Buffer.byteLength(n,"utf8"),Buffer.byteLength(J,"utf8")+Buffer.byteLength(Z,"utf8"),rs(U)),re=!1,nt=async()=>{if(!re){re=!0;try{Br(K.raw,K.filtered,void 0,!1,U,"sh",Tt(D),"cwd"in f?f.cwd:process.cwd(),Ur(j)),await jr({cmd:D,filterId:j.filterId,rawBytes:j.rawBytes,filteredBytes:j.filteredBytes,plan:S}),await Lr({cmd:D,tokensSaved:Math.max(0,Math.round((K.raw-K.filtered)/4)),rawTokens:Math.round(K.raw/4),optimized:j.filterId!=null,telemetryOptIn:g.telemetryOptIn&&(!c||(await He()).telemetryOptIn),sessionId:T,host:U})}catch{}}};return c?c(nt):await nt(),{stdout:J,stderr:Z,code:r,filterId:j.filterId,rawBytes:j.rawBytes+N,filteredBytes:j.filteredBytes+W,truncated:s}}catch{return m()}finally{l||ls()}}var xi,sn,nd,tx,Si,rx,sx,vi=y(()=>{"use strict";xi=_p(Qu(),1);Ln();We();Wt();vn();B();Io();Lo();Fr();jo();Ho();qt();Yn();Lf();ki();wi();Jt();us();mo();jn();Ye();Tn();sn=10*1024*1024,nd=1024,tx=6e4,Si="TOKMIZER_EXEC_CAPTURING";rx=sd(process.env),sx={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}});var Mi={};gn(Mi,{FOLD_MARKER_RE:()=>wr,captureForRestore:()=>rn,captureOriginalForRestore:()=>cs,closeDaemonResolver:()=>ls,countedSaving:()=>zr,gatingPlan:()=>Nr,graceExceeded:()=>Pr,installDaemonResolver:()=>as,loadSettingsCache:()=>He,neutralizeMarkers:()=>Ne,processOutput:()=>Ve,recordEvent:()=>jr,recordStat:()=>Br,recordTelemetry:()=>Lr,resolveAllowedFilters:()=>Kt,statCmdLabel:()=>Tt,statOutcome:()=>Ur});var Li=y(()=>{"use strict";Ln();wi();Jt();Wt();Io();Lo();Fr();jo();ki();qt()});Rn();Ln();Wt();import{mkdirSync as IE,readFileSync as Wi,realpathSync as PE,rmSync as Es,writeFileSync as NE}from"node:fs";import{join as Gi}from"node:path";xo();B();Bt();import{randomBytes as SE,randomUUID as ap}from"node:crypto";import{lstatSync as vE,mkdirSync as EE,realpathSync as TE,renameSync as RE,rmSync as AE,writeFileSync as $E}from"node:fs";import{dirname as OE,join as vs}from"node:path";wt();Rn();B();jn();vi();import{timingSafeEqual as zi}from"node:crypto";import{chmodSync as mE,lstatSync as hE,realpathSync as gE}from"node:fs";import{dirname as yE}from"node:path";import{createServer as bE}from"node:net";Wr();_r();import{spawnSync as Xx}from"node:child_process";import{existsSync as an,readFileSync as er,readdirSync as hs}from"node:fs";import{homedir as $t}from"node:os";import{fileURLToPath as Qx}from"node:url";import{dirname as xd,join as F,resolve as eS}from"node:path";B();import{appendFileSync as fx,chmodSync as dx,mkdirSync as px,existsSync as mx,readFileSync as GP,rmSync as KP}from"node:fs";import{dirname as hx,join as gx}from"node:path";import{readFileSync as ax,renameSync as lx,statSync as ux,writeFileSync as cx}from"node:fs";function ad(e,t,n){try{if(ux(e).size<=t)return;let r=ax(e,"utf8").split(`
|
|
120
|
+
`).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}`;cx(i,s.length?`${s.join(`
|
|
115
121
|
`)}
|
|
116
|
-
`:"",{mode:384}),
|
|
117
|
-
`,{mode:384}),
|
|
118
|
-
`)){let s=
|
|
119
|
-
`,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?
|
|
120
|
-
`||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function
|
|
122
|
+
`:"",{mode:384}),lx(i,e)}catch{}}var yx="usage.jsonl";var ld=2*1024*1024;function bx(){return gx(x(),yx)}function le(e,t,n=bx()){try{let r=hx(n);mx(r)||px(r,{recursive:!0,mode:448});let s=e.replace(/[^A-Za-z0-9._-]/g,"").slice(0,64)||"unknown";fx(n,`{"t":${Math.floor(Date.now()/1e3)},"s":"${s}","o":${t?1:0}}
|
|
123
|
+
`,{mode:384}),dx(n,384),ad(n,ld,ld/2)}catch{}}Ye();B();import{execFileSync as jx}from"node:child_process";import{mkdirSync as Hx,readFileSync as pd,renameSync as Bx,statSync as Ux,writeFileSync as zx}from"node:fs";import{join as md}from"node:path";import{closeSync as kx,openSync as _x,readSync as wx,readdirSync as xx,readFileSync as Sx,statSync as cd}from"node:fs";import{homedir as vx}from"node:os";import{isAbsolute as Ex,join as ps,resolve as Tx}from"node:path";var Rx=/^[A-Za-z0-9._+@%:,/-]+$/,Ax=new Set(["7f454c46","feedface","feedfacf","cefaedfe","cffaedfe","cafebabe","bebafeca"]),$x=32,Ox=4*1024*1024;function Ti(e){let t;try{t=_x(e,"r");let n=Buffer.alloc(4),r=wx(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&&kx(t)}}function Qn(e,t=process.platform){try{let n=cd(e);if(!n.isFile())return!1;if(t==="win32")return!0;if((n.mode&73)===0)return!1;let r=Ti(e);return r==="#!"||r!==null&&Ax.has(r)}catch{return!1}}function Cx(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 on(e,t,n,r=process.platform){if(!Rx.test(e))return!1;let s=r==="win32";if(e.includes("/"))return Qn(Tx(t??process.cwd(),e),r);if(!n)return!1;let o=s?Cx(e):[e];for(let i of n.split(s?";":":"))if(!(!i||!Ex(i))){for(let a of o)if(Qn(ps(i,a),r))return!0}return!1}var Ix=/^eval \$'([^\s'()=]+) \(\) /,Px=/^([^\s'"()=]+) \(\) \{$/,Nx=/^alias -- ([^\s=]+)=(.*)$/,Dx=/^# (?:Shell Options|Aliases|Shopt|Check for |Shadow )/,Mx=/^export PATH=(.*)$/,Lx=/^(?:--colou?r(?:=\S+)?|-G)$/;function ud(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 Fx(e,t){let n="";for(let r of e.split(`
|
|
124
|
+
`)){let s=Mx.exec(r);if(s&&n!=="# Functions"){let o=ud(s[1].trim());/[$`\\]/.test(o)||t.paths.push(o);continue}if(r.startsWith("# ")&&(n!=="# Functions"||Dx.test(r))){n=r;continue}if(n==="# Functions"){let o=Ix.exec(r)??Px.exec(r);o&&t.functions.add(o[1])}else if(n==="# Aliases"){let o=Nx.exec(r);o&&t.aliases.set(o[1],ud(o[2].trim()))}}}function Ei(e){return e?.code==="ENOENT"}function fd(e){let t={functions:new Set,aliases:new Map,paths:[],uncertain:!1},n=ps(e||ps(vx(),".claude"),"shell-snapshots"),r=[];try{for(let s of xx(n)){if(!s.startsWith("snapshot-")||!s.endsWith(".sh"))continue;let o=ps(n,s);try{let i=cd(o);i.isFile()&&r.push({path:o,mtime:i.mtimeMs,size:i.size})}catch(i){Ei(i)||(t.uncertain=!0)}}}catch(s){return Ei(s)||(t.uncertain=!0),t}r=r.sort((s,o)=>o.mtime-s.mtime).slice(0,$x);for(let s of r)try{if(s.size>Ox)throw new Error("snapshot too large");Fx(Sx(s.path,"utf8"),t)}catch(o){Ei(o)||(t.uncertain=!0)}return t}function dd(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=>Lx.test(s))}var Jx="exec-probe.json",Zx=6e4;function Gx(){return md(x(),Jx)}function Kx(e){try{let t=JSON.parse(pd(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 Wx(e,t){try{Hx(md(e,".."),{recursive:!0,mode:448});let n=`${e}.${process.pid}.tmp`;zx(n,JSON.stringify(t),{mode:384}),Bx(n,e)}catch{}}function Vx(e){try{return jx(e,["--native-check"],{encoding:"utf8",timeout:2e3,maxBuffer:1024,stdio:["ignore","pipe","ignore"],windowsHide:!0}).startsWith("tokmizer-native ")}catch{return!1}}function Yx(e,t){try{let r=pd(e,"utf8").split(`
|
|
125
|
+
`,1)[0].slice(2).trim().split(/\s+/),s=r[0]??"";return s==="/usr/bin/env"?on(r[1]??"",void 0,t):Qn(s)}catch{return!1}}function qx(e,t,n){try{let r=Ux(e);return[e,r.size,r.mtimeMs,r.ino,r.mode,t?n??"":""].join("|")}catch{return`${e}|missing`}}function Ri(e,t=process.platform,n=process.env.PATH,r=Gx(),s=Date.now()){let o=t!=="win32"&&Ti(e)==="#!",i=qx(e,o,n),a=Kx(r);if(a?.key===i&&(a.ok||s-a.at<Zx))return a.ok;let l=Qn(e,t)&&(o?Yx(e,n):Vx(e));return Wx(r,{key:i,ok:l,at:s,skipped:(a?.skipped??0)+(l?0:1)}),l}var tS=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"]),nS=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"]),hd=new Set(["sh","bash","zsh","dash","ksh","fish","python","python3","python2","node","ruby","perl","php","awk","sed","deno","bun"]),gd="(?:dev|start|serve|watch|preview)",rS=new RegExp(`^(?:\\S*/)?(?:bun\\s+(?:install|i|add|remove|rm|update|outdated|audit|test|build|pm|x)(?:\\s|$)|bun\\s+run\\s+(?!${gd}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\s|$)|deno\\s+(?:test|lint|fmt|check|compile|install|info|doc|bench|outdated)(?:\\s|$)|deno\\s+task\\s+(?!${gd}(?:\\s|$))[A-Za-z0-9:_-]+(?:\\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)`),sS=/(?:^|\s)--watch(?:\s|=|$)/;function oS(e){return rS.test(e)&&!sS.test(e)}var iS=/^((?:\S*\/)?(sh|bash|zsh|dash|ksh|fish)\s+(-[elux]*c[elux]*)\s+)(['"])/,aS=/[()$]|(?:^|[;&|\n]\s*)(?:and|or|not|begin|end|if|else|switch|case|while|for|function|return)(?:\s|;|$)/,Sd=3;function vd(e){let t=iS.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&&aS.test(a)?null:{script:a,start:s,end:o,quote:r}}var lS=new Set(["cd","export","set","unset","source",".","true",":","pushd","popd"]);function uS(e){return ln(e).filter(n=>{if(n.kind!=="cmd"||n.unsafe)return!1;let r=Td(n.text);return r!==""&&!lS.has(r)&&!$i.test(r)}).length>1}function cS(e,t,n,r,s){if(n>=Sd)return null;let o=vd(e);if(!o)return null;let{script:i,start:a,end:l,quote:u}=o,c=[],f=Rd(i,t,n+1,r,k=>c.push(k));if(f===i||u==='"'&&/["$`]/.test(f))return null;let d=u==="'"?f.replace(/'/g,"'\\''"):f,p=`${e.slice(0,a)}${d}${e.slice(l)}`,m=uS(i);if(s)for(let k of m?[e,...c]:c)s(k);return m?`${t} ${p}`:p}var yd=/(?:^|\s)(?:--follow|-[0-9a-zA-Z]*f[a-zA-Z]*)(?:\s|=|$)/,fS=new Set(["docker","podman","kubectl","nerdctl","docker-compose","stern","flyctl"]);function dS(e,t){let n=gs(t);return n==="tail"||n==="journalctl"?yd.test(e):n==="stern"?!0:fS.has(n)?/\blogs?\b/.test(e)&&yd.test(e):!1}var $i=/^[A-Za-z_][A-Za-z0-9_]*\+?=/,pS=/^[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/,mS=/(?:^|[;&|\n({])\s*[A-Za-z_][A-Za-z0-9_-]*\s*\(\s*\)/;function gs(e){let t=e.lastIndexOf("/");return t===-1?e:e.slice(t+1)}function Ed(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 bd(e){let t=Ed(e);if(!t)return!0;for(let n=0;n<e.length;n++)if(t[n]&&e[n]===">")return!0;return!1}function ln(e){let t=Ed(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.replace(/\s+$/,""),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===`
|
|
126
|
+
`||a==="|"){i(a,1);continue}}r+=a,s+=1}return o(),n}function Td(e){return e.trim().split(/\s+/)[0]??""}function Ee(e,t=process.platform){try{let n=xd(Qx(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=F(n,"..","bin","tkr-exec.exe");if(an(l))return Ri(l,t)?`'${l.replace(/\\/g,"/").replace(/'/g,"'\\''")}'`:null}let o=F(n,"..","bin","tkr-exec"),i=!r&&an(o);if(i&&!Ri(o,t))return null;if(!r&&process.env.TOKMIZER_STABLE_RUN!=="0"){let l=Lc(F(n,"..","bin","tkr-exec.js"));if(l&&(i||an(F(n,"..","bin","tkr-exec.js"))))return`${s}'${l.replace(/'/g,"'\\''")}'`}if(i)return`${s}'${o.replace(/'/g,"'\\''")}'`;if(Se()){let l=r?process.execPath.replace(/\\/g,"/"):process.execPath;return`${s}'${l.replace(/'/g,"'\\''")}' exec`}let a=F(n,"..","bin","tkr-exec.js");return an(a)?`${s}node '${a.replace(/'/g,"'\\''")}'`:null}catch{return null}}function Oi(e,t="tkr-exec",n=()=>!0,r){return Rd(e,t,0,n,r)}function Rd(e,t,n,r,s){if(e.includes("<<")||mS.test(e))return e;let o=ln(e),i=[];for(let a=0;a<o.length;a++){let l=o[a];if(l.kind==="sep"||l.unsafe){i.push(l.text);continue}let u=l.text.trim();if(!u){i.push(l.text);continue}let c=Td(u),f=o[a+1],d=f?.kind==="sep"&&(f.text==="|"||f.text==="|&"),p=f?.kind==="sep"&&f.text==="&",m=!d&&!p&&!bd(l.text)&&!l.text.includes("<(")&&!l.text.includes(">(")?cS(u,t,n,r,s):null;if(m!==null){i.push(`${l.text.match(/^\s*/)?.[0]??""}${m}${l.text.match(/\s*$/)?.[0]??""}`);continue}if(u===t||u.startsWith(t)&&/^\s/.test(u.slice(t.length))||tS.has(c)||nS.has(c)||(hd.has(c)||hd.has(gs(c)))&&!oS(u)||$i.test(c)||c.startsWith("(")||c.startsWith("#")||c.startsWith("<")||c.startsWith(">")||pS.test(u)||dS(u,c)||c.endsWith(")")||d||p||bd(l.text)||l.text.includes("<(")||l.text.includes(">(")||c==="node"&&u.includes("tkr-exec.js")||!r(c)){i.push(l.text);continue}let k=l.text.match(/^\s*/)?.[0]??"",g=l.text.match(/\s*$/)?.[0]??"";s?.(u),i.push(`${k}${t} ${u}${g}`)}return i.join("")}var hS=new Set(["command","workdir","timeout_ms","yield_time_ms","max_output_tokens","shell","login","tty","description"]),gS=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"]),yS=new Set(["log","diff","show","status","blame","ls-files","rev-parse","describe","shortlog"]),bS={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/},ms=["test","run test","run build","run lint","run typecheck"],kS={npm:new Set(ms),pnpm:new Set([...ms,"build","lint","typecheck"]),yarn:new Set([...ms,"build","lint","typecheck"]),bun:new Set(ms),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"])},_S=new Set(["pytest","tsc","vitest","jest","eslint","mypy"]);function Ad(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 ln(e)){if(r.kind==="sep")continue;if(r.unsafe)return!1;let s=n<Sd?vd(r.text.trim()):null;if(s){if(!Ad(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=>$i.test(u)))return!1;let i=gs(o[0]);if(i!==o[0])return!1;let a=bS[i];if(a&&o.slice(1).some(u=>a.test(u)))return!1;if((i==="git"?yS.has(o[1]??""):gS.has(i))||t&&_S.has(i))continue;let l=t?kS[i]:void 0;if(!(l&&(l.has(o[1]??"")||o[1]==="run"&&l.has(`run ${o[2]??""}`))))return!1}return!0}function $d(e,t,n=Ee(t),r=le,s=ys(),o=process.env.PATH,i=nr){if(!q(e)||e.tool_name!=="Bash"||t==="claude-code"&&xS(i()))return null;let a=e.tool_input;if(!q(a)||a.run_in_background)return null;let l=a.command;if(typeof l!="string"||!l||t==="codex"&&Object.keys(a).some(k=>!hS.has(k)))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=Ld(l,{host:t,sessionId:f,cwd:c,claudeDirs:s,pathEnv:o,permissionMode:d},n,r);if(!p)return null;let m={...a,command:p.command};return JSON.stringify({hookSpecificOutput:t==="codex"?{hookEventName:"PreToolUse",permissionDecision:"allow",updatedInput:m}:p.allowedBy?{hookEventName:"PreToolUse",permissionDecision:"allow",permissionDecisionReason:`Tokmizer: allowed by your rule ${p.allowedBy}`,updatedInput:m}:p.ask?{hookEventName:"PreToolUse",permissionDecision:"ask",permissionDecisionReason:"Tokmizer shortens this command's output; nothing else changes.",updatedInput:m}:{hookEventName:"PreToolUse",updatedInput:m}})}var wS=/(?:^|\s)--(?:disallowedTools|disallowed-tools|settings|setting-sources)(?:[=\s]|$)/;function nr(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=Xx("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 xS(e){return e===null||wS.test(e)}function SS(e,t){if(!an(e))return"missing";try{let n=er(e,"utf8");return JSON.parse(t?Od(n):n)}catch{return"unreadable"}}function Od(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]!==`
|
|
121
127
|
`;)r++;t+=`
|
|
122
|
-
`}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 Vn(e){let t=[],n=qw(e);for(;;){t.push(n);let r=Kf(n);if(r===n)return t;n=r}}function _x(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[F(e,"managed-settings.json")];try{for(let n of rs(F(e,"managed-settings.d")))n.endsWith(".json")&&t.push(F(e,"managed-settings.d",n))}catch{return t}return t}function qn(e,t,n,r){let s=[];for(let o of e){let i=kx(o,t);if(i!=="missing"&&(i==="unreadable"||!q(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function Kn(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function os(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function wx(e,t){let n=g=>[F(g,"settings.json"),F(g,"settings.local.json")],r=g=>n(F(g,".claude")),s=F(Et(),".claude"),o=t.configDir||s,i=[[_x(),"managed"],[[F(o,"settings.json")],"loaded"],[[F(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[Vn(e).flatMap(r),"extra"]],a=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},u={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,f="managed",d=(g,T)=>{let S=g.permissions;if(f==="managed"&&(g.allowManagedPermissionRulesOnly===!0||q(S)&&S.allowManagedPermissionRulesOnly===!0)&&(c=!0),S===void 0)return!0;if(!q(S))return!1;for(let O of["deny","ask","allow"]){let E=Kn(S[O]);if(!E)return!1;for(let I of E){let N=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(I);if(N)if(O!=="allow")T.push(Tt((N[1]??"*").replace(/:\*$/," *")));else if(N[1]===void 0||N[1].trim()==="*")u[f]=!0;else{a.push(Tt(N[1].replace(/:\*$/," *")));let j=Bx(N[1]);j&&l[f].push({rule:I.trim(),matches:j})}}}return!0},p=[];for(let[g,T]of i){f=T;let S=qn(g,!1,d,!0);if(S==="unreadable")return"unreadable";p.push(...S.matchers)}let m=u.managed||(u.loaded||u.loadedLocal)&&!c,k=[...l.managed,...c?[]:l.loaded];return{matchers:[...p,...m?[]:a],complete:!0,allow:a,allowsEverything:m,guards:p,trustedAllow:k}}function xx(e){let t=[F(Et(),".cursor","cli-config.json"),...Vn(e).map(n=>F(n,".cursor","cli.json"))];return qn(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!q(s))return!1;let o=Kn(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(Tt(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function Sx(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var nd=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function vx(e,t){let n=e.tools;if(n!==void 0&&!q(n))return!1;let r=[Kn(e.excludeTools),Kn(q(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=nd.exec(o);i&&t.push(Tt(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function Jf(e){try{return JSON.parse(e)}catch{return null}}function Ex(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]??Jf(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?Jf(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function Tx(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=Ex(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==="*"||nd.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(Tt(`${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}))||is(u,c))}}return!0}function Zf(e){try{return rs(e).filter(t=>t.endsWith(".toml")).map(t=>F(e,t))}catch{return[]}}function Rx(e){let t=Sx(),n=[F(t,"system-defaults.json"),F(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,F(Et(),".gemini","settings.json"),...Vn(e).map(s=>F(s,".gemini","settings.json"))].filter(s=>!!s),r=qn(n,!0,vx,!1);if(r==="unreadable")return r;for(let s of[...Zf(F(Et(),".gemini","policies")),...Zf(F(t,"policies"))]){let o;try{o=Gn(s,"utf8")}catch{return"unreadable"}if(!Tx(o,r.matchers))return"unreadable"}return r}function ci(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!q(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(!q(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(Tt(s.replace(/\?/g,"*")))}}return!0}function Gf(e,t){if(e.permissions!==void 0||!ci(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!q(r))return!1;for(let s of Object.values(r))if(q(s)&&(s.permissions!==void 0||!ci(s.permission,t)))return!1}}return!0}function Ax(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=rs(F(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(Gn(F(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function $x(e){let t=F(process.env.XDG_CONFIG_HOME||F(Et(),".config"),"opencode"),n=Vn(e),r=[t,...n.map(a=>F(a,".opencode"))];if(Ax(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>F(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>F(a,l)),...s.slice(0,2).map(l=>F(a,".opencode",l))])].filter(a=>!!a),i=qn(o,!0,Gf,!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(td(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?ci(l,i.matchers):q(l)&&Gf(l,i.matchers)))return"unreadable"}return i}function Ox(){return qn([F(Et(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!q(n))return!1;for(let r of["deny","ask"]){let s=Kn(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(Tt(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>is(l,u))}}return!0},!1)}function Cx(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 rd(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=rd(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 sd(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(pi).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>is(n,r)}function Ix(e,t){let n=Cx(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]=rd(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=sd(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function Px(e){if(!Zn(e))return[];try{return rs(e).filter(t=>t.endsWith(".rules")).sort().map(t=>F(e,t))}catch{return"unreadable"}}function Nx(){return process.platform==="win32"?F(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function Dx(e){if(!(!q(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 Mx(e,t){let n;try{n=vn(e)}catch{return!1}if(n.rules===void 0)return!0;if(!q(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(!q(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map(Dx);if(o.some(a=>a===void 0))return!1;let i=sd(o);if(!i)return!1;t.push(i)}return!0}function Lx(e){let t=process.env.CODEX_HOME||F(Et(),".codex"),n=[F(t,"rules"),...Vn(e).map(o=>F(o,".codex","rules"))],r=[],s=null;try{s=Gn(Nx(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!Mx(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=Px(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=Gn(a,"utf8")}catch{return"unreadable"}if(!Ix(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function q(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function pi(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Fx(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(pi).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var jx=512;function Hx(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(ss)]}function is(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of Hx(t)){if(n.length>jx)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function Tt(e){let t=Fx(e);return n=>is(t,n)}function Bx(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(`^${pi(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var zx={"claude-code":wx,cursor:xx,"gemini-cli":Rx,opencode:$x,antigravity:Ox,codex:Lx},Ux=new Set(["codex"]),od=/(?:^|[\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 Jx(e,t,n){let r=zx[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function Zx(e,t,n){return e==="unreadable"||od.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Qf(t,!Ux.has(n))}var id=new Set(["default","acceptEdits","dontAsk"]);function ad(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&id.has(t.permissionMode??"")}function Gx(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return s=>e.host!=="claude-code"?en(s,e.cwd,n):(r??=Mf(t.configDir),!en(s,e.cwd,n)&&!r.paths.some(o=>en(s,e.cwd,o))?!1:s.includes("/")||!Lf(s,r))}var Kx=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function Wx(e,t,n){return n.host!=="claude-code"||e==="unreadable"||ad(e,n)||!id.has(n.permissionMode??"")||!Kx.test(t)||od.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}function ld(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??os(),o=Jx(t.host,t.cwd,s),i=Wx(o,e,t),a=i||Zx(o,e,t.host)?di(e,n,Gx(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}:ad(o,t)?{command:a}:null}function Xe(e,t,n,r){return ld(e,t,n,r)?.command??null}B();bn();Bn();Eo();import{existsSync as yS,writeFileSync as bS,appendFileSync as kS,statSync as _S,constants as dd}from"node:fs";import{lstat as wS,open as xS}from"node:fs/promises";import{basename as SS,dirname as vS,isAbsolute as ES,join as yd}from"node:path";B();_e();import{readFileSync as Vx}from"node:fs";import{join as qx}from"node:path";function ud(){if(he())return!1;try{return JSON.parse(Vx(qx(x(),"settings-cache.json"),"utf8")).enabled!==!1}catch{return!0}}B();import{createHash as Yx}from"node:crypto";import{appendFileSync as Xx,chmodSync as Qx,mkdirSync as eS,readFileSync as tS,rmSync as nS,statSync as rS}from"node:fs";import{join as cd}from"node:path";var sS=256*1024,oS=80;function iS(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return cd(x(),"sessions",`${t}.seen`)}function mi(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,oS)}function hi(e,t,n,r){try{let s=iS(e),o=mi(t),i=Yx("sha256").update(n).digest("hex").slice(0,32),a="";try{a=tS(s,"utf8")}catch{}for(let l of a.split(`
|
|
123
|
-
`)){let[u,c,f]=l.split(" ");if(u===o&&c===i)return{cmd:f??""}}
|
|
124
|
-
`,{mode:384}),
|
|
125
|
-
`).filter(i=>r.has(i)||
|
|
128
|
+
`}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 rr(e){let t=[],n=eS(e);for(;;){t.push(n);let r=xd(n);if(r===n)return t;n=r}}function vS(){let e=process.platform==="darwin"?"/Library/Application Support/ClaudeCode":process.platform==="win32"?"C:\\Program Files\\ClaudeCode":"/etc/claude-code",t=[F(e,"managed-settings.json")];try{for(let n of hs(F(e,"managed-settings.d")))n.endsWith(".json")&&t.push(F(e,"managed-settings.d",n))}catch{return t}return t}function sr(e,t,n,r){let s=[];for(let o of e){let i=SS(o,t);if(i!=="missing"&&(i==="unreadable"||!q(i)||!n(i,s)))return"unreadable"}return{matchers:s,complete:r}}function tr(e){return e===void 0?[]:Array.isArray(e)?e.filter(t=>typeof t=="string"):null}function ys(){return{projectDir:process.env.CLAUDE_PROJECT_DIR,configDir:process.env.CLAUDE_CONFIG_DIR}}function ES(e,t){let n=g=>[F(g,"settings.json"),F(g,"settings.local.json")],r=g=>n(F(g,".claude")),s=F($t(),".claude"),o=t.configDir||s,i=[[vS(),"managed"],[[F(o,"settings.json")],"loaded"],[[F(o,"settings.local.json")],"loadedLocal"],[t.configDir?n(s):[],"extra"],[t.projectDir?r(t.projectDir):[],"project"],[rr(e).flatMap(r),"extra"]],a=[],l={managed:[],loaded:[],loadedLocal:[],project:[],extra:[]},u={managed:!1,loaded:!1,loadedLocal:!1,project:!1,extra:!1},c=!1,f="managed",d=(g,T)=>{let S=g.permissions;if(f==="managed"&&(g.allowManagedPermissionRulesOnly===!0||q(S)&&S.allowManagedPermissionRulesOnly===!0)&&(c=!0),S===void 0)return!0;if(!q(S))return!1;for(let O of["deny","ask","allow"]){let E=tr(S[O]);if(!E)return!1;for(let I of E){let D=/^\s*Bash\s*(?:\(([\s\S]*)\))?\s*$/.exec(I);if(D)if(O!=="allow")T.push(Ot((D[1]??"*").replace(/:\*$/," *")));else if(D[1]===void 0||D[1].trim()==="*")u[f]=!0;else{a.push(Ot(D[1].replace(/:\*$/," *")));let j=ZS(D[1]);j&&l[f].push({rule:I.trim(),matches:j})}}}return!0},p=[];for(let[g,T]of i){f=T;let S=sr(g,!1,d,!0);if(S==="unreadable")return"unreadable";p.push(...S.matchers)}let m=u.managed||(u.loaded||u.loadedLocal)&&!c,k=[...l.managed,...c?[]:l.loaded];return{matchers:[...p,...m?[]:a],complete:!0,allow:a,allowsEverything:m,guards:p,trustedAllow:k}}function TS(e){let t=[F($t(),".cursor","cli-config.json"),...rr(e).map(n=>F(n,".cursor","cli.json"))];return sr(t,!0,(n,r)=>{let s=n.permissions;if(s===void 0)return!0;if(!q(s))return!1;let o=tr(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(Ot(u===-1?`${l} *`:`${l.slice(0,u)} ${l.slice(u+1)}`))}return!0},!1)}function RS(){return process.platform==="darwin"?"/Library/Application Support/GeminiCli":process.platform==="win32"?"C:\\ProgramData\\gemini-cli":"/etc/gemini-cli"}var Cd=/^\s*(?:run_shell_command|ShellTool)\s*(?:\(([\s\S]*)\))?\s*$/;function AS(e,t){let n=e.tools;if(n!==void 0&&!q(n))return!1;let r=[tr(e.excludeTools),tr(q(n)?n.exclude:void 0)];for(let s of r){if(!s)return!1;for(let o of s){let i=Cd.exec(o);i&&t.push(Ot(i[1]===void 0?"*":`${i[1]}*`))}}return!0}function kd(e){try{return JSON.parse(e)}catch{return null}}function $S(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]??kd(`"${r[1]}"`);if(s===null)return null;n.push(s)}return n}if(t.startsWith('"')){let n=/^"((?:\\.|[^"\\])*)"/.exec(t);return n?kd(`"${n[1]}"`):null}if(t.startsWith("'")){let n=/^'([^']*)'/.exec(t);return n?n[1]:null}return t.replace(/\s*#.*$/,"")}function OS(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=$S(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==="*"||Cd.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(Ot(`${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}))||bs(u,c))}}return!0}function _d(e){try{return hs(e).filter(t=>t.endsWith(".toml")).map(t=>F(e,t))}catch{return[]}}function CS(e){let t=RS(),n=[F(t,"system-defaults.json"),F(t,"settings.json"),process.env.GEMINI_CLI_SYSTEM_SETTINGS_PATH,process.env.GEMINI_CLI_SYSTEM_DEFAULTS_PATH,F($t(),".gemini","settings.json"),...rr(e).map(s=>F(s,".gemini","settings.json"))].filter(s=>!!s),r=sr(n,!0,AS,!1);if(r==="unreadable")return r;for(let s of[..._d(F($t(),".gemini","policies")),..._d(F(t,"policies"))]){let o;try{o=er(s,"utf8")}catch{return"unreadable"}if(!OS(o,r.matchers))return"unreadable"}return r}function Ai(e,t){if(e===void 0)return!0;if(typeof e=="string")return e!=="allow"&&t.push(()=>!0),!0;if(!q(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(!q(r))return!1;for(let[s,o]of Object.entries(r))o!=="allow"&&t.push(Ot(s.replace(/\?/g,"*")))}}return!0}function wd(e,t){if(e.permissions!==void 0||!Ai(e.permission,t))return!1;for(let n of["agent","agents","mode"]){let r=e[n];if(r!==void 0){if(!q(r))return!1;for(let s of Object.values(r))if(q(s)&&(s.permissions!==void 0||!Ai(s.permission,t)))return!1}}return!0}function IS(e){for(let t of e)for(let n of["agent","agents","mode","modes"]){let r;try{r=hs(F(t,n))}catch{continue}for(let s of r)try{if(s.endsWith(".md")&&/permission/i.test(er(F(t,n,s),"utf8")))return!0}catch{return!0}}return!1}function PS(e){let t=F(process.env.XDG_CONFIG_HOME||F($t(),".config"),"opencode"),n=rr(e),r=[t,...n.map(a=>F(a,".opencode"))];if(IS(r))return"unreadable";let s=["opencode.json","opencode.jsonc","config.json"],o=[...s.map(a=>F(t,a)),process.env.OPENCODE_CONFIG,...n.flatMap(a=>[...s.slice(0,2).map(l=>F(a,l)),...s.slice(0,2).map(l=>F(a,".opencode",l))])].filter(a=>!!a),i=sr(o,!0,wd,!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(Od(a))}catch{return"unreadable"}if(!(a===process.env.OPENCODE_PERMISSION?Ai(l,i.matchers):q(l)&&wd(l,i.matchers)))return"unreadable"}return i}function NS(){return sr([F($t(),".gemini","antigravity-cli","settings.json")],!0,(e,t)=>{let n=e.permissions;if(n===void 0)return!0;if(!q(n))return!1;for(let r of["deny","ask"]){let s=tr(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(Ot(a==="*"?"*":`${a} *`));continue}let l;try{l=new RegExp(a.slice(6))}catch{return!1}t.push(u=>bs(l,u))}}return!0},!1)}function DS(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 Id(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=Id(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 Pd(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(Ci).join("|")})`)}let n=new RegExp(`^${t.join(" ")}(?= |$)`);return r=>bs(n,r)}function MS(e,t){let n=DS(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]=Id(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=Pd(o.pattern);if(!a)return!1;i!=="allow"&&t.push(a)}return!0}function LS(e){if(!an(e))return[];try{return hs(e).filter(t=>t.endsWith(".rules")).sort().map(t=>F(e,t))}catch{return"unreadable"}}function FS(){return process.platform==="win32"?F(process.env.ProgramData||"C:\\ProgramData","OpenAI","Codex","requirements.toml"):"/etc/codex/requirements.toml"}function jS(e){if(!(!q(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 HS(e,t){let n;try{n=On(e)}catch{return!1}if(n.rules===void 0)return!0;if(!q(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(!q(s)||!Array.isArray(s.pattern)||s.decision!=="prompt"&&s.decision!=="forbidden")return!1;let o=s.pattern.map(jS);if(o.some(a=>a===void 0))return!1;let i=Pd(o);if(!i)return!1;t.push(i)}return!0}function BS(e){let t=process.env.CODEX_HOME||F($t(),".codex"),n=[F(t,"rules"),...rr(e).map(o=>F(o,".codex","rules"))],r=[],s=null;try{s=er(FS(),"utf8")}catch(o){let i=o.code;if(i!=="ENOENT"&&i!=="ENOTDIR")return"unreadable"}if(s!==null&&!HS(s,r))return"unreadable";for(let o of[...new Set(n)]){let i=LS(o);if(i==="unreadable")return"unreadable";for(let a of i){let l;try{l=er(a,"utf8")}catch{return"unreadable"}if(!MS(l,r))return"unreadable"}}return{matchers:r,complete:!1}}function q(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function Ci(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function US(e){let t=e.trim().replace(/\s+/g," "),n=t.endsWith(" *")&&t.length>2,r=(n?t.slice(0,-2):t).split("*").map(Ci).join("[\\s\\S]*");return new RegExp(`^${r}${n?"(?: [\\s\\S]*)?":""}(?= |$)`)}var zS=512;function JS(e){let t=e.replace(/['"\\]/g,"").split(/[\s;&|(){}<>`$]+/).filter(Boolean);return[t,t.map(gs)]}function bs(e,t){if(e.test(t)||e.test(t.trim().replace(/\s+/g," ")))return!0;for(let n of JS(t)){if(n.length>zS)return!0;for(let r=0;r<n.length;r++)if(e.test(n.slice(r).join(" ")))return!0}return!1}function Ot(e){let t=US(e);return n=>bs(t,n)}function ZS(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(`^${Ci(r)}${n?"(?: [\\s\\S]*)?":""}$`);return o=>s.test(o)}var GS={"claude-code":ES,cursor:TS,"gemini-cli":CS,opencode:PS,antigravity:NS,codex:BS},KS=new Set(["codex"]),Nd=/(?:^|[\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 WS(e,t,n){let r=GS[e];return r?r(t??process.cwd(),n):{matchers:[],complete:!1}}function VS(e,t,n){return e==="unreadable"||Nd.test(t.replace(/['"\\]/g,""))||e.matchers.some(r=>r(t))?!1:e.complete||Ad(t,!KS.has(n))}var Dd=new Set(["default","acceptEdits","dontAsk"]);function Md(e,t){return t.host!=="claude-code"||t.permissionMode==="bypassPermissions"?!0:e!=="unreadable"&&e.allowsEverything===!0&&Dd.has(t.permissionMode??"")}function YS(e,t){let n="pathEnv"in e?e.pathEnv:process.env.PATH,r;return s=>e.host!=="claude-code"?on(s,e.cwd,n):(r??=fd(t.configDir),!on(s,e.cwd,n)&&!r.paths.some(o=>on(s,e.cwd,o))?!1:s.includes("/")||!dd(s,r))}var qS=/^[^\s;&|<>()$`\\{}*?[\]~#!]+(?: [^\s;&|<>()$`\\{}*?[\]~#!]+)*$/;function XS(e,t,n){return n.host!=="claude-code"||e==="unreadable"||Md(e,n)||!Dd.has(n.permissionMode??"")||!qS.test(t)||Nd.test(t.replace(/['"]/g,""))||(e.guards??[]).some(r=>r(t))?null:(e.trustedAllow??[]).find(r=>r.matches(t))?.rule??null}var QS=/^(?:\S+=\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 ev(e,t){return t.host==="claude-code"&&t.permissionMode==="default"&&QS.test(e.trim())}function Ld(e,t,n,r){if(!n||/["\\$`;&|<>(){}]|'\\''/.test(n))return null;let s=t.claudeDirs??ys(),o=WS(t.host,t.cwd,s),i=XS(o,e,t),a=i||VS(o,e,t.host)?Oi(e,n,YS(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}:Md(o,t)?{command:a}:o!=="unreadable"&&ev(e,t)&&!(o.allow??[]).some(l=>l(e))&&!(o.trustedAllow??[]).some(l=>l.matches(e))?{command:a,ask:!0}:null}function tt(e,t,n,r){let s=Ld(e,t,n,r);return s&&!s.ask?s.command:null}B();vn();Yn();Ho();import{existsSync as Sv,writeFileSync as vv,appendFileSync as Ev,statSync as Tv,constants as Bd}from"node:fs";import{lstat as Rv,open as Av}from"node:fs/promises";import{basename as $v,dirname as Ov,isAbsolute as Cv,join as Gd}from"node:path";B();ve();import{readFileSync as tv}from"node:fs";import{join as nv}from"node:path";function Fd(){if(be())return!1;try{return JSON.parse(tv(nv(x(),"settings-cache.json"),"utf8")).enabled!==!1}catch{return!0}}B();import{createHash as rv}from"node:crypto";import{appendFileSync as sv,chmodSync as ov,mkdirSync as iv,readFileSync as av,rmSync as lv,statSync as uv}from"node:fs";import{join as jd}from"node:path";var cv=256*1024,fv=80;function dv(e){let t=e.replace(/[^A-Za-z0-9._-]/g,"-").replace(/\.\./g,"-").slice(0,80)||"default";return jd(x(),"sessions",`${t}.seen`)}function Ii(e){return e.replace(/[\t\r\n]+/g," ").trim().slice(0,fv)}function Pi(e,t,n,r){try{let s=dv(e),o=Ii(t),i=rv("sha256").update(n).digest("hex").slice(0,32),a="";try{a=av(s,"utf8")}catch{}for(let l of a.split(`
|
|
129
|
+
`)){let[u,c,f]=l.split(" ");if(u===o&&c===i)return{cmd:f??""}}iv(jd(x(),"sessions"),{recursive:!0,mode:448}),sv(s,`${o} ${i} ${Ii(r)}
|
|
130
|
+
`,{mode:384}),ov(s,384),uv(s).size>cv&&lv(s,{force:!0})}catch{}return null}function Ni(e,t){return`[same output as \`${Ii(e)}\` earlier in this session, unchanged, ~${Math.round(t/4)} tokens]`}jn();us();function te(e,t){let n=e[t];return typeof n=="string"&&n?n:null}function or(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function pv(e){return te(e,"prompt_id")||te(e,"scratchpad_dir")?!0:or(e.effort)}function mv(e){return te(e,"tool_use_id")?.startsWith("toolu_")===!0||/^claude/i.test(te(e,"model")??"")}var hv=new Set(["BeforeTool","AfterTool","BeforeAgent","AfterAgent","BeforeModel","AfterModel","BeforeToolSelection"]),gv=new Set(["preToolUse","postToolUse","beforeShellExecution","afterShellExecution","beforeSubmitPrompt","sessionStart","sessionEnd","stop"]),yv=new Set(["pre_tool","post_tool"]),bv=new Set(["before_tool_call","after_tool_call"]),kv=new Set(["runTerminalCommand","run_in_terminal"]),_v=[["codex",e=>te(e,"turn_id")!==null],["claude-code",pv],["cursor",e=>te(e,"cursor_version")!==null||te(e,"generation_id")!==null||te(e,"conversation_id")!==null||Array.isArray(e.workspace_roots)||gv.has(te(e,"hook_event_name")??"")],["gemini-cli",e=>hv.has(te(e,"hook_event_name")??"")],["qwen-code",e=>e.hook_event_name==="PreToolUse"&&e.tool_name==="run_shell_command"],["vibe",e=>yv.has(te(e,"hook_event_name")??"")],["antigravity",e=>or(e.toolCall)],["copilot",e=>te(e,"toolName")!==null&&"toolArgs"in e||kv.has(te(e,"tool_name")??"")],["grok",e=>e.toolName==="run_terminal_command"||e.tool_name==="run_terminal_command"||or(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&&te(e,"event")!==null&&!bv.has(te(e,"event"))]],wv=new Set(["codex","antigravity"]);function xv(e){return or(e)?_v.filter(([,t])=>t(e)).map(([t])=>t):[]}function Di(e,t){if(!or(e))return null;let n=xv(e);return n.length>1?null:n.length===1?n[0]:mv(e)&&wv.has(t)?"claude-code":t==="codex"?null:t}function Hd(e,t){let n=Di(e,t);return n==="claude-code"||n==="codex"?n:null}var Iv=new Set(["Read","Grep","Glob","Bash"]),ks=10*1024*1024,Kd=1024,Pv=10,Nv=25e3,Dv=/^… \(?\d+ more lines omitted\)?$/,Mv=/^\[tkr restore [0-9a-f]{8,64}\]$/,Lv=/^\d+F \d+D(?: in .+\/)?:$|^\S.*\/ \(\d+(?:, \*\.[^)]+)?\): \S/,Fv=/^… \(\d+ more lines omitted\)$/m;function jv(e){return Dv.test(e)||Mv.test(e)||e==="[YOLO: omitted]"}function Wd(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(`
|
|
131
|
+
`).filter(i=>r.has(i)||jv(i)||s&&Lv.test(i));return{...e,filenames:o}}return t}function Hv(e,t,n){return JSON.stringify({...n?{systemMessage:n}:{},hookSpecificOutput:{hookEventName:"PostToolUse",updatedToolOutput:Wd(e.tool_response,t,e.tool_name)}})}var Bv=100,Fi=null;function Uv(){let e=Fi;return Fi=null,e}function Ud(e){let t=Math.round(e/4);return t>=1e3?`${(t/1e3).toFixed(1)}K`:String(t)}function Vd(e,t){try{if(Math.round((e-t)/4)<Bv)return;let n=Gd(x(),"first-save");if(Sv(n))return;vv(n,String(Date.now())),Fi=`Tokmizer just optimized its first command output here: ~${Ud(e)} tokens down to ~${Ud(t)}. Watch it add up: /tkr-gain`}catch{}}function zd(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(`
|
|
126
132
|
`):Array.isArray(e.filenames)?e.filenames.join(`
|
|
127
|
-
`):null:""}var
|
|
128
|
-
`)}catch{}}function
|
|
129
|
-
`)[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
|
|
130
|
-
`),d=Buffer.byteLength(f,"utf8");if(s==null&&u.filterId!=null&&t.session_id&&d>=
|
|
131
|
-
`)[0]??"");if(k){let g=
|
|
132
|
-
`),m=u.stdout===e.stdout&&u.stderr===e.stderr;return s!=null&&(m||p.length>s)||(c&&(r.deferAccounting?r.deferAccounting(c):await c()),m)?null:(
|
|
133
|
-
`)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let l=
|
|
134
|
-
`).length<
|
|
135
|
-
`)[0]??"");if(
|
|
133
|
+
`):null:""}var zv=64*1024;function Jv(e,t){try{if(!t||typeof t!="object")return;let n=Gd(x(),"drift.jsonl");try{if(Tv(n).size>zv)return}catch{}let r=Object.keys(t).slice(0,12);Ev(n,`${JSON.stringify({t:Math.floor(Date.now()/1e3),tool:e,keys:r})}
|
|
134
|
+
`)}catch{}}function Zv(e){let t=e.tool_name??"tool",n=e.tool_input??{};return n.command?n.command.split(`
|
|
135
|
+
`)[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 Gv=/'(?:[A-Za-z]:)?\/[^']*\/(?:tkr-exec(?:\.exe|\.js)?'|tkr(?:\.exe)?' exec)(?:\\'')?(?:\s|$)/,Kv=/;|\|\||\n|(?<![>&|])&(?![&>])/,Wv=new Set(["cd","export","set","unset","true",":"]),Vv=/^(?:\S*\/)?(?:sh|bash|zsh|dash|ksh)\s+-[elux]*c[elux]*\s+'([^']*)'$/,Yv=/(?:^|[\s;&|(])(?:[A-Za-z]:)?\/\S*\/tkr-exec(?:\.exe|\.js)?\s|(?:^|[;&|(\n])\s*(?:\S*\/)?tkr-exec(?:\.exe|\.js)?\s/;function Yd(e){return Gv.test(e)||Yv.test(e)}function qd(e,t,n=0){let r=ln(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==="|&")||Wv.has(i.split(/\s+/)[0]))continue;let l=n<3?Vv.exec(i):null;if(!(l&&qd(l[1],t,n+1)))return!1}return!0}function qv(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 Jd(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 Xv(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||!Cv(n)||$v(Ov(n))!=="tool-results")return null;try{let s=await Rv(n);if(!s.isFile()||s.size>ks)return null;let o=await Av(n,Bd.O_RDONLY|(Bd.O_NOFOLLOW??0));try{let i=await o.stat();if(!i.isFile()||i.size>ks||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 Qv(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||Kv.test(e)||Jd(e))return null;let n=[];if(Oi(e,"tkr-exec",()=>!0,s=>n.push(s)),n.length!==1||Jd(n[0])||!qd(e,n[0])||ln(e).some(s=>s.kind==="sep"&&s.text!=="&&"&&s.text!=="|"&&s.text!=="|&"))return null;let r=qv(n[0]);return r?{argv:r,stdout:t.stdout,stderr:t.stderr??"",exitCode:t.returnCodeInterpretation!=null?1:0}:null}async function eE(e,t,n,r,s){let{processCapturedOutput:o}=await Promise.resolve().then(()=>(vi(),id)),i=null,a=k=>{i=k},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(`
|
|
136
|
+
`),d=Buffer.byteLength(f,"utf8");if(s==null&&u.filterId!=null&&t.session_id&&d>=Kd){let k=Pi(t.session_id,t.agent_id??"main",f,(t.tool_input?.command??"").split(`
|
|
137
|
+
`)[0]??"");if(k){let g=Ni(k.cmd,d);if(n)return g;let{captureOriginalForRestore:T}=await Promise.resolve().then(()=>(Li(),Mi));return T(f,g)}}let p=[u.stdout,u.stderr].filter(Boolean).join(`
|
|
138
|
+
`),m=u.stdout===e.stdout&&u.stderr===e.stderr;return s!=null&&(m||p.length>s)||(c&&(r.deferAccounting?r.deferAccounting(c):await c()),m||d>0&&Buffer.byteLength(p,"utf8")>=d)?null:(Vd(d,Buffer.byteLength(p,"utf8")),p)}function tE(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 nE(e,t={}){if(!tE(e))return null;let n=e.tool_name==="Bash"&&!Yd(e.tool_input?.command??"")?await Xv(e.tool_response):void 0;return n===null?null:n===void 0?Zd(e,t):Zd({...e,tool_response:{...e.tool_response,stdout:n}},t,Nv)}async function Zd(e,t,n){let r=xe();if(!e.tool_name||!Iv.has(e.tool_name))return null;let s=e.tool_name==="Bash"?e.tool_input?.command??"":"",o=Yd(s);if(/\btkr(?:\.js)?\s+restore\b/.test(s))return null;let i=await xt();if(!Fd())return null;let a=e.tool_name==="Bash"&&!o?Qv(s,e.tool_response):null;if(a)return Buffer.byteLength(a.stdout,"utf8")+Buffer.byteLength(a.stderr,"utf8")>ks?null:eE(a,e,r,t,n);if(e.session_id&&!o&&i?.token){let C=e.tool_input??{},rt=C.command??C.file_path??C.pattern??C.path??"";rt&&Jr(e.session_id,{tool:e.tool_name,target:rt.split(`
|
|
139
|
+
`)[0].trim()})}if(e.tool_name==="Read"&&(e.tool_input?.offset!=null||e.tool_input?.limit!=null))return null;let l=zd(e.tool_response);if(l==null)return Jv(e.tool_name,e.tool_response),null;if(!l)return null;let u=Buffer.byteLength(l,"utf8");if(u>ks||e.tool_name==="Bash"&&u<Kd||e.tool_name==="Glob"&&l.split(`
|
|
140
|
+
`).length<Pv||o)return null;let{loadSettingsCache:c,processOutput:f,captureForRestore:d,captureOriginalForRestore:p,neutralizeMarkers:m,FOLD_MARKER_RE:k,resolveAllowedFilters:g,gatingPlan:T,graceExceeded:S,recordEvent:O,recordTelemetry:E,recordStat:I,countedSaving:D,statCmdLabel:j,statOutcome:z,installDaemonResolver:N,closeDaemonResolver:W}=await Promise.resolve().then(()=>(Li(),Mi)),V=await c();if(!V.enabled)return null;let{slugKey:de}=await Promise.resolve().then(()=>(We(),ya)),ne=i?.token?T(i):null;!t.resolver&&ne&&N(ne);let J=i?.token?g(i.allowedFilters,S(i)):null,Z=new Set(V.filters.disabled.map(de)),U=J&&Z.size>0?new Set([...J].filter(C=>!Z.has(C))):J,K=Zv(e),re=`${e.tool_name.toLowerCase()}-tool`,nt=`${re}: ${K}`;try{let C=await f(nt,l,U,{verbosity:V.outputVerbosity,resolver:t.resolver,yolo:r,exitCode:e.tool_name==="Bash"?void 0:0});if(C.filterId!=null&&e.tool_name==="Bash"&&e.session_id){let Xi=Pi(e.session_id,e.agent_id??"main",l,s.split(`
|
|
141
|
+
`)[0]??"");if(Xi){let Qi=Ni(Xi.cmd,u);return r?Qi:await p(l,Qi)}}let rt=new RegExp(k.source,"m"),Ts=e.tool_name==="Bash"?j(e.tool_input?.command??""):e.tool_name,Vi=e.tool_name==="Read"&&!r&&(rt.test(C.output)||Fv.test(C.output))?`${C.output}${C.output.endsWith(`
|
|
136
142
|
`)?"":`
|
|
137
|
-
`}${Yt}`:C.output,ie;if(C.filteredBytes>=C.rawBytes?ie=null:r?ie=m(C.output,l):e.tool_name==="Glob"||et.test(C.output)?ie=await p(l,Ci,void 0,{label:ms}):ie=await d(C.droppedTail??null,Ci,void 0,{raw:l,label:ms}),r&&ie!=null&&(ie=md(kd(e.tool_response,ie,e.tool_name))),n!=null&&(ie==null||ie.length>n))return null;let Md=ie==null?C.rawBytes:Buffer.byteLength(ie,"utf8"),hs=Gr().host,tt=N(C.rawBytes,Md,Zr(hs));ie!=null&&_d(tt.raw,tt.filtered);let Ld=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),Fd=e.tool_name==="Bash"?"sh":void 0,gs=t.deferAccounting,Ii=!1,Pi=async()=>{Ii||(Ii=!0,await O({cmd:te,filterId:C.filterId,rawBytes:C.rawBytes,filteredBytes:C.filteredBytes,plan:ce}),I(tt.raw,tt.filtered,void 0,!1,hs,Fd,ms,Ld,U(C)),await E({cmd:te,tokensSaved:Math.round((tt.raw-tt.filtered)/4),rawTokens:Math.round(tt.raw/4),optimized:C.filterId!=null,telemetryOptIn:W.telemetryOptIn&&(!gs||(await c()).telemetryOptIn),host:hs}))};return gs?gs(Pi):await Pi(),ie}finally{t.resolver||K()}}async function Sd(e,t={}){if(fd(e,"claude-code")!=="claude-code")return"";let n=await qS(e,t);return n?NS(e,n,MS()??void 0):""}_e();_e();var wi=JSON.stringify({permission:"allow"});function vd(e,t=we("cursor"),n=oe){if(e.tool_name!=="Shell")return wi;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return wi;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=Xe(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},he()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):wi}_e();var ls="{}";function Ed(e,t=we("gemini-cli"),n=oe){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return ls;let r=e.tool_input??{};if(r.is_background)return ls;let s=r.command;if(typeof s!="string"||!s)return ls;let o=typeof e.cwd=="string"?e.cwd:void 0,i=Xe(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},he()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):ls}$e();_e();function rn(e,t,n="unknown",r=we(t),s=oe){return e?Xe(e,{host:t,sessionId:n},he()?null:r,s):null}var YS=new Set(["bash","file_system.bash"]),Si=JSON.stringify({decision:"allow"});function Td(e,t=(n,r)=>rn(n,"vibe",r)){if(!H(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!YS.has(e.tool_name))return"";let n=e.tool_input;if(!H(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 Rd(e,t=(n,r)=>rn(n,"antigravity",r)){if(!H(e)||!H(e.toolCall)||e.toolCall.name!=="run_command")return Si;let n=e.toolCall.args;if(!H(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Si;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Si}_e();var je="{}",XS=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),QS=["run_in_background","is_background","isBackground"];function us(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function ev(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function tv(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function cs(e,t,n,r,s){if(!us(t)||QS.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:Xe(o,{host:e,sessionId:ev(n),cwd:tv(n,t)},he()?null:r,s)}function on(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function nv(e){if(us(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return us(t)?t:null}catch{return null}}function rv(e,t,n){if(typeof e.tool_name=="string"){if(!XS.has(e.tool_name))return je;let o=e.tool_input,i=cs("copilot",o,e,t,n);return i?on(o,i):je}if(e.toolName!=="bash")return je;let r=nv(e.toolArgs),s=cs("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):je}function sn(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return je;let i=r.tool_input,a=cs(e,i,r,s,o);return a?n(i,a):je}}var sv=new Set(["run_terminal_command","Bash","bash"]);function ov(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!sv.has(r))return je;let s=e.toolInput??e.tool_input,o=cs("grok",s,e,t,n);return o?on(s,o):je}var iv={copilot:rv,droid:sn("droid","Execute",on),trae:sn("trae","RunCommand",on),"qwen-code":sn("qwen-code","run_shell_command",on),crush:sn("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:sn("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:sn("zcode","Bash",on),grok:ov};function Ad(e,t,n=we(e),r=oe){return us(t)?iv[e](t,n,r):je}function an(e){return he()?null:we(e)}function av(e,t,n={}){let r=n.recordUsage??oe;switch(e){case"claude-code":case"codex":return t.hook_event_name!==void 0&&t.hook_event_name!=="PreToolUse"?"":ed(t,e,an(e),r,n.claudeDirs??os(),n.pathEnv??process.env.PATH,n.launchArgs??Wn)??"";case"cursor":return vd(t,an(e),r);case"gemini-cli":return Ed(t,an(e),r);case"vibe":return Td(t,(s,o)=>rn(s,"vibe",o,an(e),r));case"antigravity":return Rd(t,(s,o)=>rn(s,"antigravity",o,an(e),r));default:return Ad(e,t,an(e),r)}}function nn(e,t,n={}){let r=yi(e,t);return r?av(r,e,n):n.fallback??""}Bn();var fs=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 ln(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function $d(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}}_e();var pv={"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:""},mv=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(zo),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(),hv=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(),gv=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 un(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=$s()}async function Cd(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=uv(fv(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=cv(x()),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=dv(f=>{if(a||s.size>=l){f.destroy();return}s.add(f);let d="prepare",p=null,m=!1,k=0,g=!1,T,S,O=()=>{i-=k,k=0},E=()=>{clearTimeout(S),j.close(),g||O(),d="closed",f.destroy()},I=U=>{clearTimeout(S),S=setTimeout(E,U),S.unref()},N=U=>{f.write(ln(Buffer.from(JSON.stringify(U))))},j=new fs(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,U=>{if(d==="delivery"){if(U.length!==1||U[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),g=!0;let J=(T?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(ln(Buffer.from([1])))}).catch(()=>E()).finally(()=>{g=!1,f.destroyed&&(O(),s.delete(f)),o.delete(J)});o.add(J);return}if(d==="hook-payload"){let J=e.getRuntime();if(!un(J)){E();return}let Z=JSON.parse(U.toString("utf8"));if(!Z||typeof Z!="object"||Array.isArray(Z))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",g=!0,I(e.processingTimeoutMs??5e3);let z=Sd(Z,{inferCwd:!1,deferAccounting:G=>{T=G},resolver:async(G,te)=>{if(!un(J))throw new Error("expired processing rules");return J.selectFor(G,"pro",te?[...te]:void 0)}}).then(G=>{if(f.destroyed)return;let te=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:G}));if(te.length>20971536)throw new Error("hook response limit");O(),d="delivery",I(e.processingTimeoutMs??5e3),f.write(ln(te))}).catch(()=>E()).finally(()=>{g=!1,f.destroyed&&(O(),s.delete(f)),o.delete(z)});o.add(z);return}if(d==="prepare"){let J=JSON.parse(U.toString("utf8"));if(J?.kind==="post-tool-use"){let z=gv.parse(J);if(!Ei(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n||!un(e.getRuntime())){E();return}e.onActivity?.(),O(),d="hook-payload",I(e.prepareTimeoutMs??1e3),N({ok:!0,protocol:2});return}if(J?.kind==="pre-tool-use"){let z=hv.parse(J);if(!Ei(r,Buffer.from(z.token,"hex"))||z.version!==e.version||z.home!==n){E();return}e.onActivity?.();let G,te=nn(z.payload,z.host,{recordUsage:(C,et)=>{G={sessionId:C,routed:et}},claudeDirs:{projectDir:z.claudeProjectDir,configDir:z.claudeConfigDir},pathEnv:z.path??"",launchArgs:()=>z.claudePid?Wn({CLAUDE_PID:z.claudePid}):null}),Qe=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:te}));if(Qe.length>1024*1024)throw new Error("hook response limit");T=async()=>{let C=G;G=void 0,C&&oe(C.sessionId,C.routed)},O(),d="delivery",I(e.processingTimeoutMs??5e3),f.write(ln(Qe));return}let Z=mv.parse(J);if(!Ei(r,Buffer.from(Z.token,"hex"))||Z.version!==e.version||Z.home!==n||!un(e.getRuntime())){E();return}p=Z,e.onActivity?.(),m=ke(),O(),d="capture",I(Z.timeoutMs+5e3),N({ok:!0,protocol:2,yolo:m});return}if(d!=="capture"||!p)throw new Error("unexpected processing frame");let M=$d(U);e.onActivity?.();let K=e.getRuntime();if(!un(K)){E();return}d="processing",g=!0,I(e.processingTimeoutMs??5e3);let W={},Ce=pv[p.host];Ce?W[Ce]="1":p.host!=="shell"&&(W.TOKMIZER_HOST=p.host),p.sessionId!==void 0&&(W.CLAUDE_CODE_SESSION_ID=p.sessionId),W.TOKMIZER_CCR_DISABLED=p.restoreDisabled?"1":"0",p.restoreMaxBytes!==void 0&&(W.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(p.restoreMaxBytes));let ce=es({...M,argv:p.argv},{env:W,yolo:m,onMissingState:Qr,deferAccounting:J=>{T=J},resolver:async(J,Z)=>{if(!un(K))throw new Error("expired processing rules");return K.selectFor(J,"pro",Z?[...Z]:void 0)}}).then(J=>{if(f.destroyed)return;let Z=Buffer.from(J.stdout),z=Buffer.from(J.stderr);if(Z.length>10551296||z.length>10551296)throw new Error("processing response limit");let G=Buffer.allocUnsafe(8);G.writeUInt32BE(Z.length,0),G.writeUInt32BE(z.length,4),d="delivery",I(e.processingTimeoutMs??5e3),f.write(ln(Buffer.concat([G,Z,z])))}).catch(()=>E()).finally(()=>{g=!1,f.destroyed&&(O(),s.delete(f)),o.delete(ce)});o.add(ce)},U=>{if(i+U>u)throw new Error("processing capacity exceeded");i+=U,k+=U});I(e.prepareTimeoutMs??1e3),f.on("data",U=>{try{j.push(U)}catch{E()}}),f.on("error",E),f.on("close",()=>{g||s.delete(f),E()})});try{await new Promise((f,d)=>{c.once("error",d),c.listen(e.path,()=>{c.off("error",d),f()})}),t||lv(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 Ri(e=me){return`processing-${e}.json`}function Ev(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 Pd(e,t,n="processing.json"){let r=process.platform==="win32",s=_v(x()),o=ds(s,"run");kv(o,{recursive:!0,mode:448});let i=bv(o);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=Id().slice(0,8),l=r?Ev(process.env.USERNAME??"user",me,a):ds(vv(xt().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let u=yv(32).toString("hex"),c=await Cd({path:l,token:u,version:me,getRuntime:e,...t?{onActivity:t}:{}}),f=ds(o,`${n}.${Id()}.tmp`);try{return Sv(f,JSON.stringify({protocol:2,version:me,home:s,path:l,token:u}),{mode:384,flag:"wx"}),wv(f,ds(o,n)),c}catch(d){throw await c.close(),d}finally{xv(f,{force:!0})}}function Nd(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}}B();Lt();var $v=6e4,Ov=5e3,Cv=30*6e4;function Dd(){let e=Number(process.env.TOKMIZER_PROCESSOR_IDLE_MS);return Number.isFinite(e)&&e>0?e:Cv}async function Iv(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(`
|
|
138
|
-
`),n=async(r,s)=>e.selectFor(r,"pro",s?[...s]:void 0);for(let r of["ls -la","git status","grep -rn x ."])await
|
|
143
|
+
`}${nn}`:C.output,X;if(C.filteredBytes>=C.rawBytes?X=null:r?X=m(C.output,l):e.tool_name==="Glob"||rt.test(C.output)?X=await p(l,Vi,void 0,{label:Ts}):X=await d(C.droppedTail??null,Vi,void 0,{raw:l,label:Ts}),r&&X!=null&&(X=zd(Wd(e.tool_response,X,e.tool_name))),X!=null&&Buffer.byteLength(X,"utf8")>=C.rawBytes&&(X=null),n!=null&&(X==null||X.length>n))return null;let fp=X==null?C.rawBytes:Buffer.byteLength(X,"utf8"),Rs=ss().host,st=D(C.rawBytes,fp,rs(Rs));X!=null&&Vd(st.raw,st.filtered);let dp=e.cwd||(t.inferCwd===!1?void 0:process.cwd()),pp=e.tool_name==="Bash"?"sh":void 0,As=t.deferAccounting,Yi=!1,qi=async()=>{Yi||(Yi=!0,await O({cmd:re,filterId:C.filterId,rawBytes:C.rawBytes,filteredBytes:C.filteredBytes,plan:ne}),I(st.raw,st.filtered,void 0,!1,Rs,pp,Ts,dp,z(C)),await E({cmd:re,tokensSaved:Math.round((st.raw-st.filtered)/4),rawTokens:Math.round(st.raw/4),optimized:C.filterId!=null,telemetryOptIn:V.telemetryOptIn&&(!As||(await c()).telemetryOptIn),host:Rs}))};return As?As(qi):await qi(),X}finally{t.resolver||W()}}async function Xd(e,t={}){if(Hd(e,"claude-code")!=="claude-code")return"";let n=await nE(e,t);return n?Hv(e,n,Uv()??void 0):""}ve();ve();var ji=JSON.stringify({permission:"allow"});function Qd(e,t=Ee("cursor"),n=le){if(e.tool_name!=="Shell")return ji;let r=e.tool_input??{},s=r.command;if(typeof s!="string"||!s)return ji;let o=typeof r.working_directory=="string"?r.working_directory:void 0,i=tt(s,{host:"cursor",sessionId:e.conversation_id??"unknown",cwd:o},be()?null:t,n);return i?JSON.stringify({permission:"allow",updated_input:{...r,command:i}}):ji}ve();var _s="{}";function ep(e,t=Ee("gemini-cli"),n=le){if(e.hook_event_name!=="BeforeTool"||e.tool_name!=="run_shell_command")return _s;let r=e.tool_input??{};if(r.is_background)return _s;let s=r.command;if(typeof s!="string"||!s)return _s;let o=typeof e.cwd=="string"?e.cwd:void 0,i=tt(s,{host:"gemini-cli",sessionId:e.session_id??"unknown",cwd:o},be()?null:t,n);return i?JSON.stringify({hookSpecificOutput:{tool_input:{command:i}}}):_s}Ie();ve();function cn(e,t,n="unknown",r=Ee(t),s=le){return e?tt(e,{host:t,sessionId:n},be()?null:r,s):null}var rE=new Set(["bash","file_system.bash"]),Bi=JSON.stringify({decision:"allow"});function tp(e,t=(n,r)=>cn(n,"vibe",r)){if(!H(e)||e.hook_event_name!=="pre_tool"||typeof e.tool_name!="string"||!rE.has(e.tool_name))return"";let n=e.tool_input;if(!H(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 np(e,t=(n,r)=>cn(n,"antigravity",r)){if(!H(e)||!H(e.toolCall)||e.toolCall.name!=="run_command")return Bi;let n=e.toolCall.args;if(!H(n)||typeof n.CommandLine!="string"||!n.CommandLine)return Bi;let r=t(n.CommandLine,typeof e.conversationId=="string"?e.conversationId:"unknown");return r?JSON.stringify({decision:"allow",overwrite:{CommandLine:r}}):Bi}ve();var Be="{}",sE=new Set(["runTerminalCommand","run_in_terminal","Bash","bash"]),oE=["run_in_background","is_background","isBackground"];function ws(e){return e!=null&&typeof e=="object"&&!Array.isArray(e)}function iE(e){let t=e.session_id??e.sessionId;return typeof t=="string"&&t?t:"unknown"}function aE(e,t){let n=e.cwd??t.cwd??t.workdir??t.working_directory;return typeof n=="string"&&n?n:void 0}function xs(e,t,n,r,s){if(!ws(t)||oE.some(i=>t[i]===!0))return null;let o=t.command;return typeof o!="string"||!o?null:tt(o,{host:e,sessionId:iE(n),cwd:aE(n,t)},be()?null:r,s)}function dn(e,t){return JSON.stringify({hookSpecificOutput:{hookEventName:"PreToolUse",updatedInput:{...e,command:t}}})}function lE(e){if(ws(e))return e;if(typeof e!="string")return null;try{let t=JSON.parse(e);return ws(t)?t:null}catch{return null}}function uE(e,t,n){if(typeof e.tool_name=="string"){if(!sE.has(e.tool_name))return Be;let o=e.tool_input,i=xs("copilot",o,e,t,n);return i?dn(o,i):Be}if(e.toolName!=="bash")return Be;let r=lE(e.toolArgs),s=xs("copilot",r,e,t,n);return s?JSON.stringify({modifiedArgs:{...r,command:s}}):Be}function fn(e,t,n){return(r,s,o)=>{if(r.tool_name!==t)return Be;let i=r.tool_input,a=xs(e,i,r,s,o);return a?n(i,a):Be}}var cE=new Set(["run_terminal_command","Bash","bash"]);function fE(e,t,n){let r=e.toolName??e.tool_name;if(typeof r!="string"||!cE.has(r))return Be;let s=e.toolInput??e.tool_input,o=xs("grok",s,e,t,n);return o?dn(s,o):Be}var dE={copilot:uE,droid:fn("droid","Execute",dn),trae:fn("trae","RunCommand",dn),"qwen-code":fn("qwen-code","run_shell_command",dn),crush:fn("crush","bash",(e,t)=>JSON.stringify({updated_input:{command:t}})),junie:fn("junie","Bash",(e,t)=>JSON.stringify({updatedInput:{...e,command:t}})),zcode:fn("zcode","Bash",dn),grok:fE};function rp(e,t,n=Ee(e),r=le){return ws(t)?dE[e](t,n,r):Be}function pn(e){return be()?null:Ee(e)}function pE(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"?"":$d(t,e,pn(e),r,n.claudeDirs??ys(),n.pathEnv??process.env.PATH,n.launchArgs??nr)??"";case"cursor":return Qd(t,pn(e),r);case"gemini-cli":return ep(t,pn(e),r);case"vibe":return tp(t,(s,o)=>cn(s,"vibe",o,pn(e),r));case"antigravity":return np(t,(s,o)=>cn(s,"antigravity",o,pn(e),r));default:return rp(e,t,pn(e),r)}}function un(e,t,n={}){let r=Di(e,t);return r?pE(r,e,n):n.fallback??""}Yn();var Ss=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 mn(e){let t=Buffer.allocUnsafe(4);return t.writeUInt32BE(e.length),Buffer.concat([t,e])}function sp(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}}ve();var kE={"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:""},_E=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(ii),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(),wE=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(),xE=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 hn(e){if(!e)return!1;let t=Date.now()-e.signedAt;return t>=0&&t<=Bs()}async function ip(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=hE(yE(e.path));if(!f.isDirectory()||f.uid!==process.getuid?.()||(f.mode&63)!==0)throw new Error("unsafe processing directory")}let n=gE(x()),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=bE(f=>{if(a||s.size>=l){f.destroy();return}s.add(f);let d="prepare",p=null,m=!1,k=0,g=!1,T,S,O=()=>{i-=k,k=0},E=()=>{clearTimeout(S),j.close(),g||O(),d="closed",f.destroy()},I=z=>{clearTimeout(S),S=setTimeout(E,z),S.unref()},D=z=>{f.write(mn(Buffer.from(JSON.stringify(z))))},j=new Ss(()=>d==="prepare"?65536:d==="capture"||d==="hook-payload"?20971536:d==="delivery"?1:-1,z=>{if(d==="delivery"){if(z.length!==1||z[0]!==1)throw new Error("invalid delivery receipt");d="accounting",e.onActivity?.(),g=!0;let J=(T?.()??Promise.resolve()).then(()=>{f.destroyed||f.end(mn(Buffer.from([1])))}).catch(()=>E()).finally(()=>{g=!1,f.destroyed&&(O(),s.delete(f)),o.delete(J)});o.add(J);return}if(d==="hook-payload"){let J=e.getRuntime();if(!hn(J)){E();return}let Z=JSON.parse(z.toString("utf8"));if(!Z||typeof Z!="object"||Array.isArray(Z))throw new Error("invalid hook payload");e.onActivity?.(),d="processing",g=!0,I(e.processingTimeoutMs??5e3);let U=Xd(Z,{inferCwd:!1,deferAccounting:K=>{T=K},resolver:async(K,re)=>{if(!hn(J))throw new Error("expired processing rules");return J.selectFor(K,"pro",re?[...re]:void 0)}}).then(K=>{if(f.destroyed)return;let re=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:K}));if(re.length>20971536)throw new Error("hook response limit");O(),d="delivery",I(e.processingTimeoutMs??5e3),f.write(mn(re))}).catch(()=>E()).finally(()=>{g=!1,f.destroyed&&(O(),s.delete(f)),o.delete(U)});o.add(U);return}if(d==="prepare"){let J=JSON.parse(z.toString("utf8"));if(J?.kind==="post-tool-use"){let U=xE.parse(J);if(!zi(r,Buffer.from(U.token,"hex"))||U.version!==e.version||U.home!==n||!hn(e.getRuntime())){E();return}e.onActivity?.(),O(),d="hook-payload",I(e.prepareTimeoutMs??1e3),D({ok:!0,protocol:2});return}if(J?.kind==="pre-tool-use"){let U=wE.parse(J);if(!zi(r,Buffer.from(U.token,"hex"))||U.version!==e.version||U.home!==n){E();return}e.onActivity?.();let K,re=un(U.payload,U.host,{recordUsage:(C,rt)=>{K={sessionId:C,routed:rt}},claudeDirs:{projectDir:U.claudeProjectDir,configDir:U.claudeConfigDir},pathEnv:U.path??"",launchArgs:()=>U.claudePid?nr({CLAUDE_PID:U.claudePid}):null}),nt=Buffer.from(JSON.stringify({ok:!0,protocol:2,output:re}));if(nt.length>1024*1024)throw new Error("hook response limit");T=async()=>{let C=K;K=void 0,C&&le(C.sessionId,C.routed)},O(),d="delivery",I(e.processingTimeoutMs??5e3),f.write(mn(nt));return}let Z=_E.parse(J);if(!zi(r,Buffer.from(Z.token,"hex"))||Z.version!==e.version||Z.home!==n||!hn(e.getRuntime())){E();return}p=Z,e.onActivity?.(),m=xe(),O(),d="capture",I(Z.timeoutMs+5e3),D({ok:!0,protocol:2,yolo:m});return}if(d!=="capture"||!p)throw new Error("unexpected processing frame");let N=sp(z);e.onActivity?.();let W=e.getRuntime();if(!hn(W)){E();return}d="processing",g=!0,I(e.processingTimeoutMs??5e3);let V={},de=kE[p.host];de?V[de]="1":p.host!=="shell"&&(V.TOKMIZER_HOST=p.host),p.sessionId!==void 0&&(V.CLAUDE_CODE_SESSION_ID=p.sessionId),V.TOKMIZER_CCR_DISABLED=p.restoreDisabled?"1":"0",p.restoreMaxBytes!==void 0&&(V.TOKMIZER_CCR_ENTRY_MAX_BYTES=String(p.restoreMaxBytes));let ne=ds({...N,argv:p.argv},{env:V,yolo:m,onMissingState:fs,deferAccounting:J=>{T=J},resolver:async(J,Z)=>{if(!hn(W))throw new Error("expired processing rules");return W.selectFor(J,"pro",Z?[...Z]:void 0)}}).then(J=>{if(f.destroyed)return;let Z=Buffer.from(J.stdout),U=Buffer.from(J.stderr);if(Z.length>10551296||U.length>10551296)throw new Error("processing response limit");let K=Buffer.allocUnsafe(8);K.writeUInt32BE(Z.length,0),K.writeUInt32BE(U.length,4),d="delivery",I(e.processingTimeoutMs??5e3),f.write(mn(Buffer.concat([K,Z,U])))}).catch(()=>E()).finally(()=>{g=!1,f.destroyed&&(O(),s.delete(f)),o.delete(ne)});o.add(ne)},z=>{if(i+z>u)throw new Error("processing capacity exceeded");i+=z,k+=z});I(e.prepareTimeoutMs??1e3),f.on("data",z=>{try{j.push(z)}catch{E()}}),f.on("error",E),f.on("close",()=>{g||s.delete(f),E()})});try{await new Promise((f,d)=>{c.once("error",d),c.listen(e.path,()=>{c.off("error",d),f()})}),t||mE(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 Zi(e=ge){return`processing-${e}.json`}function CE(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 lp(e,t,n="processing.json"){let r=process.platform==="win32",s=TE(x()),o=vs(s,"run");EE(o,{recursive:!0,mode:448});let i=vE(o);if(!i.isDirectory()||!r&&(i.uid!==process.getuid?.()||(i.mode&63)!==0))throw new Error("unsafe processing descriptor directory");let a=ap().slice(0,8),l=r?CE(process.env.USERNAME??"user",ge,a):vs(OE(Et().path),`p${a}`);if(!r&&Buffer.byteLength(l)>100)throw new Error("processing socket path too long");let u=SE(32).toString("hex"),c=await ip({path:l,token:u,version:ge,getRuntime:e,...t?{onActivity:t}:{}}),f=vs(o,`${n}.${ap()}.tmp`);try{return $E(f,JSON.stringify({protocol:2,version:ge,home:s,path:l,token:u}),{mode:384,flag:"wx"}),RE(f,vs(o,n)),c}catch(d){throw await c.close(),d}finally{AE(f,{force:!0})}}function up(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}}B();Bt();var DE=6e4,ME=5e3,LE=30*6e4;function cp(){let e=Number(process.env.TOKMIZER_PROCESSOR_IDLE_MS);return Number.isFinite(e)&&e>0?e:LE}async function FE(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(`
|
|
144
|
+
`),n=async(r,s)=>e.selectFor(r,"pro",s?[...s]:void 0);for(let r of["ls -la","git status","grep -rn x ."])await Ve(r,t,null,{resolver:n}).catch(()=>null)}function jE(e){try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}function HE(e){for(let t=0;t<2;t+=1)try{return NE(e,String(process.pid),{flag:"wx",mode:384}),!0}catch{let n=Number.NaN;try{n=Number(Wi(e,"utf8"))}catch{}if(Number.isInteger(n)&&n>0&&jE(n))return!1;Es(e,{force:!0})}return!1}function Ki(e,t){try{return t(Wi(e,"utf8"))}catch{return!1}}async function BE(){let e=Gi(PE(x()),"run");IE(e,{recursive:!0,mode:448});let t=Gi(e,`processor-${ge}.pid`);if(!HE(t))return;let n=up(hr,Gt,ME),r=Date.now(),s=()=>{r=Date.now()},o=Gi(e,Zi()),i=null,a=null,l=!1,u=()=>{l||(l=!0,(a?.close()??Promise.resolve()).finally(()=>{i&&Ki(o,d=>JSON.parse(d).path===i)&&Es(o,{force:!0}),Ki(t,d=>Number(d)===process.pid)&&Es(t,{force:!0}),process.exit(0)}))};await n.reload();try{a=await lp(n.current,s,Zi())}catch{Es(t,{force:!0});return}i=Ki(o,()=>!0)?JSON.parse(Wi(o,"utf8")).path:null,setInterval(()=>{n.reload()},DE).unref(),setInterval(()=>{(a?.activeConnections()??0)===0&&Date.now()-r>cp()&&u()},Math.min(6e4,cp())).unref(),process.on("SIGINT",u),process.on("SIGTERM",u),setImmediate(()=>{FE(n.current())}),setTimeout(()=>{process.title="tkr-processor"},1e3).unref()}BE().catch(()=>process.exit(0));
|
|
139
145
|
/*! Bundled license information:
|
|
140
146
|
|
|
141
147
|
smol-toml/dist/error.js:
|